10

64 ビットや 32 ビットという言葉をよく耳にすると思いますが、実際にはどういう意味なのでしょうか?

メモリアドレスのサイズと関係があると確信しています。64 ビット マシンでは、オブジェクトへの参照は 64 ビットです。でも、もう少し掘り下げたい…。

  1. 「64 ビット マシン」という言葉をよく耳にします。コンピューターのどの部分が実際にビット数に対応していますか? プロセッサー?オペレーティング·システム?

  2. より大きなメモリアドレスを持つことの利点は何ですか?

さらに質問を追加することもできますが、簡潔な方がよいと思います。

みんなありがとう:D

4

7 に答える 7

18

64 ビットとは、レジスタの幅、メモリ アドレス空間などを指します。利点の 1 つは、4 GB を超えるメモリをアドレス指定できることです。

ウィキペディアには、64 ビット コンピューティングに関する詳細な記事があります。

編集:メモリを増やすことの利点は、オペレーティング システムとプログラムがより多くの仮想アドレス空間 (16 エクサバイト (172 億 GB)) を持っていることです。ディスクとの間での仮想メモリのスワッピング。

幅の広いレジスタとデータ バスの利点は、同じ量のデータをより簡単かつ迅速に移動できることです。2 つ以上のレジスタが必要だった操作が、1 つのレジスタで実行できるようになりました。

そのため、通常、ソフトウェアを 64 ビット用に再コンパイルすると、パフォーマンスが向上します。

欠点は、データの幅が広いということは、同じデータが占めるスペースが増えることを意味することです。たとえば、数値 300 を格納するには 9 ビットが必要です。32 ビット整数で格納すると、23 ビットが無駄になります。64 ビットでは、その無駄が 55 ビットになります。そのため、再ツール化を行わずに 64 ビットに単純に再コンパイルすると、より高速になりますが、わずかに肥大化したソフトウェアが得られます。

編集: ここにも64 ビット技術のページがあります:

于 2009-08-15T16:08:12.967 に答える
6

違いは正確に32ビットです;-)

64 ビット OS を実行するには、64 ビット ハードウェア (プロセッサ) が必要です。64 ビット ソフトウェアを実行するには、64 ビット OS が必要です。これが依存関係です。

  • 32 ビット システムでは、4 ギガバイト (2^32) メモリのアドレス指定に制限されています。64 ビット システムでは、2^64 バイトの理論上の制限があります。
  • 64 ビット ソフトウェアでは、主にポインタが 4 バイトではなく 8 バイトであるため、わずかに多くのメモリが必要です。
  • x86_64 では、多くの命令に対して追加のオペコードがあるため、64 ビットの実行可能ファイルにはより多くのメモリが必要であり、実行速度が遅くなる可能性があります。
  • x86_64 では、64 ビット ソフトウェアはより多くのレジスタを使用でき、より高速に実行できる可能性があります。
于 2009-08-15T16:14:37.367 に答える
3
  • 64 ビット システムは、はるかに多くのメモリを直接アドレス指定できます。
  • 64 ビット システムは、32 ビットの 2 倍の大きさのチャンクでデータを処理できるため、一部の操作をより迅速に行うことができます。

オフィス オートメーション スイートなどの一部のプログラムでは、32 ビットと 64 ビットの違いはほとんどわかりません。

しかし、データベース、グラフィックス/ビデオ処理、または仮想マシンのホスティングなどの他のアプリケーションの場合、一度により多くの物理メモリにアクセスでき、各命令でより多くの情報を処理できると、パフォーマンスに大きな違いが生じる可能性があります.

現在、多くの 32 ビット チップには 64 ビット拡張機能があり、多くのFPU (数学) またはSSMD (ベクトル) 操作は既に 64 ビット モードで行われていることに注意してください。

32 ビット対を参照してください。64 ビット システム: 違いは何ですか? 多くのための。

于 2009-08-15T16:08:09.330 に答える
2
  1. CPU レジスタとメモリ アドレッシング。

  2. システムは、より多くのメモリを参照 (参照) できます。

于 2009-08-15T16:07:49.800 に答える
2

基本に戻りましょう。

最近のコンピュータの 99% は、フォン ノイマン アーキテクチャと呼ばれるものに基づいています。基本的に、コンピューターは次の一定のサイクルにあります。

  1. RAM からのコマンドのフェッチ
  2. CPU上でコマンドを実行する

代替テキスト
(出典: wikimedia.org )

32/64 ビット システム (またはその他のビット サイズ) を参照する場合、基本的には、コンピューターのアーキテクチャと実装について話していることになります。

  • メモリ空間 (RAM) のサイズ
  • CPU レジスタのサイズ
  • バスサイズ (つまり、CPU、RAM、I/O などの間)

64 ビット システムの場合、アドレス空間は2^64. これが、32 ビット システムに 4GB を超える RAM を搭載できない理由です。より大きいメモリ空間をどのようにアドレス指定できます2^32か?

パフォーマンスの違いに関しては、明確な答えはありません (CISC アーキテクチャと RISC アーキテクチャのどちらが優れているか明確な答えがないのと同様)。使用しているアプリケーションに大きく依存します。

要約すると、64 ビット アーキテクチャは、コンピュータを構築する別の方法にすぎません。これは、それが優れている、または劣っている、または動作が異なるという意味ではありません (低レベルでは、すべてのコンピューターが fetch-execute を実行しています)。これは単に、コンピュータを実装する別の方法です

于 2009-08-15T16:39:31.920 に答える
2

最良の答えは、x86ビットx64アセンブラーでの比較だと思います

x32 ビット プログラムが整数 (5) などの変数を登録する場合、コードは次のようになります。

push 5

物事をよりよく理解するために、'push X' は以下へのショートカットです:

sub esp,4 //substracts esp with 4(4*8=32 bits.That's the size of a pointer in x32 executables) in order to make space for our variable
mov [esp],X //moves variable in @esp

これらのレジスタは 32 ビット (長さ 4 バイト) で、32 ビット プログラミング言語のポインタのサイズです。

ただし、64 ビット コードではサイズが 2 倍大きくなり、レジスタも同様です。当社のレジスタ ESP は x64 実行可能ファイルに存在しますが、x32 実行可能ファイルのように広く使用されていません。

代わりに、すべてのレジスターの名前の前に「R」が付きます (EAX は RAX になり、ESP は RSP になり、EDX は RDX になります)。

したがって、x64 実行可能ファイルのコードに違いはありませんが、「push X」のショートカットは次のようになります。

sub esp,8
mov [rsp],X

RSP のサイズは ESP の 2 倍 (64 ビット、8 バイト) です。

つまり、x64 ビットの実行可能ファイルは、x32 ビットの実行可能ファイルよりも多くのメモリを使用します。

于 2009-08-15T16:43:02.070 に答える
-3

正確には、64 ビットまたは 32 ビットは、メイン バスの幅のみを参照します。

于 2009-08-15T16:18:25.613 に答える