バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのVIDEO_SPEED_CLASSの話。
VSC_AU_SIZEについて。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
SDカードのSD_STATUS詳細
今回はVIDEO_SPEED_CLASSの話の中のVSC_AU_SIZEについて。
- PERFORMANCE_MOVE
- VIDEO_SPEED_CLASS ← これの第2回/全2回
- APP_PERF_CLASS
SD_STATUSの上記に関係するところの明細。
Bits | Identifier | Value | Description |
---|---|---|---|
439:432 | PERFORMANCE_MOVE | Performance of move indicated by 1[MB/s] step. | AUのコピー速度 |
391:384 | VIDEO_SPEED_CLASS | Vedeo Speed Class value of the card | ビデオスピードクラス |
377:368 | VSC_AU_SIZE | AU size in MB for Vide Speed Class | ビデオスピードクラスに於いてのAUサイズ |
339:336 | APP_PERF_CLASS | Application Performance Class Value of the card | アプリケーションパフォーマンスクラス |
VSC_AU_SIZEとは
今回はVSC_AU_SIZEの話ということだったけど、
SD_STATUSの表の説明を見た感じだと、ビデオスピードクラスで使われるなんかのサイズみたいだね?
うん。
AUサイズだね。
AUはAllocation Unitの略だ。
AUサイズって具体的にどういうパラメータになるの?
簡単に言うと書き込み単位だねー。
あれ?
SDカードの書き込み単位って512byteじゃなかったっけ?
普通にランダムアクセスをする場合は512byteなんだけど、
内部がNAND-FlashRomである都合上、可能な限り大きなサイズを1単位とした方が書き込みスループットが上げやすいんだ。
あー。それはなんとなくわかる気がする。
VSC_AU_SIZEの内訳
で、具体的にはどの程度のサイズになるの?
VSC_AU_SIZEの内訳の表を出そう。
VSC_AU_SIZE | AU Size | SU Size |
---|---|---|
008h | 8MB | 8MB |
010h | 16MB | 8MB |
015h | 21MB | 7MB |
018h | 24MB | 8MB |
01Bh | 27MB | 9MB |
01Ch | 28MB | 7MB |
01Eh | 30MB | 10MB |
020h | 32MB | 8MB |
024h | 36MB | 9MB |
028h | 40MB | 8MB |
02Ah | 42MB | 7MB |
02Dh | 45MB | 9MB |
030h | 48MB | 8MB |
036h | 54MB | 9MB |
038h | 56MB | 8MB |
03Ch | 60MB | 10MB |
040h | 64MB | 8MB |
048h | 72MB | 8MB |
050h | 80MB | 8MB |
060h | 96MB | 8MB |
070h | 112MB | 8MB |
078h | 120MB | 8MB |
080h | 128MB | 8MB |
090h | 144MB | 8MB |
0A0h | 160MB | 8MB |
0C0h | 192MB | 8MB |
0D8h | 216MB | 8MB |
0E0h | 224MB | 8MB |
0F0H | 240MB | 8MB |
100h | 256MB | 8MB |
120h | 288MB | 8MB |
140h | 320MB | 8MB |
180h | 384MB | 8MB |
1B0h | 432MB | 8MB |
1C0h | 448MB | 8MB |
1E0h | 480MB | 8MB |
200h | 512MB | 8MB |
これは・・・また随分長細い表だな・・・。
AUサイズは最小で8MB、最大で512MBかー。
結構バリエーションがあるんだねー。
まぁどの程度の映像を取り込むかで最適値が違うらしいからねー。
ガッツリと高画質で記録するなら最大の方が良いだろうが、
そこそこの画質とかだと、少し小さめのAUサイズでも良いかもしれない。
そういえば、表の一番右のSU Sizeってなに?
SU(Sub Unit)
SUはSub Unitの略で、
転送最小単位みたいだね。
一気にAUサイズ分送るのではなく、SUサイズで細かく送るという使い方をする。
例えば、AUサイズ512MB、SUサイズ8MBならば、
512/8=64
64回の8MB転送をするってことになる。
8MBも十分大きなサイズな気がするけど、
64回も送るのか―。
スループットを引き上げるための仕掛けなのだろう。
CMD20(SPEED_CLASS_CONTROL)を駆使していろいろやってるんで、
興味があれば、SDAの仕様書を見ると良いだろう。
SD仕様書
(うーん、さらっと見たけどチンプンカンプンだ)
まとめ
まとめだよ。
- VIDEO_SPEED_CLASSの話の中のVSC_AU_SIZEについて説明。
- NAND-FlashRomの性質上、書き込み単位は大きい方がスループット上有利。
- よって、書き込み性能が高いSDカードほどVSC_AU_SIZEが大き目な傾向にある。
- AUサイズは8MB~512MB。
- 一回の転送でAUサイズ分を送っているわけでは無く、SUサイズ単位で送っている。
- SUサイズは大体8MB近辺。
バックナンバーはこちら。
コメント