BOOM
Awesome RISC-V

BOOM

Ecossistema RISC-V

BOOM é um núcleo RISC-V fora de ordem escrito em Chisel. Ele pode executar instruções em uma ordem diferente daquela em que o programa as lista, o que mantém mais unidades de execução ocupadas. O SonicBOOM, sua terceira versão, foi lançado em 2020.

Visão geral

BOOM, a Berkeley Out-of-Order Machine, é um núcleo RISC-V de 64 bits escrito em Chisel, uma linguagem de construção de hardware baseada em Scala. Um núcleo é a parte de um chip que executa instruções. Um núcleo out-of-order pode executar instruções em uma ordem diferente daquela em que o programa as lista. Quando uma instrução aguarda dados da memória, as instruções posteriores que não dependem dela prosseguem, e mais unidades de execução do núcleo permanecem ocupadas.

BOOM implementa RV64GC, o conjunto de instruções de 64 bits de uso geral com instruções comprimidas, oferece suporte a memória virtual e inicializa o Linux. Sua terceira versão, SonicBOOM, obtém 6,2 CoreMark por MHz. CoreMark é um programa de benchmark padrão, e dividir sua pontuação pela frequência de clock mede quanto trabalho o núcleo realiza por ciclo de clock.

Histórico

Christopher Celio iniciou o BOOM no Berkeley Architecture Research group da UC Berkeley e descreveu seu design em um relatório técnico de 2015. Uma segunda versão veio em 2017. Jerry Zhao, Ben Korpan, Abraham Gonzalez e Krste Asanović apresentaram o SonicBOOM, a terceira versão, em 2020.

Onde é usado

BOOM é um núcleo de pesquisa. Seus parâmetros definem a largura do pipeline, o número de unidades de execução e o tamanho das filas internas, o que permite aos pesquisadores medir como cada escolha afeta o desempenho. Os usuários constroem sistemas BOOM por meio do Chipyard porque o repositório contém apenas o núcleo.

Fontes

  1. riscv-boom README
  2. The Berkeley Out-of-Order Machine, UCB/EECS-2015-167
  3. BOOM v2, UCB/EECS-2017-157
  4. SonicBOOM, CARRV 2020