Instiq
第1章 · プロセッサとコンピュータ構成·v1.0.0·更新 2026/7/10·読了目安 約15分

変更要約: 初版

1.2命令実行とパイプライン

この節の要点

フェッチから書戻しまでの命令実行サイクル、複数命令を段階的に並行処理するパイプライン処理、パイプラインを乱すハザード(データ/構造/制御ハザード)と分岐予測、そして組込み機器のリアルタイム性・応答性の予測可能性を優先した性能設計を判断する力を学びます。

組込みシステムの性能設計では、「パイプライン段数を増やせばスループットが上がる」という単純な話では済みません。パイプラインが乱れるハザードが発生するとパイプラインストール(実行の空白)が生じ、その空白時間は予測しづらいため、ハードリアルタイム制御では「平均性能は高いが、最悪応答時間が読めない」構成がむしろ問題になります。この節では、パイプラインの仕組みとハザードの種類を理解した上で、組込み機器がどこまでパイプラインの深さ・分岐予測に依存してよいかを判断する視点を養います。

1.2.1命令実行サイクルとパイプライン

  • 命令実行サイクル=命令フェッチ(IF:命令をメモリから取得)→命令デコード(ID:命令を解読しレジスタを読出し)→実行(EX:演算/アドレス計算)→メモリアクセス(MEM:データの読み書き)→レジスタ書戻し(WB:結果をレジスタへ格納)の順で進む基本ステージ。
  • パイプライン処理=各ステージを専用回路で分担し、複数命令を段階的にずらして並行実行することでスループット(単位時間あたりの命令完了数)を高める技法。理想的には段数分だけ性能が向上するが、ハザードが発生すると一部の段が空転(ストール)し理論値どおりの性能は出ない

1.2.2ハザードの種類と分岐予測

  • データハザード=ある命令の結果を直後の命令が入力として必要とするのに、まだ結果が確定していないため発生する依存関係の衝突。構造ハザード=複数の命令が同じハードウェア資源(同じメモリポート等)を同時に必要とし競合する衝突。制御ハザード=分岐命令の分岐先が確定するまで次にフェッチすべき命令が決まらないために生じる衝突。
  • 分岐予測=制御ハザードによるストールを減らすため、分岐が成立するかどうかをあらかじめ推測してフェッチを先行させる技法。予測が的中すればストールを回避できるが、予測を外すとパイプラインに投入していた命令を破棄(フラッシュ)してやり直す必要があり、外れた場合のペナルティは分岐予測を行わない場合より状況によっては大きくなる。組込みのハードリアルタイム制御では、この予測失敗時の最悪ケースの遅延まで見積もっておく必要がある。
試験ポイント

「データ/構造/制御ハザードの区別」「分岐予測は当たればストール回避・外れればフラッシュでペナルティ」「パイプライン段数を増やすほど分岐ミスのペナルティも増大しうる」が最頻出です。平均性能と最悪応答時間(予測可能性)はトレードオフになりうるという組込み特有の視点を押さえましょう。

あなたは産業用制御機器のファームウェア開発者で、モータ制御ループが「毎周期、必ず一定時間内に完了する」というハードリアルタイム要件を持つとします。開発チームの一人が「パイプライン段数が深く、動的な分岐予測を持つ高性能プロセッサに変更すれば平均スループットが上がり性能要件を満たしやすい」と提案しました。ここで注意すべきなのは、平均性能の向上が、そのままリアルタイム制御の要件を満たすとは限らないという点です。動的分岐予測は条件分岐が多いモータ制御ループの平均実行時間を確かに短縮しますが、予測を外した場合はパイプラインのフラッシュにより一時的に大きな遅延が発生し、この遅延の発生タイミングは実行時のデータ依存条件分岐に左右されるため事前に正確な最悪応答時間を見積もることが難しくなります。ハードリアルタイム制御では「平均は速いが稀に大きく遅れる」構成より、「常に予測可能な範囲の実行時間で完了する」構成の方が価値が高いため、この場面では段数が浅くパイプラインの挙動が単純で分岐予測に依存しないプロセッサコア、あるいは分岐予測を無効化またはロックできるコアを選び、最悪実行時間(WCET)を静的に解析可能な構成を優先すべきです。「性能を上げれば要件を満たせる」という短絡的な判断ではなく、要求されているのが平均性能か最悪ケースの予測可能性かを見極めることが、組込みの性能設計の核心です。

ハザード種別原因典型的な緩和策
データハザード後続命令が未確定の演算結果に依存フォワーディング(結果の転送)・命令並べ替え
構造ハザード複数命令が同じハードウェア資源を競合資源の複製(デュアルポート化等)
制御ハザード分岐先が確定するまで次命令が不明分岐予測・遅延分岐・投機実行の抑制
注意

ひっかけ: 「パイプライン段数を増やし分岐予測を強化すれば、リアルタイム制御の要件は必ず満たしやすくなる」は誤りです——平均スループットは上がっても、分岐予測が外れた際のペナルティ(パイプラインフラッシュ)により最悪応答時間はむしろ悪化・不安定化しうるため、ハードリアルタイム制御では予測可能性が優先される場面があります。また「データハザードと構造ハザードは同じ原因で起きる」も誤り=データハザードは演算結果への依存、構造ハザードはハードウェア資源の競合と原因が異なります。

パイプラインとハザードの図。
処理を並べて速くする

1.2.3この節のまとめ

  • 命令実行サイクルはIF→ID→EX→MEM→WBの順。パイプライン処理は各段を並行実行しスループットを高める
  • ハザードデータ/構造/制御の3種。分岐予測は的中でストール回避・外れでフラッシュのペナルティ
  • 組込みのハードリアルタイム制御では平均性能より最悪応答時間の予測可能性を優先する場面がある

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. 産業用モータ制御ループが「毎周期、必ず一定時間内に処理を完了する」というハードリアルタイム要件を持つ。パイプライン段数が深く動的分岐予測を持つ高性能プロセッサへの変更が提案されたが、慎重に検討すべき理由として最も適切なものはどれか。

Q2. あるパイプライン化されたプロセッサで、複数の命令が同時に同じメモリポートへのアクセスを必要とし処理が競合した。この事象を説明するハザードの種類として最も適切なものはどれか。

Q3. パイプライン処理における分岐予測に関する記述として最も適切なものはどれか。

理解度を確認第1章「プロセッサとコンピュータ構成」の問題を解く