當(dāng)前位置:首頁(yè) > 百科知識(shí) > 電子工程 > 正文

NAND

NAND閃存是一種比硬盤(pán)驅(qū)動(dòng)器更好的存儲(chǔ)方案,這在不超過(guò)4GB的低容量應(yīng)用中表現(xiàn)得猶為明顯。隨著人們持續(xù)追求功耗更低、重量更輕和性能更佳的產(chǎn)品,NAND正被證明極具吸引力。NAND閃存是一種非易失性存儲(chǔ)技術(shù),即斷電后仍能保存數(shù)據(jù)。它的發(fā)展目標(biāo)就是降低每比特存儲(chǔ)成本、提高存儲(chǔ)容量。

基本介紹編輯

工作原理

  閃存結(jié)合了EPROM的高密度和EEPROM結(jié)構(gòu)的變通性的優(yōu)點(diǎn)。

  EPROM是指其中的內(nèi)容可以通過(guò)特殊手段擦去,然后重新寫(xiě)入。其基本單元電路如下圖所示。常采用浮空柵雪崩注入式MOS電路,簡(jiǎn)稱為FAMOS。它與MOS電路相似,是在N型基片上生長(zhǎng)出兩個(gè)高濃度的P型區(qū),通過(guò)歐姆接觸分別引出源極S和漏極D。在源極和漏極之間有一個(gè)多晶硅柵極浮空在 絕緣層中,與四周無(wú)直接電氣聯(lián)接。這種電路以浮空柵極是否帶電來(lái)表示存1或者0,浮空柵極帶電后(例如負(fù)電荷),就在其下面,源極和漏極之間感應(yīng)出正的導(dǎo)電溝道,使MOS管導(dǎo)通,即表示存入0.若浮空柵極不帶電,則不能形成導(dǎo)電溝道,MOS管不導(dǎo)通,即存入1。

  EPROM基本單元結(jié)構(gòu)

  EPROM基本單元結(jié)構(gòu)

  EEPROM基本存儲(chǔ)單元電路的工作原理如圖2.2所示。與EPROM相似,它是在EPROM基本單元電路的浮空柵極的上面再生成一個(gè)浮空柵,前者稱為第一級(jí)浮空柵,后者稱為第二級(jí)浮空柵??山o第二級(jí)浮空柵引出一個(gè)電極,使第二級(jí)浮空柵極接某一電壓VG。若VG為正電壓,第一浮空柵極與漏極之間產(chǎn)生隧道效應(yīng),使電子注入第一浮空柵極,即編程寫(xiě)入。若使VG為負(fù)電壓,強(qiáng)使第一浮空柵極的電子散失,即擦除。擦除后可重新寫(xiě)入。

EEPROM單元結(jié)構(gòu)  

EEPROM單元結(jié)構(gòu)

  閃存的基本單元電路與EEPROM類似,也是由雙層浮空柵MOS管組成。但是第一層?xùn)沤橘|(zhì)很薄,作為隧道氧化層。寫(xiě)入方法與EEPROM相同,在第二級(jí)浮空柵加正電壓,使電子進(jìn)入第一級(jí)浮空柵。讀出方法與EPROM相同。擦除方法是在源極加正電壓利用第一級(jí)浮空柵與漏極之間的隧道效應(yīng),將注入到浮空柵的負(fù)電荷吸引到源極。由于利用源極加正電壓擦除,因此各單元的源極聯(lián)在一起,這樣,擦除不能按字節(jié)擦除,而是全片或者分塊擦除。隨著半導(dǎo)體技術(shù)的改進(jìn),閃存也實(shí)現(xiàn)了單晶體管設(shè)計(jì),主要就是在原有的晶體管上加入浮空柵和選擇柵,

  NAND閃存單元結(jié)構(gòu)

  NAND閃存單元結(jié)構(gòu)

  NAND閃存陣列分為一系列128kB的區(qū)塊(block),這些區(qū)塊是NAND器件中最小的可擦除實(shí)體。擦除一個(gè)區(qū)塊就是把所有的位(bit)設(shè)置為“1”(而所有字節(jié)(byte)設(shè)置為FFh)。有必要通過(guò)編程,將已擦除的位從“1”變?yōu)?ldquo;0”。最小的編程實(shí)體是字節(jié)(byte)。一些NOR閃存能同時(shí)執(zhí)行讀寫(xiě)操作(見(jiàn)下圖1)。雖然NAND不能同時(shí)執(zhí)行讀寫(xiě)操作,它可以采用稱為“映射(shadowing)”的方法,在系統(tǒng)級(jí)實(shí)現(xiàn)這一點(diǎn)。這種方法在個(gè)人電腦上已經(jīng)沿用多年,即將BIOS從速率較低的ROM加載到速率較高的RAM上。

傳輸速率

  NAND閃存卡的讀取速度遠(yuǎn)大于寫(xiě)入速度。

  當(dāng)芯片磨損,抹除與程序的操作速度會(huì)降到相當(dāng)慢。傳遞多個(gè)小型文件時(shí),若是每個(gè)文件長(zhǎng)度均小于閃存芯片所定義的區(qū)塊大小時(shí),就可能導(dǎo)致很低的傳輸速率。訪問(wèn)的遲滯也會(huì)影響性能,但還是比硬盤(pán)的遲滯影響小。

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

  不同種類、不同工藝、不同技術(shù)水平的NAND閃存在讀寫(xiě)速率上存在差異。同時(shí),閃存產(chǎn)品的讀寫(xiě)性能也與讀寫(xiě)方式有關(guān)。一般閃存的數(shù)據(jù)接口為8位或者16位,其中8位較為常見(jiàn)。如果產(chǎn)品支持多通道并行讀寫(xiě),那么就會(huì)有更高的速度。

優(yōu)勢(shì)

  NAND的效率較高,是因?yàn)镹AND串中沒(méi)有金屬觸點(diǎn)。NAND閃存單元的大小比NOR要小(4F2:10F2)的原因,是NOR的每一個(gè)單元都需要獨(dú)立的金屬觸點(diǎn)。NAND與硬盤(pán)驅(qū)動(dòng)器類似,基于扇區(qū)(頁(yè)),適合于存儲(chǔ)連續(xù)的數(shù)據(jù),如圖片、音頻或個(gè)人電腦數(shù)據(jù)。雖然通過(guò)把數(shù)據(jù)映射到RAM上,能在系統(tǒng)級(jí)實(shí)現(xiàn)隨機(jī)存取,但是,這樣做需要額外的RAM存儲(chǔ)空間。此外,跟硬盤(pán)一樣,NAND器件存在壞的扇區(qū),需要糾錯(cuò)碼(ECC)來(lái)維持?jǐn)?shù)據(jù)的完整性。

  存儲(chǔ)單元面積越小,裸片的面積也就越小。在這種情況下,NAND就能夠?yàn)楫?dāng)今的低成本消費(fèi)市場(chǎng)提供存儲(chǔ)容量更大的閃存產(chǎn)品。NAND閃存用于幾乎所有可擦除的存儲(chǔ)卡。NAND的復(fù)用接口為所有最新的器件和密度都提供了一種相似的引腳輸出。這種引腳輸出使得設(shè)計(jì)工程師無(wú)須改變電路板的硬件設(shè)計(jì),就能從更小的密度移植到更大密度的設(shè)計(jì)上。

與NOR閃存比較編輯

  NAND閃存的優(yōu)點(diǎn)在于寫(xiě)(編程)和擦除操作的速率快,而NOR的優(yōu)點(diǎn)是具有隨機(jī)存取和對(duì)字節(jié)執(zhí)行寫(xiě)(編程)操作的能力(見(jiàn)下圖圖2)。NOR的隨機(jī)存取能力支持直接代碼執(zhí)行(XiP),而這是嵌入式應(yīng)用經(jīng)常需要的一個(gè)功能。NAND的缺點(diǎn)是隨機(jī)存取的速率慢,NOR的缺點(diǎn)是受到讀和擦除速度慢的性能制約。NAND較適合于存儲(chǔ)文件。如今,越來(lái)越多的處理器具備直接NAND接口,并能直接從NAND(沒(méi)有NOR)導(dǎo)入數(shù)據(jù)。

  編程速度快、擦除時(shí)間短

  NAND的真正好處是編程速度快、擦除時(shí)間短。NAND支持速率超過(guò)5Mbps的持續(xù)寫(xiě)操作,其區(qū)塊擦除時(shí)間短至2ms,而NOR是750ms。顯然,NAND在某些方面具有絕對(duì)優(yōu)勢(shì)。然而,它不太適合于直接隨機(jī)存取。

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

  NOR閃存的隨機(jī)存取時(shí)間為0.12ms,而NAND閃存的第一字節(jié)隨機(jī)存取速度要慢得多

  以2Gb NAND器件為例,它由2048個(gè)區(qū)塊組成,每個(gè)區(qū)塊有64個(gè)頁(yè)

  2GB NAND閃存包含2,048個(gè)區(qū)塊

基本操作編輯

  每一個(gè)頁(yè)均包含一個(gè)2048字節(jié)的數(shù)據(jù)區(qū)和64字節(jié)的空閑區(qū),總共包含2,112字節(jié)??臻e區(qū)通常被用于ECC、耗損均衡(wear leveling)和其它軟件開(kāi)銷功能,盡管它在物理上與其它頁(yè)并沒(méi)有區(qū)別。NAND器件具有8或16位接口。通過(guò)8或16位寬的雙向數(shù)據(jù)總線,主數(shù)據(jù)被連接到NAND存儲(chǔ)器。在16位模式,指令和地址僅僅利用低8位,而高8位僅僅在數(shù)據(jù)傳輸周期使用。

  擦除區(qū)塊所需時(shí)間約為2ms。一旦數(shù)據(jù)被載入寄存器,對(duì)一個(gè)頁(yè)的編程大約要300μs。讀一個(gè)頁(yè)面需要大約25μs,其中涉及到存儲(chǔ)陣列訪問(wèn)頁(yè),并將頁(yè)載入16,896位寄存器中。

  接口由6個(gè)主要控制信號(hào)構(gòu)成

  除了I/O總線,NAND接口由6個(gè)主要控制信號(hào)構(gòu)成:

  1.芯片啟動(dòng)(Chip Enable, CE#):如果沒(méi)有檢測(cè)到CE信號(hào),那么,NAND器件就保持待機(jī)模式,不對(duì)任何控制信號(hào)作出響應(yīng)。

  2.寫(xiě)使能(Write Enable, WE#): WE#負(fù)責(zé)將數(shù)據(jù)、地址或指令寫(xiě)入NAND之中。

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

  4.指令鎖存使能(Command Latch Enable, CLE): 當(dāng)CLE為高時(shí),在WE#信號(hào)的上升沿,指令被鎖存到NAND指令寄存器中。

  5.地址鎖存使能(Address Latch Enable, ALE):當(dāng)ALE為高時(shí),在WE#信號(hào)的上升沿,地址被鎖存到NAND地址寄存器中。

  6.就緒/忙(Ready/Busy, R/B#):如果NAND器件忙,R/B#信號(hào)將變低。該信號(hào)是漏極開(kāi)路,需要采用上拉電阻。

  數(shù)據(jù)每次進(jìn)/出NAND寄存器都是通過(guò)16位或8位接口。當(dāng)進(jìn)行編程操作的時(shí)候,待編程的數(shù)據(jù)進(jìn)入數(shù)據(jù)寄存器,處于在WE#信號(hào)的上升沿。在寄存器內(nèi)隨機(jī)存取或移動(dòng)數(shù)據(jù),要采用專用指令以便于隨機(jī)存取。

  數(shù)據(jù)寄存器輸出數(shù)據(jù)的方式

  數(shù)據(jù)寄存器輸出數(shù)據(jù)的方式與利用RE#信號(hào)的方式類似,負(fù)責(zé)輸出現(xiàn)有的數(shù)據(jù),并增加到下一個(gè)地址。WE#和RE#時(shí)鐘運(yùn)行速度極快,達(dá)到30ns的水準(zhǔn)。當(dāng)RE#或CE#不為低的時(shí)候,輸出緩沖器將為三態(tài)。這種CE#和RE#的組合使能輸出緩沖器,容許NAND閃存與NOR、SRAMDRAM等其它類型存儲(chǔ)器共享數(shù)據(jù)總線。該功能有時(shí)被稱為“無(wú)需介意芯片啟動(dòng)(chip enable don't care)”。這種方案的初衷是適應(yīng)較老的NAND器件,它們要求CE#在整個(gè)周期為低(譯注:根據(jù)上下文改寫(xiě))。

  輸入寄存器接收到頁(yè)編程(80h)指令時(shí),內(nèi)部就會(huì)全部重置為1s,使得用戶可以只輸入他想以0位編程的數(shù)據(jù)字節(jié)

  帶有隨機(jī)數(shù)據(jù)輸入的編程指令。該指令只需要后面跟隨著數(shù)據(jù)的2個(gè)字節(jié)的地址

  指令周期

  所有NAND操作開(kāi)始時(shí),都提供一個(gè)指令周期

  當(dāng)輸出一串WE#時(shí)鐘時(shí),通過(guò)在I/O位7:0上設(shè)置指令、驅(qū)動(dòng)CE#變低且CLE變高,就可以實(shí)現(xiàn)一個(gè)指令周期。注意:在WE#信號(hào)的上升沿上,指令、地址或數(shù)據(jù)被鎖存到NAND器件之中。如表1所示,大多數(shù)指令在第二個(gè)指令周期之后要占用若干地址周期。注意:復(fù)位或讀狀態(tài)指令例外,如果器件忙,就不應(yīng)該發(fā)送新的指令。

  注意:因?yàn)樽詈笠涣械奈恢檬?112,該最后位置的地址就是08h(在第二字節(jié)中)和3Fh(在第一字節(jié)中)。PA5:0指定區(qū)塊內(nèi)的頁(yè)地址,BA16:6指定區(qū)塊的地址。雖然大多編程和讀操作需要完整的5字節(jié)地址,在頁(yè)內(nèi)隨機(jī)存取數(shù)據(jù)的操作僅僅用到第一和第二字節(jié)。塊擦除操作僅僅需要三個(gè)最高字節(jié)(第三、第四和第五字節(jié))來(lái)選擇區(qū)塊。

  總體而言,NAND的基本操作包括:復(fù)位(Reset, FFh)操作、讀ID(Read ID, 00h)操作、讀狀態(tài)(Read Status, 70h)操作、編程(Program)操作、隨機(jī)數(shù)據(jù)輸入(Random data input, 85h)操作和讀(Read)操作等。

連接到處理器編輯

  選擇內(nèi)置NAND接口的處理器或控制器的好處很多。如果沒(méi)有這個(gè)選擇,有可能在NAND和幾乎任何處理器之間設(shè)計(jì)一個(gè)“無(wú)粘接邏輯(glueless)”接口。NAND和NOR閃存的主要區(qū)別是復(fù)用地址和數(shù)據(jù)總線。該總線被用于指定指令、地址或數(shù)據(jù)。CLE信號(hào)指定指令周期,而ALE信號(hào)指定地址周期。利用這兩個(gè)控制信號(hào),有可能選擇指令、地址或數(shù)據(jù)周期。把ALE連接到處理器的第五地址位,而把CLE連接到處理器的第四地址位,就能簡(jiǎn)單地通過(guò)改變處理器輸出的地址,任意選擇指令、地址或數(shù)據(jù)。這容許CLE和ALE在合適的時(shí)間自動(dòng)設(shè)置為低。

  為了提供指令,處理器在數(shù)據(jù)總線上輸出想要的指令,并輸出地址0010h;為了輸出任意數(shù)量的地址周期,處理器僅僅要依次在處理器地址0020h之后輸出想要的NAND地址。注意,許多處理器能在處理器的寫(xiě)信號(hào)周?chē)付ㄈ舾蓵r(shí)序參數(shù),這對(duì)于建立合適的時(shí)序是至關(guān)重要的。利用該技術(shù),你不必采用任何粘接邏輯,就可以直接從處理器存取指令、地址和數(shù)據(jù)。

多層單元編輯

  多層單元(MLC)的每一個(gè)單元存儲(chǔ)兩位,而傳統(tǒng)的SLC僅僅能存儲(chǔ)一位。MLC技術(shù)有顯著的密度優(yōu)越性,然而,與SLC相比(表3),其速度或可靠性稍遜。因此,SLC被用于大多數(shù)媒體卡和無(wú)線應(yīng)用,而MLC器件通常被用于消費(fèi)電子和其它低成本產(chǎn)品。

  NAND需要ECC以確保數(shù)據(jù)完整性

  NAND閃存的每一個(gè)頁(yè)面上都包括額外的存儲(chǔ)空間,它就是64個(gè)字節(jié)的空閑區(qū)(每512字節(jié)的扇區(qū)有16字節(jié))。該區(qū)能存儲(chǔ)ECC代碼及其它像磨損評(píng)級(jí)或邏輯到物理塊映射之類的信息。ECC能在硬件或軟件中執(zhí)行,但是,硬件執(zhí)行有明顯的性能優(yōu)勢(shì)。在編程操作期間,ECC單元根據(jù)扇區(qū)中存儲(chǔ)的數(shù)據(jù)來(lái)計(jì)算誤碼校正代碼。數(shù)據(jù)區(qū)的ECC代碼然后被分別寫(xiě)入到各自的空閑區(qū)。當(dāng)數(shù)據(jù)被讀出時(shí),ECC代碼也被讀出;運(yùn)用反操作可以核查讀出的數(shù)據(jù)是否正確。

  有可能采用ECC算法來(lái)校正數(shù)據(jù)錯(cuò)誤

  能校正的錯(cuò)誤的數(shù)量取決于所用算法的校正強(qiáng)度。在硬件或軟件中包含ECC,就提供了強(qiáng)大的系統(tǒng)級(jí)解決方案。最簡(jiǎn)單的硬件實(shí)現(xiàn)方案是采用簡(jiǎn)單的漢明(Simple Hamming)碼,但是,只能校正單一位錯(cuò)誤。瑞德索羅門(mén)(Reed-Solomon)碼提供更為強(qiáng)大的糾錯(cuò),并被控制器廣為采用。此外,BCH碼由于比瑞德索羅門(mén)方法的效率高,應(yīng)用也日益普及。LSI SHIELD技術(shù)采用多級(jí)ECC模式,對(duì)SSD進(jìn)行優(yōu)化的高級(jí)糾錯(cuò)功能解決NAND閃存存儲(chǔ)器的可靠性降低和使用壽命縮短等問(wèn)題。

  要用軟件執(zhí)行NAND閃存的區(qū)塊管理

  該軟件負(fù)責(zé)磨損評(píng)級(jí)或邏輯到物理映射。該軟件還提供ECC碼,如果處理器不包含ECC硬件的話。

  編程或擦除操作之后,重要的是讀狀態(tài)寄存器,因?yàn)樗_認(rèn)是否成功地完成了編程或擦除操作。如果操作失敗,要把該區(qū)塊標(biāo)記為損壞且不能再使用。以前已編寫(xiě)進(jìn)去的數(shù)據(jù)要從損壞的區(qū)塊中搬出,轉(zhuǎn)移到新的(好的)存儲(chǔ)塊之中。2Gb NAND的規(guī)范規(guī)定,它可以最多有40個(gè)壞的區(qū)塊,這個(gè)數(shù)字在器件的生命周期(額定壽命為10萬(wàn)次編程/擦除周期)內(nèi)都適用。一些有壞塊的NAND器件能夠出廠,主要就歸根于其裸片面積大。管理器件的軟件負(fù)責(zé)映射壞塊并由好的存儲(chǔ)塊取而代之。

  軟件通過(guò)掃描塊可以確定區(qū)塊的好壞

  利用工廠對(duì)這些區(qū)塊的標(biāo)記,軟件通過(guò)掃描塊可以確定區(qū)塊的好壞。壞塊標(biāo)記被固定在空閑區(qū)的第一個(gè)位置(列地址2048)。如果在0或1頁(yè)的列地址2048上的數(shù)據(jù)是“non-FF”,那么,該塊要標(biāo)記為壞,并映射出系統(tǒng)。初始化軟件僅僅需要掃描所有區(qū)塊確定以確定哪個(gè)為壞,然后建一個(gè)壞塊表供將來(lái)參考。

  小心不要擦除壞塊標(biāo)記

  這一點(diǎn)很重要。工廠在寬溫和寬電壓范圍內(nèi)測(cè)試了NAND;一些由工廠標(biāo)記為壞的區(qū)塊可能在一定的溫度或電壓條件下仍然能工作,但是,將來(lái)可能會(huì)失效。如果壞塊信息被擦除,就無(wú)法再恢復(fù)。

  其他

  另外,NAND在某些地方,尤其是數(shù)字電路,和vhdl等一些描述語(yǔ)言中代表與非,或是與非門(mén)的意思


內(nèi)容來(lái)自百科網(wǎng)