【发布时间】:2017-09-18 23:12:19
【问题描述】:
我刚刚在课堂上学习了 MIPS 架构。我正在阅读其他指令集架构(目前为 ARM),发现 ARM 和 MIPS 之间存在一些差异。两者都有不同的指令格式、寄存器集等。
ARM 的数据路径与 MIPS 有什么不同吗?因为数据路径涉及获取、解码和执行指令,并且对于所有指令集架构都必须相同。
我在阅读本文时找不到有关 ARM 数据路径的信息。
【问题讨论】:
-
ARM 和 MIPS 都可以用不同的微架构实现(而且它们已经实现了),因此根据您比较的哪一对实现,您可以有尽可能多的差异。
-
一个重要的区别是ARM有很多条件执行,而MIPS有延迟槽。此外,ARM 有一个条件寄存器,需要对其进行特殊处理才能获得良好的性能。 ARM 还具有相当复杂的寻址、预移位算术运算和顺序加载/存储操作。 OTOH,MIPS 有一个可怕的乘法/除法单元,需要特殊的外壳。
-
@azharbaloch 可能是因为没有一个“数据路径”。您有一个指定程序员模型的 ISA 规范,并且您有使用具有(大量)数据路径的微架构的实现。
-
@azharbaloch 您可能被教导了一个标量有序流水线(五阶段?)MIPS 的简化模型。最初的 ARM1 是标量有序流水线(三阶段)设计,但比 MIPS 复杂一些。
-
@EOF 最后一个问题(抱歉分发),如果我们考虑标量有序流水线 MIPS 和 ARM 流水线设计的简化模型,数据路径会有什么不同?假设我们只考虑基本指令,例如 ADD、LDR、SDR 和分支指令。
标签: assembly arm mips cpu-architecture instruction-set