無論NAND還是NOR,兩者在基本的數(shù)據(jù)存儲方式和操作機理上都大致相同。閃存以單晶體管作為二進制信號的存儲單元,它的結(jié)構(gòu)與普通的半導體晶體管(場效應管)非常類似,區(qū)別在于閃存的晶體管加入了“浮動柵(floating gate)”和“控制柵(Control gate)”—前者用于貯存電子,表面被一層硅氧化物絕緣體所包覆,并通過電容與控制柵相耦合。當負電子在控制柵的作用下被注入到浮動柵中時,該NAND單晶體管的存儲狀態(tài)就由1變成0。相對來說,當負電子從浮動柵中移走后,存儲狀態(tài)就由0變成1;而包覆在浮動柵表面的絕緣體的作用就是將內(nèi)部的電子“困住”,達到保存數(shù)據(jù)的目的。如果要寫入數(shù)據(jù),就必須將浮動柵中的負電子全部移走,令目標存儲區(qū)域都處于1狀態(tài),這樣只有遇到數(shù)據(jù)0時才發(fā)生寫入動作—但這個過程需要耗費不短的時間,導致不管是NAND還是NOR型閃存,其寫入速度總是慢于數(shù)據(jù)讀取的速度。
雖然基本原理相同,但閃存可以有不同的電荷生成與存儲方案。其中應用最廣泛的是“通道熱電子編程(Channel Hot Electron,CHE)”,該方法通過對控制柵施加高電壓,使傳導電子在電場的作用下突破絕緣體的屏障進入到浮動柵內(nèi)部,反之亦然,以此來完成寫入或者抹除動作;另一種方法被稱為“Fowler-Nordheim(FN)隧道效應法”,它是直接在絕緣層兩側(cè)施加高電壓形成高強度電場,幫助電子穿越氧化層通道進出浮動柵。NOR閃存同時使用上述兩種方法,CHE用于數(shù)據(jù)寫入,支持單字節(jié)或單字編程;FN法則用于擦除,但NOR不能單字節(jié)擦除,必須以塊為單位或?qū)φ瑓^(qū)域執(zhí)行擦除操作,由于擦除和編程速度慢、塊尺寸也較大,使得NOR閃存在擦除和編程操作中所花費的時間很長,無法勝任純數(shù)據(jù)存儲和文件存儲之類的應用,但它的優(yōu)點是可支持代碼本地直接運行;其次,NOR閃存采用隨機存儲方式,設(shè)備可以直接存取任意區(qū)域的數(shù)據(jù),因此NOR閃存底部有大量的信號引腳,且每個單晶體管都需要輔助讀寫的邏輯,晶體管利用效率較低、容量不占優(yōu)勢。而NAND閃存采用FN法寫入和擦除,且采用一種“頁面-塊”尋址的統(tǒng)一存儲方式,單晶體管的結(jié)構(gòu)相對簡單,存儲密度較高,擦除動作很快,但缺陷在于讀出性能平平且不支持代碼本地執(zhí)行。另一個不可忽視的地方在于,NAND閃存很容易出現(xiàn)壞塊,制造商通過虛擬映射的方式將其屏蔽。但是,NOR型閃存理論擦寫次數(shù)約為10萬次,NAND型閃存理論擦寫次數(shù)約為100萬次,壽命上NAND型閃存要占優(yōu)勢。
NAND型閃存
NAND型閃存的操作方式效率低,這和它的架構(gòu)設(shè)計和接口設(shè)計有關(guān),它操作方式有點像硬盤(其實NAND型閃存在設(shè)計之初確實考慮了與硬盤的兼容性),它的性能特點也很像硬盤:小數(shù)據(jù)塊操作速度很慢,而大數(shù)據(jù)塊速度就很快。NAND型閃存的基本存儲單元是頁(Page)。每一頁的有效容量是512字節(jié)的倍數(shù)。所謂的有效容量是指用于數(shù)據(jù)存儲的部分,實際上還要加上16字節(jié)的校驗信息,因此我們可以在閃存廠商的技術(shù)資料當中看到“(512+16)Byte”的表示方式。目前2Gb以下容量的NAND型閃存絕大多數(shù)是(512+16)字節(jié)的頁面容量,2Gb以上容量的NAND型閃存則將頁容量擴大到(2048+64)字節(jié)。
NAND型閃存以塊為單位進行擦除操作。閃存的寫入操作必須在空白區(qū)域進行,如果目標區(qū)域已經(jīng)有數(shù)據(jù),必須先擦除后寫入,因此擦除操作是閃存的基本操作。一般每個塊包含32個512字節(jié)的頁,容量16KB;而大容量閃存采用2KB頁時,則每個塊包含64個頁,容量128KB。
每顆NAND型閃存的I/O接口一般是8條,每條數(shù)據(jù)線每次傳輸(512+16)bit信息,8條就是(512+16)×8bit,也就是前面說的512字節(jié)。但較大容量的NAND型閃存也越來越多地采用16條I/O線的設(shè)計,如三星編號K9K1G16U0A的芯片就是64M×16bit的NAND型閃存,容量1Gb,基本數(shù)據(jù)單位是(256+8)×16bit,還是512字節(jié)。尋址時,NAND型閃存通過8條I/O接口數(shù)據(jù)線傳輸?shù)刂沸畔堪鼈魉?位地址信息。由于閃存芯片容量比較大,一組8位地址只夠?qū)ぶ?56個頁,顯然是不夠的,因此通常一次地址傳送需要分若干組,占用若干個時鐘周期。NAND的地址信息包括列地址(頁面中的起始操作地址)、塊地址和相應的頁面地址,傳送時分別分組,至少需要三次,占用三個周期。隨著容量的增大,地址信息會更多,需要占用更多的時鐘周期傳輸,因此NAND型閃存的一個重要特點就是容量越大,尋址時間越長。而且,由于傳送地址周期比其他存儲介質(zhì)長,因此NAND型閃存比其他存儲介質(zhì)更不適合大量的小容量讀寫請求。
NOR型閃存
NOR型閃存更像內(nèi)存,有獨立的地址線和數(shù)據(jù)線,NOR型閃存的基本存儲單元是bit,用戶可以隨機訪問任何一個bit的信息。