バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのPERFORMANCE_ENHANCEの話。
Host-initiated maintenanceについて。
登場人物
博識フクロウのフクさん

イラスト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
セルフメンテナンスの振る舞い

セルフメンテナンスそのものは、
SDカード内のスループットを最大化させるための最適化なんだよね?

そうだね。
そして、どう最適化してるかはメーカ依存で、SDの仕様としては規定はされてない。

ということは最適化の内容自体はここでは触れないって感じか。

まぁ推測レベルだと、
物理ブロックと論理ブロックの並びを見て、
連続している方が良い所を連続配置にするってくらいかな。
まさにデフラグってやつだ。

それ以上はわからんよねー。
Host-initiated maintenance

まずはホスト主導の
Host-initiated maintenanceから。

実は、再びPerformance Enhancement Registerが絡んでくる。

あー、ここでやったやつか。

これだったね。
| Byte Offset | Bits | Name | Description |
|---|---|---|---|
| 0 | – | Performance Enhancement Function Revision | 00h:Revison 1 |
| 1 | [0] | FX_EVENT Support | 0:Not support,1:Supported |
| 2 | [0] | Card Initiated Maintenance Support | 0:Not support,1:Supported |
| 2 | [1] | Host Initiated maintenance Support | 0:Not support,1:Supported |
| 3 | [1:0] | Card maintenance Urgency 00b:None, 01b:Mild, 10b:Middle, 11b:Urgent | |
| 4 | [0] | Cache Support | 0:Not support,1:Supported |
| 5 | – | Reserved | – |
| 6 | – | CQ Support and Depth | 00h:CA is not supported,01h:depth=2(ID=0,1),…,1Fh:depth=32(ID 0~31) |
| 7 | – | Reserved | – |
| 8月15日 | – | Task Error Status | 00h:No Error,01h:Error,Other:Reserved |
| 16-256 | – | Reserved | – |
| 257 | 0 | FX_EVENT Enable | 0:Disable,1Enable |
| 258 | 0 | Card Initiated maintenance Enable | 0:Disable,1Enable |
| 258 | 1 | Host Initiated maintenance Enable | 0:Disable,1Enable |
| 259 | 0 | Start Host-Initiated Maintenance | 1:Starts host-initiated maintenance.0:By card indicates the break of maintenance.(break within 1 secomd.) |
| 260 | 0 | Flush Cache | 1:Start Cache flush.0:By card indicates the end of Cache flush.(flush within 1 second.) |
| 262 | 0 | Enable CQ | 0:Disable,1Enable |
| 262 | 1 | CQ Mode | 0:Voluntary mode, 1:Sequential Mode |
| 263-511 | – | Reserved | – |

このレジスタの
Host Initiated maintenance Enable
を1にして有効化。
そして、
Start Host-Initiated Maintenance
を1すればカード側でセルフメンテナンスが開始される。

以外とシンプル。

あと、
Card maintenance Urgency
ってところで、緊急度ってのが設定できる。

緊急度?

これもメーカ依存だけど、ガッツリ最適化するか、ゆるーく最適化するかってところだろう。
具体的なところはなんもわからん。

うーん、そういう指示ができるってのだけ覚えておこう。

次に、Card-initiated maintenanceだが、
これは次回に回そう。

そこそこ情報量があるってことだな・・・。
まとめ

まとめだよ。
- Host-initiated maintenanceについて説明。
- Performance Enhancement Registerで制御。
- Start Host-Initiated Maintenanceで開始。
- Card maintenance Urgencyで緊急度設定。
バックナンバーはこちら。




コメント