以下の内容はhttps://msyksphinz.hatenablog.com/entry/2024/03/18/040000より取得しました。


RISC-Vの高性能アウト・オブ・オーダCPU XiangShanについての資料を読む (3. Microarchitecture Design and Implemenation)

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

次は、マイクロアーキテクチャのトピックについて。

xiangshan-doc.readthedocs.io


XiangShanには3つの世代がある。

  • YQH : 28nm でテープアウトし1.3GHz。性能的にはSPEC CPU2006 7.01 @1GHz
  • NH : 14nmでテープアウトし2.0GHz。性能的にはSPEC CPU2006 20 @2GHz
  • KMH : Vector拡張とハイパーバイザー拡張を実装。
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-2-Microarchitecture.pdf より引用
  • まずは第1世代のYQHについて。
    • 11ステージの6命令デコード・リネーム
    • TAGE-SC-Lの分岐予測器を実装
    • 整数物理レジスタ160エントリ、浮動小数点物理レジスタ160エントリ
    • 192エントリのROB、64エントリのLQ、48エントリのSQ
    • 各機能ユニットには16エントリのRS
    • 16KBのL1命令キャッシュ、128KBのL1plus命令キャッシュ
    • 32KBのL1データキャッシュ
    • 32エントリのITLB / DTLB, 4KエントリのSTLB
    • 1MBのインクルーシブ・L2キャッシュ
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-2-Microarchitecture.pdf より引用
  • YQHのマイクロアーキテクチャ(パイプライン)
    • ディスパッチするときにレジスタを読むスタイル。14Read / 8Write
    • 最大コミット数は6命令/1サイクル
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-2-Microarchitecture.pdf より引用
  • 第2世代、NHのアーキテクチャ
    • 整数物理レジスタ196エントリ、浮動小数点物理レジスタ192エントリに増強
    • ROBは256エントリに増強、80エントリのLQ、64エントリのSQに増強
    • 算術演算ユニットは各32エントリのRS
    • 64KBのL1命令キャッシュ
    • 64KBのL1データキャッシュ
    • 80エントリのDTLB、32エントリのITLB、2KエントリのSTLB
    • 1MBのノン・インクルーシブL2キャッシュ
    • 6MBのノン・インクルーシブL3キャッシュ
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-2-Microarchitecture.pdf より引用
  • NHのフロントエンド
    • フロントエンドをProducerとConsumerに分離。
      • Producer : 分岐予測ユニット
      • Consumer : 命令フェッチユニット
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-2-Microarchitecture.pdf より引用
  • 分岐予測について
    • 3ステージの分岐予測
      • ステージ1: uBTB
      • ステージ2: FTB + TAGE (FTB : Fetch Target Bufferのこと)
      • ステージ3: SC + ITAGE + RAS (SCは良く分からないが、Statistical Correctorのこと?)
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-2-Microarchitecture.pdf より引用
  • 命令キャッシュ
    • 64KBの4-way VIPTブロッキングキャッシュ
    • TileLinkをサポート
    • PLRUのリプレースメント
https://github.com/OpenXiangShan/XiangShan-doc/blob/main/tutorial/20240302-HPCA24-2-Microarchitecture.pdf より引用



以上の内容はhttps://msyksphinz.hatenablog.com/entry/2024/03/18/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14