如果不支持 TRIM,闪存驱动器如何保持良好的性能?

use*_*142 6 usb usb-flash-drive

据我所知,Windows 7之前没有TRIM/UNMAP支持(SSD驱动器使用了特殊工具),但闪存驱动器从大约2005年开始使用,并且得到了Windows XP的完全支持。

作为 USB 大容量存储设备,它们在 USB 之上使用 SCSI 协议(我在这一点上是对的吗?)。SCSI 中有 UNMAP,但 Windows XP 也不支持它。

因此,USB 闪存驱动器知道某些块可能被删除的唯一机会是来自操作系统的写入请求。

这意味着使用一段时间后,整个驱动器都会变脏并且速度总是很慢。没有办法告诉它删除任何块。您只能扔掉它并购买新的 USB 闪存驱动器。

但我确信事实并非如此。我错过了什么?

Pie*_*erU 8

简短的一般答案是:得益于隐藏数量的 NAND 单元。

闪存驱动器的控制器通过应用垃圾收集器机制来维持写入性能:收集碎片化的空闲逻辑扇区并将其映射到空闲物理 NAND 块。垃圾收集器根本不受操作系统控制,这是一个完全位于驱动器内部的后台进程(驱动器只需打开电源即可)。

如果驱动器上没有更多可用空间,则显然垃圾收集将不再起作用(请注意,只有当驱动器在某个时刻完全填满时才会发生这种情况)。

为了克服这个问题,大多数驱动器上都有隐藏数量的 NAND 单元:即使驱动器“逻辑上已满”(从操作系统的角度来看),它也不是“物理上已满”,并且控制器仍然有一些空间应用垃圾收集。 https://www.seagate.com/fr/fr/tech-insights/ssd-over-provisioning-benefits-master-ti/

现在,单元格的隐藏卷取决于驱动器类别:高端驱动器将具有较大的卷,而入门级驱动器则具有最小的卷。我还认为可以安全地假设廉价 USB 密钥没有任何隐藏单元。

同样,并非所有驱动器都具有巧妙的垃圾收集机制,某些驱动器可能具有粗糙的垃圾收集机制,而某些驱动器(又是廉价 USB 密钥)可能没有任何垃圾收集器。

即使没有 TRIM,我上面写的所有内容也适用。


har*_*ymc 2

存在太多的闪存驱动器技术,只能给出一个非常笼统的答案。以下是一些建议,请记住,大多数闪存驱动器都是廉价制造的,其硬件会随着时间的推移而退化。

  • 对于某些驱动器,ATA 安全擦除 是 TRIM 的替代方案。在《Make USB Flash Write Fast Again》一文中, 作者使用它将 64GB SanDisk Extreme USB 闪存驱动器的写入性能从 81.7 MB/S 提高到 149.7 MB/S。

  • 磁盘上的薄弱扇区可能会通过某种格式得到改善(“慢” - 不快)

  • NTFS 格式可能比 FAT32 和 exFAT 更高效。例如,请参阅文章 FAT32 vs. exFAT vs. NTFS USB3 Performance Comparison

  • 在设备管理器中,将 USB 设置为“更好的性能”而不是“快速删除”将使 Windows 能够更好地缓存数据,但需要始终记住在写入后弹出驱动器。

  • 更新设备和/或 USB 控制器的驱动程序。

  • 经常使用的 USB 端口可能会随着时间的推移而性能下降,因此请尝试另一个端口,在机箱的前后端口之间更换。