No mês passado, uma equipe de pesquisadores de segurança do Google lançou uma ferramenta que pode modificar o microcódigo dos processadores da AMD com base na microarquitetura zen, o Zentool. Embora essa seja uma vulnerabilidade de segurança, para alguns, esta é uma oportunidade; Membros do chinês Projeto Jiachen estão realizando um concurso com o objetivo de Desenvolva um microcódigo para a CPU moderna baseada em Zen da AMD para fazê-los executar programas RISC-V nativamente. O objetivo final pode ser a criação de uma CPU RISC-V definitiva usando o silício já disponível.
O X86 é um conjunto de instruções complexo do conjunto de instruções (CISC) (ISA) desenvolvido há cerca de 48 anos. No entanto, internamente, os núcleos X86 modernos dependem de motores proprietários, executando um ISA de conjunto de instruções reduzido (RISC) para lidar com instruções complicadas. Os ISAs internos do RISC não estão documentados, mas geralmente devem ser semelhantes aos conhecidos ISAs RISC, como ARM ou RISC-V. O Microcódigo CPU é uma camada de baixo nível que traduz instruções complexas de CISC x86 em instruções internas simples do tipo RISC que o hardware da CPU é executado. O microcódigo da CPU só é modificável pelo fornecedor da CPU, mas às vezes esse não é o caso e aparentemente algumas partes do zen 1/2/3/4 do AMD Microcode podem ser alteradas usando o Zentool.
Os membros do projeto Jianchen querem encontrar alguém, que possa modificar o microcódigo Zen CPU da AMD em um processador moderno-digamos, uma série EPYC 9004-para executar binários RISC-V. Espera-se que o patch permita a execução direta dos programas RISC-V ou aumente significativamente sua velocidade de tempo de execução em comparação com a emulação usando o mesmo hardware. O trabalho deve ser testado usando versões RISC-V de benchmarks como Coremark ou Dhrystone. Um envio completo inclui binários ou código -fonte, arquivos de configuração, dependências e instruções de teste. Se apenas os binários forem enviados antes do prazo em 6 de junho, o código -fonte idêntico deverá ser adicionado via solicitação de tração posteriormente. O vencedor receberá ¥ 20.000 (aproximadamente US $ 2.735).
O EPYC 9004-Série e processadores similares da AMD oferecem desempenho e contagem de núcleos que não são possível para os processadores baseados em RISC-V atualmente disponíveis, portanto, a execução de programas proprietários RISC-V em Epycs é uma idéia plausível. No entanto, o Microcode foi projetado para corrigir erros internos, em vez de substituir completamente o ISA frontal e não está claro se o microcódigo pode ser completamente reescrito, pessoas em YCombinator observado.
Em meados de 2010, a AMD planejava oferecer CPUs X86-64 e ARMV8-A ZEN (algo recordado recentemente por Mike Clarke, arquiteto-chefe da AMD), por isso é altamente provável que houve um microarquitetura de microcódigo para a microarquitetura Zen 1 que apoiou um ISA do front-end AARCH64. Dito isto, as CPUs Zen 1 podem apresentar vários slots de camada de microcódios ‘, um suportando o X86-64 e outro AARCH64. Duvidamos que esse seja o caso, pois as CPUs modernas têm otimizações de desempenho de hardware muito completas, que incluem otimizações de hardwire entre o microcódigo e o restante do núcleo. A AMD quase nunca desenvolveu um microcódigo que suporta AARCH64 ou RISC-V para processadores Zen 2/3/4 e, portanto, a camada de microcódios dessas CPUs é estritamente x86-64 e dificilmente há espaço para microcódigo para reescrever a partir do zero.
“Isso não é possível”, um comentarista chamado Escreveu monocase. “There is not enough rewritable microcode to do this even as a super slow hack. And even if all of the microcode were rewritable, microcode is kind of a fallback pathway on modern x86 cores with the fast path being hardwired decode for x86 instructions. And even if that were not the case the microcode decode and jump is itself hardwired for x86 instruction formats. And even if that were not the case the micro-ops are very não-risc. ”
Um comentarista criticou o formato do concurso, sugerindo que é uma maneira de realizar um trabalho complexo por menos de US $ 3.000.
Em geral, embora o conceito de microcódigo re-reconhecido seja interessante e estimula a discussão sobre projetos alternativos da CPU, suporte multi-ISA e otimização de baixo nível, não parece que o concurso atinja a meta declarada. Talvez, reescreva (ou melhor, recileme) um programa RISC-V ou dois para X86 CPUs faz mais sentido?