《计算机组成原理》 课件 第8章 控制器的组成与实现.pptx

《计算机组成原理》 课件 第8章 控制器的组成与实现.pptx

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第8章控制器的组成与实现;8.1.1微操作命令的分析

微操作命令就是对CPU中某一个逻辑部件进行某项操作的控制信号。

在CPU指令系统中,一条复杂指令它的指令周期可能包括4个周期:取指周期、间址周期、执行周期、中断周期。

在这4个周期中,每条指令功能的差别主要体现在执行周期的微操作不一样,而取指周期、间址周期、中断周期的微操作都是一样或者说相似的。

本小节主要分析指令系统中的每一条指令在它的取指周期、间址周期(如果有间址)、执行周期中需要哪些微操作命令才能最后完成其相应的指令功能。

1.取指周期微操作命令分析

取指令周期的微操作如图8.1所示。

如根据图8.1所示,在取指周期中要完成取指令功能,必须包括如下几个微操作:;

①现行指令地址送到存储器地址寄存器,记作:PC→MAR。

②把MAR中的地址送到地址总线上。(如果MAR直接连在地址总线上,就不需要这一步)

③向主存发送读命令,启动主存储器读操作,记作:1→R。;④将MAR(通过地址总线)所指的主存单元中的内容(指令)经过数据总线读至MDR内,记作:M(MAR)→MDR。

⑤将MDR的内容送至IR,记作:MDR→IR。

⑥形成下一条指令的地址,记作:(PC)+1→PC。

⑦指令的操作码送至CU中的ID进行译码,记作OP(IR)→CU(或OP(IR)→ID)。

共计7个微操作命令。

需要特别说明的是:(PC)+1→PC,这个微操作可以放在第1个微操作后的任意一步,也就是说只要执行完PC→MAR这个微操作后,PC内容就可以加1了。

;2.间址周期微操作命令分析

如果指令存在间接寻址,则指令周期中会有间址周期。图8.2为间址周期微操作图。

;①将指令的地址码部分(形式地址)送至存储器地址寄存器,记作:Ad(IR)→MAR。

注意:在取指周期中可以看到,MDR和IR的内容是一样的,所以图8.2中画出的是MDR中的内容送MAR。

②把MAR中的地址送到地址总线上。(如果MAR直接连在地址总线上,就不需要这一步)

③向主存发送读命令,启动主存储器读操作,记作:1→R。

④将MAR(通过地址总线)所指的主存单元中的内容(有效地址EA)经过数据总线读至MDR内,记作:M(MAR)→MDR。

⑤将有效地址EA送至指令寄存器的地址字段,记作MDR→Ad(IR)。

共计5个微操作命令。;3.执行周期

不同的指令,由于指令的功能不同,其执行周期的微操作也不同。

下面分别讨论8条指令的执行周期。(非访存指令3条,访存指令3条,转移类指令2条)

(1)非访存指令(3条)

这类指令在执行期间不需要访问主存储器,在CPU内部就能完成指令的功能,执行速度快。

①清除累加器指令CLA

该指令在执行阶段只是完成清除累加器操作。记作:0→AC。

②累加器取反指令CPL

该指令在执行阶段只是完成累加器取反操作。记作:→AC。

③算术右移一位指令SHR

该指令在执行阶段完成累加器算术右移一位操作。这条指令需要2个微操作。记作:

?L(AC)→R(AC)

?AC0→AC0(AC符号不变);(2)访存指令(3条)

这类指令都需要访问主存储器,增加了访问存储器的时间,所以指令执行速度就会慢一些。

①加法指令ADDAC,X

该指令在执行阶段需要完成累加器AC和对应于主存X地址单元的内容相加,结果送累加器AC,具体操作如下:

?将指令的地址码部分送至存储器地址寄存器,记作:Ad(IR)→MAR。

?向主存发读命令,启动主存作读操作,记作:1→R。

?将MAR(通过地址总线)所指的主存单元的内容(操作数)经数据总线读至MDR内,

记作:M(MAR)→MDR。

?给ALU发做加法的命令,将AC的内容和MDR的内容相加,结果存于AC,记作:(AC)+(MDR)→AC。

共计4个微操作命令。;②存数指令STAX

该指令在执行阶段需要将AC的内容存于主存X的地址单元中,具体操作如下:

?将指令的地址码部分送至存储器地址寄存器,记作:Ad(IR)→MAR。

?将累加器的内容送至MDR,记作:AC→MDR。

?向主存发写命令,启动主存作写操作,记作:1→W。

?将MDR的内容(通过数据总线)写入到MAR(通过地址总线)所指的主存单元中,

记作:MDR→M(MAR)。

共计4个微操作命令。

;③取数指令LDAX

该指令在执行阶段需要将主存X地址单元的内容取至累加器AC中,具体操作如下:

?将指令的地址码部分送至存储器地址寄存器,记作:Ad(IR)→MAR。

?向主存发读命令,启动主存作读操

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档