Uma arquitetura do conjunto de instruções (ISA) define a interface de software através da qual, por exemplo, uma unidade de processador central (CPU) é controlada. Ao contrário dos primeiros sistemas de computador que não definiram um ISA padrão como tal, com o tempo os benefícios de compatibilidade e portabilidade de ter um ISA padrão se tornou óbvio. Mas é claro que a melhor parte dos padrões é que existem muitos deles e, portanto, todo fabricante da CPU criou o seu próprio.
Ao longo das décadas de 1980 e 1990, o número de ISAs convencionais caiu acentuadamente à medida que a indústria de computadores se uniu em torno de alguns principais em cada tipo de aplicação. O X86 da Intel venceu os servidores de desktop e menores, enquanto o ARM proclamava a vitória em dispositivos de baixa potência e portátil e, para o Big Iron, você sempre teve o poder ISA da IBM. Desde a última vez que cobrimos as guerras da ISA em 2019, muitas coisas mudaram, incluindo a Apple mudando seus sistemas de desktop para armar do x86 com o Apple Silicon e, finalmente, MIPS experimentando uma vida após a morte na forma de Loongarch.
Enquanto isso, seis anos após o artigo de Guerras Isa mencionado acima, no qual o recém-chegado RISC-V foi coberto, isso parece não ter feito o respingo que alguns esperavam. Isso levanta questões sobre o que podemos esperar do RISC-V e de outros ISAs no futuro, bem como como relevante ter ISAs diferentes é quando se trata de aspectos como o desempenho da CPU e sua microarquitetura.
Risc em todos os lugares
Ao contrário do passado, quando as microarquiteturas da CPU ainda estavam em fluxo, hoje em dia todos parecem coalescer em torno de um conjunto semelhante de recursos, incluindo execução fora de ordem, pré-busca, paralelismo supers escalar, execução especulativa, previsão de ramificação e designs de vários core. Atualmente, a maior parte do desempenho é obtida ao abordar gargalos específicos e otimização para cenários de uso específicos, o que resultou em coisas como multithreading simultâneas (SMT) e vários projetos de decodificadores de pipelining e instruções.
Hoje, as CPUs são quase tudo o que nos velhos tempos teriam sido chamados de arquiteturas RISC (conjunto de instruções reduzidas), com um número relativamente pequeno de instruções fortemente otimizadas. Usando abordagens como a renomeação do registro, as CPUs podem lidar com muitos threads simultâneos de execução, que para o lado do software que fala com o ISA é completamente invisível. Para o software, existe apenas o arquivo de um registro e, a menos que algo quebre a ilusão, como quando a execução especulativa tem um dia ruim, cada tópico de execução está ciente apenas de seu próprio contexto e nada mais.
Então, se as microarquiteturas da CPU praticamente se fundiram neste momento, que diferença faz o ISA?
Conjunto de instruções Nitpicking
Dentro do mundo de Isa Flamewars, as linhas de batalha atualmente se uniram principalmente em torno de tópicos como os prós e os contras dos slots de atraso, bem como os de instruções compactadas, e a definição de sinalizadores de status versus a verificação resulta em uma filial. É incrivelmente difícil comparar as ISAs de maneira Apple-VS-Aples, pois a microarquitetura subjacente de uma CPU baseada no ARMV8 disponível comercialmente será diferente de uma CPU baseada em X86_64- ou Rv64i- ou Rv64IMAC semelhante. Aqui, a natureza altamente modular do RISC-V também adiciona complicações significativas.
Se olharmos para onde o RISC-V está sendo usado hoje em um ambiente comercial, ele é principalmente como controladores incorporados simples, onde essa modularidade é uma vantagem e a compatibilidade com o zilhão de outras possíveis combinações de extensão RISC-V não se preocupa. Aqui, o uso do RISC-V tem uma vantagem óbvia sobre as ISAs proprietárias internas, devido à economia de terceirizar para um projeto padrão aberto. No entanto, essa também é uma das principais fraquezas disso, pois a falta de um ISA fixo ao longo do padrão de ARMV8 e X86_64 torna tarefas como apoiar um kernel Linux para ele muito mais complicado do que deveria.
Isso levou o Google a extrair o suporte inicial do RISC-V do Android devido à complexidade do suporte de balão. Como toda a CPU baseada em RISC-V é necessária apenas para apoiar o conjunto de instruções inteiras básicas e muitas coisas ficam opcionais, da multiplicação inteira (M), Atomics (A), Manipulação de Bit (B) e além, todo o software direcionado ao RISC-V deve testar explicitamente que as instruções e funcionalidade necessárias estão presentes, ou use um outono.
Os temperamentos também são correndo quente quando se trata da falta de armadilhas inteiras do RISC-V e carregue instruções. Quanto a saber se as instruções compactadas são uma boa idéia, o acampamento do ARMV8 não vê necessidade delas, enquanto o acampamento RISC-V está feliz em defendê-los, e enquanto isso, x86_64 ainda usa o dobro do dobro de comprimentos de instrução, cortesia de seu legado de cisc, que faria x86_64 duas vezes, o que é o melhor de si.
Enquanto isso, um engenheiro com forte experiência no lado do braço das coisas escreveu uma longa dissertação Um tempo de volta aos prós e contras desses três ISAs. A conclusão deles é que o RISC-V é “minimalista a uma falha”, com instruções sobrepostas e nenhum código ou sinalizador de condição, em vez de exigir instruções de comparação e ramo. Este último ponto em cascata em vários compromissos, que é uma das principais razões pelas quais o RISC-V é visto como problemático por muitos.
Em resumo, em vez de vantagens claras do RISC-V contra os campos onde outros ISAs já estão estabelecidos, seus pontos fortes parecem estar principalmente onde sua modularidade extrema e falta de requisitos de licenciamento são vistos como argumentos convincentes, que não devem impedir que ninguém desfrute de uma boa guerra de chamas agora e depois.
O ângulo da China

Embora todos os lugares que não sejam a China tenham praticamente o KELESED em torno dos três ISAs já descritos, sempre há exceções. Ao contrário do malfadado da Rússia, uma palavra-instrução Elbrus Arquitetura, os esforços relacionados à CPU da China levaram significativamente mais frutas. Começando com o Loongson As CPUs, a cena da arquitetura de microprocessador caseira da China começou a assumir a forma real.
Originalmente, essas eram CPUs compatíveis com MIPs. Mas, começando com o 3A5000 em 2021, as CPUs chinesas começaram a usar o novo Loongarch Isa. Descrito como um ‘pouco como mips ou risc-v’ no Documentação do kernel Linux Neste ISA, possui três variantes, variando de uma versão reduzida de 32 bits (LA32R) e 32 bits padrão (LA32s) a uma versão de 64 bits (LA64). Na CPU atual LS3A6000, existem 16 núcleos com suporte SMT. Em Revisões Esses chips mostram -se que estão rapidamente alcançando as CPUs modernas x86_64, inclusive quando vem para overclock.
Obviamente, sendo estes hardware exclusivo da China, poucos revisores ocidentais sujeitaram o LS3A6000, ou seu próximo sucessor, o LS3A7000, a um teste independente.
Além de Loongarch, outras empresas chinesas estão usando o RISC-V para seus próprios microprocessadores, como Spacemituma empresa focada na IA, cujos produtos também incluem processadores mais genéricos. Isso inclui a CPU octa-core K1 que viu usar no Musebook laptop. Como em todos os núcleos comerciais baseados em RISC-V hoje, não são monstros de velocidade, e até o sifive Premier P550 Soc recebe profundamente espancado Mesmo por um Raspberry Pi 4 já bastante com o SoC baseado em braço.
Talvez o uso mais bem-sucedido do RISC-V na China seja os núcleos da popular faixa de MCUs Esp32-C do Espressif, embora aqui também sejam os designs de extremidade inferior em relação aos núcleos XTensa LX6 e LX7 que alimentam o MCUS de mais de ponta.
Considerando tudo isso, não seria surpreendente se a cena de Isa da China fora do incorporado apresentará principalmente Loongarch, muito braço, alguns x86_64 e uma pitada de RISC-V para completar tudo.
É tudo sobre o IP
A distinção entre ISAs e microarquitetura pode ser vista claramente contrastando o silício da Apple com outras CPUs baseadas em ARMV8. Embora todos eles suportem uma versão do mesmo ARMV8 ISA, o molho mágico está no propriedade intelectual (IP) blocos integrados ao chip. Eles variam de controladores de memória, blocos PCIE Serdes e gráficos integrados (IGPU), aos recursos de criptografia e segurança. A menos que você seja uma Apple ou Intel com sua própria solução GPU, você estará licenciando o bloco IGPU, juntamente com outros blocos de IP dos fornecedores de IP.
Esses blocos de IP oferecem o benefício de poder usar a funcionalidade pronta para uso com características de desempenho conhecidas, mas também estão onde grande parte do custo de um design de microprocessador acaba indo. O desenvolvimento dessa funcionalidade a partir do zero pode pagar por si mesmo se você reutilizar os mesmos blocos repetidamente, como a Apple ou a Qualcomm. Para uma empresa de ferragens iniciantes, este é um dos maiores investimentos, e é por isso que eles tendem a licenciar um design totalmente fabricado do ARM.
O custo real do ISA em termos de licenciamento é efetivamente um erro de arredondamento, enquanto o benefício de poder aproveitar o software e as ferramentas existentes é o principal driver. É por isso que um novo ISA como Loongarch pode muito bem representar um verdadeiro desafio para as ISAs estabelecidas a longo prazo, porque está tendo a chance de se desenvolver em um mercado muito grande com demanda garantida.
Mimado pela escolha
Enquanto isso, o Poder Isa também está disponível gratuitamente para qualquer pessoa usar sem custos de licenciamento; O único grande requisito é a conformidade com o poder ISA. A Fundação OpenPower agora também é parte da fundação Linuxcom uma variedade de núcleos de energia IBM em aberto. Estes incluem o A2O núcleo Isso é baseado no núcleo A2i que alimentou o processador celular do Xbox 360 e PlayStation 360, bem como o Design de referência do Microwatt Isso é baseado no poder mais recente ISA 3.0.
Seja qual for a sua fantasia, e independentemente de você estar apenas mexendo em um hobby ou projeto comercial, parece que há muita diversidade no espaço Isa para dar a volta. Embora seja humano escolher um favorito e favorecê -lo, há algo a ser dito para cada ISA. Seja uma ferramenta de ensino melhor, mais adequada para designs incorporados altamente personalizados, ou simplesmente porque passa décadas de software sem confusão, todos eles têm seu lugar.