实验4-预习材料..doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TEC-XP实验机硬布线控制器的设计 我们知道控制器的基本功能是根据指令及指令的执行步骤,产生控制全机的各种控制信号。因此控制器的设计一般都要经过如下几个阶段: ①从指令系统入手,划分每一条指令的执行步骤,设计每一条指令的每一个执行步骤的具体操作功能; ②需要用什么办法区分、表示指令的不同步骤; ③确定在实现这些操作功能时,计算机各相关功能部件要求使用哪些控制信号,这些控制信号要用高电平还是低电平; ④需要选用什么具体逻辑电路、采用什么处理方案来形成这些控制信号。 下面就结合实验机介绍其硬布线控制器的设计实现方法。 一、教学计算机的指令执行流程 在实验二中,我们学习了TEC-XP实验机指令系统,知道了其指令可以按功能和它们的执行步骤分为如下4组: 分类 指令 A组 基本指令 ADD,SUB, AND,OR,XOR,CMP, TEST,MVRR,INC, DEC,SHR,SHL,JR,JRC,JRNC,JRZ,JRNZ 扩展指令 ADC,SBB, NOT,RCL,RCR,ASR, STC,CLC,EI,DI, JRS,JRNS, JMPR B组 基本指令 LDRR,STRR, PUSH,POP,PSHF,POPF,MVRD, IN,OUT, JMPA, RET C组 扩展指令 CALR,LDRA,STRA,,LDRX,STRX D组 基本指令 CALA 扩展指令 TRET A组指令完成的是通用寄存器之间的数据运算或传送,和其它几项特殊的操作,指令执行时不需访问内存,在读取指令之后可一步完成。 B组指令完成的是一次内存或IO设备的访问操作,在读取指令之后可二步完成,第一步用于向地址寄存器送入16位的(或8位的IO端口)地址,第二步完成内存或IO设备的读、写操作。 C组指令中的4条指令,完成的是二次内存访问操作,正常情况要用4步完成,每一次内存访问操作,都要经过传送地址和数据读写这样两步;但在这里却只需要3步即可,因为头一次读出的数据就是下一次读写操作要使用的地址信息,读出之后直接(或经过一次加法运算)将其写入地址寄存器,就可以省掉第二次内存读、写操作过程中的需要的传送地址的步骤。CALR指令先用2步保存PC内容(子程序调用指令的后续指令地址)到堆栈,第3步把寄存器中的子程序入口地址传送到程序计数器PC中。 D组指令完成的也是2次内存储器的读、写操作,在读取指令之后可4步完成。 TEC-XP实验机的指令执行流程如下图所示。 下面对图中的每个符号及其含义进行必要说明。 图中的每一个方框表示指令的一个执行步骤,在计算机中需要用“节拍”来区分不同的步骤和每个步骤的时间长短。方框之间的带箭头的连线表示节拍状态的转换次序和方向。箭头线旁边有文字说明的,表示从前一个节拍转换为当前节拍的条件,没有文字说明的,表示无条件地从前一个节拍转换为当前节拍。这样来理解,上图实际上就是我们在《数字电路》中学过的状态转换图。每个方框左上角的4位数字,是为该节拍分配的节拍状态编码。 二、节拍发生器的设计与实现 根据上面的状态转换图,总共使用了 8 个节拍(不含响应中断的步骤),至少要使用 4 位触发器(可以产生最多16个节拍),使用 4位触发器(分别命名为 T3 T2 T1 T0)不同的状态组合来区分每一个节拍,例如,用T3 T2 T1 T0 =1000 来标识图中最左上角的那个节拍。最终选用多少个节拍更好,可能各有考虑,作为实验用的计算机,以节拍关系更清晰、易理解最重要。还要有利于简化生成全部控制信号的逻辑表达式。 如何分配每个节拍的 4个触发器的状态组合,需要遵循的原则之一是:尽量做到从当前节拍切换到下一个节拍时,只有一个触发器的状态发生变化,办不到时,也要使状态发生变化的触发器数目尽可能少。 下面结合上图说明一下实验机的状态编码:每个方框左上角的4位数字,是为该节拍分配的节拍状态编码。 其中状态编码为1000的节拍完成把0值送到程序计数器PC,为启动监控程序做好准备,只在实验计算机系统加电启动时被执行一次,在实验计算机正常运行的过程中不会进入这个节拍。 状态编码为0000和0010的两个节拍完成读取指令的功能,公用于所有指令,是每一条指令开始执行时必须首先完成的两个操作步骤。 在完成读取指令之后,即已经得知指令操作码的前提下,节拍发生器就按这4类指令的划分情况,分别进入到各自不同的节拍序列。 A组指令将进入标记为0011状态的节拍,用1步完成寄存器之间的数据运算或传送。 B组指令将进入标记为0110状态的节拍,再经过标记为0100的节拍,用2步完成1次对主存储器或IO设备的读写操作。 C组指令将进入标记为0110状态的节拍,再经过标记为0111的节拍、0101的节拍,用3步完成2次内存储器的读写操作,前2个节拍完成读主存储器的同时,还把读出内容传送到地址

文档评论(0)

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

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

1亿VIP精品文档

相关文档