パイプライン
複数の命令をオーバーラップ実行し、高速化を図るCPUの仕組み。
- 命令を読み出す (命令フェッチ)
- 制御信号を生成し、レジスタを決定する (命令デコード)
- レジスタを参照し、命令を実行する (実行)
- メモリの読み書き (メモリアクセス)
- レジスタに書き込む (ライトバック)
ステージ毎に1クロックサイクル必要な為、5クロックサイクルで1命令を実行できる。
依存関係が無い場合は同時に命令を実行し、1命令を1クロックサイクルで実行できることもある。
クロック周波数の最大値は最長のステージに依存する為、ステージを分割すると改善できるが、1命令当たりのクロックサイクル数やシリコン面積、消費電力が増加する。
インオーダー実行とアウトオブオーダー実行
命令を順番通りに実行することをインオーダー実行、命令の順番を変えて実行することをアウトオブオーダー実行と呼ぶ。
アウトオブオーダー実行は性能を向上させるが、シリコン面積と消費電力が増加する。
シングルコアとマルチコア
シングルコアはパイプラインを増やし、クロック周波数を改善するが、消費電力の限界で行き詰まる。
マルチコアはCPUコアを増やし、少ない消費電力でスループットを向上させる。
キャッシュ
頻繁にアクセスするデータが保持され、メモリアクセスの回数を減らす。
メモリバスの要求値を下げ、コストと消費電力を減少させる。
16~256バイトのラインで構成され、ラインが指すアドレスをタグと呼ぶ。