<cite id="x1djh"></cite><cite id="x1djh"></cite>
<cite id="x1djh"><video id="x1djh"></video></cite>
<var id="x1djh"></var>
<var id="x1djh"><strike id="x1djh"></strike></var>
<var id="x1djh"></var><var id="x1djh"></var>
<menuitem id="x1djh"></menuitem>
<var id="x1djh"></var>
<var id="x1djh"></var>

Flash

NAND Flash 在嵌入式系統中的地位與PC機上的硬盤是類似的。用于保存系統運行所必需的操作系統,應用程序,用戶數據,運行過程中產生的各類數據,系統掉電后數據不會丟失。

一、Nand Flash的幾個重要的基本特性:

a、NandFlash的IO接口

對于Norflash、dram 之類的存儲設備,CPU 可以直接通過地址總線對其進行訪問,而 Nand Flash 沒有這類的總線,只有 IO 接口,只能通過復用的 IO接口發送命令和地址,從而實現對 Nand Flash 內部數據進行訪問。(端口的復用)

b、  NandFlash的讀、寫、擦除操作:

讀寫是以頁為單位的,擦除是以塊為單位的。

            對于Nand的寫操作,只能由1變成0,而不能由0變成1。所以必須先對nand執行erase操作,即將0變成1,然后再寫(使對應的1變成0

 c、存儲在Nand中的數據容易發生錯誤,所以采取一定的算法對數據進行編碼和解碼很有必要。在數據存儲到nand flash之前進行編碼,連同校驗數據一同存儲到nand之中;在數據從nand讀出之后進行解碼,以驗證數據是否出錯。(BCH

二、與Nand Flash相關的名詞術語:

1. ONFI標準

ONFI(Open NAND Flash Interface,開放式NAND閃存接口)規范是一種Flash閃存接口的標準,它是Intel為統一當初混亂的閃存接口所倡導的標準。因為在此之前,市場上銷售的NAND閃存芯片在引腳定義上都不完全相同。這就使得為一家公司設計的控制器,很有可能無法用在另一家公司的產品上。比如為東芝芯片設計的控制器,就無法用在三星或海力士的產品上,這就給上游的主控設計商以及最終的產品設計人員帶來了很大的困難。

為此,Intel聯合多家NAND Flash廠商制定了ONFI標準,統一NAND Flash芯片的引腳定義,并在此基礎上采用新的技術以實現新的功能。

2. Block Management(壞)塊管理

NandFlash 由于其物理特性,只有有限的擦寫次數,超過那個次數,基本上就是壞了。在使用過程中,有些 Nand Flash 的 block 會出現被用壞了,當發現了,要及時將此 block 標注為壞塊,不再使用。于此相關的管理工作,屬于 Nand Flash 的壞塊管理的一部分工作。


3. Wear-Leveling 負載平衡

NandFlash 的 block 的管理,還包括負載平衡。

正是由于 Nand Flash 的 block,都是有一定壽命限制的,所以如果你每次都往同一個 block擦除然后寫入數據,那么那個 block 就很容易被用壞了,所以我們要去管理一下,將這么多次的對同一個 block 的操作,平均分布到其他一些 block 上面,使得在 block 的使用上,相對較平均,這樣相對來說,可以更能充分利用 Nand Flash。

4. ECC 錯誤校驗碼

NandFlash 物理特性上使得其數據讀寫過程中會發生一定幾率的錯誤,所以要有個對應的錯誤檢測和糾正的機制,于是才有此 ECC,用于數據錯誤的檢測與糾正。Nand Flash 的 ECC,常見的算法有海明碼和BCH,這類算法的實現,可以是軟件也可以是硬件。不同系統,根據自己的需求,采用對應的軟件或者是硬件。

5.SLC MLC

SLC(Single Level Cell)

單個存儲單元,只存儲一位數據,表示 1 或 0。

對于數據的表示,單個存儲單元中內部所存儲電荷的電壓,和某個特定的閾值電壓 Vth相比,如果大于此 Vth 值,就是表示 1,反之,小于 Vth,就表示 0.

MLC(Multi Level Cell)

與 SLC 相對應的,就是單個存儲單元,可以存儲多個位,比如 2 位,4位等。其實現機制,說起來比較簡單,

就是通過控制內部電荷的多少,分成多個閾值,通過控制里面的電荷多少,而達到我們所需要的存儲成不同的數據。比如,假設輸入電壓是 Vin=4V(實際沒有這樣的電壓,此處只是為了舉例方便),那么,可以設計出 2 的 2 次方=4 個閾值, 1/4 的 Vin=1V,2/4 的 Vin=2V,3/4 的 Vin=3V,Vin=4V,分別表示 2 位數據 00,01,10,11,對于寫入數據,就是充電,通過控制內部的電荷的多少,對應表示不同的數據。

、Nand Flash的數據存儲:

NAND flash的數據是以bit的方式保存;對于SLC而言,一個cell只能存儲一個bit,而對于MLC而言,一個cell可以存儲2bit;這些cell8個或者16個為單位連成bit line,形成所謂的bytex8/wordx16),即我們所說的NAND device的位寬。

NAND flash以頁(后面會介紹到)為單位讀寫數據,而以塊為單位擦出數據。








電話咨詢
產品中心
行業應用
QQ客服
彩票结果