2011年5月21日土曜日

SDHCカードの調査 Readデータ出力遅延ってかなり長い

 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)を用いたアクセス制御への変更を検討していきます。


0 件のコメント:

コメントを投稿