我想知道将MCU标记为32位或64位的原因是什么。在简单的架构中,如哈佛或Neumann架构,它曾经是数据总线的宽度。但在市场上,我见过具有64位数据线并且作为32位MCU销售的MCU。有人可以解释一下吗?
答案 0 :(得分:3)
处理器的位宽不是由数据总线宽度定义的。 Intel 8088(原始IBM PC中使用)是一个带有8位数据总线的16位设备,而Motorola 68008(Sinclair QL)是一个带有8位总线的32位设备。
它主要由指令集的性质(操作数的宽度)和寄存器宽度(必须相同)定义。
当大多数设备具有匹配的总线和指令/寄存器宽度时(即大约1980年之前),没有必要进行区分,并且不清楚它是否涉及总线或寄存器/器件的宽度是不是很重要,当宽带指令/寄存器设备的窄总线宽度总线版本被引入它代表了营销困境。 QL被广泛宣传为具有32位处理器,尽管其8位总线,而8088有时被称为8/16位部分。 68008可以在一条指令中轻松执行32位操作 - 事实上需要4个总线周期才能获得操作数对软件是透明的,并且指令和数据获取周期的总数仍远少于8位处理器执行相同的32位操作。
此上下文中另一个有趣的架构是 ARM体系结构v4 ,除32位ARM模式外,还支持称为“Thumb”的16位模式。在Thumb模式下,指令和寄存器集均为16位。这比ARM模式具有更高的代码密度。在使用外部存储器接口的情况下,大多数ARM v4部件都支持16位或32位外部总线 - 无论是ARM还是Thumb都可以使用,但是当实现16位总线时,Thumb模式通常比32位运行效率更高。由于每条指令或操作数提取的单总线周期,位指令集。
鉴于架构指令/寄存器集和总线宽度的种类越来越多,现在通过其指令/寄存器集来表征架构是有意义的。