存儲器掃盲

 依然源自《主流ARM嵌入式系統設計技術與實例精解》

 

關於存儲器

文檔原則:這事兒不可說的太細,不高大全。
用途:儲存數據,比如代碼,數據文件,變量等。

一般嵌入式都會涉及到片內存儲器和片外存儲器,前次做得單片機的項目就我完全是利用 片內的Flash,RAM以及ROM這些片內存儲器。現如今升格成32位的ARM了,FLASH和SDRAM也 順勢就跑到外面來,當然也大了很多,內存相對沒有原先的要求那麼苛刻了。當然用的SoC 片子裏面還是自有它集成的存儲器的,I-Cache, D-Cache一個都不少。

 

關於靜態隨機存儲器SRAM
一般用作Cache,快速,價高,集成度相對低,無需刷新,鑑於定位,不做介紹了。

關於動態隨機存儲器DRAM

一般的主存,利用電容快速充放電來記錄數據,比SRAM稍慢,大概1/10速度,集成度高, 需要動態刷新來維持數據。關於SDRAM和DDRAM以及DDR2,DDR3等的區別和具體內容不做 介紹了。 SDRAM指同步動態隨機存儲器,這裏同步指的是和CPU的時鐘同步。SDRAM一般在一個方波的
上升沿執行一次讀或寫操作,而DDR在上升沿和下降沿各執行一次,所以速度可以加倍。

 

 

關於Flash
概述
    兩大類,NOR閃存(源自Intel)和NAND閃存(源自Toshiba)。
    NOR閃存,適合存儲少量的代碼,支持XIP(execute in place)方式執行。即程序可直接運行於閃存。可用於加快系統啓動速度。傳輸效率高,寫入擦除慢,接口方便。主要佔據1~16MB的市場,一般用來存程序代碼。
    NAND閃存,單元密度大,寫入擦除快,需要特殊管理接口。紮根大容量市場。一般用來存數據。
連接
    NOR閃存可以像其它存儲器一樣直接與微處理器相連,並在上面執行代碼。NAND則需要
    提供特殊的設備接口。另外NAND要注意如何隔離壞塊,防止對壞塊的寫入。一般在NOR
    閃存上運行代碼不需要什麼軟件支持,但是在NAND軟件上運行代碼,通常需要驅動程
    序,也就是內存技術驅動程序(MTD),NAND和NOR在寫入和擦除時都需要MTD。
常用器件和廠商
    NOR閃存,SST, INTEL, MICRON等。常用型號:28F128, 28F256, 28F640
    NAND閃存,SAMSUNG, MICRON等。常用型號有:29F2G08, 29F4G16等

 

傳統的FLASH必須先擦除然後才能寫,現代新開發的支持bit alterability的PCM技術的
FLASH可以直接寫,而不需要事先擦除。

編程時基本的操作:lock, unlock, program, erase。由於這些操作各個廠商都不同,所
以定義了統一的命令標準集CFI,它允許設備標識它自己和它的關鍵操作參數。

NOR
可以像RAM一樣隨機讀和寫,但是必須按塊的方式擦除,擦除的時候把擦除塊的所有的位都
變爲1,典型的塊大小爲64、128、256KB。對於序列數據的寫操作,NOR型FLASH要比NAND型
FLASH慢許多。由於NOR支持XIP,由於可以隨機讀取每個地址,所以CPU一般可以在NOR上執
行程序,即支持XIP。
老式的NOR閃存不支持壞塊管理

NAND
工作形式更像是塊設備。每個塊包含許多頁,這些頁的典型大小爲512、2048或者4096B。
每頁關聯一個12~16字節的錯誤檢測或糾正碼ECC,NAND依賴ECC進行糾錯和檢錯。NAND讀
和寫都必須以頁爲最小單位,擦除必須以塊爲最小單位。NAND的另一個限制是同一個塊內
的數據必須序列的寫入。
NAND閃存也需要由設備驅動或者一個獨立控制器進行壞塊管理。兩種壞塊管理方式,一種
是劃分邏輯塊和物理塊,保留一部分塊存放映射表並處理壞塊;另一種是在上電的時候掃
描每個塊在RAM中創建一個壞塊的映射表。NAND出廠的時候允許存在一些壞塊,這個大大
降低NAND的成本。
當在NAND存儲器中執行軟件代碼時,常使用虛存機制,代碼首先被交換到RAM中,然後在
RAM中執行。不過一般NAND用來存儲數據,而不是用於執行代碼。

標準化工作
開放NAND閃存接口工作組(Open NAND Flash Interface Working Group)開發了NAND的芯
片級標準--ONFI標準。它包括NAND FLASH的物理引腳形式;讀寫擦除NAND的命令集;自我
標識機制。
非易揮發性存儲器主機控制器工作組(Non-Volatile Memory Host Controller Interface
Working Group)NVMHCI。

NOR和NAND在兩個主要方面不同:獨立內存單元連接方式不同;提供讀寫的接口不同(NOR
允許隨機讀,NAND只允許按頁訪問)

串行接口的閃存,使用一個串行接口,典型的是SPI,支持序列數據訪問,一次傳送一位。
優點在於相對於並行接口來說較少的PCB連線,可以減少PCB板面積、省電以及降低整體成
本(原因有xxx)。常用來存放嵌入式系統的固件。
2006年閃存大概佔據了整個半導體市場產值的8%,半導體存儲市場的34%。

 

關於Memory Technology Devices(MTD),不做介紹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章