计算机组成原理5.2指令执行过程


一、指令周期的概念:

CPU从主存中取出并执行一条指令的时间被称为指令周期。
一个指令周期包含若干机器周期(机器周期也称为CPU周期);
一个机器周期包含若干时钟周期(时钟周期又称为节拍或者T周期或者CPU时钟周期,是CPU操作的最基本单位)。
每个指令周期内的机器周期数量可以不同,每个机器周期内的时钟周期数量也可以不同。
不同的指令的指令周期可能不同,如:


1.注:分析指令所需时间足够短因此归于取出指令的阶段

2.注:一般情况下每执行一条指令结束后都会进入中断周期
3.注:间址周期CPU进行间接取址


机器周期又可分为定长机器周期和不定长机器周期,其实质是一个机器周期内包含的时钟周期数量不同,如下图,一个方波代表一个时钟周期,不同长度的机器周期包含不同数量的波(下图画红色代表一个时钟周期)。
1.2上述指令中涉及到的四种周期:

取指周期:从主存中取出一条指令。
间址周期:把形式地址转化成有效地地址,即取操作数的有效地址。
执行周期:执行指令对应的操作。
中断周期:在非关中断的状态下,每条指令结束时都会留下中断周期以检测中断信号。

Q:如何判断CPU处于哪个周期:

A:设置四个触发器,每个触发器中存放一个0或1,1表示处于当前周期,0表示不在当前周期,控制单元CU控制触发器中是0还是1。
二、指令周期的数据流向:
2.1 取指周期

1).PC中存放了下一条指令存放地址,因此把PC中保存的地址发送到MAR,记作(PC)->MAR;
2).控制单元CU(Control Unit)通过控制总线发出控制信号给主存储器,发出的是读(R)信号,记作1->R;
3).MAR所指主存地址存放的数据经数据总线发送到MDR,记作M(MAR)->MDR;
4).CU发出控制信号,形成下一条指令的地址,记作(PC)+1->PC。
数据流向的图解为:

2.2 间址周期

1).IR中指令的地址码送入MAR,此时MDR中也还存留着送入IR时的数据,因此也可以直接通过MAR送入MDR,记作Ad(IR)->MAR或者Ad(MDR)->MAR;
2).CU通过通知总线发出读(R)控制信号给主存储器,记作1->R;
3).MAR所指主存地址存放的数据经数据总线发送到MDR,记作M(MAR)->MDR;
4).把有效地址送入指令的地址码字段,拼出新的指令,记作(MDR)->Ad(IR)。这一步可以不操作,只属于部分类型的CPU。
数据流向的图解为:

2.3 执行周期

执行周期的指令各种各样

2.4 中断周期

1).CU控制栈顶地址SP-1,把修改后的地址送入MAR,记作(SP)-1->SP,(SP)->MAR,实质是把进程断点存储到主存的存储单元;
2).CU通过控制总线发出写控制信号到主存,记作1->W;
3).断点信息的内容送入MDR,记作(PC)->MDR;
4).CU控制将中断服务的程序入口地址送入PC,记作向量地址->PC。
数据流向的图解为:


1.注:W和R分别指的是写和读操作,主存设置两个接口W和R,W通高电平为1则写操作,R同理。
2.注:类似M(MAR)->MDR这样的写法,M(MAR)意为MAR中存储的内容。
3.注:间址周期标红部分,前面文章有介绍到指令只由操作码和地址码构成,地址码部分可以存放指令所在地址也可以存放其他操作数存放地址。
4.注:实际上计算机中堆栈寄存器的栈顶指针,是由上到下即由高到低,因此中断周期有“CU控制栈顶地址SP-1”这一操作,意为栈顶指针向下移动一指向新位置。


三、指令执行方案:
3.1单指令周期
指令之间串行执行,每条指令的执行周期长度相同。指令周期的长度取决于执行过程中最长一条指令的执行时间。
3.2多指令周期

与单指令周期不同,多指令周期中每个指令的执行周期可以长短不一。多指令周期的指令也是串行执行。

3.3流水线方案

当每条指令使用到的硬件不同时,可以采用流水线方案。

这里留坑等待后续补充。。。。
  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值