64 ビット プロセッサは、単に 64 ビットであるという理由だけで、32 ビット プロセッサよりも「高速」なのでしょうか?

64 ビット プロセッサは、単に 64 ビットであるという理由だけで、32 ビット プロセッサよりも「高速」なのでしょうか?

「32ビットは古い」と言う人がいるのは、例えば、ペイまず、プロセッサの速度自体に以下の要因が影響すると仮定します。

  1. マイクロアーキテクチャ設計とは、キャッシュ サイズ、マイクロコードの実装 (該当する場合)、データ/アドレス バスとレジスタの接続、そしてもちろん設計原則や構造などを意味します。

  2. クロック速度自体

  3. FSB 速度 (フロントサイド バス) などのバス速度やそれに関連するもの。

  4. 並列処理、「ハイパー スレッディング」、「コンピューティング ユニット」、コプロセッサまたはバックグラウンド プロセッサによる作業のオフロード、マルチコア環境などの特別な機能。

プロセッサが 32 ビットであると仮定すると (そしてこれらすべての要素が速度要因に影響することはわかっています)、それが 64 ビットであるというだけで、ビット幅、メモリ アドレス指定、サイズなどの増加により速度が速くなるのでしょうか?

基本的に、2 つの同一プロセッサの場合、マシン コードのデコード、フェッチ、メモリへのアクセス、MMIO、計算などにおいて、64 ビット プロセッサの方が、以前の 32 ビット クローンよりも一般的に高速になりますか?

答え1

明らかに、大量のメモリを必要とするアプリケーションや、2/4 億を超える数値を多く扱うアプリケーションでは、64 ビットが大きなメリットとなります。一般的なコンピューティングの大きな部分を占めるプログラム命令や整数計算の場合、64 ビットに本質的なメリットはありません。正直なところ、2/4 億を超える数値を数えたり、32 ビットのアドレス空間に相当する RAM よりも多くの数値を追跡したりする必要などないからです。

しかし、なぜこのような高速化が見られるのでしょうか? 賢いコンパイラです。コンパイラは常に新しいトリックを学習しています。たとえば、なぜ 100 個の 32 ビット整数をループして合計する代わりに、50 個の void キャストされた 64 ビット数値を追加し、その「64 ビット」数値の各部分の 32 ビットを追加すればよいのでしょうか。

しかし、あなたの質問に「はい」と答える主な要因は、64 ビット プロセッサがメイン メモリに対して持つより広いデータ パス アクセスです。

ベンチマークと、あるアーキテクチャの違いに関する説明、そして他のアーキテクチャとの比較については、以下を参照してください。

http://zsmith.co/

答え2

ただ単に...いいえ。

レジスタ サイズが大きいプロセッサは、同じクロック サイクルでより多くのビットを移動および処理できます。

しかし、この事実はクロック速度とは無関係です。また、コンピューターが実行できるすべてのタスクが、より多くのビットを移動できることから恩恵を受けるわけではありません。

関連情報