我們使用的智能手機(jī)除了有一個可用的空間(如蘋果8G、16G等),還有一個RAM容量,很多人都不是很清楚,為什么需要二個這樣的芯片做存儲呢,這就是我們下面要講到的。這二種存儲設(shè)備我們都統(tǒng)稱為“FLASH”,F(xiàn)LASH是一種存儲芯片,全名叫Flash EEPROM Memory,通地過程序可以修改數(shù)據(jù),即平時所說的“閃存”。Flash又分為NAND flash和NOR flash二種。U盤和MP3里用的就是這種存儲器。
相“flash存儲器”經(jīng)??梢耘c相“NOR存儲器”互換使用。許多業(yè)內(nèi)人士也搞不清楚NAND閃存技術(shù)相對于NOR技術(shù)的優(yōu)越之處,因為大多數(shù)情況下閃存只是用來存儲少量的代碼,這時NOR閃存更適合一些。而NAND則是高數(shù)據(jù)存儲密度的理想解決方案。NOR Flash 的讀取和我們常見的 SDRAM 的讀取是一樣,用戶可以直接運(yùn)行裝載在 NOR FLASH 里面的代碼,這樣可以減少 SRAM 的容量從而節(jié)約了成本。 NAND Flash 沒有采取內(nèi)存的隨機(jī)讀取技術(shù),它的讀取是以一次讀取一塊的形式來進(jìn)行的, 通常是一次讀取 512 個字節(jié),采用這種技術(shù)的 Flash 比較廉價。用戶 不能直接運(yùn)行 NAND Flash 上的代碼,因此好多使用 NAND Flash 的開發(fā)板除了使用 NAND Flah 以外,還作上了 一塊小的 NOR Flash 來運(yùn)行啟動代碼。
NOR flash是intel公司1988年開發(fā)出了NOR flash技術(shù)。NOR的特點是芯片內(nèi)執(zhí)行(XIP, eXecute In Place),這樣應(yīng)用程序可以直接在flash 閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除 速度大大影響了它的性能。
Nand-flash內(nèi)存是flash內(nèi)存的一種,1989年,東芝公司發(fā)表了NAND flash結(jié)構(gòu)。其內(nèi)部采用非線性宏單元模式,為固態(tài)大容量內(nèi)存的實現(xiàn)提供了廉價有效的解決方案。Nand-flash存儲器具有容量較大,改寫速度快等優(yōu)點,適用于大量數(shù)據(jù)的存儲,因而在業(yè)界得到了越來越廣泛的應(yīng)用,如嵌入式產(chǎn)品中包括數(shù)碼相機(jī)、MP3隨身聽記憶卡、體積小巧的U盤等。
NAND flash和NOR flash原理
一、存儲數(shù)據(jù)的原理
兩種閃存都是用三端器件作為存儲單元,分別為源極、漏極和柵極,與場效應(yīng)管的工作原理 相同,主要是利用電場的效應(yīng)來控制源極與漏極之間的通斷,柵極的 電流消耗極小,不同 的是場效應(yīng)管為單柵極結(jié)構(gòu),而 FLASH 為雙柵極結(jié)構(gòu),在柵極與硅襯底之間增加了一個浮 置柵極。[attach]158 [/attach]
浮置柵極是由氮化物夾在兩層二氧化硅材料之間構(gòu)成的,中間的氮化物就是可以存儲電荷的 電荷勢阱。上下兩層氧化物的厚度大于 50 埃,以避免發(fā)生擊穿。
二、浮柵的重放電
向數(shù)據(jù)單元內(nèi)寫入數(shù)據(jù)的過程就是向電荷勢阱注入電荷的過程,寫入數(shù)據(jù)有兩種技術(shù),熱電 子注入(hot electron injection)和 F-N 隧道效應(yīng)(Fowler Nordheim tunneling),前一種是通過源 極給浮柵充電,后一種是通過硅基層給浮柵充電。NOR 型 FLASH 通過熱電子注入方式給浮 柵充電,而 NAND 則通過 F-N 隧道效應(yīng)給浮柵充電。
在寫入新數(shù)據(jù)之前,必須先將原來的數(shù)據(jù)擦除,這點跟硬盤不同,也就是將浮柵的電荷放掉, 兩種 FLASH 都是通過 F-N 隧道效應(yīng)放電。
三、0 和 1
這方面兩種 FLASH 一樣,向浮柵中注入電荷表示寫入了'0',沒有注入電荷表示'1',所以對 FLASH 清除數(shù)據(jù)是寫 1 的,這與硬盤正好相反;
對于浮柵中有電荷的單元來說,由于浮柵的感應(yīng)作用,在源極和漏極之間將形成帶正電的空 間電荷區(qū),這時無論控制極上有沒有施加偏置電壓,晶體管都將處于 導(dǎo)通狀態(tài)。而對于浮 柵中沒有電荷的晶體管來說只有當(dāng)控制極上施加有適當(dāng)?shù)钠秒妷?,在硅基層上感?yīng)出電 荷,源極和漏極才能導(dǎo)通,也就是說在沒有給控制極施 加偏置電壓時,晶體管是截止的。 如果晶體管的源極接地而漏極接位線,在無偏置電壓的情況下,檢測晶體管的導(dǎo)通狀態(tài)就可 以獲得存儲單元中的數(shù)據(jù),如果位線上的電平為低,說明晶體管處于 導(dǎo)通狀態(tài),讀取的數(shù) 據(jù)為 0,如果位線上為高電平,則說明晶體管處于截止?fàn)顟B(tài),讀取的數(shù)據(jù)為 1。由于控制柵 極在讀取數(shù)據(jù)的過程中施加的電壓較小或根本不施加 電壓,不足以改變浮置柵極中原有的 電荷量,所以讀取操作不會改變 FLASH 中原有的數(shù)據(jù)。
四、連接和編址方式
兩種 FLASH 具有相同的存儲單元,工作原理也一樣,為了縮短存取時間并不是對每個單元 進(jìn)行單獨的存取操作,而是對一定數(shù)量的存取單元進(jìn)行集體操作, NAND 型 FLASH 各存 儲單元之間是串聯(lián)的,而 NOR 型 FLASH 各單元之間是并聯(lián)的;為了對全部的存儲單元有 效管理,必須對存儲單元進(jìn)行統(tǒng)一編址。
NAND 的全部存儲單元分為若干個塊,每個塊又分為若干個頁,每個頁是 512byte,就是 512 個 8 位數(shù),就是說每個頁有 512 條位線,每條位線下 有 8 個存儲單元;那么每頁存儲的數(shù) 據(jù)正好跟硬盤的一個扇區(qū)存儲的數(shù)據(jù)相同,這是設(shè)計時為了方便與磁盤進(jìn)行數(shù)據(jù)交換而特意 安排的,那么塊就類似硬盤的簇;容 量不同,塊的數(shù)量不同,組成塊的頁的數(shù)量也不同。 在讀取數(shù)據(jù)時,當(dāng)字線和位線鎖定某個晶體管時,該晶體管的控制極不加偏置電壓,其它的 7 個都加上偏置電壓 而導(dǎo)通,如果這個晶體管的浮柵中有電荷就會導(dǎo)通使位線為低電平, 讀出的數(shù)就是 0,反之就是 1。
NOR 的每個存儲單元以并聯(lián)的方式連接到位線,方便對每一位進(jìn)行隨機(jī)存??;具有專用的 地址線,可以實現(xiàn)一次性的直接尋址;縮短了 FLASH 對處理器指令的執(zhí)行時間。 五、性能
NAND flash和NOR flash的區(qū)別
一、NAND flash和NOR flash的性能比較
flash閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進(jìn)行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內(nèi)進(jìn)行,所以大多數(shù)情況下,在進(jìn)行寫入操作之前必須先執(zhí)行擦除。NAND器件執(zhí)行擦除操作是十分簡單的,而NOR則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫為0。由于擦除NOR器件時是以64~128KB的塊進(jìn)行的,執(zhí)行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進(jìn)行的,執(zhí)行相同的操作最多只需要4ms。執(zhí)行擦除時塊尺寸的不同進(jìn)一步拉大了NOR和NADN之間的性能差距,統(tǒng)計表明,對于給定的一套寫入操作(尤其是更新小文件時),更多的擦除操作必須在基于NOR的單元中進(jìn)行。這樣,當(dāng)選擇存儲解決方案時,設(shè)計師必須權(quán)衡以下的各項因素。
1、NOR的讀速度比NAND稍快一些。
2、NAND的寫入速度比NOR快很多。
3、NAND的4ms擦除速度遠(yuǎn)比NOR的5s快。
4、大多數(shù)寫入操作需要先進(jìn)行擦除操作。
5、NAND的擦除單元更小,相應(yīng)的擦除電路更少。
二、NAND flash和NOR flash的接口差別
NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內(nèi)部的每一個字節(jié)。
NAND器件使用復(fù)雜的I/O口來串行地存取數(shù)據(jù),各個產(chǎn)品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數(shù)據(jù)信息。NAND讀和寫操作采用512字節(jié)的塊,這一點有點像硬盤管理此類操作,很自然地,基于NAND的存儲器就可以取代硬盤或其他塊設(shè)備。
三、NAND flash和NOR flash的容量和成本
NAND flash的單元尺寸幾乎是NOR器件的一半,由于生產(chǎn)過程更為簡單,NAND結(jié)構(gòu)可以在給定的模具尺寸內(nèi)提供更高的容量,也就相應(yīng)地降低了價格。
NOR flash占據(jù)了容量為1~16MB閃存市場的大部分,而NAND flash只是用在8~128MB的產(chǎn)品當(dāng)中,這也說明NOR主要應(yīng)用在代碼存儲介質(zhì)中,NAND適合于數(shù)據(jù)存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所占份額最大。
四、NAND flash和NOR flash的可靠性和耐用性
采用flahs介質(zhì)時一個需要重點考慮的問題是可靠性。對于需要擴(kuò)展MTBF的系統(tǒng)來說,F(xiàn)lash是非常合適的存儲方案??梢詮膲勖?耐用性)、位交換和壞塊處理三個方面來比較NOR和NAND的可靠性。
五、NAND flash和NOR flash的壽命(耐用性)
在NAND閃存中每個塊的最大擦寫次數(shù)是一百萬次,而NOR的擦寫次數(shù)是十萬次。NAND存儲器除了具有10比1的塊擦除周期優(yōu)勢,典型的NAND塊尺寸要比NOR器件小8倍,每個NAND存儲器塊在給定的時間內(nèi)的刪除次數(shù)要少一些。
六、位交換
所有flash器件都受位交換現(xiàn)象的困擾。在某些情況下(很少見,NAND發(fā)生的次數(shù)要比NOR多),一個比特位會發(fā)生反轉(zhuǎn)或被報告反轉(zhuǎn)了。一位的變化可能不很明顯,但是如果發(fā)生在一個關(guān)鍵文件上,這個小小的故障可能導(dǎo)致系統(tǒng)停機(jī)。如果只是報告有問題,多讀幾次就可能解決了。當(dāng)然,如果這個位真的改變了,就必須采用錯誤探測/錯誤更正(EDC/ECC)算法。位反轉(zhuǎn)的問題更多見于NAND閃存,NAND的供應(yīng)商建議使用NAND閃存的時候,同時使用
七、EDC/ECC算法
這個問題對于用NAND存儲多媒體信息時倒不是致命的。當(dāng)然,如果用本地存儲設(shè)備來存儲操作系統(tǒng)、配置文件或其他敏感信息時,必須使用EDC/ECC系統(tǒng)以確??煽啃?。
八、壞塊處理
NAND器件中的壞塊是隨機(jī)分布的。以前也曾有過消除壞塊的努力,但發(fā)現(xiàn)成品率太低,代價太高,根本不劃算。
NAND器件需要對介質(zhì)進(jìn)行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標(biāo)記為不可用。在已制成的器件中,如果通過可靠的方法不能進(jìn)行這項處理,將導(dǎo)致高故障率。
九、易于使用
可以非常直接地使用基于NOR的閃存,可以像其他存儲器那樣連接,并可以在上面直接運(yùn)行代碼。
由于需要I/O接口,NAND要復(fù)雜得多。各種NAND器件的存取方法因廠家而異。在使用NAND器件時,必須先寫入驅(qū)動程序,才能繼續(xù)執(zhí)行其他操作。向NAND器件寫入信息需要相當(dāng)?shù)募记桑驗樵O(shè)計師絕不能向壞塊寫入,這就意味著在NAND器件上自始至終都必須進(jìn)行虛擬映射。
十、軟件支持
當(dāng)討論軟件支持的時候,應(yīng)該區(qū)別基本的讀/寫/擦操作和高一級的用于磁盤仿真和閃存管理算法的軟件,包括性能優(yōu)化。
在NOR器件上運(yùn)行代碼不需要任何的軟件支持,在NAND器件上進(jìn)行同樣操作時,通常需要驅(qū)動程序,也就是內(nèi)存技術(shù)驅(qū)動程序(MTD),NAND和NOR器件在進(jìn)行寫入和擦除操作時都需要MTD。
使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用于NOR器件的更高級軟件,這其中包括M-System的TrueFFS驅(qū)動,該驅(qū)動被Wind River System、Microsoft、QNX Software System、Symbian和Intel等廠商所采用。
驅(qū)動還用于對DiskOnChip產(chǎn)品進(jìn)行仿真和NAND閃存的管理,包括糾錯、壞塊處理和損耗平衡。