我有一点困惑。
当我们谈论 32 位架构和 64 位架构时,我们的实际意思是什么。我们的意思是 32 位架构具有 32 位寄存器或 32 位地址总线或 32 位数据总线。
一般暗示什么?
我有一点困惑。
当我们谈论 32 位架构和 64 位架构时,我们的实际意思是什么。我们的意思是 32 位架构具有 32 位寄存器或 32 位地址总线或 32 位数据总线。
一般暗示什么?
我会说通常,这意味着 64 位系统具有 64 位地址寄存器。在现代系统中,数据寄存器通常至少与地址寄存器一样大,因此数据寄存器和数据总线的大小可能相同。
然而,64 位系统通常没有64位地址总线。没有意义,因为在地球历史上没有足够的 RAM 制造需要完整的 64 位物理地址总线。根据地址总线的宽度,一个给定的系统将拥有它可以寻址的最大物理 RAM 量。
我们的意思是我们有 64 位的地址空间供程序使用。
这通常意味着我们在 CPU 中有 64 位寄存器(使寄存器具有指针大小是有意义的)等等......
32 位架构意味着 ALU (描述)能够计算 32 位字。数据总线(宽度)和寄存器包括在这个定义中,以及寻址。
这意味着寄存器和堆栈 (!) 的宽度为 32/64 位。地址空间通常要小得多,请参见此处:
原则上,一个 64 位微处理器可以寻址 16 EB 的内存。在实践中,它比这更少。
例如,截至 2011 年的 AMD64 架构允许 52 位物理内存和 48 位虚拟内存。
好!非常感谢您的投入。在阅读了很多文章和在线资料后,我想现在我的困惑已经不复存在了。
所以我想简单总结一下。
n 位 CPU:
n 位 CPU 仅意味着它具有 n 位寄存器,这意味着 n 位字长。不要再考虑地址/数据总线的大小。
例如,考虑 Motorola 68000 处理器——它有 32 位变体,即它被称为 32 位处理器,但它具有 16 位数据总线和 24 位地址总线。由于其 24 位地址总线,它只能寻址 2^24 即 16 MB 的 RAM。地址总线仅告诉可以寻址多少 RAM,而数据总线则告诉在一个周期内可以传输多少个数据单元。由于数据总线中有 16 位,68000 处理器因此只能处理 2 字节的数据。