Rocket Chip
Awesome RISC-V

Rocket Chip

Ecossistema RISC-V

O Rocket Chip gera núcleos RISC-V in-order e sistemas completos em chip a partir do código-fonte Chisel. A SiFive baseou seus primeiros núcleos comerciais nele, e o Chipyard o utiliza como base para seus projetos.

Visão geral

O Rocket Chip é um gerador de sistemas em chip RISC-V. Um sistema em chip é um único chip que contém núcleos de processador junto com caches, controladores de memória e conexões para outros dispositivos. Um gerador é um programa que produz um projeto de hardware a partir de um conjunto de parâmetros, de modo que o mesmo código pode gerar um projeto pequeno de núcleo único ou um grande projeto com vários núcleos.

Seu núcleo principal, o Rocket, é in-order, o que significa que ele executa as instruções na ordem em que o programa as lista. O Rocket tem um pipeline de cinco estágios, um arranjo em que cada instrução passa por cinco etapas e várias instruções estão em andamento ao mesmo tempo. Ele implementa o conjunto de instruções RISC-V de 64 bits com uma unidade de gerenciamento de memória, o hardware por trás da memória virtual, para que possa inicializar o Linux. O projeto é escrito em Chisel, uma linguagem de construção de hardware baseada na linguagem de programação Scala.

Histórico

O Rocket Chip vem da UC Berkeley, do grupo que projetou o conjunto de instruções RISC-V. Krste Asanović e colegas o descreveram no relatório técnico de 2016 "The Rocket Chip Generator", e Berkeley construiu muitos chips de pesquisa com ele.

A SiFive, empresa fundada pelos criadores do RISC-V, baseou seus primeiros núcleos comerciais no Rocket. A CHIPS Alliance, um grupo de hardware aberto da Linux Foundation, agora hospeda o projeto.

Onde é usado

A maioria dos usuários chega ao Rocket por meio do Chipyard, um framework que combina Rocket, BOOM e outros blocos em chips completos. O Chipyard executa esses chips em simulação de software, em FPGAs ou por meio de ferramentas de fabricação. Um FPGA é um chip que pode ser reconfigurado para se comportar como um circuito diferente, e os pesquisadores o utilizam para testar um projeto em velocidade real antes da fabricação.

Fontes

  1. rocket-chip README
  2. The Rocket Chip Generator, UCB/EECS-2016-17