多くの人が「不良カードのせい」と考える性能低下は、実はほとんどの場合が正常な挙動です。
新品のときは速かったのに、1年後にはイライラするほど遅くなったmicroSDカードを使った経験があるなら、それは気のせいではありません。これはフラッシュストレージにおける実際に測定可能な挙動であり、有名ブランドのカードでも起こります。重要なポイントはこれです。ほとんどの場合、カードは「壊れている」のではありません。内部で以前よりも多くの処理をしているだけなのです。実際、現実の報告ではリムーバブルフラッシュ全体で信頼性の問題が増加しており、近年ではUSBフラッシュメモリの故障が300%以上増加していることが示されています。
この速度低下は、突然の物理的な損傷ではなく、フラッシュメモリが時間とともに自分自身を管理する仕組みによって引き起こされることがほとんどです。カード内部で何が起きているかを理解すると、なぜある用途では長く安定して使えるのに、別の用途では急激に性能が落ちるのかが見えてきます。
シンプルなイメージモデルが役に立ちます。
microSDカードを「倉庫」として考えてみましょう
microSDカードを、箱がぎっしり並んだ倉庫だと想像してください。1つひとつの箱がデータを表しています。棚がフラッシュメモリで、倉庫の管理者がカード内部のコントローラです。この管理者には厄介なルールがあります。一度棚に置いた箱は編集できないということです。内容が変わると、新しい箱を別の場所に置き、古い箱は「不要」としてマークされます。
これは例え話ではありません。NANDフラッシュは実際にこのように動作します。フラッシュメモリは同じ場所に上書きできません。すべての変更は、新しい場所への書き込みとして処理されます。
使い始めの頃、倉庫は空っぽです。どこにでもスペースがあり、新しい箱はすぐに配置されます。管理者はほとんど考える必要がなく、動作は軽快で高速に感じられます。
しかし時間が経つにつれて棚が埋まり、古い箱が積み重なります。ある棚には有効な箱と不要な箱が混在するようになります。すると管理者の仕事は増え、どの棚を掃除するか、どの箱を移動するか、新しい箱をどこに置くかを常に判断しなければなりません。この整理作業は裏側で行われますが、読み書き処理と競合します。ここでパフォーマンスが低下し始めます。