在计算机体系结构中,寄存器是非常快的计算机内存,用于高效执行程序和操作。这可以通过访问常用值(即当时处于操作/执行点的值)来实现。因此,为此目的,存在几种不同类别的CPU寄存器,它们与计算机内存协同工作以有效地运行操作。
拥有寄存器的唯一目的是快速检索数据以供CPU处理。尽管使用硬盘驱动器从RAM访问指令相对较快,但对于CPU而言仍然不够。为了获得更好的处理,CPU中有一些内存可以从RAM中获取数据,这些内存将要预先执行。在寄存器上方,我们有高速缓存,比寄存器还要快。
这些分类如下。
- 累加器:
这是最常用的寄存器,用于存储从内存中获取的数据。在不同的微处理器中,它的数量不同。 - 内存地址寄存器(MAR):
它保存要从内存访问的位置的地址。 MAR和MDR(存储器数据寄存器)共同促进了CPU与主存储器的通信。 - 内存数据寄存器(MDR):
它包含要写入或要从寻址位置读出的数据。 - 通用寄存器:
它们被编号为R0,R1,R2….Rn-1,并用于在任何正在进行的操作期间存储临时数据。它的内容可以通过汇编编程来访问。现代CPU架构倾向于使用更多的GPR,以便可以更多地使用寄存器到寄存器寻址,这比其他寻址模式要快。 - 程序计数器(PC):
程序计数器(PC)用于跟踪程序的执行。它包含要提取的下一条指令的内存地址。成功完成前一条指令后,PC指向要从主存储器中提取的下一条指令的地址。程序计数器(PC)还可对指令数进行计数。 PC的增量取决于所使用的体系结构类型。如果我们使用的是32位架构,则每次获取下一条指令时,PC都会递增4。 - 指令寄存器(IR):
IR保留即将执行的指令。来自PC的指令被提取并存储在IR中。一旦将指令放入IR中,CPU便开始执行该指令,并且PC指向要执行的下一条指令。 - 条件代码寄存器(CCR):条件代码寄存器包含不同的标志,用于指示任何操作的状态。例如,假设某个操作导致创建负结果或零,则将这些标志相应地设置为高。
- 进位C:如果加法运算产生一个进位或减法运算产生一个借位,则设置为1;否则,设置为1。否则清除为0。
- 溢出V:仅在对有符号整数进行运算时有用。
- 零Z:如果结果为0,则设置为1,否则清除为0。
- 取反N:仅在带符号的数字运算中有意义。如果产生负结果,则设置为1。
- 扩展X:用作多精度算术运算的进位。
这些通常由ALU决定。
因此,这些是用于特定目的的不同寄存器。