天天看點

NorFlash、NandFlash在技術和應用上有些什麼差別?

首先你要搞懂什麼是Flash Memory?

Flash Memory(快閃存儲器),是一種電子式可清除程式化隻讀存儲器的形式,允許在操作中被多次擦或寫的存儲器。這種科技主要用于一般性資料存儲,以及在電腦與其他數字産品間交換傳輸資料,如儲存卡與U盤。閃存是非易失性的存儲器,是以單就儲存資料而言, 它是不需要消耗電力的。

與硬碟相比,閃存也有更佳的動态抗震性。這些特性正是閃存被移動裝置廣泛采用的原因。閃存還有一項特性:當它被制成儲存卡時非常可靠,即使浸在水中也足以抵抗高壓與極端的溫度。閃存的寫入速度往往明顯慢于讀取速度。

NorFlash

NOR Flash需要很長的時間進行抹寫,但是它提供完整的尋址與資料總線,并允許随機存取存儲器上的任何區域,這使的它非常适合取代老式的ROM晶片。當時ROM晶片主要用來存儲幾乎不需更新的代碼,例如電腦的BIOS或機上盒(Set-top Box)的固件。NOR Flash可以忍受一萬到一百萬次抹寫循環,它同時也是早期的可移除式快閃存儲媒體的基礎。CompactFlash本來便是以NOR Flash為基礎的,雖然它之後跳槽到成本較低的 NAND Flash。

NandFlash

NAND Flash式東芝在1989年的國際固态電路研讨會(ISSCC)上發表的, 要在NandFlash上面讀寫資料,要外部加主要和電路設計。NAND Flash具有較快的抹寫時間, 而且每個存儲單元的面積也較小,這讓NAND Flash相較于NOR Flash具有較高的存儲密度與較低的每比特成本。同時它的可抹除次數也高出NOR Flash十倍。然而NAND Flash 的I/O接口并沒有随機存取外部位址總線,它必須以區塊性的方式進行讀取,NAND Flash典型的區塊大小是數百至數千比特。

因為多數微處理器與微控制器要求位元組等級的随機存取,是以NAND Flash不适合取代那些用以裝載程式的ROM。從這樣的角度看來,NAND Flash比較像CD光牒、硬碟這類的次級儲存設備。NAND Flash非常适合用于儲存卡之類的大量儲存設備。第一款建立在NAND Flash基礎上的可移除式存儲媒體是SmartMedia,此後許多存儲媒體也跟着采用NAND Flash,包括MultiMediaCard、Secure Digital、Memory Stick與xD卡。

1.主要差別

NOR Flash是intel公司1988年開發的。NOR的特點是晶片内執行(XIP, eXecute In Place),這樣應用程式可以直接在flash 閃存内運作,不必再把代碼讀到系統RAM中。NOR的優點是傳輸效率很高,但是工藝複雜,價格較貴。在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。NOR在開發闆中應用的非常廣泛,通過JTAG/JLINK把boot燒到NOR中,通電後自動運作。

NAND Flash是東芝公司1989年發表的,其内部采用非線性宏單元模式,為固态大容量記憶體的實作提供了廉價有效的解決方案。NANDFlash的優點是容量大、便宜、改寫速度快,缺點是無法尋址直接運作程式,隻能存儲資料。另外NAND Flash非常容易出現壞區,是以需要有校驗的算法。應用NAND的困難在于Flash的管理和需要特殊的系統接口。NAND Flash适用于大量資料的存儲,因而在業界得到了越來越廣泛的應用,如嵌入式産品中包括數位相機、MP3随身聽記憶卡、體積小巧的U盤等。

2.讀寫速度比較

Flash閃存是非易失存儲器,可以存儲器單元塊進行擦寫和再程式設計。任何Flash器件的寫入操作隻能在空或已擦除的單元内進行,是以大多數情況下,在進行寫入操作之前必須先執行擦除。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要将目标塊内所有的位都寫為0。由于擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多隻需要4ms。執行擦除時塊尺寸的不同進一步拉大了NOR和NAND之間的性能差距。統計表明,對于給定的一套寫入操作(尤其是更新小檔案時),更多的擦除操作必須在基于NOR的單元中進行。這樣,當選擇存儲解決方案時,設計師必須權衡以下的各項因素。

  • NOR的讀速度比NAND稍快一些。
  • NAND的寫入速度比NOR快很多。
  • 大多數寫入操作需要先進行擦除操作。
  • NAND的擦除單元更小,相應的擦除電路更少。
  • NAND的4ms擦除速度遠比NOR的5s快。

3.接口差別

NOR Flash帶有SRAM接口,有足夠的位址引腳來尋址,可以很容易地存取其内部的每一個位元組。

NAND器件使用複雜的I/O口來串行地存取資料,各個産品或廠商的方法可能各不相同。8個引腳用來傳送控制、位址和資料資訊。NAND讀和寫操作采用512位元組的塊,這一點有點像硬碟管理此類操作,是以,基于NAND的存儲器就可以取代硬碟或其他塊裝置。

4.容量和成本

NAND Flash的單元尺寸幾乎是NOR器件的一半,由于生産過程更為簡單,NAND結構可以在給定的模具尺寸内提供更高的容量,也就相應地降低了價格。

NOR Flash占據了容量為1~16MB閃存市場的大部分,而NAND Flash隻是用在8~128MB的産品當中,這也說明NOR主要應用在代碼存儲媒體中,NAND适合于資料存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所占份額最大。

5.可靠性和耐用性

  • 壽命(耐用性)

在NAND閃存中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。NAND存儲器除了具有10比1的塊擦除周期優勢,典型的NAND塊尺寸要比NOR器件小8倍,每個NAND存儲器塊在給定的時間内的删除次數要少一些。

  • 位交換

所有Flash器件都受位交換現象的困擾。在某些情況下(很少見,NAND發生的次數要比NOR多),一個比特位會發生反轉或被報告反轉了。一位的變化可能不很明顯,但是如果發生在一個關鍵檔案上,這個小小的故障可能導緻系統停機。如果隻是報告有問題,多讀幾次就可能解決了。當然,如果這個位真的改變了,就必須采用錯誤探測/錯誤更正(EDC/ECC)算法。位反轉的問題更多見于NAND閃存,在使用NAND閃存的時候,應使用EDC/ECC算法。這個問題對于用NAND存儲多媒體資訊時倒不是緻命的。當然,如果用本地儲存設備來存儲作業系統、配置檔案或其他敏感資訊時,必須使用EDC/ECC系統以確定可靠性。

  • 壞塊處理

NAND器件中的壞塊是随機分布的,NAND器件需要對媒體進行初始化掃描以發現壞塊,并将壞塊标記為不可用。在已制成的器件中,如果通過可靠的方法不能進行這項處理,将導緻高故障率。

6.易用性

基于NOR的閃存可以非常直接地使用,可以像其他存儲器那樣連接配接,并可以在上面直接運作代碼。

NAND由于需要I/O接口,要複雜得多。各種NAND器件的存取方法因廠家而異。在使用NAND器件時,必須先寫入驅動程式,才能繼續執行其他操作。向NAND器件寫入資訊需要相當的技巧,因為設計師絕不能向壞塊寫入,這就意味着在NAND器件上自始

7.軟體差別

在NOR器件上運作代碼不需要任何的軟體支援,在NAND器件上進行同樣操作時,通常需要驅動程式,也就是記憶體技術驅動程式(MTD),NAND和NOR器件在進行寫入和擦除操作時都需要MTD。

使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用于NOR器件的更進階軟體,這其中包括M-System的TrueFFS驅動,該驅動被WindRiverSystem、Microsoft、QNXSoftwareSystem、Symbian和Intel等廠商所采用。驅動還用于對DiskOnChip産品進行仿真和NAND閃存的管理,包括糾錯、壞塊處理和損耗平衡。