32 位到 64 位跳过 48 位?

32 位到 64 位跳过 48 位?

计算机架构从 16 位升级到 32 位再到 64 位。跳过 48 位的逻辑是什么?升级到 64 位而不是其他指数的理由是什么?

下表说明:2^32 比 2^16 大 65536 倍。因此,使用 2^48 似乎合乎逻辑,它也比 2^32 大 65536 倍。相比之下,使用 2^64 似乎是一个巨大的飞跃。(amd64 推出 10 年后,台式电脑的 RAM 为两位数 GB,而服务器的 RAM 为三位数 GB。)

    2^16                        65.536
    2^32                 4.294.967.296  2^16 X 65536
    2^48           281.474.976.710.656  2^32 X 65536
    2^64    18.446.744.073.709.600.000  2^32 X 4294967296

编辑如下

我用了一个在线十进制到二进制转换器我得到了这些结果。显然,2^48 的最大值为 48 个二进制 1。

    1111111111111111                      65535  2^16 - 1 (16 ones)
    10000000000000000                     65536  2^16

    11111111111111111111111111111111                    4294967295  2^32 - 1 (32 ones)
    100000000000000000000000000000000                   4294967296  2^32

    111111111111111111111111111111111111111111111111            281474976710655 2^48 - 1 (48 ones)
    1000000000000000000000000000000000000000000000000           281474976710656 2^48

    1111111111111111111111111111111111111111111111111111111111111111    18446744073709551615    2^64 - 1 (64 ones)
    10000000000000000000000000000000000000000000000000000000000000000   18446744073709551616    2^64

答案1

64 位是下一个合乎逻辑的步骤。

原因主要是因为对于以不同大小本机运行的系统来说,将位数加倍(或减半)的步骤在软件和硬件中很容易处理。在 64 位 CPU 出现之前,32 位系统已经在内部定期处理 64 位值。

例如:32 位系统可以通过将 64 位数字存储在 2 个 32 位变量/寄存器中来轻松处理该数字。
处理 48 位数字则比较麻烦:您需要同时使用 32 位和 16 位变量,或者仅使用 32 位变量的一部分,或者使用 3 个 16 位变量。对于 48 位,这些解决方案都不是最佳选择。

一般来说:任何以 X 位工作的系统都可以轻松处理 (N * X) 和 (X / N) 的大小,其中 N 是 2 的幂。因此逻辑是 1、2、4、8、16、32、64、128、256、512 等等。
其他大小都需要在硬件和/或软件中进行更复杂的处理,因此不是最优的。

因此,当在硬件架构中寻求更大的位大小时,使用相同的进程是有意义的,因为只需要对操作系统、软件和编译器进行微小的更新即可支持新的位大小。

(这全都适用于 CPU 寄存器的本机位大小。当您考虑寻址 RAM 芯片的“地址线数量”时,您确实可能会看到比架构自然数量更小的数字。
在内部,这些 CPU 使用更多位,但并非所有位都连接到实际地址线。
例如:8088 和 8086 CPU 上有 20 条线,80286 上有 20 条线,而 Pentium II 上有 36 条线)

答案2

基本上,所发生的事情是字节寻址。在此之前,没有令人信服的理由让处理器具有 2 的幂的字长(尽管通常有物理原因要求为 2 或 4 的倍数,因为电路就是以这样的倍数出现的)。

在字节寻址之前,内存字的宽度与处理器字的宽度相同,内存(主要)以字为单位进行寻址。但是,使用字节寻址有一个优势,即“字”长度为字节大小的 2 的幂,这样“字”边界就会落在一个良好的二进制级数中(这对人类和计算机硬件来说都很好处理)。

(至于为什么字节寻址成为“流行事物”,我现在无法提供任何令人信服的论据。)

同样,如果标准字符是 10 位而不是 8 位,我们将拥有 20、40、80 位的处理器,而不是 16、32、64 位。

相关内容