NAND 和NOR的區別


我們使用的智能手機除了有一個可用的空間(如蘋果8G、16G等),還有一個RAM容量,很多人都不是很清楚,為什么需要二個這樣的芯片做存儲呢,這就是我們下面要講到的。這二種存儲設備我們都統稱為“FLASH”,FLASH是一種存儲芯片,全名叫Flash EEPROM Memory,通地過程序可以修改數據,即平時所說的“閃存”。Flash又分為NAND flash和NOR flash二種。U盤和MP3里用的就是這種存儲器。

相“flash存儲器”經常可以與相“NOR存儲器”互換使用。許多業內人士也搞不清楚NAND閃存技術相對於NOR技術的優越之處,因為大多數情況下閃存只是用來存儲少量的代碼,這時NOR閃存更適合一些。而NAND則是高數據存儲密度的理想解決方案。NOR Flash 的讀取和我們常見的 SDRAM 的讀取是一樣,用戶可以直接運行裝載在 NOR FLASH 里面的代碼,這樣可以減少 SRAM 的容量從而節約了成本。 NAND Flash 沒有采取內存的隨機讀取技術,它的讀取是以一次讀取一塊的形式來進行的, 通常是一次讀取 512 個字節,采用這種技術的 Flash 比較廉價。用戶 不能直接運行 NAND Flash 上的代碼,因此好多使用 NAND Flash 的開發板除了使用 NAND Flah 以外,還作上了 一塊小的 NOR Flash 來運行啟動代碼。

NOR flash是intel公司1988年開發出了NOR flash技術。NOR的特點是芯片內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash 閃存內運行,不必再把代碼讀到系統RAM中。NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除 速度大大影響了它的性能。

 

Nand-flash內存是flash內存的一種,1989年,東芝公司發表了NAND flash結構。其內部采用非線性宏單元模式,為固態大容量內存的實現提供了廉價有效的解決方案。Nand-flash存儲器具有容量較大,改寫速度快等優點,適用於大量數據的存儲,因而在業界得到了越來越廣泛的應用,如嵌入式產品中包括數碼相機、MP3隨身聽記憶卡、體積小巧的U盤等

 

 

NAND flash和NOR flash原理

一、存儲數據的原理
兩種閃存都是用三端器件作為存儲單元,分別為源極、漏極和柵極,與場效應管的工作原理 相同,主要是利用電場的效應來控制源極與漏極之間的通斷,柵極的 電流消耗極小,不同 的是場效應管為單柵極結構,而 FLASH 為雙柵極結構,在柵極與硅襯底之間增加了一個浮 置柵極。[attach]158 [/attach]
浮置柵極是由氮化物夾在兩層二氧化硅材料之間構成的,中間的氮化物就是可以存儲電荷的 電荷勢阱。上下兩層氧化物的厚度大於 50 埃,以避免發生擊穿。

二、浮柵的重放電
向數據單元內寫入數據的過程就是向電荷勢阱注入電荷的過程,寫入數據有兩種技術,熱電 子注入(hot electron injection)和 F-N 隧道效應(Fowler Nordheim tunneling),前一種是通過源 極給浮柵充電,后一種是通過硅基層給浮柵充電。NOR 型 FLASH 通過熱電子注入方式給浮 柵充電,而 NAND 則通過 F-N 隧道效應給浮柵充電。
在寫入新數據之前,必須先將原來的數據擦除,這點跟硬盤不同,也就是將浮柵的電荷放掉, 兩種 FLASH 都是通過 F-N 隧道效應放電。

三、0 和 1
這方面兩種 FLASH 一樣,向浮柵中注入電荷表示寫入了'0',沒有注入電荷表示'1',所以對 FLASH 清除數據是寫 1 的,這與硬盤正好相反;
對於浮柵中有電荷的單元來說,由於浮柵的感應作用,在源極和漏極之間將形成帶正電的空 間電荷區,這時無論控制極上有沒有施加偏置電壓,晶體管都將處於 導通狀態。而對於浮 柵中沒有電荷的晶體管來說只有當控制極上施加有適當的偏置電壓,在硅基層上感應出電 荷,源極和漏極才能導通,也就是說在沒有給控制極施 加偏置電壓時,晶體管是截止的。 如果晶體管的源極接地而漏極接位線,在無偏置電壓的情況下,檢測晶體管的導通狀態就可 以獲得存儲單元中的數據,如果位線上的電平為低,說明晶體管處於 導通狀態,讀取的數 據為 0,如果位線上為高電平,則說明晶體管處於截止狀態,讀取的數據為 1。由於控制柵 極在讀取數據的過程中施加的電壓較小或根本不施加 電壓,不足以改變浮置柵極中原有的 電荷量,所以讀取操作不會改變 FLASH 中原有的數據。

四、連接和編址方式
兩種 FLASH 具有相同的存儲單元,工作原理也一樣,為了縮短存取時間並不是對每個單元 進行單獨的存取操作,而是對一定數量的存取單元進行集體操作, NAND 型 FLASH 各存 儲單元之間是串聯的,而 NOR 型 FLASH 各單元之間是並聯的;為了對全部的存儲單元有 效管理,必須對存儲單元進行統一編址。
NAND 的全部存儲單元分為若干個塊,每個塊又分為若干個頁,每個頁是 512byte,就是 512 個 8 位數,就是說每個頁有 512 條位線,每條位線下 有 8 個存儲單元;那么每頁存儲的數 據正好跟硬盤的一個扇區存儲的數據相同,這是設計時為了方便與磁盤進行數據交換而特意 安排的,那么塊就類似硬盤的簇;容 量不同,塊的數量不同,組成塊的頁的數量也不同。 在讀取數據時,當字線和位線鎖定某個晶體管時,該晶體管的控制極不加偏置電壓,其它的 7  個都加上偏置電壓 而導通,如果這個晶體管的浮柵中有電荷就會導通使位線為低電平, 讀出的數就是 0,反之就是 1。
NOR 的每個存儲單元以並聯的方式連接到位線,方便對每一位進行隨機存取;具有專用的 地址線,可以實現一次性的直接尋址;縮短了 FLASH 對處理器指令的執行時間。 五、性能

NAND flash和NOR flash的區別

一、NAND flash和NOR flash的性能比較


flash閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內進行,所以大多數情況下,在進行寫入操作之前必須先執行擦除。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位都寫為0。由於擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多只需要4ms。執行擦除時塊尺寸的不同進一步拉大了NOR和NADN之間的性能差距,統計表明,對於給定的一套寫入操作(尤其是更新小文件時),更多的擦除操作必須在基於NOR的單元中進行。這樣,當選擇存儲解決方案時,設計師必須權衡以下的各項因素。
1、NOR的讀速度比NAND稍快一些。
2、NAND的寫入速度比NOR快很多。
3、NAND的4ms擦除速度遠比NOR的5s快。
4、大多數寫入操作需要先進行擦除操作。
5、NAND的擦除單元更小,相應的擦除電路更少。
 

二、NAND flash和NOR flash的接口差別
NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內部的每一個字節。
NAND器件使用復雜的I/O口來串行地存取數據,各個產品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數據信息。NAND讀和寫操作采用512字節的塊,這一點有點像硬盤管理此類操作,很自然地,基於NAND的存儲器就可以取代硬盤或其他塊設備。

三、NAND flash和NOR flash的容量和成本
NAND flash的單元尺寸幾乎是NOR器件的一半,由於生產過程更為簡單,NAND結構可以在給定的模具尺寸內提供更高的容量,也就相應地降低了價格。
NOR flash占據了容量為1~16MB閃存市場的大部分,而NAND flash只是用在8~128MB的產品當中,這也說明NOR主要應用在代碼存儲介質中,NAND適合於數據存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所占份額最大。

四、NAND flash和NOR flash的可靠性和耐用性
采用flahs介質時一個需要重點考慮的問題是可靠性。對於需要擴展MTBF的系統來說,Flash是非常合適的存儲方案。可以從壽命(耐用性)、位交換和壞塊處理三個方面來比較NOR和NAND的可靠性。
五、NAND flash和NOR flash的壽命(耐用性)
在NAND閃存中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。NAND存儲器除了具有10比1的塊擦除周期優勢,典型的NAND塊尺寸要比NOR器件小8倍,每個NAND存儲器塊在給定的時間內的刪除次數要少一些。

六、位交換
所有flash器件都受位交換現象的困擾。在某些情況下(很少見,NAND發生的次數要比NOR多),一個比特位會發生反轉或被報告反轉了。一位的變化可能不很明顯,但是如果發生在一個關鍵文件上,這個小小的故障可能導致系統停機。如果只是報告有問題,多讀幾次就可能解決了。當然,如果這個位真的改變了,就必須采用錯誤探測/錯誤更正(EDC/ECC)算法。位反轉的問題更多見於NAND閃存,NAND的供應商建議使用NAND閃存的時候,同時使用

七、EDC/ECC算法
這個問題對於用NAND存儲多媒體信息時倒不是致命的。當然,如果用本地存儲設備來存儲操作系統、配置文件或其他敏感信息時,必須使用EDC/ECC系統以確保可靠性。

八、壞塊處理
NAND器件中的壞塊是隨機分布的。以前也曾有過消除壞塊的努力,但發現成品率太低,代價太高,根本不划算。
NAND器件需要對介質進行初始化掃描以發現壞塊,並將壞塊標記為不可用。在已制成的器件中,如果通過可靠的方法不能進行這項處理,將導致高故障率。

九、易於使用
可以非常直接地使用基於NOR的閃存,可以像其他存儲器那樣連接,並可以在上面直接運行代碼。
由於需要I/O接口,NAND要復雜得多。各種NAND器件的存取方法因廠家而異。在使用NAND器件時,必須先寫入驅動程序,才能繼續執行其他操作。向NAND器件寫入信息需要相當的技巧,因為設計師絕不能向壞塊寫入,這就意味着在NAND器件上自始至終都必須進行虛擬映射。

十、軟件支持
當討論軟件支持的時候,應該區別基本的讀/寫/擦操作和高一級的用於磁盤仿真和閃存管理算法的軟件,包括性能優化。
在NOR器件上運行代碼不需要任何的軟件支持,在NAND器件上進行同樣操作時,通常需要驅動程序,也就是內存技術驅動程序(MTD),NAND和NOR器件在進行寫入和擦除操作時都需要MTD。
使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用於NOR器件的更高級軟件,這其中包括M-System的TrueFFS驅動,該驅動被Wind River System、Microsoft、QNX Software System、Symbian和Intel等廠商所采用。
驅動還用於對DiskOnChip產品進行仿真和NAND閃存的管理,包括糾錯、壞塊處理和損耗平衡。
————————————————

 

 

 

閃存芯片讀寫的基本單位不同 
 
 應用程序對NOR芯片操作以“字”為基本單位。為了方便對大容量NOR閃存的管理,通常將NOR閃存分成大小為128KB或者64KB的邏輯塊,有時候塊內還分成扇區。讀寫時需要同時指定邏輯塊號和塊內偏移。應用程序對NAND芯片操作是以“塊”為基本單位。NAND閃存的塊比較小,一般是8KB,然后每塊又分成頁,頁的大小一般是512字節。要修改NAND芯片中一個字節,必須重寫整個數據塊。 
 
 2)NOR閃存是隨機存儲介質,用於數據量較小的場合;NAND閃存是連續存儲介質,適合存放大的數據。 
 
 3) 由於NOR地址線和數據線分開,所以NOR芯片可以像SRAM一樣連在數據線上。NOR芯片的使用也類似於通常的內存芯片,它的傳輸效率很高,可執行程序可以在芯片內執行( XI P, eXecute In Place),這樣應用程序可以直接在flash閃存內運行,不必再把代碼 讀到系統RAM中。由於NOR的這個特點,嵌入式系統中經常將NOR芯片做啟動芯片使用。而NAND共用地址和數據總線,需要額外聯結一些控制的輸入輸出,所以直接將NAND芯片做啟動芯片比較難。 
 
 4) N AN D閃存芯片因為共用地址和數據總線的原因,不允許對一個字節甚至一個塊進行的數據清空,只能對一個固定大小的區域進行清零操作;而NOR芯片可以對字進行操作。所以在處理小數據量的I/O操作的時候的速度要快與NAND的速度。比如一塊NOR芯片通 常寫一個字需要10微秒,那么在32位總線上寫512字節需要1280毫秒;而NAND閃存寫512字節需要的時間包括:512×每字節50納秒+10微秒的尋頁時間+200微秒的片擦寫時間=234微秒。 
 
 5)NAND閃存的容量比較大,目前最大容量己經達到8G字節。為了方便管理,NAND的存儲空間使用了塊和頁兩級存儲體系,也就是說閃存的存儲空間是二維的,比如K9F5608UOA閃存塊的大小為16K,每頁的大小是512字節,每頁還16字節空閑區用來存放錯誤校驗碼空間(有時也稱為out-of-band,OOB空間);在進行寫操作的時候NAND閃存每次將一個字節的數據放入內部的緩存區,然后再發出“寫指令”進行寫操作。由於對NAND閃存的操作都是以塊和頁為單位的,所以在向NAND閃存進行大量數據的讀寫時,NAND的速度要快於NOR閃存。 
 
 6)NOR閃存的可靠性要高於NAND閃存,這主要是因為NOR型閃存的接口簡單,數據操作少,位交換操作少,因此可靠性高,極少出現壞區塊,因而一般用在對可靠性要求高的地方。相反的,NAND型閃存接口和操作均相對復雜,位交換操作也很多,關鍵性數據更是需安錯誤探測/錯誤更正〔EDC/ECC)算法來確保數據的完整性,因此出現問題的幾率要大得多,壞區塊也是不可避免的,而且由於壞區塊是隨機分布的,連糾錯也無法做到。 
 
 7)NAND Flash一般地址線和數據線共用,對讀寫速度有一定影響;而NOR Flash閃存數據線和地址線分開,所以相對而言讀寫速度快一些。 
 
 NAND和NOR芯片的共性首先表現在向芯片中寫數據必須先將芯片中對應的內容清空,然后再寫入,也就是通常說的“先擦后寫”。只不過NOR芯片只用擦寫一個字,而NAND需要擦寫整個塊。其次,閃存擦寫的次數都是有限的.當閃存的使用接近使用壽命的時候,經常會出現寫操作失敗;到達使用壽命時,閃存內部存放的數據雖然可以讀,但是不能再進行寫操作了所以為了防止上面問題的發生,不能對某個特定的區域反復進行寫操作。通常NAND的可擦寫次數高於NOR芯片,但是由於NAND通常是整塊擦寫,塊內的頁面中如果有一位失效整個塊就會失效,而且由於擦寫過程復雜,失敗的概率相對較高,所以從整體上來說NOR的壽命較長。 
 
 另一個共性是閃存的讀寫操作不僅僅是一個物理操作,實際上在閃存上存放數據必須使用算法實現,這個模塊一般在驅動程序的MTD' (Memory Technology Drivers)模塊中或者在FTLZ (Flash Translation Layer)層內實現,具體算法和芯片的生產廠商以及芯片型號有關系。

從使用角度來看,NOR閃存與NAND閃存是各有特點的:(1)NOR的存儲密度低,所以存儲一個字節的成本也較高,而NAND閃存的存儲密度和存儲容量均比較高;(2)NAND型閃存在擦、寫文件(特別是連續的大文件)時速度非常快,非常適用於順序讀取的場合,而NOR的讀取速度很快,在隨機存取的應用中有良好的表現。               NOR與NAND各有所長,但兩種優勢無法在一個芯片上得到體現。所以,設計人員在選用芯片時,只能趨其利而避其害,依照使用目的和主要功能在兩者之間進行適當的選擇。

 

 


NAND與NOR技術的比較

 

       一般的原則是:在大容量的多媒體應用中選用NAND型閃存,而在數據/程序存貯應用中選用NOR型閃存。根據這一原則,設計人員也可以把兩種閃存芯片結合起來使用,用NOR芯片存儲程序,用NAND芯片存儲數據,使兩種閃存的優勢互補。事實上,這種聰明的設計早已普遍應用於手機、PocketPC、PDA及電子詞典等設備中了。

      在選擇存儲解決方案時,設計師必須在多種因素之間進行權衡,以獲得較高的性價比。以手機為例,采用支持XIP技術的NOR閃存能夠直接運行OS,速度很快,既簡化了設計,又降低了成本,所以許多手機都采用NOR+RAM的設計。NOR閃存的不足之處是存儲密度較低,所以也有采用NAND+RAM的設計。對於這兩種方案,很難說哪一種更好,因為我們不能離開具體的產品而從某一個方面單純地去評價。追求小巧優雅的手機將需要NOR閃存支持;追求大存儲容量的手機則將更多地選擇NAND閃存;而同時追求功能和速度的手機則會采用NOR+NAND+RAM的設計,這種取長補短的設計能夠發揮NOR和NAND各自的優勢。

        除了速度、存儲密度的因素,設計師在選擇閃存芯片時,還需要考慮接口設計、即插即用設計和驅動程序等諸多問題,因為兩種類型的閃存在上述幾個方面也有很多的不同。譬如在驅動程序方面,NOR器件運行代碼不需要任何的軟件支持,而在NAND器件上進行同樣操作時就需要存儲技術驅動程序(MTD)的支持。雖然NAND和NOR器件在進行寫入和擦除操作時都需要MTD,但對於NAND來說驅動程序的開發難度更大,因為NAND閃存的糾錯和壞塊處理功能都需要通過驅動程序來實現。

使用性差異

在使用性上體現出的差異也是與NOR和NAND自身的架構設計分不開的,首先在接口方面,NOR的設計有明顯的傳統閃存的特征,因此實際應用起來相對於NAND全新的復雜I/O設計要容易得多。而且,在使用NAND閃存時,必須先寫入驅動程序,才能繼續執行其他操作。

其次,在可重復擦寫的能力方面,NAND的每塊可擦寫次數在10萬至100萬次之間,NOR則只是它的1/10,而且NAND的每個擦除塊的容量也只有NOR的1/8至1/2,這就表明,每個塊的擦寫的頻率要少於NOR閃存,從而有助於延長使用壽命。在數據的保存時間上,兩者都差不多,為10年的水平。

不過,由於串聯的架構,NAND的晶體管之間更容易造成影響,使邏輯0變成邏輯1,並且也很難發現出問題的晶體管,這種現象可稱為位翻轉(Bit-Flipping),這就需要動用EDC/ECC(錯誤檢測碼/錯誤修正碼)來進行校正,這方面的問題NOR則較少出現。

另外,NAND在使用中還存在着壞塊管理的問題,在NAND閃存中,由於壞塊是隨機分布的,因此需要進行掃描並將壞塊打上標記,就像對付硬盤中的壞扇區一樣。目前的產品中,可最多允許出現80個壞塊。壞塊的存在使得向NAND閃存寫入信息需要相當的技巧,因為設計師絕不能向壞塊寫入,這就意味着在NAND閃存上自始至終都必須進行虛擬映射。

在軟件支持程度方面,應該區別基本的讀/寫/擦操作和高一級的用於磁盤仿真和閃存管理算法的軟件,包括性能優化。

在NOR閃存上運行代碼不需要任何的軟件支持,在NAND閃存上進行同樣操作時,通常需要驅動程序,也就是內存技術驅動程序(MTD),NAND和NOR閃存在進行寫入和擦除操作時都需要MTD。

使用NOR閃存時所需要的MTD要相對少一些,許多廠商都提供用於NOR閃存的更高級軟件,這其中包括M-System的TrueFFS驅動,該驅動被Wind River System、Microsoft、QNX Software System、Symbian和Intel等廠商所采用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM