【ぱいぷらいんあーきてくちゃ】

パイプラインアーキテクチャ とは?

最終更新:
💡 命令の処理を重ねて進める流れ作業

CPUの命令処理を複数の段階に分け、異なる命令の各段階を重ねて進める仕組み。単位時間に処理できる命令数を増やす狙いがあり、1命令の所要時間を短くするとは限らない。

📌 このページのポイント
命令の処理を重ねる5段階モデル 各段階1クロック・待機なしの例取得解読実行メモリ書戻しT1AT2BAT3CBAT4CBAT5CBAT6CBT7CA → B → C の順に処理が進むAはT5、BはT6、CはT7で完了1命令の所要時間は5クロック
色は命令A・B・Cの区別。各段階1クロックで待機しない例。最初の命令は5クロック目に完了し、その後は毎クロック1命令が完了する。段階数と待機はCPUや命令で異なる。
ひよこ ひよこ
CPUでも流れ作業をするの?
ペンギン先生 ペンギン先生
そうだよ。命令Aを解読している間に命令Bを取得する、というように違う命令の処理を重ねるんだ。同じ命令を全部同時に処理するのではなく、それぞれが順に次の段階へ進むよ。
ひよこ ひよこ
どんな段階に分けるの?
ペンギン先生 ペンギン先生
説明によく使う5段階のモデルでは、命令の取得、解読、実行、メモリアクセス、結果の書き戻しだよ。すべてのCPUが5段階とは限らず、メモリを使わない命令もある。図は分担の仕組みを示す単純化した例なんだ。
ひよこ ひよこ
1命令が1クロックで終わるということ?
ペンギン先生 ペンギン先生
違うよ。各段階に1クロックかかる5段階の例では、Aは5クロック目、次のBは6クロック目に完了する。待ち時間がなければ、その後も毎クロック1命令ずつ完了できる。1命令の所要時間と、単位時間の処理量を区別しよう。
ひよこ ひよこ
途中で待つこともある?
ペンギン先生 ペンギン先生
あるよ。たとえばAの計算結果をBが必要とする場合、結果が間に合わなければ待つ必要がある。これがデータハザードの例で、結果を途中の段階から渡すフォワーディングで解消できる場合もあるんだ。
ひよこ ひよこ
分岐があるとどうなるの?
ペンギン先生 ペンギン先生
次に処理する命令が分岐結果で変わるので、先に進めた処理が不要になることがある。これは制御ハザードだよ。分岐予測などで対処する設計もあるけれど、外れた場合のやり直しや待機があるため、常に毎クロック同じ数が完了するわけではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「パイプラインアーキテクチャ」って出てきたら「命令処理を流れ作業で分担して高速化する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Pipeline Architecture」 = パイプライン構成
💬 Pipelineは配管を表す言葉。処理を段階に分け、次へ次へと流していくイメージで捉えると分かりやすいよ。

参考資料

← 用語集にもどる