プロセッサの性能と高速化
プロセッサの性能は、一つのプログラムの実行時間を、命令数、CPI(1命令当たりの平均クロックサイクル数)、クロック周期の積として捉えることで評価される。高速化の技法は、命令を並列に実行する方式、分岐による待ちを減らす方式、並列化の効果を見積もる考え方に分けて理解するとよい。以下では、それぞれの仕組みと判断の基準を順に述べる。
性能の評価式とCPI
プログラムの実行時間は、命令数にCPIを掛け、さらにクロック周期を掛けた値で求められる。同じ命令セットを持つ計算機で同じプログラムを実行すれば命令数は等しいため、二台の計算機の比較はCPIとクロック周期の積で行うことになる。CPIの値が小さいほど、同じクロック周期でより多くの命令を処理できる。
平均CPIは、クロックサイクル数を命令数で割った値として求められる。1秒間に実行できるクロックサイクル数と、1秒間に実行される命令数が分かれば、平均CPIを計算できる。この関係を理解していると、性能の数値から実行状況を逆算して判断できる。
並列実行による高速化
VLIW(超長命令語)方式では、コンパイラが同時に実行可能と判断した複数の動作を一つの長い命令語にまとめ、プロセッサはそれを並列に実行する。並列性の抽出をコンパイル時に行うため、プロセッサ側の制御を簡単にできる一方、並列化の効果はプログラムの性質とコンパイラの能力に依存する。
スーパスカラでは、一つのプロセッサコアの内部で、互いに依存しない命令を実行時にハードウェアが選び、複数の演算器へ振り分けて並列に実行する。複数のコアを搭載するマルチコアとは異なり、一つのコアの中で並列性を取り出す点が特徴である。
SIMD は、一つの命令で複数のデータに同じ演算を同時に適用する方式であり、同じ処理を大量のデータに繰り返す場面に適する。
この節の続き
- 分岐予測と投機実行
- 並列化の限界と性能向上の見積り
- 試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む