【FileSystem】車載外部ストレージ その53【SD応答向上仕様②】

【FileSystem】車載外部ストレージ その53【SD応答向上仕様②】 車載外部ストレージ

バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/

はじめに

SDカードのCQ(Command Queue) Modeの話。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

CQ(Command Queue) Mode

フクさん
フクさん

前回説明した通り、
CQ(Command Queue) Modeは以下2種類。

  • Voluntary CQ mode
  • Sequential CQ Mode
太郎くん
太郎くん

Voluntary CQ modeがSDカードで処理順を決定するモードで、
Sequential CQ Modeがホストで処理順を決定するモードだったね。

フクさん
フクさん

そうそう。

Voluntary CQ mode

フクさん
フクさん

まずはVoluntary CQ modeを説明しよう。

太郎くん
太郎くん

あっさり気味で頼むよー。

フクさん
フクさん

(うーん、なかなか難しい注文だ)

フクさん
フクさん

まず、SDカード主導で処理順を決定するとは言ったが、
ある程度の方針はホスト側から指定する。

太郎くん
太郎くん

方針?

フクさん
フクさん

各処理に優先度ってのを設定する。

太郎くん
太郎くん

あー。
その優先度順に処理してくれるってことか。

フクさん
フクさん

ただ、優先度順に処理してくれるかは保証されていない。

太郎くん
太郎くん

それって優先度って言えるの?

フクさん
フクさん

まぁカード側の効率重視の都合で処理が後回しになるから仕様上は保証しないってことだねー。

フクさん
フクさん

Voluntary CQ modeを使用するには
Performance Enhancement Function Registerの
offset 262byte bit1=’0′
にする必要がある。

太郎くん
太郎くん

・・・。

フクさん
フクさん

Performance Enhancement Function Registerは後で説明するよ。

Sequential CQ Mode

太郎くん
太郎くん

次はSequential CQ Modeかな。

フクさん
フクさん

まずこのModeを使用するには、さっき出てきた
Performance Enhancement Function Registerの
offset 262byte bit1=’1′
にする。

太郎くん
太郎くん

あー、同じbitのON/OFFで切り替わるのね。

フクさん
フクさん

Sequential CQ Modeの場合、Task ID順に必ず実行される。

太郎くん
太郎くん

Task ID?

フクさん
フクさん

まぁCommand Queueに振られたIDだねー。
0~31の最大32個分ある。
必ず32個ある保証は無いんで、ACMD13(SD_STATUS)の中で定義されてる。

太郎くん
太郎くん

SD_STATUS?

フクさん
フクさん

512bit(=64byte)長のSD内部パラメータ群だねー。

太郎くん
太郎くん

512bitのレスポンスフォーマットがあるってこと?

フクさん
フクさん

うんにゃ。
レスポンスフォーマットとしてはR1で
512bit長のデータはDATのラインで取得できる。

太郎くん
太郎くん

ほー。
CMD17(READ_SINGLE_BLOCK)、CMD18(READ_MULTIPLE_BLOCK)以外にも
読み出しでDATラインを使うコマンドが出てきたのは初めてだねー。

フクさん
フクさん

そうだね。
他にもちょこちょこ出てくるけどねー。

フクさん
フクさん

まぁ次回はACMD13(SD_STATUS)について掘り下げるか。

まとめ

フクさん
フクさん

まとめだよ。

  • CQ(Command Queue) Modeを簡単に説明。
  • Performance Enhancement Function Register offset 262byte bit1で切替ができる。
    • 1:Voluntary CQ mode。
    • 0:Sequential CQ Mode
  • Sequential CQ ModeはTask ID順に処理される。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました