Nand Flash的擦寫次數(shù)與使用壽命
Nand Flash因為其電氣特性,讀和寫是按頁來讀取的,而擦除是按照塊來擦除的,了解這些,我們就比較容易去理解Nand Flash的擦寫次數(shù)與使用壽命。
通常,一個對NAND的寫操作包括如下步驟:
1) 從NAND中讀取一個頁面,內(nèi)容放入NANDflash的寄存器中。
2) 更新寄存器中的內(nèi)容
3) 找一個空白頁
4) 把寄存器中的內(nèi)容寫入空白頁
5) 把先前的頁面標(biāo)記為無效頁
最終,Garbage Collector會把無效頁面并入同一塊中,然后擦除這個無效塊,以備今后使用。
了解的上述NAND讀寫的原理,我們就可以計算正常情況下NAND分區(qū)的使用壽命。Flash都有擦寫的上限,通常標(biāo)記為P/E門限。大多數(shù)商用的NAND flash門限可以支持10萬次P/E cycles, 超過這個門限,flash無法保證其存儲數(shù)據(jù)的完整與正確性。
基于NAND的嵌入式文件系統(tǒng)通常都運用一種叫做wear leveling的技術(shù),使得對每一塊的讀寫在整個NAND分區(qū)中均勻分布。并且通過壞塊管理來把寫失敗的塊標(biāo)記為壞塊。這些技術(shù)可以充分利用全部存儲空間,有效提高NAND flash的壽命。
基于此,預(yù)期的NAND使用壽命可以通過如下公式計算出來。
Expected lifetime (in days) =
EFS Partition size (in Bytes) x Number of Program/Erase cycles x Overhead ratio /
File size written (bitrate in Bytes/sec) x 24 hours x 60 min x 60 sec
需要注意兩點,
1) Overhead ratio 是文件系統(tǒng)的開銷。
2) FileSize written應(yīng)該考慮頁面的大小。比如說flash的頁面大小是1024 Bytes, 一個應(yīng)用每一秒鐘寫一次flash, 每次一個字節(jié),F(xiàn)ile size written 應(yīng)該是1024, 而不是1。

編輯:admin 最后修改時間:2023-03-01