どの種類の分岐予測がより重要ですか?


11

分岐予測には2つの異なるタイプの状態があることがわかりました。

  1. スーパースカラー実行では、分岐予測が非常に重要であり、フェッチ遅延ではなく実行遅延が主です。

  2. 命令パイプラインでは、命令は実際には後で実行されないため、フェッチがさらに問題になります。

これらのうちどれが非常に重要ですか(これらのどれが現在CPUで本当に重要であるかなど)?両方が同等に重要である場合、または2番目の方がより重要である場合、2つの命令パイプライン(おそらく長さの半分)がないのはなぜですか?次に、ブランチに応じて、それらの1つを選択してから、再び人口を開始しますはじめに?


1
状況によっては両方とも重要かもしれません。
ラファエル

回答:


6

どちらのケースが蔓延しているのかはわかりませんが、二重パイプラインの提案についていくつか考えさせてください。

まず第一に、アクティブなときにエネルギーを2倍に消費し、熱を2倍にするワイヤーを2倍にする必要があります。必要はありませんが、その一方で、それは完全に役に立たないでしょう。したがって、現代のプロセッサでは珍しいリソースの有効利用ではないと主張することができます。

より根本的に、確率に基づいて1つのブランチを好まない限り、どのバージョンを書き通すかをどのようにして知るのでしょうか。いずれの場合も、他のプロセッサーはとにかく決定を待つ必要があるため、何も保存しない可能性があります。それらのいずれかに固執する場合、ロールバックの確率とコストは現在と同じです。

大まかな計算をしてみましょう。簡単にするために、1つではなく2つのパイプラインを処理しても、追加の管理オーバーヘッドが発生しないと仮定します。予想されるコスト(エネルギー、熱など)は、で、パイプラインは1つです(はいずれかの代替を実行するコスト、はロールバックの確率、は他を実行するコストのないロールバックのコストです。代替)しかし、またはいずれかとが比較的小さい場合どちらかはよりもはるかに大きく、C=c+p(cr+c)cpcr2c2c+pcrCpcrp確かにそうです(私の知る限り、最新の分岐予測は90%を超える精度を持っています)。そして、私たちはこのコストのために多くを手に入れません!予想される実行時間は、1つのパイプラインを使用したと respです。2つの ; 小さい場合、時間の節約は無視できます。t+p(tr+t)tt+ptrp


私の知る限り、Intelは「ブランチの両側の命令の読み取り」と「ブランチの両側の命令の実行」を試み、それをやめました。何も得られなかったか、コストと複雑さが高すぎて、同じコストでさまざまな方法でより多くの利益を得ることができたためです。
gnasher729 2018

@ gnasher729そしてそれはおそらく、このような機能に関連するセキュリティの欠陥について学ぶ前だったのでしょうか?
ラファエル

2

ある意味では、フェッチされない命令は実行できないため、命令のフェッチでは分岐予測の効果がより重要になります。

ブランチの両方のパスを実行することに関して、これは熱心な実行と呼ばれ、かなり大幅に研究されてきました。Augustus K. UhtとVijay Sindagiの「Disjoint Eager Execution:A Optimal Form of Speculative Execution」(1995)は一見の価値があるかもしれません。

熱心な実行にはいくつかの問題があります。深い推測の場合、追跡する必要のあるパスの数は指数関数的に増加する可能性があります(分岐した各分岐パスは分岐に遭遇する可能性があります)。多くの場合、分岐予測は非常に正確(> 90%正解)であるため、常に両方のパスを実行すると無駄になります。熱心な実行は、不要なコンテンツでキャッシュを「汚染」する可能性もあります。(上記の論文は、これらの問題のいくつかを回避するためにインテリジェントに制限された熱心な実行を提案しました。)代替パスの制限された熱心なフェッチは問題が少なく、短いパイプラインでの予測ミス回復の遅延を減らすのに多少魅力的です。

提案されている別のアプローチは、動的に「ハンモック」ブランチ(命令フローのメインパスに戻る短い前方ブランチ)を予測することです。Artur Klauser et al。の「予測されない命令セットアーキテクチャ用の動的ハンモック予測」(1998)は、そのアイデアを読む価値があるかもしれません。(Hyesoon Kim et al。の「Wish Branches:Combining Conditional Branching and Predication for Adaptive Predicated Execution」は、ハンモックの予測を容易にし、予測の難しいループブランチにこの予測方法を拡張するISAブランチへの追加を提案しています。)


それは本当にいい答えです!ありがとうございました。:-)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.