1. 程式人生 > >nor flash 、nand flash、serial 區別

nor flash 、nand flash、serial 區別

FLASH儲存器又稱快閃記憶體,主要有兩種:NorFlash和NandFlash,下面我們從多個角度來對比介紹一下。在實際開發中,設計者可以根據產品需求來進行快閃記憶體的合理選擇。

1、介面對比

NorFlash帶有通用的SRAM介面,可以輕鬆地掛接在CPU的地址、資料匯流排上,對CPU的介面要求低。NorFlash的特點是晶片內執行(XIP,eXecute In Place),這樣應用程式可以直接在flash快閃記憶體內執行,不必再把程式碼讀到系統RAM中。如uboot中的ro段可以直接在NorFlash上執行,只需要把rw和zi段拷貝到RAM中執行即可。

NandFlash器件使用複雜的I/O口來序列地存取資料,8個引腳用來傳送控制、地址和資料資訊。由於時序較為複雜,所以一般CPU好整合NAND控制器。另外由於NandFlash沒有掛接在地址總線上,所以如果想用NandFlash作為系統的啟動盤,就需要CPU具備特殊的功能,如s3c2410在被選擇為NandFlash啟動方式時會在上電時自動讀取NandFlash的4k資料到地址0的SRAM中。如果CPU不具備這種特殊功能,使用者不能直接執行NandFlash上的程式碼,那可以採取其他方式,比如好多使用NandFlash的開發板除了使用NandFlash以外,還用上了一塊小的NorFlash來執行啟動程式碼。

2、容量和成本對比

相比起NandFlash來說,NorFlash的容量要小,一般在1~16MByte左右,一些新工藝採用了晶片疊加技術可以把NorFlash的容量做得大一些。在價格方面,NorFlash相比NandFlash來說較高,如目前市場上一片4Mbyte的AM29lv320 NorFlash零售價在20元左右,而一片128MByte的k9f1g08 NandFlash零售價在30元左右。

NandFlash生產過程更為簡單,NAND結構可以在給定的模具尺寸內提供更高的容量,這樣也就相應地降低了價格。

3、可靠性性對比

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

在Flash的位翻轉(一個bit位發生翻轉)現象上,NAND的出現機率要比NorFlash大得多。這個問題在Flash儲存關鍵檔案時是致命的,所以在使用NandFlash時建議同時使用EDC/ECC等校驗演算法。

4、壽命對比

在NAND快閃記憶體中每個塊的大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。快閃記憶體的使用壽命同時和檔案系統的機制也有關,要求檔案系統具有損耗平衡功能。

5、升級對比

NorFlash的升級較為麻煩,因為不同容量的NorFlash的地址線需求不一樣,所以在更換不同容量的NorFlash晶片時不方便。通常我們會通過在電路板的地址線上做一些跳接電阻來解決這樣的問題,針對不同容量的NorFlash。

而不同容量的NandFlash的介面是固定的,所以升級簡單。

6、讀寫效能對比

寫操作:任何flash器件的寫入操作都只能在空或已擦除的單元內進行。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位都寫為1。擦除NOR器件時是以64~128KB的塊進行的,執行一個擦除/寫入操作的時間約為5s。擦除NAND器件是以8~32KB的塊進行的,執行一個擦除/寫入操作多隻需要4ms。

讀操作:NOR的讀速度比NAND稍快一些。

7、檔案系統比較

Linux系統中採用MTD來管理不同型別的Flash晶片,包括NandFlash和NorFlash。支援在Flash上執行的常用檔案系統有cramfs、jffs、jffs2、yaffs、yaffs2等。cramfs檔案系統是隻讀檔案系統。如果想在Flash上實現讀寫操作,通常在NorFlash上我們會選取jffs及jffs2檔案系統,在NandFlash上選用yaffs或yaffs2檔案系統。Yaffs2檔案系統支援大頁(大於512位元組/頁)的NandFlash儲存器。

serial flash
現在有些晶片為了減少啟動引腳,可以採用QSPI serial flash作為啟動儲存器。其採用spi/qspi 的方式進行序列的讀取資料,減小引腳消耗。這個只是通訊方式的改變,其內部結構一般還是nor flash或者nand flash