SSD 垃圾收集如何工作?

SSD 垃圾收集如何工作?

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

答案1

SSD 的块数超出了标称容量。这些块用于损耗均衡过程以及块完全磨损后的故障替换。因此,SSD 的控制器必须跟踪它看到的哪些块当前作为哪些逻辑块呈现给系统。

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

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

然而,由于磨损均衡,这种情况更有可能发生:

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

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

答案2

通过过度配置。OCZ 添加的闪存比驱动器所需的闪存多 7%。这 7% 用于执行磨损均衡和更换故障块,但也可以在空闲时间擦除,从而避免否则会发生的擦除-写入循环。

相关内容