2

根据IIT 教授讲座,8 位 8085 处理器将具有 8 位寄存器,可以配对访问 16 位地址。他通过告诉我们程序计数器和堆栈指针寄存器是 16 位来强制执行它可以访问 16 位地址的事实。他后来还继续告诉我们,数据总线是 8 位的,但地址总线是 16 位的。

因此,这是否意味着 32 位处理器能够访问 64 位地址?但我知道 32 位处理器可以处理的最大容量约为 4GB。是什么设定了这个限制?

更新:就像你们中的一些人指出的那样,使用 PAE 可以扩展这个地址,但是没有 PAE 是什么设置了这个限制?换句话说,为什么没有 PAE 的 32 位奔腾处理器有 4GB 的上限?

4

3 回答 3

2

不会。8085 有 8 位寄存器和 16 位地址空间,但这并不意味着 64 位计算机需要能够访问 128 位。每个架构都是不同的架构。

答案是,知道机器地址空间的唯一方法是让制造商告诉你。每个地址空间的选择都有其自身的原因。8086 有 16 位寄存器和 20 位地址空间。ARM2 有 32 位寄存器和 26 位地址空间。80286 有 16 位寄存器和 24 位地址空间。amd64 有 64 位寄存器,并且有 40 位和 48 位物理地址空间实现。地址也可以在多个时钟周期内发送到存储器控制器。银行切换可用于允许任意大小的地址空间。

奔腾处理器的地址空间是多少?

每个字节都被分配了一个唯一的地址,称为物理地址,范围从零到最大 2^32–1(4 GB) -- Pentium Processor Family Developer's Manual, Volume 3: Architecture and Programming Manual

http://www.intel.com/design/pentium/MANUALS/24143004.pdf

现代 Intel 64 处理器的地址空间是多少?

Intel 64 架构将软件的线性地址空间增加到 64 位,并支持高达 40 位的物理地址空间。-- Intel 64 和 IA-32 架构软件开发人员手册,第 1 卷:基本架构

http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-1-manual.pdf

现代英特尔处理器在 32 位模式下的地址空间是多少?

地址空间——在 IA-32 处理器上运行的任何任务或程序都可以寻址高达 4 GBytes(2^32 字节)的线性地址空间和高达 64 GBytes(2^36 字节)的物理地址空间——英特尔64 和 IA-32 架构软件开发人员手册,第 1 卷:基本架构

等等。

于 2013-02-25T05:02:48.440 回答
1

32 位处理器只能寻址 4GB 的内存是不正确的,例如使用PAE最多可以寻址 36 位地址空间。

基本上一般规则是相同的,它主要取决于系统板逻辑和 CPU 对最大地址大小(地址寄存器大小)的支持。

于 2013-02-25T04:20:20.160 回答
1

有几个限制:

  1. 地址寄存器的大小和地址计算逻辑。

  2. 从处理器出来的物理地址线的数量。

使用PAE,32 位处理器的地址路径大于 32 位。

于 2013-02-25T04:05:35.937 回答