許多人都分不清NOR和NAND閃存,其實我們只要把它們進行簡單的對比就可以很好區分開來。NOR和NAND是現在市場上兩種主要的非易失閃存技術。但是從特性上來說,他們是有區別的。
1.NOR的特點是芯片內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash閃存內運行。
2.NAND結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度快。
3.NOR Flash的讀速度比NAND稍快一些。
4.NAND Flash的擦除單元更小,相應的擦除電路更少。
5.NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內部的每一個字節。
6.NOR FLASH的主要供應商是INTEL ,MICRO等,它的優點是可以直接從FLASH中運行程序,但是工藝複雜,價格比較貴。
7.NAND FLASH的主要供應商是SAMSUNG和東芝,由於工藝上的不同,它比NOR FLASH擁有更大存儲容量,而且便宜。缺點是無法尋址直接運行程序,只能存儲數據。
8.NAND Flash的4ms擦除速度遠比NOR的5s快。
9.NAND器件使用複雜的I/O口來串行地存取數據,各個產品或廠商的方法可能各不相同
。8個引腳用來傳送控制、地址和數據信息。
10.NAND讀和寫操作採用512字節的塊,這一點有點像硬盤管理此類操作。
11.NAND Flash的寫入速度比NOR快很多。
區別
1、NOR的特點是芯片內執行(XIP,eXecute In Place),這樣應用程序可以直接在flash閃存內運行,不必再把代碼讀到系統RAM中。優點是可以直接從FLASH中運行程序,但是工藝複雜,價格比較貴,NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。
NAND結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度也很快。應用NAND的困難在於flash的管理和需要特殊的系統接口。優點:大存儲容量,而且便宜。缺點,就是無法尋址直接運行程序,只能存儲數據。另外NAND FLASH 非常容易出現壞區,所以需要有校驗的算法。
任何flash器件的寫入操作只能在空或已擦除的單元內進行
(1)NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位都寫爲1。
(2)擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間爲5s,NORFLASHSECTOR擦除時間視品牌、大小不同而不同,比如,4MFLASH,有的SECTOR擦除時間爲60ms,而有的需要最大6S。與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多只需要4ms
(3)當選擇存儲解決方案時,設計師必須權衡以下的各項因素。
●NOR的讀速度比NAND稍快一些。
●NAND的寫入速度比NOR快很多。
●NAND的4ms擦除速度遠比NOR的5s快。
●大多數寫入操作需要先進行擦除操作。
●NAND的擦除單元更小,相應的擦除電路更少。
(4)接口差別
NORflash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內部的每一個字節。
NAND器件使用複雜的I/O口來串行地存取數據,各個產品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數據信息。NAND讀和寫操作採用512字節的塊,這一點有點像硬盤管理此類操作,因此,基於NAND的存儲器就可以取代硬盤或其他塊設備。
(5)容量差別:
NORflash佔據了容量爲1~16MB閃存市場的大部分,而NANDflash只是用在8~128MB的產品當中,這也說明NOR主要應用在代碼存儲介質中,NAND適合於數據存儲。
(6)可靠性和耐用性
-壽命(耐用性)
在NAND閃存中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。NAND存儲器除了具有10比1的塊擦除週期優勢,典型的NAND塊尺寸要比NOR器件小8倍,每個NAND存儲器塊在給定的時間內的刪除次數要少一些。
-位交換
所有flash器件都受位交換現象的困擾。位真的改變了,就必須採用錯誤探測/錯誤更正(EDC/ECC)算法。位反轉的問題更多見於NAND閃存,在使用NAND閃存的時候,應使用EDC/ECC算法。用NAND存儲多媒體信息時倒不是致命的。當然,如果用本地存儲設備來存儲操作系統、配置文件或其他敏感信息時,必須使用EDC/ECC系統以確保可靠性。
-壞塊處理
NAND器件中的壞塊是隨機分佈的,NAND器件需要對介質進行初始化掃描以發現壞塊,並將壞塊標記爲不可用。在已製成的器件中,如果通過可靠的方法不能進行這項處理,將導致高故障率。
(7)易於使用
可以非常直接地使用基於NOR的閃存。在使用NAND器件時,必須先寫入驅動程序,才能繼續執行其他操作。向NAND器件寫入信息需要相當的技巧,因爲設計師絕不能向壞塊寫入,這就意味着在NAND器件上自始至終都必須進行虛擬映射。
(8)軟件支持
在NOR器件上運行代碼不需要任何的軟件支持,在NAND器件上進行同樣操作時,通常需要驅動程序,也就是內存技術驅動程序(MTD),NAND和NOR器件在進行寫入和擦除操作時都需要MTD。
使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用於NOR器件的更高級軟件,這其中包括M-System的TrueFFS驅動,該驅動被WindRiverSystem、Microsoft、QNXSoftwareSystem、Symbian和Intel等廠商所採用。驅動還用於對DiskOnChip產品進行仿真和NAND閃存的管理,包括糾錯、壞塊處理和損耗平衡。
(9)在掌上電腦裏要使用NAND FLASH存儲數據和程序,但是必須有NOR FLASH來啓動。除了SAMSUNG處理器,其他用在掌上電。腦的主流處理器還不支持直接由NAND FLASH 啓動程序。因此,必須先用一片小的NOR FLASH啓動機器,在把OS等軟件從NAND FLASH載入SDRAM中運行才行
----------------------------------------------------------------------------------------------------------------------
NAND與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對處理器指令的執行時間。
五、性能
1、速度
在寫數據和擦除數據時,NAND由於支持整塊擦寫操作,所以速度比NOR要快得多,兩者相差近千倍;讀取時,由於NAND要先向芯片發送地址信息進行 尋址才能開始讀寫數據,而它的地址信息包括塊號、塊內頁號和頁內字節號等部分,要順序選擇才能定位到要操作的字節;這樣每進行一次數據訪問需要經過三次尋 址,至少要三個時鐘週期;而NOR型FLASH的操作則是以字或字節爲單位進行的,直接讀取,所以讀取數據時,NOR有明顯優勢。
2、容量和成本
NOR型FLASH的每個存儲單元與位線相連,增加了芯片內位線的數量,不利於存儲密度的提高。所以在面積和工藝相同的情況下,NAND型FLASH的容量比NOR要大得多,生產成本更低,也更容易生產大容量的芯片。
3、易用性
NANDFLASH的I/O端口採用複用的數據線和地址線,必須先通過寄存器串行地進行數據存取,各個產品或廠商對信號的定義不同,增加了應用的難 度;NOR FLASH有專用的地址引腳來尋址,較容易與其它芯片進行連接,另外還支持本地執行,應用程序可以直接在FLASH內部運行,可以簡化產品設計。
4、可靠性
NAND FLASH相鄰單元之間較易發生位翻轉而導致壞塊出現,而且是隨機分佈的,如果想在生產過程中消除壞塊會導致成品率太低、性價比很差,所以在出廠前要在高 溫、高壓條件下檢測生產過程中產生的壞塊,寫入壞塊標記,防止使用時向壞塊寫入數據;但在使用過程中還難免產生新的壞塊,所以在使用的時候要配合EDC/ECC(錯誤探測/錯誤更正)和BBM(壞塊管理)等軟件措施來保障數據的可靠性。壞塊管理軟件能夠發現並更換一個讀寫失敗的區塊,將數據複製到 一個有效的區塊。
5、耐久性
FLASH由於寫入和擦除數據時會導致介質的氧化降解,導致芯片老化,在這個方面NOR尤甚,所以並不適合頻繁地擦寫,NAND的擦寫次數是100萬次,而NOR只有10萬次。
目前Flash主要有兩種NOR Flash和NADN Flash。
NOR Flash的讀取和我們常見的SDRAM的讀取是一樣,用戶可以直接運行裝載在NOR FLASH裏面的代碼,這樣可以減少SRAM的容量從而節約了成本。
NAND Flash沒有采取內存的隨機讀取技術,它的讀取是以一次讀取一塊的形式來進行的,通常是一次讀取512個字節,採用這種技術的Flash比較廉價。用戶 不能直接運行NAND Flash上的代碼,因此好多使用NAND Flash的開發板除了使用NAND Flah以外,還作上了一塊小的NOR Flash來運行啓動代碼。
一般小容量的用NOR Flash,因爲其讀取速度快,多用來存儲操作系統等重要信息,而大容量的用NAND FLASH,最常見的NAND FLASH應用是嵌入式系統採用的DOC(Disk On Chip)和我們通常用的"閃盤",可以在線擦除。目前市面上的FLASH主要來自Intel,AMD,Fujitsu和Toshiba,而生產NAND Flash的主要廠家有Samsung和Toshiba。
NOR和NAND是現在市場上兩種主要的非易失閃存技術。Intel於1988年首先開發出NOR flash技術,徹底改變了原先由EPROM和EEPROM一統天下的局面。緊接着,1989年,東芝公司發表了NAND flash結構,強調降低每比特的成本,更高的性能,並且象磁盤一樣可以通過接口輕鬆升級。但是經過了十多年之後,仍然有相當多的硬件工程師分不清NOR和NAND閃存。
相“flash存儲器”經常可以與相“NOR存儲器”互換使用。許多業內人士也搞不清楚NAND閃存技術相對於NOR技術的優越之處,因爲大多數情況下閃存只是用來存儲少量的代碼,這時NOR閃存更適合一些。而NAND則是高數據存儲密度的理想解決方案。
NOR的特點是芯片內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash閃存內運行,不必再把代碼讀到系統RAM中。
NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。
NAND結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度也很快。應用NAND的困難在於flash的管理和需要特殊的系統接口。
性能比較
flash閃存是非易失存儲器,可以對稱爲塊的存儲器單元塊進行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內進行,所以大多數 情況下,在進行寫入操作之前必須先執行擦除。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位都寫爲0。
由於擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間爲5s,與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多只需要4ms。
執行擦除時塊尺寸的不同進一步拉大了NOR和NADN之間的性能差距,統計表明,對於給定的一套寫入操作(尤其是更新小文件時更多的擦除操作必須在基於NOR的單元中進行。這樣,當選擇存儲解決方案時,設計師必須權衡以下的各項因素。
● NOR的讀速度比NAND稍快一些。
● NAND的寫入速度比NOR快很多。
● NAND的4ms擦除速度遠比NOR的5s快。
● 大多數寫入操作需要先進行擦除操作。
● NAND的擦除單元更小,相應的擦除電路更少。
接口差別
NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內部的每一個字節。
NAND器件使用複雜的I/O口來串行地存取數據,各個產品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數據信息。
NAND讀和寫操作採用512字節的塊,這一點有點像硬盤管理此類操作,很自然地,基於NAND的存儲器就可以取代硬盤或其他塊設備。
容量和成本
NAND flash的單元尺寸幾乎是NOR器件的一半,由於生產過程更爲簡單,NAND結構可以在給定的模具尺寸內提供更高的容量,也就相應地降低了價格。
NOR flash佔據了容量爲1~16MB閃存市場的大部分,而NAND flash只是用在8~128MB的產品當中,這也說明NOR主要應用在代碼存儲介質中,NAND適合於數據存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所佔份額最大。
可靠性和耐用性
採用flahs介質時一個需要重點考慮的問題是可靠性。對於需要擴展MTBF的系統來說,Flash是非常合適的存儲方案。可以從壽命(耐用性)、位交換和壞塊處理三個方面來比較NOR和NAND的可靠性。
壽命(耐用性)
在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閃存的管理,包括糾錯、壞塊處理和損耗平衡。
Flash閃存是非易失存儲器(所謂非易失性即掉電仍舊能保存信息的特性),可以對稱爲塊的存儲器單元“塊”進行擦寫和再編程。
NAND電子盤模塊結構圖,內部不存在存儲控制器,我們可以簡單地認爲某容量(比如32MB)內部分成一個個小方塊似的存儲空間,每個空間內都能存儲一定量大小的信息。
NOR型閃存的塊大小爲64~128KB,而NAND型閃存塊的大小爲8~32KB,在上一篇中介紹的三星閃存塊頭大小就是16KB,整個32MB容量是由2000個這樣大小的存儲空間組成。
任何Flash閃存的寫入操作只能在空或已擦除的單元內進行,所以大多數情況下,在進行寫入操作之前必須先執行擦除操作。NAND閃存執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位(bit)都寫爲0。
NAND 型的單元排列是串行的,而NOR型則是並行的。在NAND型閃存中,存貯單元被分成頁,由頁組成塊。根據容量不同,塊和頁的大小有所不同,而組成塊的頁的 數量也會不同,如8MB的模塊,頁大小爲(512+16)Byte、塊大小爲(8K+256)Byte;而2MB模塊,頁大小爲(256+8)Byte、 塊大小爲(4K+128)Byte。NAND型存貯單元的讀寫是以塊和頁爲單位來進行的,像硬盤多過像傳統的內存。實際上,NAND型的Flash Memory可以看做是順序讀取的設備,它僅用8比特的I/O端口就可以存取按頁爲單位的數據。正因爲這樣,它在讀和擦文件、特 別是連續的大文件時,與NOR型的Flash Memory相比速度相當的快。但NAND型的不足在於隨機存取速度較慢,而且沒有辦法按字節寫;這些方面 就恰好是NOR型的優點所在:NOR型隨機存取速度較快,而且可以隨機按字節寫。正因爲這些特點,所以NAND型的Flash Memory適合用在大容 量的多媒體應用中,而NOR型適合應用在數據/程序存貯應用中。
簡單地說,NOR型閃存像內存,存儲程序代碼爲主,CPU能直接處理,我們可以稱之爲Code Flash;NAND型閃存像硬盤,存儲數據爲主,容量大,我們稱之爲Data Flash。