... | @@ -47,6 +47,8 @@ RV32IM向けにコンパイルしたCoreMarkのトレースは[内部用wiki](ht |
... | @@ -47,6 +47,8 @@ RV32IM向けにコンパイルしたCoreMarkのトレースは[内部用wiki](ht |
|
|
|
|
|
ちなみに、分岐予測ミス時の回復を正しく実装してさえいれば、分岐予測器が間違った実装になっていたとしても、全体として正しく動いてしまいます。しかし、性能はあがりません。そのような、正しく動作するものの性能が思っているものと違うものになってしまう、というバグはパフォーマンスバグと呼ばれます。プログラムが正しく動いていることからだけではバグっているのかはわからないため、シミュレーター上で正しく動いているかを確認する必要があります。
|
|
ちなみに、分岐予測ミス時の回復を正しく実装してさえいれば、分岐予測器が間違った実装になっていたとしても、全体として正しく動いてしまいます。しかし、性能はあがりません。そのような、正しく動作するものの性能が思っているものと違うものになってしまう、というバグはパフォーマンスバグと呼ばれます。プログラムが正しく動いていることからだけではバグっているのかはわからないため、シミュレーター上で正しく動いているかを確認する必要があります。
|
|
|
|
|
|
|
|
なお、条件分岐の方向のみを予測する方法だと、分岐先がわかるのはデコードステージなので、フェッチした命令を破棄しないといけないサイクルができてしまうかもしれません。これに対処するにはどうしたら良いでしょうか?(ヒント:上に書いてある「単純な分岐予測器」を作ってみよう)
|
|
|
|
|
|
### (インオーダーの)スーパースカラ化
|
|
### (インオーダーの)スーパースカラ化
|
|
|
|
|
|
* 難易度:5
|
|
* 難易度:5
|
... | | ... | |