×
コンピュータ構成要素

パイプライン処理には「ハザード」と呼ばれる弱点(性能低下の要因)が存在します。ハザードとは、何らかの理由でパイプラインの途中に待ち時間(ストール)が発生し、処理が滞ってしまう現象のことです。例えば、ある命令の計算結果をすぐ次の命令で使いたいのにまだ計算が終わっていない状態(データハザード)や、if文などの条件分岐によって次に実行すべき命令が変わってしまい、あらかじめ読み込んでいた後続の命令をすべて破棄してやり直さなければならない状態(制御ハザードまたは分岐ハザード)などがあります。特に制御ハザードは深刻な性能低下を招くため、過去の履歴から次に分岐する先を予測する「分岐予測」や、予測に基づいて前もって命令を実行してしまう「投機的実行」といった非常に高度な技術が組み合わされて、CPUの性能を最大限に引き出しています。

試験でのポイント

情報処理技術者試験(ITパスポート、基本情報技術者試験、応用情報技術者試験など)では、コンピュータ構成要素の分野において、パイプライン処理による実行時間の計算問題が頻繁に出題されます。例えば「5段のパイプラインで10個の命令を実行する場合、必要なクロック数はいくつか」といった問題です。この計算には「命令数 + ステージ数 - 1」という公式がよく使われます。この例の場合、10 + 5 - 1 = 14クロックサイクルが必要になる、という計算ができるようにしておくことが重要です。

また、パイプライン処理の効率を下げる要因である「分岐ハザード(制御ハザード)」や「データハザード」の仕組みとその対策(分岐予測や遅延分岐など)も文章問題としてよく問われます。「分岐命令が発生すると、先読みしていた命令が無駄になり、パイプラインが乱れて実行速度が低下する」というデメリットのメカニズムを、論理的に理解しておくことが求められます。

さらに、類似のプロセッサ高速化技術である「スーパースカラ」や「VLIW」との違いも明確にしておきましょう。パイプラインは1つの命令の流れを時間的に分割してずらして並行実行するのに対し、スーパースカラは複数の命令を同時に実行するための実行回路(パイプライン自体)を複数本持っているという構造的な違いがあります。

関連する用語

関連する用語として、複数の命令を同時に実行できる実行ユニットを備えた「スーパースカラ」、条件分岐の方向をあらかじめ予測する「分岐予測」、予測に基づいて処理を先行させる「投機的実行」などがあります。