RISC-V トレースフォーマットの勉強。続き。
1章ずつ、翻訳ではなく日本語でサマライズしていく形式で進めていく。
6. リファレンスアルゴリズム
以下のようなエンコーダの実装を考える。
- Qualified? : 命令がフィルタリングのクライテリアを満たしているか?そうであればトレースされるべきか?
- Branch? : 命令が分岐命令か?
- e_ccd : 例外を受け取っているか、もしくはコンテキストが変わり推論不可能なPCの変更が発生しているか?
- te_inst : エンコーダによって送信されるパケットのタイプ。
- ppch : 特権が変更されたか、もしくはコンテキストが変更され通知する必要があるか?
- updiscon : 推論できないPCのジャンプが発生した。命令により、ソースコードだけでは推論できないプログラムカウンタの変更が発生した。
- resync_br : resyncカウンタが最大値に到達し、分岐マップに出力されていないエントリが存在する。
- er_ccdn : 命令のリタイアとともに例外が通知され、コンテキストが変更されて推論できないPCのジャンプが発生する。
- exc_only : 同時の命令リタイアが無く、例外のみ発生した。
- rpt_br : 分岐マップがフルになったが、分岐予測ミスが発生した。
- cci : コンテキストの変更が非同期に通知された。