x86微处理器的内存限制

x86微处理器的内存限制,x86,memory-model,X86,Memory Model,我最近从一个在线资源开始学习计算机体系结构课程。我从一本书中读到,x86处理器有32条地址线,可以在数据总线上一次读取4个字节的数据。现在我了解到32个地址行将可寻址内存限制为40亿个唯一地址。我难以理解的是,如果CPU可以在每个周期从40亿个唯一地址中的每一个读取4字节的数据,为什么x86系统上的RAM限制为4 GB。是否应该改为16GB(4乘以4GB)?有人能帮我澄清一下吗?另外,当我谈到32位或64位微处理器时,32/64是指CPU上的地址行数还是数据行数?(对于我的第一个问题,我可能应该

我最近从一个在线资源开始学习计算机体系结构课程。我从一本书中读到,x86处理器有32条地址线,可以在数据总线上一次读取4个字节的数据。现在我了解到32个地址行将可寻址内存限制为40亿个唯一地址。我难以理解的是,如果CPU可以在每个周期从40亿个唯一地址中的每一个读取4字节的数据,为什么x86系统上的RAM限制为4 GB。是否应该改为16GB(4乘以4GB)?有人能帮我澄清一下吗?另外,当我谈到32位或64位微处理器时,32/64是指CPU上的地址行数还是数据行数?(对于我的第一个问题,我可能应该提到,我假设的是一个没有物理地址扩展的系统。)

x86微处理器是一个广泛的处理器类别,经过几十年的发展,已经从传统的处理器发展到今天的64位多核CPU。x86处理器的一个优点是它们是,这意味着该系列中最新的处理器能够理解8086的指令(它们必须在称为
实模式
的特殊模式下运行)。8086有16位寄存器和16位总线到内存和I/O,这意味着程序使用的地址是单个字节的地址。8086可以从内存中加载1或2个字节(称为字)。随着时间的推移,新的x86处理器向地址行添加了更多的位,增加了虚拟内存,并添加了更大的
字。所以一个32位的数据项被称为双字,一个64位的数据项被称为四字,然后SSE出现了,我们有128位的八字或双四字。较新的x86处理器可以访问任意大小的数据,事实上,最新的x86处理器具有256位向量寄存器。从程序的角度来看,寻址内存仍然是通过给出最低地址的字节地址来完成的

您可以阅读有关64位计算的更多信息。这里有一个很好的总结:

在没有进一步限定的情况下,64位计算机体系结构通常具有64位宽的整数和寻址寄存器,允许直接支持64位数据类型和地址。然而,CPU可能有与寄存器大小不同的外部数据总线或地址总线,甚至更大(例如,32位奔腾有64位数据总线)


因为4字节不是最小的可寻址单位。@Mysticial我不太明白你的意思。你能详细说明一下吗?好的,如果我理解正确的话,即使处理器在每个指令周期从数据总线中提取4个字节,这4个字节中的每一个都属于内存中的4个不同地址。只是他们一次就被拉进来了。这是正确的吗?这里有一个很好的答案,如果你指的是“地址位”,那么是的。这是惯例。