自作CPUの面積削減の試行をしている間、どこかの段階でサイクル性能がデグレードしてしまった。 デグレードする前のリビジョンを特定したので、デグレード前とデグレード後の実行ログは取得できたのだが、Dhrystoneの実行ログは非常に長いので、どこが原因なのか詳細を把握できない。
もう少し、LSUパイプラインがどのような理由でリプレイ状態に入っているのかを統計的に取ってみる。
以下がデグレードしたバージョン:EX2_HAZ_STQ_NONFWD_HAZ
が2種類あるのは、上がリプレイ待機時にタイムアウトまで到達してしまった場合、下がそうでない場合。
========================================== Replay Hazard Count EX2_HAZ_STQ_NONFWD_HAZ : 2056 EX2_HAZ_STQ_NONFWD_HAZ : 584 EX2_HAZ_RMW_ORDER_HAZ : 0 EX2_HAZ_L1D_CONFLICT : 5664 EX2_HAZ_MISSU_FULL : 0 EX2_HAZ_MISSU_ASSIGNED : 53 ==========================================
次がデグレードしていないバージョン。こう見ると、STQのハザードの数は大して変わらないが、一方でL1Dアクセスのコンフリクトが頻発している。これはどういうことだ?
========================================== Replay Hazard Count EX2_HAZ_STQ_NONFWD_HAZ : 2422 EX2_HAZ_STQ_NONFWD_HAZ : 56 EX2_HAZ_RMW_ORDER_HAZ : 0 EX2_HAZ_L1D_CONFLICT : 4793 EX2_HAZ_MISSU_FULL : 0 EX2_HAZ_MISSU_ASSIGNED : 43 ==========================================