CPU的控制和状态寄存器
CPU执行指令的过程涉及到控制和状态寄存器
(1)MAR:存储器地址寄存器,用于存放将被访问的存储单元的地址
(2)MDR:存储器数据寄存器,用于存放欲存入存储器的数据或从存储器取出的数据
(3)PC:程序计数器,存放现行指令的地址
(4)IR:指令寄存器,存放当前欲执行指令的地址
指令周期的数据流
由于指令周期可以分为取指、间址、执行、中断四个阶段,下面依次介绍。
取指周期的数据流
- PC中存放现行指令的地址,将该地址送到MAR,再送到地址总线
- CU控制单元发出读命令,从存储器中取出改地址对应的数据(指令),并存到MDR
- 将MDR中的数据(指令)送至指令寄存器IR
- CU控制PC加1,指向下一条指令地址
间址周期的数据流
取指结束后,控制单元CU会检查IR中是否有间接地址(操作数有效地址的地址)。若有,CPU执行如下操作,若没有则跳过。
- MDR中的间址送至MAR
- CU发出读命令,从存储器中取出该间址对应的操作数有效地址,并存入MDR。
执行周期的数据流
不同指令在执行周期的操作不同,故执行周期的数据流是多种多样的,故无法用统一的数据流图表示
中断周期的数据流
CPU执行完一条指令后,需要判断是否有中断请求,若有中断请求,则执行一下操作。若没有则跳过,进入下一个指令周期。
- 控制单元CU将用于保存程序断点地址的栈寄存器地址送入MAR,再到地址总线
- PC将断点程序地址(即中断结束后执行的下一条指令地址)送入MDR,再到数据总线
- CU发出写命令,根据MAR和MDR将断点程序地址写入栈寄存器
- CU将中断服务程序的入口地址(第一条指令地址)送入PC,CPU开始执行中断服务程序(同上面三个周期)
- 中断服务程序结束后,CU根据栈寄存器地址取出断点程序地址,CPU继续执行原程序
版权声明:本文为CSDN博主「晚风Serein」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Dae_Lzh/article/details/121425815
暂无评论