Dual-pool算法是比較經(jīng)典的磨損平衡算法,目的是為了延長閃存的使用壽命。它實(shí)現(xiàn)了兩方面解決:第一是存儲冷數(shù)據(jù)來防止塊被磨損,因?yàn)轭l繁更新的熱數(shù)據(jù)會是磨損增加;第二是直到磨損平衡生效時,先不要去管這些被處理的塊。
基本原則:
閃存塊的磨損不均勻是由于workload的空間局部性導(dǎo)致的。把page分為三類:free page,表示可以寫入數(shù)據(jù)的頁,live page 表示有效頁,dead page 表示無效頁。因?yàn)槔鋽?shù)據(jù)能夠較穩(wěn)定的保存在塊中的有效頁上,而熱數(shù)據(jù)更新的快,不斷地更新會使原位的有效頁變?yōu)闊o效頁,就是會留下很多的 dead pages在塊中,在做垃圾回收的時候傾向于回收這些dead page多的塊,所以總是從那些存儲熱數(shù)據(jù)較多的塊中回收free page。寫入熱數(shù)據(jù)比寫入冷數(shù)據(jù)發(fā)生的頻率高,所以把這些熱數(shù)據(jù)存在特定的塊里面。但是這樣的現(xiàn)象會逐漸使得磨損的塊出現(xiàn)失衡。
Young block & Old block:前者是擦除次數(shù)少的年輕的塊,后者是擦除次數(shù)多的年老的塊,雙池算法核心實(shí)現(xiàn)下面的操作:
Cold-data migration:把冷數(shù)據(jù)從young blocks 遷移到old blocks
Hot-cold regulation:發(fā)生冷數(shù)據(jù)遷移后,涉及到的塊,要防止老的塊被擦除,還要開始擦除年輕的塊。
從邏輯上把閃存塊分為兩組:熱池(hot pool)專門來存儲熱數(shù)據(jù)的塊和冷池(cold pool)專門來存儲冷數(shù)據(jù)的塊。在熱池中設(shè)置隊列
Dirty Swap(DS)操作實(shí)現(xiàn)了上述的Cold-data migration和Hot-cold regulation,每次完成一個寫入操作的時候,要做一步檢查,是否該熱池的熱數(shù)據(jù)塊和冷池中的冷數(shù)據(jù)塊的擦除周期差異大于閾值,過程如下:
如果滿足以上條件,執(zhí)行如下步驟:
Adaptive Pool Resizing:這部分是處理空間局部性的動態(tài)變化,對上面的基礎(chǔ)概念進(jìn)行擴(kuò)充。如果訪問模式一直不變化,上面的執(zhí)行結(jié)果會帶來很好的效果。但是在實(shí)際的workload中,很難實(shí)現(xiàn)。冷熱數(shù)據(jù)的訪問不是一成不變的,僅僅使用DS是不行的??紤]到一個塊剛剛從冷池中遷移到熱池中,并不再存儲冷數(shù)據(jù),假設(shè)塊中的熱數(shù)據(jù)恰巧變冷,隨著這個塊不再被擦除磨損,這個塊就在熱池中變得“沉默”,因?yàn)榇鎯鋽?shù)據(jù)使它的擦除周期變得相對較小,這個塊又開始不再被磨損擦除。所以,為了改進(jìn),定義了一種新的操作在熱池中:
考慮到有DS遷移至冷池中的塊,這個塊具有大的擦除周期,而有效擦除周期為0,DS把冷數(shù)據(jù)放置在塊里停止它被磨損擦除。一方面,如果冷數(shù)據(jù)一直保持,那么這個塊的有效擦除周期值就會維持在低值。另一方面,如果這個塊不再存儲冷數(shù)據(jù),那么有效擦除周期就會增長的很快。通過引入的有效擦除周期的檢驗(yàn),這兩種情況能被明顯區(qū)分。
所以在完成一次寫入操作時,先進(jìn)行DS操作,然后執(zhí)行CPR,最后執(zhí)行HPR。
對于超大規(guī)模閃存存儲系統(tǒng)而言, 這一提出的算法為磨損均衡問題提供了非常有力的解決。
-
存儲
+關(guān)注
關(guān)注
13文章
4533瀏覽量
87477 -
固態(tài)硬盤
+關(guān)注
關(guān)注
12文章
1543瀏覽量
58658
原文標(biāo)題:一文看懂固態(tài)硬盤使用壽命問題
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
延長鋰電池使用壽命的方法
怎么延長電表使用壽命?
天宇如何延長濾芯使用壽命
如何延長蓄電池的使用壽命
如何延長干電池使用壽命
SSD固態(tài)硬盤測試:壽命比機(jī)械硬盤還可靠
延長固態(tài)硬盤使用壽命的小方法
固態(tài)硬盤將會有效的延長電腦壽命
如何規(guī)劃固態(tài)硬盤的分區(qū) 金士頓NV3高速固態(tài)

評論