FPGA開発日記

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

自作RISC-V CPUコア実装(LDQ/STQ間のフラッシュインタフェースの実装 2)

自作CPUの実装、ロードストア命令の物理アドレスが決まらないうえでのハザードが性能ボトルネックになっているのを見た。 一応、簡単なベンチマークでこの問題が解決できることを見たので、次にDhrystoneを流してどれくらい実行速度が向上するのか見てみよう。

Dhrystoneを流してみると、途中でフリーズしてしまった。これは私の実装ミス。

これまで、命令の「フラッシュ」の定義を「命令グループの中で、例外信号を含み、かつどれか1つ以上の命令が死んでいない状態」としていたが、ANOTHER_FLUSHは少し様子が違う。ANOTHER_FLUSHはフラッシュされる命令自体も死んでおり、有効な命令が1つも存在していない状態となる。この際のリカバリについて考慮する必要があった。

この際の実装についていろいろ変更しつつDhrystoneを実行している。まだ、Dhrystone内でANOTHER_FLUSHを発見できない... 早くそこまで到達したい...

f:id:msyksphinz:20211206004716p:plain