Intel i5 中的地址大小

Address sizes in Intel i5

我的 cpuinfo 文件显示我的处理器的地址大小为 39 位物理地址和 48 位虚拟地址。这让我有些困惑。

我的是64位机器。据我了解,这是我机器的字长。也就是说,它将以 8 字节为单位从内存中获取数据。此外,64 位机器意味着 CPU 可以寻址 2^64 字节的可寻址位置,这很多。因此,制造商削减了其中一些生产线。

问题如下:

  1. 如果CPU只生成逻辑地址,那么需要39位的物理地址大小

  2. 当我们说CPU可以访问2^64字节时,我们指的是物理内存还是虚拟内存?

  3. 我在某处读到,64 位机器的寄存器大小为 64 位,而 32 位机器的寄存器大小为 32 位。是这样吗?

我想我已经把自己搞糊涂了,需要一些帮助。关于此的任何其他信息将不胜感激。谢谢!

考虑到此板上提出的表明地址大小之间存在某种数学关系的学术问题的数量,我明白了为什么人们感到困惑。

处理器字长、物理地址大小、逻辑地址大小和总线大小在某种程度上都是独立的。

If the CPU only generates logical addresses, then what is the need for having 39 bits physical address size.

CPU 将逻辑地址转换为物理地址。

When we say that the CPU can access 2^64 bytes, do we mean Physical memory or the virtual memory?

我也可以。

I read somewhere that a 64 bit machine has size of its registers as 64 bits, and a 32 bit machine has 32 bit registers. Is this the case?

一般来说,这对于通用寄存器是正确的,但专用寄存器的大小可能不同(例如,浮点数、控制寄存器)

处理器没有使用所有可用位来生成地址的情况很多。

在古代,旧的MC68000有32位的寄存器,但只有24位的地址总线。

对于 i5,考虑 64 位地址将控制令人难以置信的内存 space 17,179,869,184 GB。与 Google 或美国国家安全局或地球上的存储量相比,这是一个巨大的数字。

i5 设计者,trim 这个疯狂的数字减少到更易于管理的 512 GB 物理地址 space 和 262,144 GB 虚拟地址 space。