基本情報技術者(FE)対策
性能の計算
性能の計算は単位をそろえるだけ
性能の問題は、公式を覚えるというより、時間と回数の単位をそろえる作業です。ギガ、ミリ、ナノが混ざった状態で計算しようとすると桁を落とします。最初にすべて秒と個に直してから式を立てるのが型です。
出題は CPU の速度、記憶装置の実効アクセス時間、データの転送時間の 3 つに集まります。
クロックと CPI から命令の速度を出す
クロック周波数は 1 秒間に何回の拍を刻むかを表します。2 GHz なら 1 秒に 20 億回です。1 拍にかかる時間はその逆数で、1 / 2000000000 秒、つまり 0.5 ナノ秒です。
CPI は 1 命令の実行に必要な平均クロック数です。CPI が 4 なら、1 命令に 0.5 ナノ秒 × 4 で 2 ナノ秒かかります。1 秒は 10 億ナノ秒なので、1 秒間に実行できる命令数は 10 億 / 2 で 5 億命令です。
MIPS は 1 秒間に実行できる命令数を 100 万単位で表した指標なので、5 億命令は 500 MIPS になります。
命令ミックスは重み付き平均
実際の出題では、命令の種類ごとにクロック数と出現割合が表で与えられます。求めるのは平均 CPI で、割合を重みにした平均を取ります。
| 命令の種類 | 必要クロック数 | 出現割合 |
|---|---|---|
| 演算命令 | 2 | 60 パーセント |
| 分岐命令 | 5 | 40 パーセント |
平均 CPI は 2 × 0.6 + 5 × 0.4 で、1.2 + 2.0 = 3.2 クロックです。クロック周波数が 1.6 GHz なら 1 拍は 0.625 ナノ秒なので、1 命令は 3.2 × 0.625 で 2 ナノ秒、やはり 500 MIPS になります。
割合の合計が 1 になっているかを必ず確かめてください。表に 3 種類以上並んでいて合計が 1 にならない問題は、読み落としがあります。
実効アクセス時間もまた重み付き平均
キャッシュメモリは、よく使うデータを高速な記憶装置に置いておくしくみです。目的のデータがキャッシュにあることをヒット、なければミスヒットと呼びます。
平均してどれくらいの時間がかかるかは、ヒット率を重みにした平均で求めます。
実効アクセス時間 = ヒット率 x キャッシュのアクセス時間
+ (1 - ヒット率) x 主記憶のアクセス時間キャッシュが 10 ナノ秒、主記憶が 100 ナノ秒、ヒット率が 0.9 のときを計算します。0.9 × 10 = 9、0.1 × 100 = 10 で、合計 19 ナノ秒です。9 割がキャッシュで済んでいても、残り 1 割が全体の半分以上の時間を占めている点が読みどころです。ヒット率がわずかに下がるだけで実効アクセス時間が跳ね上がる、という出題につながります。
転送時間はデータ量を速度で割る
転送時間はデータ量を転送速度で割るだけですが、バイトとビットの取り違えが起きます。100 M バイトのデータを 200 M バイト毎秒で送るなら 0.5 秒です。同じデータを 200 M ビット毎秒の回線で送るなら、100 M バイトは 800 M ビットなので 4 秒かかり、8 倍違います。
問題文の速度が bps と書かれていたら、それはビット毎秒です。データ量がバイトで与えられていたら 8 倍してからそろえます。
応答時間の言葉の区別
ターンアラウンドタイムは、依頼を出してから結果がすべて返るまでの時間です。レスポンスタイムは、依頼を出してから最初の反応が返るまでの時間です。バッチ処理の評価にはターンアラウンドタイム、対話処理の評価にはレスポンスタイムを使う、という対応で問われます。