当前和通用的处理单元是8,16,32,64,128等位。为什么他们的数据路径倍数为8?这与业界以8位字节结算的事实有关吗?
PDP-7为18位。奔腾临地址总线为36位.许多amd64处理器只实现56位地址空间.
设计不好吗?数据路径或地址空间是否有任何不是2的幂(8为2**3)的缺点?
发布于 2017-04-29 21:03:45
数据总线大小为8的倍数直接链接到8位字节.
地址总线是不同的:实现者根据需要提供尽可能多的位来访问处理器支持的所有内存。在奔腾Pro的情况下,它可以访问64 so,所以它必须有36位。
然而,如果想要拥有一个比处理器本身所能处理的更少的总物理内存,板制造商可以实现比处理器所支持的更少的位址。
操作系统软件需要能够存储这36位地址,并且几乎可以肯定地将其存储在数据结构中模块化8位!
64位处理器上的应用软件通常使用64位字来存储指针,因为它们希望独立于处理器、板、操作系统和可用(虚拟)内存对用户系统施加的实际内存限制。
发布于 2017-04-29 20:59:29
一旦你把字节作为最小的可寻址单位,就没有什么实用的方法可以绕过8倍的数据总线了。旧的系统使用不同的体系结构,基本字大小更小,这可能主要是因为当它们出现时,内存的代价要高得多。8位是一个很好的甜头。
发布于 2022-04-02 18:12:36
对于地址路径,您只需要使用多少位。假设您的处理器可以处理256 64 = 2^28字节的RAM,并且一次传输64字节= 2^6字节,那么您需要2^22地址和22位地址行。更容易访问的内存,或者一次传输的数据更少,您需要更多的数据。但只要足够,每一位都是好的。
对于数据路径,有两个因素:以位为单位的数据单位的大小和一次传输的单元数。很久以前,有18位,36位或60位的处理器,但是自从80‘S之后,它就有了两位,8位,16位,32位或者64位的功率。
你一次要换几个单位?如果您传输1,2,4,8,16单元,那么单元地址很容易转换成内存地址。但是假设你一次传输3个单元:要读取单元100,你必须除以3,地址行用33,然后得到三个单元99,200,101。因此,转移一些不是两种力量的单位,会使生活变得更加困难。
这就是为什么数据路径中的位数是单元中的位数(没有技术原因,而是因为每个人都这么做),乘以2(出于技术原因)。
https://softwareengineering.stackexchange.com/questions/348074
复制相似问题