2009年9月28日 星期一

NOR, NAND, DRAM

NOR和NAND是現在市場上兩種主要的非易失快閃記憶體技術。
Intel於1988年首先開發出NOR flash技術,徹底改變了原先由EPROM和EEPROM一統天下的局面。緊接著,
1989年,東芝公司發表了NAND flash結構,強調降低每比特的成本,更高的性能,
並且象磁片一樣可以通過介面輕鬆升級。
但是經過了十多年之後,仍然有相當多的硬體工程師分不清NOR和NAND快閃記憶體。

相“flash記憶體”經常可以與相“NOR記憶體”互換使用。
許多業內人士也搞不清楚NAND快閃記憶體技術相對於NOR技術的優越之處,
因為大多數情況下快閃記憶體只是用來存儲少量的代碼,
這時NOR快閃記憶體更適合一些。而NAND則是高資料存儲密度的理想解決方案。

NOR的特點是晶片內執行(XIP, eXecute In Place),
這樣應用程式可以直接在flash快閃記憶體內運行,不必再把代碼讀到系統RAM中。
NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,
但是很低的寫入和擦除速度大大影響了它的性能。

NAND結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度也很快。
應用NAND的困難在於flash的管理和需要特殊的系統介面。

性能比較

flash快閃記憶體是非易失記憶體,可以對稱為塊的記憶體單元塊進行擦寫和再編程。
任何flash器件的寫入操作只能在空或已擦除的單元內進行,
所以大多數情況下,在進行寫入操作之前必須先執行擦除。
NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位元都寫為0。

由於擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間為5s,
與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多只需要4ms。

執行擦除時塊尺寸的不同進一步拉大了NOR和NADN之間的性能差距,統計表明,
對於給定的一套寫入操作(尤其是更新小檔時),更多的擦除操作必須在基於NOR的單元中進行。
這樣,當選擇存儲解決方案時,設計師必須權衡以下的各項因素。

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

介面差別

NOR flash帶有SRAM介面,有足夠的位址引腳來定址,可以很容易地存取其內部的每一個位元組。
NAND器件使用複雜的I/O口來串列地存取資料,各個產品或廠商的方法可能各不相同。
8個引腳用來傳送控制、位址和資料資訊。

NAND讀和寫操作採用512位元組的塊,這一點有點像硬碟管理此類操作,
很自然地,基於NAND的記憶體就可以取代硬碟或其他塊設備。

容量和成本

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

NOR flash佔據了容量為1~16MB快閃記憶體市場的大部分,
而NAND flash只是用在8~128MB的產品當中,
這也說明NOR主要應用在代碼存儲介質中,NAND適合於資料存儲,
NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所占份額最大。

可靠性和耐用性

採用flahs介質時一個需要重點考慮的問題是可靠性。對於需要擴展MTBF的系統來說,
Flash是非常合適的存儲方案。可以從壽命(耐用性)、位交換和壞塊處理三個方面來比較NOR和NAND的可靠性

壽命(耐用性)

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

位交換

所有flash器件都受位交換現象的困擾。
在某些情況下(很少見,NAND發生的次數要比NOR多),一個比特位會發生反轉或被報告反轉了。

一位的變化可能不很明顯,但是如果發生在一個關鍵檔上,這個小小的故障可能導致系統停機。
如果只是報告有問題,多讀幾次就可能解決了。

當然,如果這個位真的改變了,就必須採用錯誤探測/錯誤更正(EDC/ECC)演算法。
位反轉的問題更多見於NAND快閃記憶體,
NAND的供應商建議使用NAND快閃記憶體的時候,同時使用EDC/ECC演算法。

這個問題對於用NAND存儲多媒體資訊時倒不是致命的。
當然,如果用本地存儲設備來存儲作業系統、配置檔或其他敏感資訊時,必須使用EDC/ECC系統以確保可靠性。

壞塊處理

NAND器件中的壞塊是隨機分佈的。
以前也曾有過消除壞塊的努力,但發現成品率太低,代價太高,根本不划算。

NAND器件需要對介質進行初始化掃描以發現壞塊,並將壞塊標記為不可用。
在已製成的器件中,如果通過可靠的方法不能進行這項處理,將導致高故障率。

易於使用

可以非常直接地使用基於NOR的快閃記憶體,可以像其他記憶體那樣連接,並可以在上面直接運行代碼。

由於需要I/O介面,NAND要複雜得多。各種NAND器件的存取方法因廠家而異。

在使用NAND器件時,必須先寫入驅動程式,才能繼續執行其他操作。
向NAND器件寫入資訊需要相當的技巧,因為設計師絕不能向壞塊寫入,
這就意味著在NAND器件上自始至終都必須進行虛擬映射。

軟體支援

當討論軟體支援的時候,應該區別基本的讀/寫/擦操作和高一級的用於磁片仿真
和快閃記憶體管理演算法的軟體,包括性能優化。

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

使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用於NOR器件的更高級軟體,
這其中包括M-System的TrueFFS驅動,該驅動被Wind River System、Microsoft、
QNX Software System、Symbian和Intel等廠商所採用。

驅動還用於對DiskOnChip產品進行仿真和NAND快閃記憶體的管理,
包括糾錯、壞塊處理和損耗平衡。(糾正一點:NOR擦除時,是全部寫1,不是寫0,
而且,NOR FLASH SECTOR擦除時間視品牌、大小不同而不同,
比如,4M FLASH,有的SECTOR擦除時間為60ms,而有的需要最大6S。)

NOR FLASH的主要供應商是INTEL ,MICRO等廠商,曾經是FLASH的主流產品,
但現在被NAND FLASH擠的比較難受。
它的優點是可以直接從FLASH中運行程式,但是工藝複雜,價格比較貴。

NAND FLASH的主要供應商是SAMSUNG和東芝,
在油盤、各種存儲卡、MP3播放器裏面的都是這種FLASH,由於工藝上的不同,
它比NOR FLASH擁有更大存儲容量,而且便宜。
但也有缺點,就是無法定址直接運行程式,只能存儲資料。
另外NAND FLASH 非常容易出現壞區,所以需要有校驗的演算法。

在掌上電腦裏要使用NAND FLASH 存儲資料和程式,但是必須有NOR FLASH來啟動。
除了SAMSUNG處理器,其他用在掌上電腦的主流處理器還不支援直接由NAND FLASH 啟動程式。
因此,必須先用一片小的NOR FLASH 啟動機器,
在把OS等軟體從NAND FLASH 載入SDRAM中運行才行。
---------------------
日本最大DRAM廠爾必達(Elpida)在政府金援下,景氣回春

沒有留言: