0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何计算出理想情况下SSD的最大寿命

454398 ? 来源:wv ? 作者:超能网 ? 2019-10-08 14:39 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

消费者选购SSD时总是会去研究他们的耐久度寿命如何,毕竟硬盘挂了真的很麻烦,里面的数据很大概率会全部丢失,然而针对单个硬盘而言,想预测它的寿命是不可能的,无论机械硬盘还是固态硬盘,他们都是一个薛定谔的定时炸弹,随时都可能爆炸,可能性会随时间的推移而增加,而你的幸运值和电源的稳定性会成为动态变量影响这个结果。

SSD的寿命等于闪存的寿命?

而对于一款产品这个群体而言,大致的平均寿命还是可以推测到的,说到SSD的寿命,首先大家会想到闪存的写入次数限制,这和闪存的工作原理有关,以浮栅极型NAND闪存为例,闪存是通电与否代表计算机可识别的1、0状态,加电瞬间会产生强大的电场(大于1000万 vt/cm),这么强的电场会破坏隧道氧化层的原子结合,脱离的电子就会上升到浮栅极上以形成电位变化,断电之后电子还会恢复正常位置,这样反复的断电-加压就形成了不同的电位信号

加电的过程等同于HDD硬盘的数据写入操作,它被称为“Program编程)”,断电的过程电位恢复,这相当于HDD硬盘的擦除数据,这里成为“Erase(擦除)”,完整的一次P/E循环就是NAND的写入循环,从这里也可以看出SSD要想写入数据就需要恢复默认电位,也就是以“擦除”为前提,这个特性决定了SSD的数据写入方式,也会带来其他的一系列问题。

最直接的影响就是SSD寿命,因为P/E循环次数是有限的,浮栅极不像HDD的GMR(巨磁阻尼)效应那样是永久的,存在次数限制。而不同类型的闪存P/E次数是不一样的,传统的2D SLC闪存P/E次数可达100,000次,而2D MLC则有3000-5000次,企业级的可达10000次,2D TLC则是1000-1500次比较常见,而现在的3D TLC闪存由于使用了不同的工艺,其P/E次数已经能达到3000次,新进的鄙视链底端角色3D QLC其实也有1000P/E,寿命其实还是可以的。

而有了闪存的P/E次数和SSD的容量,通过一条公式是可以计算出理想情况下SSD的最大寿命的:

SSD寿命=(闪存P/E×SSD闪存容量)÷(写入放大系数×年数据写入量)

以一个240GB的3D TLC SSD为例,闪存3000P/E,SSD的闪存容量实际是256GB,写入放大系数这个其实和主控算法和写入的数据类型有关的,其实很难说具体数值是多少,这里取5这个较大的值,至于年数据写入量嘛,这完全取决于个人使用习惯,这里就取2000GB,其实这写入量已经相当大了,所以:

(3000 × 256)÷(5 × 2000)=76.8年

这个SSD能用76年?以闪存的理论寿命来说是对的,然而我刚才也说过这是理论的最大寿命,是在一切都在理想情况下算出来的,而他的最小值呢?其实可以参考厂商为这个SSD的提供的质保市场,多数是三年或者五年,有些高端产品会提供十年质保,他们给出这样的质保时间就说明这款SSD在这段时间内大概率不会坏掉,毕竟RMA是需要人力物力投入的,SSD在质保期内大面积挂掉这会让厂商赔相当多的钱,而且对自己的名声也不是好事情。

另外现在多数厂商还会给出SSD的寿命周期写入量TBW,有些则是给出每日复写次数DWPD,后者其实可以换算成TBW,假设厂商为一个512GB的SSD给出的DWPD是1,说明它每天可以写入自身一次的数据,也就是512GB,质保期5年,所以它的TBW就等于512GB × 365 × 5 ÷ 1024=912.5。

有些人会误以为这个TBW就是SSD寿命周期可以写入数据总量,写这么多数据后SSD就会挂掉,其实不是的,其实这个数字的意思是你如果在保修期内写入超过这么多数据的话就不给你保修了,因为你的写入操作已经超出了这个SSD正常使用的范畴,其实一般来说这个数字也挺难超过的,能超过这个数的人我倒是挺想知道你平常是怎么折磨这个SSD的。

当然TBW这个数字不是完全没有价值的,你可以看作是SSD写入耐久度的最小值,而你的SSD实际寿命就在TBW值和闪存的理论写入最大值之间。

然而真相远没有这么简单

实际上因为闪存寿命耗尽而挂掉的SSD只占少数,大部分SSD都是因为其他各种各样的原因挂掉的,有些是因为主控烧了,主控比闪存先挂的现象很常见,因为SSD主控的工作温度大多数都很高,SSD的所有读写操作都要经它之手,它的工作压力其实是最大的,所以突然猝死是相对可能的。

还有一个可能性就是主控和闪存都安好,然而其他供电元件坏了,SSD上面虽然大家都只关心主控、闪存、缓存这些主要芯片,不过它上面其实还有不少其他芯片和元件的,而这些东西也有可能故障,一旦故障也有可能导致整个SSD瘫痪,特别是电源不稳定时供电元件烧毁的可能性相当大,比如上图这块可怜的SSD,不过这种故障其实SSD数据可能还有得救,而闪存或者主控挂了数据就真没了。

而针对这些可能出现的故障,厂商通常都会给出一个MTBF故障间的平均时间,意思就是消费者硬盘两次故障之间的平均间隔时间是多少,通常这个值都比较大,以Intel 760p为例,MTBF是160万小时,换过来有100多年,所以其实没有啥参考价值,说到底还是个随机事件,被你碰到了算你运气不好。

所以其实已经没有什么好害怕的了,SSD是否暴毙其实就是在掷骰子,运气不好就会挂掉,与其算这个算哪个担心SSD的寿命,还不如买个性能好的用起来爽一点,真担心的话就去买个质保长一些的,至少SSD在质保期内挂掉的可能性还是比较小的。

最后来说下SSD两种常见的死亡方法,第一种是写入锁定,就是主控检查到你SSD已经不行了,直接不允许写入任何东西,这种状况其实是最好的死亡方式,至少你还有拯救数据的机会,而第二种则是毫无征兆的突然暴毙,这种其实是最常见的,你自己没有任何拯救数据的机会,而厂家大多数情况下都不会帮你把数据恢复出来,而找第三方数据恢复服务的话,价格也是极高的,所以,多备份自己的重要数据吧。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SSD
    SSD
    +关注

    关注

    21

    文章

    3009

    浏览量

    120043
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AD2S1200解码芯片的精度是11弧分,这个数值是怎么计算出来的?

    请问一,AD2S1200解码芯片的精度是11弧分,这个数值是怎么计算出来的?
    发表于 04-15 06:20

    多流技术:不同寿命数据存在SSD的不同块

    根据数据的寿命将数据存放在SSD的不同块内可以显著提高SSD的GC效率、减少WAF、提高SSD寿命和性能。
    的头像 发表于 03-17 14:52 ?611次阅读
    多流技术:不同<b class='flag-5'>寿命</b>数据存在<b class='flag-5'>SSD</b>的不同块

    STM32F1 xcube cryptolib ECDSA计算出来的摘要值和外部验证工具计算出来的签名值对不上怎么解决?

    STMF1 xcube cryptolib ECDSA签名,采用CMOX_ECC_CURVE_SECP256R1曲线、SHA256摘要算法,计算出来的摘要值和外部验证工具计算出来的签名值对不上,外部
    发表于 03-07 09:24

    DLP6500BFYE数据手册上给出的这个9523hz是在何种情况下如何计算出来的?

    加载时间为99.4us,以一副图像的加载时间作为它的显示时间,那这样计算下来图像的速率都超过了10000hz,但是DLP6500FYE的数据手册给出它的图像速率最高仅为9523hz,请问是我哪里理解错了吗,数据手册上给出的这个9523hz是在何种情况下如何
    发表于 02-26 07:38

    tmp006电压寄存器读数满值,计算出的目标温度为300多摄氏度,是正常的嘛?

    现在利用tmp006计算出的目标温度好像可以了,至少是接近真实温度了。但是不知道为什么在某些情况下,如探头对着天花板或者用手捏着探头,Vobj寄存器读数(总是满值65535或者接近满值),这时候
    发表于 02-06 08:29

    在JESD204B对应不同的通道数以及分辨率时,各种接口形式所需要的引脚数是如何计算出的?

    谁可以帮忙解释下在ADC对应不同的通道数以及分辨率时,各种接口形式所需要的引脚数是如何计算出的?
    发表于 02-06 06:52

    请问如何根据读数计算出ADS1247测量到的电压值是多少?

    有不少传感器元件,可以根据直接的模拟信号电压输出值算出其被测量的实际值。 因此,如果能根据ADS1247的时间读数,就能计算出其被测元件的输出电压,那就可以算出实际被测量。 我初期预计电压
    发表于 01-13 07:48

    ADS1146芯片采集电压,用SPI通信读到是数据计算出来和用电压表测得的值总有误差,怎么解决?

    我用到ADS1146芯片采集电压,我的芯片REF电压是0.6163V,芯片工作电压是3.3V。用SPI通信读到是数据计算出来和用电压表测得的值总有误差,最大误差是3mv,误差是线性误差。请问是什么原因导致的呢?如果是需要校准 那么怎么校准呢?
    发表于 01-07 06:34

    如何减小IGBT死区时间

    通过以上方程,现在可以根据测量值来计算所需的死区时间。使用计算出的死区时间,需要进行最坏情况下的测量来验算死区时间的计算值是否足够。
    的头像 发表于 12-16 09:39 ?1256次阅读
    如何减小IGBT死区时间

    ads1262在不失真情况下模数转换的最大带宽是多少?

    ads1262带宽这个芯片没有明确给出,在不失真情况下模数转换的最大带宽是多少?
    发表于 12-05 07:10

    ADS8689转换值要通过什么公式计算出电压是多少伏?

    is the conversion data 每秒读一次转换值 ADS8689_ReadWrite(ADS8689_NOP, 0x00, 0x0000); ADS8689_ReadWrite(ADS8689_NOP, 0x00, 0x0000); 这个转换值要通过什么公式计算出电压是多少伏?
    发表于 11-29 06:09

    TPA2013D1功率是如何计算出来的,和哪些因素有关?

    有关,如何计算? 和输入有关么,比如IN+ 接输入P,IN-接地 和IN+接输入P, IN-接输入N输出功率应该相差4倍吧?? 请答疑,谢谢! 主要想知道功率是如何计算出来的。和哪些因素有关
    发表于 11-07 07:52

    请问TAS5805M如何将计算出的系数转换为tas5805对应数据?

    现在我可以根据一些数据来计算出系数,计算出的系数与PPC3的一样,但是不知道对应的转换公式,不知道计算出的浮点数据是如何转换tas5805可以使用的数据的?
    发表于 09-30 06:16

    按照跟随的方式搭建OPA2354的SR测试电路,实际电路的输出计算出的SR比datasheet的高很多,什么情况

    按照跟随的方式搭建OPA2354的SR测试电路,VS=5V,G=1,4V step,实际电路的输出计算出的SR比datasheet的高很多,什么情况?请指导。
    发表于 09-09 07:17

    LTSR 25-NP计算出来的电流误差特别大,为什么?

    大家好,我现在使用的电流传感器是lem的LTSR 25-NP,其中电流和输出电压关系是:v=2.5+0.025*I,现在的AD采样输入范围是0-3V,中间有一个放大倍数,但是即使这样,电压稍微波动一些,计算出来的电流误差就特别大,请大家支招,谢谢!
    发表于 09-03 08:18