Trim除了提升固态硬盘性能,为什么还能提升使用寿命?

1. 闪存读写和擦除单位不同:

闪存的最小读取和写入单位为Page,典型的Page大小为4KB。

而擦除的最小单位是Block,SSD块的典型大小是512KB或1MB,即128 Page或256 Page。

SSD有一个重要特性,是颗粒一旦被写入,就不能覆盖写了,这点和基于磁介质的机械盘不同。为了能重复写,SSD需要对已经写入过的颗粒进行擦除操作(erase)

 

2. 先擦后写带来的问题

(1)电脑上的Windows操作系统在删除硬盘上文件时,操作系统仅仅是在文件分配表中做一个标记,并不会对存放文件的位置做实际的抹除。这种做法对机械硬盘而言是很高效的。只要操作系统心中有数(文件分配表),随时可以在文件删除留下的垃圾位置上覆盖写入新的位置。(因为机械硬盘可以直接覆写)

(2)固态硬盘继承了机械盘的使用方式,删除文件产生的“垃圾“会一直在闪存中存放着,直到操作系统下一次要求在相同位置覆盖写入新数据,主控这才恍然大悟、措手不及(闪存无法不经擦除直接写入,只能先写到别处,通过FTL闪存映射表进行标记)。

(3)当Block块中的垃圾多到一定程度之后,固态硬盘不得不将整个Block块中的全部Page页都读取出来、全部写入到新的Block块当中,然后擦除之前的Block。这个先读取、再写入、后擦除的过程就是固态硬盘中费时费力的“垃圾回收”工作。

(4)因为删除文件时操作系统只在分区表上做改动,固态硬盘分不清哪些是无效页哪些是存有数据的有效页,将无效页也做了重复搬运:这样就做了无用功,不仅影响性能更是加速了闪存的磨损。

 

3. Trim指令

(1)Trim在Windows中的大名是Delete Notify删除通知。通过Trim指令,操作系统可以在标记文件分配表的同时,顺带通知到固态硬盘:这些位置的数据已经没用了,你得空的话可以做下打扫了。

【这意味着文件系统删除后,固态硬盘是清楚当前哪些Page是垃圾数据,这样在空闲时刻能提前进行GC,避免新的写入和GC同步指令导致性能骤降的情况】

(2)有了Trim指令之后,固态硬盘对闪存的实际占用情况了然于胸,在做垃圾回收时可以只读取其中的有效Page页,将它们写入到新的Block,然后就可以对旧block做擦除。简单来说就是Trim让固态硬盘垃圾回收的效率更高,减少了不必要的数据搬运重写,降低了写入放大率,提升了固态硬盘的使用寿命。

【Trim功能使固态硬盘能区分一个block中的有效数据和无效数据,这样进行GC时,只需搬移其中的有效数据即可,首先提高了GC效率,并且减少了不必要的数据重写,提升了使用寿命】

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值