执行后台垃圾收集以清理驱动器而不降低写性能的闪存存储设备

固态存储盘2020-08-07

虽然硬盘驱动器(hdd)和固态驱动器(ssd)都存储数据,但它们的工作方式有很大不同。它们的关键区别之一是如何写入和擦除数据,以提供更多可用内存空间。

例如,当用户删除一个文件时,操作系统(OS)将简单地标记删除的文件。下一次执行另一个写操作时,HDD将在任何可用空间上写入新文件,甚至覆盖标记删除文件所在的空间。

这个过程在NAND闪存设备上是不同的。数据存储在芯片(ICs)中,这些芯片被组织成页,若干页组成一个块。写(编程)是在页级完成的,而擦除是在块级完成的。

下面的图显示了一个NAND闪存芯片的布局——一个物理NAND页面是一组属于同一块的NAND闪存单元。一个NAND块由几个页面组成。几个NAND块构成一个平面。最后,平面形成一个芯片核。每个存储芯片包含一个或多个芯片核。

 

垃圾回收

 

垃圾收集是NAND闪存控制器的一个重要功能。目标是使闪存设备有足够的备用块,以便当数据必须被写入时,设备不必等待一块空间被擦除,而有新空间可用。

 

以下步骤显示了垃圾回收是如何完成的。

块1中的页面A,B和C包含有效数据。

该块中的其余页面都是空的,并且随时可用,可以写入新数据。

 

区块1中A、B、C页的数据已修改替换为A*、B*、C*。

新数据已写入D、E和F页。

页面A、B和C现在被标记为无效或过时;然而,除非块1被全部擦除,否则不能写入新数据。

 

 

执行垃圾回收。

将D、E、F页以及A*、B*和C*中的有效数据复制到备用块2。

块1中的所有页面都被擦除,该块现在可以写入新数据。(参考:ExtremeTech)

 

 

TRIM和Deallocation命令

闪存设备通常无法检测到哪些页面包含标记为删除的数据,导致它们在垃圾收集过程中擦除和重写整个块。这将导致块长时间保存无用数据,而不是更快地擦除以用于新的写操作。随着写入闪存设备上的文件越来越多,可供移动数据的备用块越来越少,设备将不得不等待块被擦除后才能写入新数据。这会导致性能瓶颈,设备变慢。

TRIM命令是一种高级技术附件(ATA)命令,可用于使用串行ATA (SATA)接口的闪存设备。对于使用PCIe接口的NVMe模块,等效的命令是“Deallocate”。通过提前通知闪存存储设备块中哪些特定的页可能已经被擦除,TRIM和Deallocate命令辅助完成垃圾收集。有无效数据的页面被标记为删除,有效数据移动到一个空闲块,设备“允许”在任何时候删除包含无效数据的块。这样允许写入新数据的块更多,存储设备执行得更快。

 

ATP的高效存储空间回收

ATP闪存存储设备执行后台垃圾收集以清理驱动器而不降低写性能。它们还支持TRIM和Deallocate命令来优化性能和提高耐久性。ATP的“工业专用”内存和存储解决方案被用于那些需要在恶劣条件下长时间运行的应用中,它具有高性能和长续航能力,以提供最佳的总拥有成本(TCO)价值。

 

更多信息,请访问ATP网站或联系ATP代表/经销商。

回到Blog
联系我们