普考-資訊處理計算機概要109 年第 2 題單選題
處理器的管道化處理技術(pipelining)可提升運作效率,但是在有危障(hazards)發生時則會降低它所帶來的好處。下列何者不是管道化處理的危障?
A結構危障(structural hazard)
B數據危障(data hazard)
C控制危障(control hazard)
D計算危障(computation hazard)正確答案
D正確答案
Pipeline 三大 hazard:結構、數據、控制,沒有「計算危障」這種東西。
為什麼答案是 D
管線危障只有三種:結構、數據、控制,根本沒有「計算危障」這個術語。這是命題者自創的假名詞,本題為反向題,要選「不是」的那個。
載入中…
完整詳解
Pro · 無限重點 Pipeline 三大 hazard:結構、數據、控制,沒有「計算危障」這種東西。
背口訣「結構、資料、控制」三種 hazard,看到第四種選項就是假的。
逐選項分析
A✕
結構危障確實存在。指硬體資源不足導致多個指令同時爭用同一硬體(如記憶體、ALU),造成管線停頓。
B✕
數據危障確實存在。指後一指令需使用前一指令尚未寫回的結果,產生 RAW、WAR、WAW 等資料相依性問題。
C✕
控制危障確實存在。又稱分支危障(branch hazard),當遇到分支或跳躍指令時,無法確定下一條要取哪條指令,導致管線需清空。
D✓ 正確
管線危障只有三種:結構、數據、控制,根本沒有「計算危障」這個術語。這是命題者自創的假名詞,本題為反向題,要選「不是」的那個。
Pipeline 三大 Hazard 總整理
| 類型 | 原因 | 例子 | 解法 |
|---|
| Structural | 硬體資源不足 | 同時取指令與存資料爭用記憶體 | 增加硬體、分離 I/D cache |
| Data | 指令間資料相依 | R1 還沒寫回,R2 就要讀它 | Forwarding、Stall、重排指令 |
| Control | 分支結果未知 | Beq 還沒判斷就要取下一指令 | 分支預測、Delayed branch |
命題者在三個正確術語中夾帶一個自創的「計算危障」來混淆。考生若沒背熟三大 hazard 的正確名稱,看到「計算」兩字可能會聯想到 ALU 運算而誤認為真。記住:管線危障就是「結構、數據、控制」三種,沒有第四種。