NAND閃存深入解析
NAND閃存陣列分為一系列128kB的區(qū)塊(block),這些區(qū)塊是NAND器件中最小的可擦除實體。擦除一個區(qū)塊就是把所有的位(bit)設(shè)置為“1”(而所有字節(jié)(byte)設(shè)置為FFh)。有必要通過編程,將已擦除的位從“1”變?yōu)椤?”。最小的編程實體是字節(jié)(byte)。一些NOR閃存能同時執(zhí)行讀寫操作(見下圖1)。雖然NAND不能同時執(zhí)行讀寫操作,它可以采用稱為“映射(shadowing)”的方法,在系統(tǒng)級實現(xiàn)這一點。這種方法在個人電腦上已經(jīng)沿用多年,即將BIOS從速率較低的ROM加載到速率較高的RAM上。
NAND的效率較高,是因為NAND串中沒有金屬觸點。NAND閃存單元的大小比NOR要小(4F2:10F2)的原因,是NOR的每一個單元都需要獨立的金屬觸點。NAND與硬盤驅(qū)動器類似,基于扇區(qū)(頁),適合于存儲連續(xù)的數(shù)據(jù),如圖片、音頻或個人電腦數(shù)據(jù)。雖然通過把數(shù)據(jù)映射到RAM上,能在系統(tǒng)級實現(xiàn)隨機存取,但是,這樣做需要額外的RAM存儲空間。此外,跟硬盤一樣,NAND器件存在壞的扇區(qū),需要糾錯碼(ECC)來維持?jǐn)?shù)據(jù)的完整性。
存儲單元面積越小,裸片的面積也就越小。在這種情況下,NAND就能夠為當(dāng)今的低成本消費市場提供存儲容量更大的閃存產(chǎn)品。NAND閃存用于幾乎所有可擦除的存儲卡。NAND的復(fù)用接口為所有最新的器件和密度都提供了一種相似的引腳輸出。這種引腳輸出使得設(shè)計工程師無須改變電路板的硬件設(shè)計,就能從更小的密度移植到更大密度的設(shè)計上。
NAND與NOR閃存比較
NAND閃存的優(yōu)點在于寫(編程)和擦除操作的速率快,而NOR的優(yōu)點是具有隨機存取和對字節(jié)執(zhí)行寫(編程)操作的能力(見下圖圖2)。NOR的隨機存取能力支持直接代碼執(zhí)行(XiP),而這是嵌入式應(yīng)用經(jīng)常需要的一個功能。NAND的缺點是隨機存取的速率慢,NOR的缺點是受到讀和擦除速度慢的性能制約。NAND較適合于存儲文件。如今,越來越多的處理器具備直接NAND接口,并能直接從NAND(沒有NOR)導(dǎo)入數(shù)據(jù)。
NAND的真正好處是編程速度快、擦除時間短。NAND支持速率超過5Mbps的持續(xù)寫操作,其區(qū)塊擦除時間短至2ms,而NOR是750ms。顯然,NAND在某些方面具有絕對優(yōu)勢。然而,它不太適合于直接隨機存取。
對于16位的器件,NOR閃存大約需要41個I/O引腳;相對而言,NAND器件僅需24個引腳。NAND器件能夠復(fù)用指令、地址和數(shù)據(jù)總線,從而節(jié)省了引腳數(shù)量。復(fù)用接口的一項好處,就在于能夠利用同樣的硬件設(shè)計和電路板,支持較大的NAND器件。由于普通的TSOP-1封裝已經(jīng)沿用多年,該功能讓客戶能夠把較高密度的NAND器件移植到相同的電路板上。NAND器件的另外一個好處顯然是其封裝選項:NAND提供一種厚膜的2Gb裸片或能夠支持最多四顆堆疊裸片,容許在相同的TSOP-1封裝中堆疊一個8Gb的器件。這就使得一種封裝和接口能夠在將來支持較高的密度。
圖1 不同閃存單元的對比
圖2 NOR閃存的隨機存取時間為0.12ms,而NAND閃存的第一字節(jié)隨機存取速度要慢得多
NAND基本操作
以2Gb NAND器件為例,它由2048個區(qū)塊組成,每個區(qū)塊有6?個頁(見圖3)。
圖3 2GB NAND閃存包含2,048個區(qū)塊
每一個頁均包含一個2048字節(jié)的數(shù)據(jù)區(qū)和6?字節(jié)的空閑區(qū),總共包含2,112字節(jié)??臻e區(qū)通常被用于ECC、耗損均衡(wear leveling)和其它軟件開銷功能,盡管它在物理上與其它頁并沒有區(qū)別。NAND器件具有8或16位接口。通過8或16位寬的雙向數(shù)據(jù)總線,主數(shù)據(jù)被連接到NAND存儲器。在16位模式,指令和地址僅僅利用低8位,而高8位僅僅在數(shù)據(jù)傳輸周期使用。
擦除區(qū)塊所需時間約為2ms。一旦數(shù)據(jù)被載入寄存器,對一個頁的編程大約要300μs。讀一個頁面需要大約25μs,其中涉及到存儲陣列訪問頁,并將頁載入16,8?6位寄存器中。
除了I/O總線,NAND接口由6個主要控制信號構(gòu)成:
1.芯片啟動(Chip Enable, CE#):如果沒有檢測到CE信號,那么,NAND器件就保持待機模式,不對任何控制信號作出響應(yīng)。
2.寫使能(Write Enable, WE#): WE#負(fù)責(zé)將數(shù)據(jù)、地址或指令寫入NAND之中。
3.讀使能(Read Enable, RE#): RE#允許輸出數(shù)據(jù)緩沖器。
4.指令鎖存使能(Command Latch Enable, CLE): 當(dāng)CLE為高時,在WE#信號的上升沿,指令被鎖存到NAND指令寄存器中。
5.地址鎖存使能(Address Latch Enable, ALE):當(dāng)ALE為高時,在WE#信號的上升沿,地址被鎖存到NAND地址寄存器中。
6.就緒/忙(Ready/Busy, R/B#):如果NAND器件忙,R/B#信號將變低。該信號是漏極開路,需要采用上拉電阻。
數(shù)據(jù)每次進(jìn)/出NAND寄存器都是通過16位或8位接口。當(dāng)進(jìn)行編程操作的時候,待編程的數(shù)據(jù)進(jìn)入數(shù)據(jù)寄存器,處于在WE#信號的上升沿。在寄存器內(nèi)隨機存取或移動數(shù)據(jù),要采用專用指令以便于隨機存取。
數(shù)據(jù)寄存器輸出數(shù)據(jù)的方式與利用RE#信號的方式類似,負(fù)責(zé)輸出現(xiàn)有的數(shù)據(jù),并增加到下一個地址。WE#和RE#時鐘運行速度極快,達(dá)到30ns的水準(zhǔn)。當(dāng)RE#或CE#不為低的時候,輸出緩沖器將為三態(tài)。這種CE#和RE#的組合使能輸出緩沖器,容許NAND閃存與NOR、SRAM或DRAM等其它類型存儲器共享數(shù)據(jù)總線。該功能有時被稱為“無需介意芯片啟動(chip enable don‘t care)”。這種方案的初衷是適應(yīng)較老的NAND器件,它們要求CE#在整個周期為低(譯注:根據(jù)上下文改寫)。
圖4 輸入寄存器接收到頁編程(80h)指令時,內(nèi)部就會全部重置為1s,使得用戶可以只輸入他想以0位編程的數(shù)據(jù)字節(jié)
圖5 帶有隨機數(shù)據(jù)輸入的編程指令。圖中加亮的扇區(qū)顯示,該指令只需要后面跟隨著數(shù)據(jù)的2個字節(jié)的地址
所有NAND操作開始時,都提供一個指令周期(表1)。
當(dāng)輸出一串WE#時鐘時,通過在I/O位7:0上設(shè)置指令、驅(qū)動CE#變低且CLE變高,就可以實現(xiàn)一個指令周期。注意:在WE#信號的上升沿上,指令、地址或數(shù)據(jù)被鎖存到NAND器件之中。如表1所示,大多數(shù)指令在第二個指令周期之后要占用若干地址周期。注意:復(fù)位或讀狀態(tài)指令例外,如果器件忙,就不應(yīng)該發(fā)送新的指令。
以2Gb NAND器件的尋址方案為例,第一和第二地址周期指定列地址,該列地址指定頁內(nèi)的起始字節(jié)(表2)。
注意:因為最后一列的位置是2112,該最后位置的地址就是08h(在第二字節(jié)中)和3Fh(在第一字節(jié)中)。PA5:0指定區(qū)塊內(nèi)的頁地址,BA16:6指定區(qū)塊的地址。雖然大多編程和讀操作需要完整的5字節(jié)地址,在頁內(nèi)隨機存取數(shù)據(jù)的操作僅僅用到第一和第二字節(jié)。塊擦除操作僅僅需要三個最高字節(jié)(第三、第四和第五字節(jié))來選擇區(qū)塊。
圖6 典型的存儲方法
圖7 頁讀緩存模式
總體而言,NAND的基本操作包括:復(fù)位(Reset, FFh)操作、讀ID(Read ID, 00h)操作、讀狀態(tài)(Read Status, 70h)操作、編程(Program)操作、隨機數(shù)據(jù)輸入(Random data input, 85h)操作和讀(Read)操作等。
將NAND連接到處理器
選擇內(nèi)置
評論