質問

私たちは皆、64ビットと32ビットの用語を投げかけたと聞いていると確信していますが、実際にはどういう意味ですか?

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

  1. 「64ビットマシン」というフレーズをよく聞くことがよくあります。実際には、コンピューターのどの部分がビット数に向けられていますか?プロセッサ?オペレーティング·システム?

  2. メモリアドレスを大きくすることの利点は何ですか?

さらに質問を追加できますが、ブリーフの方が良いと思います。

ありがとう:d

役に立ちましたか?

解決

64ビットとは、レジスタの幅、メモリアドレス指定スペースなどを指します。1つの利点は、4GB以上のメモリに対処する能力です。

ウィキペディアは持っています 64ビットコンピューティングに関する記事 詳細が付いています。

編集: 利点 より多くのメモリには、オペレーティングシステムとプログラムがより多くの仮想アドレス指定スペース(16エクサバイト(172億GB))を持っていること、そしてさらに重要なことに、より多くの物理メモリをシステムに追加してアドレス指定することができ、仮想メモリのスワッピングが少なくなります。ディスクとの間。

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

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

a 不利益 より広いデータは、同じデータによってより多くのスペースを意味する可能性があるということです。たとえば、番号300を保存するには9ビットが必要です。 32ビットの整数に保管されている場合、23ビットが無駄になります。 64ビットでは、その浪費は55ビットになります。したがって、リツールがなければ、64ビットまでの単純な再コンパイルにより、より速くなりますが、やや肥大化したソフトウェアが得られます。

編集:またあります 64ビットテクノロジーページ ここ:

他のヒント

違いはちょうど32ビットです;-)

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

  • 32ビットシステムでは、4つのギブ(2^32)メモリに対処することに限定されています。64ビットでは、2^64バイトの理論的な制限があります。
  • 64ビットソフトウェアは、主にポインターの場合は4バイトではなく8バイトです。
  • x86_64では、64ビット実行可能ファイルが多くの指示に追加のオペコードがあるため、より遅くなる可能性があるため、より多くのメモリが必要です。
  • x86_64では、64ビットソフトウェアがより多くのレジスタを使用し、より速く実行する可能性があります
  • 64ビットシステムは、大幅に多くのメモリに直接対処できます
  • 64ビットシステムは、32ビットの2倍のチャンクでデータを処理できます。これにより、一部の操作がより迅速に進むのに役立ちます

Office Automation Suitesなどの一部のプログラムでは、32ビットvs 64ビットは、観察可能な違いはほとんどありません。

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

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

見る 32ビット対64ビットシステム:違いは何ですか? 多くのための。

  1. CPUレジスタとメモリアドレス指定。

  2. システムは、はるかに多くのメモリを参照することができます(参照)。

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

X32 BITプログラムが変数、たとえば整数(5)を登録すると、コードはこれに相当します。

push 5

物事をよりよく理解するために、「プッシュ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実行可能ファイルのコードは違いはありませんが、「プッシュX」のショートカットが

sub esp,8
mov [rsp],X

RSPのサイズの2倍-64ビット、8バイトです。

一番下の行は、x64ビット実行可能ファイルがx32ビット実行可能ファイルよりも多くのメモリを使用していることです。

基本に戻りましょう。

最近のコンピューターの99%は、と呼ばれるものに基づいています Von Neumann Architecture. 。基本的に、コンピューターは次のようなサイクルにあります:

  1. RAMからコマンドを取得します
  2. CPUでコマンドを実行します

alt text
(ソース: wikimedia.org)

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

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

64ビットシステムがある場合、のアドレススペースがあります 2^64. 。これが、32ビットシステムが4GB以上のRAMを持つことができない理由です。どうすれば大きいメモリ空間に対処できますか 2^32?

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

要約すると、64ビットアーキテクチャは、コンピューターを構築するための単に別の方法です。それがそれがより良い、またはさらに悪いことであるか、物事を異なって行うことを意味するわけではありません(低レベルでは、すべてのコンピューターがフェッチ解釈を行っています)。それは単純です コンピューターを実装する別の方法.

メインバスの幅だけの64ビットまたは32ビットの参照。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top