当前位置:网站首页 > 电脑问答 > 正文

SSD软件算法怎么样_SSD软件算法介绍

作者:king发布时间:2023-08-03分类:电脑问答浏览:27


导读:  SSD日渐流行,现在买电脑不挑带SSD的都不好意思说自己真懂用户体验。和传统HDD相比,SSD由闪存[闪存(FlashMemory)是一种长寿命的非易失性(在断电情况下...
  SSD日渐流行,现在买电脑不挑带SSD的都不好意思说自己真懂用户体验。 和传统HDD相比,SSD由闪存[闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位(注意:NOR Flash 为字节存储。]构成,闪存低延迟的特性令SSD在随机读写性能方面大幅超越HDD,这也是SSD能带来流畅操作体验的关键。 但是,SSD又不仅仅只是闪存的简单组装,仅仅把闪存堆砌起来,并不能称作是SSD。调用闪存的软件算法[算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。],同样对SSD的寿命[所谓寿命,是指生物从出生经过发育、成长、成熟、老化以至死亡前机体生存的时间,通常以年龄作为衡量寿命长短的尺度。]、稳定性、性能等方方面面起着重大作用。 SSD 软件算法你都了解吗?今天,就一起来谈谈SSD 软件算法都 有哪些吧!  SSD可不是把闪存焊在一起就能做出来的SSD软件算法怎么样_SSD软件算法介绍  FTL:没它SSD就无法识别  我们都知道SSD的硬件构成和HDD完全不同,因此操作系统识别HDD的很多机制并不适用于SSD。 例如,硬盘是由盘片来构成的,盘片是同心圆,把圆分成一个个小小的扇形,数据[数据就是数值,也就是我们通过观察、实验或计算得出的结果。]在这些扇形中储存,这些扇形就被称之为扇区[磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区。]。  操作系统把扇区组织起来构成FAT32、NTFS等文件系统[文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。],用户才得以访问文件/文件夹而不是一个个的扇区物理地址,基本上操作系统建立文件系统的基础就是扇区。  HDD硬盘盘片上的扇区,SSD没有这个结构  SSD由闪存构成,没有盘片,自然也没有扇区。 SSD的闪存颗粒基础单位是数据容量4KB的Page(页),Page组成Block(区),Block组成Plane(平面),最后Plane组成Die(晶片),这就是闪存的硬件架构。 可见SSD没有扇区,怎么办?这就得靠一些 SSD 软件算法来进行转换了。  SSD使用的是闪存,闪存结构和HDD不同,需要FTL层和文件系统对话  把SSD的架构虚拟成HDD的算法,叫做“FTL”(Flash Translation Lay)。 FTL算法是由SSD主控提供的,比操作系统更加底层。FTL作为一个软件中间层,可以把SSD基于Page的硬件架构映射成HDD基于扇区的硬件架构。  操作系统为SSD建立文件系统的时候有了FTL,操作系统看到的东西和HDD没啥两样,就可以用传统的方法对SSD进行分区、格式化等操作,不需要使用专为SSD而生的文件系统。 得益于FTL的 SSD 软件算法,SSD才能无缝接班HDD,没它SSD就无法识别。  GC垃圾回收:没它SSD就巨慢无比  闪存的机制是比较独特的,当你向闪存写入数据的时候必须先把闪存中的数据擦除掉,才能写入。 同时,闪存的最小读写单位是Page,但最小的擦除单位是Block。一个Block中包含了多个Page,SSD工作一段时间后就没有哪个Block中的Page都是空白的了。 如果要擦除某个Block,就必须先把这个Block中存在有效数据的Page复制备份到其他地方,接而进行擦除,这样一来才不会丢数据。  每个Page都可以写入数据,但覆盖写入需要先擦除原先的数据,一擦除整个Block都会被擦除  有效数据的Page要复制到什么地方进行备份呢?  一些比较烂的产品,会把这些Page的数据复制到缓存,待到Block擦除后再把数据写回去,这样一来SSD的写入速度就更加悲剧了,既要写原来的数据,又要写新数据。 解决这个问题的就是SSD中的GC(Gabage Collection),也就是垃圾回收算法。  GC垃圾回收算法看着有点类似碎片整理,它可以把某个Block中的存在有效数据的Page移动到其他Block中,从而让操作系统得以擦除这整一个Block。 接着再往该Block写数据,就不需要把备份到其他地方的Page也写回去了。 CG发生在FTL层,不同的SSD的GC算法是不一样的,GC算法的不同,深切影响着SSD的性能。  Trim:大大提高垃圾回收效率  Trim是一种用来增加GC垃圾回收效率的算法。 没有Trim的话,会出现这样一种情况:在操作系统删除一个文件,实际上数据在物理层面上并没有被删除。  于是,SSD的某个Block所有Page都会被填满,待到真正写入数据的时候才被迫进行GC垃圾回收,主控才开始把有效数据的Page移动到其他Block上,进而擦除该Block。 如此一来,速度就很慢,SSD用久了每次写入数据都得先GC,用户体验非常不好。  CMD中查询“fsutil behavior QUERY DisableDeleteNotify”,如图显示就是开启了Trim  Trim就可以大大缓解这种情况。操作系统删除数据后Trim会告诉SSD主控哪些Page的数据对应着删除的数据,这些Page会被标记成为无效Page。 在闲暇时段SSD主控就会主动进行CG,把有效数据的Page移走,然后擦除这些Block的数据,提前为操作系统的数据写入准备好足够多的Block。  如此一来,就算是长期使用,只要SSD不是装得太满,性能都不会有太过明显的下滑,大大提升了用户体验。 Trim算法是由操作系统提供的,Win7、Android 4.3以后的操作系统都支持Trim。  磨损平衡:保证闪存寿命被均匀消耗  我们知道闪存是有擦写寿命的,例如MLC闪存只能够擦写数千次,TLC闪存只能够擦写数百次等等。 其实以现在的SSD容量,总擦写数据量是非常惊人的,例如256G的SSD,寿命是500次擦写(P/E)的话,那么就需要写入125TB的数据,闪存才寿终正寝。就算你每天写入10G数据,也需要用三十多年才能把闪存给写挂,更何况很少人每天往SSD中写10G数据。  TLC的擦写次数不尽如人意,但正常使用其实也很难挂掉  但是很多朋友仍不信任SSD的寿命,理由是SSD的这个寿命是根据全盘容量来估算的。 有的朋友认为,平时读写数据会集中读写SSD的其中一部分闪存,这部分的闪存寿命就会损耗得特别快。  一旦这部分闪存挂了,那么整块SSD也就挂了。然而事实真的是这样吗? 事实当然并非如此。实际上SSD拥有磨损平衡(Wear Leveling)算法,令所有闪存磨损度尽可能保持一致。  SSD的磨损平衡算法大致分为动态和静态两种。 动态的算法就是当写入新数据的时候会自动往比较新的Block中去写,老的闪存就放在一旁歇歇。  而静态的算法就更加先进,就算没有数据写入SSD监测到某些闪存Block比较老,会自动进行数据分配,让比较老的闪存Block承担不需要写数据的储存任务,同时让较新的闪存Block腾出空间,平日的数据读写就在比较新的Block中进行,如此一来,各个Block的寿命损耗,就都差不多了。  总结:  SSD绝不是把闪存堆在一起就能做成的,要让SSD稳定、快速地运行,还有赖于种种SSD软件算法。 在选用SSD的时候,可以多关注一下该SSD所使用的主控方案,关注该主控的算法是否靠谱;在使用SSD时要选择适合的操作系统,并及时更新SSD的固件和驱动。 如此一来,才会得到更好的体验。 86%的科技爱好者也看的内容:华为开始销售二手手机,如果二手手机也卖完了,该怎么办呢?怎么解决0x0000007b电脑蓝屏_解决0x0000007b电脑蓝屏方法佳能喷墨打印机怎么使用_佳能喷墨打印机使用方法excel固定录入的时候如何让光标定住微信生态酒店是什么_微信生态酒店预定方法介绍低端手机的“暴利”来自何处?win10激活任务受到阻止怎么解决_win10激活任务受到阻止解决方法华硕B250M-A的M2接口协议是那一种?