Trancendの8GByte SDHCカードでは、CMD17SingleRead時、コマンドからReadデータが出力されるまでがおよそ250μsと長いため、class10のカードであればもっと短いのではということで、いくつかSDHCのカードを買って調査してみました。
|
上海問屋 SanDisk Trancend 上海問屋 Trancend Trancend Slicon Power microSDHC microSDHC SDHC SDHC microSDHC miniSD microSD 16G 16G 8G 4G 4G 2G 2G class10 class6 class10 class10 class6 - -
|
手持ちのSDHC、SDカード
ところが、16GbyteのSDHCカードは、2枚買って2枚ともうまくアクセスできませんでした。どうも16GByteではFAT32が8GByte以下と異なるようです。
さて、Readデータが出てくるまでのアクセス速度の改善についてですが、実は Trancendの8GByte SDHCカードはclass10であり、新たに購入した上海市場の4GByte Class10のSDHCカードよりも特性が良いという結果に...
|
上海問屋 SDHC 4GB class10 SD_CLK 5.5MHz Sampling Clock 25MHz Total Access Time 1122μs(T-B) Data Read Access Time 732μs(A-B) |
上海問屋2GByte Class10 SDHCのコマンド(CMD17)・レスポンス・Readデータの送受信波形
Trancend 8GByte Class10 1020μsに対し上海問屋2GByte class10は1122μsと約100μs遅いという結果でした。class6は試すまでもないのでパス。
現在のTrancendのclass10は、パッケージのラベルの色が黒基調に変わっていて、オレンジ色基調のはSDカードにしか存在していないので、どうせ遅いクラスであろうと思い込んでいたのですが、よく見るとちゃんと丸10のマークがプリントされていました...orz
次にSDクロックを5.5MHzから22MHzにアップして、どれぐらい改善するか確認していましたが。
|
Transcend SDHC 8GB SD_CLK 5.5MHz Sampling Clock 25MHz Total Access Time 1020μs(T-B) Data Read Access Time 732μs(A-B) |
SDクロック5.5MHz時のコマンド(CMD17)・レスポンス・Readデータの送受信波形
|
Transcend SDHC 8GB SD_CLK 22MHz Sampling Clock 50MHz Total Access Time 460μs(T-B) Data Read Access Time 183μs(A-B) |
SDクロック22MHz時のコマンド(CMD17)・レスポンス・Readデータの送受信波形
予想通り、コマンドからReadデータが出てくるまでは、約250μでほとんど変わりません。つまりクロックスピードを上げても32bit/384kHz(167μs以内が最低ライン)の再生をクリアするのは不可能です。
シリアルから4パラにしてもData Read Access Time 183μsが46μsに短縮しますがコマンドからReadデータ出力までは多分同じでしょうからTotal Access Timeは300μs程度までしか短縮できないと推測されます。
よってRead Single Block(CMD17)で実現を考えるのは不可能で、Read Multiple Block
(CMD18)を用いてReadバースト長を長くしコマンド=>Readデータ間のアクセス遅延を隠蔽することにより実現する必要があることがわかりました。
Read Multiple Block(CMD18)を用いたアクセス制御への変更を検討していきます。