web-dev-qa-db-ja.com

32ビットプロセッサと64ビットプロセッサの違いは何ですか?

32ビットおよび64ビットプロセッサで読み込もうとしています( http://en.wikipedia.org/wiki/32-bit_processing )。私の理解では、32ビットプロセッサ(x86など)には32ビット幅のレジスタがあります。それが何を意味するのか分かりません。それで、最大2 ^ 32までの整数値を保存できる特別な「メモリ空間」がありますか?

私は愚かに聞こえたくありませんが、プロセッサについては知りません。一般に、64ビットは32ビットよりも優れていると考えています。私のコンピューター(1歳、Win 7、Intel Atom)には32ビットプロセッサが搭載されています。

38
user485498

すべての計算はレジスタで行われます。コード内で変数を加算(または減算)すると、メモリからレジスタにロードされます(まだない場合は、変数の数を無限に宣言できますが、レジスタの数制限されています)。したがって、より大きなレジスタを使用すると、「より大きな」計算を同時に実行できます。このサイズの違いは、通常のプログラムの場合、実際にはそれほど重要ではないということではありません(少なくとも2 ^ 32より大きい値を操作することはめったにないので)。

また、特定のレジスタはメモリ空間へのポインタとして使用されるため、参照できるメモリの最大量が制限されます。 32ビットプロセッサは、2 ^ 32バイト(約4 GBのデータ)しか参照できません。 64ビットプロセッサは、はるかに明らかに管理できます。

他の結果もありますが、これらが思い浮かぶ2つです。

37
Jakob

プロセッサはメモリからデータを呼び出します。つまり、RAMにアドレスを与えることにより、MAR(メモリアドレスレジスタ)。セレクタエレクトロニクスはメモリバンクでそのアドレスを見つけ、データをMDR(メモリデータレジスタ)に格納しますこのデータは、プロセッサ内のレジスタの1つに記録され、さらに処理されますデータバスのサイズがプロセッサ内のレジスタのサイズを決定する理由です。一度に呼び出すことができるのは4バイトサイズのデータ​​のみで、データサイズが32ビットを超える場合、データを取得するには2サイクルのフェッチが必要になります。これにより、32ビットマシンの速度が低下します。 64ビットは1回のフェッチサイクルでのみ操作を完了するため、データが小さい場合は明らかに、プロセッサが同じ速度でクロックされていても違いはありません。常に64ビットサイズである必要があります。これにより、不必要に多くのメモリスペースが消費されます。

19
ht.of.ignorance

最初の32ビットと64ビットはアーキテクチャと呼ばれます。

これらのアーキテクチャは、マイクロプロセッサが1回で処理するデータの量を意味します命令サイクルつまり、fetch-decode-execute

プロセッサの設計によっては、1秒で数千から数十億の命令サイクルが発生する場合があります。

32ビットはマイクロプロセッサが1命令サイクルで4バイトのデータを実行できることを意味し、64ビットはマイクロプロセッサが1命令サイクルで8バイトのデータを実行できることを意味します。

マイクロプロセッサはメモリ、データバス、ビデオコントローラーなどのデータを送受信するためにコンピューターの他の部分と通信する必要があるため、理論的には64ビットのデータ転送もサポートする必要があります。ただし、互換性やコストなどの実際的な理由により、他の部品は32ビットでマイクロプロセッサと通信する場合があります。これは、コストと既存の部品との互換性の理由でコンピューターの他の部分と8ビットで通信しながら、マイクロプロセッサー8088が16ビットで実行できる元のIBM PCで発生しました。

32ビットコンピューターでは、 'a'を 'A'として、つまりCAPSLOCKで書き込む必要があるため、コンピューターが4バイトのデータを読み取りながらオーバーヘッドが発生するのに対し、操作に必要なのは2バイトだけです。このオーバーヘッドは、64ビットコンピューターで6バイトに増加します。したがって、64ビットコンピューターは常に高速であるとは限りません。

64ビットのウィンドウをマイクロプロセッサで実行できるのは、64ビットの実行をサポートしている場合のみです。

18
Bubba Yakoza

32ビットプロセッサは、32ビットアドレスでメモリバンクをアドレス指定できます。そのため、2 ^ 32個のメモリセルを使用できるため、アドレス可能なメモリの量が制限されます(最大4GB)。マシンに別のメモリバンクを追加しても、対処できません。したがって、64ビットマシンは最大2 ^ 64個のメモリセルをアドレス指定できます。

2
Simon

2ビットまたは64ビットプロセスの意味は何ですか? kenshin123:

プロセスの仮想アドレスは、システム上の実際の物理メモリに対応するアドレステーブルのマッピングです。効率とセキュリティの理由から、カーネルはプロセスに抽象化を作成し、独自のアドレス空間を持つように見せかけます。この抽象化は、仮想アドレス空間と呼ばれます。これは、物理メモリへのポインタの単なるテーブルです。

したがって、32ビットプロセスには、約2 ^ 32または4GBのアドレススペースが与えられます。これが内部で意味することは、プロセスに32ビットのページテーブルが与えられるということです。さらに、このページテーブルには、システム上の4 GBのメモリにマップする32ビットVASがあります。

そのため、64ビットプロセスには64ビットVASがあります。それは理にかなっていますか?

0
prat

この答えはおそらく9年遅すぎますが、上記の答えでは質問に適切に答えられないと感じています。

32ビットと64ビットの定義は、標準化団体によって十分に定義または規制されていません。それらは単に直感的な概念です。 32ビットまたは64ビットCPUは通常、CPUの命令セットアーキテクチャ(ISA)のネイティブWordサイズを指します。 ISAとWordサイズは何ですか?

ISAおよびWordサイズ

ISAは、CPUが使用するマシン命令/アセンブリニーモニックです。これらは、ハードウェアが何をすべきかを直接伝えるソフトウェアの最低レベルです。例:

ADD r2,r1,r3   # add instruction in ARM architecture to do r2 = r1 + r3
               # r1, r2, r3 refer to values stored in register r1, r2, r3
               # using ARM since Intel isn't the best when learning about ISA

Wordサイズの古い定義は、CPUが1命令サイクルで計算できるビット数です。現代のコンテキストでは、Wordのサイズは、レジスタのデフォルトサイズまたは基本的な命令が作用するレジスタのサイズです(この定義には多くの曖昧さがありますが、完全に一致しない複数のアーキテクチャにわたる直感的な概念ですお互いに)。例:

ADD16 r2,r1,r3 # perform addition half-Word wise (assuming 32 bit Word size)

PAEを搭載したPentium Pro CPUのビット数の例

まず、一般的な目的の命令でのさまざまなWordサイズ:

  • 算術論理命令:32ビット(乗算と除算には1サイクル以上かかるため、これはWordサイズの古い概念に違反することに注意してください)
  • 分岐、ジャンプ命令:間接アドレス指定の場合は32ビット、即時アドレスの場合は16ビット(また、IntelはCISC ISAであり、ここには十分な複雑さがあります)
  • 移動、ロード、保存:間接的な場合は32ビット、即時的な場合は16ビット(これらの命令には数サイクルかかる場合があるため、Wordサイズの古い定義は保持されません)

次に、ハードウェアアーキテクチャのバスおよびメモリアクセスサイズ:

  • 仮想アドレス変換前の論理アドレスサイズ:32ビット
  • 仮想アドレスサイズ:64ビット
  • 変換後の物理アドレスサイズ:36ビット(システムバスアドレスバス)
  • システムバスデータバスサイズ:256ビット

したがって、上記のすべてのサイズから、ほとんどの人はこれを32ビットCPUと直観的に呼んでいます(ALUワードサイズとアドレスビットサイズに関する明確なコンセンサスはありませんが)。

ここで注目すべき興味深い点は、昔(70年代と80年代)に、ALUワードサイズがメモリアクセスサイズとは非常に異なるCPUアーキテクチャがあったことです。また、一般目的以外の指示では癖を扱っていないことにも注意してください。

Intel x86_64に関する注意

一般的な信念に反して、x86_64はWordの真の意味での64ビットアーキテクチャではありません。 64ビット操作が可能な拡張命令をサポートする32ビットアーキテクチャです。また、64ビットの論理アドレスサイズもサポートしています。 Intel自身は、これをISA IA32e(IA32拡張、IA32が32ビットISAである)と呼びます)。

参照資料

ARM命令の例

Intelアドレッシングモード

0
tinkerbeast

32ビットと64ビットは基本的にレジスタサイズであり、メモリの最速タイプを登録し、CPUに最も近いです。 64ビットプロセッサは、32ビットレジスタよりも多くのアドレス指定および送信用のデータを格納できますが、コアの数、キャッシュメモリ、アーキテクチャなど、プロセッサの速度に基づいて測定される他の要因もあります。

参照: 2ビットプロセッサと64ビットプロセッサの違い

0
Mohd Shibli

ここ から:

32ビットプロセッサと64ビットプロセッサの主な違いは、動作速度です。 64ビットプロセッサには、デュアルコア、クアッドコア、およびホームコンピューティング向けの6コアバージョンがあります(8コアバージョンは近日公開予定)。複数のコアにより、処理能力が向上し、コンピューターの操作が高速化されます。機能するために多くの計算を必要とするソフトウェアプログラムは、ほとんどの場合、マルチコア64ビットプロセッサ上でより高速に動作します。 64ビットコンピューターは、Windowsオペレーティングシステムが64ビットバージョンであっても、32ビットベースのソフトウェアプログラムを引き続き使用できることに注意することが重要です。

32ビットプロセッサと64ビットプロセッサのもう1つの大きな違いは、サポートされるメモリ(RAM)の最大量です。 32ビットコンピューターは最大3〜4 GBのメモリをサポートしますが、64ビットコンピューターは4 GBを超えるメモリ量をサポートできます。これは、画像、図面、およびビデオ映像をレンダリングするために多くの計算が実行されるグラフィカルデザイン、エンジニアリングデザイン、またはビデオ編集に使用されるソフトウェアプログラムにとって重要です。

注意すべきことの1つは、プログラムが64ビットプログラムでない限り、3Dグラフィックプログラムとゲームは、64ビットコンピューターへの切り替えから得られるメリットはまったくないということです。 32ビットプロセッサ用に作成されたプログラムには、32ビットプロセッサで十分です。コンピュータゲームの場合、64ビットプロセッサを使用する代わりに、ビデオカードをアップグレードすることにより、パフォーマンスが大幅に向上します。

最終的に、64ビットプロセッサは家庭用コンピューターでますます一般的になりつつあります。ほとんどのメーカーは、価格が安く、64ビットオペレーティングシステムとプログラムを使用するユーザーが増えているため、64ビットプロセッサを搭載したコンピューターを構築しています。コンピューター部品の小売業者は、提供する32ビットプロセッサの数を減らしており、まもなくまったく提供しない可能性があります。

0
kombsh