自作CPUの面積削減の試行をしている間、どこかの段階でサイクル性能がデグレードしてしまった。 デグレードする前のリビジョンを特定したので、デグレード前とデグレード後の実行ログは取得できたのだが、Dhrystoneの実行ログは非常に長いので、どこが原因なのか詳細を把握できない。 もう少し、LSUパイプラインがどのような理由でリプレイ状態に入っているのかを統計的に取ってみる。 特定のコードで問題が発生することがつかめてきた。具体的には、printf()を実行する以下のコードだ。 static void vprintfmt(void (*putch)(int, void**), void **put…