自作RISC-V CPUコアの方は、いくつかのコンフィグレーションにおいてDhrystoneを完走させることができるくらいになってきた。
ちょっとパイプラインのボトルネックが見えないので、Pipeline Visualizerを導入してみることにした。 使ってみたのはKanataというツールで、DSLによってパイプラインのログを出力していく。 これによりパイプラインをGUIで可視化することが出来るようになる。このツールにはKonataというツールを使う。 まずはこのDSLの理解から始まる。
コマンド自体は、サイクル単位で記述していくようだ。時間の逆走はできない。
命令の定義とログの記述はI
とL
で行うようだ。
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命令のトレースが終了となる。次はこれをパイプラインビューアに表示させてみよう。