中國項(xiàng)目組目標(biāo):在AMD Zen處理器上運(yùn)行RISC-V代碼
上個(gè)月,一個(gè) Google 安全研究人員團(tuán)隊(duì)發(fā)布了一個(gè)工具,該工具可以修改基于 Zen 微架構(gòu)的 AMD 處理器的微碼,即 Zentool。雖然這是一個(gè)安全漏洞,但對(duì)某些人來說,這是一個(gè)機(jī)會(huì):來自中國某項(xiàng)目組的成員正在舉辦一項(xiàng)競(jìng)賽,旨在為 AMD 基于 Zen 的現(xiàn)代 CPU 開發(fā)微碼,使其能夠本地執(zhí)行 RISC-V 程序。最終目標(biāo)可能是使用現(xiàn)有的芯片構(gòu)建終極 RISC-V CPU。
本文引用地址:http://www.104case.com/article/202504/469319.htmx86 是大約 48 年前開發(fā)的復(fù)雜指令集計(jì)算機(jī) (CISC) 指令集架構(gòu) (ISA)。但是,在內(nèi)部,現(xiàn)代 x86 內(nèi)核依賴于運(yùn)行精簡(jiǎn)指令集計(jì)算機(jī) (RISC) ISA 的專有引擎來處理復(fù)雜的指令。內(nèi)部 RISC ISA 沒有記錄在案,但它們通常應(yīng)類似于眾所周知的 RISC ISA,例如 Arm 或 RISC-V。CPU 微碼是一個(gè)低級(jí)層,它將復(fù)雜的 x86 CISC 指令轉(zhuǎn)換為 CPU 硬件執(zhí)行的簡(jiǎn)單類似 RISC 的內(nèi)部指令。CPU 微碼只能由 CPU 供應(yīng)商修改,但有時(shí)情況并非如此,顯然 AMD 的 Zen 1/2/3/4 微碼的某些部分可以使用 Zentool 進(jìn)行更改。
簡(jiǎn)辰項(xiàng)目成員希望找到可以在現(xiàn)代處理器(例如 EPYC 9004 系列)上修改 AMD 的 Zen CPU 微碼以執(zhí)行 RISC-V 二進(jìn)制文件的人。與使用相同硬件的仿真相比,該補(bǔ)丁有望實(shí)現(xiàn) RISC-V 程序的直接執(zhí)行或顯著提高其運(yùn)行時(shí)速度。該作品必須使用 Coremark 或 Dhrystone 等 RISC-V 版本的基準(zhǔn)測(cè)試。完整的提交包括二進(jìn)制文件或源代碼、配置文件、依賴項(xiàng)和測(cè)試說明。如果在 6 月 6 日截止日期之前僅提交二進(jìn)制文件,則必須稍后通過拉取請(qǐng)求添加相同的源代碼。獲勝者將獲得 20,000 日元(約合 2,735 美元)。
AMD 的 EPYC 9004 系列和類似處理器提供的性能和內(nèi)核數(shù)量在當(dāng)前可用的基于 RISC-V 的處理器上無法實(shí)現(xiàn),因此在 EPYC 上執(zhí)行專有的 RISC-V 程序是一個(gè)合理的想法。然而,Ycombinator 的人指出,微碼旨在修復(fù)內(nèi)部錯(cuò)誤,而不是完全取代前端 ISA,甚至不清楚微碼是否可以完全重寫。
早在 2010 年代中期,AMD 就計(jì)劃同時(shí)提供 x86-64 和 Armv8-A Zen CPU(AMD 首席架構(gòu)師 Mike Clarke 最近召回了這一點(diǎn)),因此很可能有一個(gè)支持 Aarch64 前端 ISA 的 Zen 1 微架構(gòu)微碼。也就是說,Zen 1 CPU 可以具有多個(gè)微碼層“插槽”,一個(gè)支持 x86-64,另一個(gè)支持 Aarch64。但我們懷疑情況是否如此,因?yàn)楝F(xiàn)代 CPU 具有非常徹底的硬件性能優(yōu)化,其中包括微碼和內(nèi)核其余部分之間的硬線優(yōu)化。AMD 幾乎沒有開發(fā)過支持 Zen 64/2/3/4 處理器的 Aarch3 或 RISC-V 的微碼,因此這些 CPU 的微碼層嚴(yán)格來說是 x86-64,幾乎沒有足夠的微碼空間從頭開始重寫它們。
“這是不可能實(shí)現(xiàn)的,”一位名叫 Monocasa 的評(píng)論者寫道。“沒有足夠的可重寫微碼來做到這一點(diǎn),即使是一個(gè)超級(jí)慢的黑客攻擊。即使所有微碼都是可重寫的,微碼也是現(xiàn)代 x86 內(nèi)核上的一種后備路徑,快速路徑是 x86 指令的硬連線解碼。即使情況并非如此,微碼解碼和跳轉(zhuǎn)本身也是針對(duì) x86 指令格式的硬連線。即使情況并非如此,微作也非常非 RISC。
一位評(píng)論者批評(píng)了比賽形式,認(rèn)為這是一種以不到 3,000 美元的薪水完成復(fù)雜工作的方法。
評(píng)論