計算機體系結構中的並行執行是什麼?
當指令並行執行時,它們將以非程式順序完成。這裡,指令是按順序還是無序發出或排程,或者是否使用擱置,都沒有關係。關鍵在於,執行時間的不均等迫使指令以非順序的方式完成,即使它們是按順序發出(和排程)的。然後,短的、“較年輕的”指令可以比長的、“較舊的”指令先完成。因此,超標量指令導致指令的非順序完成。
這裡,可以區分“完成”、“結束”和“退休”指令的術語。“完成”指令表示指令的所需操作已完成,除了將結果寫回所表示的體系結構暫存器或記憶體位置並重新整理狀態位。
相反,“結束”指令是指如果我們想引用指令執行的最後一個動作,即把結果寫回引用的體系結構暫存器。最後,關於 ROB,我們說“退休”而不是“結束”,因為在這種情況下,必須執行兩個任務,將結果寫回並從最後一個 ROB 條目中刪除已完成的指令。
在特殊條件下,即使有多個 EU,也可以避免指令以非順序方式完成。條件如下:例如,指令必須按順序發出,並且所有並行執行的 EU 必須具有相同的執行時間。
這些條件可以透過使用雙管道並對其進行鎖步來實現,即透過在其插入未使用的額外週期(“氣泡”)來延長較短的管道。這些先決條件過於嚴格,會阻礙效能。
因此,只有少數超標量處理器以這種方式避免了非順序完成。例如 MC 68060 和 Pentium,它們都採用了鎖步雙管道。
並行執行的歷史
平行計算的活動可以追溯到 20 世紀 50 年代後期,在 60 年代和 70 年代以超級計算機的形式出現發展。這些是共享記憶體多處理器,多個處理器並行處理共享資訊。
在 20 世紀 80 年代中期,當加州理工學院併發計算專案從 64 個 Intel 8086/8087 處理器開發用於科學目的的超級計算機時,出現了一種新的平行計算形式。
如今,平行計算正在轉向主流,這要歸功於多核處理器。現在,大多數桌上型電腦和筆記本電腦系統都配備了雙核微處理器,四核處理器也隨處可見。晶片製造商已開始透過新增額外的 CPU 核心來改進完整的處理實現。