我两周前购买了一个全新的 USB 闪存设备。

从昨天开始我就遇到了这个问题。当我向它写入数据时,它会冻结,活动率为 100%,数据写入速度为 0,每次持续几秒钟。

笔记:

  1. 我使用 Disk Genius 检查了坏扇区。它没有报告任何问题。

  2. chkdsk /F /R i:没有报告任何问题

  3. 在 Windows 中完全格式化已完成,但 USB 闪存驱动器在此期间冻结多次(写入速度为 0/活动率为 100%)。

  4. USB 闪存盘仅问世 2 周

  5. 我尝试在我的电脑上使用不同的 USB 驱动器,并没有遇到这样的问题

  6. 安全模式下也存在同样的问题。

注意:该问题昨天开始出现,两周前还没有发生

问题是要求解释这种现象,而不是解释 USB 闪存盘与 SSD 有何不同。

6

  • 4
    对于闪存驱动器来说,这并不罕见。


    – 

  • 4
    这个问题类似于:。如果您认为它们不同,请编辑问题,说明它们有何不同和/或该问题的答案如何对您的问题没有帮助。


    – 

  • @DrMoishePippik 我已经更新了这个问题


    – 

  • @DrMoishePippik 两周前同一台驱动器没有发生过这种情况。其他 USB 闪存驱动器也没有问题


    – 

  • 您的其他闪存盘也是同一品牌吗?并非所有闪存盘都是一样的。


    – 



最佳答案
1

一般来说,USB 闪存驱动器的效率取决于过度配置的空间量,因为它们不支持 TRIM 之类的协议。空间量越少,您观察到的行为就越像您描述的那样。

首先,我们需要了解 USB闪存驱动器可以将我们写入的LBA 块或扇区动态映射到物理 NAND 块

然后我们需要了解NAND可以执行3个基本操作读取,写入和擦除

最后,我们需要了解NAND 只能在已擦除的块中存储新数据,并且擦除是三种基本操作中最慢的操作

由于没有类似 TRIM 的协议,闪存驱动器知道它可以擦除空间的唯一方法是用户将数据写入已映射的 LBA 块。再次注意,我们只能写入已擦除的块。

最好的情况下,如果我们写入数据, USB 闪存驱动器不会擦除映射到 LBA 100 的物理块,而是简单地将已经擦除的块映射到 LBA 100,并使用它来存储数据,因为后者更快。

之前映射到 LBA 的块并不处于“中间状态”,它尚未被擦除,但不再包含“有效”数据。它正在等待所谓的垃圾收集器来擦除该块。一旦被擦除,它就可以再次使用。

现在回到过度配置…

如果我们考虑极端情况,即没有过度配置的空间,那么一旦每个 LBA 块都映射到物理 NAND,将任何新内容写入驱动器都需要驱动器先擦除映射到我们正在写入的 LBA 块的空间,然后才能写入新数据。

由于低级格式化 = 零填充(实际上是写入数据,无论这是实际数据还是只是零都无关紧要),就 USB 闪存驱动器而言,所有 LBA 空间都映射到物理 NAND 块(我在这里过于简化,但这个想法是正确的)。因此,在这种极端情况下(没有过度配置的空间),即使在文件系统级别将低级格式化的驱动器视为空的,每次写入现在都需要一个缓慢的擦除周期。

现在现实中这样的驱动器很快就会出现故障,就像我们在超便宜甚至免费的促销 USB 闪存驱动器上看到的那样。

具有一定超额配置的 USB 闪存驱动器会表现得更好一些,但在某些时候会达到其极限。超额配置越多,性能就越好,除非您写入数据的速度足够快,并且足以填满超额配置的空间量。原因很简单:

存在过度配置空间意味着根据定义,我们总是有一些非映射空间,驱动器可以擦除这些空间并随时准备写入新数据。只有当我们写入速度足够快且足够多时,驱动器才会在某个时候无法继续擦除非映射块。过度配置越多,我们就能越早地实现这一目标。

问题的答案并没有错,但据我所知,这些答案都没有解决这个根本问题。

3

  • 我几乎没用过它,它就开始出现这些问题。我想我应该要求更换?


    – 

  • 为了安全起见,我会这么做。请注意,“相同”的闪存驱动器可能只是看起来相同,并且每个闪存驱动器都包含对您隐藏的错误。因此,您完全有可能买到一个好的闪存驱动器和一个劣质的闪存驱动器。


    – 

  • 谢谢。我会这么做的。


    –