53

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

馬鹿げた音はしたくないのですが、プロセッサーについてはわかりません。一般に、64ビットは32ビットよりも優れていると思います。私のコンピューター(1年前、Win 7、Intel Atom)には32ビットプロセッサーが搭載されています。

4

10 に答える 10

47

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

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

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

于 2010-12-29T09:36:06.403 に答える
26

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

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

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

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

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

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

64ビットウィンドウは、64ビット実行をサポートしている場合にのみマイクロプロセッサで実行できることを忘れないでください。

于 2016-08-31T04:57:44.970 に答える
20

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

于 2013-09-18T11:04:22.233 に答える
3

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

于 2010-12-29T09:31:14.123 に答える
2

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

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

ISAとワードサイズ

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

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

ADD16 r2,r1,r3 # perform addition half-word wise (assuming 32 bit word size)
ADD r2,r1,r3   # default add instruction works in terms of the word size

PAEを搭載したPentiumProCPUのビット数の例

まず、汎用命令のさまざまな単語サイズ:

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

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

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

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

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

Intelx86_64に関する注意

一般に信じられていることとは異なり、x86_64は本当の意味での64ビットアーキテクチャではありません。これは、64ビット演算を実行できる拡張命令をサポートする32ビットアーキテクチャです。また、64ビットの論理アドレスサイズもサポートしています。Intel自身がこれをISAIA32eと呼んでいます(IA32は拡張され、IA32は32ビットISAです)。

参考文献

ARM命令の例

Intelアドレッシングモード

于 2019-05-21T07:18:56.580 に答える
0

ここから:

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

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

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

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

于 2013-10-07T10:17:35.903 に答える
0

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

参考:32ビットプロセッサと64ビットプロセッサの違い

于 2017-07-22T07:11:43.520 に答える
0

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

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

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

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

于 2017-11-21T06:50:34.240 に答える
-4

1バイトには8ビットがあるため、その32ビットの場合、CPUが1秒あたりにクロックされるghzまたはmhzで4バイトのデータを処理しています。したがって、同じ速度でクロックされる64ビットCPUと32ビットCPUがある場合、64ビットCPUの方が高速になります。

于 2013-01-07T23:12:32.520 に答える
-5

32ビットプロセッサは1秒あたりのプロセッサのGhzに基づいて32ビットのデータを処理し、64ビットプロセッサはPCの速度で1秒あたり64ビットのデータを処理します。同様に、34ビットプロセッサは4GBのRAMで動作します。

于 2013-03-12T06:48:04.087 に答える