忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【コンピュータ構成】命令の渋滞を巻き起こす!「パイプラインハザード」|情報処理問題1000本ノック

複数の命令を重ね合わせて高速処理する「パイプライン処理」において、処理のスムーズな流れをストップさせてしまう妨げ(障害)、ハザードの概念を攻略しましょう。

1. 【 問題 】:パイプライン処理の阻害要因

【 問題 】 CPUのパイプライン処理において、前の命令と後ろの命令との依存関係や、ハードウェアの競合などが原因となり、特定のクロックサイクルで次の命令が実行できず、処理の遅延(ストール)が発生してしまう事象を何と呼ぶでしょうか?

① フラグメンテーション
② ハザード(Hazard)
③ スワッピング
④ オーバーフロー

2. 正解:

正解: ② ハザード(Hazard)

3. 解説:パイプラインの「渋滞」と「空回り」

現代のCPUは、1つの命令が終わるのを待たずに、まるで工場のベルトコンベア(パイプライン)のように次の命令を次々と重ねて実行します。しかし、ある原因によってその流れがピタッと止まってしまうことがあります。この障害をハザードと呼びます。

【ハザードが起きるとどうなる?】

■ 処理のストール(一時停止)
・ハザードが発生すると、CPUは安全のために後ろの命令をそのステージで強制的に待機させます。この待機時間を「ストール(またはバブル/泡)」と呼び、CPUの中に「何も処理をしない空のクロックサイクル」が生まれてしまいます。

■ ハザードの3大分類(次回以降で詳述)
1. 構造ハザード:同じハードウェア部品(メモリなど)を同時に使おうとして衝突する。
2. データハザード:前の命令の計算結果がまだ出ていないのに、後ろの命令がその値を使おうとする。
3. 制御ハザード:条件分岐命令によって、次にどの命令を実行すべきかが確定するまで後ろの命令を読み込めない。
[ 選択肢のひっかけポイント ]
★ ①:メモリの空き領域が細切れになって無駄ができる現象です。
★ ③:主記憶(メモリ)と補助記憶(HDD/SSD)の間で中身を入れ替える処理です。
★ ④:計算結果が表現できる最大値を超えてしまう現象です。

1. 理解のコツ: 「全自動の洗濯から乾燥までのコインランドリー(パイプライン)」をイメージしてください。1人目が洗濯を終えて乾燥機に移ったら、2人目がすぐに洗濯機を使い始めることで効率を上げます。しかし、もし「前の人が乾燥機から服を取り出し忘れている(データの未確定)」や「乾燥機が1台しかなくて奪い合いになる(ハードの衝突)」が起きると、次の人は作業をストップして待つしかありません。この流れを止めるトラブル全般がハザードです。
2. 試験対策 of 視点: 「特定のクロックサイクルで命令が実行できない」「処理の遅延が発生する事象」と来たらハザードが正解です。CPUの性能(CPI:1命令あたりのクロックサイクル数)を悪化させる最大の原因として、非常に重視される概念です。


4. まとめ

「パイプライン処理の効率的な流れをストップさせてしまう、命令実行の阻害要因」。これがハザードです。このハザードをいかにソフトウェア(コンパイラの最適化)やハードウェア(バイパス処理など)で回避するかが、プロセッサ設計の腕の見せ所です。


PR