CPU如何执行一个程序(一条指令)?取指—译码—执行—写回过程

简介 对于一个CPU来说,执行指令一般要经过四个流程: 1.取指 2.译码 3.执行 4.写回 1 取指 在此图中,有程序计数器(PC)、存储器地址寄存器(MAR)、存储器数据寄存器(MDR)、控制器(CU)、内存(Memory)五个组件。内存当前的指令为(ADD:R1,R2),内存地址为101。 程序计数器指向当前指令在主存的位置。即PC指向内存的101地址。PC所指向的内容会放到指令地址总线上,对指令启动读命令。在一条指令取出后,PC指针指向的地址会加1,即指向102地址。 控制器将PC中的指令地址通过内部总线传输到MAR中。 MAR存储了指令或数据的内存地址。MAR将控制指令传输到地址总线上。 控制单元通过MAR提供的地址,发送信号访问存储器并进行读操作。 存储器通过地址译码器查到存储地址为101的存储单元的内容(ADD:R1,R2),并将存储单元的内容传送到MDR中。 MDR中保存的数据通过内部总线传送给IR寄存器(指令寄存器)。 至此,取指令部分完成! 2 译码 MDR中保存的数据通过内部总线传送给IR寄存器。指令包含操作数和地址码两部分。 IR寄存器会分析出操作码部分和地址码部分。将操作码送入解码器,解析出ADD是加操作。

Read More