SSD 垃圾收集如何工作?

skr*_*ryl 4 ssd algorithm

如果我错了,请纠正我,但块位图(跟踪磁盘驱动器上的空闲块)是否因不同的文件系统(位置和结构明智)而异?那么,OCZ 如何在不考虑正在使用的文件系统的情况下拥有用于垃圾收集的通用算法?

Sys*_*138 8

SSD 具有超出规定容量所指示的更多块。这些块用作磨损平衡过程的一部分,以及在块完全磨损时进行故障更换。因此,SSD 的控制器必须跟踪它看到的哪些块当前作为哪些逻辑块呈现给系统。

在没有 TRIM 的情况下,当写入脏块(就 SSD 而言已经有数据的块)写入时,会发生以下两种情况之一:

  1. 控制器将旧块读入本地内存。
  2. 控制器修改所需的位。
  3. Controller 将整个块重写为旧块

但是,由于磨损均衡,这更有可能:

  1. 控制器将旧块读入本地内存。
  2. 控制器修改所需的位。
  3. Controller 将整个块写入保留部分的新块
  4. 控制器为新的逻辑块:物理块对更新其逻辑映射。
  5. Controller 将旧块标记为 Reserve 的一部分。

这里的关键是 SSD 控制器本身也保留了块的位图。与文件系统位图不同,它将逻辑块与物理块进行匹配,并且每次写入时都会发生变化。