web-dev-qa-db-ja.com

WindowsでのexFATのデフォルトの割り当てサイズが非常に高いのはなぜですか?

このページの参照: https://support.Microsoft.com/en-us/kb/140365

NTFSは、ボリュームが16TBを超えるまで4KBのクラスターサイズを超えず、FAT32は、最新バージョンのWindowsの16GB〜32GBのボリューム範囲で最大16KBになります。

ただし、exFATのデフォルトは、7MB〜256MBのボリューム範囲では4KBのみです。その後、256MB〜32GBの範囲で32KBにジャンプし、それを超えて128KBになります。

何故ですか?比較的大きなクラスターサイズは、特にフラッシュドライブなどの小さな外部デバイス用に設計されたフォーマットでは無駄に見えます。フラッシュメモリをフォーマットしている場合は、二重に理解してください。私が理解しているように、クラスターサイズを大きくすることの主な利点は速くなりますIO断片化が少なく、読み取るクラスター全体が少ないためです。間違っていますが、フラッシュメモリは断片化によるスローダウンの傾向がはるかに少ないので、クラスタサイズをそれほど大きくするのはなぜですか?

12
InsanityOnABun

ExFATは主に大容量SDカードのようなものに使用されるため、SDカードでは、書き込む前にセクターを消去する必要があります。消去セクターサイズが大きいカードで小さなクラスターを使用すると、同じセクターに多くの消去および書き込みコマンドが実行され、いくつかの連続したクラスター値のデータがディスクに書き込まれるだけでなく、パフォーマンスが低下するだけでなく、フラッシュが早く消耗します。細胞。消去セクターサイズは、通常、カードのデータシートには記載されていませんが、カードのCSDレジスタに記載されています。このレジスタの内容は、その内部設計に応じてカードごとに異なります。 SDカードは通常、大きなファイルを保存するカメラなどで使用されるため、大きなクラスターサイズの無駄なスペースは重要ではなく、非常に多数の非常に小さなファイルを保存する場合にのみ発生します。

このWebページには、約12枚のカードのこのレジスターの内容があります。

http://goughlui.com/2014/01/03/project-read-collect-decode-sd-card-csd-register-data/

そして、その内容を次の計算機に入力すると、32/64GBカードのいくつかについて、消去セクターサイズは128ブロックで、ブロックは512バイトです。また、2GBカードの消去セクターサイズは32ブロックで、ブロックは1024バイトです。

http://goughlui.com/static/csdecode2.htm

WindowsがCSDレジスタをクエリしてクラスターサイズを提案するのに十分かどうか、または単にパーティションまたはディスクサイズに基づいて推測するかどうかは不明です。マイクロコントローラーでSDカードをエミュレートする場合は、それを見つけることができます。

11
Muh Fugen