HPCA2024で開催された、RISC-Vのアウト・オブ・オーダCPU XiangShanについての資料が公開されていたので、読んでみることにした。 じっくり読みたいので、1ページずつ要点を抑えていく。
次に、XiangShanを支えるAgile Developmentについて見て行く。
最初のアプローチとしては、Chiselを使って開発するというものである。
新しいハードウェア記述言語を使用することによって、デザインのオブジェクト指向化を行い、よりコンフィギャラブルにすることが目的である。
Agile Developmentにおいて必要な要素は何か?それは検証である。
Agile Developmentを支える検証ツールチェインについて見て行く。
Difftestというテスト環境を用意する。命令がコミットされると、命令セットシミュレータが同じ命令を実行し、結果を比較する。
性能評価のために、RTLシミュレーションとチェックポイントの機能を導入する。 チェックポイントによって、コンパイル20分と、シミュレーションはおよそ5時間で実行することができる。
これには4つのステップが必要である:
- 高速なシミュレータを使って、命令群をスライスしながらシミュレーションする
- クラスタリングアルゴリズムを用いて、代表的なスライスを選出する
- RTLシミュレーションを実行する
- 再構築する
この手法によって、17個の新しいツールを作成して、検証を高速化した。この成果はMICRO2022に掲載された。
XiangShanでは、3つのポイントのうち2.5個を達成した。
研究のための理想的なインフラストラクチャについて考える。
- Imprecise Store Exceptions (ISCA23)で使用された。
- Fast, Robust and Transferable Prediction for Hardware Logic Synthesis (MICRO23)で使用された。