地方政府公務人員四等-資訊處理類科計算機概要108 年第 5 題單選題
在管道化處理(Pipelining)機制下,可能會出現三種主要的不同類型的危障(Hazards),下列那一個敘述指的是數據危障(Data Hazard)?
A預測分支(Branch)指令的結果,讓後續指令繼續執行
B當安排好的指令由於硬體無法支援當時應予執行的一組指令,而無法在適當時脈週期內執行的情況
C當所擷取的指令並非所需的指令,而造成適當的指令無法在恰當的時脈中執行
D當指令應該被執行時由於其執行所需之數據尚未備妥,而無法在適當時脈週期內執行的情況正確答案
D正確答案
Data Hazard 指令執行時所需資料尚未就緒,必須等前一指令寫回才能繼續。
為什麼答案是 D
後續指令需要前一指令尚未寫回的運算結果,因資料相依而停頓。典型的 Data Hazard,可用 forwarding 或 stall 解決。
載入中…
完整詳解
Pro · 無限重點 Data Hazard 指令執行時所需資料尚未就緒,必須等前一指令寫回才能繼續。
看到「數據/資料尚未備妥」就是 Data Hazard;「硬體不足」是 Structural;「分支/擷取錯誤」是 Control。
逐選項分析
A✕ 陷阱
預測分支結果讓指令繼續執行,屬於處理「控制危障(Control Hazard)」的分支預測技巧,非 Data Hazard。
B✕
描述硬體資源不足(如記憶體埠、ALU)無法同時支援多個指令,屬於「結構危障(Structural Hazard)」。
C✕
擷取到錯誤指令(通常是分支跳躍後 PC 錯誤)屬於「控制危障(Control Hazard)」,常以分支預測或延遲槽處理。
D✓ 正確
後續指令需要前一指令尚未寫回的運算結果,因資料相依而停頓。典型的 Data Hazard,可用 forwarding 或 stall 解決。
Pipeline 三大危障對照
| 類型 | 成因 | 典型情境 | 解決方法 |
|---|
| Data Hazard | 資料相依未備妥 | RAW/WAR/WAW | Forwarding、Stall |
| Structural Hazard | 硬體資源不足 | 單埠記憶體同時讀寫 | 增設硬體、分離 cache |
| Control Hazard | 分支導致 PC 不確定 | Branch、Jump | 分支預測、延遲槽 |
本題刻意把三種危障的定義全列出來混淆。關鍵字辨識:「數據/資料未備妥」→Data;「硬體無法支援」→Structural;「擷取指令錯誤/分支」→Control。只要抓住核心名詞就不會誤選。