专注高可靠性工业级固态硬盘

和存储卡的研发与生产

SSD固态硬盘的垃圾回收机制详解

时间: 2022-06-07   来源: 本站

640


垃圾回收,就是把某个闪存块上的有效数据(下图中字母方块)读出来,重写,然后把该闪存块擦除,就得到新的可用闪存块了。


640 (1)


由于垃圾回收(GC)的存在,就有一个问题,用户要写入一定的数据,SSD为了腾出空间写这些数据,需要额外的做一些数据的搬移,也就是额外的写,最后往往导致SSD往闪存中写入的数据量比实际用户写入SSD的数据量多。因此,SSD中有个重要参数,就是写放大:


640 (2)

垃圾回收可以简单地分为三步:

  1. 挑选源闪存块
  2. 从源闪存块中找有效数据
  3. 把有效数据写入到目标闪存块

垃圾回收时机  


前台垃圾回收(Foreground GC):当用户写入数据时,如果可用的闪存块小于一定阈值,这时就需要做垃圾回收,以腾出空间给用户写。这是被动方式,它是由于SSD没有多少可用的闪存块时,才去做的GC。

后台垃圾回收(Background GC),它是在SSD空闲(Idle)的时候,SSD主动去做的GC,这样在用户写入的时候就有充裕的可用闪存块,从而改善用户写入性能。

分享到 :
19129315860 在线咨询
在线留言 在线咨询
sales@agrade.com.cn 邮箱地址