我想知道将MCU标记为32位或64位的原因是什么。在像哈佛或诺依曼这样的简单体系结构中,它曾经是数据总线的宽度。但在市场上,我看到了有64位数据线的MCU,但市场上的MCU是32位的。有人能解释一下吗?
处理器的位宽不是由数据总线宽度定义的。Intel 8088(在最初的IBM PC中使用)是一个带有8位数据总线的16位设备,而摩托罗拉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位指令集运行效率更高,因为每条指令或操作数提取都有一个总线周期。
鉴于体系结构中指令/寄存器集和总线宽度的多样性不断增加,现在通过其指令/寄存器集合来表征体系结构是有意义的。