FLASH存儲器又稱(chēng)閃存,主要有兩種:NorFlash和NandFlash,下面我們從多個(gè)角度來(lái)對比介紹一下。在實(shí)際開(kāi)發(fā)中,設計者可以根據產(chǎn)品需求來(lái)進(jìn)行閃存的合理選擇。 1、接口對比 NorFlash帶有通用的SRAM接口,可以輕松地掛接在CPU的地址、數據總線(xiàn)上,對CPU的接口要求低。NorFlash的特點(diǎn)是芯片內執行(XIP,eXecute In Place),這樣應用程序可以直接在flash閃存內運行,不必再把代碼讀到系統RAM中。如uboot中的ro段可以直接在NorFlash上運行,只需要把rw和zi段拷貝到RAM中運行即可。 NandFlash器件使用復雜的I/O口來(lái)串行地存取數據,8個(gè)引腳用來(lái)傳送控制、地址和數據信息。由于時(shí)序較為復雜,所以一般CPU最好集成NAND控制器。另外由于NandFlash沒(méi)有掛接在地址總線(xiàn)上,所以如果想用NandFlash作為系統的啟動(dòng)盤(pán),就需要CPU具備特殊的功能,如s3c2410在被選擇為NandFlash啟動(dòng)方式時(shí)會(huì )在上電時(shí)自動(dòng)讀取NandFlash的4k數據到地址0的SRAM中。如果CPU不具備這種特殊功能,用戶(hù)不能直接運行NandFlash上的代碼,那可以采取其他方式,比如好多使用NandFlash的開(kāi)發(fā)板除了使用NandFlash以外,還用上了一塊小的NorFlash來(lái)運行啟動(dòng)代碼。 2、容量和成本對比 相比起NandFlash來(lái)說(shuō),NorFlash的容量要小,一般在1"16MByte左右,一些新工藝采用了芯片疊加技術(shù)可以把NorFlash的容量做得大一些。在價(jià)格方面,NorFlash相比NandFlash來(lái)說(shuō)較高,如目前市場(chǎng)上一片4Mbyte的AM29lv320 NorFlash零售價(jià)在20元左右,而一片128MByte的k9f1g08 NandFlash零售價(jià)在30元左右。 NandFlash生產(chǎn)過(guò)程更為簡(jiǎn)單,NAND結構可以在給定的模具尺寸內提供更高的容量,這樣也就相應地降低了價(jià)格。 3、可靠性性對比 NAND器件中的壞塊是隨機分布的,以前也曾有過(guò)消除壞塊的努力,但發(fā)現成品率太低,代價(jià)太高,根本不劃算。NAND器件需要對介質(zhì)進(jìn)行初始化掃描以發(fā)現壞塊,并將壞塊標記為不可用。在已制成的器件中,如果通過(guò)可靠的方法不能進(jìn)行這項處理,將導致高故障率。而壞塊問(wèn)題在NorFlash上是不存在的。 在Flash的位翻轉(一個(gè)bit位發(fā)生翻轉)現象上,NAND的出現幾率要比NorFlash大得多。這個(gè)問(wèn)題在Flash存儲關(guān)鍵文件時(shí)是致命的,所以在使用NandFlash時(shí)建議同時(shí)使用EDC/ECC等校驗算法。 4、壽命對比 在NAND閃存中每個(gè)塊的最大擦寫(xiě)次數是一百萬(wàn)次,而NOR的擦寫(xiě)次數是十萬(wàn)次。閃存的使用壽命同時(shí)和文件系統的機制也有關(guān),要求文件系統具有損耗平衡功能。 5、升級對比 NorFlash的升級較為麻煩,因為不同容量的NorFlash的地址線(xiàn)需求不一樣,所以在更換不同容量的NorFlash芯片時(shí)不方便。通常我們會(huì )通過(guò)在電路板的地址線(xiàn)上做一些跳接電阻來(lái)解決這樣的問(wèn)題,針對不同容量的NorFlash。 而不同容量的NandFlash的接口是固定的,所以升級簡(jiǎn)單。 6、讀寫(xiě)性能對比 寫(xiě)操作:任何flash器件的寫(xiě)入操作都只能在空或已擦除的單元內進(jìn)行。NAND器件執行擦除操作是十分簡(jiǎn)單的,而NOR則要求在進(jìn)行擦除前先要將目標塊內所有的位都寫(xiě)為1。擦除NOR器件時(shí)是以64~128KB的塊進(jìn)行的,執行一個(gè)擦除/寫(xiě)入操作的時(shí)間約為5s。擦除NAND器件是以8~32KB的塊進(jìn)行的,執行一個(gè)擦除/寫(xiě)入操作最多只需要4ms。 讀操作:NOR的讀速度比NAND稍快一些。 7、文件系統比較 Linux系統中采用MTD來(lái)管理不同類(lèi)型的Flash芯片,包括NandFlash和NorFlash。支持在Flash上運行的常用文件系統有cramfs、jffs、jffs2、yaffs、yaffs2等。cramfs文件系統是只讀文件系統。如果想在Flash上實(shí)現讀寫(xiě)操作,通常在NorFlash上我們會(huì )選取jffs及jffs2文件系統,在NandFlash上選用yaffs或yaffs2文件系統。Yaffs2文件系統支持大頁(yè)(大于512字節/頁(yè))的NandFlash存儲器。 |