FPGA開発日記

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

自作RISC-V CPUコアで構成を変えながら性能を測定していく (4. Pipeline Visualizerを導入する)

自作RISC-V CPUコアの方は、いくつかのコンフィグレーションにおいてDhrystoneを完走させることができるくらいになってきた。

ちょっとパイプラインのボトルネックが見えないので、Pipeline Visualizerを導入してみることにした。 使ってみたのはKanataというツールで、DSLによってパイプラインのログを出力していく。 これによりパイプラインをGUIで可視化することが出来るようになる。このツールにはKonataというツールを使う。 まずはこのDSLの理解から始まる。

github.com

github.com

コマンド自体は、サイクル単位で記述していくようだ。時間の逆走はできない。

命令の定義とログの記述はILで行うようだ。

I       4       4       0
L       4       0       80000008:li      t0, 0

この'4'という数値シミュレーション内で一いに定義しなければならないらしく、しかも数値を飛ばすとパイプラインビューア中でそのまま空白ができてしまうので連番として扱う必要があるようだ。従って命令ディスパッチの時点一いに割り当てていくことにする。

S       4       0       Di
C       1
E       4       0       Di
S       4       0       Rn
C       1
C       1
E       4       0       Rn
S       4       0       EX0

こんな感じで、サイクルが進む度にC 1を挿入して、その度に当該命令がどのステージにあるのか記録していく。 命令が終了した時点で、Rコマンドで命令を終了させる。

E       4       0       EX3
R       4       4       0

これで1命令のトレースが終了となる。次はこれをパイプラインビューアに表示させてみよう。