FPGA開発日記

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

自作CPUの動作周波数改善検討 (11. 命令の切り出しデバッグ)

RVC命令の切り出しの部分を改善について実装を進めていて、Dhrystoneでの基本的な動作を検証している。

おおよそRVCの16ビットの切り出しについては動作するようになった。周波数的にも許容範囲だ。 問題はキャッシュブロックを跨いだ時だ。 キャッシュブロックを跨いだ時、前のブロックの情報を覚えておいてデコードを行う必要がある。

この時、16ビットの命令ビットを覚えていると、その時にデコードしないといけない命令フィールドは仮想的に16ビット増える。 こうするとさらに余計に16ビットデコードしないといけない感じがするが、実際にはそうではない。

前のキャッシュブロックの16ビットと、次のキャッシュブロックの16ビットは絶対に結合されるのだから、デコードは1番目のブロックだけRVIで決め打ちでデコードして、それ以降のブロックはシフトする必要はない。 こうすることで、デコード幅が増えることを防ぐことができるように思う。