虽然我知道在 USB 闪存驱动器上执行写入操作会降低设备的预期寿命。我听说写入次数在 10 万到 1000 万之间,但我没有听说过读取操作的次数。从设备上读取是否计入此总数?
我感兴趣的是只对闪存驱动器进行一次写入并将其设置为只读。然后每天从设备读取文件一千次或更多次,但我想知道(假设每天读取 1,000 次),闪存驱动器是否需要在 100 天内更换(假设 100,000 次读写周期寿命)?
答案1
从实际目的来看,没有读取限制。实际上也没有写入限制,而是擦除限制。(并且,如果您之前已经写入过某个块,则需要将其擦除才能向其中写入新数据。)
答案2
David Schwartz 的回答涵盖了所有“实际目的”。本回答将重点讨论“不实际目的”。无限阅读规则有一个理论上的例外,但它有一个简单的解决方案。
写入闪存有使用寿命限制,但读取也会影响它。它的一个弱点是所谓的“读取干扰错误” 1 读取闪存会稍微降低周围存储的值,最终可能导致错误。
通过控制器跟踪读取次数,并在性能下降成为问题之前复制块,可以避免错误。只需将块复制到其他地方,然后擦除原始块即可重置所有内容,原始块可以再次使用。 来源
MLC 的经验法则是读取 100,000 次;SLC 的经验法则是读取 1,000,000 次2(多层单元 (MLC) 和单层单元 (SLC) 分别是两种类型的闪存)因此在“正常”使用情况下,这些阈值甚至可能不是控制器需要处理的问题。
这给我们带来了不切实际的场景。假设你使用闪存是为了像这个问题中那样的目的(一次写入,然后在很长一段时间内大量读取)。只要至少有一个空闲块,控制器就可以用数据玩抢椅子的游戏。然而,如果你用数据填充每一个最后的块,你最终可能会达到控制器无法避免读取干扰错误的地步。
在这种牵强附会的情况下,控制器可能会通过冻结卡或闪存驱动器来避免损坏,因此没有经济高效的方法来读取它。在本问题中描述的使用水平下,这可能在几个月或几年内发生,具体取决于闪存的类型。
当然,只要有备份驱动器就可以解决这个问题,因为它们很便宜,而且你还没有写入任何新数据。或者,你可以确保至少留出少量的可用空间。
注意:以下两个来源都是直接下载链接;单击后将立即下载 PDF 文件。
1 http://users.ece.cmu.edu/~omutlu/pub/flash-read-disturb-errors_dsn15.pdf
2 http://www.dslreports.com/r0/download/1507743~59e7b9dda2c0e0a0f7ff119a7611c641/flash_mem_summit_jcooke_inconvenient_truths_nand.pdf
答案3
这个问题的答案并不那么简单。当你写入文件时,新的块会被写入。使用过的块会被标记为“脏”。因此,如果你在 1MB 设备上写入了一个 10KB 的文件,那么这个 10KB 文件很可能会写入 1MB 设备中的所有块。只有当没有更多“干净”的块时,闪存控制器才可能会擦除“脏”块。
您的闪存驱动器的使用寿命将远远超过在 1MB 设备上写入 10K 文件 100,000 次的时间。
答案4
衡量闪存驱动器(SSD 或 USB)的使用寿命并不像说出一个数字或平均故障间隔时间 (MTBF) 那么简单。因为故障问题并不固定。
硬盘(磁性介质)会发生与(1)控制器电路板(2)驱动器的读写头(3)轴承疲劳相关的故障,但很少与介质本身有关。
随机存取存储器驱动器(通常称为闪存驱动器)会失效,因为内存块只能被擦除/写入 X 次,之后才会完全失效。“闪存”驱动器的工程师通过“平衡”块的使用来改善这种损失。基本上,他们会将最终损失分散到所有可用的块上,从而减少对任何一个块的过度使用。
这篇文章介绍了研究人员测试各种闪存-RAM 驱动器组件后发现的情况。正如我之前所说...这取决于一些关键数据和制造方法。
最后,记住你的磁性媒体驱动器或 RAM 驱动器的终止日期,因为它们最终都会失效。随着时间的流逝,要更频繁地进行备份。
http://www.zdnet.com/article/usb-drive-life-fact-or-fiction/