SDカードのアロケーションユニットサイズとか

ブロックデバイスとしてのSDカードで最もパフォーマンスの良いブロックサイズを知りたくて色々調べたが、Allocation Unit (AU) とか Recording Unit (RU) とかいろいろ複雑だなぁって感想で終わった話。 M5Stack持ってる人はSDカードのいろんな情報を読み出すのを @felis_silv 氏が作ってるので参考に。 https://github.com/yamamaya/M5-SDInfoViewer
9
Takashi SASAKI 佐々木隆志 @TakashiSasaki

@felis_silv 最初疑問に思ったSECTOR_SIZE固定の話は、SDHCとSDXCではSECTOR_SIZEを使うな、代わりにAUを使え、ということなんすね。 pic.twitter.com/sE9vGSJFdJ

2022-06-08 20:26:39
拡大
やまねこ⚙楢ノ木技研 @felis_silv

@TakashiSasaki なるほど。。てか、それにしてはデカいですね!?16GBのカードでUHS AUが64MBとか!?

2022-06-08 20:28:19
Takashi SASAKI 佐々木隆志 @TakashiSasaki

@felis_silv SDHCメモリカードは最低でも40AU、SDXCでは最低でも80AUってなってますね。さすがにこれは消去単位でもファイルシステムとしての最適クラスタサイズでもなさそう。 pic.twitter.com/JRBEPqXrSH

2022-06-08 20:33:41
拡大
やまねこ⚙楢ノ木技研 @felis_silv

@TakashiSasaki 恐らく、AU(UHSじゃないほう)って、ウェアレベリングとかで物理的なブロックの再割り当てをする単位じゃないかと思うんです。なので、そっちのほうが、物理的なブロックサイズに関連するかも。。?

2022-06-08 20:35:54
Takashi SASAKI 佐々木隆志 @TakashiSasaki

@felis_silv それ当たってそうです。AUはRUに再分割されて、RU単位で書き込めるらしい。カードコントローラは空いている1RUに書き込むだけでもAUまるごと複製しているっぽい。(つまり消耗する) pic.twitter.com/RD4Az5ohzN

2022-06-08 20:42:57
拡大
Takashi SASAKI 佐々木隆志 @TakashiSasaki

@felis_silv ビデオレコーディングの章を見てると、複数のファイルを同時に書き込むときは一つのAUに詰め込んでるようなコマンドシーケンスが例示されてました。 pic.twitter.com/APpdO4vHUM

2022-06-08 20:53:11
拡大
Takashi SASAKI 佐々木隆志 @TakashiSasaki

@felis_silv RUの終わりまでパディングするって書いてあるので、RUがファイルシステムにおけるクラスタ単位に対応してそう。RUのサイズ(16KB×2のべき乗)ってどこかに書いてあるんだろうか。 pic.twitter.com/syxMZQPgew

2022-06-08 20:55:06
拡大
やまねこ⚙楢ノ木技研 @felis_silv

@TakashiSasaki フラッシュメモリをカードにしただけと思いきや、用途ごとにパフォーマンス出すために、複雑なことしてるんですねぇ。。😅

2022-06-08 20:56:24
Takashi SASAKI 佐々木隆志 @TakashiSasaki

@felis_silv スピードクラスの認定においては、以下のようにRUを決めて読み書きしてみてパフォーマンスを測っているようです。Class 10までのしか載ってなくて、A2とかV30とかの測定で使うRUはわからんけど。 pic.twitter.com/pJOWt68QMM

2022-06-08 21:01:20
拡大
Takashi SASAKI 佐々木隆志 @TakashiSasaki

@felis_silv もっと適当にマーケティング上の都合でてきとうにつけてるんだとおもってたよ、ごめん>SD Association

2022-06-08 21:02:20
やまねこ⚙楢ノ木技研 @felis_silv

@TakashiSasaki なんか、このテーブル以外にそれっぽい情報が無いですね。勉強になりましたw

2022-06-08 21:05:58
Takashi SASAKI 佐々木隆志 @TakashiSasaki

@felis_silv こちらこそ勉強になりました。SD Association謹製のフォーマッタで128GBのSDXCメモリカードをフォーマットするとexFATのクラスタサイズが128KBになるのは、おそらくこの表のSDXCまで載ってるやつではRUが128KBになってるんだろうと推測しています。

2022-06-08 21:08:22
やまねこ⚙楢ノ木技研 @felis_silv

どっかのSDカードのレビューに、Linuxでフォーマットして使ってたらすぐ壊れた、メーカーに標準以外のフォーマットは補償外と言われた、SDカードがファイルシステムと関係あるわけないだろ!みたいな書き込みを見た覚えあるけど、仕様書読むとファイルシステムに特化した機能が実装されてるんだな。。 pic.twitter.com/uLoTaAIsrb

2022-06-08 21:10:34
拡大
長船 🗨️🐲 @s_osafune

@felis_silv ルートディレクトリが配置されるとこは素子レベルで別になってたりしますね

2022-06-08 21:14:00
やまねこ⚙楢ノ木技研 @felis_silv

@s_osafune むしろ、パーティション切ったりext4でも安全に使えるSDカード、ってのが組み込み業界では求められるのか。。

2022-06-08 21:17:28
Takashi SASAKI 佐々木隆志 @TakashiSasaki

@felis_silv と思ったけど、128GBのSDカードでexFATのクラスタサイズが128KBなのは単にマイクロソフトのデフォルト値ポイ。 pic.twitter.com/lcyWEBpjlG

2022-06-08 21:17:44
拡大
やまねこ⚙楢ノ木技研 @felis_silv

@TakashiSasaki そもそも、あの表も、パフォーマンスを測定するときの測定条件、って表ですしね。それがRUやAUのサイズとイコールなのかは判らない。。😅

2022-06-08 21:18:38
Takashi SASAKI 佐々木隆志 @TakashiSasaki

@felis_silv 結局ようわからんでした。SDXC/SDUCでのスピードクラスの測定の表もあったけど、ビデオスピードクラスの測定はまた別の条件が細かく定められてたし。まぁあまり気にせず使っていきますwsdcard.org/downloads/pls/… pic.twitter.com/mX8gJ9CkSf

2022-06-08 21:20:30
拡大
やまねこ⚙楢ノ木技研 @felis_silv

@TakashiSasaki www でも、細かいファイルをいっぱい書き込んだり更新した時に何が起きて、パフォーマンスに同影響するか、とか、理解が深まりましたw

2022-06-08 21:21:35
Takashi SASAKI 佐々木隆志 @TakashiSasaki

@felis_silv 僕もちょっとわかった気になりましたw

2022-06-08 21:22:14
長船 🗨️🐲 @s_osafune

@felis_silv 安いのだとバッドブロック発生したらLBAごとつぶしてウェアレベリングはソフト側でなんとか(ファイルシステム側の処理に期待)する、みたいなのもあるようですし。論理ブロックのはずが物理ブロックになってるという‥‥

2022-06-08 21:32:41
unos @unos

@felis_silv FAT部が強かったりしますねえ。

2022-06-08 21:34:56
やまねこ⚙楢ノ木技研 @felis_silv

@unos FATファイルシステムに特化した機能があったり、動画の記録に特化した機能があったり、想像以上にややこしいシロモノだった。。。😅

2022-06-08 21:52:42
unos @unos

@felis_silv コスト下げつつ要求満たすべく超頑張った結果的な、、

2022-06-08 21:57:00
Kazuho Oku @kazuho

@felis_silv それは機能ではなく、Speed Class を決定するベンチマークのパラメータの説明ではないのでしょうか?

2022-06-08 22:21:14