コンピュータ構成要素
パイプライン処理においてデータハザードが発生する原因として最も適切なものはどれか。
ア.条件分岐命令の行き先が確定する前に、後続命令を先読みして実行してしまう。
イ.同一サイクルに複数の命令が同じ演算ユニット(ALU)を使おうとする。
ウ.前の命令が書き込んだレジスタの値を、次の命令がまだ更新前に読み出そうとする。正解
エ.キャッシュミスが連続して発生し、メモリアクセスが競合する。
解説
データハザードは「前の人がまだレジを打ち終わっていないのに、後ろの人が商品を渡してくれと言い出す」状態。レジスタの更新を待たずに読もうとするからぶつかる。
なぜ ウ が正解か
ウが正解。データハザード(RAWハザード:Read After Write)は「先行命令がレジスタに書き込む前に、後続命令がそのレジスタを読み出そうとする」ときに発生する。例:ADD R1, R2, R3 の結果がR1に書かれる前に、SUB R4, R1, R5 がR1を読もうとするケース。対策はパイプラインストール(バブル挿入)またはフォワーディング(転送)。
出典: AI生成問題(学習用)