一个指令周期的四个子阶段

取指周期

  • 取指令
1. 当前指令地址送至存储器地址寄存器,
记作:(PC) → MAR
2. CU发出控制信号,经控制总线传到主存,这里是读信号,
记作:1 → R (1便是信号)
3. 将MAR所指主存中的内容经数据总线送入MDR,
记作:M(MAR) → MDR
4. 将MDR中的内容(此时是指令)送入IR,
记作:(MDR) → IR
5. CU发出控制信号,形成下一条指令地址,
记作:(PC)+1 → PC

在这里插入图片描述

间址周期

  • 取有效地址
1. 将指令的地址码送入MAR,
记作:Ad(IR) → MAR或Ad(MDR) → MAR
2. CU发出控制信号,启动主存做读操作,
记作:1 → R
3. 将MAR所指主存中的内容经数据总线
送入MDR,
记作:M(MAR) → MDR
4. 将有效地址送至指令的地址码字段,
记作:(MDR)→ Ad(IR)

在这里插入图片描述

执行周期

  • 取操作数

  • 执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。

  • 不同指令的执行周期操作不同,因此没有统一的数据流向。

中断周期

  • 保存程序断点
1. CU控制将SP减1,修改后的地址送入MAR
记作: (SP)-1 → SP,(SP) → MAR
本质上是将断点存入某个存储单元,假设其
地址为a,故可记作:a → MAR
2. CU发出控制信号,启动主存做写操作,
记作:1 → W
3. 将断点(PC内容) 送入MDR,
记作:(PC) → MDR
4. CU控制将中断服务程序的入口地址
(由向量地址形成部件产生)送入PC,
记作:向量地址→ PC

在这里插入图片描述

参考:https://juejin.cn/post/6981989280683917348

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值