前々からSDカードの読み込み速度について疑問だったので検証してみた。
何が疑問だったかというと、複数のカードをSTM32マイコンで読み込み速度を測ったところPCで測ったカードのベンチマークの順位通りにならないということがありました。
ということでスピードを測って傾向が掴めないか検証してみた。

手持ちのカード
計測したのは右から
Sandisk Extreme 8GB SDHC CLASS10 (SDSDX3-008G-J31A)
Panasonic 2GB CLASS4 (RP-SDP02G)
TOSHIBA 2GB CLASS4 (SD-M02G)
pqi 8GB CLASS6 SDHC (6AEG-008GP)
写真にはないけどHAGIWARA 4GB CLASS4 microSDHC (C04G)

カードリーダーはサンディスクのUSB2.0 ImageMateです。
まずはPCからベンチソフトで測定
PCはiMac24インチ、OSはBootCamp上のWindowsXP、ベンチマークソフトはCrystalDiskMark 3.0.1です。
SDカードは全てSDフォーマッタ 3.0でフォーマット。クラスタサイズは32KB。
順位はシーケンシャルリードの速さで決めています。
1位
Sandisk Extreme 8GB SDHC CLASS10 (SDSDX3-008G-J31A)


200倍速(30MB/s)を謳っているだけあり、文句無しのぶっちぎりの速さ!(゚A゚;)ゴクリ
2位
Panasonic 2GB CLASS4 (RP-SDP02G)


133倍速(20MB/s)を謳っている商品です。速いです。
3位
pqi 8GB CLASS6 SDHC (6AEG-008GP)


2位とは僅差ですが総合的にはこちらのほうが上。
4位
HAGIWARA 4GB CLASS4 microSDHC (C04G)


使い古してラベルが剥がれちゃってます(^_^;A
5位
TOSHIBA 2GB CLASS4 (SD-M02G)


ぐぬぬ。
この子に隠れた力が宿っていようとはこの時点では気づかなかった。(伏線)
ではSTM32で取ったベンチを見てみます。
STM32で測った場合
測定条件
STBee STM32F103VET6
・CPUクロック周波数72MHz
・SDIOのクロック周波数24MHz
・SDIOのバス幅4bit
SDカードは全てSDフォーマッタ 3.0でフォーマット クラスタサイズは32KB
自作FATリード関数でファイルを1秒間に読み込んだバイト数

予想もつかない結果にΣ(@o@)ノノ
まるで上下が入れ替わったような結果になりました。
TOSHIBA 2GB CLASS4 (SD-M02G)

STM32からだと本領を発揮した東芝のカード。10MB/s近いスピードがでてました。
動画再生60fps達成できたのもこのカードのおかげ。
PCベンチでは最下位だったのになぜ?
なんでこうなるの?
SDカードの仕様によると、ver1.10から最大転送クロックがこれまでの25MHzから50MHzまで上げられました。
従来の転送クロックである25MHzはDefault Speedモードと呼ばれ、最大転送速度は理論値で12.5MB/s。
転送クロック50MHzはHigh Speedモードと呼ばれ、最大転送速度は理論値で25MB/s。
PCからベンチを取ったときの転送クロックのモードはHigh Speedモードであり、(カードリーダによる)
STM32から測ったときはDefault Speedモードだったのです。
そこには転送クロックと転送速度にリニアな関係が無いものと考えられます。
スピードクラスも倍速の表記もHigh Speedモードの場合のもので、25MHzであるDefault Speedモードでは当てにならないということになります。
結論
というわけで、Default Speedモードのマイコン工作で速いカードを見極めるのは難しい><;
買ってみて実際に測ってみないと分からないということになります。
ただ、今回の実験で東芝のカードが速いという結果がでました。
なので推測ですが東芝のカードはDefault Speedにおいてしっかりとスピードが出るように作られているのかもしれません。
そうではなくて偶然この個体が速かっただけかもしれません。
なにせこの無双カード1枚しか持ってませんのではっきりしたことは言えませんが;
今後東芝のカードを中心に入手してそういう傾向があるか随時報告していきたいと思います。
何が疑問だったかというと、複数のカードをSTM32マイコンで読み込み速度を測ったところPCで測ったカードのベンチマークの順位通りにならないということがありました。
ということでスピードを測って傾向が掴めないか検証してみた。

手持ちのカード
計測したのは右から
Sandisk Extreme 8GB SDHC CLASS10 (SDSDX3-008G-J31A)
Panasonic 2GB CLASS4 (RP-SDP02G)
TOSHIBA 2GB CLASS4 (SD-M02G)
pqi 8GB CLASS6 SDHC (6AEG-008GP)
写真にはないけどHAGIWARA 4GB CLASS4 microSDHC (C04G)

カードリーダーはサンディスクのUSB2.0 ImageMateです。
まずはPCからベンチソフトで測定
PCはiMac24インチ、OSはBootCamp上のWindowsXP、ベンチマークソフトはCrystalDiskMark 3.0.1です。
SDカードは全てSDフォーマッタ 3.0でフォーマット。クラスタサイズは32KB。
順位はシーケンシャルリードの速さで決めています。
1位
Sandisk Extreme 8GB SDHC CLASS10 (SDSDX3-008G-J31A)


200倍速(30MB/s)を謳っているだけあり、文句無しのぶっちぎりの速さ!(゚A゚;)ゴクリ
2位
Panasonic 2GB CLASS4 (RP-SDP02G)


133倍速(20MB/s)を謳っている商品です。速いです。
3位
pqi 8GB CLASS6 SDHC (6AEG-008GP)


2位とは僅差ですが総合的にはこちらのほうが上。
4位
HAGIWARA 4GB CLASS4 microSDHC (C04G)


使い古してラベルが剥がれちゃってます(^_^;A
5位
TOSHIBA 2GB CLASS4 (SD-M02G)


ぐぬぬ。
この子に隠れた力が宿っていようとはこの時点では気づかなかった。(伏線)
ではSTM32で取ったベンチを見てみます。
STM32で測った場合
測定条件
STBee STM32F103VET6
・CPUクロック周波数72MHz
・SDIOのクロック周波数24MHz
・SDIOのバス幅4bit
SDカードは全てSDフォーマッタ 3.0でフォーマット クラスタサイズは32KB
自作FATリード関数でファイルを1秒間に読み込んだバイト数

予想もつかない結果にΣ(@o@)ノノ
まるで上下が入れ替わったような結果になりました。
TOSHIBA 2GB CLASS4 (SD-M02G)

STM32からだと本領を発揮した東芝のカード。10MB/s近いスピードがでてました。
動画再生60fps達成できたのもこのカードのおかげ。
PCベンチでは最下位だったのになぜ?
なんでこうなるの?
SDカードの仕様によると、ver1.10から最大転送クロックがこれまでの25MHzから50MHzまで上げられました。
従来の転送クロックである25MHzはDefault Speedモードと呼ばれ、最大転送速度は理論値で12.5MB/s。
転送クロック50MHzはHigh Speedモードと呼ばれ、最大転送速度は理論値で25MB/s。
PCからベンチを取ったときの転送クロックのモードはHigh Speedモードであり、(カードリーダによる)
STM32から測ったときはDefault Speedモードだったのです。
そこには転送クロックと転送速度にリニアな関係が無いものと考えられます。
スピードクラスも倍速の表記もHigh Speedモードの場合のもので、25MHzであるDefault Speedモードでは当てにならないということになります。
結論
というわけで、Default Speedモードのマイコン工作で速いカードを見極めるのは難しい><;
買ってみて実際に測ってみないと分からないということになります。
ただ、今回の実験で東芝のカードが速いという結果がでました。
なので推測ですが東芝のカードはDefault Speedにおいてしっかりとスピードが出るように作られているのかもしれません。
そうではなくて偶然この個体が速かっただけかもしれません。
なにせこの無双カード1枚しか持ってませんのではっきりしたことは言えませんが;
今後東芝のカードを中心に入手してそういう傾向があるか随時報告していきたいと思います。