2

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

4

1 回答 1

1

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

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

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

于 2013-02-27T16:43:08.180 回答