フロントエンドの命令の切り出し方法について、少し考えなおした。
RVCを展開してプリデコードされた命令は、FIFOに貯められる。 FIFOの各エントリはキャッシュブロックに貯められる命令の最大サイズで格納されるが、これをディスパッチできるサイズに切り出す必要がある。
FIFOの先頭の命令を取り出し、これを切り出して一部を後続のパイプラインステージに渡すことになる。
一方で切り出した余りの命令はどこかにバックアップしておく必要があり、そのためにr_f3_payloadに格納する。
r_f3_payloadが有効な間は後続のパイプラインへの接続はそちらからで、r_f3_payloadが無くなるとFIFOをポップして新たな命令を取り出す、という方式だ。
