CPUの指標
CPI
CPUの能力を測る指標としてCPIという指標があります。
これは、
・Clock(Cycle) Per Instruction
の略で、命令を実行するのにどれだけクロックが必要なのかを意味しています。
これだけだと分かり辛いので、まずはCPIを理解するために必要なことから説明します。
クロック数
パソコンの広告で「〇〇プロセッサー3GHz搭載!」とかよく見るのではないでしょうか。
この「3GHz」がクロック数ですが、どのようにイメージしていますか?
クロックという言葉自体には様々な意味がありますが、CPUのクロックという場合、
CPUを動かすために必要な電気信号と考えてください。
正体は高速にオン、オフを繰り返す電気信号です。(3GHzなので1秒間に30億回)
CPUはプログラムを動かす時に、このオン、オフをベースにして処理を行います。
ここで言うプログラムとは、「命令」の集合体です。命令とは加算とか減算等、CPUが実行できる最小単位です。
加算を3回行うプログラムを例にすると、
最初のオンで1回目の加算、次のオンで2回目の加算、次のオンで3回目の加算を行います。
メトロノーム(クロック)に合わせて人(CPU)が楽譜(プログラム)をピアノ演奏(実行)するイメージが近いでしょうか。
同じ設計のCPUであれば、高クロックなほど命令をたくさん実行できるわけです。
命令あたりのクロック
前項では、1クロックで1加算を行う例を書きました。
しかし、CPUが実行できる命令は他にもたくさんの種類があり、同じように実行は出来ません。
例えば、加算の様な簡単な命令(CPUにとって)は1クロックで完了しますが、
複雑な命令は処理によって数クロックから数十クロック以上かかります。
必要なクロックが少ない命令は短時間で、必要なクロック数が多い命令は時間がかかるわけです。
CPIの計算
本題に戻ります。
CPIは、最初に書いた通り「命令を実行するためのクロック数」です。
言い換えれば、CPIが少ないほど時間内に沢山の命令が実行でき、パフォーマンスが高いということです。
先ほど命令によって必要なクロック数が違うと書きました。実用的なCPIを求めるためには
偏った命令だけを並べて計測しても意味がないので、現実的なプログラムを動かして、
その実行時間とCPUクロックから平均的なCPIを求めます。
CPI = (時間 × クロック周波数) ÷ 命令数
例(簡単にするため極端にしています)
命令数 500個
実行時間 8秒
クロック 1000Hz
CPI = (8 × 1000) ÷ 500
CPI = 16
このCPUは1命令あたり、16クロックが必要ということです。
情報処理試験では午前に出題されることが多いCPIですが、理解の助けになったでしょうか。
実際の試験では、例のような簡単な計算であることは少なく、
時間の単位がナノ秒だったり、命令数の内訳が指定されている場合が多いので、
そのまま計算できるか限りませんが、考え方は変わりません。
多くの皆さんが合格できるようにお祈りしております。
それでは、頑張ってください。