NorFlash和NandFlash區別

NorFlash和NandFlash區別
算法

Flash編程原理都是隻能將1寫爲0,而不能將0寫成1.因此在Flash編程以前,必須將對應的塊擦除,而擦除的過程就是將全部位都寫爲1的過程,塊內的全部字節變爲0xFF.所以能夠說,編程是將相應位寫0的過程,而擦除是將相應位寫1的過程,二者的執行過程徹底相反.編程

(1)閃存芯片讀寫的基本單位不一樣
應用程序對NorFlash芯片操做以爲基本單位.爲了方便對大容量NorFlash閃存的管理,一般將NOR閃存分紅大小爲128KB64KB的邏輯塊,有時塊內還分扇區.讀寫時須要同時指定邏輯塊號和塊內偏移.應用程序對NandFlash芯片操做是以爲基本單位.NAND閃存的塊比較小,通常是8KB,而後每塊又分紅頁,頁大小通常是512字節.要修改NandFlash芯片中一個字節,必須重寫整個數據塊.緩存


(2)NorFlash閃存是隨機存儲介質,用於數據量較小的場合;NandFlash閃存是連續存儲介質,適合存放大的數據.ide


(3)因爲NorFlash地址線和數據線分開,因此NorFlash芯片能夠像SDRAM同樣連在數據線上.NOR芯片的使用相似於一般內存芯片,傳輸效率高,可執行程序能夠在芯片內執行(XI P, eXecuteIn Place),這樣應用程序能夠直接在flash閃存內運行,沒必要再把代碼讀到系統RAM.因爲NorFlash的這個特色,嵌入式系統中常常將NOR芯片作啓動芯片使用.NandFlash共用地址和數據總線,須要額外聯結一些控制的輸入輸出,因此直接將NAND芯片作啓動芯片比較難.性能


(4)NandFlash閃存芯片由於共用地址和數據總線的緣由,不容許對一個字節甚至一個塊進行的數據清空,只能對一個固定大小的區域進行清零操做;NorFlash芯片能夠對字進行操做.因此在處理小數據量的I/O操做的時候的速度要快與NorFlash的速度.好比一塊NorFlash芯片一般寫一個字須要10us,在32位總線上寫512字節須要1280usNandFlash閃存寫512字節須要的時間包括:512×每字節50ns+10us的尋頁時間+200us的片擦寫時間=234us.ui


(5)NandFlash閃存的容量比較大,最大容量己達到8G字節.爲了方便管理,NandFlash的存儲空間使用了塊和頁兩級存儲體系,也就是說它的存儲空間是二維的,好比K9F5608UOA閃存塊的大小爲16K,每頁大小是512字節,每頁還16字節空閒區用來存放錯誤校驗碼空間(也稱爲out-of-bandOOB空間).在進行寫操做時,NandFlash閃存每次將一個字節的數據放入內部的緩存區,而後再發出寫指令進行寫操做.因爲對NandFlash閃存的操做都是以塊和頁爲單位的,因此在向NandFlash閃存進行大量數據的讀寫時,NAND的速度要快於NOR閃存.spa


(6)NorFlash閃存的可靠性要高於NandFlash閃存,是由於NorFlash型閃存的接口簡單,數據操做少,位交換操做少,所以可靠性高,極少出現壞區塊,通常用在對可靠性要求高的地方.NandFlash型閃存接口和操做均相對複雜,位交換操做也不少,關鍵性數據更是需安錯誤探測/錯誤更正(EDC/ECC)算法來確保數據的完整性,所以出現問題的概率要大得多,壞區塊也是不可避免的,並且因爲壞區塊是隨機分佈的,連糾錯也沒法作到..net


(7)NANDFlash通常地址線和數據線共用,對讀寫速度有必定影響;NORFlash閃存數據線和地址線分開,相對而言讀寫速度快一些.NANDFlashNORFlash芯片的共性blog

首先表如今向芯片中寫數據必須先將芯片中對應的內容清空,而後再寫入,即先擦後寫.只不過NORFlash芯片只用擦寫一個字,而NAND須要擦寫整個塊.其次,閃存擦寫的次數都是有限的.當閃存使用接近使用壽命時,常常會出現寫操做失敗;到達使用壽命時,閃存內部存放的數據雖然能夠讀,但不能再進行寫操做了.因此爲了防止上面問題的發生,不能對某個特定的區域反覆進行寫操做.一般NANDFlash可擦寫次數高於NORFlash芯片,可是因爲NANDFlash一般是整塊擦寫,塊內的頁面中若是有一位失效整個塊就會失效,並且因爲擦寫過程複雜,失敗的機率相對較高,因此從總體上來講NOR的壽命較長.
另外一個共性是閃存的讀寫操做不只僅是一個物理操做,實際上在閃存上存放數據必須使用算法實現,這個模塊通常在驅動程序的MTD'(MemoryTechnology Drivers)模塊中或者在FTLZ (Flash Translation Layer)層內實現,具體算法和芯片的生產廠商以及芯片型號有關係.經過比較能夠發現,NAND更適用於複雜的文件應用,可是因爲NAND芯片的使用相對複雜,因此對文件系統有較高的要求.接口

(8)接口對比
NorFlash
帶有通用的SRAM接口,能夠輕鬆地掛接在CPU的地址、數據總線上,對CPU的接口要求低。NorFlash的特色是芯片內執行(XIP,eXecute In Place),這樣應用程序能夠直接在flash閃存內運行,沒必要再把代碼讀到系統RAM.uboot中的ro段能夠直接在NorFlash上運行,只須要把rwzi段拷貝到RAM中運行便可.

NandFlash
器件使用複雜的I/O口來串行地存取數據,8個引腳用來傳送控制、地址和數據信息。因爲時序較爲複雜,因此通常CPU最好集成NandFlash控制器.另外因爲NandFlash沒有掛接在地址總線上,因此若是想用NandFlash做爲系統的啓動盤,就須要CPU具有特殊的功能,如s3c2410在被選擇爲NandFlash啓動方式時會在上電時自動讀取NandFlash4k數據到地址0SRAM.若是CPU不具有這種特殊功能,用戶不能直接運行NandFlash上的代碼,那能夠採起其餘方式,好比好多使用NandFlash的開發板除了使用NandFlash之外,還用上了一塊小的NorFlash來運行啓動代碼.


(9)容量和成本對比
相比起NandFlash來講,NorFlash的容量要小,通常在1~16MByte左右,一些新工藝採用了芯片疊加技術能夠把NorFlash的容量作得大一些.在價格方面,NorFlash相比NandFlash來講較高,如目前市場上一片4MbyteAM29lv320 NorFlash零售價在20元左右,而一片128MBytek9f1g08 NandFlash零售價在30元左右. NandFlash生產過程更爲簡單,NAND結構能夠在給定的模具尺寸內提供更高的容量,這樣也就相應地下降了價格.

(10)可靠性性對比
NandFlash
器件中的壞塊是隨機分佈的,之前也曾有過消除壞塊的努力,但發現成品率過低,代價過高,根本不划算.Nand器件須要對介質進行初始化掃描以發現壞塊,並將壞塊標記爲不可用.在已製成的器件中,若是經過可靠的方法不能進行這項處理,將致使高故障率。而壞塊問題在NorFlash上是不存在的.
Flash的位翻轉(一個bit位發生翻轉)現象上,NAND的出現概率要比NorFlash大得多.這個問題在Flash存儲關鍵文件時是致命的,因此在使用NandFlash時建議同時使用EDC/ECC等校驗算法.

(11)升級對比
NorFlash
的升級較爲麻煩,由於不一樣容量的NorFlash的地址線需求不同,因此在更換不一樣容量的NorFlash芯片時不方便.一般咱們會經過在電路板的地址線上作一些跳接電阻來解決這樣的問題,針對不一樣容量的NorFlash. 而不一樣容量的NandFlash的接口是固定的,因此升級簡單.


(12)讀寫性能對比
寫操做:任何flash器件的寫入操做都只能在空或已擦除的單元內進行.NAND器件執行擦除操做是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內全部的位都寫爲1.擦除NOR器件時是以64128KB的塊進行的,執行一個擦除/寫入操做的時間約爲5s.擦除NAND器件是以832KB的塊進行的,執行一個擦除/寫入操做最多隻須要4ms. 讀操做:NOR的讀速度比NAND稍快一些.

(13)文件系統比較
Linux
系統中採用MTD來管理不一樣類型的Flash芯片,包括NandFlashNorFlash.支持在Flash上運行的經常使用文件系統有cramfsjffsjffs2yaffsyaffs2.cramfs文件系統是隻讀文件系統.若是想在Flash上實現讀寫操做,一般在NorFlash上咱們會選取jffsjffs2文件系統,在NandFlash上選用yaffsyaffs2文件系統.Yaffs2文件系統支持大頁(大於512字節/)NandFlash存儲器.

相關文章
相關標籤/搜索