Vorige maand heeft een team van Google -beveiligingsonderzoekers een tool uitgebracht die de microcode van AMD’s processors kan wijzigen op basis van de Zen Microarchitecture, de Zentool. Hoewel dit een beveiligingskwetsbaarheid is, is dit voor sommigen een kans; Leden van het Chinese Jiachen-project organiseren een wedstrijd met als doel een microcode te ontwikkelen voor AMD’s moderne Zen-gebaseerde CPU om ze Native RISC-V-programma’s te laten uitvoeren. Het ultieme doel zou een ultieme RISC-V CPU kunnen bouwen met behulp van reeds beschikbaar silicium.
X86 is een complexe instructieset computer (CISC) instructieset architectuur (ISA) die zo’n 48 jaar geleden is ontwikkeld. Intern vertrouwen moderne X86 -cores echter op eigen motoren met een gereduceerde instructiesetcomputer (RISC) ISA om gecompliceerde instructies aan te kunnen. De interne RISC ISA’s zijn niet gedocumenteerd, maar ze moeten over het algemeen vergelijkbaar zijn met bekende RISC ISA’s, zoals ARM of RISC-V. CPU-microcode is een laag op laag niveau die complexe X86 CISC-instructies vertaalt in eenvoudige RISC-achtige interne instructies die de CPU-hardware heeft uitgevoerd. CPU -microcode is alleen maar verondersteld te zijn door CPU -leverancier, maar soms is dit niet het geval en blijkbaar kunnen sommige delen van AMD’s Zen 1/2/3/4 microcode worden gewijzigd met behulp van het Zentool.
Het Jianchen-projectleden willen iemand vinden, die AMD’s Zen CPU-microcode kan wijzigen op een moderne processor-bijvoorbeeld een EPYC 9004-serie-om RISC-V-binaire bestanden uit te voeren. De patch zal naar verwachting ofwel directe uitvoering van RISC-V-programma’s mogelijk maken of hun runtime-snelheid aanzienlijk verhogen in vergelijking met emulatie met dezelfde hardware. Het werk moet worden getest met behulp van RISC-V-versies van benchmarks zoals Coremark of Dhrystone. Een volledige inzending omvat binaries of broncode, configuratiebestanden, afhankelijkheden en testinstructies. Als alleen binaire bestanden worden ingediend vóór de deadline op 6 juni, moet de identieke broncode later via Pull -aanvraag worden toegevoegd. De winnaar krijgt ¥ 20.000 (ongeveer $ 2.735).
AMD’s EPYC 9004-serie en soortgelijke processoren bieden prestaties en kerntellingen die niet haalbaar zijn op momenteel beschikbare op RISC-V gebaseerde processors, dus het uitvoeren van eigen RISC-V-programma’s op EPYCS is een plausibel idee. Microcode is echter ontworpen om interne bugs te repareren in plaats van de front-end ISA volledig te vervangen en het is zelfs onduidelijk of de microcode volledig kan worden herschreven, merkten mensen bij Ycombinator op.
In het midden van de 2010 was AMD van plan om zowel X86-64 als Armv8-A Zen CPU’s aan te bieden (iets dat onlangs werd teruggeroepen door Mike Clarke, AMD’s Chief Architect), dus het is zeer waarschijnlijk dat er een microcode was voor de Zen 1-microarchitectuur die een AARCH64-end-end ESA ondersteunde. Dat gezegd hebbende, Zen 1 CPU’s kunnen meerdere “slots” van meerdere microcodelaag bevatten, een ondersteunende X86-64 en een andere AARCH64. We betwijfelen dat dit het geval is, omdat moderne CPU’s zeer grondige optimalisaties van hardwareprestaties hebben, waaronder hardwire -optimalisaties tussen de microcode en de rest van de kern. AMD heeft bijna nooit een microcode ontwikkeld die AARCH64 of RISC-V voor ZEN 2/3/4 processors ondersteunt en daarom is de microcodelaag van deze CPU’s strikt X86-64 en er is nauwelijks genoeg microcoderuimte voor het opnieuw schrijven van helemaal opnieuw.
“Dit is niet haalbaar”, schreef een commentator genaamd Monocasa. “Er is niet genoeg herschrijfbare microcode om dit te doen, zelfs als een super langzame hack. En zelfs als de hele microcode herschreven zou zijn, is Microcode een soort fallback-route op moderne X86-cores met het snelle pad is hardwired decode voor X86-instructies. En zelfs als dat niet het geval was, is de microcode-decode en spring de case zelf Non-Risc. ”
Eén commentator bekritiseerde het wedstrijdformaat, wat suggereert dat het een manier is om complex werk te doen voor minder dan $ 3.000 loon.
Over het algemeen, hoewel het concept van herschreven microcode interessant is en de discussie over alternatieve CPU-ontwerpen, multi-ISA-ondersteuning en optimalisatie op laag niveau stimuleert, lijkt het niet alsof de wedstrijd het vermelde doel zal bereiken. Misschien is het logischer om een RISC-V-programma voor X86 CPU’s te herschrijven (of liever opnieuw te compileren).