BOOM
Awesome RISC-V

BOOM

Экосистема RISC-V

BOOM — это внеочередное ядро RISC-V, написанное на Chisel. Оно может выполнять инструкции в порядке, отличном от того, в котором их перечисляет программа, что позволяет держать больше исполнительных блоков занятыми. SonicBOOM, его третья версия, вышел в 2020 году.

Обзор

BOOM, Berkeley Out-of-Order Machine, — это 64-битное ядро RISC-V, написанное на Chisel, языке конструирования аппаратуры, построенном на Scala. Ядро — это часть чипа, которая выполняет инструкции. Ядро с внеочередным выполнением может выполнять инструкции в ином порядке, чем они перечислены в программе. Когда одна инструкция ожидает данные из памяти, последующие инструкции, которые от неё не зависят, продолжают выполняться, и больше исполнительных блоков ядра остаются занятыми.

BOOM реализует RV64GC — набор инструкций общего назначения для 64-битных систем со сжатыми инструкциями, поддерживает виртуальную память и загружает Linux. Его третья версия, SonicBOOM, набирает 6.2 CoreMark на МГц. CoreMark — это стандартная тестовая программа, и деление её результата на тактовую частоту измеряет, сколько работы ядро выполняет за такт.

История

Кристофер Селио основал BOOM в группе Berkeley Architecture Research в Калифорнийском университете в Беркли и описал его архитектуру в техническом отчёте 2015 года. Вторая версия последовала в 2017 году. Джерри Чжао, Бен Корпан, Абрахам Гонсалес и Крсте Асанович представили SonicBOOM, третью версию, в 2020 году.

Где используется

BOOM — это исследовательское ядро. Его параметры задают ширину конвейера, количество исполнительных блоков и размер внутренних очередей, что позволяет исследователям измерять, как каждый выбор влияет на производительность. Пользователи собирают системы BOOM через Chipyard, поскольку репозиторий содержит только ядро.

Источники

  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