28

パフォーマンスに大きな影響を与えるため、現在のデスクトップ CPU に分岐予測があるかどうか疑問に思うことはありません。もちろんそうです。しかし、さまざまな ARM オファリングについてはどうでしょうか。iPhone または Android フォンには分岐予測機能がありますか? 昔のニンテンドーDS?PowerPC ベースの Wii はどうですか?PS3?

それらが複雑な予測ユニットを持っているかどうかはそれほど重要ではありませんが、少なくとも何らかの動的予測があり、予想される分岐に続く命令を実行するかどうかは重要です。

分岐予測を備えた CPU のカットオフは? 私のデスクトップにはありますが、何十年も前のハンドヘルド電卓には明らかにありません。しかし、動的分岐予測がどこで期待できるかをもっと明確に説明できる人はいますか?

不明な場合は、条件が変化し、実行時に予想されるパスが変化する予測の種類について話しています。

4

5 に答える 5

11

いくつかのステージを超えるパイプラインを備えた CPU には、少なくともいくつかのプリミティブ分岐予測が必要です。そうしないと、どちらに進むかを決定するために計算結果を待って停止する可能性があります。Intel Atom はインオーダー コアですが、パイプラインがかなり深いため、適切な分岐予測子が必要です。

古い ARM 7 の設計は 3 段階のみでした。それを分岐遅延スロット (MIPS では必須、SPARC ではオプション) などと組み合わせると、分岐予測はあまり役に立ちません。

ちなみに、MIPS が 4 つのパイプライン ステージを超えてパフォーマンスを向上させることを決定したとき、分岐遅延スロットは厄介なものになりました。元の設計では、分岐予測子がなかったため、必要でした。したがって、分岐前に実行される最後の命令の前に、分岐命令をシーケンスする必要がありました。パイプラインが長くなると、分岐予測器が必要になり、分岐遅延スロットが不要になりましたが、古いコードを実行するためにはとにかくそれをエミュレートする必要がありました。

分岐遅延スロットの問題は、約 50% の時間しか有効な命令で満たされていないことです。残りの時間は、結果が破棄される可能性が高い命令で埋めるか、NO-OP を使用します。

于 2012-02-19T03:35:53.580 に答える
10

長いパイプラインを備えた最新のハイエンド スーパースカラー CPU (デスクトップやサーバーで一般的に見られるほぼすべての CPU を意味します) は、最近では非常に洗練された分岐予測を備えています。

ほとんどの ARM CPU には分岐予測がないため、シリコンと電力消費が節約されますが、ARM CPU は一般に比較的短いパイプラインを持っています。また、ARM ISA でのほとんどの命令の条件付き実行のサポートは、必要な分岐の数を減らすのに役立ちます (したがって、分岐予測ミスによるストールのコストを軽減します)。

于 2011-11-23T11:35:27.150 に答える
4

ARM がより複雑になる一方で、分岐予測はますます重要かつ強調されています。

たとえば、ARMv8 と呼ばれる新しい 64 ビット ARM アーキテクチャでは、条件付き実行のほとんどの使用が廃止され (主にレジスタ数の増加に伴う命令エンコーディング スペースの制限による)、分岐予測に依存してパフォーマンスを許容レベルに維持しています。

新しい ARMv7-a デバイスでも、SOでソートされていないデータの質問などのひどいケースを確認できます。この分岐予測の改善は約 3 倍です。

于 2014-03-16T07:26:33.703 に答える
0

順不同のプロセッサで動的分岐予測子を期待できます。これらのプロセッサは、パイプライン処理に依存するだけでなく、一度に複数の命令をフェッチし、複数の実行ユニット (浮動小数点ユニット、ALU)、より多くのレジスタを備えています。命令の実行を向上させるために、特定の瞬間に複数の命令をオンザフライで実行します。もちろん、すべての機械の使用率を高く維持したい場合は分岐が問題になるため、この種のプロセッサでは、スループットを維持するために動的分岐予測に依存します。使用率が非常に高い。

デスクトップも含めて、任意のサーバーが動的な分岐予測を持つことを期待できます。現在のスマートフォンのARMチップのような過去の組み込みシステムには、パイプラインが小さく、順不同で実行されなかったため、分岐予測がありませんでしたが、ムーアのように法律により、面積あたりのトランジスタ数が増えれば、アーキテクチャを拡張するプロセッサがますます増えていくでしょう。したがって、あなたの質問に答えるために、CPU の仕様を明らかに探すことに加えて、32 ビットのチップ、より大きなパイプライン、順不同の実行で分岐予測を行うことが期待できます。ARM の最新のチップは、ある程度この方向に進んでいます。

于 2014-05-19T10:12:39.257 に答える
0

ARM Cortex-A8 ではそれほどではありませんが (分岐予測はいくつかありますが)、Cortex-A9 は複雑な分岐予測を伴う、順不同のスーパースカラーだと思います。

于 2011-11-23T11:34:10.450 に答える