少し混乱しています。
32 ビット アーキテクチャと 64 ビット アーキテクチャについて話すとき、実際には何を意味するのでしょうか。32 ビット アーキテクチャには、32 ビット レジスタまたは 32 ビット アドレス バスまたは 32 ビット データ バスがあるということですか。
一般的には何が暗示されていますか?
少し混乱しています。
32 ビット アーキテクチャと 64 ビット アーキテクチャについて話すとき、実際には何を意味するのでしょうか。32 ビット アーキテクチャには、32 ビット レジスタまたは 32 ビット アドレス バスまたは 32 ビット データ バスがあるということですか。
一般的には何が暗示されていますか?
通常、これは 64 ビット システムに 64 ビット アドレス レジスタがあることを意味します。最新のシステムでは、通常、データ レジスタは少なくともアドレス レジスタと同じ大きさであるため、データ レジスタとデータ バスのサイズはほぼ同じです。
ただし、64 ビット システムには通常、64 ビット アドレス バスがありません。地球の歴史の中で、完全な 64 ビットの物理アドレス バスを必要とするだけの十分な RAM が製造されていないため、意味がありません。特定のシステムには、そのアドレス バスの幅に基づいて、アドレス指定できる物理 RAM の最大量があります。
プログラム用に 64 ビットのアドレス空間があることを意味します。
これは通常、CPU に 64 ビット レジスタがあることを意味します (レジスタをポインタ サイズにすることは理にかなっています) など...
良い!ご意見をお寄せいただきありがとうございます。多くの記事やオンライン資料を読んだ後、今では混乱はもうないと思います.
ということで、簡単にまとめたいと思います。
n ビット CPU:
n ビット CPU は、n ビット ワード サイズを意味する n ビット レジスタがあることのみを意味します。アドレス/データ バスのサイズについて考え直さないでください。
例として、Motorola 68000 プロセッサを考えてみましょう。このプロセッサは 32 ビットのバリエーションで提供されます。つまり、32 ビット プロセッサと呼ばれますが、16 ビットのデータ バスと 24 ビットのアドレス バスがあります。その 24 ビット アドレス バスにより、2^24、つまり 16 MB の RAM しかアドレス指定できません。アドレスバスはアドレス指定できるRAMの量のみを示しますが、データバスは1サイクルで転送できるデータのユニット数を示します。したがって、68000 プロセッサは、データ バスが 16 ビットであるため、2 バイトのデータしか処理できません。
32 ビット アーキテクチャは、ALU (記述)が 32 ビット ワードを計算できることを意味します。この定義には、データバス (幅) とレジスタ、およびアドレス指定が含まれます。
これは、レジスタとスタック (!) の幅が 32/64 ビットであることを意味します。多くの場合、アドレス空間ははるかに小さくなります。こちらを参照してください:
原則として、64 ビット マイクロプロセッサは 16 エクサバイトのメモリをアドレス指定できます。実際には、それよりも少なくなります。
たとえば、2011 年の AMD64 アーキテクチャでは、物理メモリに 52 ビット、仮想メモリに 48 ビットを使用できます。