實現flash延長寫壽命算法

    flash的擦寫次數是有限的,NAND flash中每個塊的最大擦寫次數爲100萬次,而NOR是10W次,flash單個存儲單元bit只能從1變爲0,而不能從0變成1。想要變成1,只能block擦 除,這裏的block表示一個擦除單位,擦除過程就是把block所有的位都寫1.這種硬件特性決定需要一種比較高效的寫flash算法。總不能一次更改數值時擦除整一大片flash。
總體思想:寫滿一個block,然後把該block上有效的數據搬移到另一個block上,再擦除原block。這樣flash有效利用率大大提高。
具體算法:每次寫入flash的數據都附帶一個結構體,該結構體主要描訴該數據是否可讀or已丟棄的,記錄該數據長度,數據唯一標示ID,當要修改某數據,就根據ID值,把原本的數據標示丟棄,然後重新寫入一個原ID的數據。當一個block使用完時,查詢原block上有限數據,並遷移到新的block上,再擦除舊block。
實現的結果就是根據ID增刪查改數據,也就是Key-Value類型的flash管理。

flash讀取壽命比較長,相對於寫操作損害壽命,可以認爲讀取不影響該flash壽命。nor flash是沒有壞塊的,如果有壞塊,則說明該nor flash已經沒用了。
本人以實現該tiny file system,需要學習的童靴們,可以跟我拿哦~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章