阿摩線上測驗 登入

申論題資訊

試卷:105年 - 105 專技高考_專利師(選試專業英文及計算機結構)、專利師(選試專業日文及計算機結構):計算機結構#55679
科目:計算機概論、大意(資訊科學概論,電腦常識,電子計算機概論)
年份:105年
排序:0

題組內容

四、中央處理單元的設計有一種稱為管道化(pipelined)處理的方式。相較於非管道化 (non-pipelined)處理,對某特定指令集架構而言:

申論題內容

⑷何者在編譯上需要作那些額外的考慮?並扼要說明原因。(5 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

管道化處理(Pipelined Processing)在編譯上需要作更多的額外考慮。

原因:

  1. 處理數據冒險(Data Hazards)

    • 定義:數據冒險發生在一條指令依賴於另一條尚未完成的指令的結果時。編譯器必須識別這些依賴並進行適當處理。
    • 編譯器考慮:編譯器需要重排指令,以減少數據依賴造成的延遲。例如,編譯器可以插入無操作指令(NOPs)或者重新安排指令順序,確保數據可用時再執行依賴指令。
  2. 處理控制冒險(Control Hazards)

    • 定義:控制冒險發生在分支指令可能改變程序流向時,管道中可能存在多條分支未決定的指令。
    • 編譯器考慮:編譯器需要進行分支預測和延遲槽(Delay Slots)的填充。編譯器可以重排指令,將獨立於分支結果的指令放在延遲槽中,以減少分支錯誤預測的影響。
  3. 處理結構冒險(Structural Hazards)

    • 定義:結構冒險發生在硬體資源不足以同時支持多條指令的並行執行時。
    • 編譯器考慮:編譯器必須考慮硬體資源的限制,避免同時發出需要相同資源的指令。例如,避免同時發出需要使用相同乘法器的指令。
  4. 寄存器分配和重命名

    • 定義:寄存器的使用在管道化處理中可能導致假冒險(False Dependencies),如寫後讀(Write After Read, WAR)和寫後寫(Write After Write, WAW)。
    • 編譯器考慮:編譯器需要進行有效的寄存器分配和重命名,以避免這些假冒險,提高指令並行度。
  5. 平衡流水線

    • 定義:不同指令所需的執行時間不同,可能導致管道的不平衡和效率降低。
    • 編譯器考慮:編譯器需要安排指令順序,盡可能平衡各個階段的負載,減少流水線的停滯。