トップシステム > SDXCカードのフォーマット

SDXCカードのフォーマット

タブレット使用に当たり、初めて、本格的に SDカードを使用している。

1.はじめに

64GBのmicroSDXCカードを1、2か月使ってみて、ハードディスクとの違いが分かってきた。 SDXCカードの購入時のフォーマットは exFAT でアロケーションユニットサイズは 128KB であった。

地図システムのタイル画像(256x256画素)の平均サイズは 4〜5KB 程度であるから、ロスが大きすぎる。 このため、NTFSフォーマットに変換した(ユニットサイズ 4KB)。

書き込みが遅いのが気になるぐらいで、これまで大きな問題はなかった。 しかし、ストレージ使用率が 60% 程度に達してから、書き込みの時間がかかりすぎるようになった。 数KBのファイルであれば、どうにか書き込めるが、100KBだと、タイムアウトになってしまう。

ネット検索であれこれ調べた結果、色々分かってきた。連続的にファイルを書き込むと、時々、 書き込みが止まるのも理由があるようだ。

SDメモリはハードディスクに比較すると大容量になるほど、寿命がはるかに短くなるようだ。 フォーマットも SDメモリに適した方法があり、Windowsシステムのフォーマッタを使うのは良くないようだ。

そこで、SD Formatter 4.0 をダウンロードして、exFAT フォーマットに戻した。 アロケーションユニットサイズは小さくすることも可能なようだが、標準の 128KB とした。

タイル地図画像は現在は、平均的に 100ファイル程度を一まとめにしているので、 平均ファイルサイズは 500KB 程度である。 ユニットサイズ 128KB での平均ロスは 64KB であるから、我慢できる範囲である。ロスを減らすには、 将来、再度フォーマットし直すことがあれば、ユニットサイズを 64KB にするとか、 タイル地図の括りを 約2MB にすることを検討したい。

現在 256x256画素のタイル地図、 16x16 個分(すなわち 2048x2048画素)を一まとめにしている。 ズームレベル 16以上では、市街地などを中心としているため、全てのタイル地図を保持しているわけではない。 単純見積もりでは256タイルの半分 128タイルを一まとめにしていると言える。

括りを大きくしすぎると、そのくくりから個々のタイル画像を読みだす処理に時間がかかるようになる おそれがある。このため、 16x16 個分位が妥当と考えている。

タブレットの主ストレージも SDメモリと似たようなものであるから、ハードディスクより寿命が短い。 頻繁に書き換えを行うものは SDメモリに置くべきでない、と言っても、メインストレージでも事情は同じ。 Windows OSが頻繁に情報の書き換えを行っている。 ある程度、対策は考えられているだろうから、OSまでには立ち入れない。

地図表示は読み込みだけであるが、アクセス時間をOSが書き込んでいるとすれば、 頻繁に書き込みがあることになる。

SDメモリは数千円で買えるので、2、3年使えれば十分であろう。 ユーザプログラムで書き換えが多いファイルは取り換えが効かないメインストレージではなく、 SDカードに置いた方が無難であろう。

文献[2]に従って

C:\>fsutil behavior query disablelastaccess
により、最終アクセス日時が記録されているかどうか確認した。 パソコン、タブレットとも、最終アクセス日時は記録されないように設定されていた。 念のため、ファイルのプロパティを見ると、パソコン、タブレットとも、アクセス日時は作成日時と同じであった。 つまり、読み込みだけでは、SDのタイムスタンプの書き換えが起きる心配はないようだ。

参考文献

[1]USBメモリのフォーマットを変更して高速化する
[2]ファイルの最終アクセス日時の更新を無効にしてディスクへの書き込みを抑える