BOOM
Awesome RISC-V

BOOM

RISC-Vエコシステム

BOOMはChiselで書かれたアウトオブオーダーRISC-Vコアです。プログラムに記載された順序とは異なる順序で命令を実行できるため、より多くの実行ユニットを稼働させ続けることができます。第3版であるSonicBOOMは2020年に登場しました。

概要

BOOM(Berkeley Out-of-Order Machine)は、Scala上に構築されたハードウェア構築言語Chiselで書かれた64ビットRISC-Vコアです。コアとは、チップの中で命令を実行する部分のことです。アウトオブオーダーコアは、プログラムに書かれた順序とは異なる順序で命令を実行できます。ある命令がメモリからのデータを待っている間、それに依存しない後続の命令が先に進み、コアの実行ユニットのより多くが稼働し続けます。

BOOMは、圧縮命令を含む汎用64ビット命令セットであるRV64GCを実装し、仮想メモリをサポートし、Linuxを起動します。その第3版であるSonicBOOMは、1MHzあたり6.2 CoreMarkを記録します。CoreMarkは標準的なベンチマークプログラムであり、そのスコアをクロック周波数で割ることで、コアがクロックサイクルあたりどれだけの処理を行うかを測ります。

履歴

Christopher CelioはUC BerkeleyのBerkeley Architecture ResearchグループでBOOMを開始し、2015年のテクニカルレポートでその設計を説明した。2017年には第2版が続いた。Jerry Zhao、Ben Korpan、Abraham Gonzalez、Krste Asanovićは2020年に第3版であるSonicBOOMを発表した。

使用場所

BOOMは研究用コアです。そのパラメータはパイプライン幅、実行ユニット数、内部キューのサイズを設定し、研究者が各選択が性能にどう影響するかを測定できるようにします。リポジトリにはコアのみが含まれるため、ユーザーはChipyardを通じてBOOMシステムを構築します。

ソース

  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