408 2015年计组44题

复盘2015年408计组大题的第二道的最后一问时遇到了一点小问题,在这里记录一下,希望可以帮助大家更深刻的了解一条指令究竟要多少执行周期背后的细节问题。

最后一问问的是“sub R1,R3,(R2)”的执行阶段需要多少个周期。

这个题其实和2009年的计组大题是一个东西,只是2009年问的更详细,他要求你把每个周期的细节写出来,2015年只要求你回答多少个周期。

根据2009年408真题的情况来看,他实际上是以三态门来划分时钟周期的。我们对比2009年的数据通路图可以看到,R0,R1,R2,MDR,AC暂存器(这里是SR寄存器)都是通过一个三态门来连接到公共总线上的。因此,只要有三态门,就有可能在执行的过程中暂停一个周期,到下个周期的时候再继续传输。

我们再来看具体的sub指令执行过程。

两个操作数,一个直接来自于寄存器,一个来自于MEM。我们首先要把R2寄存器里的地址送到MAR,这里R2的三态门就没必要挡一个周期了,直接送到MAR就行,MAR再把地址送到MEM中。下一周期时,MEM根据地址读出数据,并送到MDR,数据在这个时候被MDR的三态门挡住。因此从R2到MEM再到MDR需要2个周期。(可能有人会问为什么不能一口气从R2传到MAR到MEM再到MDR?我认为因为内存毕竟和CPU、寄存器速度有差距,不可能说一个周期内就把数据取出来。)

在从MEM到MDR的这个周期内,因为总线是空闲的,所以R1的内容可以送到暂存器T中。

注意,现在经过了2个周期,两个操作数内容一个在T中,一个在MDR中。

第三个周期,T和MDR将两个操作数直接传到ALU,经过计算将结果送到SR寄存器里面,此时又被SR的三态门挡住。

第四个周期,结果从SR寄存器被放出来,送入R1寄存器,指令结束。


网上的讲解视频里面有的直接将图中sub指令有4行作为解题的依据,诚然,确实4行信号对应了四个周期的具体操作,但是我们答题总不能说我们的理由是“图中有4行,所以要4个周期”吧。我们知道具体的原理,并给出文字分析,就算我们最后的数字和答案不同,但是起码给阅卷老师一种信号:我们对于指令在数据通路里的过程是能写出分析的。这次有4行,你写4个周期,那万一下次有6行呢?写6个周期?一个单薄的答案6一分也得不到,有理有据的分析貌似更有可能拿到一部分分数吧。

但是我们不去扣背后的细节的话,上了考试压根就不知道从何写起,因为脑子里没有方向没有储备。“在答案错的情况下用文字分析混到分数”一定要基于我们对知识点通透的前提。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值