指令周期

基本概念:

指令周期:取出并执行一条指令所需要的时间(解释一条指令所需要的时间)
在这里插入图片描述
每条指令的指令周期不同
有些指令周期就没有执行周期——例如空操作(NOP)
有些指令的取指周期和执行周期是等长的——add mem
有些指令的执行周期就比较长——mul mem

具有间址寻址的指令周期
因为寻址方式的不同,所有可能是间址寻址,所以在执行周期中要取出操作数,需要进行两次访存,那么这个时候,如果我们将指令周期划分为:取址周期,间址周期,执行周期
在这里插入图片描述
那么,这个时候,间址周期执行的是将操作数的地址从主存中取出,执行周期执行的是取出操作数并执行相应的操作并把结果保存在给定的寄存器当中。

带中断的指令周期
如果程序执行的过程中有中断,那么就要添加一个中断周期:如果有中断请求的话,我们需要去响应中断:保存断电,形成中断服务程序的入口地址,硬件关中断
在这里插入图片描述

指令周期流程

在指令周期中,至少包含了1个周期:取址周期
在取址周期后,需要判断是否有间址周期,如果没有就进入到了执行周期,在执行周期过程中,需要判断有没有中断程序,如果有,就响应中断:保存断点,生成中断服务程序入口,硬件关断点;如果没有,就进入下一个取址周期
在这里插入图片描述

CPU工作周期的标志

由于处在不同的指令周期,控制器需要做不同的操作,所以控制器在指令周期的不同时段,需要发出不同的控制命令。控制器也要知道当前处于指令周期的哪一个阶段。
在这里插入图片描述

指令周期的数据流

1.取址周期数据流
在这里插入图片描述
目标:需要将PC中的地址取出,并存在IR(指令寄存器中)
步骤:先将PC中的指令地址送到MAR(主存地址寄存器)中,再通过地址总线送到存取器中,然后CU通过控制总线将存储器中的数据读出来并通过数据总线将数据送到MDR中,然后再送到IR中。但是,这样还没有完,CU还会将PC+1,使得PC指向下一条指令所在的地址

2.间址周期数据流
间址周期说明IR中或者是MDR中保存的是操作数的地址。
假设我们的操作数的地址保存在了MDR中:
在这里插入图片描述
首先,MAR先从MDR中将数据地址的地址读出,然后通过地址总线传到存储器中,CU发出控制信号,并通过控制总线将地址读出通过数据总线放回到MDR中

3.执行周期数据流
不同指令执行周期数据流不同

4.中断周期数据流
我们要知道中断周期我们做了什么操作:
保存断点
生成中断服务程序入口地址
硬件关闭断点
CU决定了把中断保存在内存单元的哪一个地址(保存断点是一个写操作)
首先,我们需要保存断点,但是有谁知道断点需要保存在哪里呢——CU,所以第一步是将CU中的地址传到MAR再通过地址总线传到存储器中,那么,我们是要保存当前断点的地址,当前断点的地址在哪里有呢——PC,所以第2步我们需要将PC的地址传到MDR通过数据总线传到存储器中。而中断程序的入口地址是由CU给出,CU直接将入口地址放入PC中
在这里插入图片描述

  • 14
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值