字大小和数据总线

时间:2012-07-13 14:26:00

标签: computer-architecture

我对字大小的定义感到困惑。我读到处理器的字大小是它的数据总线宽度。像8位处理器一样有8位宽的数据总线。我最近读到,虚拟地址空间的最大大小由字大小决定,即如果字大小是n位,则最大虚拟地址空间是2 ^ n -1。但我一直认为最大虚拟地址空间由地址总线宽度决定,即n位宽地址总线可以寻址最大2 ^ n个字节。那么,什么是真的?

此外,这与指针有关,因为n位数据总线只能携带n位地址。因此,最多可以通过指针访问2 ^ n个字节。

2 个答案:

答案 0 :(得分:8)

我首先要说的是,你的一些困惑可能来自几十年前事情变得简单的事实,你对术语的理解是基于这些更简单的机器。

  

我对字大小的定义感到困惑。我读到处理器的字大小是它的数据总线宽度。就像一个8位处理器有一个8位宽的数据总线。

绝对不是。数据总线与此完全无关。处理器的字大小(从来就不是一个精确的术语)最好松散地定义为算术的最大自然大小,通常是机器中寄存器的大小。这通常是数据路径的宽度(与数据总线明显不同)。数据路径只是ALU的宽度。字大小通常与指针大小相同。

  

我最近读到虚拟地址空间的最大大小由字大小决定,即如果字大小是n位,则最大虚拟地址空间是2 ^ n -1。但我一直认为最大虚拟地址空间由地址总线宽度决定,即n位宽的地址总线可以寻址最大2 ^ n个字节。那么,这是真的吗?

没有。虚拟地址空间的大小简单地由页表(和TLB)的虚拟页面编号中的位数确定。在当前基于amd64的机器上,只有48位的虚拟地址可用。上面的16是第47位的符号扩展。在当前的amd64机器上,物理地址大小是52位。这些物理地址位是在总线上发送的位。虽然公共汽车这个词真的不对。几乎所有链路都是点对点的(DDRx DRAM是一个例外),并使用分组格式(标头+有效载荷)而不是地址线和数据线。

  

此外,这与指针有关,因为n位数据总线只能携带n位地址。因此,最多可以通过指针访问2 ^ n个字节。

许多(几乎所有偶数)具有单独地址总线的机器使用比地址位数更窄的地址总线。这些位简单地分开并使用多个时钟周期通过总线发送。 DDRx DRAM是另一个例子。

答案 1 :(得分:1)

  

虚拟地址空间的最大大小由字大小决定

这曾经是真的,但是某些扩展是为了绕过这个限制(即物理地址扩展,或PAE),它启用36位内存地址。

除此之外,维基百科将单词定义为:

  

特定处理器设计使用的自然数据单元

在几乎所有情况下,这是32位系统上的32位和64位系统上的64位。您仍会经常在64位系统上找到对32位字的引用(部分原因是amd64是intel x86的扩展而不是修订版)。此外,作为现代计算早期的延续,你经常会看到32位数量被称为DWORD或双字,64位数量被称为QWORD或四字。

这是人们一直在争吵的事情。我个人使用字大小==总线宽度的定义。