英特爾x86指令集演進的下一步:AVX10、APX
英特爾公司正在為該公司認為是原始x86 指令集體系結構(ISA)發展的”下一個重要步驟”做準備。這家聖克拉拉公司正在擴大通用x86 操作的寄存器數量,同時推出基於著名的AVX-512 ISA 的全新、包羅萬象的矢量指令集。
正如英特爾公司為開發人員提供的官方網站所解釋的那樣,x86 架構目前廣泛應用於數據中心、個人電腦和其他各種需要性能導向型CPU 和繁重計算工作量的環境中。最初的x86 ISA 於1978 年通過8086 CPU 推出,只有8 個16 位通用寄存器,後來寄存器的數量增加了一倍,大小增加了四倍。
寄存器在中央處理器中起著至關重要的作用,因為它們存儲著處理器在任何給定時刻都在積極處理的數據位。因此,英特爾公司將高級性能擴展(APX)技術視為x86 ISA 的重要發展步驟。它擴展了整個x86 指令集,允許訪問更多的寄存器,並引入了新的功能來提高CPU 的整體性能。
英特爾公司稱,APX 將通用x86 寄存器的數量翻了一番,從16 個增加到32 個,為編譯器提供了更多的數據存儲空間。該公司解釋說,與根據英特爾x64 ISA”基準”編譯的二進製程序相比,APX 編譯的代碼”加載次數減少10%,存儲次數減少20%以上”。
簡單地說,與復雜的加載和存儲操作相比,寄存器訪問速度更快,消耗的動態功耗”大大降低”。在下一代英特爾CPU 型號中,效率的提高可能會帶來更高的性能水平。APX 還將擴展x86 ISA 的條件指令集,該指令集最早是在奔騰Pro 處理器中通過CMOV/SET 指令引入的。
這些指令被當今的編譯器廣泛使用,而APX 似乎提高了英特爾CPU 的分支預測能力。據英特爾公司稱,程序員只需重新編譯代碼,就可以利用APX 的功能,因為不需要修改源代碼。APX 再次證明了”x86 可變長度指令編碼”的優勢,新功能通過對底層芯片進行”增量更改”來增強整個ISA,從而在硬件中解碼指令。
除APX 外,未來幾代英特爾CPU 還將包含新的AVX10 ISA。正如官方文件中解釋的那樣,這項技術是英特爾在2013 年首次提出的AVX-512 向量指令集的全新主要實現。新的ISA 將在所有英特爾CPU 架構上建立一個”通用、融合的矢量指令集”,使其在未來的所有處理器上都能得到支持,包括高性能內核(P-cores)和高效內核(E-cores)。
英特爾最初在第12代酷睿消費級CPU上引入了對AVX-512矢量指令的支持,但這些指令只適用於P核單元,後來通過固件微碼更新意外禁用了這些指令。事實證明,x86 ISA 的矢量擴展在試圖模擬複雜的現代遊戲機架構(如PlayStation 3 (RPCS3))的開發人員中非常受歡迎。
x86 ISA 的AVX10 擴展將支持以前引入的所有AVX(矢量)指令擴展,最大矢量寄存器長度為256 位。最初的AVX10 版本(AVX10.1)不包含任何新指令;其唯一目的是方便從AVX-512 過渡到適當的、全核兼容(P 核、E 核)的AVX10 實現(即AVX10.2)。