計算問題の解き方・4/20
MIPS(1秒間の命令数)と処理能力の求め方
平均命令実行時間、クロック周波数と命令ごとのクロック数・出現率、命令ミックスの実行時間表のどれかが与えられ、MIPS 値、1命令の時間、処理時間、トランザクションの処理件数を求めます。どの問題も「1命令の平均時間(または平均クロック数)を出し、1秒で何命令実行できるかに直す」という同じ流れで解けます。
公開過去問での出題:本試験系 11 回・免除試験 35 回(観測値)
覚える式
- 平均命令実行時間 = Σ(命令ごとの実行時間 × 出現率)
- 平均クロック数(CPI) = Σ(命令ごとのクロック数 × 出現率)
- 1秒間の命令数 = 1秒 ÷ 平均命令実行時間 = クロック周波数(Hz) ÷ 平均クロック数
- MIPS = 1秒間の命令数 ÷ 10^6
- 処理能力(件/秒) = MIPS × 10^6 × 使用率 ÷ 1件当たりの命令数
解き方の手順
- 問題が何を与えているかを確かめます。平均命令実行時間か、クロック周波数とクロック数か、命令ミックスの表か、トランザクションの命令数と使用率かを見分けます。
- 表がある場合は、命令ごとの値(時間またはクロック数)に出現率を掛けて足し、加重平均を出します。出現率は % を小数(30% → 0.3)にしてから掛けます。
- 1秒間の命令数を出します。時間なら「1秒 ÷ 平均時間」、クロックなら「周波数 ÷ 平均クロック数」です。ナノ秒は 10^-9、マイクロ秒は 10^-6、MHz は 10^6、GHz は 10^9 に直して計算します。
- 1秒間の命令数を 10^6 で割ると MIPS になります。周波数を MHz のまま平均クロック数で割れば、その数値がそのまま MIPS です。
- 処理件数を聞かれたら、MIPS に使用率を掛けて実効の命令数を出し、1件当たりの命令数で割ります。逆に1件当たりの命令数の上限を聞かれたら、実効の命令数を1秒当たりの件数で割ります。
- 最後に、答えの単位(MIPS・ナノ秒・ミリ秒・万命令・万個・件/秒)に合わせて桁を直してから選択肢と照らします。
例題
動作クロック周波数が 700MHz の CPU で,命令実行に必要なクロック数及びその命令の出現率が表に示す値である場合,この CPU の性能は約何 MIPS か。
| 命令の種別 | 命令実行に必要なクロック数 | 出現率(%) |
|---|---|---|
| レジスタ間演算 | 4 | 30 |
| メモリ・レジスタ間演算 | 8 | 60 |
| 無条件分岐 | 10 | 10 |
ア 10
イ 50
ウ 70
エ 100
出典:平成30年度 秋期 基本情報技術者試験 午前 問9(解き方は当サイト作成)
解き方と答えを見る
- 与えられているのは、クロック周波数 700MHz と、命令ごとのクロック数・出現率の表です。
- 平均クロック数 = 4×0.3 + 8×0.6 + 10×0.1 = 1.2 + 4.8 + 1.0 = 7 クロック
- 1秒間の命令数 = 700×10^6 クロック ÷ 7 クロック = 100×10^6 命令
- MIPS = 100×10^6 ÷ 10^6 = 100 MIPS(700MHz ÷ 7 = 100 と MHz のまま計算しても同じです)
答え:約100MIPS(エ)
ひっかけ
- 出現率を使わずにクロック数を単純平均する誤りです。例題なら (4+8+10)÷3 ≒ 7.3 となり、正しい平均の 7 とずれます。出現率が偏っている表ほど差が大きくなるので、必ず「値 × 出現率」を足して加重平均を出します。
- 10^6 や 10^-9 の処理で桁を1つずらす誤りです。例題の選択肢には 10 や 70 のように桁や割り算を取り違えると出る値が並んでいます。単位を指数に直して書き出し、MHz ÷ クロック数 = MIPS のような形で確かめます。
- 答えの単位を読み違える誤りです。「何万命令」「何ミリ秒」「何万個」と聞かれたら、命令数や秒をその単位に直してから選択肢を見ます。たとえば 1.25×10^9 命令は 125,000 万命令です。
- 使用率で割ってしまう誤りです。使用率は CPU のうち実際に使える割合なので、性能に掛けて小さくします。割ると実効の性能が元より大きくなってしまいます。掛けた後の実効 MIPS が元の MIPS より小さくなっているかで確認します。
類題(手順を使って解く)
類題 1
表がクロック数ではなく実行時間(ナノ秒)なので、加重平均で平均命令実行時間を出し、1秒をそれで割って MIPS に直す手順が試されます。
表に示す命令ミックスから求められるコンピュータの処理性能は何 MIPS か。
| 命令種別 | 実行速度(ナノ秒) | 出現頻度(%) |
|---|---|---|
| 整数演算命令 | 10 | 50 |
| 移動命令 | 40 | 30 |
| 分岐命令 | 40 | 20 |
出典:基本情報技術者試験 科目A免除 修了試験 20220724 実施分 問11(問題文は IPA の公開問題。答えと解説はリンク先)
類題 2
表は無く平均命令実行時間だけが与えられるので、ナノ秒を秒に直して「1秒 ÷ 平均時間 ÷ 10^6」で MIPS にする桁の処理が試されます。
平均命令実行時間が 20 ナノ秒のコンピュータがある。このコンピュータの性能は何 MIPS か。
出典:平成29年度 秋期 基本情報技術者試験 午前 問9(問題文は IPA の公開問題。答えと解説はリンク先)
類題 3
MIPS に使用率を掛けて実効の命令数を出し、1件当たりの命令数で割って処理件数にする手順が試されます。
1 件のトランザクションについて 80 万ステップの命令実行を必要とするシステムがある。プロセッサの性能が 200 MIPS で,プロセッサの使用率が 80%のときのトランザクションの処理能力(件/秒)は幾らか。
出典:平成25年度 秋期 基本情報技術者試験 午前 問9(問題文は IPA の公開問題。答えと解説はリンク先)