看到一個帖子,大致意思是不管什麼顆粒,容量越大寫入壽命越長,是這樣嗎?這個壽命是怎麼算的呢,是不是使用中出現壞道,然後一直用一直有壞道,容量不斷縮小直到完全報廢?


用排隊槍斃來模擬一下。

假如把一塊固態硬碟比作成一個線列兵團。

100人團相當於一個100G固態。

1000人團相當於一個1T固態。

結論來了:

假如作戰強度為每秒陣亡一個人,那麼相同作戰強度下,

100人團只能堅持戰鬥100秒

1000人團的壽命則能連續戰鬥1000秒。。。

故:相同使用環境,

容量越大,SSD的壽命越長。

但必須得保證這硬碟只有容量不同,其他方面接近甚至相同。

也就是所謂的控制變數法



那麼,SSD會不會隨著使用量越來越多,導致容量越少呢?

還是用排隊槍斃來模擬一下:

一個團有1000人,顯然不會讓所有人都在第一線挨槍子,不然隊列太長了。

那麼我們安排每100人為一排,一共10排。

而今天我們的士兵都穿了肉裝,每人挨3000發子彈才死。。。

那麼問題來了,

你說的那種容量越用越少的情況,是:

第一排要挨3000發齊射,然後第一排死完了,才讓第二排去頂第一排的空缺。

這種模式導致硬碟的可用容量越來越少,今年八十,明年十八。。。

年齡越活越年輕可以,

容量越活越小,,,,

顯然對用戶而言不是好事。

第一組死完了,第二組再死?

b23.tv


現在的SSD,基本上是:

第一排挨第一輪齊射,剩餘2999次壽命,損失壽命0.03%,退出前線;

主控馬上安排第二排士兵去挨第二輪槍子,第二排剩下2999次壽命,損失生命0.03%,退出前線;

然後第三排頂上再退出,第四排,,,第N排,直到最後一排也捱了一輪射擊,最後再從第一排開始,如此循環。

輪排射擊反過來就是輪排挨一發

有福同享,有難同當,輪流挨炮,最後要死大家一起死。

這就是所謂的平衡磨損。襠燃真正的平衡磨損比這複雜太多。只是演示一個基本思路。


而SLC,MLC,TLC,QLC,

相當於重甲,假如能扛1萬槍,

中甲扛5000發,輕甲1000發,裸奔500發。

那麼一個固態的壽命能不能扛住你工作強度。就有一個簡單算式:

護甲耐久度(P/E耐力)X人數(容量)/戰鬥中承受多少槍。

假如你要打100萬槍。

你找了十個重甲大兵,每人能扛1萬次,但是人數太少。依然扛不住100萬次。

耐力弱,但是人數多,總壽命也不見得短。

你找了每人只能扛500次的嫂夫人,但是七萬個嫂夫人挨個biu,能扛3500萬次。總壽命遠遠超過你100萬次射擊需求。

所以當快閃記憶體總體容量壽命超過你需求量的時候,就算是QLC,只要夠用就沒問題了,對吧?

(可惜初代QLC不是歐尼醬,也不會亞撒西大法,所以不僅僅是夠用就沒問題了。。。)


那麼會不會出現個別士兵體質差的問題呢?

別人能扛3000發,他只扛了1000發就陣亡了,又該怎麼辦呢?

也就是所謂的壞塊,

快閃記憶體確實有一些基礎單元會英年早逝。這也沒辦法,人均壽命70,但誰能保證自己一定能活70呢?

廠家給你的3000次壽命,也是大範圍的平均壽命,不能排除一些小範圍提前陣亡或活得更長。

而我們顯然不能因為這種個別士兵掉隊而放棄整個大隊。畢竟大隊裏其他的士兵還可以再戰十年。

那麼就需要上預備隊補缺了。

有一些固態,比如容量480G,其實是512G,那麼這32G一小部分冗餘空間,就可以用來當替補預備隊。

而預備隊,就是所謂的壞塊管理機制

即使是512G滿編容量,其實廠家也是底層屏蔽了一小部分,作為冗餘。

因為晶圓切割並不是一刀準。你看到的512G,也並不是隻有512G。

甚至可以說:大部分固態都有先天壞塊。即使原廠正片也不例外。

但是生產過程中,對這些先天壞塊進行了屏蔽。最後到出廠成品是不會有影響的。

以前的事,就當你做頭髮去了。

但是今後不許再犯。


不過預備隊也不是萬能的。

首先,快閃記憶體壽命用的越多,穩定性越差。

就像20歲青少年人羣和90歲的青年人羣的平均身體素質是不一樣的。

假如一塊快閃記憶體平均壽命是3000次,那麼越接近3000次,出現提前陣亡的單元,幾率也會越大。

如果都處於青春期,三年五年突然偶爾壞一個也能接受。

但如果大家都進入35歲以上的中老年不穩定期,今天壞一個腿明天倒一個人。

而預備隊又不是海綿裏的水,數量有限,一般家用機只有不足10%的預備空間,而這預備空間還要承擔其他工作。。。

最終預備隊已經填不上越來越大的陣亡空缺,壞塊越來越多,而壞塊多了,文件必然出錯率上升。。。。

這就是壞塊管理失效,此時全盤已經報廢或接近報廢。

不過對於家庭用戶而言,100000次用到老的固態,可能介面就已經淘汰了。。。

你看這塊固態,它可是老祖宗級產品

不用懷疑它製程縮水,也不用擔心它是什麼LC。

就是速度有點慢,50M/s最大。容量也有點小,32G。而且價格也有點小貴,當年2006年賣2000~3000美刀。。。


壞塊管理只能補缺,但不能還陽

(想糹賣命,得用其他辦法,這裡不再贅述)

被玩到人老珠黃的固態,已經無法跟新盤比可靠性了。

比如企業級固態的生存環境非常惡劣,不僅一年365X24不停機,而且寫入量也是家庭機的千倍萬倍。工作強度不亞於996。

因此,很多企業級固態壽命還沒到極限,就被淘汰了。就像35歲以後強制解僱。

不再可靠的固態,自然不是我的兄弟。


關於主控器的問題。

有人提到過主控先掛。

有人說主控是SSD的指揮官。

是,也不全是。

首先明確兩個概念:

【1】主控是什麼

無論是大家常用的ARM_Rx架構主控,還是慧榮定製RISC主控,都是CPU

CPU特色就是斷電不留數據。。。因此,基礎操作邏輯就保留在固件裏。

【2】固件

雖然固件算是硬體化的軟體,但是本質還是軟體。。。。就像電腦的操作系統。所有應用都得建立在它基礎上。

於是,固件決定了SSD的性能可以發揮到什麼程度。

介面+主控+快閃記憶體,決定你的天花板,而固件決定你能不能夠到天花板。

可以說,

很多沒有專用的固件存儲器,將固件保存在快閃記憶體裏。

這麼做的目的,就是為了節省成本。。。呃,每個硬碟省一毛錢對廠家而言就是幾百萬。。。

但這也導致一旦快閃記憶體出錯正好把固件搞壞了,就會變磚。


目前,沒有一個人能拿出主控掛掉的概率,也拿不出固件損壞概率。

如果有,請通知我。我得拜他為濕。


另外,討論SSD損壞裏,有一個不能忽視的角色:

指揮部傳令兵飛太狼FTL

(全名:Flash Translation Layer快閃記憶體轉換層)

其人手持全盤數據的地圖,包括每個數據公寓的門牌號。

有了這個地圖和名單,主控想查哪家的電錶,絕不會找到它家的水筆上。

但是FTL工作時,要麼是在SSD板載外DRAM緩存,要麼就是在主控內置RAM緩存,要麼就是在主機host內存。。。

我們知道:這些RAM共同特點就是斷電數據全部自動清除。

而異常斷電就像在前線作戰,指不定哪個熊孩子對你打一槍正好要你命。。。

所以,此君常年工作在前線,雖然各廠家都會重點保護,可是人在河北省,哪有不濕鞋。FTL陣亡以後,也會導致全團崩潰。

有些情況下,FTL還可以搶救一下,這一點早期馬牌主控是支持的,也就是傳說中的馬牌30分鐘通電大法。

其實也有人用短接大法能治好。

但以上這些搶救技術並不是所有人都能做得。

一旦玩成了JO護車。。。。


你和我都是長跑運動員,我們每天進行著同樣的訓練。

你的鞋櫃裏有兩雙鞋,你每天換著穿,三個月之後,你沒鞋穿了,運動員生涯卒;

我的鞋櫃裏有兩百雙鞋,我每天換著穿,二十五年過去了,我還在跑。

道理就是這麼簡單。


你的理解基本正確的。

因為壽命不是按時間算,而是按寫入量來計算的。所謂的預期壽命時間,是計算在平均寫入速率的基礎上的。

SSD本身就有一些保留塊(以容量計算),不計算在總容量內,但是可以使用。即是說不暴露給操作系統,但是暴露給底層映射關係。正常工作中,可以用於寫入加速而減少對塊回收的依賴度。當發現有塊工作不穩時,塊會被屏蔽,保留塊的空間會越來越少。當保留塊為0後,再有壞,就只能暴露給操作系統。


主要是因為現在有均衡機制,讓所有塊輪流用……

所以在足夠大的擦寫量,且總量一致的情況下,如果你的容量大了一倍,所有塊的擦寫量就會小一半……另外,大容量硬碟的冗餘空間也會大一些,進一步擴大了這種優勢……


固態硬碟會有預留空白塊,這部分塊在邏輯訪問地址LBA是看不到的,一般情況下,容量越大,預留的空白塊就越多。固態硬碟的磨損均衡機制會讓所有的塊輪著使用,所以塊的磨損程度都處於相差不大的水平,假如某個時間段你發現你的硬碟出現了大面積無法讀寫的情況。那可能就是你硬碟擦寫壽命將至了。另外,打個比方,在使用頻率同樣的情況下,容量大硬碟,分到每個nandflash塊的擦寫次數比容量小的少一些,就是這個道理。


推薦閱讀:
相關文章