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

标签 assembly arm mips cpu-architecture instruction-set

刚刚在类里面学习了 MIPS 架构。我正在阅读其他指令集架构(目前 ARM )并发现 ARM 和 MIPS 之间的一些差异。两者都有不同的指令格式、寄存器集等。

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

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

最佳答案

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

因此,对此没有一个答案,对于 MIPS 处理器使用什么数据路径,ARM 处理器在获取、解码、执行、写回等方面使用什么数据路径,也没有一个答案。

CONCEPTS fetch、decode、execute、...被所有处理器使用 RISC 与否,只是它们如何以及何时执行不同,它们可以将这些步骤分解为更小的步骤并在更长的管道中实现它们,或者并行执行它们并有一个更宽的管道。

对于 MIPS,请访问 MIPS 并下载他们的文档。对于 arm go to arm 你需要你感兴趣的特定架构家族和特定核心的架构引用手册和技术引用手册。他们有一些新的程序员手册或开发人员手册,跳过那个,或者理解它是上面两个手册里面有洞。您可能还想获得 amba/axi 文档以了解总线如何工作,您可以设计具有不同总线的臂,但如果您学习传统地址双向数据、写入选通、读取选通、芯片启用,则具有教育意义类型总线(它仍然存在于叉骨上,这是一种在开放式核心和其他地方使用的流行总线,稍微复杂一点,但更接近于旧校车)。

关于assembly - MIPS 和 ARM 数据路径之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43551359/

相关文章:

c - 为什么 gcc (ARM) 不使用全局寄存器变量作为源操作数?

C/Assembler - 在没有堆栈的单用户、单任务操作系统中返回代码

c++ - 函数地址不是实际的代码地址

objective-c - 如何开始在 iOS 上使用 ARM?

c - ARM Cortex M4 上的数组大小问题

arm - 为什么ARM有16个寄存器?

c - 如何将此 C 代码转换为 MIPS 汇编代码

assembly - MIPS - MIPS 如何为堆栈中的数组分配内存?

linux - 拉出二进制文件时,Shellcode 不起作用

assembly - 堆叠在MIPS中。 addi $ sp,$ sp,-4中4的目的是什么?