BOOM
Awesome RISC-V

BOOM

Ecosistema RISC-V

BOOM es un núcleo RISC-V fuera de orden escrito en Chisel. Puede ejecutar instrucciones en un orden distinto al que las enumera el programa, lo que mantiene más unidades de ejecución ocupadas. SonicBOOM, su tercera versión, salió en 2020.

Descripción general

BOOM, la Berkeley Out-of-Order Machine, es un núcleo RISC-V de 64 bits escrito en Chisel, un lenguaje de construcción de hardware basado en Scala. Un núcleo es la parte de un chip que ejecuta instrucciones. Un núcleo fuera de orden puede ejecutar instrucciones en un orden distinto al que las enumera el programa. Cuando una instrucción espera datos de la memoria, las instrucciones posteriores que no dependen de ella continúan, y más unidades de ejecución del núcleo permanecen ocupadas.

BOOM implementa RV64GC, el conjunto de instrucciones de propósito general de 64 bits con instrucciones comprimidas, admite memoria virtual y arranca Linux. Su tercera versión, SonicBOOM, obtiene 6.2 CoreMark por MHz. CoreMark es un programa de referencia estándar, y dividir su puntuación entre la frecuencia de reloj mide cuánto trabajo realiza el núcleo por ciclo de reloj.

Historial

Christopher Celio inició BOOM en el grupo Berkeley Architecture Research de UC Berkeley y describió su diseño en un informe técnico de 2015. Una segunda versión le siguió en 2017. Jerry Zhao, Ben Korpan, Abraham Gonzalez y Krste Asanović presentaron SonicBOOM, la tercera versión, en 2020.

Dónde se usa

BOOM es un núcleo de investigación. Sus parámetros establecen el ancho del pipeline, el número de unidades de ejecución y el tamaño de las colas internas, lo que permite a los investigadores medir cómo afecta cada elección al rendimiento. Los usuarios construyen sistemas BOOM a través de Chipyard porque el repositorio contiene solo el núcleo.

Fuentes

  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