MIPSは平均命令実行時間からどう求めるのか
基本情報技術者試験 平成29年度秋期 午前 問9 / コンピュータ構成要素 › プロセッサ
過去問にチャレンジ
平均命令実行時間が20ナノ秒のコンピュータがある。このコンピュータの性能は何MIPSか。
- ア
5
- イ
10
- ウ
20
- エ
50
会話形式の解説
講師今回は、1命令にかかる平均の時間から、コンピュータの性能をMIPSで表す計算問題です。MIPSは「1秒間に実行できる命令数を百万単位で表した値」です。ポイントは単位の換算になります。
受験者計算問題は時間がかかりがちです。20ナノ秒と書いてあるので、選択肢の20MIPSが目に入ってしまいました。
講師数字が同じなので選びたくなりますが、時間と性能は逆の関係です。1命令にかかる時間が短いほど、1秒間にこなせる命令は多くなります。では、1秒間に何命令実行できるかを先に出してみましょう。
受験者1秒を1命令の時間で割ればよいのですね。1ナノ秒は秒なので、1秒÷(秒)です。
講師そうです。計算するとどうなりますか。
受験者1÷20は0.05で、それにを掛けるので、つまり毎秒5,000万命令です。百万、で割ると50になるので、50MIPSだと思います。
講師正解です。念のため逆向きに検算しましょう。50MIPSは毎秒5,000万命令なので、1命令あたり1秒÷秒、つまり20ナノ秒で、問題文と一致します。
受験者同じやり方で、20MIPSのほうも確かめてみます。毎秒2,000万命令なので、1命令は1秒÷で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秒÷(秒)=5×命令、つまり毎秒5,000万命令で、百万で割ると50MIPSになります。時間と性能は逆の関係なので、問題文と同じ数字の「20」を選ぶのは誤りです。ナノ秒で表した時間で1000を割ればMIPS値が出るという近道は、MIPS値から時間を求める逆の問題にも使えます。
解答・解説
正解はエです
この問題のテーマ
平均命令実行時間(1命令にかかる平均時間)をもとに、1秒間に何百万命令を実行できるかを表すMIPS値を求める計算問題です。
解き方の考え方
MIPSは「1秒間に実行できる命令数を百万単位で表した値」なので、まず1秒間に実行できる命令数を出します。1命令に20ナノ秒かかるので、1秒をこの時間で割ります。式は 1秒 ÷(秒)= 命令、つまり毎秒5,000万命令です。これを百万()で割ると となり、50MIPSです。検算として、50MIPSなら1命令あたり 1秒 ÷()= 秒=20ナノ秒となり、問題文の条件と一致します。
選択肢ごとの解説
- ×ア 55MIPSは毎秒500万命令なので、1命令あたりの時間は1秒÷ナノ秒になります。問題文の20ナノ秒とは10倍ずれているため、条件に合いません。
- ×イ 1010MIPSは毎秒1,000万命令なので、平均命令実行時間は1秒÷ナノ秒になります。20ナノ秒という条件とは合わないため、誤りです。
- ×ウ 2020MIPSの値は、問題文の「20ナノ秒」と数字が同じです。しかし20MIPSは毎秒2,000万命令なので、1命令は1秒÷ナノ秒になります。20ナノ秒とは一致しないため、誤りです。
- ○エ 501命令20ナノ秒のとき、1秒間に実行できる命令数は5,000万命令です。百万単位に直すと50なので、性能は50MIPSです。
補足
逆の問題として、MIPS値から平均命令実行時間を求める出題もあります。この場合も、1000をMIPS値で割ればナノ秒単位の時間が出ます。なお、MIPSは命令の種類や1命令あたりのクロック数で実際の性能が変わるため、構成の異なるコンピュータどうしの比較にはあまり向きません。
POINT
- MIPSは、1秒間に実行できる命令数を百万単位で表した性能指標です。
- 平均命令実行時間の逆数をとると、1秒あたりの命令数になります。
- 1ナノ秒は秒、つまり1秒は10億ナノ秒です。
- 平均命令実行時間をナノ秒で表した場合は、1000をその値で割るとMIPS値になります(1000÷20=50)。
