SDカードのアロケーションユニットサイズとか
- TakashiSasaki
- 2427
- 4
- 1
- 0
@TakashiSasaki そのへん不思議なんですよね。SDカードの中のレジスタの仕様でも、読み書きブロックサイズは512、消去ブロックサイズは64kって固定値になってるし。あんま物理的なところは気にせず、コントローラーに任せろ、ってこと?
2022-06-08 13:25:59@felis_silv SDアソシエーション謹製のフォーマッタを使うとSDカードから諸元を読み取って最適なブロックサイズにしてくれるのかもしれないけど、仕組みはようわからんです。sdcard.org/downloads/form…
2022-06-08 13:37:40@felis_silv Windowsからは単にUSBマスストレージデバイスとして見えてるだけなのですが、なんか特別なコマンドがあるのかもしれません。上記のフォーマッタは管理者権限を必要としますし。 pic.twitter.com/t5iGUGuh7T
2022-06-08 13:38:33@felis_silv たくさんあるSDカードを管理するためにPSNを読み取って、なんてことを考えたこともありましたが、SDカードに対して直接コマンドを発行しないとだめだなぁって。cameramemoryspeed.com/sd-memory-card…
2022-06-08 13:40:11@felis_silv Linuxのデバドラではいろいろ取得できた気がするけど、忘れちゃいました。kernel.org/doc/Documentat…
2022-06-08 13:41:41@felis_silv Windowsのデバドラに関する記述でもSDカードの固有情報について言及はあるので、低レベルの情報もやりようによっては取得できるんでしょうねぇ。 docs.microsoft.com/en-us/windows-… pic.twitter.com/vgqiX23VKK
2022-06-08 13:47:10@TakashiSasaki SDカードから読み出せる、その辺のデータはCSDレジスタの中身くらいですね。ただ、なぜか固定値として定義されてるw pic.twitter.com/uh1g21SLMh
2022-06-08 16:13:41@TakashiSasaki USB接続のSDカードリーダーだと、間にUSB Mass Storage Classが介在するので、この辺の内部情報は読めないけど、バスに直に接続されたSDカードスロットなら読み込める?例えば、RasPiでも、USB接続だと読めないけど、本体のSDカードスロットだとこの辺の情報も読めます。
2022-06-08 16:15:19@felis_silv 固定値ってそういうことでしたか。ドライバの実装がなんかサボってて決め打ちしてるってことかと勘違いしてました。
2022-06-08 16:26:37@TakashiSasaki あ、こんな情報もあるっぽいです。これが、フラッシュメモリ上の物理境界のサイズらしい?いずれにしても、USB接続では読めなさそう。。 pic.twitter.com/rnz0aZdX8P
2022-06-08 16:42:46@Q900owner ADIがわりと日本語のドキュメント出してきますねw どのくらい最新に追従してるかわからないけど。。
2022-06-08 17:27:42SDカードの内部情報みるやつ、表示する内容増やしてみた!A1とかA2対応のカード持ってないので、そのへんの動作は未検証w😅 表示はボタンで切り替わります。 github.com/yamamaya/M5-SD… pic.twitter.com/1vLqqDNYFF
2022-06-08 19:36:46@TakashiSasaki というわけで読んでみましたw けっこうでかいサイズなんですねー。。 twitter.com/felis_silv/sta…
2022-06-08 19:41:28@unos SMARTは非公式対応だから、メーカーによって読み出し方もデータ構造も違うらしい。。w ちょっと無理w
2022-06-08 19:54:28@felis_silv AUとUHS-I AUがあるんですね。そして後者はまさかの64MB。ってことは物理的(?)にはこれがフラッシュメモリの「単位」ってこと?でかい。
2022-06-08 20:02:29@felis_silv nemuisan.blog.bai.ne.jp/?eid=221282 とはいえSMART取れて手に入るの、ここかTranscendかくらいでは感w
2022-06-08 20:06:27@TakashiSasaki Allocation Unitで、仮想アドレスを物理メモリのアドレスに置き換える単位、の意味みたいです。物理的なブロックサイズとの関係は、あるんだろうか。。
2022-06-08 20:08:19@felis_silv 僕は東芝の古いドキュメントくらいしか探せてないんですが、ERASE_SIZEってのはAU_SIZEの倍数(1AU~65535AU)までなんですね。mikrocontroller.net/attachment/219… pic.twitter.com/hwua3Aztp6
2022-06-08 20:15:38@TakashiSasaki そのERASE_SIZEってなんなんでしょうねw シンボル名的には消去単位っぽいけど、タイムアウトとか絡んできてよく判らない。。😅
2022-06-08 20:16:44@felis_silv 2006のドキュメントにはなかったけど、2010年のドキュメントにはUHS_AU_SIZEがありました。google.com/url?sa=t&rct=j… pic.twitter.com/CUdYhj9ZTT
2022-06-08 20:17:44@felis_silv ようやくVersion 6.00見つけた。UHSバスI/Fを使うときはホストはAU_SIZEではなくUHS_AU_SIZEを参照せよと。うーむ、これ、フラッシュメモリの物理的な特性と関係あるのかなぁ。バス速度によって変わるって。。academy.cba.mit.edu/classes/networ… pic.twitter.com/ZlSDQJq8na
2022-06-08 20:19:58@felis_silv VSC_AU_SIZEもあるのか。そしてAUの下にSUというのもあると。 pic.twitter.com/BqzqgTXDNQ
2022-06-08 20:22:31@TakashiSasaki ですです。動作モードによって違うみたい。メモリコントローラーの管理単位、ということは間違いなさそうですが、物理的なフラッシュメモリとの関係はよく判らなかったです。。。
2022-06-08 20:23:12