固態硬盤真能用到官方宣稱那麼久嗎?詳解固態硬盤的寫入放大!

我們都知道固態硬盤對電腦的使用體驗有著很大的提升,而在購買固態硬盤時官方往往也會介紹他們的壽命能夠達到多長時間,或者有效寫入量具體能達到多少GB或者TB

固態硬盤真能用到官方宣稱那麼久嗎?詳解固態硬盤的寫入放大!

而今天要講的就是硬盤實際真的能達到官方宣稱的壽命嗎?之前的文章我們講過固態硬盤存儲數據的方式,是靠電子放置在‘閃存單元’中記錄數據的,如果該單元有電子就是1、沒有電子就是0

而我們還要知道的是,固態硬盤的閃存顆粒也是分為好幾種的:有SLC、MLC、TLC還有最近才上市的QLC;SLC顆粒每個閃存單元只存放一個電子也就能存儲1bit的數據,MLC是兩個能存放2bit數據

以此類推TLC是3bit,QLC是4bit;其中每個閃存單元中的電子數量越少,它讀取的速度就越快,壽命也就越長;所以SLC的顆粒速度最快、壽命最長,越往後越差勁,QLC速度最慢壽命最短!

固態硬盤真能用到官方宣稱那麼久嗎?詳解固態硬盤的寫入放大!

閃存單元只是硬盤中最底層也是最基礎的單位;但是實際讀取數據卻不是從這麼底層的單位開始讀取,硬盤中讀寫的最小單位是‘頁(page)’,每一頁都是由一組閃存單元組成的,而一定數量的頁又被組織成‘塊(block)’

固態硬盤真能用到官方宣稱那麼久嗎?詳解固態硬盤的寫入放大!

比如這一塊典型的MLC閃存芯片,它的每一頁(page)大小為4KB還有單獨的128B,用來存儲狀態信息和校驗信息;而每128頁又組織成了一塊(block),每一塊大小為512KB

而硬盤中數據的讀取跟寫入都是一頁一頁的讀寫,沒什麼好說的;但是重點在於:SSD中擦除數據是以‘塊’為單位的!也就是說。讀取跟寫入都是一頁一頁4KB的來搞,但是當數據廢棄需要擦除時,則只能把這一整‘塊’512KB全部擦掉!

固態硬盤真能用到官方宣稱那麼久嗎?詳解固態硬盤的寫入放大!

然後問題就出來了,如果當一塊的空間裡面,只有一部分數據被廢棄了呢?比如block0裡面只有page50跟page51裡面的數據被廢棄了,而其餘的數據都是正常的呢?

所以當一‘塊’空間中有一些的‘頁’被標識了廢棄,同時也有一些‘頁’被標識正常,主控想要回收這些廢棄的空間,按照固態硬盤的構造只能擦除整個‘塊’;可是這個‘塊’裡面還有一些沒有廢棄的‘頁’,主控就只能把那些沒有廢棄的‘頁’,寫到其他的‘塊’上面

固態硬盤真能用到官方宣稱那麼久嗎?詳解固態硬盤的寫入放大!

如圖所示,這樣一來的話,本來4頁的數據,只需要進行4頁數據也就是16KB的寫入就行了;可是經過了這樣折騰之後足足進行了6頁也就是24KB的寫入量;而如果那些被複制到空閒塊裡面的數據將來還要進行這個操作的話,寫入量還會增加!

要知道在固態硬盤中,讀取數據是不損耗壽命的,只有寫入才會損耗壽命,而毫無疑問這種現象會嚴重減少硬盤的壽命;所以英特爾等組織就把這個現象稱作“寫入放大”

固態硬盤真能用到官方宣稱那麼久嗎?詳解固態硬盤的寫入放大!

而硬盤廠商往往宣傳時是按照顆粒順序總寫入量來計算的,也就是不考慮‘寫入放大’的情況;但是實際使用中寫入放大是避免不了的

並且‘寫入放大’的嚴重性是跟硬盤存儲量成正比的,也就是固態硬盤存的越滿,寫入放大越嚴重!


分享到:


相關文章: