MIPS 和 ARM 数据路径之间的区别

Difference between MIPS and ARM datapaths

刚刚在class学习了MIPS架构。我正在阅读其他指令集体系结构(A​​RM 当前)并发现 ARM 和 MIPS 之间存在一些差异。两者指令格式、寄存器组等不同

ARM的数据路径和MIPS有什么区别吗?因为数据路径涉及获取、解码和执行指令,并且它对于所有指令集架构都必须相同。

我无法从阅读本文的位置找到有关 ARM 数据路径的信息。

两者都是 RISC(精简指令集架构)。

根据D.Patterson和L.Hennessy

主要区别是 MIPS 有更多的寄存器,而 ARM 有更多的寻址模式。 MIPS 和 ARM 的算术逻辑和数据传输指令有类似的指令集核心。

与 MIPS 不同,ARM 不保留包含 0 的寄存器。虽然 MIPS 只有三种简单的数据寻址模式,但 ARM 有九种。

条件分支

MIPS 使用寄存器的内容来评估条件分支。 ARM 使用 程序状态字中存储的传统四个条件码位:negative进位溢出。它们可以设置在任何算术或逻辑指令上; 与早期的体系结构不同,此设置在每条指令上都是可选的。一个 显式选项可以减少流水线实现中的问题。 ARM 使用 条件分支测试条件代码以确定所有可能的无符号 并签署了关系。[计算机组织和设计由 D.Patterson 和 L.Hennessey]

我在阅读本文时找不到有关 ARM 数据路径的信息?

我向您推荐 Computer Organization and design D.Patterson 和 L.Hennessey ARM 版的书。

您学到的 MIPS 无疑是来自教科书(Patterson 和 Hennessey)的教育性内容。真正的 MIPS 内核以及 ARM 内核 can/do 因内核而异,您可以拥有多个 armv7-m 内核,它们在流水线阶段具有不同的实现。注意 ARM 和 MIPS 以及 RISC 通常不是微编码的,不要让 x86 实现影响您的理解。

所以对此没有唯一的答案,对于 MIPS 处理器使用什么数据路径,ARM 处理器在取指、解码、执行、写回等方面使用什么数据路径,也没有唯一的答案,...

提取、解码、执行...的概念是否被所有 RISC 处理器使用,只是它们如何以及何时使用各不相同,它们可以将这些步骤分解为更小的步骤并在更长的管道中实现它们, 或者让它们平行并有更宽的管道。

对于 MIPS 任何东西都去 MIPS 并下载他们的文档。对于 arm 去 arm 你想要你感兴趣的特定架构系列和特定核心的架构参考手册和技术参考手册。他们有一些新的程序员手册或开发人员手册,跳过那个,或者理解它是上面的两个手册上面有洞。您可能还想获取 amba/axi 文档以了解总线的工作原理,您可以设计一个具有不同总线的手臂,但如果您学习了传统的地址双向数据、写入选通、读取选通、芯片启用型总线(它仍然存在于 wishbone 中,一种在开放式核心和其他地方使用的流行总线,有点复杂但更接近旧校车)。