看到一個帖子,大致意思是不管什麼顆粒,容量越大寫入壽命越長,是這樣嗎?這個壽命是怎麼算的呢,是不是使用中出現壞道,然後一直用一直有壞道,容量不斷縮小直到完全報廢?
用排隊槍斃來模擬一下。
假如把一塊固態硬碟比作成一個線列兵團。
100人團相當於一個100G固態。
1000人團相當於一個1T固態。
結論來了:
假如作戰強度為每秒陣亡一個人,那麼相同作戰強度下,
100人團只能堅持戰鬥100秒
1000人團的壽命則能連續戰鬥1000秒。。。
故:相同使用環境,
容量越大,SSD的壽命越長。
但必須得保證這硬碟只有容量不同,其他方面接近甚至相同。
也就是所謂的控制變數法
那麼,SSD會不會隨著使用量越來越多,導致容量越少呢?
還是用排隊槍斃來模擬一下:
一個團有1000人,顯然不會讓所有人都在第一線挨槍子,不然隊列太長了。
那麼我們安排每100人為一排,一共10排。
而今天我們的士兵都穿了肉裝,每人挨3000發子彈才死。。。
那麼問題來了,
你說的那種容量越用越少的情況,是:
第一排要挨3000發齊射,然後第一排死完了,才讓第二排去頂第一排的空缺。
這種模式導致硬碟的可用容量越來越少,今年八十,明年十八。。。
年齡越活越年輕可以,
容量越活越小,,,,
顯然對用戶而言不是好事。
現在的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的指揮官。
是,也不全是。
首先明確兩個概念:
無論是大家常用的ARM_Rx架構主控,還是慧榮定製RISC主控,都是CPU。
CPU特色就是斷電不留數據。。。因此,基礎操作邏輯就保留在固件裏。
雖然固件算是硬體化的軟體,但是本質還是軟體。。。。就像電腦的操作系統。所有應用都得建立在它基礎上。
於是,固件決定了SSD的性能可以發揮到什麼程度。
介面+主控+快閃記憶體,決定你的天花板,而固件決定你能不能夠到天花板。
可以說,
很多沒有專用的固件存儲器,將固件保存在快閃記憶體裏。
這麼做的目的,就是為了節省成本。。。呃,每個硬碟省一毛錢對廠家而言就是幾百萬。。。
但這也導致一旦快閃記憶體出錯正好把固件搞壞了,就會變磚。
目前,沒有一個人能拿出主控掛掉的概率,也拿不出固件損壞概率。
如果有,請通知我。我得拜他為濕。
另外,討論SSD損壞裏,有一個不能忽視的角色:
指揮部傳令兵飛太狼FTL
(全名:Flash Translation Layer快閃記憶體轉換層)
其人手持全盤數據的地圖,包括每個數據公寓的門牌號。
有了這個地圖和名單,主控想查哪家的電錶,絕不會找到它家的水筆上。
但是FTL工作時,要麼是在SSD板載外DRAM緩存,要麼就是在主控內置RAM緩存,要麼就是在主機host內存。。。
我們知道:這些RAM共同特點就是斷電數據全部自動清除。
而異常斷電就像在前線作戰,指不定哪個熊孩子對你打一槍正好要你命。。。
所以,此君常年工作在前線,雖然各廠家都會重點保護,可是人在河北省,哪有不濕鞋。FTL陣亡以後,也會導致全團崩潰。
有些情況下,FTL還可以搶救一下,這一點早期馬牌主控是支持的,也就是傳說中的馬牌30分鐘通電大法。
其實也有人用短接大法能治好。
但以上這些搶救技術並不是所有人都能做得。
一旦玩成了JO護車。。。。
你和我都是長跑運動員,我們每天進行著同樣的訓練。
你的鞋櫃裏有兩雙鞋,你每天換著穿,三個月之後,你沒鞋穿了,運動員生涯卒;
我的鞋櫃裏有兩百雙鞋,我每天換著穿,二十五年過去了,我還在跑。
道理就是這麼簡單。
你的理解基本正確的。
因為壽命不是按時間算,而是按寫入量來計算的。所謂的預期壽命時間,是計算在平均寫入速率的基礎上的。
SSD本身就有一些保留塊(以容量計算),不計算在總容量內,但是可以使用。即是說不暴露給操作系統,但是暴露給底層映射關係。正常工作中,可以用於寫入加速而減少對塊回收的依賴度。當發現有塊工作不穩時,塊會被屏蔽,保留塊的空間會越來越少。當保留塊為0後,再有壞,就只能暴露給操作系統。
主要是因為現在有均衡機制,讓所有塊輪流用……
所以在足夠大的擦寫量,且總量一致的情況下,如果你的容量大了一倍,所有塊的擦寫量就會小一半……另外,大容量硬碟的冗餘空間也會大一些,進一步擴大了這種優勢……
固態硬碟會有預留空白塊,這部分塊在邏輯訪問地址LBA是看不到的,一般情況下,容量越大,預留的空白塊就越多。固態硬碟的磨損均衡機制會讓所有的塊輪著使用,所以塊的磨損程度都處於相差不大的水平,假如某個時間段你發現你的硬碟出現了大面積無法讀寫的情況。那可能就是你硬碟擦寫壽命將至了。另外,打個比方,在使用頻率同樣的情況下,容量大硬碟,分到每個nandflash塊的擦寫次數比容量小的少一些,就是這個道理。