【ぱいぷらいんしょり】

パイプライン処理(CPU) とは?

最終更新:
💡 工場のベルトコンベアのように命令を流れ作業で処理する仕組み。

CPUの命令実行を段階に分け、異なる命令を別々の段階で同時に処理する仕組み。命令1個の処理時間を短くすることとは別に、一定時間で処理できる命令数を増やすことを狙う。

📌 このページのポイント
異なる命令の段階を重ねる 4段階に単純化・停止なしの仮の例 t1 t2 t3 t4 t5 t6 命令1 取得 解読 実行 書戻 命令2 取得 解読 実行 書戻 命令3 取得 解読 実行 書戻 時間の流れ → 命令1個は、この例では4サイクル 流れが埋まると、毎サイクル1個完了
書戻は書き戻し。4段階・各1サイクルの仮例で、実際の段階数や停止・処理幅はCPUにより異なる。
ひよこ ひよこ
CPUで命令を流れ作業にするってどういうこと?
ペンギン先生 ペンギン先生
命令の処理を、取得・解読・実行・書き戻しなどに分けるんだ。命令Aの解読中に命令Bを取得するように、異なる命令を別の段階で同時に処理するよ。段階の数や役割はCPUによって違うんだ。
ひよこ ひよこ
命令1個がすぐ終わるようになる?
ペンギン先生 ペンギン先生
狙いは、一定時間に処理できる命令数を増やすことだよ。1個の命令は各段階を通る必要があるので、最初から最後までの時間が必ず短くなるわけではないんだ。
ひよこ ひよこ
ずっと詰まらずに流せる?
ペンギン先生 ペンギン先生
前の命令の計算結果を次の命令が必要とすると、データハザードが起こり得るよ。分岐先がまだ決まらない制御ハザードもあるんだ。ハザードは分岐予測の失敗だけを指す言葉ではないよ。
ひよこ ひよこ
詰まりにはどう対処するの?
ペンギン先生 ペンギン先生
必要な結果を待って一部を止めるストールや、書き戻し前の結果を必要な場所へ渡すフォワーディングがあるよ。分岐先を予測して進める方法もあるけれど、外れたら不要な処理を破棄して正しい経路へ戻す必要があるね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「パイプライン処理」って出てきたら「命令の段階を重ねて流れ作業にし、処理量を増やす仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Pipeline Processing」 = パイプライン処理
💬 Pipelineは管路という意味。命令がいくつかの処理段階を順に通る様子を、流れ作業にたとえるとイメージしやすいよ。

参考資料

← 用語集にもどる