
處理器大廠英特爾(Intel)近日取得「軟體定義核心」(Software Defined Supercore,SDC)專利,概念是軟體結合多核心,組成一個虛擬且超寬廣的「超級大核心」。
Tom’s Hardware報導,新技術目標是在具備足夠偕同工作量的特定應用,顯著提升單執行緒的性能表現。若該技術可以成功達成,未來英特爾的中央處理器(CPU)有望在選定的應用程式中提供更為出色的單執行緒性能。然而,目前這僅是一項專利,未來是否真正用於產品,仍是未知數。
英特爾SDC目的為協同運作,將兩個或更多實體CPU核心結合,如單一高性能虛擬核心。機制是將單一執行緒指令拆分成獨立區塊,不同實體核心平行運算。為了確保程式的原始執行順序不受影響,系統會用專門同步與資料傳輸指令協調。這種設計能以最小的額外作業,最大化每時脈週期指令數(IPC)。相較於傳統提升性能的方式,例如增加時脈速度,或建造體積龐大、單一的大核心,SDC的這種做法有其獨特優勢。因為,建造大核心可能導致功耗顯著增加,同時提高電晶體生產預算,而SDC則提供了一種在不犧牲這些資源下,進一步提升單執行緒性能的替代方案。
現代x86 CPU核心一般能解碼4到6條指令,並在這些指令被解碼成微操作(micro-ops)後,每個週期將執行8到9個微操作,進而達到此類處理器最高的IPC性能。然而,與此形成對比的是,蘋果(Apple)的客製化Arm架構高性能核心(如Firestorm、Avalanche、Everest)理想狀況下,每週期可解碼多達八條指令,並執行超過十條指令。這也是為什麼蘋果處理器在單執行緒性能和功耗方面,通常能展現出比同級Arm晶片更優異的表現。
儘管從技術角度看,建造一個能夠在每個時脈週期解碼、發布和回收多達8條指令的8路x86 CPU核心是可行的,但實際應用並未實現。主要瓶頸在於前端設計的複雜性,以及性能提升在功耗和晶片面積成本上所面臨的顯著遞減效應。事實上,即使是目前最先進的x86 CPU,在執行一般工作運算時,根據軟體的不同通常也只能維持二至三或四的持續IPC。有鑑於此,英特爾SDC提出創新策略,合適情境下,將兩個或更多單元配對,協同運作,共同組成一個大核心,取代直接做一個八路x86 CPU核心的困難。
硬體層面,每個支援SDC的系統核心都整合成一個專用小型硬體模組,負責管理配對核心同步、暫存記憶體傳輸及記憶體排序。這些模組會利用一個預留的記憶體區域,稱為「蟲洞位址空間」(wormhole address space),協調即時輸入/輸出數據(live-in/live-out data)和同步操作。這樣可以確保來自不同核心的指令,最終能以正確的程式順序完成回收。同時支援依序執行(in-order)和亂序執行(out-of-order)核心,並對現有執行引擎僅需最小幅度修改,晶片面積可緊緻設計。
軟體層面,系統將採用即時編譯器(JIT compiler)、靜態編譯器或二進位儀器(binary instrumentation)等技術,將單執行緒程式切割成不同的程式碼區段。這些區段會被分配給不同的核心來執行。同時,系統會注入特殊的指令,用於控制程式流程、暫存記憶體傳遞和同步行為,以確保硬體能夠維持執行的完整性。作業系統(OS)扮演關鍵角色,會根據執行時條件,動態判斷何時將執行緒遷移進入或退出超核心模式,以達到性能與核心可用性之間的最佳平衡。
儘管英特爾的專利文件並未提供性能提升估計,但暗示特定應用場景,兩個小核心聯合性能,有望逼近一個大核心表現。若能成功從專利走向商業化,可為單執行緒應用程式帶來顯著性能提升,特別是能充分利用SDC設計優勢的運算。不過SDC仍處於專利階段,發展與應用值得關注。
(首圖來源:英特爾)