David Schwartzの答えは、すべての「実用的な目的」を網羅しています。この答えは「非実用的な目的」に焦点を合わせます。無制限の読み取りのルールには理論上の例外がありますが、簡単な解決策があります。
フラッシュメモリへの書き込みにはライフタイムの制限がありますが、読み取りも影響します。その弱点の1つは、「読み取り障害エラー」と呼ばれるものです1 フラッシュメモリを読み取ると、格納されている周囲の値がわずかに低下し、最終的にエラーにつながる可能性があります。
コントローラーが読み取り回数を追跡し、劣化が問題になる前にブロックをコピーすることにより、エラーを回避します。ブロックを別の場所にコピーしてから元のブロックを消去するだけですべてがリセットされ、元のブロックを再び使用できます。 ソース
MLCの経験則は100,000読み取りです。SLCの場合は、1,000,000回の読み取り2です(マルチレベルセル(MLC)とシングルレベルセル(SLC)は2種類のフラッシュメモリです)。そのため、「通常の」使用法では、これらのしきい値はコントローラーが処理する必要のある問題でさえないかもしれません。
それは非現実的なシナリオに私たちをもたらします。この質問のような目的でフラッシュメモリを使用していたと仮定します(一度書き込み、その後長時間にわたって大量に読み取ります)。少なくとも1つの空きブロックがある限り、コントローラーはデータで音楽椅子を演奏できます。ただし、すべての最後のブロックをデータで埋めると、最終的にコントローラーが読み取り障害エラーを回避する方法を持たなくなる可能性があります。
この大げさなケースでは、コントローラーはカードまたはフラッシュドライブを凍結することで破損を回避する可能性が高いため、費用対効果の高い読み取り方法はありません。この質問で説明されている使用レベルでは、フラッシュメモリの種類に応じて、数か月または数年以内に発生する可能性があります。
もちろん、バックアップドライブがあれば、それがどれだけ安いか、新しいデータを何も書いていないという事実を考えれば対処できます。または、少なくとも少量の空き領域を確保することもできます。
注:次のソースは両方とも直接ダウンロードリンクです。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_pdf