seclan のほえほえルーム

| |

SD カードを FAT16 でフォーマットしたときのクラスタサイズが 16K である理由

・
2008/01/07 []

最近、SD カードが特に安くなり、激安店などでは 1G の容量を ¥1000- 程度で買えるところも増えてきました。その SD カードでどんなファイルシステムが利用されているかを調べると、ファイルシステムは FAT16 で、クラスタサイズが 16K になっていることがわかります。実は、クラスタサイズが 16K であるのは、FAT16 の制限以外にも理由があります。

それは、SD カードでよく使用されている NAND 型フラッシュの制限です。このフラッシュで何か新しいデータを書き込もうとする場合、始めに書き込み対象のブロック領域すべてを消去して、その後そこに書き込むと言う動作が必要になります。ただし、ここで一つ問題があります。それは、書き込みと読み出しは最小 528 バイト単位でできるのですが、消去が 16K 単位でしかできないのです。つまり、ある領域に 528 バイト単位で連続して書き込もうとした場合、16K全消去 - 528書き込み - 16K全消去 - 528書き戻し+528書き込み - 16K全消去 - 528 x 2書き戻し+528書き込み ... として書き込んでいく必要があります。ここでわかるとおり、書き込みと消去が頻繁に行われます。ご存知のとおりフラッシュには書き込み回数には制限があるので、寿命が縮みます。しかし 16K 単位で書き込みをすると、16K全消去 - 16K書き込み で終了するので、効率がよいことがわかります。このようなことから、クラスタサイズが 16K 毎になっているのです。



by seclan

関連


| |

 

配信

7.81 msec