プロセッサの命令実行と性能
プロセッサの性能は、プログラムの処理にかかる時間の短さで評価する。処理時間は命令数、1命令当たりのクロックサイクル数(CPI)、クロック周期の積で決まり、パイプラインや投機実行といった高速化技法は、この積のいずれかの項を実質的に縮める仕組みとして捉えると理解しやすい。本単元では、性能を式で比較する考え方と、並列化による効果の見積もり方を中心に扱う。
性能の基本式と比較の考え方
同じプログラムの処理時間は、命令数×CPI×クロック周期で求められる。二つのコンピュータが同じ命令セットをもち、同じプログラムを実行する場合は命令数が等しいため、比較は1命令当たりの実行時間、すなわちCPIとクロック周期の積で行える。たとえば、CPIが4.0で周期が1nsのコンピュータは1命令当たり4nsを要し、CPIが0.5で周期が4nsのコンピュータは1命令当たり2nsで済む。この場合、前者の処理時間は後者の2倍になる。 このように、クロック周期が長くても平均CPIが小さければ速いことがあるため、周期の長短だけで性能を判断してはならない。
CPIとMIPSによる性能指標
CPIは、命令の実行に要したクロックサイクル数を命令数で割った平均値である。動作周波数が定まっているプロセッサでは、一定時間に供給されるサイクル数が上限となるため、CPIと命令数の関係から、その時間内に実行できる命令数を見積もることができる。たとえば1.25GHzのCPUが1秒間に10億回の命令を実行する場合、1秒間のサイクル数は12.5億であり、平均CPIは1.25となる。 命令数の多さだけで性能を判断せず、サイクル数と照らし合わせて検討することが、この種の問題の基本的な考え方である。
MIPSは、1秒間に実行できる命令数を百万単位で表す性能指標である。平均命令実行時間をマイクロ秒単位で表し、その逆数をとって求める。命令の実行時間と出現頻度がわかっている場合は、各命令の時間に出現割合を掛けて加重平均を求め、その値を単位換算してから逆数をとる。その結果、平均命令実行時間が25ナノ秒(0.025マイクロ秒)であれば、MIPSは40となる。 単位の換算を誤ると桁が1000倍ずれるため、ナノ秒とマイクロ秒の変換を最初に確認することが重要である。
パイプラインの処理時間
パイプラインは、一つの命令の処理を複数のステージに分け、異なる命令のステージを同時に進める方式である。深さDのパイプラインで、各ステージが1ピッチで処理され、ハザードを考えない場合、I個の命令の処理時間は次のように求められる。最初の命令が完了するまでにDピッチかかり、その後の残りI−1個の命令は1ピッチごとに完了していく。したがって合計は(I+D−1)ピッチとなり、ピッチの長さをP秒とすれば(I+D−1)×P秒である。 同じ形の問題は、別の回の出題でも取り上げられている。
この節の続き
- 分岐予測と投機実行
- 並列化の効果と試験での区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む