當前位置:
首頁 > 最新 > 跟著兵哥撿垃圾7:熟能生巧

跟著兵哥撿垃圾7:熟能生巧

作者: SSD攻城獅

想要和作者還有《大話存儲》作者冬瓜哥、《PCI Express體系結構導讀》作者王齊、《蛋蛋讀NVMe》作者蛋蛋等全世界的大牛討論SSD及存儲相關技術?加nanoarch為微信好友,拉你進ssdfans微信群。

前面介紹了Greedy,Cost-Benefit, CAT三種演算法,本來應該繼續介紹CICL了,實際上連參考資料都找好了。

不過前面講了這麼多東西,一直沒有提到兵哥跟其他撿垃圾的不同之處,兵哥是一位商人,研究演算法從來不是目的,賺錢才是終極使命。

那麼兵哥的賣點是什麼呢?

垃圾回收有兩個重要的問題需要考慮:回收無效Block的時機以及每次回收的數量。因此,又關係到兩種回收策略:主動回收策略與被動回收策略。

被動回收策略是當接收到寫入請求時,系統根據目前狀況判斷是否執行垃圾回收,此策略模式下,系統通常會對可用空間設定一個臨界值,當可用空間小於臨界值時開始執行垃圾回收。每次需要回收多少空間則由固件工程師自己定義。

這種磨損的弊端在於:當執行垃圾回收時,寫入請求會被延遲,每次需要執行回收的Block數量越多,延遲的時間就越長,外在表現為寫入性能急速下降。

主動回收策略則是利用系統空閑時間執行垃圾回收,通過固件設定周期性任務,定時檢查可用塊的剩餘情況,如有需要就執行垃圾回收。主動回收策略等同於利用空閑時間提前進行垃圾回收,避免了被動策略所造成的性能波動。

單一利用系統空閑時間執行主動垃圾回收同樣存在弊端,假設系統一直沒有空閑時間,垃圾回收同樣無法有效執行,例如:城市道路視頻監控,快閃記憶體會一直有文件寫入,此種情形下垃圾回收與被動策略基本雷同。

兵哥的賣點1:PR-Latency技術

在主動回收策略中採用更加優化的方式,不是等到系統完全空閑,而是忙裡偷閒在命令之間的等待時間零敲碎打的進行垃圾回收。

個人以為,也許兵哥主打的軍工和工控市場,有時對Latency要求沒有那麼高,那麼固件在需要的時候,也許可以讓讓命令回復不要那麼及時,從而給GC更多的碎片時間。

兵哥的賣點2:根據不同的應用場景,動態調整的OP空間

這樣可以使SSD即使在100%寫/讀負荷的情況下都可以保持同樣的性能,使用IOMeter 設置2MB pattern,100%寫模式進行不間斷的測試,一周後直接測試性能曲線,仍然可以表現為一條直線。

兵哥真正的賣點:Non-Balance磨損平衡演算法

目前垃圾回收演算法基本都是圍繞如何更加平均的擦除每個Block這種思想進行設計,這些演算法是基於Block耐磨度完全一致的」假設」基礎之上,但事實上,每個page和Block的耐磨狀態是不同的,當對一個快閃記憶體上的所有Block進行平均擦除時,必然會有一些Block先成為Bad Block,而另一些Block則會有更長時間的耐磨度。這是由晶圓設計工藝所決定的,在目前的工藝條件下,尚無法確保每個Block完全一致,甚至在生產過程中一定會有晶圓存在一些錯誤,不可控制的是這些錯誤是隨機分布的。

兵哥使用型號為JS29F16B08CCME2的Intel 16GB MLC NAND Flash做了實驗:

進過10次P/E後的情形,結果顯示每個Block的Erase時間是不同的,不同的操作時間反應了每個Block的原始狀態不同,操作時間短的Block健康狀態理論上好於操作時間長的Block。

如果每個Block的耐磨度本來是不均衡的,人為通過演算法保持每個Block擦除一致的結果,不是延長了快閃記憶體整體壽命,恰恰是損害了快閃記憶體最佳使用壽命。

Non-Balance演算法思想是:能者多勞。打破前人假設」每個Block壽命一致」基礎上的平衡演算法,在使用過程中對每個page和Block真實耐磨度進行評估,讓耐磨度強的Block得到更多的擦寫次數,而耐磨度差的則得到相應的保護。只有每個Block都不成為壞塊,才能最大程度上減少對每個Block的擦除次數,舉例來說:100個Block寫入1TB數據和1000個Block寫入1TB數據,假設100個Block寫入1TB數據需要被擦除10次,那麼,1000個Block只需要被擦除1次。

Non-Balance演算法的另一個精要是:當Block的不可糾正誤碼率(UBER,Uncorrectable Bit Error Rate)達到一定的閾值時,將MLC模式轉自動換為SLC模式。

要實現能者多勞,前提是了解Page的真實能力(PE Cycle),而非直接使用Flash廠商提供的標準數據。怎麼實現的?且聽下回分解。

喜歡就請分享轉發!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 ssdfans 的精彩文章:

跟著兵哥撿垃圾(1)

TAG:ssdfans |

您可能感興趣

28歲母親生完孩子,用垃圾袋裝著扔進垃圾桶被控謀殺
垃圾桶里躺著一窩小奶貓,小姐姐霸氣提起垃圾桶:沒人要,我要!
98歲的抗戰老兵,兩個兒子不願贍養他,只能靠做裸模、撿垃圾為生
憤怒!七旬老人被兒子打,遭遺棄,只能靠撿垃圾為生
垃圾袋裡撿了一隻暹羅貓,以為野生的,仔細一看氣的暈倒
便秘了,吃什麼能排空肚子里的垃圾?
這菜葉子能吃,口感好還養生,可惜都把它當垃圾扔了
衛生紙扔在馬桶還是垃圾桶里?很多人都做錯了,難怪衛生間那麼臭
扔垃圾能賺錢?這是真的,扔垃圾直接返現!
便秘了,吃什麼能排空肚子里的垃圾?啊
生存在垃圾堆的人
夢幻西遊:這年頭啥都能賣錢?這垃圾野生寵都能賣100塊!
馬天宇靠著撿垃圾生活,網友:玩夠了就回家吧
小土狗被大媽扔進垃圾車,女孩:狗狗不是垃圾,是個可憐的生命
這7種當垃圾扔掉的東西居然能養生,別再浪費了
航母一天產生10噸生活垃圾,扔海里還是帶回去?艦員:都不是
智能家居:帶你認識智能垃圾桶
垃圾桶旁站著一隻狗狗,總是伸頭看來丟垃圾的人,真是讓人心酸
絕地求生國人遭隔離:垃圾就該呆在垃圾桶里?
垃圾填埋產生的氣體是什麼?