指令的5个阶段
1.取指令阶段 IF (使用PC寄存器组和存储器)
取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。
程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的数值将根据指令字长度而自动递增:若为单字长指令,则(PC)+1 -> PC;若为双字长指令,则(PC)+2 -> PC,依此类推。
PC -> AR -> Memory
Memory -> IR
2.指令译码阶段 ID (指令寄存器组)
取出指令后,计算机当即进入指令译码(Instruction Decode,ID)阶段。
在指令译码阶段,指令译码器按照预约的指令格式,对取回的指令进行拆分和解释,识别区分出不一样的指令类别以及各类获取操做数的方法。
在组合逻辑控制的计算机中,指令译码器对不一样的指令操做码产生不一样的控制电位,以造成不一样的微操做序列;在微程序控制的计算机中,指令译码器用指令操做码来找到执行该指令的微程序的入口,并今后入口开始执行。
{ 1.Ad
Memory -> IR -> ID -> { 2.PC变化
{ 3.CU(Control Unit)
3.执行指令阶段 EX (ALU算术逻辑单元)
在取指令和指令译码阶段以后,接着进入执行指令(Execute,EX)阶段。
此阶段的任务是完成指令所规定的各类操做,具体实现指令的功能。为此,CPU的不一样部分被链接起来,以执行所需的操做。
例如,若是要求完成一个加法运算,算术逻辑单元ALU将被链接到一组输入和一组输出,输入端提供须要相加的数值,输出端将含有最后的运算结果。
Memory -> DR -> ALU
4.访存取数阶段 MEM
根据指令须要,有可能要访问主存,读取操做数,这样就进入了访存取数(Memory,MEM)阶段。
此阶段的任务是:根据指令地址码,获得操作数在主存中的地址,并从主存中读取该操做数用于运算。
Ad -> AR -> AD -> Memory
5.结果写回阶段 WB (寄存器组)
做为最后一个阶段,结果写回(Writeback,WB)阶段把执行指令阶段的运行结果数据“写回”到某种存储形式:结果数据常常被写到CPU的内部寄存器中,以便被后续的指令快速地存取;在有些状况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不一样的操做结果,可被用来影响程序的动做。
DR -> Memory