今のところ自作CPUは面積が大きすぎる。Vivadoでの論理合成結果をもっと詳細に見ていくことにする。
ちょっと考え方を変えて、BOOMv3と同じキューやパイプライン数で、どの程度面積に違いが生じるのかを見ていくことにする。
BOOMv3のコンフィグレーションから読み取れるのは以下の値だ。MediumBoomConfigを参考にした。
- ディスパッチ数:2
- ALUパイプラインの数:2
- LSUパイプラインの数:1
- FPUパイプラインの数:1
- ALUの発行キューの大きさ:各パイプラインで10
- LSUの発行キューの大きさ:12
- LDQの大きさ:16
- STQの大きさ:16
- MSHRの大きさ:2
- ROBのエントリ数:32
- 分岐命令の発行キューの大きさ:12
- FPUの発行キューの大きさ:4
とまあ、この辺のコンフィグレーションをコピーして同じように論理合成をしてみる。
+----------------------------+--------+-------+-----------+-------+ | Site Type | Used | Fixed | Available | Util% | +----------------------------+--------+-------+-----------+-------+ | CLB LUTs* | 153079 | 0 | 230400 | 66.44 | | LUT as Logic | 150073 | 0 | 230400 | 65.14 | | LUT as Memory | 3006 | 0 | 101760 | 2.95 | | LUT as Distributed RAM | 2844 | 0 | | | | LUT as Shift Register | 162 | 0 | | | | CLB Registers | 77405 | 0 | 460800 | 16.80 | | Register as Flip Flop | 77341 | 0 | 460800 | 16.78 | | Register as Latch | 64 | 0 | 460800 | 0.01 | | CARRY8 | 1039 | 0 | 28800 | 3.61 | | F7 Muxes | 11203 | 0 | 115200 | 9.72 | | F8 Muxes | 1637 | 0 | 57600 | 2.84 | | F9 Muxes | 0 | 0 | 28800 | 0.00 | +----------------------------+--------+-------+-----------+-------+
一方で、BOOMv3の結果は以下。桁違いに違うわけではない。桁違いに違うのは性能のほうで、今の状態だとDhrystoneでもかなり性能に差が出る。 今のところ、フロントエンドに問題があるのは明らかなので、この辺を強化していかなければなるまい。
+----------------------------+--------+-------+-----------+-------+ | Site Type | Used | Fixed | Available | Util% | +----------------------------+--------+-------+-----------+-------+ | CLB LUTs* | 136798 | 0 | 230400 | 59.37 | | LUT as Logic | 131265 | 0 | 230400 | 56.97 | | LUT as Memory | 5533 | 0 | 101760 | 5.44 | | LUT as Distributed RAM | 5500 | 0 | | | | LUT as Shift Register | 33 | 0 | | | | CLB Registers | 67720 | 0 | 460800 | 14.70 | | Register as Flip Flop | 67719 | 0 | 460800 | 14.70 | | Register as Latch | 1 | 0 | 460800 | <0.01 | | CARRY8 | 1055 | 0 | 28800 | 3.66 | | F7 Muxes | 11540 | 0 | 115200 | 10.02 | | F8 Muxes | 2421 | 0 | 57600 | 4.20 | | F9 Muxes | 0 | 0 | 28800 | 0.00 | +----------------------------+--------+-------+-----------+-------+