指令执行过程(习题)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
按照题目中的说法,不采用Cache也不用指令预取,那么当运行到这条指令时,指令尚未取出,并且只能从内存中取。

在这里插入图片描述
机器周期一般以内存读取一条指令字的最短时间来定义,而且是可以变长的。

在这里插入图片描述

计算机中的取指过程:
在这里插入图片描述
转移指令的指令周期
在这里插入图片描述
在取指过程中,MAR(地址寄存器)相当于半路上的中转站

在这里插入图片描述
(***第二次对于PC的修改在无条件跳转指令中必定会发生,而在有条件跳转指令中则未必发生,因此题目要强调“无条件跳转指令”***)

在这里插入图片描述
取指操作是由控制器自动进行的,如果控制器还需要别的部件来控制它,那么这个部件还要再受到别的部件的控制,那么控制器将无法设计。
指令周期的第一个操作就是取指令
指令执行的有些操作是相同或相似的

在这里插入图片描述
(1)指令的地址是由PC指出来的
(2)操作码的长度可能不固定,在指令长度相同的情况下,采用一地址和采用二地址的操作码长度是不同的,而在取出指令之前操作码到底多长则无法确定,所以如果只取操作码就不知道
(3)即便操作码的长度已经固定了,但是要取操作数还要再次访问主存,这样代价就会很大,还不如一开始就把整条指令字取出来
(4)对指令当中某个字段的操作都是发生在解析指令之后的,或者说是发生在第一个机器周期之后的

在这里插入图片描述
只有当指令在取指、间址、执行周期遇到了终端,那么之后就会进入中断响应周期否则直接进入下一条指令的执行周期。

在这里插入图片描述
有几点需要注意:
(1)
在这里插入图片描述
由此就把A选项排除掉了
(2)
在这里插入图片描述
这分别是一次间接寻址和两次间接寻址,明显操作不同,把B给排除了

在这里插入图片描述
注:
(1)在执行周期结束的点上,CPU会向所有的中断源发送中断查询信号。
(2)如果设置在取指周期结束的时候,一旦有中断发生,那么当前这条指令相当于是白取了,所以排除C选项
(3)如果把响应中断的时间放在了指令周期结束,那就相当于中断周期不存在了,而没了中断周期,CPU在运行到执行周期结束的时候就会自动进入到下一条指令的指令周期,也就不存在同意向所有中断源发送中断查询信号这一过程,那么CPU也就不知道何时该去响应中断。
(4)如果指令特别长,出于响应可能发生的中断的需要,会在指令中的一些不需要连续逻辑的地方设置查询断点
(5)“当I/O设备提出中断就去响应中断”是很不科学的,因为此时CPU可能在做一些重要操作,这时候响应中断相当于前面的工作都白做了,还要回到一开始的时候再去做。

在这里插入图片描述
注:
(1)取值操作是控制器固有的功能,不需要在操作码控制下完成,也可以理解成“取值操作是由硬件自动完成的”
(2)取指相当于一次访存操作,下图是针对单字长指令的访存操作
在这里插入图片描述
如果有条指令比较长,占了两个主存地址,那么就要把上图中的这四个操作做两遍。

在这里插入图片描述
简单的来说就是,当取指阶段如果要访问这个存储单元就知道了原来这里面放的是地址,在执行阶段如果要去操作数,这个时候要是访问到了这个存储单元,就知道原来这里面放的是数据

在这里插入图片描述
(1)指令字长是指一条指令所占的二进制位数
(2)机器字长是指CPU一次能够处理的二进制数据的位数
(3)一般在设计的时候,机器字长就等于运算器中寄存器的位数
(4)参考下图:
在这里插入图片描述
指令的内容放在IR中,数据放在X中,指令的长度和数据的长度没有必然联系,所以题目中的第一种说法没有道理。
(5)如果指令字长等于存储字长,那么就能一次性的取出这条指令,从而取值周期等于机器周期
(6)在指令字长比较长的情况下,如果要强行把存储字长也做到一样,就要增加金属线作为通路,而现在存储器集成度都很高,多增加线会给硬件设计带来挑战,并且线与线之间也会相互干扰。所以题目中的第四种说法被排除。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值