FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

RISC-Vの高性能アウト・オブ・オーダCPU XiangShanについての資料を読む (2. XiangShanのAgile Development)

HPCA2024で開催された、RISC-Vのアウト・オブ・オーダCPU XiangShanについての資料が公開されていたので、読んでみることにした。 じっくり読みたいので、1ページずつ要点を抑えていく。

xiangshan-doc.readthedocs.io


次に、XiangShanを支えるAgile Developmentについて見て行く。

最初のアプローチとしては、Chiselを使って開発するというものである。

新しいハードウェア記述言語を使用することによって、デザインのオブジェクト指向化を行い、よりコンフィギャラブルにすることが目的である。

Agile Developmentにおいて必要な要素は何か?それは検証である。

Agile Developmentを支える検証ツールチェインについて見て行く。

Difftestというテスト環境を用意する。命令がコミットされると、命令セットシミュレータが同じ命令を実行し、結果を比較する。

性能評価のために、RTLシミュレーションとチェックポイントの機能を導入する。 チェックポイントによって、コンパイル20分と、シミュレーションはおよそ5時間で実行することができる。

これには4つのステップが必要である:

  1. 高速なシミュレータを使って、命令群をスライスしながらシミュレーションする
  2. クラスタリングアルゴリズムを用いて、代表的なスライスを選出する
  3. RTLシミュレーションを実行する
  4. 再構築する

この手法によって、17個の新しいツールを作成して、検証を高速化した。この成果はMICRO2022に掲載された。

XiangShanでは、3つのポイントのうち2.5個を達成した。

研究のための理想的なインフラストラクチャについて考える。

  • Imprecise Store Exceptions (ISCA23)で使用された。
  • Fast, Robust and Transferable Prediction for Hardware Logic Synthesis (MICRO23)で使用された。