我想知道为什么要把一个MCU定位为32位或64位。在像哈佛或诺依曼这样简单的体系结构中,它曾经是数据总线的宽度。但在市场上,我看到了MCU,它有64位数据线,但却被销售为32位MCU。有人能解释一下吗?
发布于 2014-01-08 20:58:14
处理器的位宽不是由数据总线宽度定义的。英特尔8088 (用于最初的IBM )是一个16位设备,8位数据总线,摩托罗拉68008 (Sinclair )是一个32位设备与8位总线。
它主要由指令集的性质(操作数的宽度)和寄存器的宽度(必然相同)来定义。
当大多数设备具有匹配的总线和指令/寄存器宽度(即大约在1980年以前)时,没有必要加以区分,而且不清楚它是指总线还是注册/安装宽度没有多大影响,当引入宽指令/注册设备的窄总线宽总线版本时,这是一种营销困境。QL被广泛宣传为拥有32位处理器,尽管其8位总线,而8088有时被称为8/16位部分。68008可以在一条指令中执行32位操作数--它需要4个总线周期才能获得操作数对软件来说是透明的,而且指令和数据获取周期的总数仍然远远少于执行相同32位操作所需的8位处理器。
这个上下文中另一个有趣的体系结构是ARM体系结构v4,它除了32位ARM模式之外,还支持16位模式,在拇指模式下,指令和寄存器集都是16位。这具有比ARM模式更高的代码密度。在使用外部存储器接口的情况下,大多数ARM v4部件都支持16位或32位的外部总线--无论是ARM还是拇指都可以用于其中之一,但当实现16位总线时,拇指模式通常比32位指令集运行效率更高,因为每个指令或操作数取取单个总线周期。
考虑到越来越多的体系结构指令/寄存器集和总线宽度,现在用指令集/寄存器集来描述一个体系结构是有意义的。
https://stackoverflow.com/questions/21000124
复制相似问题