マナビング基本情報技術者

MIPSは平均命令実行時間からどう求めるのか

基本情報技術者試験 平成29年度秋期 午前 問9 / コンピュータ構成要素 › プロセッサ

過去問にチャレンジ

平成29年度秋期 午前 問9

平均命令実行時間が20ナノ秒のコンピュータがある。このコンピュータの性能は何MIPSか。

  1. ア

    5

  2. イ

    10

  3. ウ

    20

  4. エ

    50

会話形式の解説

講師講師
今回は、1命令にかかる平均の時間から、コンピュータの性能をMIPSで表す計算問題です。MIPSは「1秒間に実行できる命令数を百万単位で表した値」です。ポイントは単位の換算になります。
受験者受験者
計算問題は時間がかかりがちです。20ナノ秒と書いてあるので、選択肢の20MIPSが目に入ってしまいました。
講師講師
数字が同じなので選びたくなりますが、時間と性能は逆の関係です。1命令にかかる時間が短いほど、1秒間にこなせる命令は多くなります。では、1秒間に何命令実行できるかを先に出してみましょう。
受験者受験者
1秒を1命令の時間で割ればよいのですね。1ナノ秒は10−910^{-9}秒なので、1秒÷(20×10−920 \times 10^{-9}秒)です。
講師講師
そうです。計算するとどうなりますか。
受験者受験者
1÷20は0.05で、それに10910^{9}を掛けるので5×1075 \times 10^{7}、つまり毎秒5,000万命令です。百万、10610^{6}で割ると50になるので、50MIPSだと思います。
講師講師
正解です。念のため逆向きに検算しましょう。50MIPSは毎秒5,000万命令なので、1命令あたり1秒÷(50×106)=20×10−9(50 \times 10^{6}) = 20 \times 10^{-9}秒、つまり20ナノ秒で、問題文と一致します。
受験者受験者
同じやり方で、20MIPSのほうも確かめてみます。毎秒2,000万命令なので、1命令は1秒÷(2×107)(2 \times 10^{7})で50ナノ秒です。20ナノ秒とは合いませんね。
講師講師
そのとおりです。残りの2つも同じように確かめられます。10MIPSは毎秒1,000万命令なので1命令100ナノ秒、5MIPSは毎秒500万命令なので1命令200ナノ秒です。200ナノ秒は20ナノ秒の10倍の時間がかかる計算なので、遅すぎて条件に合いません。
受験者受験者
選択肢の値が小さいほど1命令の時間が長くなるのですね。時間の逆数をとると、1秒あたりの命令数になると理解しました。
講師講師
それで合っています。試験で速く解くための近道もあります。1秒は10億ナノ秒なので、平均命令実行時間をナノ秒で表したとき、1000をその値で割るとMIPS値になります。今回なら1000÷20=50です。
受験者受験者
逆に、MIPS値から平均命令実行時間を求める問題でも使えますか。
講師講師
使えます。1000をMIPS値で割れば、ナノ秒単位の時間が出ます。なお、MIPSは命令の種類や1命令あたりのクロック数で実際の性能が変わるため、構成の異なるコンピュータどうしの比較にはあまり向かない指標です。この点も覚えておくと役に立ちます。

まとめ

MIPSは1秒間に実行できる命令数を百万単位で表した性能指標で、平均命令実行時間の逆数から求めます。平均命令実行時間が20ナノ秒なら、1秒÷(20×10−920 \times 10^{-9}秒)=5×10710^{7}命令、つまり毎秒5,000万命令で、百万で割ると50MIPSになります。時間と性能は逆の関係なので、問題文と同じ数字の「20」を選ぶのは誤りです。ナノ秒で表した時間で1000を割ればMIPS値が出るという近道は、MIPS値から時間を求める逆の問題にも使えます。

解答・解説

正解はエです

この問題のテーマ

平均命令実行時間(1命令にかかる平均時間)をもとに、1秒間に何百万命令を実行できるかを表すMIPS値を求める計算問題です。

解き方の考え方

MIPSは「1秒間に実行できる命令数を百万単位で表した値」なので、まず1秒間に実行できる命令数を出します。1命令に20ナノ秒かかるので、1秒をこの時間で割ります。式は 1秒 ÷(20×10−920 \times 10^{-9}秒)= 5×1075 \times 10^{7}命令、つまり毎秒5,000万命令です。これを百万(10610^{6})で割ると 5×107÷106=505 \times 10^{7} \div 10^{6} = 50 となり、50MIPSです。検算として、50MIPSなら1命令あたり 1秒 ÷(50×10650 \times 10^{6})= 20×10−920 \times 10^{-9}秒=20ナノ秒となり、問題文の条件と一致します。

選択肢ごとの解説

  1. ×ア  5
    5MIPSは毎秒500万命令なので、1命令あたりの時間は1秒÷(5×106)=200(5 \times 10^{6}) = 200ナノ秒になります。問題文の20ナノ秒とは10倍ずれているため、条件に合いません。
  2. ×イ  10
    10MIPSは毎秒1,000万命令なので、平均命令実行時間は1秒÷107=10010^{7} = 100ナノ秒になります。20ナノ秒という条件とは合わないため、誤りです。
  3. ×ウ  20
    20MIPSの値は、問題文の「20ナノ秒」と数字が同じです。しかし20MIPSは毎秒2,000万命令なので、1命令は1秒÷(2×107)=50(2 \times 10^{7}) = 50ナノ秒になります。20ナノ秒とは一致しないため、誤りです。
  4. ○エ  50
    1命令20ナノ秒のとき、1秒間に実行できる命令数は5,000万命令です。百万単位に直すと50なので、性能は50MIPSです。

補足

逆の問題として、MIPS値から平均命令実行時間を求める出題もあります。この場合も、1000をMIPS値で割ればナノ秒単位の時間が出ます。なお、MIPSは命令の種類や1命令あたりのクロック数で実際の性能が変わるため、構成の異なるコンピュータどうしの比較にはあまり向きません。

POINT

  • MIPSは、1秒間に実行できる命令数を百万単位で表した性能指標です。
  • 平均命令実行時間の逆数をとると、1秒あたりの命令数になります。
  • 1ナノ秒は10−910^{-9}秒、つまり1秒は10億ナノ秒です。
  • 平均命令実行時間をナノ秒で表した場合は、1000をその値で割るとMIPS値になります(1000÷20=50)。

※出典:平成29年度秋期 基本情報技術者試験 午前 問9