Memory management 32位机器可以访问2^32字节的RAM,这是真的吗

Memory management 32位机器可以访问2^32字节的RAM,这是真的吗,memory-management,operating-system,x86,computer-architecture,Memory Management,Operating System,X86,Computer Architecture,只是好奇。我在互联网上的许多文章和帖子中都看到了这一点。在比较32位和64位体系结构时,很多时候人们会提到他们可以访问的最大内存量。像32位处理器可以访问4G2^32内存这样的语句是否总是正确的 据我所知,32/64位表示CPU寄存器的大小。但是CPU可以访问的RAM的实际数量取决于其地址总线的大小 例如,一个16位的8086,内存不限于64KB2^16,而是1MB2^20[它通过分段实现],因为它的地址总线是20位长的。同样,当前64位CPU无法访问整个2^64内存位置,因为其中大多数只有48

只是好奇。我在互联网上的许多文章和帖子中都看到了这一点。在比较32位和64位体系结构时,很多时候人们会提到他们可以访问的最大内存量。像32位处理器可以访问4G2^32内存这样的语句是否总是正确的

据我所知,32/64位表示CPU寄存器的大小。但是CPU可以访问的RAM的实际数量取决于其地址总线的大小

例如,一个16位的8086,内存不限于64KB2^16,而是1MB2^20[它通过分段实现],因为它的地址总线是20位长的。同样,当前64位CPU无法访问整个2^64内存位置,因为其中大多数只有48位地址总线

请给出您的建议。

在许多情况下,32位CPU可以访问超过4GB的RAM。大多数32位CPU都有机制,允许超过4GB的访问

这是由操作系统启用的硬件功能。硬件部分是一个更宽的Addrees总线,带有一些控制机制,操作系统部分是虚拟内存管理

即使计算机能够访问超过4GB的数据,如果您在32位计算机上运行32位操作系统,虚拟地址长度仍保持不变。这意味着每个进程可以访问通常由物理RAM备份的4GB虚拟内存。但是,在某些情况下,由于操作系统的功能,即使是32位进程也可以使用超过4GB的内存-请参阅Windows

即使没有像AWE这样的功能,在带有PAE的机器中,运行多个进程也意味着使用超过4GB的RAM

你的最后一段是正确的。但从程序员的角度来看,您会对流程可以使用什么更感兴趣

Is it true to say that 32bit machine can access 2^32 of RAM?
是的,32位系统确实可以访问2^32B的RAM。说32位系统只能访问2^32 B的RAM是错误的。

在许多情况下,32位CPU可以访问超过4GB的RAM。大多数32位CPU都有机制,允许超过4GB的访问

这是由操作系统启用的硬件功能。硬件部分是一个更宽的Addrees总线,带有一些控制机制,操作系统部分是虚拟内存管理

即使计算机能够访问超过4GB的数据,如果您在32位计算机上运行32位操作系统,虚拟地址长度仍保持不变。这意味着每个进程可以访问通常由物理RAM备份的4GB虚拟内存。但是,在某些情况下,由于操作系统的功能,即使是32位进程也可以使用超过4GB的内存-请参阅Windows

即使没有像AWE这样的功能,在带有PAE的机器中,运行多个进程也意味着使用超过4GB的RAM

你的最后一段是正确的。但从程序员的角度来看,您会对流程可以使用什么更感兴趣

Is it true to say that 32bit machine can access 2^32 of RAM?
是的,32位系统确实可以访问2^32B的RAM。说32位系统只能访问2^32B的RAM是错误的

像32位处理器可以访问4G2^32内存这样的语句是否总是正确的

不,这种说法通常是不正确的

许多处理器都有硬件限制,从而从理论最大值减少了物理内存量

如上所述,一些处理器使用分段方法将地址空间扩展到理论处理器限制之外。然而,更常见的情况是地址空间越大,地址越小。例如,后来的PDP-11,16位计算机通常有一兆字节的内存

32位处理器的总体趋势是,段会扩展虚拟内存,但不会扩展物理内存。例如,一个80386芯片理论上可以访问4GB的物理内存和64位的虚拟内存

64位处理器出现在32位处理器对4GB以上内存的普遍需求之前

我忽略了内核v的问题。用户空间

像32位处理器可以访问4G2^32内存这样的语句是否总是正确的

不,这种说法通常是不正确的

许多处理器都有硬件限制,从而从理论最大值减少了物理内存量

如上所述,一些处理器使用分段方法将地址空间扩展到理论处理器限制之外。然而,更常见的情况是地址空间越大,地址越小。例如,后来的PDP-11,16位计算机通常有一兆字节的内存

32位处理器的总体趋势是,段会扩展虚拟内存,但不会扩展物理内存。例如,一个80386芯片理论上可以访问4GB的物理内存和64位的虚拟内存

64位处理器出现在32位处理器对4GB以上内存的普遍需求之前

我忽略了内核v的问题。用户空间

它可以访问2^32字节的信息-不是
2^32千兆字节,即40亿千兆字节!!那是4GB的内存对不起…那是个错误。。!它可以访问2^32字节的信息,而不是2^32 GB,即40亿GB!!那是4GB的内存对不起…那是个错误。。!正确…对于PAE,IA32 CPU的地址总线扩展到36位,这样它们现在可以访问64GB而不是以前的4GB RAM。但CPU仍然是32位的。我指的是将CPU的比特数与它可以访问的实际内存量联系起来,这并不总是正确的。是的,正如你所说,程序员最终只关心他能访问的内存总量。。。。!!正如你所说的,如果CPU有32位,那么它不会被迫只访问4GB。请参阅我编辑的文章。我们只能说工作寄存器可以寻址32位空间。这意味着每个进程只能访问4GB的RAM。进程不访问RAM;它们访问有时由RAM支持的内存。可用内存受地址空间限制的概念也是不正确的。例如,Windows提供了将可寻址内存扩展到虚拟地址空间之外的功能。@IInspectable非常感谢。我改进了帖子。正确…对于PAE,IA32 CPU的地址总线扩展到36位,这样他们现在可以访问64GB而不是以前的4GB内存。但CPU仍然是32位的。我指的是将CPU的比特数与它可以访问的实际内存量联系起来,这并不总是正确的。是的,正如你所说,程序员最终只关心他能访问的内存总量。。。。!!正如你所说的,如果CPU有32位,那么它不会被迫只访问4GB。请参阅我编辑的文章。我们只能说工作寄存器可以寻址32位空间。这意味着每个进程只能访问4GB的RAM。进程不访问RAM;它们访问有时由RAM支持的内存。可用内存受地址空间限制的概念也是不正确的。例如,Windows提供了将可寻址内存扩展到虚拟地址空间之外的功能。@IInspectable非常感谢。我改进了这篇文章。