CPUのパイプライン

最終更新日 2023年09月07日

CPUのパイプラインとは

基礎

CPUのパイプラインとは、命令の特定の処理を専門に行うユニットを複数並べ、流れ作業のように各ユニットが専門の処理を行い終わったら次の命令の専門の処理を行い、各ユニットの待機時間をなくして性能を向上させることです。

命令の処理は、命令を読み込む(フェッチ)、命令を解釈する(デコード)、命令を実行する(エグゼキューション)、命令の実行結果を書き込む(ライトバック)に分類できます。

実際に1秒もかからないが、各処理に1秒かかるとします。もし1つのユニットが全ての処理を行う場合、4秒かかります。各処理を専門に行うユニットを用意し、各ユニットが専門の処理を行う場合でも4秒かかります。それでも各ユニットが専門の処理を行い終わったら、次の命令の専門の処理を行えるため、連続した複数の命令の処理にかかる時間が短くなります。

ただし、先行する命令の実行結果に依存する命令等もあるため、パイプラインにより性能の向上ができない場合もあります。それでもパイプラインにより性能が向上できる場合が多いので、パイプラインを採用しているCPUの性能が高いです。

パイプラインを図式化

下図を利用してパイプラインの様子を解説します。

  1クロック 2クロック 3クロック 4クロック 5クロック
命令1 読込 解読 実行 書込 -
命令2 - 読込 解読 実行 書込
命令3 - - 読込 解読 実行
命令4 - - - 読込 解読

命令の読込、命令の解読、命令の実行、命令の実行結果の書込、それぞれ処理にかかる時間が1クロックとします。1クロック目で命令1を読込ます。2クロック目で命令1を解読し、命令2を読込ます。3クロック目で命令1を実行し、命令2を解読し、命令3を読込ます。このように分担して流れ作業のように次々に処理していけば、単位時間当たりに処理できる命令数が多くなります。

パイプラインとスーパースカラーの組み合わせ

パイプラインに対応するCPUでは、スーパースカラーにも対応しています。スーパースカラーとは、複数のパイプラインを設け、複数の命令を並行処理する方式です。スーパースケーラーと呼ぶ場合もあります。パイプラインとスーパースカラーの組み合わせにより、さらにCPUの性能が向上します。

CPUのパイプライン本数

パイプライン本数が多すぎると無駄

パイプラインの本数が多いほど性能が高いです。しかし、パイプラインの本数が多すぎると使用しない場合が多くなるため、多すぎない本数がよいです。

パイプライン本数を抑えたCPU

例えば、AMDのマイクロアーキテクチャーのBulldozerでは、整数演算ユニットに整数演算パイプラインが2本、ロード/ストアパイプラインが2本あります。先代のK10と比べると、それぞれ1本減りました。それぞれのパイプライン3本全てを使用する場合が少ないため2本ずつになりました。Bulldozerでは整数演算ユニットのパイプラインを減らし、その分の回路の場所を使用して整数演算ユニットを増やしており性能を高めています。

出典

パイプライン - 意味・説明・解説 : ASCII.jpデジタル用語辞典(2008/10/07更新記事)
パイプライン(pipeline) 鈴木直美の「PC Watch先週のキーワード」(1998/10/21公開記事)
Part3 CPUを高速に動作させるための技術 | 日経クロステック(xTECH)(2007/08/28公開記事)
性能の効率を追求したBulldozerのアーキテクチャー(3ページ目) | 日経クロステック(xTECH)(2010/04/02公開記事)


キャンペーン情報(PR)
マウスコンピューター
・ゴールデンウィークセール
最大30,000円OFF!!
(5月8日迄)
DELL
・ゴールデンウイーク
GWはお得がいっぱい
(キャンペーン実施中)
パソコン工房
・ゴールデンウィークセール
ゲーミングPCやクリエイター向けパソコンをラインナップ
(5月7日迄)

CPUのパイプライン



デル株式会社