絕不只是堆砌快閃記憶體 SSD中的軟體演算法你知多少
SSD已經日漸流行,現在買電腦不挑帶SSD的,都不好意思說自己真懂用戶體驗。和傳統HDD相比,SSD由快閃記憶體構成,快閃記憶體低延遲的特性,令SSD在隨機讀寫性能方面大幅超越HDD,這也是SSD能帶來流暢操作體驗的關鍵。但是,SSD又不僅僅只是快閃記憶體的簡單組裝,僅僅把快閃記憶體堆砌起來,並不能稱作是SSD。
調用快閃記憶體的軟體演算法,同樣對SSD的壽命、穩定性、性能等方方面面起著重大作用。SSD中的軟體演算法你都了解嗎?今天,就一起來談談SSD中有哪些軟體演算法吧!SSD可不是把快閃記憶體焊在一起就能做出來的
FTL:沒它SSD就無法識別
我們都知道SSD的硬體構成和HDD完全不同,因此操作系統識別HDD的很多機制,並不適用於SSD。例如,硬碟是由碟片來構成的,碟片是同心圓,把圓分成一個個小小的扇形,數據在這些扇形中儲存,這些扇形就被稱之為扇區。操作系統把扇區組織起來,構成FAT32、NTFS等文件系統,用戶才得以訪問文件/文件夾而不是一個個的扇區物理地址。基本上,操作系統建立文件系統的基礎就是扇區。
HDD硬碟碟片上的扇區,SSD沒有這個結構
SSD由快閃記憶體構成,沒有碟片,自然也沒有扇區。SSD的快閃記憶體顆粒基礎單位是數據容量4KB的Page(頁),Page組成Block(區),Block組成Plane(平面),最後Plane組成Die(晶片),這就是快閃記憶體的硬體架構。可見SSD沒有扇區,怎麼辦?這就得靠一些演算法來進行轉換了。
SSD使用的是快閃記憶體,快閃記憶體結構和HDD不同,需要FTL層和文件系統對話
把SSD的架構虛擬成HDD的演算法,叫做「FTL」(Flash Translation Lay)。FTL演算法是由SSD主控提供的,比操作系統更加底層。FTL作為一個軟體中間層,可以把SSD基於Page的硬體架構映射成HDD基於扇區的硬體架構。操作系統為SSD建立文件系統的時候,有了FTL,操作系統看到的東西和HDD沒啥兩樣,就可以用傳統的方法對SSD進行分區、格式化等操作,不需要使用專為SSD而生的文件系統。得益於FTL軟體演算法,SSD才能無縫接班HDD,沒它SSD就無法識別。
GC垃圾回收:沒它SSD就巨慢無比
快閃記憶體的機制是比較獨特的,當你向快閃記憶體寫入數據的時候,必須先把快閃記憶體中的數據擦除掉,才能寫入。同時,快閃記憶體的最小讀寫單位是Page,但最小的擦除單位是Block。一個Block中包含了多個Page,SSD工作一段時間後,就沒有哪個Block中的Page都是空白的了。如果要擦除某個Block,就必須先把這個Block中存在有效數據的Page複製備份到其他地方,接而進行擦除,這樣一來才不會丟數據。
每個Page都可以寫入數據,但覆蓋寫入需要先擦除原先的數據,一擦除整個Block都會被擦除
有效數據的Page要複製到什麼地方進行備份呢?一些比較爛的產品,會把這些Page的數據複製到緩存,待到Block擦除後,再把數據寫回去,這樣一來SSD的寫入速度就更加悲劇了——既要寫原來的數據,又要寫新數據。解決這個問題的,就是SSD中的GC(Gabage Collection),也就是垃圾回收演算法。
GC垃圾回收演算法看著有點類似碎片整理,它可以把某個Block中的存在有效數據的Page,移動到其他Block中,從而讓操作系統得以擦除這整一個Block。接著再往該Block寫數據,就不需要把備份到其他地方的Page也寫回去了。CG發生在FTL層,不同的SSD的GC演算法是不一樣的,GC演算法的不同,深切影響著SSD的性能。
Trim:大大提高垃圾回收效率
Trim是一種用來增加GC垃圾回收效率的演算法。沒有Trim的話,會出現這樣一種情況:在操作系統刪除一個文件,實際上數據在物理層面上並沒有被刪除。於是,SSD的某個Block所有Page都會被填滿,待到真正寫入數據的時候,才被迫進行GC垃圾回收,主控才開始把有效數據的Page移動到其他Block上,進而擦除該Block。如此一來,速度就很慢,SSD用久了每次寫入數據都得先GC,用戶體驗非常不好。
Trim就可以大大緩解這種情況。操作系統刪除數據後,Trim會告訴SSD主控哪些Page的數據對應著刪除的數據,這些Page會被標記成為無效Page。接著,在閑暇時段,SSD主控就會主動進行CG,把有效數據的Page移走,然後擦除這些Block的數據,提前為操作系統的數據寫入準備好足夠多的Block。如此一來,就算是長期使用,只要SSD不是裝得太滿,性能都不會有太過明顯的下滑,大大提升了用戶體驗。Trim演算法是由操作系統提供的,Win7、Android 4.3以後的操作系統都支持Trim。
磨損平衡:保證快閃記憶體壽命被均勻消耗
我們知道快閃記憶體是有擦寫壽命的,例如MLC快閃記憶體只能夠擦寫數千次,TLC快閃記憶體只能夠擦寫數百次等等。其實以現在的SSD容量,總擦寫數據量是非常驚人的,例如256G的SSD,壽命是500次擦寫(P/E)的話,那麼就需要寫入125TB的數據,快閃記憶體才壽終正寢——就算你每天寫入10G數據,也需要用三十多年才能把快閃記憶體給寫掛,更何況很少人每天往SSD中寫10G數據。
TLC的擦寫次數不盡如人意,但正常使用其實也很難掛掉
但是很多朋友仍不信任SSD的壽命,理由是SSD的這個壽命,是根據全盤容量來估算的。有的朋友認為,平時讀寫數據,會集中讀寫SSD的其中一部分快閃記憶體,這部分的快閃記憶體壽命就會損耗得特別快。一旦這部分快閃記憶體掛了,那麼整塊SSD也就掛了。然而事實真的是這樣嗎?
事實當然並非如此。實際上,SSD擁有磨損平衡(Wear Leveling)演算法,令所有快閃記憶體磨損度儘可能保持一致。SSD的磨損平衡演算法大致分為動態和靜態兩種。動態的演算法就是當寫入新數據的時候,會自動往比較新的Block中去寫,老的快閃記憶體就放在一旁歇歇;而靜態的演算法就更加先進,就算沒有數據寫入,SSD監測到某些快閃記憶體Block比較老,會自動進行數據分配,讓比較老的快閃記憶體Block承擔不需要寫數據的儲存任務,同時讓較新的快閃記憶體Block騰出空間,平日的數據讀寫就在比較新的Block中進行——如此一來,各個Block的壽命損耗,就都差不多了。
總結
SSD絕不是把快閃記憶體堆在一起就能做成的,要讓SSD穩定、快速地運行,還有賴於種種軟體演算法。在選用SSD的時候,可以多關注一下該SSD所使用的主控方案,關注該主控的演算法是否靠譜;在使用SSD時,要選擇適合的操作系統,並及時更新SSD的固件和驅動。如此一來,才會得到更好的體驗。
※AirPods還未到貨,AirPods 2年底前即將到來
※游族牽手華納 全球頂級IP《權力的遊戲》入華
※老人機遭嫌棄 催生老年人手機培訓班
※新證據表明新款 4K HDR Apple TV 即將到來?
※魅族走向商務高端路,距離IPO還有多遠?
TAG:電腦報APP新聞客戶端 |
※為什麼快閃記憶體品質很關鍵?它影響的不僅是SSD寫入壽命
※QLC快閃記憶體已被強力吐槽 更渣的PLC快閃記憶體冒頭了
※QLC快閃記憶體真的那麼不堪?你可能對它有誤解
※QLC快閃記憶體時代來臨:不買塊2TB真不好意思跟人說這是固態硬碟
※固態硬碟快閃記憶體顆粒知多少?從SLC到QLC
※MLC快閃記憶體的SSD就是爽:再冷再熱都不怕
※比QLC還渣?下一代PLC快閃記憶體可能要來了
※SSD價格又要漲了?東芝快閃記憶體工廠停電事故至少損失6EB容量的快閃記憶體
※QLC快閃記憶體差勁?壽命更短的PLC快閃記憶體來了
※將手機快閃記憶體顆粒能不能DIY固態硬碟?老玩家說出答案
※NAND快閃記憶體這些年:QLC也沒那麼脆弱
※NAND快閃記憶體減產漲價?沒這麼容易
※移動固態硬碟又有新玩法?UFS快閃記憶體登場變SSD
※都說它是頂級手機的專利 UFS快閃記憶體到底是個什麼鬼?
※QLC快閃記憶體擦寫壽命只有百次?這是在販賣焦慮!
※傷不起的DIY市場:內存快閃記憶體剛喊漲 顯卡CPU也要漲了
※把能擦寫的手機快閃記憶體叫ROM只讀存儲器,到底叫錯了沒?
※為什麼CPU製程數字越小越好,快閃記憶體卻相反?
※固態硬碟高手也會搞錯,我們小看了3D快閃記憶體!
※SSD快閃記憶體庫存充足,固態硬碟還有好價,那該如何選?