存儲器主要可分類為:
只讀儲存器(ROM)
閃存(Flash)
隨機(jī)存取存儲器(RAM)
光/磁介質(zhì)儲存器
不可編程ROM
可編程ROM:PROM
可擦除可編程ROM:EPROM
電可擦除可編程ROM:E2PROM(E2PROM完全可以用軟件來擦寫,已經(jīng)非常方便了)
用于存儲設(shè)備固件(軟件)和配置信息的芯片
特性:
長期保存數(shù)據(jù),掉電不丟失數(shù)據(jù),讀寫速度一般
容量:1MB-4GB都有
貼片式:TSOP、BGA封裝
兩種主要的Flash閃存技術(shù):
Nor(或非) Flash
Nand(與非) Flash
歷史發(fā)展:Intel于1988年首先開發(fā)出Nor Flash技術(shù),徹底改變了原先由EPROM和EEPROM一統(tǒng)天下的局面。緊接著,1989年,東芝公司發(fā)表了 Nand Flash結(jié)構(gòu),每位的成本被大大降低
Nor Flash
NOR Flash和CPU的接口屬于典型的類SRAM接口(如下圖所示),不需要增加額外的控制電路
NOR Flash的特點是可芯片內(nèi)執(zhí)行(eXecute In Place,XIP),程序可以直接在NOR內(nèi)運行
CFI接口:公共閃存接口(Common Flash Interface,CFI)是一個從NOR Flash器件中讀取數(shù)據(jù)的公開、標(biāo)準(zhǔn)接 口。它可以使系統(tǒng)軟件查詢已安裝的Flash器件的各種參數(shù),包括器件陣列結(jié)構(gòu)參數(shù)、電氣和時間參數(shù)以 及器件支持的功能等。如果芯片不支持CFI,就需使用JEDEC(Joint Electron Device Engineering Council, 電子電器設(shè)備聯(lián)合會)了。JEDEC規(guī)范的NOR則無法直接通過命令來讀出容量等信息,需要讀出制造商 ID和設(shè)備ID,以確定Flash的大小
SPI接口:目前NOR Flash可以使用SPI接口進(jìn)行訪問以節(jié)省引腳。相對于傳統(tǒng)的并行NOR Flash 而言,SPI NOR Flash只需要6個引腳就能夠?qū)崿F(xiàn)單I/O、雙I/O和4個I/O口的接口通信,有的SPI NOR Flash 還支持DDR模式,能進(jìn)一步提高訪問速度到80MB/s
特點:
易讀難寫
帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內(nèi)部的每一個字節(jié)
容量一般較小,為1~16MB
雖然難寫,但是仍然可以通過特殊工具進(jìn)行寫入
可以直接運行代碼,所以被用來存儲BootLoader、BIOS
Nand Flash
NAND Flash和CPU的接口必須由相應(yīng)的控制電路進(jìn)行轉(zhuǎn)換,當(dāng)然也可以通過地址線或GPIO產(chǎn)生NAND Flash接口的信號
NAND Flash以塊方式進(jìn)行訪問,不支持芯片內(nèi)執(zhí)行
與NOR Flash的類SRAM接口不同,一個NAND Flash的接口主要包含如下信號:
I/O總線:地址、指令和數(shù)據(jù)通過這組總線傳輸,一般為8位或16位。
芯片啟動(Chip Enable,CE#):如果沒有檢測到CE信號,NAND器件就保持待機(jī)模式,不對任何控制信號做出響應(yīng)
寫使能(Write Enable,WE#):WE#負(fù)責(zé)將數(shù)據(jù)、地址或指令寫入NAND之中。
讀使能(Read Enable,RE#):RE#允許數(shù)據(jù)輸出。
指令鎖存使能(Command Latch Enable,CLE):當(dāng)CLE為高電平時,在WE#信號的上升沿,指令將 被鎖存到NAND指令寄存器中
地址鎖存使能(Address Latch Enable,ALE):當(dāng)ALE為高電平時,在WE#信號的上升沿,地址將被 鎖存到NAND地址寄存器中
就緒/忙(Ready/Busy,R/B#):如果NAND器件忙,R/B#信號將變?yōu)榈碗娖?。該信號是漏極開路, 需要采用上拉電阻
特點:
可讀可寫
使用復(fù)雜的IO口來串行地存取數(shù)據(jù),各個產(chǎn)品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數(shù)據(jù)信息。Nand讀和寫操作采用512字節(jié)的塊,這一點有點像硬盤管理此類操作,很自然地,基于Nand的存儲器就可以取代硬盤或其他塊設(shè)備。大部分CPU不可直接尋址,需要驅(qū)動程序,常用于存儲數(shù)據(jù)
單純的用來存儲數(shù)據(jù),固態(tài)硬盤、U盤都是這種。一般存放文件系統(tǒng)、內(nèi)核
不能用來執(zhí)行代碼,因為沒有棧堆等信息,所以只能用來存放數(shù)據(jù)
位反轉(zhuǎn)
由于Flash固有的電器特性,在讀寫數(shù)據(jù)過程中,偶然會產(chǎn)生1位或幾位數(shù)據(jù)錯誤,即位反轉(zhuǎn),NAND Flash發(fā)生位反轉(zhuǎn)的概率要遠(yuǎn)大于NOR Flash。位反轉(zhuǎn)無法避免,因此,使用NAND Flash的同時,應(yīng)采用錯誤探測/錯誤更正(EDC/ECC)算法
塊擦除
Flash的編程原理都是只能將1寫為0,而不能將0寫為1。因此在Flash編程之前,必須將對應(yīng)的塊擦除,而擦除的過程就是把所有位都寫為1的過程,塊內(nèi)的所有字節(jié)變?yōu)?xFF
Nor Flash與Nand Flash的區(qū)別:
Nor Flash:以64~128KB的塊為例,執(zhí)行一個寫入/擦除操作的時間為5s。每個塊的最大擦寫次數(shù)是十萬次
Nand Flash:以8~32KB的塊為例,執(zhí)行一個寫入/擦除操作最多只需要4ms。每個塊的最大擦寫次數(shù)是一百萬次
另外,F(xiàn)lash還存在一個負(fù)載均衡的問題,不能老是在同一塊位置進(jìn)行擦除和寫的動作,這樣容易導(dǎo)致壞塊
Nor Flash與Nand Flash的其他區(qū)別
①NAND Flash較NOR Flash容量大,價格低
②NAND Flash的擦除、編程速度遠(yuǎn)超過NOR Flash
③Nand的擦除單元更小,相應(yīng)的此處電路更少
概念:內(nèi)存,一般在電路板上有多個引腳的芯片,就是內(nèi)存芯片
這里說的內(nèi)存一般都是運行內(nèi)存,對應(yīng)計算機(jī)的內(nèi)存條。通常人們說的存儲內(nèi)存對應(yīng)計算機(jī)中的硬盤(外存)
分類:
DRAM以電荷形式進(jìn)行存儲,數(shù)據(jù)存儲在電容器中。由于電容器會因漏電而出現(xiàn)電荷丟失,所以DRAM器件需要定期刷新
DRAM存儲單元由1個晶體管和1個電容器組成
通常所說的SDRAM、DDR SDRAM皆屬于DRAM的范疇,它們采用與CPU外存控制器同步的時鐘工作(注意,不是與CPU的工作頻率一致)。與SDRAM相比,DDR SDRAM同時利用了時鐘脈沖的上升沿 和下降沿傳輸數(shù)據(jù),因此在時鐘頻率不變的情況下,數(shù)據(jù)傳輸頻率加倍。此外,還存在使用 RSL(Rambus Signaling Level,Rambus發(fā)信電平)技術(shù)的RDRAM(Rambus DRAM)和Direct RDRAM
SRAM是靜態(tài)的, 只要供電它就會保持一個值,SRAM沒有刷新周期
每個SRAM存儲單元由6個晶體管組成
①靜態(tài)RAM(SRAM)
②動態(tài)RAM(DRAM)
特性:
臨時存儲數(shù)據(jù),掉電會丟失數(shù)據(jù),讀寫速度快
容量:1MB-4GB都有
貼片式:TSOP、BGA封裝
DPRAM:雙端口RAM
DPRAM的特點是可以通過兩個端口同時訪問,具有兩套完全獨立的數(shù)據(jù)總線、地址總線和讀寫控制 線,通常用于兩個處理器之間交互數(shù)據(jù),如下圖所示:
當(dāng)一端被寫入數(shù)據(jù)后,另一端可以通過輪詢或中斷獲知,并讀取其寫入的數(shù)據(jù)。由于雙CPU同時訪問DPRAM時的仲裁邏輯電路集成在DPRAM內(nèi)部,所以 需要硬件工程師設(shè)計的電路原理比較簡單
DPRAM的優(yōu)點是通信速度快、實時性強、接口簡單,而且兩邊處理器都可主動進(jìn)行數(shù)據(jù)傳輸
除了雙端口RAM以外,目前IDT等芯片廠商還推出了多端口RAM,可以供3個以上的處理器互通數(shù)據(jù)
CAM:內(nèi)容尋址RAM
CAM是以內(nèi)容進(jìn)行尋址的存儲器,是一種特殊的存儲陣列RAM,它的主要工作機(jī)制就是同時將一個 輸入數(shù)據(jù)項與存儲在CAM中的所有數(shù)據(jù)項自動進(jìn)行比較,判別該輸入數(shù)據(jù)項與CAM中存儲的數(shù)據(jù)項是否 相匹配,并輸出該數(shù)據(jù)項對應(yīng)的匹配信息
如下圖所示,在CAM中,輸入的是所要查詢的數(shù)據(jù),輸出的是數(shù)據(jù)地址和匹配標(biāo)志。若匹配(即搜 尋到數(shù)據(jù)),則輸出數(shù)據(jù)地址。CAM用于數(shù)據(jù)檢索的優(yōu)勢是軟件無法比擬的,它可以極大地提高系統(tǒng)性 能
FIFO存儲器:先進(jìn)先出隊列
FIFO存儲器的特點是先進(jìn)先出,進(jìn)出有序,F(xiàn)IFO多用于數(shù)據(jù)緩沖。FIFO和DPRAM類似,具有兩個訪 問端口,但是FIFO兩邊的端口并不對等,某一時刻只能設(shè)置為一邊作為輸入,一邊作為輸出。
如果FIFO的區(qū)域共有n個字節(jié),我們只能通過循環(huán)n次讀取同一個地址才能將該片區(qū)域讀出,不能指 定偏移地址。對于有n個數(shù)據(jù)的FIFO,當(dāng)循環(huán)讀取m次之后,下一次讀時會自動讀取到第m 1個數(shù)據(jù),這 是由FIFO本身的特性決定的
IDE(Integrated Drive Electronics)接口可連接硬盤控制器或光驅(qū),IDE接口的信號與SRAM類似。人 們通常也把IDE接口稱為ATA(Advanced Technology Attachment)接口,不過,從技術(shù)角度而言,這并不準(zhǔn) 確。其實,ATA接口發(fā)展至今,已經(jīng)經(jīng)歷了ATA-1(IDE)、ATA-2(Enhanced IDE/Fast ATA,EIDE)、 ATA-3(FastATA-2)、Ultra ATA、Ultra ATA/33、Ultra ATA/66、Ultra ATA/100及Serial ATA(SATA)的發(fā) 展過程
很多SoC集成了一個eFuse電編程熔絲作為OTP(One-Time Programmable,一次性可編程)存儲器。 eFuse可以通過計算機(jī)對芯片內(nèi)部的參數(shù)和功能進(jìn)行配置,這一般是在芯片出廠的時候已經(jīng)設(shè)置好了