NAND

NAND

計算機閃存設備
NAND閃存是一種比硬盤驅動器更好的存儲方案,這在不超過4GB的低容量應用中表現得猶為明顯。随着人們持續追求功耗更低、重量更輕和性能更佳的産品,NAND正被證明極具吸引力。NAND閃存是一種非易失性存儲技術,即斷電後仍能保存數據。它的發展目标就是降低每比特存儲成本、提高存儲容量。
  • 中文名:NAND
  • 外文名:
  • 所屬品牌:
  • 産品類型:
  • 英文名:NAND flash memory
  • 性質:比硬盤驅動器更好的存儲方案
  • 優勢:功耗更低、重量更輕和性能更佳
  • 工作原理:結合了EPROM和EEPROM結構
  • 功能:數據存儲

基本介紹

工作原理

閃存結合了EPROM的高密度和EEPROM結構的變通性的優點。

EPROM是指其中的内容可以通過特殊手段擦去,然後重新寫入。其基本單元電路如下圖所示。常采用浮空栅雪崩注入式MOS電路,簡稱為FAMOS。它與MOS電路相似,是在N型基片上生長出兩個高濃度的P型區,通過歐姆接觸分别引出源極S和漏極D。在源極和漏極之間有一個多晶矽栅極浮空在絕緣層中,與四周無直接電氣聯接。這種電路以浮空栅極是否帶電來表示存1或者0,浮空栅極帶電後(例如負電荷),就在其下面,源極和漏極之間感應出正的導電溝道,使MOS管導通,即表示存入0.若浮空栅極不帶電,則不能形成導電溝道,MOS管不導通,即存入1。

EEPROM基本存儲單元電路的工作原理如圖2.2所示。與EPROM相似,它是在EPROM基本單元電路的浮空栅極的上面再生成一個浮空栅,前者稱為第一級浮空栅,後者稱為第二級浮空栅。可給第二級浮空栅引出一個電極,使第二級浮空栅極接某一電壓VG。若VG為正電壓,第一浮空栅極與漏極之間産生隧道效應,使電子注入第一浮空栅極,即編程寫入。若使VG為負電壓,強使第一浮空栅極的電子散失,即擦除。擦除後可重新寫入。

閃存的基本單元電路與EEPROM類似,也是由雙層浮空栅MOS管組成。但是第一層栅介質很薄,作為隧道氧化層。寫入方法與EEPROM相同,在第二級浮空栅加正電壓,使電子進入第一級浮空栅。讀出方法與EPROM相同。擦除方法是在源極加正電壓利用第一級浮空栅與漏極之間的隧道效應,将注入到浮空栅的負電荷吸引到源極。由于利用源極加正電壓擦除,因此各單元的源極聯在一起,這樣,擦除不能按字節擦除,而是全片或者分塊擦除。随着半導體技術的改進,閃存也實現了單晶體管設計,主要就是在原有的晶體管上加入浮空栅和選擇栅,

NAND閃存陣列分為一系列128kB的區塊(block),這些區塊是NAND器件中最小的可擦除實體。擦除一個區塊就是把所有的位(bit)設置為“1”(而所有字節(byte)設置為FFh)。有必要通過編程,将已擦除的位從“1”變為“0”。最小的編程實體是字節(byte)。一些NOR閃存能同時執行讀寫操作(見下圖1)。雖然NAND不能同時執行讀寫操作,它可以采用稱為“映射(shadowing)”的方法,在系統級實現這一點。這種方法在個人電腦上已經沿用多年,即将BIOS從速率較低的ROM加載到速率較高的RAM上。

傳輸速率

NAND閃存卡的讀取速度遠大于寫入速度。

當芯片磨損,抹除與程序的操作速度會降到相當慢。傳遞多個小型文件時,若是每個文件長度均小于閃存芯片所定義的區塊大小時,就可能導緻很低的傳輸速率。訪問的遲滞也會影響性能,但還是比硬盤的遲滞影響小。

閃存控制器的質量也是影響性能的因素之一。即使閃存隻有在制造時做縮小晶粒(die-shrink)的改變,但如果欠缺合适的控制器,就可能引起速度的降級。

不同種類、不同工藝、不同技術水平的NAND閃存在讀寫速率上存在差異。同時,閃存産品的讀寫性能也與讀寫方式有關。一般閃存的數據接口為8位或者16位,其中8位較為常見。如果産品支持多通道并行讀寫,那麼就會有更高的速度。

優勢

NAND的效率較高,是因為NAND串中沒有金屬觸點。NAND閃存單元的大小比NOR要小(4F2:10F2)的原因,是NOR的每一個單元都需要獨立的金屬觸點。NAND與硬盤驅動器類似,基于扇區(頁),适合于存儲連續的數據,如圖片、音頻或個人電腦數據。雖然通過把數據映射到RAM上,能在系統級實現随機存取,但是,這樣做需要額外的RAM存儲空間。此外,跟硬盤一樣,NAND器件存在壞的扇區,需要糾錯碼(ECC)來維持數據的完整性。

存儲單元面積越小,裸片的面積也就越小。在這種情況下,NAND就能夠為當今的低成本消費市場提供存儲容量更大的閃存産品。NAND閃存用于幾乎所有可擦除的存儲卡。NAND的複用接口為所有最新的器件和密度都提供了一種相似的引腳輸出。這種引腳輸出使得設計工程師無須改變電路闆的硬件設計,就能從更小的密度移植到更大密度的設計上。

與NOR閃存比較

NAND閃存的優點在于寫(編程)和擦除操作的速率快,而NOR的優點是具有随機存取和對字節執行寫(編程)操作的能力(見下圖圖2)。NOR的随機存取能力支持直接代碼執行(XiP),而這是嵌入式應用經常需要的一個功能。NAND的缺點是随機存取的速率慢,NOR的缺點是受到讀和擦除速度慢的性能制約。NAND較适合于存儲文件。如今,越來越多的處理器具備直接NAND接口,并能直接從NAND(沒有NOR)導入數據。

編程速度快、擦除時間短

NAND的真正好處是編程速度快、擦除時間短。NAND支持速率超過5Mbps的持續寫操作,其區塊擦除時間短至2ms,而NOR是750ms。顯然,NAND在某些方面具有絕對優勢。然而,它不太适合于直接随機存取。

對于16位的器件,NOR閃存大約需要41個I/O引腳;相對而言,NAND器件僅需24個引腳。NAND器件能夠複用指令、地址和數據總線,從而節省了引腳數量。複用接口的一項好處,就在于能夠利用同樣的硬件設計和電路闆,支持較大的NAND器件。由于普通的TSOP-1封裝已經沿用多年,該功能讓客戶能夠把較高密度的NAND器件移植到相同的電路闆上。NAND器件的另外一個好處顯然是其封裝選項:NAND提供一種厚膜的2Gb裸片或能夠支持最多四顆堆疊裸片,容許在相同的TSOP-1封裝中堆疊一個8Gb的器件。這就使得一種封裝和接口能夠在将來支持較高的密度。

NOR閃存的随機存取時間為0.12ms,而NAND閃存的第一字節随機存取速度要慢得多

以2Gb NAND器件為例,它由2048個區塊組成,每個區塊有64個頁

2GB NAND閃存包含2,048個區塊

基本操作

每一個頁均包含一個2048字節的數據區和64字節的空閑區,總共包含2,112字節。空閑區通常被用于ECC、耗損均衡(wear leveling)和其它軟件開銷功能,盡管它在物理上與其它頁并沒有區别。NAND器件具有8或16位接口。通過8或16位寬的雙向數據總線,主數據被連接到NAND存儲器。在16位模式,指令和地址僅僅利用低8位,而高8位僅僅在數據傳輸周期使用。

擦除區塊所需時間約為2ms。一旦數據被載入寄存器,對一個頁的編程大約要300μs。讀一個頁面需要大約25μs,其中涉及到存儲陣列訪問頁,并将頁載入16,896位寄存器中。

接口由6個主要控制信号構成

除了I/O總線,NAND接口由6個主要控制信号構成:

1.芯片啟動(Chip Enable, CE#):如果沒有檢測到CE信号,那麼,NAND器件就保持待機模式,不對任何控制信号作出響應。

2.寫使能(Write Enable, WE#): WE#負責将數據、地址或指令寫入NAND之中。

3.讀使能(Read Enable, RE#): RE#允許輸出數據緩沖器。

4.指令鎖存使能(Command Latch Enable, CLE): 當CLE為高時,在WE#信号的上升沿,指令被鎖存到NAND指令寄存器中。

5.地址鎖存使能(Address Latch Enable, ALE):當ALE為高時,在WE#信号的上升沿,地址被鎖存到NAND地址寄存器中。

6.就緒/忙(Ready/Busy, R/B#):如果NAND器件忙,R/B#信号将變低。該信号是漏極開路,需要采用上拉電阻。

數據每次進/出NAND寄存器都是通過16位或8位接口。當進行編程操作的時候,待編程的數據進入數據寄存器,處于在WE#信号的上升沿。在寄存器内随機存取或移動數據,要采用專用指令以便于随機存取。

數據寄存器輸出數據的方式

數據寄存器輸出數據的方式與利用RE#信号的方式類似,負責輸出現有的數據,并增加到下一個地址。WE#和RE#時鐘運行速度極快,達到30ns的水準。當RE#或CE#不為低的時候,輸出緩沖器将為三态。這種CE#和RE#的組合使能輸出緩沖器,容許NAND閃存與NOR、SRAM或DRAM等其它類型存儲器共享數據總線。該功能有時被稱為“無需介意芯片啟動(chip enable don't care)”。這種方案的初衷是适應較老的NAND器件,它們要求CE#在整個周期為低(譯注:根據上下文改寫)。

輸入寄存器接收到頁編程(80h)指令時,内部就會全部重置為1s,使得用戶可以隻輸入他想以0位編程的數據字節

帶有随機數據輸入的編程指令。該指令隻需要後面跟随着數據的2個字節的地址

指令周期

所有NAND操作開始時,都提供一個指令周期

當輸出一串WE#時鐘時,通過在I/O位7:0上設置指令、驅動CE#變低且CLE變高,就可以實現一個指令周期。注意:在WE#信号的上升沿上,指令、地址或數據被鎖存到NAND器件之中。如表1所示,大多數指令在第二個指令周期之後要占用若幹地址周期。注意:複位或讀狀态指令例外,如果器件忙,就不應該發送新的指令。

注意:因為最後一列的位置是2112,該最後位置的地址就是08h(在第二字節中)和3Fh(在第一字節中)。PA5:0指定區塊内的頁地址,BA16:6指定區塊的地址。雖然大多編程和讀操作需要完整的5字節地址,在頁内随機存取數據的操作僅僅用到第一和第二字節。塊擦除操作僅僅需要三個最高字節(第三、第四和第五字節)來選擇區塊。

總體而言,NAND的基本操作包括:複位(Reset, FFh)操作、讀ID(Read ID, 00h)操作、讀狀态(Read Status, 70h)操作、編程(Program)操作、随機數據輸入(Random data input, 85h)操作和讀(Read)操作等。

連接到處理器

選擇内置NAND接口的處理器或控制器的好處很多。如果沒有這個選擇,有可能在NAND和幾乎任何處理器之間設計一個“無粘接邏輯(glueless)”接口。NAND和NOR閃存的主要區别是複用地址和數據總線。該總線被用于指定指令、地址或數據。CLE信号指定指令周期,而ALE信号指定地址周期。利用這兩個控制信号,有可能選擇指令、地址或數據周期。把ALE連接到處理器的第五地址位,而把CLE連接到處理器的第四地址位,就能簡單地通過改變處理器輸出的地址,任意選擇指令、地址或數據。這容許CLE和ALE在合适的時間自動設置為低。

為了提供指令,處理器在數據總線上輸出想要的指令,并輸出地址0010h;為了輸出任意數量的地址周期,處理器僅僅要依次在處理器地址0020h之後輸出想要的NAND地址。注意,許多處理器能在處理器的寫信号周圍指定若幹時序參數,這對于建立合适的時序是至關重要的。利用該技術,你不必采用任何粘接邏輯,就可以直接從處理器存取指令、地址和數據。

多層單元

多層單元(MLC)的每一個單元存儲兩位,而傳統的SLC僅僅能存儲一位。MLC技術有顯着的密度優越性,然而,與SLC相比(表3),其速度或可靠性稍遜。因此,SLC被用于大多數媒體卡和無線應用,而MLC器件通常被用于消費電子和其它低成本産品。

NAND需要ECC以确保數據完整性

NAND閃存的每一個頁面上都包括額外的存儲空間,它就是64個字節的空閑區(每512字節的扇區有16字節)。該區能存儲ECC代碼及其它像磨損評級或邏輯到物理塊映射之類的信息。ECC能在硬件或軟件中執行,但是,硬件執行有明顯的性能優勢。在編程操作期間,ECC單元根據扇區中存儲的數據來計算誤碼校正代碼。數據區的ECC代碼然後被分别寫入到各自的空閑區。當數據被讀出時,ECC代碼也被讀出;運用反操作可以核查讀出的數據是否正确。

有可能采用ECC算法來校正數據錯誤

能校正的錯誤的數量取決于所用算法的校正強度。在硬件或軟件中包含ECC,就提供了強大的系統級解決方案。最簡單的硬件實現方案是采用簡單的漢明(Simple Hamming)碼,但是,隻能校正單一位錯誤。瑞德索羅門(Reed-Solomon)碼提供更為強大的糾錯,并被控制器廣為采用。此外,BCH碼由于比瑞德索羅門方法的效率高,應用也日益普及。LSI SHIELD技術采用多級ECC模式,對SSD進行優化的高級糾錯功能解決NAND閃存存儲器的可靠性降低和使用壽命縮短等問題。

要用軟件執行NAND閃存的區塊管理

該軟件負責磨損評級或邏輯到物理映射。該軟件還提供ECC碼,如果處理器不包含ECC硬件的話。

編程或擦除操作之後,重要的是讀狀态寄存器,因為它确認是否成功地完成了編程或擦除操作。如果操作失敗,要把該區塊标記為損壞且不能再使用。以前已編寫進去的數據要從損壞的區塊中搬出,轉移到新的(好的)存儲塊之中。2Gb NAND的規範規定,它可以最多有40個壞的區塊,這個數字在器件的生命周期(額定壽命為10萬次編程/擦除周期)内都适用。一些有壞塊的NAND器件能夠出廠,主要就歸根于其裸片面積大。管理器件的軟件負責映射壞塊并由好的存儲塊取而代之。

軟件通過掃描塊可以确定區塊的好壞

利用工廠對這些區塊的标記,軟件通過掃描塊可以确定區塊的好壞。壞塊标記被固定在空閑區的第一個位置(列地址2048)。如果在0或1頁的列地址2048上的數據是“non-FF”,那麼,該塊要标記為壞,并映射出系統。初始化軟件僅僅需要掃描所有區塊确定以确定哪個為壞,然後建一個壞塊表供将來參考。

小心不要擦除壞塊标記

這一點很重要。工廠在寬溫和寬電壓範圍内測試了NAND;一些由工廠标記為壞的區塊可能在一定的溫度或電壓條件下仍然能工作,但是,将來可能會失效。如果壞塊信息被擦除,就無法再恢複。

其他

另外,NAND在某些地方,尤其是數字電路,和vhdl等一些描述語言中代表與非,或是與非門的意思。

相關詞條

相關搜索

其它詞條