重點 分支/跳躍指令造成 PC 不確定下一條指令 → 控制危障 (Control Hazard)。
看到「根據執行結果改變流程」= 分支指令 = Control Hazard,秒選 C。
逐選項分析
A✕ 陷阱
資料危障是指令間有資料相依(如後指令要用前指令結果),與流程改變無關。常見解法為 forwarding 或 stall。
B✕
結構危障是硬體資源衝突(如同時存取記憶體、暫存器埠不足),屬硬體層面問題,不是流程控制問題。
C✓ 正確
分支(branch)或跳躍(jump)指令需依執行結果決定下一條指令位址,在管線未知結果前會造成控制流不確定,即 Control Hazard(亦稱 Branch Hazard)。
D✕ 陷阱
「程式危障」不是管線三大危障的正式術語,屬誘答選項。管線危障僅有 Data、Structure、Control 三類。
管線三大危障 (Pipeline Hazards)
| 類型 | 成因 | 典型情境 | 常見解法 |
|---|
| Data Hazard | 指令間資料相依 | RAW/WAR/WAW | Forwarding、Stall、重排 |
| Structural Hazard | 硬體資源不足 | 同時存取記憶體 | 增加硬體、分離 I/D Cache |
| Control Hazard | 分支流程不確定 | branch/jump 指令 | 分支預測、Delay Slot、Flush |
D「程式危障」是命題者造的假名詞,管線危障正式分類只有 Data、Structural、Control 三種。考生看到陌生術語要警覺,別被中文語感騙去選看似合理的選項。