プロセッサの性能と高速化
プロセッサの性能は、実行する命令数、1命令あたりのクロックサイクル数(CPI)、クロック周期の積で決まる実行時間によって評価される。高速化の技法には、複数の命令を同時に実行する方式、分岐の結果を待たずに先へ進む方式、命令をまとめて並列実行する方式などがある。本単元では、性能指標の計算、並列実行の方式、分岐の扱い、命令の取り出しに関わる構成要素の役割を整理する。
性能指標と実行時間の計算
CPIは1命令の実行に要するクロックサイクル数の平均であり、クロックサイクル数を命令数で割って求める。したがって、命令数、CPI、クロック周期の3つを掛け合わせると実行時間が得られる。動作周波数が1.25 GHzのCPUは1秒間に12.5億サイクルを供給するため、1秒間に10億命令を実行するときの平均CPIは12.5億サイクルを10億命令で割った値になる。
同じ命令セットで同じプログラムを実行する場合、命令数は両方のコンピュータで等しい。このため処理時間の比は、CPIとクロック周期の積の比で決まる。CPUクロック周期だけで比較すると誤るため、CPIも含めて1命令あたりの時間を求めることが求められる。
命令の種類ごとにCPIが異なる場合は、構成比率で重み付けした平均CPIを用いる。平均CPIに命令数を掛けて必要なサイクル数を求め、それをクロック周波数で割ると実行時間が得られる。この手順は、3種類の演算命令からなるプログラムの実行時間を求める問題で用いられる。
実務では、実機の動作周波数や想定されるCPIから処理時間を見積もる場面がある。ここでも、命令数、CPI、周波数の単位を揃えて計算することが誤りを防ぐ基本となる。
並列実行による高速化の方式
スーパスカラは、一つのプロセッサコアの中で互いに依存しない複数の命令を、複数の演算器へ振り分けて同時に実行する方式である。複数のコアを搭載するマルチコアや、一つの命令を複数のデータに適用するSIMDとは仕組みが異なるため、区別が必要である。
この節の続き
- 分岐の予測と投機的な実行
- 命令の取り出しと構成要素の役割
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む