嵌入式系統存儲(RAM、ROM、Flash)

目錄

 

1.儲存器系統層次結構

2.RAM的種類

3.ROM的種類

4.Flash Memory的種類


1.儲存器系統層次結構

1.CPU內部寄存器  
2.芯片內部的高速緩存(cache) 
3.芯片外的高速緩存(SRAM、DRAM、DDRAM)
4.主存儲器(Flash、PROM、EPROM、EEPROM) 
5.外部存儲器(磁盤、光盤、CF、SD卡)
6.遠程二級存儲(分佈式文件系統、Web服務器)

共六個層次結構。這些設備從上到下,依次變得更慢、訪問頻率更小、容量更大,每字節的造價也更加便宜。

在這種存儲器分層結構中,上面一層的存儲器做爲下一層存儲器的高速緩存。CPU寄存器就是cache的高速存儲器,寄存器保存來自cache的字;cache又是內存層的高速緩存,從內存層提取數據送給CPU進行處理,並將CPU處理的結果返回內存當中;內存又是主存儲器的高速緩存,它將經常使用到的數據從Flash等主存儲器的提取出來,放到內存中,從而加快了CPU的運行效率。嵌入式的主存儲器的容量是有限的,當遇到大量信息數據時,就需要將其保存到磁盤、光盤或CF、SD卡等外部存儲器中,並在需要調用時從外部存儲器中提取調用數據。在某些帶有分布式文件系統的嵌入式網絡系統中,外部存儲器就作爲其他系統中被存儲數據的高速緩存。

2.RAM的種類

RAM可以被讀和寫,但斷電數據會丟失,它適合在程序運行時保存動態的信息數據。RAM可以分爲SRAM(靜態隨機存儲器)和DRAM(動態隨機存儲器)。這兩類具有不同的特徵:

  • SRAM比DRAM運行速度快
  • SRAM比DRAM耗電多
  • 在一個芯片上可以置放更多的DRAM
  • DRAM需要週期性刷新

常見的RAM分類如下:

  • SRAM(Static RAM,靜態隨機存儲器)

SRAM是靜態的,因此只要供電它就會保持一個值。SRAM沒有刷新週期,有觸發器構成基本單元,集成度低,每個SRAM存儲單元由6個晶體管組成,因此成本較高。SRAM具有較高的速率,常常同於高速緩衝存儲器。

  • DRAM(Dynamic RAM,動態隨機存儲器)

這是一種以電荷形式進行存儲的半導體存儲器。DRAM中的每一個存儲單元由一個晶體管和一個電容組成,數據存儲在電容器中。電容器會由於漏電而導致電荷丟失,因而DRAM器件是不穩定的。爲了將數據保存在存儲器中,DRAM器件必需有規律地定時進行刷新。

  • DDRAM(Double Data Rate SDRAM,雙倍速率隨機存儲器)

隨着嵌入式處理器主頻的提高,SDRAM的速度逐漸成了限制系統性能的瓶頸。SDRAM通常只能工作咋133MHz主頻,而現在很多32位處理器的主頻已經達到了200MHz以上。DDRAM就是這種需求下出現的,目前已佔據了內存技術的主流,且價格便宜。

DDRAM依靠一種叫做雙倍預取(2n-prefetch)的技術,即在內存芯片內部的數據寬度是外部接口數據寬度的2倍,使峯值的讀寫速度達到輸入時鐘速率的2倍,並且DDRAM允許在時鐘脈衝上升沿或下降沿傳輸數據,這樣不需要提高時鐘頻率就能加倍提高SDRAM的速度,並具有SDRAM多一倍的傳輸速率和內存帶寬。同時爲了保證在高速運行時的信號完整性,DDRAM技術還採用了差分輸入的方式。總的來說DDRAM採用更低的電壓、差分輸入和雙倍數據速率輸出等技術。

3.ROM的種類

       ROM的特點是在燒入數據後,無需外加電源來保存數據。斷電數據不丟失,但速度較慢,因此適合存儲需長期保留的不變數據。常見ROM的分類如下:

  • Mask ROM(掩膜ROM)

一次性由廠家寫入數據的ROM,用戶無法修改。

  • PROM(Programmable ROM 可編程ROM)

只允許用戶利用專門的設備(編程器)將自己的程序寫入一次,一旦寫入後,其內容將無法改變。所以也叫做一次可編程只讀存儲器(One Time Programming ROM)。

  • EPROM(Erasable Programmable ROM 電可擦寫ROM)

不僅可以由用戶利用編程器寫入程序,而且可以對其內容進行多次改寫。出廠時其內容爲全“1”,用戶根據其程序將某些記憶單元改爲“0”;當需要修改時需要將所有內容擦除(恢復爲“1”),以便寫入新的內容。

EPROM又分爲兩種,UVEPROM(紫外線擦除)和EEPROM(電擦除)。UVEPROM需要用紫外線燈製作的擦抹器照射存儲器芯片上的透明窗口,使芯片原來的內容被擦除。用紫外線進行擦除只能對整個芯片擦除,而不能對芯片中個別需要改的存儲單元單獨擦除。

EPROM雖然即可讀又可“寫”,但它不能取代RAM。因爲EPROM的編程次數是有限的;而且它寫入的時間較長,即使對於EEPROM,擦除一個字節需要約10ms,寫入一個字節大約需要10us,比SRAM或DRAM的時間長100~1000倍。

  • EEPROM(E2PROM)電可擦除可編程ROM

EEPROM不但可以利用電壓的高低來寫入數據,還可以利用電壓的高低清除EEROM所存儲的數據。EEPROM在數據清除時還可以針對個別的存儲單元進行清除操作,比起EPROM需要整個清除數據方便許多。EEPROM的數據存儲保持能力可以長達10年,而數據清除再被規劃的次數可以達到一萬次以上,因此EEPROM的使用比EPROM更爲普遍,而且更受歡迎。

  • Flash ROM(閃速存儲器)

Flash ROM 具有結構簡單、控制靈活、編程可靠、加可電擦寫快捷的優點,而且集成度可以都做得很高,它綜合了前面的所有優點:不會斷電丟失數據,快速讀取,可電擦寫可編程,因此在手機,PC,PPC等電器中成功地獲得了廣泛的應用。

4.Flash Memory的種類

Flash memory是嵌入式系統中重要的組成部分,它在嵌入式系統中的功能可以和硬盤在PC中的功能相比。它們都是用來存儲程序和數據的,而且可以在掉電的情況下繼續保存數據使其不會丟失。

Flash memory(閃速存儲器)作爲一種安全、快速的存儲體,具有體積小,容量大,成本低,掉電數據不丟失等一系列優點,已成爲嵌入式系統中數據和程序最主要的載體。根據結構的不同可以將其分爲NOR FlashNAND Flash兩種。Flash Memory具有的特點如下:

  • 區塊結構

Flash Memory在物理結構上分成若干個區塊,區塊之間相互獨立。比如NOR Flash把整個存儲區分成若干個扇區(Sector),而NAND Flash把整個存儲區分成若干個塊(Block)。

  • 先擦後寫

由於Flash Memory的寫操作只能將數據位1寫成0,不能從0寫成1,所以在對存儲器進行寫之前必須先執行擦除操作,將預寫入的數據位初始化爲1,擦操作的最小單位是一個區塊,而不是單個字節。

  • 操作指令

除了NOR Flash的讀,Flash Memory的其他操作不能像RAM那樣,直接對目標地址進行總線操作。比如執行一次寫操作,它必須輸入一串特殊的指令(NOR Flash),或者完成一段時序(NAND Flash)才能將數據寫入到Flash Memory中。

  • 位反轉

由於Flash Memory固有的電器特性,在讀寫數據過程中,偶然會產生一位或幾位數據錯誤。這就是位反轉。位反轉無法避免,只能通過其他手段對結果進行事後處理。

  • 壞塊

由於Flash Memory在使用過程中,可能導致某些區塊的損壞。區塊一旦損壞,將無法進行修復。如果對已損壞的區塊進行操作,可能帶來不可預測的錯誤。尤其是NAND Flash在出廠時就可能存在這樣的壞塊(已經被標識出)。

  • NOR Flash

NOR Flash的特點是應用程序可以直接在閃存中運行,不需要再把代碼讀到系統RAM中運行。NOR Flash的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但很低的擦除和寫入速度大大影響了它的性能。

  • NAND Flash

NAND Flash的結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度也很快,這也是爲何很多U盤採用NAND Flash作爲存儲介質的原因。應用NAND Flash的困難在於閃存和需要特殊的系統接口。

  • NOR Flash和NAND Flash各自的典型特徵和不同點

1.性能差異

NOR Flash的讀速度比NAND Flash稍快一些

NAND Flash的寫入速度比NOR Flash快很多

NAND Flash的擦除速度遠比NOR Flash的快很多。大多數寫入操作需要先進行擦除操作。

NAND Flash的隨機讀取能力差,適合大量數據的連續獲取。

2.接口差異

NOR Flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內部的每一個字節。NAND Flash地址、數據和命令共用8位總線,每一次讀寫都要使用複雜的I/O接口串行地存取數據,8個引腳用來傳送控制、地址和資料信息。

NAND Flash讀和寫操作採用521B的塊,有點像硬盤的管理操作。因此,基於NAND的閃存可以取代硬盤或其他塊設備。

3.容量和成本

NAND Flash的單元尺寸幾乎是NOR Flash的一半,由於生產過程更爲簡單,NAND Flash結構可以在給定的模具尺寸內提供更高的容量,也就相應地降低了價格。

NOR Flash容量一般較小,通常在1MB~8MB之間。而NAND Flash只是用在8MB以上的產品中,這也說明NOR Flash主要應用在代碼存儲介質中,NAND Flash適合用於資料存儲。

4.可靠性和耐用性

壽命(耐用性):在NAND Flash中每個塊的最大擦寫次數是一百萬次,而NOR Flash的擦寫次數是十萬次

位交換:所有Flash Memory器件都受位交換現象的困擾。在某些情況下(很少見,NAND Flash發生的次數要比NOR Flash多),一個比特位會發生反轉或被報告反轉了。

壞塊處理:NAND Flash中的壞塊是隨機分佈的。以前曾有過消除壞塊的努力,但發現成品率太低,代價太高,根本不划算。NAND Flash需要對介質進行初始化掃描以發現壞塊,並對壞塊進行標記不可用。在已製成的器件中,如果通過可靠的方法不能進行這項處理,將導致高故障率。

5.易用性

可以非常直接地使用基於NOR Flash,可以像其他內存那樣連接,並可以在上面直接運行代碼。

由於需要I/O接口,NAND Flash要複雜得多。各種NAND Flash的存取方法因廠家而異。在使用NAND Flash時,必須先寫入驅動程序,才能繼續執行其他操作。向NAND Flash寫入數據需要相當的技巧,因爲設計師絕不能向壞塊寫入,這就意味着NAND Flash上自始至終都必須進行虛擬映像。

6.軟件支持

當討論技術支持的時候,應該區別基本的讀/寫/擦操作和高一級的用於磁盤仿真和Flash Memory管理算法的軟件,包括性能優化。

在NOR Flash上運行代碼不需要任何的技術支持。而在NAND Flash上進行同樣的操作時,通常需要驅動程序,也就是內存技術驅動程序(MTD),NAND Flash和NOR Flash在進行寫入和擦除時都需要MTD。

7.市場定位

根據前面多介紹的NAND Flash和NOR Flash的特點,兩者各自擁有相應的不同應用。一般來說,NOR Flash用於對數據可靠性要求較高的代碼存儲、通訊產品、網絡處理等領域。而NAND Flash則用於對容量要求較高的MP3、存儲卡、U盤等領域。正是如此,NOR Flash也被稱爲代碼閃存(Code Flash),而NAND Flash也被稱爲數據閃存(Data Flash)。

摘自《嵌入式系統設計師教程》一書。

 

《讀書之法,在循序而漸進,熟讀而精思。——朱熹》

 

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