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