
上個月,Google 安全研究人員團隊發布了一款可以修改 AMD 旗下 Zen 微架構的處理器微程式碼的工具 Zentool。雖然,這是一個安全漏洞,但對於某些人來說,這是可能將是一個機會。因為,中國正在舉辦一場比賽,目的是為 AMD 當前採用 Zen 架構的 CPU 開發微代碼,使其能夠原生執行 RISC-V 程序。而該計畫的最終目標,可能是使用現有的架構來建構終極 RISC-V CPU。
Tom′s Hardware 報導,x86 約 48 年前開發,但現代 x86 核心依賴運行精簡電腦指令集的專有引擎處理複雜指令,精簡電腦指令集沒有紀錄,但通常與通用精簡指令集電腦類似,如 Arm 或 RISC-V。CPU 微碼是低階將複雜 x86 複雜電腦指令集轉成 CPU 硬體執行的簡單 RISC 類別內部指令。而 CPU 微碼通常只能由 CPU 供應商修改,但有時情況並非如此,因為 AMD 的 Zen 1/2/3/4 架構 CPU 微碼某些部分可以使用 Zentool 工具來進行修改。
中國希望找到現代處理器(如 EPYC 9004 系列)修改 Zen 架構 CPU 微碼,以執行 RISC-V 二進位檔案方式的人,有望達成 RISC-V 程式的直接執行作業,或與使用相同硬體來進行模擬,進一步顯著提高其運行速度。如此的工作,必須使用 RISC-V 版本的基準(如 Coremark 或 Dhrystone)來測試這項工作,完整後將交付包括二進位檔案或原始程式碼、設定檔、依賴項和測試說明等。如果計畫截止的 6 月 6 日之前,僅提交二進位文件,則必須透過之後的提取動作,進一步新增相同的原始程式碼。而其計畫的獲勝者,將獲得約 2,735 美元的獎金。
報導指出,AMD 的 EPYC 9004 系列和類似處理器目前提供 RISC-V 的處理器無法實現的效能和核心數,因此在 EPYC 上執行專有 RISC-V 程式是一個可行的想法。然而,相關市場人士指出,微程式碼旨在修復內部錯誤,而不是完全取代前端電腦指令集,甚至不清楚微程式碼是否可以完全重寫。
早在 2010 年代中期,AMD 就計劃同時提供 x86-64 和 Armv8-A Zen CPU。因此,很有可能有一個用於 Zen 1 微架構的微代碼支持 Aarch64 前端電腦指令集。也就是說,Zen 1 CPU 可以具有多個微碼層介入,一個支援 x86-64,另一個支援 Aarch64。但市場相關人士對此表示懷疑,因為現代 CPU 具有非常徹底的硬體效能最佳化,包括微程式碼和核心其餘部分之間的硬連線最佳化。另外,AMD 也從未為 Zen 2 / 3 / 4 處理器開發過支援 Aarch64 或 RISC-V 的微碼,因此這些 CPU 的微碼層是嚴格的 x86-64,幾乎沒有足夠的微碼空間從頭開始重寫它們。
報導引用相關市場人士說法指出,這計畫不可能實現的。即使是極其緩慢的 hack,也沒有足夠的可重寫微碼來實現這一點。而且,即便所有微碼都可重寫,在現代 x86 核心中,微碼也只是一種後備路徑,其快速路徑是針對 x86 指令的硬編碼解碼。即使情況並非如此,微碼解碼本身也是針對 x86 指令格式的硬編碼,這使得微編碼也非常非難執行 RISC。
(首圖來源:AMD)