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

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

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

はじめに

SDカードのPERFORMANCE_ENHANCEの話。
CommandQueue関連の詳細。

登場人物

博識フクロウのフクさん

指差しフクロウ

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

再度、PERFORMANCE_ENHANCEの話

太郎くん
太郎くん

そういえば、元々はPERFORMANCE_ENHANCEの話だったと思ったけど、
もうこっちは話としては終了でOKなんだっけ?

フクさん
フクさん

まぁここを読み返すのが早いのだが。

フクさん
フクさん

再度、PERFORMANCE_ENHANCEの内訳を見てみよう。

PERFORMANCE_ENHANCEDescription
SD_STATUS b[335:331]Command Queue Support.
SD_STATUS b[330]Support for Cache.1:Supported
SD_STATUS b[329]Support for Host-initiated maintenance,1:Supported
SD_STATUS b[328]Support for Card-initiated maintenance,1:Supported
太郎くん
太郎くん

そういえば、Command Queue Supportの話はやってなかったような?

Command Queue Support

フクさん
フクさん

元々はCommand Queueの話がスタートではあったんだけど、
いろいろ話が散ってしまった感じだな。
とりあえず、Command Queue Supportの内訳も見てみよう。

Command Queue SupportValue Definition
0hCommand Queue is not supported
1hCommand Queue supported, with queue depth 2
2hCommand Queue supported, with queue depth 3
… …
1FhCommand Queue supported, with queue depth 32
太郎くん
太郎くん

あ、何となく思い出してきた。
Command Queueを使うことでSDカードの応答向上ができるって話だったんだ。

Performance Enhancement Register

フクさん
フクさん

そして、前回までに出てきた、Performance Enhancement Register
も絡んでくる。

Byte OffsetBitsNameDescription
0Performance Enhancement Function Revision00h:Revison 1
1[0]FX_EVENT Support0:Not support,1:Supported
2[0]Card Initiated Maintenance Support0:Not support,1:Supported
2[1]Host Initiated maintenance Support0:Not support,1:Supported
3[1:0]Card maintenance Urgency 00b:None, 01b:Mild, 10b:Middle, 11b:Urgent
4[0]Cache Support0:Not support,1:Supported
5Reserved
6CQ Support and Depth00h:CA is not supported,01h:depth=2(ID=0,1),…,1Fh:depth=32(ID 0~31)
7Reserved
8月15日Task Error Status00h:No Error,01h:Error,Other:Reserved
16-256Reserved
2570FX_EVENT Enable0:Disable,1Enable
2580Card Initiated maintenance Enable0:Disable,1Enable
2581Host Initiated maintenance Enable0:Disable,1Enable
2590Start Host-Initiated Maintenance1:Starts host-initiated maintenance.0:By card indicates the break of maintenance.(break within 1 secomd.)
2600Flush Cache1:Start Cache flush.0:By card indicates the end of Cache flush.(flush within 1 second.)
2620Enable CQ0:Disable,1Enable
2621CQ Mode0:Voluntary mode, 1:Sequential Mode
263-511Reserved
太郎くん
太郎くん

あー。
確かにCQなんちゃらがあるね。
Enable CQで有効化して、
CQ Modeで、使用するModeを選択する感じか。

フクさん
フクさん

そうそう。
これでCQ Modeが仕様可能になるわけだ。

太郎くん
太郎くん

回り道したようにおもったけど、
実は必要な情報を順に追ってた感じか。

フクさん
フクさん

あとは、実際にCommand Queueをどう使うかってところになるな。

まとめ

フクさん
フクさん

まとめだよ。

  • 再度、PERFORMANCE_ENHANCEの話。
  • Command Queue Supportの内訳確認。
    • Queueの深さが分かるパラメータ。
  • CQ Modeを選択したり有効化するのはPerformance Enhancement Registerを操作する。
    • Enable CQ。
    • CQ Mode。

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

コメント

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