バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのAPP_PERF_CLASSの詳細の話。
Application Performance Classの話に始まり、
Application Performance Class 1とApplication Performance Class 2の詳細。
大体似ているが、ちょっと違う点もあるので、そこを気にしながら見ると良いかも。
sdcard.orgに結構細かい説明が乗ってたり。
その過程で出てくるIOPSについても観点に説明。
尚、IOPSについてはWikipedia日本語よりWikipedia英語ページの方が詳しく書いてあったり・・・。
(英語ページのリンクも貼って置く)
登場人物
博識フクロウのフクさん

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

今回はPERFORMANCE_ENHANCEについて。
- PERFORMANCE_MOVE
- VIDEO_SPEED_CLASS
- APP_PERF_CLASS ← これの第2回/全2回

SD_STATUSの上記に関係するところの明細。
Bits | Identifier | Value | Description |
---|---|---|---|
439:432 | PERFORMANCE_MOVE | Performance of move indicated by 1[MB/s] step. | AUのコピー速度 |
391:384 | VIDEO_SPEED_CLASS | Vedeo Speed Class value of the card | ビデオスピードクラス |
377:368 | VSC_AU_SIZE | AU size in MB for Vide Speed Class | ビデオスピードクラスに於いてのAUサイズ |
339:336 | APP_PERF_CLASS | Application Performance Class Value of the card | アプリケーションパフォーマンスクラス |
Application Performance Class詳細

Application Performance Class詳細ってことで、
A1とA2のそれぞれの話になるのかな?

そうだね。
それぞれの求められる要件のレベルがあるからねー。
まぁ性能を最大にするための制約とかもあるけど。

制約?

うん。
A1、A2の共通の要件としては、
「連続した1GBの範囲を4MBチャンクで書き込んでいる間、最低10MB/sの書き込み性能。」
ってのがあったりする。

あー、性能を謳うにあたっての前提条件ってことだね。
Application Performance Class 1の詳細

まずはApplication Performance Class 1の詳細

まずはApplication Performance Class 1は以下のパフォーマンスレベルを保証している。
- ランダムアクセス性能
- 読み取り:1500 IOPS
- 書き込み:500 IOPS。
- 連続書き込み性能
- 連続した1GBの範囲を4MBチャンクで書き込んでいる間、最低10MB/sの書き込み性能。

最後のはさっきA1、A2共通のやつだね。
IOPSとは?

ところで、ランダムアクセスところの単位のIOPSって何?

恒例のWikipediaから引用。
入出力操作毎秒(Input/output operations per second, IOPS, 「アイオーピーエス」または「アイオプス」と発音)は、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ストレージエリアネットワーク(SAN)などのコンピュータストーレジデバイスの入出力性能特性を示す単位。
Wikipediaより(https://ja.wikipedia.org/wiki/IOPS)

簡単に言うと、1秒当たりのアクセス回数ってことだね。

アクセス数ってのはわかったけど、データサイズとかはどうなってるんだろ?

SDAの記載によると一回のアクセスは4kbyteになってるみたいだね。

ちなみに、IOPSの話は英語Wikipediaの方がいろいろ書いてる。

(日本語の方は数行で終わってるというのに・・・。)
Application Performance Class 2の詳細

次はApplication Performance Class 2。
- ランダム性能
- 読み取り:4000 IOPS
- 書き込み:2000 IOPS
- 持続的なシーケンシャル書き込み性能。
- 連続した1GBの範囲を4MBチャンクで書き込んでいる間、最低10MB/sの書き込み性能。
- その他
- Application Performance Class 2をサポートするカードは、コマンド・キューとキャッシュを無効にする条件で、Application Performance Class 1もサポートすること。

A2は、A1の2倍以上の性能ってことか。

あと、前回も出てきたA2はA1も内包しているってのが最後に書かれてる要件のことだね。

そうそう。
とりあえず気になる点はおおよそ終わり

じゃー、そろそろPERFORMANCE_ENHANCEの話かな。

そういえば、元々はそれの話だったねー。

というかSDカードの仕様いろいろとあり過ぎじゃない?

まぁ外部ストレージとして一般化されて、インターフェースも比較的シンプルな割には高速ってことで
拡張し易く、拡張も望まれているってところなんだろう。
当然、高機能なものはコストもかかるから、
様々ばバリエーションがあって、それぞれがどこまでの仕様に対応しているかがわかるようになっていなければならない。

いやー、SPIとかも含めると作る側も大変だよね。

そういう意味ではSDUCなんかはSPIモードは非サポートになってるね。

あ、そうなんだ。
まぁ古い仕様全てをサポートし続けるってのも大変だろうしね。
どっかで見切りをつけるってのも大事だね。
まとめ

まとめだよ。
- SDカードのAPP_PERF_CLASSの詳細の話。
- A1,A2共通要件として「連続した1GBの範囲を4MBチャンク」の話がある。
- IOPSは1秒当たりのアクセス回数。
- SDカードの場合1アクセス4kbyte想定。
- A2はA1の4倍の性能。
- コマンド・キューとキャッシュを無効条件でA1サポート義務あり。
バックナンバーはこちら。
コメント