スポンサーリンク

【応用情報技術者試験】パイプライン処理

パイプライン処理は、処理をステージに分け、違う命令のステージを重ねることでスループットを高める仕組みです。工程図を読むと、なぜ全体の完了時間が短くなるかを説明しやすくなります。

この記事ではステージ・レイテンシ・停止の意味を整理します。公式に値を入れる計算練習は、最後の無料noteへ進めます。

1.ステージとは、分けられた処理の段階

CPUでは命令フェッチ・デコード・実行・メモリアクセス・書戻しなどの段階があります。段数や分割方法はCPUにより異なります。ここでは説明のため、取得・解読・実行・保存の4工程を使います。

4工程の3命令を重ね、停止がない場合に6クロックで完了する学習用モデル
4工程の3命令を重ね、停止がない場合に6クロックで完了する学習用モデル

2.1命令の時間と、全体の時間を分ける

工程を重ねない4工程のモデルなら3命令に12クロック必要です。図のように1クロックずつずらして開始し、停止なしで進めれば全体は6クロックになります。ただし1命令が通る工程は4つのままです。実際にはステージ間の制御などの追加時間もあります。

3.ハザードや工程時間の偏りを考える

前の命令の結果や分岐先を待ったり、同じ資源を取り合ったりすると、停止(ストール)が生じます。工程の時間が異なる場合も、単純に工程数だけで時間を決められません。

4.ほかの分野のパイプラインとは区別する

処理を段階に分ける考え方は、データ処理や機械学習などでも使われます。CPUの命令パイプラインの計算条件とは別に整理しましょう。またSMTPのPIPELININGは、サーバが対応を示した場合に複数コマンドを各応答待ちなしで送れる拡張で、CPUのステージ図と同じ仕組みではありません。

理解を確かめる確認問題

4工程の命令を重ねる図で全体の時間が短くなったら、1命令が通る工程数も減ったと考えてよいでしょうか。

解答・解説を見る

よくありません。図では1命令が通る工程は4つのままです。違う命令の工程を重ねて、全体の完了時間を短くしています。

まとめ:工程を重ねられる条件まで確認する

工程数だけでなく、命令数・工程の時間・停止の有無を確認しましょう。次はその条件を問題文から取り出し、処理時間を計算する練習へ進めます。

参考:Arm:命令パイプライン

参考:RFC 2920:SMTP PIPELINING

コメント