FPGA開発日記

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

自作プロセッサの性能解析とその対策(3. Loadデータのレイテンシを1つ削減)

自作RISC-Vプロセッサの性能向上対策その3。

ロード命令のレイテンシは、プロセッサの性能に重大な影響を与えることは既知の通りだ。

プロセッサのLoad-Useの性能を向上させるために、ロード命令のレイテンシを1つ短縮しよう。 もともとこれはロード処理の直後にFFが入っており、さらにWriteBackステージでFFが入っており無駄だったので、これを削除して短縮するという訳だ。

f:id:msyksphinz:20161123155412p:plain:w400

ここで、LSUのFFは、直後にWBUでFFで再度受けるので不要。削除してレイテンシを1つ削減させる。

f:id:msyksphinz:20161123155503p:plain:w400

上記のように、FFを削除してシミュレーションを実行する。

この2つの性能を比較した。

Cycle Rate
Load Latency +1 52915 100%
Load Latency +0 49889 94.2%

IPCの経過グラフは以下のようになった。

f:id:msyksphinz:20161123155916p:plain:w999

青のグラフが改善前のIPC経過、赤のグラフが改善後のIPC経過。若干グラフの平均値が大きくなっている。

参考情報 : Superscalar Microprocessor Designによる解説

マイクロプロセッサの性能比較といえば、Mike Johnsonによる"Superscalar Microprocessor Design"が有名だ。

Superscalar Microprocessors Design (Prentice Hall Series in Innovative Technology)

Superscalar Microprocessors Design (Prentice Hall Series in Innovative Technology)

こちらの解説では、ストアフォワーディングによる解説しか載っていなかったが、これらの性能向上対策でも、大きくて4%程度の性能向上であった。