Movatterモバイル変換


[0]ホーム

URL:


Ir para o conteúdo
Wikipédia
Busca

RISC-V

Origem: Wikipédia, a enciclopédia livre.
Esta página cita fontes, mas não cobrem todo o conteúdo
Esta páginacita fontes, mas quenão cobrem todo o conteúdo. Ajude ainserir referências (Encontre fontes:Google (N • L • A • I • WP refs)  • ABW  • CAPES).(junho de 2021)
Logo do conjunto de instruções RISC-V

RISC-V é umconjunto de instruções (ISA) baseado em princípiosRISC (acrônimo de Reduced Instruction Set Computing, em português, “Computação de conjunto de instruções reduzidas”). RISC-V élivre para ser usado para qualquer finalidade, permitindo a qualquer pessoa ou empresa projetar e vender chips e software RISC-V sem precisar pagarroyalties.

Placa de desenvolvimento que integra RISC-V

Embora não seja o primeiro conjunto de instruções livre, ele é importante porque foi projetado com foco para dispositivos computadorizados modernos, comocomputação em nuvem, aparelhos móveis,sistemas embarcados einternet das coisas. O conjunto também possui uma gama considerável de software de suporte, o que evita um problema usual de novos conjuntos de instruções.

O projeto começou em 2010 naUniversidade da Califórnia, em Berkeley, mas muitos colaboradores são voluntários ou fazem parte de outra empresas e trabalham no projeto de fora da universidade.[1]

O RISC-V foi projetado para implementações de alto desempenho e baixo consumo de energia. Sendo um conjunto limpo e modular, trabalhando com bases de 32, 64 e 128 bits, com várias opções de extensão emponto flutuante.

Importância

[editar |editar código]
Protótipo de um chip RISC V.

O objetivo dos autores do RISC-V era de fornecer diversos designs deCPU diferentes sob alicença BSD. Tal licença permite que designs baseados em RISC-V possam ser implementados tanto de maneira aberta como proprietária, ao contrário de outros designs comoARM ouMIPS, que cobram taxas pelo uso de suas patentes além de requereremacordos de não-divulgação para liberação de suas respectivas documentações.

O seu caráter aberto também facilita um possível uso educacional, a escrita de compiladores e sistemas operacionais otimizados além da auditoria de segurança da arquitetura.

Desenvolver uma nova arquitetura de CPU requer um esforço conjunto de experts de diversas áreas, o que torna a criação de uma arquitetura aberta viável extremamente complicada. O sucesso do RISC-V foi possível graças ao trabalho de diversos especialistas e voluntários, o que de acordo com seus contribuidores o torna um projeto provindo do esforço comunitário.

História

[editar |editar código]

Antecessores

[editar |editar código]

A ideia de arquiteturas com conjunto de instruções reduzida (RISC) é oriunda dos anos 1980.[2] Em 1990, foi criada a ISA DLX para uso primariamente educacional, sem atingir sucesso comercial. Versões antigas da ISA ARM (versão 2 e anteriores) tem seus conjuntos de instruções como parte dodomínio público, sendo utilizadas como base para três implementações abertas que nunca chegaram a ser fabricadas.[3][4] OpenRISC foi criado com base na DLX, recebendo implementações com núcleos de 32 e 64 bits, mas sem sucesso em larga escala.

Fundação

[editar |editar código]

O projeto RISC-V iniciou-se quando Krste Asanović notou que haviam usos e viabilidade para um sistema computacional aberto, decidindo então desenvolver e publicar em um curto projeto de verão. O objetivo era criar um projeto com aplicações acadêmicas e industriais.[5] O projeto também contou com o auxílio deDavid Patterson, um dos idealizadores da ideia original da arquitetura RISC,[2] e com financiamento inicial daDARPA.

Apoiadores

[editar |editar código]

RISC-V conta com a participação de empresas do ramo como: AMD, Andes Technology,BAE Systems, Berkeley Architecture Research, Bluespec, Inc., Cortus,Google, GreenWaves Technologies,Hewlett Packard Enterprise,Huawei,IBM, Imperas Software, ICT, IIT Madras, Lattice Semiconductor, Mellanox Technologies, Microsemi,Micron,Nvidia,NXP,Oracle,Qualcomm, Rambus Cryptography Research,Western Digital, e SiFive. A arquitetura está oficialmente suportada peloLinux versão 6.5[6][7]

Implementações

[editar |editar código]

Várias implementações (tanto abertas como fechadas) estão sendo ou já foram desenvolvidas sobre RISC-V, dentre elas:

Disponíveis Comercialmente

[editar |editar código]
  • N25 eNX25 da Andes Technology Corporation, uma das primeiras empresas a apoiar a fundação RISC-V.[8]
  • UmSoC 64-bits de quatro núcleos e um SoC compatível com a plataformaArduino criados pela SiFive.
  • Uma família de processadores baseados nos subsets RV32GC e RV64GC produzidos pela Imperas para sistemas embarcados.
  • GAP8, um processador 32-bits de 1+8 núcleos, além de um SoC e placa de desenvolvimento baseados em tal, criados pela GreenWaves Technologies.[9]

Em Desenvolvimento

[editar |editar código]
  • Seis CPUs com diferentes aplicações como IoT e servidores sendo desenvolvidos pelo Instituto Indiano de Tecnologia Madras.[10]
  • Uma nova versão do processador Falcon presente em placas de vídeo da linhaGeForce da Nvidia.[11]
  • Uma CPU para sistemas embarcados desenvolvida pela ASTC.[12]
  • Um dos fundadores daAdapteva planeja usar RISC-V como base para um sucessor de sua linha de aceleradores de hardware.[13]
  • A organização sem fins lucrativos LowRISC planeja desenvolver um SoC aberto baseado na ISA do RISC-V 64 bits.[14]
  • O laboratório de computação daUniversidade de Cambridge em parceria com o projetoFreeBSD, realizou umaconversão do mesmo para RISC-V para ser usado em pesquisas de hardware e software.
  • AUniversidade de Bolonha em parceria com oInstituto Federal de Tecnologia de Zurique desenvolveu o processador aberto PULPino baseado em RISC-V.[15]
  • A Western Digital anunciou planos para utilizar processadores RISC-V em vários de seus futuros produtos.[16]
  • A Esperanto Technologies anunciou que está desenvolvendo diversos chips baseados em RISC-V, como o ET-Maxiom para aplicações de alta performance, o ET-Minion com alta eficiência energética e o ET-Graphics para processamento gráfico.[17]

Design

[editar |editar código]

Conjunto Base e extensões

[editar |editar código]

RISC-V foi criado com modularidade em mente, e categoriza partes de seu conjunto como extensões, separando-as por número de bits, base numérica, aplicação e extras. Quando uma extensão é marcada como "congelada", isto significa que esta provavelmente não receberá alterações, exceto em sua documentação.

O conjunto básico do RISC-V é o Conjunto de Instruções com Inteiros "RV32/64/128I" ou "RV32E"(com apenas 16 registradores, para uso em sistemas embarcados).

BaseDescriçãoVersãoCongelada?
RV32IConjunto de Instruções com Inteiros2.0Sim
RV32EConjunto de Instruções com Inteiros (sistemas embarcados)1.9Não
RV64IConjunto de Instruções com Inteiros2.0Sim
RV128IConjunto de Instruções com Inteiros1.7Não

Extensões extras podem então ser adicionadas a base: Multiplicação e Divisão de Inteiros ("M"), Instruções Atômicas ("A") para realizar leitura e escrita simultânea,Ponto FlutuanteIEEE de precisão simples ("F"), dupla ("D") ou quadrupla ("Q"), aleḿ da extensão "compacta" ("C") que visa reduzir o tamanho dos binários para a plataforma.

Existem planos para extensões que suportemVirtualização,[18]Hipervisores, Manipulação de Bits ("B"), Ponto Flutuante Decimal ("L"),SIMD (do português Instrução Única, Dados Diversos) ("P"), Processamento Vetorial ("V") e Memória Transacional ("T"), dentre outras.[19]

ExtensãoDescriçãoVersãoCongelada?
MExtensão para Multiplicação e Divisão de Inteiros2.0Sim
AExtensão para Instruçoes Atômicas2.0Sim
FExtensão para Ponto Flutuante de Precisão Simples2.0Sim
DExtensão para Ponto Flutuante de Precisão Dupla2.0Sim
QExtensão para Ponto Flutuante de Precisão Quadrupla2.0Sim
LExtensão para Ponto Flutuante Decimal0.0Não
CExtensão para Instruções Compactas2.0Sim
BExtensão para Manipulação de Bits0.0Não
JExtensão para Linguagens Dinamicamente Traduzidas0.0Não
TExtensão para Memória Transacional0.0Não
PExtensão para Instruções SIMD0.1Não
VExtensão para Operações Vetoriais0.2Não
NExtensão para Interrupções a nível de Usuário1.1Não

Registradores

[editar |editar código]

RISC-V conta com um registrador com valor constante 0, 31 registradores para inteiros e 32 registradores opcionais para ponto flutuante (incluídas na extensão "F"). Já o RISC-V para sistemas embarcados (base "E") conta com apenas 16 registradores.[19]

Memória

[editar |editar código]

Assim como a maioria de designs baseados em RISC, RISC-V é uma arquitetura de Load/Store, onde só acessa a memória para leitura ou escrita.

A memória é organizada em bytes de 8 bits, em ordemlittle-endian.[19] Leituras e escritas operam com palavras de 8 bits ao tamanho máximo suportado pelo computador.

Aritmética

[editar |editar código]

O conjunto base "I" do RISC-V contém as instruções matemáticas básicas de adição, subtração, deslocamento de bits, lógica bit-a-bit além de comparação. Estas podem simular a maioria dos outros conjuntos de instruções RISC-V com software. (As instruções atômicas são uma exceção notável.) As instruções RISC-V do conjunto "I" não possuem a contagem de zeros à esquerda e de campos de bits normalmente utilizadas para acelerar operações com ponto flutuante em softwares, considerando um processador que opera puramente com números inteiros. No entanto, enquanto nominalmente na extensão de manipulação de bits, as extensões ratificadas Zbb, Zba e Zbs contêm outras instruções do tipo inteiro, incluindo uma instrução de contagem de zeros à esquerda.[20]

O conjunto de extensão "M" inclui multiplicação e divisão de números com ou sem sinal, incluindo suporte a tais operações com precisão dupla assim como multiplicações e divisões em que o produto possui a palavra de dados de maior e menor significância em que a multiplicação de dois operandos de 32 bits pode resultar em um produto de 64 bits, ou uma divisão de dois operandos de 32 bits que resulta em um quociente e um resto de divisão, em que em ambos os casos, é necessário separar em duas palavras de dados, respeitando a ordem de significância da informação. O documento da ISA recomenda que os projetistas de CPUs e compiladores estabeleçam uma sequência padronizada de instruções de multiplicação e divisão, considerando a ordem de significância das palavras de dados, em uma única operação, se possível.

O conjunto de extensão "F" inclui operações com números de ponto flutuante além de incluir 32 registradores adicionais aos registradores da base (31+1). As instruções de ponto flutuante de precisão dupla(conjunto D) geralmente assumem que os registradores de ponto flutuante são de 64 bits (ou seja, largura dupla), e o subconjunto F é coordenando com o conjunto D. Uma ISA de ponto flutuante de precisão quádrupla de 128 bits(conjunto Q) também é definida. As CPUs RISC-V sem ponto flutuante podem usar uma biblioteca de software de ponto flutuante de modo que ainda assim seja possível executar as instruções.[19]

Referências

[editar |editar código]
  1. «Contributors - RISC-V Foundation».RISC-V Foundation (em inglês). Consultado em 13 de junho de 2018. Arquivado dooriginal em 13 de junho de 2018 
  2. abPatterson, David A.; Ditzel, David R. (1 de outubro de 1980).«The case for the reduced instruction set computer».ACM SIGARCH Computer Architecture News.8 (6): 25–33.ISSN 0163-5964.doi:10.1145/641914.641917 
  3. «Amber ARM-compatible core :: Overview :: OpenCores».opencores.org (em inglês). Consultado em 15 de junho de 2018 
  4. «ARM4U :: Overview :: OpenCores».opencores.org (em inglês). Consultado em 15 de junho de 2018 
  5. «Instruction Sets Should be Free»(PDF). Regents of the University of California 
  6. https://www.cnx-software.com/2023/08/28/linux-6-5-release-notable-changes-arm-risc-v-and-mips-architectures/
  7. https://novidad.es/linus-torvalds-lanca-o-esperado-linux-6-5-trazendo-uma-nova-era-de-recursos/
  8. «Andes Technology - RISC-V Foundation».riscv.org (em inglês). Consultado em 15 de junho de 2018 
  9. «GreenWaves GAP8 is a Low Power RISC-V IoT Processor Optimized for Artificial Intelligence Applications».CNXSoft - Embedded Systems News (em inglês). 27 de fevereiro de 2018 
  10. «IIT Madras Open Source Processor Project - RapidIO.org».RapidIO.org (em inglês). 26 de agosto de 2014 
  11. RISC-V (25 de julho de 2016),Tuesday @ 1100 NVIDIA RISC V Evaluation Story Joe Xie, NVIDIA, consultado em 17 de junho de 2018 
  12. «Grupos do Google».groups.google.com. Consultado em 17 de junho de 2018 
  13. «Why I will be using RISC-V in my next chip».AI (em inglês). 7 de janeiro de 2016 
  14. «lowRISC · lowRISC».www.lowrisc.org (em inglês). Consultado em 17 de junho de 2018 
  15. «pulp-platform/pulpino».GitHub (em inglês). Consultado em 17 de junho de 2018 
  16. «Western Digital To Accelerate The Future Of Next-Generation Computing Architectures For Big Data And Fast Data Environments | Western Digital (WD)».www.wdc.com (em inglês). Consultado em 17 de junho de 2018 
  17. «Esperanto exits stealth mode, aims at AI with a 4,096-core 7nm RISC-V monster».WikiChip Fuse (em inglês). 1 de janeiro de 2018 
  18. «Draft Privileged ISA Specification v1.10 - RISC-V Foundation».RISC-V Foundation (em inglês) 
  19. abcd«Specifications - RISC-V Foundation».RISC-V Foundation (em inglês) 
  20. Harris, Harris, Sarah, David (2021).Digital Design and Computer Architecture: RISC-V Edition. [S.l.]: Elsevier Science & Technology Books.ISBN 9780128200650. Verifique|isbn= (ajuda) 

Ligações externas

[editar |editar código]
Arquiteturas de processadores baseados emRISC
Obtida de "https://pt.wikipedia.org/w/index.php?title=RISC-V&oldid=71526956"
Categorias:
Categorias ocultas:

[8]ページ先頭

©2009-2026 Movatter.jp