Contents

RISC-V versus ARM e x86

Quando falamos sobre um conjunto de instruções estamos realmente falando sobre a linguagem que um processador fala e o que ele entende ao ler seu código binário. Ao longo da história da computação existiram vários conjuntos de instruções arquitetônicas ou ISA , muitos deles tiveram seu momento de glória e desapareceram, mas em um mundo dominado por x86 e ARM em todos tipos de dispositivos RISC-V Está começando a surgir como uma alternativa.

O conjunto de instruções RISC-V promete ser uma revolução, principalmente pelo fato de que em muitos mercados relacionados a hardware ele não só permitirá a rápida implantação de soluções específicas, tanto para problemas gerais ou específicos, mas também permite não ter que depender nem de ARM nem de x86. Neste artigo iremos falar sobre as características deste conjunto de instruções e como ele difere dos demais.

O que é RISC-V?

/images/RISC-V-SiFive.jpg

Sob o nome de RISC-V É conhecido como um conjunto de registros e instruções totalmente gratuitos e que não possui propriedade atribuída a uma empresa específica, o que tem a vantagem de não apenas CPUs poderem ser criadas com o referido ISA sem pagar a terceiros. Isso também permite que ele seja modificado para necessidades de projetos específicos, ou seja, chips podem ser criados com versões adaptadas e cortadas do RISC-V para fins específicos, como GPU ou NPU , então nesse ponto é muito parecido com o conceito de software livre, mas em termos de hardware.

Por outro lado, RISC-V Não define um tipo de kernel, mas sim o que cada instrução faz, portanto a implementação do conjunto de registros e instruções depende de cada projetista, mas como no **Linux* * , o objetivo em muitos casos é compartilhar as bibliotecas, neste caso escritas em VHDL e Verilog , para acelerar a criação de novos designs e a adaptação acelerada de novos padrões. Além disso, é ainda possível implementar um processador RISC-V em um FPGA.

Mas especialmente, a popularidade do RISC-V aumentou nos últimos anos devido ao fato de prometer quebrar a hegemonia do ARM em vários setores. E o conjunto de instruções britânico é o mais utilizado atualmente, visto que é utilizado em todos os tipos de dispositivos. No entanto, as mudanças de política da ARM Holdings nos últimos tempos e o susto que fez com que a NVIDIA estivesse prestes a comprar a referida empresa fizeram com que RISC-V se tornasse uma alternativa a ser levada em consideração para o design de novas CPUs e outros chips.

História dele

/images/David-Patterson.jpg

O projeto RISC-V nasceu na faculdade de ciências da computação de Berkeley das mãos do professor David Patterson em 2008, que já havia trabalhado na década de 80 na criação do ** ISA MIPS** e é famoso por ser autor de vários livros didáticos de arquitetura de computadores. Os outros membros do projeto também eram o professor Krste Asanovic e os alunos de pós-graduação da época Yunsup Lee e Andrew Waterman.

Eles terminaram o primeiro CPU em 2011, um protótipo que fabricaram sob o 28nm da STMicroelectronics , em um projeto que contou com empresas tão importantes como Intel e Microsoft. Em 2015 já eram 29 empresas aquelas que faziam parte da Fundação RISC-V e em 2018 começaram a trabalhar com a Fundação Linux para a criação do sistema operacional livre totalmente funcional sob dito conjunto de instruções. Em 2020, para serem totalmente independentes e fora da guerra comercial entre a China e os Estados Unidos, mudaram a sua sede para a Suíça.

Como é o conjunto de instruções RISC-V?

/images/Bloque-basico-arquitectura-RISC-V.jpg

O conjunto de instruções RISC-V Não possui uma única versão base, mas sim diferentes variações que são as seguintes:

-RV32I: Sua unidade de execução principal opera com inteiros de 32 bits e possui 32 registros. -RV32e: Projetado para sistemas embarcados, possui metade dos registros de uso geral que, no caso anterior, 16. -RV64i: é igual ao RV32i, mas com a capacidade de operar com números inteiros de 64 bits. -RV128i: o mesmo caso do anterior, mas operando com instruções de 128 bits.

Além disso, sua forma de percorrer a memória do sistema é Little Endian , isso significa que ele começará a ler a memória do sistema a partir do endereço de memória mais baixo. Em qualquer caso, deve-se levar em consideração que dos conjuntos de instruções base, o RV32i É o que se considera o padrão de fato, sendo os demais variações dele.

Extensões e modularidade

/images/sbc-basado-risc-v.jpg

Os conjuntos de instruções base são fixos, o que significa que nenhuma nova instrução desenvolvida por terceiros pode ser adicionada ao padrão. Porém, a grande maioria das instruções é opcional, o que permite a criação de chips sob o ISA RISC-V mais especializados em uma tarefa específica ou de uso geral, conforme o caso. Essas extensões são as seguintes.

-TO: instruções atômicas ou que podem ser realizadas com uma operação simples. -B: instruções para manipulação de bits -C: capacidade de operar com instruções de 16 bits. -D: instruções de ponto flutuante de precisão dupla (64 bits). -F: igual ao caso anterior, mas com precisão única (32 bits). -H: instruções para hipervisor, para gerenciamento de máquinas virtuais. -J: instruções para idiomas traduzidos dinamicamente -L: instruções para cálculo em decimal. -M: multiplicação e divisão de inteiros -N: instruções para gerenciar interrupções no nível do usuário. -P: bloquear instruções SIMD -P: Ponto flutuante de 128 bits -S: instruções do supervisor -T: instruções para usar memória transacional. -V: instruções para fazer operações com vetores

então um chip RISC-V Sempre terá um dos conjuntos de instruções básicos, mas não terá todas as extensões. Ao contrário do que acontece com ARM e x86 onde qualquer CPU sob o referido ISA Possui um conjunto completo de instruções. Em qualquer caso, no caso destes dois conjuntos de registos e instruções, encontramos também extensões que podem ser vistas em certos processadores e não em outros. Acontece que o nível de modularidade e adaptabilidade do RISC-V é mais antigo.

Decodificação de instruções

/images/tamano-instrucciones-risc-v-e1701510579393.jpg

Uma das peculiaridades dos conjuntos de instruções reduzidos é que seu decodificador pode trabalhar com instruções de tamanho fixo, o que significa que ocupa um certo número de bits na memória e é uma instrução completa. O x86 Por outro lado, embora possuam um ISA mais completo, seu decodificador tem que trabalhar com diferentes tamanhos de instruções, fazendo com que o FrontEnd do processador tenha que gastar mais recursos e um gerenciamento de instruções mais restrito.

As instruções RISC-V , por outro lado, funcionam em blocos de 16 bits. Isso significa que uma instrução de 64 bits será na verdade decodificada como 4 instruções sucessivas de 16 bits, mas será resolvida como uma só. O objetivo é reduzir o consumo de energia e tornar o conjunto de instruções ideal para situações de consumo de energia muito baixo, como seu uso em microcontroladores.

Níveis de privilégio e memória virtual

/images/niveles-privilegio-RISC-V.jpg

O conjunto de instruções RISC-V suporta até três níveis de privilégio diferentes quando se trata de instruções, o que é importante para evitar que uma aplicação execute uma operação ilegal.

-O primeiro nível de privilégio é o modo máquina, é para quando se utiliza o ISA RISC-V em sistemas que não possuem sistema operacional e o que eles fazem é executar diretamente o software. -O segundo nível de privilégio é o do sistema operacional. -O terceiro nível de privilégio é aquele que os aplicativos possuem.

Este é o mesmo conceito dos anéis de execução do x86 , mas com a diferença de que o primeiro nível é ideal para a criação de sistemas embarcados, como o microcontrolador de uma máquina de lavar. De qualquer forma, isso não significa que se trate de um conjunto de instruções simples, pois RISC-V suporta memória virtual por paginação, requisito essencial para o suporte de sistemas operacionais complexos como Linux , * *Windows** ou macOS , embora saibamos que dos dois últimos não existe versão para o referido conjunto de instruções, pelo menos por enquanto.

*️⃣ Link da fonte: