普考-資訊處理計算機概要108 年第 3 題單選題
處理器的管道化處理技術( pipelining)可提升運作效率,但若下一個指令無法在下一個時脈週期執行時會產生危障(hazards)。下列那個危障可由複製硬體資源來解決?
A結構危障(structural hazard)正確答案
B數據危障(data hazard)
C控制危障(control hazard)
D計算危障(computation hazard)
A正確答案
結構危障源於硬體資源不足導致衝突,複製硬體(如分離指令/資料記憶體)即可解決。
為什麼答案是 A
結構危障是多個指令同時爭用同一硬體(如記憶體、ALU)造成。解法就是複製硬體資源,例如將記憶體拆成指令快取與資料快取(哈佛架構)。
載入中…
完整詳解
Pro · 無限重點 結構危障源於硬體資源不足導致衝突,複製硬體(如分離指令/資料記憶體)即可解決。
看到「複製硬體資源」→ 直選結構危障,這是教科書標準對應。
逐選項分析
A✓ 正確
結構危障是多個指令同時爭用同一硬體(如記憶體、ALU)造成。解法就是複製硬體資源,例如將記憶體拆成指令快取與資料快取(哈佛架構)。
B✕ 陷阱
數據危障是指令間有資料相依性(前一指令尚未寫回,後一指令已要讀)。解法是 forwarding(資料旁路)、stall 或編譯器重排,而非複製硬體。
C✕
控制危障由分支指令造成,因不知下一條指令位址。解法為分支預測、延遲分支、flush pipeline,與複製硬體無關。
D✕
「計算危障」並非管線化三大危障的正式分類,是干擾選項。標準教科書(Patterson & Hennessy)只有 structural、data、control 三種。
管線化三大危障與解法對照
| 危障類型 | 成因 | 典型例子 | 解決方法 |
|---|
| 結構危障 | 硬體資源不足 | 指令與資料同時存取記憶體 | 複製硬體(分離I/D cache) |
| 數據危障 | 指令間資料相依 | 前指令結果未寫回 | Forwarding、Stall、重排 |
| 控制危障 | 分支/跳躍未定 | beq 指令未決定前 | 分支預測、Delay slot、Flush |
管線化危障只有三種:結構(structural)、資料(data)、控制(control),考選部常捏造「計算危障」「運算危障」等不存在的名詞混淆視聽。結構危障的核心成因是「硬體資源數量不夠多個指令同時用」,例如只有一條記憶體匯流排時fetch和memory存取會撞期。解法就是把衝突資源複製一份:分離指令/資料記憶體、增加ALU數量、多埠暫存器檔。判斷關鍵在於「是硬體本身不夠」而非「指令間有相依性」,後者屬於資料危障範疇。