MIPS値の計算:出現率で重み付けした平均クロック数から求める
基本情報技術者試験 平成30年度秋期 午前 問9 / コンピュータ構成要素 › プロセッサ
過去問にチャレンジ
動作クロック周波数が700MHzのCPUで、命令実行に必要なクロック数及びその命令の出現率が表に示す値である場合、このCPUの性能は約何MIPSか。

- ア
10
- イ
50
- ウ
70
- エ
100
会話形式の解説
講師今回はCPUの性能をMIPSで求める計算問題です。MIPSは、1秒間に実行できる命令数を百万単位で表した指標です。表には命令の種類ごとにクロック数と出現率が並んでいるので、まず1命令あたり平均何クロックかかるかを出すのがポイントです。
受験者クロック数は4、8、10の3種類ですね。私は計算に時間がかかるので、これを足して3で割ればよいかと一瞬思いましたが、それで合っていますか。
講師そこが注意点です。出現率が命令ごとに違うので、単純な平均ではなく、出現率で重みを付けた平均を使います。命令ごとに「クロック数×出現率」を出して合計してみてください。
受験者レジスタ間演算が4×0.3で1.2、メモリ・レジスタ間演算が8×0.6で4.8、無条件分岐が10×0.1で1.0です。合計すると7クロックになりました。
講師正しいです。この1命令あたりの平均クロック数はCPIとも呼ばれます。次に、700MHzのCPUは1秒間に何回クロックを刻むでしょうか。
受験者回です。1命令に平均7クロックかかるので、で、1秒間に命令です。百万単位にすると100MIPSですね。
講師そのとおりです。MHzの数値をそのまま平均クロック数で割れば、MIPSの値が直接出ると覚えておくと速く解けます。検算もしておきましょう。命令に7クロックを掛けると、どうなりますか。
受験者クロックで、700MHzと一致します。逆に考えると、ほかの値になるには平均クロック数がいくつ必要か、という見方もできそうです。
講師よい視点です。10MIPSなら700÷10で平均70クロック、50MIPSなら700÷50で平均14クロックが必要です。どちらも表から求めた7クロックとは合いません。
受験者70MIPSは、700÷70で平均10クロックですね。10クロックは無条件分岐の値なので、それを全命令に当てはめたときの答えのように見えます。
講師そうですね。平均が10クロックになるのは、全命令が10クロックかかる場合に相当します。しかし無条件分岐の出現率は10%だけなので、出現率を反映した平均は7クロックです。表の一部の数値だけで判断しないことが大切です。
受験者流れとしては、クロック数×出現率の合計で平均を出し、MHzの数値をそれで割り、最後に掛け算で検算する、ということですね。
講師はい、その手順で確実に解けます。補足として、MIPS値は命令の種類と出現率によって変わります。命令の構成が異なるCPU同士をMIPS値だけで比べるときは注意が必要です。同じ形の問題は過去にも繰り返し出題されているとされるので、手順ごと身に付けておきましょう。
まとめ
この問題は、命令ごとのクロック数と出現率から1命令あたりの平均クロック数を求め、CPUの性能をMIPS値で答える計算問題です。平均クロック数は単純な平均ではなく、出現率で重み付けして4×0.3+8×0.6+10×0.1=7クロックと求めます。700MHzのCPUは1秒間に回クロックを刻むので、命令、つまり100MIPSとなります。命令×7クロック=クロックで検算でき、ほかの選択肢は平均クロック数が70、14、10の場合に相当するため条件に合いません。
解答・解説
正解はエです
この問題のテーマ
命令ごとのクロック数と出現率から1命令あたりの平均クロック数を求め、動作クロック周波数と組み合わせてCPUの性能をMIPS値で求める計算問題です。
解き方の考え方
まず、表の命令ごとに「必要なクロック数×出現率」を出し、合計して1命令あたりの平均クロック数を求めます。出現率が命令ごとに違うので、単純な平均ではなく出現率で重みを付けた平均を使います。平均クロック数は 4×0.3+8×0.6+10×0.1=1.2+4.8+1.0=7 クロックです。700MHzのCPUは1秒間に回クロックを刻むので、1秒間に実行できる命令数は 命令です。これを百万単位で表すと100MIPSになります。
選択肢ごとの解説
- ×ア 1010MIPSは、1秒間に実行できる命令が個という値です。700MHzでこの値になるには、1命令に平均70クロックかかる必要があります。表から求めた平均は7クロックなので、10MIPSにはなりません。
- ×イ 5050MIPSになるには、700÷50=14で、1命令あたり平均14クロックが必要です。出現率で重み付けした表の平均は7クロックなので、条件が合いません。
- ×ウ 7070MIPSになるには、700÷70=10で、すべての命令が平均10クロックかかる必要があります。表で10クロックかかるのは出現率10%の無条件分岐だけです。出現率を反映した平均は7クロックなので、70MIPSにはなりません。
- ○エ 100出現率で重み付けした平均クロック数は7です。700MHzをこの7で割ると100となり、毎秒命令、つまり100MIPSです。検算すると、命令×7クロック=クロックとなり、700MHzと一致します。
補足
MIPS値は命令の種類と出現率によって変わります。そのため、命令の構成が異なるCPU同士をMIPS値だけで比べるときは注意が必要です。なお、同じ問題は平成29年度秋期の問19、平成29年度春期の問8、応用情報技術者試験の平成22年度秋期の問9でも出題されているとされます。
POINT
- MIPSは、1秒間に実行できる命令数を百万単位で表した性能指標です。
- 1命令あたりの平均クロック数(CPI)は、命令ごとの「クロック数×出現率」を合計して求めます。
- MIPS値は、クロック周波数をMHz単位にした数値を平均クロック数で割れば求められます。
- 答えが出たら「命令数×平均クロック数=周波数」になるかを確かめると、計算ミスに気付けます。
