-
Nand flash
鎖定
Nand flash解析
NOR和NAND是市場上兩種主要的非易失閃存技術。Intel於1988年首先開發出NOR flash技術,徹底改變了原先由EPROM和EEPROM一統天下的局面。緊接着,1989年,東芝公司發表了NAND flash結構,強調降低每比特的成本,更高的性能,並且像磁盤一樣可以通過接口輕鬆升級。但是經過了十多年之後,仍然有相當多的硬件工程師分不清NOR和NAND閃存。
“NAND存儲器”經常可以與“NOR存儲器”相互換使用。許多業內人士也搞不清楚NAND閃存技術相對於NOR技術的優越之處,因為大多數情況下閃存只是用來存儲少量的代碼並且需要多次擦寫,這時NOR閃存更適合一些。而NAND則是高數據存儲密度的理想解決方案。
NOR的特點是芯片內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash 閃存內運行,不必再把代碼讀到系統RAM中。NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除 速度大大影響了它的性能。
NAND結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度也很快。應用NAND的困難在於flash的管理需要特殊的系統接口。
Nand flash主要區別
NOR與NAND的區別
性能比較
flash閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內進行,所以大多數情況下,在進行寫入操作之前必須先執行擦除。NAND器件執行擦除 操作是十分簡單的,而NOR則要求在進行擦除前 先要將目標塊內所有的位都寫為0。
由於擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間為5s ,與此相反,擦除NAND器件是以8~32KB的塊進 行的,執行相同的操作最多隻需要4ms。
執行擦除時塊尺寸的不同進一步拉大了NOR和NAND之間的性能差距,統計表明,對於給定的一套寫入操作(尤其是更新小文件時), 更多的擦除操作必須在基於NOR的單元中進行。這樣,當選擇存儲解決方案時,設計師必 須權衡以下的各項因素。
● NOR的讀速度比NAND稍快一些。
● NAND的寫入速度比NOR快很多。
● NAND的擦除速度遠比NOR快。
● NAND的擦除單元更小,相應的擦除電路更加簡單。
● NAND的實際應用方式要比NOR複雜的多。
● NOR可以直接使用,並在上面直接運行代碼,而NAND需要I/O接口,因此使用時需要驅動。
接口差別
NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內部的每 一個字節。
NAND器件使用複雜的I/O口來串行地存取數據,各個產品或廠商的方法可能各不相同 。8個引腳用來傳送控制、地址和數據信息。
NAND讀和寫操作採用512字節的塊,這一點有點像硬盤管理此類操作,很自然地,基於NAND的存儲器就可以取代硬盤或其他塊設備。NOR的特點是芯片內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash閃存內運行,不必再把代碼讀到系統RAM中。
NAND結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度也很快。應用NAND的困難在於flash的管理需要特殊的系統接口。
Nand flash程序特點
Nand flash容量和成本
NAND flash的單元尺寸幾乎是NOR器件的一半,由於生產過程更為簡單,NAND結構可 以在給定的模具尺寸內提供更高的容量,也就 相應地降低了價格。
NOR flash佔據了容量為1~16MB閃存市場的大部分,而NAND flash只是用在8~128M B的產品當中,這也説明NOR主要應用在代碼存 儲介質中,NAND適合於數據存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所佔份額最大。
Nand flash物理構成
NAND Flash 的數據是以bit的方式保存在memory cell,一般來説,一個cell 中只能存儲一個bit。這些cell 以8個或者16個為單位,連成bit line,形成所謂的byte(x8)/word(x16),這就是NAND Device的位寬。這些Line會再組成Page,(NAND Flash 有多種結構,例如NAND Flash 是K9F1208,下面內容針對三星的K9F1208U0M),每頁528Bytes(512byte(Main Area)+16byte(Spare Area)),每32個page形成一個Block(32*528B)。具體一片flash上有多少個Block視需要所定。再例如三星k9f1208U0M具有4096個block,故總容量為4096*(32*528B)=66MB,但是其中的2MB是用來保存ECC校驗碼等額外數據的,故實際中可使用的為64MB。
NAND flash以頁為單位讀寫數據,而以塊為單位擦除數據。按照這樣的組織方式可以形成所謂的三類地址:
Column Address:Starting Address of the Register. 翻成中文為列地址,地址的低8位
Page Address :頁地址
Block Address :塊地址
對於NAND Flash來講,地址和命令只能在I/O[7:0]上傳遞,數據寬度是8位。
Nand flash可靠耐用性
壽命(耐用性)
在NAND閃存中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。
位交換
所有flash器件都受位交換現象的困擾。在某些情況下(很少見,NAND發生的次數要比NOR多),一個比特位會發生反轉或被報告反轉了。
一位的變化可能不很明顯,但是如果發生在一個關鍵文件上,這個小小的故障可能 導致系統停機。如果只是報告有問題,多讀幾次 就可能解決了。
當然,如果這個位真的改變了,就必須採用錯誤探測/錯誤更正(EDC/ECC)算法。位 反轉的問題更多見於NAND閃存,NAND的供應商建 議使用NAND閃存的時候,同時使用EDC/ECC算法。
壞塊處理
NAND器件需要對介質進行初始化掃描以發現壞塊,並將壞塊標記為不可用。在已制 成的器件中,如果通過可靠的方法不能進行這項 處理,將導致高故障率。
Nand flash易於使用
可以非常直接地使用基於NOR的閃存,可以像其他存儲器那樣連接,並可以在上面直 接運行代碼。
Nand flash軟件支持
當討論軟件支持的時候,應該區別基本的讀/寫/擦操作和高一級的用於磁盤仿真和 閃存管理算法的軟件,包括性能優化。
在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和東芝,在U盤、各種存儲卡、MP3播放器裏面的都是這種 FLASH,由於工藝上的不同,它比NOR FLASH擁有更大存儲容量,而且便宜。但也有缺點,就是
無法尋址直接運行程序,只能存儲數據。另外NAND FLASH 非常容易出現壞區,所以需要有校驗的算法。
在掌上電腦裏要使用NAND FLASH 存儲數據和程序,但是必須有NOR FLASH來啓動。除了
SAMSUNG處理器,其他用在掌上電腦的主流處理器還不支持直接由NAND FLASH 啓動程序。因此,
Nand flash其他信息
NAND型閃存以塊為單位進行擦除操作。閃存的寫入操作必須在空白區域進行,如果目標區域已經有數據,必須先擦除後寫入,因此擦除操作是閃存的基本操作。
而SRAM (Static RAM,靜態隨機存儲器) - 此類靜態RAM的運行速度非常快,也非常昂貴,其體積相對來説也比較大。我們常説的CPU內的一級、二級緩存就是使用了此SRAM。英特爾的 Pentium III Coppermine CPU中結合有256KB的全速二級緩存,這實際上就是一種SRAM。非常不幸得就是 此種SRAM與其"夥伴"DRAM相比非常地昂貴,因此在CPU內只能使用少量的SRAM,以降低處理器的生產成本;不過由於SRAM的特點---高速 度,因此對提高系統性能非常有幫助。處理器內的一級緩存,其運行頻率與CPU的時鐘同步;而二級緩存可以整合在CPU中,也可以位於如一些Slot-1 CPU的邊上。