2

私の質問が関連しているかどうかはわかりません.しかし、私が知りたかったのは、これが両方ともCPUのパフォーマンスにどのように影響するかということです??同じアーキテクチャのCPUについて私が知っている唯一のことは、クロック速度が高いほど、 CPUの処理能力ですが、ワードサイズはどうですか??CPUの速度にどのように影響し、どちらが実際にCPUの速度を決定しますか??互いに矛盾していますか??ありがとう。

4

5 に答える 5

1

理論的には、ワード サイズを大きくすると、コードが少し遅くなります。その理由は、64 ビット アーキテクチャでは、ポインターは 64 ビット ワードであるため、ポインター (リスト、ツリー、ハッシュ テーブルなど) でいっぱいのデータ構造は、32 で同等のコードよりも多くの RAM を使用する傾向があるためです。 -ビット アーキテクチャ。一般的な RAM は低速 (CPU が望むほど速く応答しない) ため、CPU はキャッシュと呼ばれる少量の高速 RAM を組み込み、最も頻繁に使用されるデータを格納します。キャッシュ サイズは制限されています (Intel の最新の x86 では通常 32 kB)。64 ビット ポインターを使用すると、プロセッサが多くのデータ要素を格納することが難しくなり、パフォーマンスが低下します。

でも...

特に x86 プラットフォームでは、上記に関していくつかの注意事項があります。

  1. 多くのアプリケーションでは、データの大部分はポインターではありません。たとえば、3D を多用するアプリケーション (ゲーム) では、ほとんどのデータは画像 (テクスチャ) とオブジェクト座標です。このようなデータは、プラットフォームのデフォルトのワード サイズの影響を受けません。

  2. 64 ビット ポインターを使用すると、アプリケーションは 4 GB を超える RAM を簡単にアドレス指定できます。4 GB を超える RAM を搭載したマシンで RAM を大量に消費するアプリケーション (写真編集など) の場合、64 ビット ワードを使用すると、より多くの RAM を使用できます。RAM は低速で​​すが、ハードディスクよりもはるかに高速です。32 ビット アプリケーションは、同じ状況で、RAM とハード ディスクの間でデータ ブロックを処理する必要があります。

  3. x86 プロセッサ (これは最近のすべての PC と Mac で発生することです) では、歴史的な理由から、64 ビット モードは 64 ビット レジスタだけで提供されるわけではありません。また、アプリケーションに 2 倍のレジスタを提供するため、パフォーマンスがかなり向上します。64 ビット モードには SSE2 も付属しており、以前の x86 プロセッサよりも高速に浮動小数点データを処理できます。

そのため、PC または Mac では、可能であれば 64 ビットの OS とアプリケーションを優先してください。64 ビット コードのパフォーマンスが向上するのは、ワード サイズが大きいからではありません。これは、歴史的にこれらのアーキテクチャの 64 ビット モードに付随してきた他の機能の結果です。

他のシステム (PowerPC など) では、32 ビット モードと 64 ビット モードの両方が使用可能な場合、通常は 32 ビットが優先されます。が利用可能)、および 32 ビットを超える整数で計算を実行したい非常に少数のアプリケーション用 (たとえば、これは一部の暗号化アルゴリズムで発生します)。

于 2011-02-24T15:09:45.420 に答える
0

ワードサイズはデータバスのサイズによって決定されるため、クロック速度はワードサイズの影響を受けません。したがって、CPUは、32ビットまたは64ビットに関係なく、メモリとの間で1回だけ読み取り/書き込みを行います。

于 2011-02-23T21:47:19.007 に答える
0

まあ、それはすべて速度に影響します...メモリバスサイズ、プロセッサバスサイズ、キャッシュラインサイズ、レジスタサイズ、クロック速度(CPUのさまざまな部分で異なる可能性があります)、命令ごとのさまざまなサイクル数、命令がありますレイテンシ、チップ マルチスレッディング、スーパー スカラー実行ユニットなど。クロック速度とワード サイズを使用してユニットを比較し、どちらが速いかを判断するための簡単な公式はありません。明らかに、1mhz 8 ビット CPU は 64 ビット 3.2ghz CPU よりも遅くなりますが、1.8 GHz 64 ビット CPU が 2.4 GHz 32 ビット マシンよりも速いかどうかを判断することは、より大きな問題であり、依存する可能性があります。正確なワークロードについて。ワークロードをプロファイリングすることが、それを知る唯一の真の方法です。

于 2011-02-23T15:52:32.247 に答える
0

理論的には...

CPU メモリの読み取り/書き込みデータ転送を測定すると、1 秒あたりのバイト単位のメモリ フローが次のように構成されます。

  1. メモリ ワード サイズ (幅) (バイト単位)
  2. CPU クロック速度
  3. 1 回の読み取り/書き込みあたりの CPU サイクル

データ転送 = WordSize * CpuClock / RW_Cycles

編集:

私は理論的にセド!理論的には、この式は 100% 機能し、DSP プロセッサまたは FPGL ロジックでも機能します。最新の CPU では、これは DMA ロジックに当てはまりますが、なぜ -1 なのですか?

于 2011-02-23T09:22:35.567 に答える
-1

ほとんどの場合、CPU はデータをある場所から別の場所にコピーします。8 ビットではなく 64 ビットの粒度でこれを行うことができれば、8 倍速くなります。

これはオペレーションと同じ原理です。32 ビットの加算は、8 ビット CPU よりも 32 ビット CPU の方が 4 倍高速に実行できます (メモリ アクセスのゲインは考慮していません)。

編集 (クロック速度について): すべての CPU 操作 (メモリからのロード、メモリへのストア、値の追加など) を実行するには、指定された数のクロック ティックが必要です。通常、RISC CPU の場合は 1 クロック ティックです。クロックティックの持続時間は、クロックの周波数に直接依存します。1GHz のクロックは、1 秒あたり 10 億回のクロック ティック、つまり毎秒 10 億回の CPU 操作を意味します。2GHz のクロックを使用すると、CPU は同じ 1 秒間に 2 倍の処理を実行できます。

于 2011-02-23T06:41:13.210 に答える