自作RISC-V CPUコアの方は、いくつかのコンフィグレーションにおいてDhrystoneを完走させることができるくらいになってきた。
前回の結果に基づいて、どの部分でストールが発生しているかというのをチェックする。
まず、命令バッファが埋まり切っているタイミングで、どのリソースが足りていないのかをチェックする。
このタイミングでは、STQが埋まってしまっており命令が動かなくなっている。 STQを見てみると、確かにほぼ埋まり切っている(が、満タンではない)これ以上命令が進むことが出来ない。
なんでSTQが埋まり切ってしまっているかというと、STQはMissUnitとST-Bufferの両方と関わりがあるので、それぞれを確認する。
では、STQのステートマシンの動きが遅いのか?
うーん言えることは、
- フォワーディングが遅くて命令の発行が遅れている
WAIT_COMMIT
が長く、ストア命令が確定するまで時間がかかっている
ということは、まずはSTQの大きさを大きくしてみるところかなあ。しかし、フォワーディングが速くなければ結局STQも早く動くことが出来ない感じがしている。