超純量與亂序執行

概述

超純量(Superscalar)和亂序執行(Out-of-Order Execution)是現代高效能處理器實現高指令吞吐量的兩大核心技術。超純量架構允許 CPU 在每個時鐘週期發射多條指令到多個執行單元,實現指令級並行(ILP)。亂序執行放寬了指令必須按序執行的限制,動態調整指令順序最大化執行效率。

超純量架構

典型的 4 路超純量處理器每個時脈週期最多發射 4 條指令到不同的執行單元(ALU、Load/Store、FPU、Branch)。執行單元延遲各異:整數 ALU 1 周期、整數乘法 3 周期、FP 加法 4 周期、FP 除法 15 周期。

// 執行單元延遲範例
// Integer ALU:      1 cyc, 每周期 1 條
// Integer Multiply: 3 cyc, 每周期 1 條
// FP Add:           4 cyc, 每周期 1 條
// FP Multiply:      5 cyc, 每 2 周期 1 條
// FP Divide:       15 cyc, 每 15 周期 1 條
// Branch Unit:      1 cyc, 每 2 周期 1 條

亂序執行

亂序執行的關鍵硬體元件:

Tomasulo 演算法

Robert Tomasulo 在 IBM 360/91 上提出的動態排程演算法,透過暫存器重命名和保留站實現亂序執行。現代處理器都使用其變體,支援:

相關連結