Posts Issued on June 22, 2020

RISC-Vの調査 (9)

posted by sakurai on June 22, 2020 #280

ソースの解読

ここからはソースを読んで行きます。パイプラインプロセッサは、その名のとおり各ステージがパイプラインとして動作するもので、つまりステージ毎にステージを構成するレジスタでできています。逆に、レジスタ以外は全て組み合わせ回路です。これに気づくとソースの理解が速そうです。

難しいのはパイプラインレジスタの更新ロジックで、パイプラインが動作したりストールしたりするのはこのレジスタ更新論理ですが、一方、ステージの実質のロジックは単なる組み合わせ回路です。最も分かりやすいのが演算ステージStage1で、ALU等はファンクション(組み合わせ回路)で記述されます。

それらのファンクションはパイプラインのステージからコールされ、パイプラインにはパイプライ制御のロジックしかなくなります。従って、Fluteの複雑そうな各パイプラインステージは非常に簡単な記述になっています。表280.1に各ステージのbsvで記述された行数を示します。

表280.1 パイプラインステージとその行数
ファイル名 行数
CPU_StageF.bsv 170
CPU_StageD.bsv 153
CPU_Stage1.bsv 336
CPU_Stage2.bsv 627
CPU_Stage3.bsv 245


左矢前のブログ 次のブログ右矢