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