有朋友通过私信向存储极客提问:Trim指令只是把GC垃圾回收要做的擦除提前做了,提高了后续写入的性能,似乎对写入放大率没有帮助,为什么说Trim有利于延长固态硬盘寿命呢?
文章插图
这个问题很有深度,弄清楚之后有助于大家深入理解固态硬盘的工作原理 。小编就单独用一篇文章来系统讲解吧 。
文章插图
1987年,东芝发明了NAND闪存,它的容量大、速度快,断电不丢数据,诸多优点使得它不断发展至今,成为半导体存储的主力军 。不过NAND闪存也有一些使用限制,譬如写入之前必须先经过擦除 。这是FTL闪存映射转换层以及Trim指令问世的根源 。
闪存读写和擦除单位不同:
闪存的最小读取和写入单位皆为Page,在东芝64层堆叠BiCS3闪存当中,一个Page页的大小为16KB 。闪存在写入新内容之前必须先经过擦除,而擦除的最小单位是Block,一个Block块在BiCS3中的大小为12MB 。
文章插图
闪存这一特性跟儿童磁性画板有些类似,一擦就是一大块,无法针对单个点去做擦除 。
文章插图
先擦后写带来的问题:
电脑上的windows操作系统在删除硬盘上文件时,操作系统仅仅是在文件分配表中做一个标记,并不会对存放文件的位置做实际的抹除 。这种做法对机械硬盘而言是很高效的 。只要操作系统心中有数(文件分配表),随时可以在文件删除留下的垃圾位置上覆盖写入新的位置 。
文章插图
固态硬盘继承了机械盘的使用方式,删除文件产生的"垃圾"会一直在闪存中存放着,直到操作系统下一次要求在相同位置覆盖写入新数据,主控这才恍然大悟、措手不及(闪存无法不经擦除直接写入,只能先写到别处,通过FTL闪存映射表进行标记) 。
文章插图
当Block块中的垃圾多到一定程度之后,固态硬盘不得不将整个Block块中的全部Page页都读取出来、全部写入到新的Block块当中,然后擦除之前的Block 。这个先读取、再写入、后擦除的过程就是固态硬盘中费时费力的"垃圾回收"工作 。
文章插图
因为删除文件时操作系统只在分区表上做改动,固态硬盘分不清哪些是无效页哪些是存有数据的有效页,将无效页也做了重复搬运:这样就做了无用功,不仅影响性能更是加速了闪存的磨损 。
Trim带来了什么不同?
Trim在Windows中的大名是Delete Notify删除通知 。通过Trim指令,操作系统可以在标记文件分配表的同时,顺带通知到固态硬盘:这些位置的数据已经没用了,你得空的话可以做下打扫了 。
文章插图
有了Trim指令之后,固态硬盘对闪存的实际占用情况了然于胸,在做垃圾回收时可以只读取其中的有效Page页,将它们写入到新的Block,然后就可以对旧block做擦除 。简单来说就是Trim让固态硬盘垃圾回收的效率更高,减少了不必要的数据搬运重写,降低了写入放大率,提升了固态硬盘的使用寿命 。
文章插图
现在Trim指令早已成为固态硬盘的标配功能 。不过Trim只是让固态硬盘主控了解"垃圾"的位置,具体何时做垃圾回收工作还需要更深层的算法去权衡性能和耐久度 。在这方面,原厂固态硬盘往往比缺少研发能力的贴牌产品做的更好 。
【Trim指令是如何提高固态硬盘寿命的?】
推荐阅读
- 分光器基本知识
- 梦见小老鼠一窝是什么意思 梦见小老鼠爬到自己身上是什么意思
- 海王星上面有没有水 海王星是不是全是水
- 男人最怕女人说三个字,是什么?
- 买苹果11还是12 买iPhone12还是12Pro
- 护理液只能用三个月么 护理液大瓶也是三个月后不能用吗
- 磨砂膏是什么垃圾 磨砂膏是什么
- 理疗仪低频好还是中频好 低频理疗仪对心脏有影响吗
- 做梦抓到蛤蟆是怎么回事 梦见抓好多蛤蟆是什么意思
- 红茶知识详解 茶叶小白迅速入门