當前位置:編程學習大全網 - 編程語言 - Flash存儲器的簡要介紹

Flash存儲器的簡要介紹

閃存是壹種不揮發性( Non-Volatile )內存,在沒有電流供應的條件下也能夠長久地保持數據,其存儲特性相當於硬盤,這項特性正是閃存得以成為各類便攜型數字設備的存儲介質的基礎。

NAND 閃存的存儲單元則采用串行結構,存儲單元的讀寫是以頁和塊為單位來進行(壹頁包含若幹字節,若幹頁則組成儲存塊, NAND 的存儲塊大小為 8 到 32KB ),這種結構最大的優點在於容量可以做得很大,超過 512MB 容量的 NAND 產品相當普遍, NAND 閃存的成本較低,有利於大規模普及。

NAND 閃存的缺點在於讀速度較慢,它的 I/O 端口只有 8 個,比 NOR 要少多了。這區區 8 個 I/O 端口只能以信號輪流傳送的方式完成數據的傳送,速度要比 NOR 閃存的並行傳輸模式慢得多。再加上 NAND 閃存的邏輯為電子盤模塊結構,內部不存在專門的存儲控制器,壹旦出現數據壞塊將無法修,可靠性較 NOR 閃存要差。

NAND 閃存被廣泛用於移動存儲、數碼相機、 MP3 播放器、掌上電腦等新興數字設備中。由於受到數碼設備強勁發展的帶動, NAND 閃存壹直呈現指數級的超高速增長.

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的塊進行的,執行壹個寫入/擦除操作的時間為5ms,與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多只需要4ms。

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

● NOR的讀速度比NAND稍快壹些。

● NAND的寫入速度比NOR快很多。

● NAND的4ms擦除速度遠比NOR的5ms快。

● 大多數寫入操作需要先進行擦除操作。

● NAND的擦除單元更小,相應的擦除電路更少。 NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內部的每壹個字節。

NAND器件使用復雜的I/O口來串行地存取數據,各個產品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數據信息。

NAND讀和寫操作采用512字節的塊,這壹點有點像硬盤管理此類操作,很自然地,基於NAND的存儲器就可以取代硬盤或其他塊設備。 NAND flash的單元尺寸幾乎是NOR器件的壹半,由於生產過程更為簡單,NAND結構可以在給定的模具尺寸內提供更高的容量,也就相應地降低了價格。

NOR flash占據了容量為1~16MB閃存市場的大部分,而NAND flash只是用在8MB~128GB的產品當中,這也說明NOR主要應用在代碼存儲介質中,NAND適合於數據存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所占份額最大。 所有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等廠商所采用。

  • 上一篇:C#聊天代碼
  • 下一篇:如何用VB實現RSA加密算法,我在網上找了壹個代碼,沒有評論看不懂,請大神解釋壹下!!!
  • copyright 2024編程學習大全網