【问题标题】:Why CPU Architecture are designed as 32 bits and 64 bits为什么 CPU 架构设计为 32 位和 64 位
【发布时间】:2017-06-05 02:02:27
【问题描述】:

到目前为止,我们使用的是 32 位和 64 位类型的 CPU。我知道这些架构的概念。但是为什么它分别设计为16,32或64。为什么我们不能设计像 10、20、30 或任何其他数字倍数这样的架构。如果我们这样设计,我们会面临什么问题?

【问题讨论】:

  • 32, 64 是数字 2 的倍数。由于计算机是基于二进制的...
  • @MartinZhai 10、20也是2的倍数吧?
  • 对不起,我真正想说的是power而不是multiple
  • 好的。那么这样做有什么好处。你能详细说明一下吗?
  • 一个字节是 8 位。所以如果一台计算机是 16 位的,它可以在一个 CPU 循环中读取 2 个字节。 32位计算机可以读取4个字节...

标签: cpu computer-science cpu-architecture cpu-registers


【解决方案1】:

这与二的幂关系不大。
它主要是历史文物。

例如,我们拥有/拥有 36-bit24-bit 的架构。
维基百科有一个whole table,其中包含架构及其字长。

在主流处理器中使用 16、32 和 64 等数量是因为它们是 8 的倍数而不是 2 的幂。
8 位是字节采用的大小之一,字节通常是足以容纳一个字符的最小数量,并且必须由处理器有效处理。

出现 18、24、36 位等数量是因为在 20 世纪中叶,计算机每个字符使用 6 位,并且为了节省一些线路,设计人员使用了更少但更宽的寄存器。

每个寄存器的宽度是字符大小的倍数,在字符大小为 8 位的今天仍然如此(由于当时 IBM 的 EBCDIC 的普及)。

寄存器大小翻倍的趋势(如果从 2 的幂开始产生 2 的幂)是由于集成过程的进步,允许更密集的芯片。
它的优点是最大数量(例如 64)始终是每个最小数量的整数倍(例如 64 = 2*32 = 4*16 = 8*8)。

这在并行/向量处理方面特别好。
例如,一个 128 位寄存器可以被看作是保存 16 个字节或 4 个 32 位单精度浮点数,如果寄存器大小是 120 位,那么它仍然会保存整数个字节 (15),但只有 3 个 FP浪费24位。

如果 IBM 坚持使用 6 位字节,那么今天我们将拥有 6、12、24、48 位架构。
2 的幂在 CS 中非常方便,但在这种情况下,它们只是一个副作用。

【讨论】:

    猜你喜欢
    • 2011-04-05
    • 2017-05-12
    • 2012-01-28
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 2012-03-12
    相关资源
    最近更新 更多