為什麼SSD固態硬碟會越用越慢?
1956年,美國IBM公司研發了全球第一款電腦硬碟(305 RAMAC),它有兩個冰箱那麼大,容量為5MB。
2019年,一款普通的M2固態硬碟厚度為2.3毫米,容量為500GB。
從機械硬碟到固態硬碟換代,是一次跨越式提升。
但為什麼說固態硬碟自身的迭代,卻是一種倒退式發展呢?
視頻版
看完這個視頻就知道了
信我,真的超有用
圖文版
這是一塊普通的機械硬碟,它由一張每分鐘旋轉7200次的磁碟,和一根每隔十幾毫秒就寫入一次數據的磁頭組成。
你平時聽見的電腦噪音,大多就是硬碟的機械運動產生的。
這是一塊固態硬碟,由主控、緩存、和幾塊快閃記憶體晶元組成,通過電信號傳輸,主控只需要不到0.1毫秒的時間,就能存取快閃記憶體上不同位置的多個數據。
因此固態硬碟要比機械硬碟的讀寫速度快上幾百倍。
固態硬碟中最關鍵的部分,是負責存儲數據的快閃記憶體(NAND Flash Memory)。它決定了固態硬碟的性能。
快閃記憶體最初誕生於一塊硅晶圓,晶元廠商根據不同需要,將晶圓上品質合格的晶片切割出來,再進行封裝,就得到了被稱為原片(Original)的快閃記憶體。
十幾年來,各大晶元廠商先後推出了四代有著不同顆粒結構的快閃記憶體。
SLCSingle-Level Cell單層單元
MLCMulti-Level Cell多層單元
TLCTrinary-Level Cell三層單元
QLCQuad-Level Cell四層單元
在最初代的SLC顆粒中,快閃記憶體的最小存儲單元(Cell)只能儲存1比特(Bit)的數據,也就是一個0或者一個1,因此一個單元只有兩種狀態。
在第二代的MLC顆粒中,研發者們往一個單元里塞進了兩比特的數據,0和1排列組合,一個單元就能有4種狀態。
以此類推,到了最新一代的QLC顆粒,一個存儲單元已經可以表達16種狀態,存儲容量達到了初代SLC顆粒的8倍。
但命運所有的饋贈,都早已在暗中標好了價格。
因為存儲容量的翻倍,同時也會導致快閃記憶體顆粒運行速度和壽命的減少。
不同於機械硬碟的磁碟,固態硬碟的快閃記憶體能夠擦除和寫入的次數有限,而這個次數就是快閃記憶體的壽命。當快閃記憶體顆粒的擦寫次數到達極限時,快閃記憶體就會損壞,其中存儲的數據也就會丟失。
初代的SLC顆粒,可用的擦寫次數是10萬次。在最新一代的QLC顆粒上,擦寫次數則驟降到1000次。在容量和使用情況相同的情況下,二者的理論壽命相差了整整100倍。
因此可以說,隨著技術的發展,每一代固態硬碟的性能反而倒退了。
這種倒退式的發展思路當然是故意為之的,它能降低固態硬碟的成本,讓我們這樣的普通人也能消費得起。
就算性能被打了折扣,固態硬碟的壽命仍然足夠普通人使用,運行速度也還是會比機械硬碟快上不少。
(公眾號回復「SSD」,即可獲得壽命計算公式)
更多情況下,固態硬碟存在的問題並不是壽命不足,而是當固態硬碟快要塞滿的時候,運行速度會突然降低。
這個問題產生的原因,和快閃記憶體的擦寫過程(P/E)有關:
我們用這些格子代表快閃記憶體的存儲空間(Page),其中藍色的是已經存有數據的位置。如果你刪除了某個文件,硬碟並不會立刻擦除對應位置的數據,而是會給它打上一個標記。
當你要存儲一份文件時,硬碟也不會在標記的位置寫入新的數據,而是會把數據存進空白的區域,利用更多的存儲空間。
隨著讀寫次數的增加,硬碟里的空白區域很快被用得差不多了。此時如果還要寫入新的數據,就需要把這些帶有標記的位置騰出來,也就是擦除其中的數據。
但快閃記憶體要擦除數據,就只能把一整塊區域(Block)里有用沒用的數據同時擦除。
因此,硬碟必須先把那些還有用的數據挪到其他位置,再把這一整塊區域清空,才能寫入新的數據。
這整個過程被稱為寫入放大(WAF),它意味著更複雜的步驟、更長的耗時,以及更多的擦寫次數。
所以如果你把固態硬碟塞得太滿,硬碟的運行速度和壽命就都會降低。
為了解決這個問題,廠商們選擇了另外一種用倒退換取進步的方式——縮小硬碟可用的容量:
通過預留一部分空白空間(over-provisioning),強行阻止你把硬碟塞滿。
這也是為什麼你在市面上看見的固態硬碟,容量上往往標著240或480G,而不是256或512這樣的「整數」了。
※Windows被判死刑?微軟公布下一代操作系統!網友:並不看好
※電腦界的小米,曾超越聯想成中國第一,如今因「價格屠夫」出名
TAG:電腦專家團 |