この記事は自作CPU Advent Calendar 2023の24日目の記事です。 みなさんが使っているパソコンのCPUは、そのほとんどがアウトオブオーダー実行をしているはずです。 しかし、アウトオブオーダーCPUの作り方が書かれた教科書はあまりないような気がします。 トマスロのアルゴリズムというものが紹介されることもありますが、これは現代のアウトオブオーダー実行方式とはかなり違います。 この記事では、より洗練された現代的なアウトオブオーダー実行をするプロセッサを作ってみます。 全体的な構成 今回作るプロセッサは、FPGA上で動き、RV32IZmmul命令セットを動かすことができます。 東大のプロセッサ実験と同じルール(命令メモリ32KiB、データメモリ64KiB)で作ります(プロセッサ設計で一番難しいキャッシュを考えなくていいのですごく楽です)。 パイプラインは、以下のように設計しまし