FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

自作CPUの面積削減検討 (5. リプレイの要因解析)

自作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
==========================================