0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳細(xì)剖析NorFlash和NandFlash的區(qū)別

MCU開發(fā)加油站 ? 2018-01-31 10:25 ? 次閱讀

Flash編程原理都是只能將1寫為0,而不能將0寫成1。所以在Flash編程之前,必須將對應(yīng)的塊擦除,而擦除的過程就是將所有位都寫為1的過程,塊內(nèi)的所有字節(jié)變?yōu)?xFF。因此可以說,編程是將相應(yīng)位寫0的過程,而擦除是將相應(yīng)位寫1的過程,兩者的執(zhí)行過程完全相反。

(1)閃存芯片讀寫的基本單位不同

應(yīng)用程序?qū)orFlash芯片操作以“字”為基本單位。為了方便對大容量NorFlash閃存的管理,通常將NOR閃存分成大小為128KB或64KB的邏輯塊,有時塊內(nèi)還分扇區(qū)。讀寫時需要同時指定邏輯塊號和塊內(nèi)偏移。應(yīng)用程序?qū)andFlash芯片操作是以“塊”為基本單位.NAND閃存的塊比較小,一般是8KB,然后每塊又分成頁,頁大小一般是512字節(jié)。要修改NandFlash芯片中一個字節(jié),必須重寫整個數(shù)據(jù)塊。

(2)NorFlash閃存是隨機(jī)存儲介質(zhì),用于數(shù)據(jù)量較小的場合;NandFlash閃存是連續(xù)存儲介質(zhì),適合存放大的數(shù)據(jù)。

(3)由于NorFlash地址線和數(shù)據(jù)線分開,所以NorFlash芯片可以像SDRAM一樣連在數(shù)據(jù)線上。NOR芯片的使用類似于通常內(nèi)存芯片,傳輸效率高,可執(zhí)行程序可以在芯片內(nèi)執(zhí)行(XI P, eXecute In Place),這樣應(yīng)用程序可以直接在flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中.由于NorFlash的這個特點(diǎn),嵌入式系統(tǒng)中經(jīng)常將NOR芯片做啟動芯片使用。NandFlash共用地址和數(shù)據(jù)總線,需要額外聯(lián)結(jié)一些控制的輸入輸出,所以直接將NAND芯片做啟動芯片比較難。

(4)NandFlash閃存芯片因?yàn)楣灿玫刂泛蛿?shù)據(jù)總線的原因,不允許對一個字節(jié)甚至一個塊進(jìn)行的數(shù)據(jù)清空,只能對一個固定大小的區(qū)域進(jìn)行清零操作;NorFlash芯片可以對字進(jìn)行操作。所以在處理小數(shù)據(jù)量的I/O操作的時候的速度要快與NorFlash的速度。比如一塊NorFlash芯片通常寫一個字需要10us,在32位總線上寫512字節(jié)需要1280us;NandFlash閃存寫512字節(jié)需要的時間包括:512×每字節(jié)50ns+10us的尋頁時間+200us的片擦寫時間=234us。

(5)NandFlash閃存的容量比較大,最大容量己達(dá)到8G字節(jié).為了方便管理,NandFlash的存儲空間使用了塊和頁兩級存儲體系,也就是說它的存儲空間是二維的,比如K9F5608UOA閃存塊的大小為16K,每頁大小是512字節(jié),每頁還16字節(jié)空閑區(qū)用來存放錯誤校驗(yàn)碼空間(也稱為out-of-band,OOB空間)。在進(jìn)行寫操作時,NandFlash閃存每次將一個字節(jié)的數(shù)據(jù)放入內(nèi)部的緩存區(qū),然后再發(fā)出“寫指令”進(jìn)行寫操作。由于對NandFlash閃存的操作都是以塊和頁為單位的,所以在向NandFlash閃存進(jìn)行大量數(shù)據(jù)的讀寫時,NAND的速度要快于NOR閃存。

(6)可靠性

NorFlash閃存的可靠性要高于NandFlash閃存,是因?yàn)镹orFlash型閃存的接口簡單,數(shù)據(jù)操作少,位交換操作少,因此可靠性高,極少出現(xiàn)壞區(qū)塊,一般用在對可靠性要求高的地方。NandFlash型閃存接口和操作均相對復(fù)雜,位交換操作也很多,關(guān)鍵性數(shù)據(jù)更是需安錯誤探測/錯誤更正(EDC/ECC)算法來確保數(shù)據(jù)的完整性,因此出現(xiàn)問題的幾率要大得多,壞區(qū)塊也是不可避免的,而且由于壞區(qū)塊是隨機(jī)分布的,連糾錯也無法做到。

(7)NANDFlash一般地址線和數(shù)據(jù)線共用,對讀寫速度有一定影響;NORFlash閃存數(shù)據(jù)線和地址線分開,相對而言讀寫速度快一些。

NANDFlash和NORFlash芯片的共性

首先表現(xiàn)在向芯片中寫數(shù)據(jù)必須先將芯片中對應(yīng)的內(nèi)容清空,然后再寫入,即先擦后寫。只不過NORFlash芯片只用擦寫一個字,而NAND需要擦寫整個塊。其次,閃存擦寫的次數(shù)都是有限的。當(dāng)閃存使用接近使用壽命時,經(jīng)常會出現(xiàn)寫操作失??;到達(dá)使用壽命時,閃存內(nèi)部存放的數(shù)據(jù)雖然可以讀,但不能再進(jìn)行寫操作了。所以為了防止上面問題的發(fā)生,不能對某個特定的區(qū)域反復(fù)進(jìn)行寫操作。通常NANDFlash可擦寫次數(shù)高于NORFlash芯片,但是由于NANDFlash通常是整塊擦寫,塊內(nèi)的頁面中如果有一位失效整個塊就會失效,而且由于擦寫過程復(fù)雜,失敗的概率相對較高,所以從整體上來說NOR的壽命較長。

另一個共性是閃存的讀寫操作不僅僅是一個物理操作,實(shí)際上在閃存上存放數(shù)據(jù)必須使用算法實(shí)現(xiàn),這個模塊一般在驅(qū)動程序的MTD'(Memory Technology Drivers)模塊中或者在FTLZ (Flash Translation Layer)層內(nèi)實(shí)現(xiàn),具體算法和芯片的生產(chǎn)廠商以及芯片型號有關(guān)系。通過比較可以發(fā)現(xiàn),NAND更適用于復(fù)雜的文件應(yīng)用,但是由于NAND芯片的使用相對復(fù)雜,所以對文件系統(tǒng)有較高的要求。

(8)接口對比

NorFlash帶有通用的SRAM接口,可以輕松地掛接在CPU的地址、數(shù)據(jù)總線上,對CPU的接口要求低。NorFlash的特點(diǎn)是芯片內(nèi)執(zhí)行(XIP,eXecute In Place),這樣應(yīng)用程序可以直接在flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。如uboot中的ro段可以直接在NorFlash上運(yùn)行,只需要把rw和zi段拷貝到RAM中運(yùn)行即可。

NandFlash器件使用復(fù)雜的I/O口來串行地存取數(shù)據(jù),8個引腳用來傳送控制、地址和數(shù)據(jù)信息。由于時序較為復(fù)雜,所以一般CPU最好集成NandFlash控制器.另外由于NandFlash沒有掛接在地址總線上,所以如果想用NandFlash作為系統(tǒng)的啟動盤,就需要CPU具備特殊的功能,如s3c2410在被選擇為NandFlash啟動方式時會在上電時自動讀取NandFlash的4k數(shù)據(jù)到地址0的SRAM中.如果CPU不具備這種特殊功能,用戶不能直接運(yùn)行NandFlash上的代碼,那可以采取其他方式,比如好多使用NandFlash的開發(fā)板除了使用NandFlash以外,還用上了一塊小的NorFlash來運(yùn)行啟動代碼。

(9)容量和成本對比

相比起NandFlash來說,NorFlash的容量要小,一般在1~16MByte左右,一些新工藝采用了芯片疊加技術(shù)可以把NorFlash的容量做得大一些。在價格方面,NorFlash相比NandFlash來說較高,如目前市場上一片4Mbyte的AM29lv320 NorFlash零售價在20元左右,而一片128MByte的k9f1g08 NandFlash零售價在30元左右。 NandFlash生產(chǎn)過程更為簡單,NAND結(jié)構(gòu)可以在給定的模具尺寸內(nèi)提供更高的容量,這樣也就相應(yīng)地降低了價格。

(10)

NandFlash器件中的壞塊是隨機(jī)分布的,以前也曾有過消除壞塊的努力,但發(fā)現(xiàn)成品率太低,代價太高,根本不劃算。Nand器件需要對介質(zhì)進(jìn)行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標(biāo)記為不可用.在已制成的器件中,如果通過可靠的方法不能進(jìn)行這項(xiàng)處理,將導(dǎo)致高故障率。而壞塊問題在NorFlash上是不存在的.

在Flash的位翻轉(zhuǎn)(一個bit位發(fā)生翻轉(zhuǎn))現(xiàn)象上,NAND的出現(xiàn)幾率要比NorFlash大得多.這個問題在Flash存儲關(guān)鍵文件時是致命的,所以在使用NandFlash時建議同時使用EDC/ECC等校驗(yàn)算法。

(11)升級對比

NorFlash的升級較為麻煩,因?yàn)椴煌萘康腘orFlash的地址線需求不一樣,所以在更換不同容量的NorFlash芯片時不方便。通常我們會通過在電路板的地址線上做一些跳接電阻來解決這樣的問題,針對不同容量的NorFlash。 而不同容量的NandFlash的接口是固定的,所以升級簡單。

(12)讀寫性能對比

寫操作:任何flash器件的寫入操作都只能在空或已擦除的單元內(nèi)進(jìn)行。

NAND器件執(zhí)行擦除操作是十分簡單的,而NOR則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫為1。

擦除NOR器件時是以64~128KB的塊進(jìn)行的,執(zhí)行一個擦除/寫入操作的時間約為5s。擦除NAND器件是以8~32KB的塊進(jìn)行的,執(zhí)行一個擦除/寫入操作最多只需要4ms.

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

(13)文件系統(tǒng)比較

Linux系統(tǒng)中采用MTD來管理不同類型的Flash芯片,包括NandFlash和NorFlash。支持在Flash上運(yùn)行的常用文件系統(tǒng)有cramfs、jffs、jffs2、yaffs、yaffs2等。cramfs文件系統(tǒng)是只讀文件系統(tǒng)。如果想在Flash上實(shí)現(xiàn)讀寫操作,通常在NorFlash上我們會選取jffs及jffs2文件系統(tǒng),在NandFlash上選用yaffs或yaffs2文件系統(tǒng)。Yaffs2文件系統(tǒng)支持大頁(大于512字節(jié)/頁)的NandFlash存儲器。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 閃存
    +關(guān)注

    關(guān)注

    16

    文章

    1745

    瀏覽量

    114572
  • 讀寫
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    15497
  • nandflash
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    20154
  • NORFlash
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    9193

原文標(biāo)題:NorFlash和NandFlash區(qū)別

文章出處:【微信號:mcugeek,微信公眾號:MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    S3c2440處理器中nor flash啟動和nand flash啟動問題

    要知道這一點(diǎn),首先要明白nandflashnorflash區(qū)別,首先,norflash是隨機(jī)存儲介質(zhì),也就是說,對norflash的操作
    的頭像 發(fā)表于 09-24 11:35 ?4889次閱讀
    S3c2440處理器中nor flash啟動和nand flash啟動問題

    NorFlashNandFlash對比

    本帖最后由 ORCAD__PCB 于 2012-8-9 14:24 編輯 NorFlashNandFlash對比
    發(fā)表于 08-09 14:22

    2440nandflash下載和啟動的問題

    嗎,我的疑惑是:程序不是已經(jīng)存到nandflash了嗎,上電后硬件自動copy 4K到內(nèi)存,應(yīng)該重啟也可執(zhí)行的,nandflash要怎么下載才能重啟繼續(xù)運(yùn)行?2)開關(guān)打到norflash g運(yùn)行原來
    發(fā)表于 10-24 21:20

    請問stm32內(nèi)部集成的flash是norflash還是nandflash?

    stm32內(nèi)部集成的flash是norflash還是nandflash?
    發(fā)表于 06-06 03:37

    請問tftp 30000000 lcd.bin是下載到nandflash還是norflash?

    tftp 30000000 lcd.bin是下載到nandflash還是norflash
    發(fā)表于 08-28 23:51

    請問把uImage燒到norflash的命令是什么?

    我的nandflash已經(jīng)壞了,只有norflash可以進(jìn)入u-boot, 以前老師視頻里面的,方法都是 把uImage燒到 nandfalsh里面的,但是我現(xiàn)在的nandflash已經(jīng)壞了,我想請問,把uImage燒到
    發(fā)表于 09-19 03:11

    請問CC2530的Flash是NorFlash還是NandFlash

    我想問一下CC2530的Flash 是NorFlash還是NandFlash?謝謝!
    發(fā)表于 04-01 09:43

    求大神詳細(xì)剖析GM的VOLT車

    求大神詳細(xì)剖析GM的VOLT車
    發(fā)表于 05-18 06:14

    幾種掉電不丟數(shù)據(jù)的存儲設(shè)備的區(qū)別

    首先談一下幾種掉電不丟數(shù)據(jù)的存儲設(shè)備的區(qū)別:1.Norflash:可擦寫,貴,在Norflash上可以直接運(yùn)行代碼!2.Nandflash:可擦寫,便宜,只能用于存儲數(shù)據(jù);3.磁盤:就
    發(fā)表于 11-03 07:02

    ARM的程序是不是直接可以從nandFlash或者norflash直接運(yùn)行

    ARM的程序是不是直接可以從nandFlash或者norflash直接運(yùn)行?理論上不用RAM也可以,是吧?不過nandFlash要初始化才能使用,對吧?那么,有沒有不用初始化就能使用的空間呢,就像單片機(jī)。
    發(fā)表于 11-23 14:32

    如何對STM32MP1 QUADSPI上的NorFlashNandFlash進(jìn)行配置呢

    我正在設(shè)計(jì)一個基于 STM32MP1 的電路板,這是我第一次使用 QUADSPI。我需要在 NorFlash (MLO + U-boot) 上啟動,我的 Linux 文件系統(tǒng)將在 NandFlash
    發(fā)表于 12-19 08:51

    NorFlashNandFlash對比分析哪個好?

    1、接口對比 NorFlash帶有通用的SRAM接口,可以輕松地掛接在CPU的地址、數(shù)據(jù)總線上,對CPU的接口要求低。 NandFlash器件使用復(fù)雜的I/O口來串行地存取數(shù)據(jù),8個引腳用來傳送控制
    發(fā)表于 06-26 08:13

    NorFlashNandFlash、eMMC閃存三者對比

    NAND Flash式東芝在1989年的國際固態(tài)電路研討會(ISSCC)上發(fā)表的, 要在NandFlash上面讀寫數(shù)據(jù),要外部加主控和電路設(shè)計(jì)。
    發(fā)表于 09-19 09:11 ?2.4w次閱讀

    Linux經(jīng)常出現(xiàn)的3道基礎(chǔ)面試題快來復(fù)習(xí)吧

    一請問uboot啟動過程都做了些什么?二為什么uboot要關(guān)掉cache? 三nandflashnorflash區(qū)別,對norflash的操作方式的理解?
    的頭像 發(fā)表于 12-31 10:40 ?3470次閱讀

    sd nand與nand flash的區(qū)別?

    大家知道目前主流的存儲芯片大致可以分為NORFlashNANDFlash。容量需要大一點(diǎn)的話,就會用采用NANDFlash。但用NANDFlash會有哪些問題呢?第一,
    的頭像 發(fā)表于 07-07 15:37 ?778次閱讀
    sd nand與nand flash的<b class='flag-5'>區(qū)別</b>?