1. 程式人生 > >淺析嵌入式系統中的儲存器

淺析嵌入式系統中的儲存器

在我們的印象裡,儲存器型別不是RAMRandomAccessMemory隨機儲存器)就是ROMReadOnlyMemory只讀儲存器)。然而RAMROM下面有很多的分支,並且作為混合型儲存器(Hybrid)綜合了RAMROM兩種儲存器的特點。在RAM器件裡,資料在任何位置是可讀寫的,資料掉電消失;在ROM器件裡,資料是可以隨意讀取的,但是不能寫入,資料掉電儲存;Hybrid使用起來像ROM,但是在一些條件下是可寫入的。

1RAM分類

RAM分為兩種重要的儲存器器件:靜態隨機儲存器(SRAM)和動態隨機儲存器(DRAM)。他們之間主要的區別是資料儲存的持續時間。只要系統不斷電SRAM會一直保持裡面的內容,如果斷電或者僅僅瞬間斷電,

SRAM裡面的內容會永久消失。對於DRAM,系統需要週期性的重新整理,當我們將資料寫入DRAM後,經過一段時間,資料會丟失,因此需要一個額外電路進行記憶體重新整理操作。具體的工作過程是這樣的:一個DRAM的儲存單元儲存的是0還是1取決於電容是否有電荷,有電荷代表1,無電荷代表0。但時間一長,代表1的電容會放電,代表0的電容會吸收電荷,這就是資料丟失的原因。重新整理操作定期對電容進行檢查,若電量大於滿電量的12,則認為其代表1,並把電容充滿電;若電量小於12,則認為其代表0,並把電容放電,以此來保持資料的連續性。

SRAMDRAM的選擇上,系統設計人員必須考慮器件效能以及成本。SRAM器件提供快速的操作效能(通常是

DRAM的四倍),但是價格要高一些。通常來說SRAM用在對效能要求很高的場合。如果一個系統需要很少量的記憶體(比如幾十KB)並且主晶片內沒有DRAM控制器時,SRAM會是一個比較好的選擇,因為節省了DRAM控制器的成本。

當一個嵌入式系統需要大量的記憶體的時候並且對記憶體的效能要求不是那麼高的時候,通常選用DRAM。有一些系統SRAMDRAM會一起使用:少量的SRAM(幾十~幾百KB)來處理關鍵資料,其它的需要大量記憶體的使用DRAM。例如普通PC上,就是在CPU片內用SRAM來作為L2快取,而使用DRAM或者是它的升級版作為我們的主記憶體。

2ROM分類

我們用寫入ROM的方法和可寫入的次數來區分不同的

ROM。這種分類的方法反映出ROM器件的發展過程:從帶掩膜的只讀儲存器到可一次寫入到可擦寫。ROM的共性是即使掉電也能保持片內的資料不變。

最早的ROM是帶掩膜的只讀儲存器,在晶片生產之前必須準備好ROM要寫入的內容,也就是說實際寫入的資料的不同會導致ROM裡電晶體的排列不同。帶掩膜的只讀儲存器的優點是大批量生成並且不需要修改程式的情況下,價格便宜。

另一種型別的ROM是可程式設計的ROMProgrammable ROMPROM),出廠的時候是未寫入狀態(所有的bit1)。我們需要使用程式設計器把程式寫入到PROM裡,寫入的過程需要在PROM的某個管腳上加上比普通操作要高的電壓。一旦我們使用這種方法對PROM寫入了資料,PROM裡面的資料就不會改變。如果我們必須要改變裡面的內容,只能把這個片子拆下來,換個新片進行燒寫。PROM器件就是我們所熟知的OTP器件。

可擦除寫入儲存器(erasable-and-programmable ROM ,EPROM)寫入的過程和PROM類似,但是,EPROM是可重複擦除寫入的。擦除EPROM需要使器件暴露在強紫外光下,EPROM器件的上面有一個小窗,強紫外光透過這個小窗,使得EPROM恢復未初始化狀態。EPROM擦除的時間比較長,一般為1045分鐘。現在EPROM已經被技術跟先進的器件所替代,很少能看到EPROM器件了。

3、混合型(Hybrid)分類

隨著儲存器技術的成熟,有很多器件具有RAMROM兩者的優點,把這種器件歸為混合型儲存器。Hybrid儲存器能象RAM一樣進行讀寫,也能象ROM一樣掉電保持片內資料。對Hybrid器件的寫入和RAM類似,但是需要的時間要比RAM長的多,所以我們不能用這種型別的器件作為系統記憶體。EEPROMFlash主要繼承了ROM的特性,NVRAM主要繼承了SRAM的特性。

電可擦除寫入儲存器(electrically-erasable-and-programmable ROM, EEPROM)和EPROM類似,但是擦除操作是通過電來完成。EEPROM可以進行一個位元組的的擦寫,一旦資料被寫入到EEPROM會一直保持,直到下次被擦除。EEPROM的擦寫壽命一般為10萬次,訪問介面一般為I2C或這SPI。在嵌入式系統裡,一般用EEPROM儲存少量的會被頻繁更改的資料資訊,比如在機頂盒裡一般用EEPROM來儲存的當前頻道資訊,音量大小等。

非揮發性隨機存取儲存器(nonvolatile RAM)通常是由SRAM和後備電池組成。系統帶電的時候操作和SRAM一樣,系統掉電的時候,NVRAM從電池供電以保持裡面現在的狀態。

Flash器件綜合了上述儲存器的優點,容量大、低成本、非揮發性、快速(對於讀來說)、以及電可擦除寫入功能。這些優點是非常突出的,所以現在嵌入式系統裡大量使用FlashFlasheeprom技術是非常類似的,主要的差別是Flash一次只能擦除一個扇區(sector)或者一個塊(block),而不是一個位元組。Flash裡有兩個重要的分支,NOR FlashNAND FlashNORNAND是以晶片內電晶體的連線形態不同而命名的,NOR是或非,NAND是與非。

下面主要概述一下NOR FlashNAND Flash的差異:

NOR Flash

NAND Flash

XIP能力

效能

擦除慢

寫入慢

讀取快

擦除快

寫入快

讀取快

容量

常用範圍為1MB~32MB

常用範圍為16MB及以上

成本(每byte

擦寫次數

10萬次

100萬次

壞塊

不存在

存在壞塊,需要進行壞塊處理

定址能力

隨機

需要序列訪問

易於使用性

簡單

複雜

主要使用範圍

程式儲存

資料儲存(比如CFSDMMCPCMCIAMP3DC等)

XIP,executed inplace,本地執行。作業系統採用這種系統,可以不用將核心或執行程式碼拷貝到記憶體,而直接在程式碼的儲存空間直接執行。採用這樣的技術既可以節省可用記憶體又可以減少載入的時間。

1  NOR FlashNAND Flash的主要差異

3.1、介面差異

NOR Flash帶有SRAM介面,無需專門介面電路,可以很容易地存取其內部的每一個位元組,具有片內執行能力(XIP, eXecute In Place),應用程式可以直接在NOR Flash上執行,而不必把程式碼先讀取到RAM再執行。但同時也導致引腳較多,一般需要40個引腳以上,和片內容量有關。

NAND器件需要的引腳很少,通常需要不到20個引腳。NAND採用資料線、地址線、命令線共享I/O的方式來序列地存取資料,各個產品或廠商的方法可能各不相同。讀取片內資料的話需要先發送命令,地址(頁內偏移,頁號,塊號),再從片內讀取資料。相對NOR Flash來說讀取資料會慢一些。由於NAND Flash不具備XIP能力,所以在使用時需要主晶片具有NAND Flash控制模組,或者在系統上新增一個NOR Flash用來儲存啟動程式碼。現在有些NAND Flash片內集成了NAND Flash 控制模組和一個小容量的NOR Flash,具備了片內執行能力,比如DOCdisk on a chip)系列。

3.2、擦除寫入速度

NOR Flash通常是以32KB128KB為單位進行擦除和寫入的,一般需要消耗的時間為秒級。NAND Flash一般是以832KB為單位進行擦除和寫入的,執行相同的操作所消耗的時間為毫秒級。

3.3、容量和成本

NORFLASH的每個儲存單元與位線相連,增加了晶片內位線的數量,不利於儲存密度的提高。在面積和工藝相同的情況下,NANDFLASH的容量比NOR要大得多,生產成本更低,也更容易生產大容量的晶片。NOR Flash佔據了容量為116MB Flash市場的大部分,而NAND Flash比較適用與16MB以上的產品當中,NOR Flash主要應用在程式碼儲存介質中,NAND適合於資料儲存。

3.4、耐用性

NAND快閃記憶體中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。NAND儲存器除了具有101的塊擦除週期優勢。

除了以上差異外,NAND Flash有一個很大的缺點是存在壞塊。器件中的壞塊是隨機分佈的,以前也曾有過消除壞塊的努力,但發現成品率太低,代價太高,不划算。使用NAND器件,需要先對介質進行初始化掃描以發現壞塊,並將壞塊標記為不可用。在使用的時候要配合 EDC/ECC(錯誤探測/錯誤更正)BBM(壞塊管理)等軟體措施來保障資料的可靠性。