基本情報の計算:MIPS
過去問道場をやっていて何回も何回も何回も何回も計算問題が出来なくて、そろそろムカついてきたから、解き方をここに書いておいてやる。
これで次からわかんない時はここみる。
平成20年春期午前問19
クロック周波数が1GHzのCPUがある。このCPUの命令種別が、表に示す二つからなっている時、処理能力は約何MIPSか。
命令1 実行時間 1秒間に10クロック 出現頻度60%
命令2 実行時間 1秒間に5クロック 出現頻度40%
用語
クロック:
クロック信号とは、複数の電子回路が信号を送受信するタイミングを揃えるために、規則正しく刻まれる電気信号のこと。
クロック周波数:
クロック周波数とは、CPUの性能を表すための指標値の一つで、クロックが一秒間に繰り返される回数のこと。Hz(ヘルツ)という単位で表現する。
GHz:クロック周波数の単位はHzだが計算ではMHz、GHzがよく利用される。
CPU:周辺機器やソフトウェアからくる指示を処理したり、メモリなどを制御したりする装置。
MIPS:1秒間に実行できる百万単位の命令数。
解く
しばらく考えたが分からない。
自分の考えとして、MIPSを出したいということは秒単位の命令数を出せばいいから、全体の命令数と全体の時間(秒)が分かれば解ける。
でも
・全体って何?
・クロック周波数ってどう使うの?
・命令の回数とクロック周波数はどう関係してるの?
分からないことが多くてどうとけばいいか分からない。
答えを見てみる。
MIPS(million instructions per second,ミップス)は、1秒間の命令実行回数を百万単位で表すCPU性能の単位です。
→ここまでは分かる
2MIPSであれば1秒間に200万回の命令を実行できるという意味になります。
→わかる
(つまりこのふたつの命令は1秒に何回実行できるかを求めるんだな)
(全体って何?の答え、全体は1秒の回数。つまり、1秒あたりのクロック数=クロック周波数)
1秒って細かいイメージだから、1秒が全体になるイメージがなかったけど、CPUは1秒が全体になるくらいめちゃくちゃ早く沢山命令を実行できるってことなんだな。
まず2種類の命令を実行するのに必要なクロック数とその出現頻度を重みづけして1命令あたりの平均クロック数を求めます。 10×0.6+5×0.4=8クロック
→何となくこの計算はするだろうと思ってた。1秒のクロック数÷1命令あたりのクロック数をしたいから、ここで1命令あたりのクロック数がわかる。
後はCPUのクロック周波数をこの平均クロック数で割れば、1秒あたりに実行可能な命令数が計算できます。
1,000,000,000÷8=125,000,000回
MIPSは命令実行回数を百万単位で表したものなので、このCPUは125MIPSの処理能力をもっていることがわかります。
→1秒のクロック数は問題に出てたから、1命令あたりのクロック数が分かればMIPSが分かるんだ!忘れちゃいけないのは、MIPSはmillionだから、答えは125ってこと。
なるほど、理解出来ました。
MIPSは、CPUの能力の指標で、1秒になん命令こなせるか=1秒のクロック回数÷1命令あたりのクロック回数。
関連問題を、昼休みにやってみよう。
理解出来ても、定期的にやらないとMIPSの意味忘れるからね!!!
追記
この問題でよく忘れること
bt×1024=kb
kb×1024=mb
mb×1024=gb
1MIPS=10の6乗(100万単位)で表されるから、計算結果から0を6個消す(7個消したらだめ!)