Arm 处理器寄存器和指令寄存器的区别是什么?

Arm 处理器寄存器和指令寄存器的区别是什么?,arm,cpu,cpu-architecture,cpu-registers,Arm,Cpu,Cpu Architecture,Cpu Registers,CPU中和的区别是什么?每一个用来做什么? 指令寄存器是处理器寄存器的一部分吗?在您的问题中不允许使用这样的链接。在这种情况下,链接提供了充分/良好的描述 如果您正在学习ARM处理器(现在是复数),那么您已经了解了处理器寄存器。它们的另一个名称是通用寄存器。它们的思维水平非常高,与程序中的变量非常相似,它们就在函数中,随时可用。在ARM中,这些将是r0、r1、r2、r3等 指令寄存器更多的是一个概念,可能有一段时间,你当然可以用这种方式设计一些东西,但现在我们有了管道,所以指令不仅仅存在于一个地

CPU中和的区别是什么?每一个用来做什么?
指令寄存器是处理器寄存器的一部分吗?

在您的问题中不允许使用这样的链接。在这种情况下,链接提供了充分/良好的描述

如果您正在学习ARM处理器(现在是复数),那么您已经了解了处理器寄存器。它们的另一个名称是通用寄存器。它们的思维水平非常高,与程序中的变量非常相似,它们就在函数中,随时可用。在ARM中,这些将是r0、r1、r2、r3等

指令寄存器更多的是一个概念,可能有一段时间,你当然可以用这种方式设计一些东西,但现在我们有了管道,所以指令不仅仅存在于一个地方。但除此之外。cpu必须如何工作?它必须从内存、闪存或ram中获取指令,或者让它留在这些位置。然后逻辑必须检查这些位并确定它是什么指令,然后从那里做什么

我当然希望您从ARMv5的ARM体系结构参考手册开始,或者从您可以找到的最古老的手册开始,然后从那里继续工作。旧的是一个更好的开始,而不是过于复杂的所有保护和其他功能,后来它涵盖了螺母和螺栓

因此,让我们使用thumb指令添加

add r1,r2,r3
我把它组装起来,然后拆开

Disassembly of section .text:

00000000 <.text>:
   0:   18d1        adds    r1, r2, r3
节的反汇编。文本:
00000000 :
0:18d1加上r1、r2、r3
看看ARM ARM,这正是我所期望的,前7位是0b0001100,然后是三组三位,描述三个寄存器,两个输入操作数,一个目标,不一定按那个顺序

那么,处理器如何利用这一点做有用的事情呢?首先,它必须从内存中获取指令,这样它就可以从内存中进行某种读取(取数只是读取)来获取这些位0x18D1。然后它需要解码这些比特。当它解码这些比特时,它需要存储这些比特超过一个时钟周期的持续时间。这通常意味着它被锁存到寄存器中。通用寄存器不在这个地方,在处理器内部的某个地方,我们需要存储这个指令。如果你想把它叫做指令寄存器,那就这样吧。在暂时存储在处理器中时,我们可以解码这些位,一些逻辑将重新编码前7位,并说“嘿,各位,这是一个三寄存器加法”,现在处理器必须去获取这两个输入寄存器。通用或使用维基百科术语,处理器注册。这些寄存器也可能被锁存到其他寄存器中,这些寄存器为alu或加法器电路供电,或者可能在不需要的情况下进行加法,这取决于设计。加法发生了,现在结果需要转到目标寄存器,另一个处理器寄存器。以及进入另一个寄存器、处理器状态寄存器(一般)或PSR或ARM术语CPSR的标志


现在,管道虽然更复杂,但管道不过是一条你在纪录片中看到的装配线,或者可能有第一手的知识。管道正在使用wikipedia页面的一行指令寄存器。或使用编程术语的数组。指令被提取并命中管道中的第一个阶段,就像装配线一样,每个阶段都会发生不同的任务,在某个点我们解码指令,在某个点请求并显示操作数,在某个点进行加法,输出必须与标志一起进行。一直以来,当这个加法器穿过管道时,理想情况下,它后面就是另一个加法器。就像流水线上的一辆红色汽车,后面跟着一辆白色和一辆绿色的汽车,在这个过程中,每辆车都会撞到同一个步骤,装上车轮,装上车门,等等。

这两个寄存器到底是什么让你感到困惑?为什么不应该有区别呢?你凭什么认为没有?没问题。关于你的问题,你指的是“指令寄存器”吗?如果你能提供你在特定问题中使用的术语的超链接,以确保每个人都知道你在说什么,那就太好了。是的,正是那一个,事实上这是我在这个主题中的第一天,所以我认为这些术语是公认的。处理器寄存器是很明显的,所以每个人都会明白的。不过,我不确定您的字面意思是指令寄存器还是程序计数器(或者x86上的指令指针)。其他人可能会立即得到它,但您只需链接到您的意思,就可以省去麻烦。现在来看看您的实际问题:处理器寄存器是一组寄存器,而指令寄存器是一个具体的寄存器。你不能将一个群体与一个单一的对象进行比较,所以我不太理解你的问题。如果您想问指令寄存器是否是处理器寄存器的一部分,请这样写。我们不能读懂人们的思想。否则,请澄清。另外,请注意我的评论。关于你的第一段:我建议OP添加链接,所以如果这是错误的,那是我的错。但我不明白为什么会这样。不管怎样,第一句你说它不好,第二句你说它好。我真的不知道你在这里是什么意思。我确实看到你问这个问题。外部链接的问题是它们会更改或消失,因此它们不在so服务器上,如果它们与问题或答案相关,则整个线程将失去其价值。我理解在没有链接的情况下试图理解这个问题的难度,同时你绝对正确,这太模糊了,很可能会被关闭。我们不可能理解这个问题