FPGA開発日記

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

RISC-Vのトレースフォーマット仕様書が公開されたので読んでみる(7. リファレンスアルゴリズム)

RISC-V トレースフォーマットの勉強。続き。

github.com

github.com

1章ずつ、翻訳ではなく日本語でサマライズしていく形式で進めていく。


6. リファレンスアルゴリズム

以下のようなエンコーダの実装を考える。

  • Qualified? : 命令がフィルタリングのクライテリアを満たしているか?そうであればトレースされるべきか?
  • Branch? : 命令が分岐命令か?
  • e_ccd : 例外を受け取っているか、もしくはコンテキストが変わり推論不可能なPCの変更が発生しているか?
  • te_inst : エンコーダによって送信されるパケットのタイプ。
  • ppch : 特権が変更されたか、もしくはコンテキストが変更され通知する必要があるか?
  • updiscon : 推論できないPCのジャンプが発生した。命令により、ソースコードだけでは推論できないプログラムカウンタの変更が発生した。
  • resync_br : resyncカウンタが最大値に到達し、分岐マップに出力されていないエントリが存在する。
  • er_ccdn : 命令のリタイアとともに例外が通知され、コンテキストが変更されて推論できないPCのジャンプが発生する。
  • exc_only : 同時の命令リタイアが無く、例外のみ発生した。
  • rpt_br : 分岐マップがフルになったが、分岐予測ミスが発生した。
  • cci : コンテキストの変更が非同期に通知された。
f:id:msyksphinz:20200327000256p:plain