实验4-预习材料_第1页
实验4-预习材料_第2页
实验4-预习材料_第3页
实验4-预习材料_第4页
实验4-预习材料_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TEC-XP实验机硬布线控制器的设计我们知道控制器的基本功能是根据指令及指令的执行步骤,产生控制全机的各种控制信号。因此控制器的设计一般都要经过如下几个阶段:从指令系统入手,划分每一条指令的执行步骤,设计每一条指令的每一个执行步骤的具体操作功能;需要用什么办法区分、表示指令的不同步骤;确定在实现这些操作功能时,计算机各相关功能部件要求使用哪些控制信号,这些控制信号要用高电平还是低电平;需要选用什么具体逻辑电路、采用什么处理方案来形成这些控制信号。下面就结合实验机介绍其硬布线控制器的设计实现方法。一、教学计算机的指令执行流程在实验二中,我们学习了TEC-XP实验机指令系统,知道了其指令可以按功能

2、和它们的执行步骤分为如下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, JMPRB组基本指令LDRR,STRR, PUSH,POP,PSHF,POPF,MVRD, IN,OUT, JMPA, RETC组扩展指令CALR,LDRA,STRA,,LDRX,STRXD组基本指令CALA扩展指令TRETA组指令完成的是通用寄存器之间的数据运算或传送,和其它几项特殊的操作,指

3、令执行时不需访问内存,在读取指令之后可一步完成。B组指令完成的是一次内存或IO设备的访问操作,在读取指令之后可二步完成,第一步用于向地址寄存器送入16位的(或8位的IO端口)地址,第二步完成内存或IO设备的读、写操作。C组指令中的4条指令,完成的是二次内存访问操作,正常情况要用4步完成,每一次内存访问操作,都要经过传送地址和数据读写这样两步;但在这里却只需要3步即可,因为头一次读出的数据就是下一次读写操作要使用的地址信息,读出之后直接(或经过一次加法运算)将其写入地址寄存器,就可以省掉第二次内存读、写操作过程中的需要的传送地址的步骤。CALR指令先用2步保存PC内容(子程序调用指令的后续指令地

4、址)到堆栈,第3步把寄存器中的子程序入口地址传送到程序计数器PC中。D组指令完成的也是2次内存储器的读、写操作,在读取指令之后可4步完成。TEC-XP实验机的指令执行流程如下图所示。下面对图中的每个符号及其含义进行必要说明。图中的每一个方框表示指令的一个执行步骤,在计算机中需要用“节拍”来区分不同的步骤和每个步骤的时间长短。方框之间的带箭头的连线表示节拍状态的转换次序和方向。箭头线旁边有文字说明的,表示从前一个节拍转换为当前节拍的条件,没有文字说明的,表示无条件地从前一个节拍转换为当前节拍。这样来理解,上图实际上就是我们在数字电路中学过的状态转换图。每个方框左上角的4位数字,是为该节拍分配的节

5、拍状态编码。二、节拍发生器的设计与实现根据上面的状态转换图,总共使用了 8 个节拍(不含响应中断的步骤),至少要使用 4 位触发器(可以产生最多16个节拍),使用 4位触发器(分别命名为 T3 T2 T1 T0)不同的状态组合来区分每一个节拍,例如,用T3 T2 T1 T0 =1000 来标识图中最左上角的那个节拍。最终选用多少个节拍更好,可能各有考虑,作为实验用的计算机,以节拍关系更清晰、易理解最重要。还要有利于简化生成全部控制信号的逻辑表达式。如何分配每个节拍的 4个触发器的状态组合,需要遵循的原则之一是:尽量做到从当前节拍切换到下一个节拍时,只有一个触发器的状态发生变化,办不到时,也要使

6、状态发生变化的触发器数目尽可能少。下面结合上图说明一下实验机的状态编码:每个方框左上角的4位数字,是为该节拍分配的节拍状态编码。其中状态编码为1000的节拍完成把0值送到程序计数器PC,为启动监控程序做好准备,只在实验计算机系统加电启动时被执行一次,在实验计算机正常运行的过程中不会进入这个节拍。状态编码为0000和0010的两个节拍完成读取指令的功能,公用于所有指令,是每一条指令开始执行时必须首先完成的两个操作步骤。在完成读取指令之后,即已经得知指令操作码的前提下,节拍发生器就按这4类指令的划分情况,分别进入到各自不同的节拍序列。A组指令将进入标记为0011状态的节拍,用1步完成寄存器之间的数

7、据运算或传送。B组指令将进入标记为0110状态的节拍,再经过标记为0100的节拍,用2步完成1次对主存储器或IO设备的读写操作。C组指令将进入标记为0110状态的节拍,再经过标记为0111的节拍、0101的节拍,用3步完成2次内存储器的读写操作,前2个节拍完成读主存储器的同时,还把读出内容传送到地址寄存器,第3个节拍直接使用该地址完成第二次对主存储器的读写操作;CALR指令是一次内存写操作和一次寄存器之间的数据传送操作,也是3个步骤完成。D组指令,将进入标记为0110状态的节拍,再经过标记为0100的节拍、0111的节拍、0101的节拍,用4步完成2次内存储器的读写操作,每一次内存储器的读写操

8、作各自用2步完成。这种处理办法可以把全部指令的执行流程的逻辑关系表现得更清晰通畅,更容易学习与理解,也为简化所用逻辑线路的设计提供了十分有利的条件。图中用虚线框表示的“响应与处理中断请求”的动作,在相邻两条指令进行切换的时刻,即前一条指令已经结束、下一条指令尚未开始的时刻,完成检查有无中断请求的功能,这个检查步骤也公用于所有指令,并依据检查结果进行不同的处理,无中断请求时,就开始下一条指令的执行过程,有中断请求时则进入中断响应和处理的过程,处理起来略显复杂,等到讲解中断的时候再详细说明。这些节拍是由节拍发生器产生的。节拍发生器是用多位触发器的输出信号的不同组合状态,来标识每条指令的执行步骤。设

9、计节拍发生器的线路,就是确保它按照上图规定的功能完成节拍状态转换。在TEC-XP实验机系统中,节拍发生器是用一片GAL20V8器件通过编程实现的。三、控制信号形成部件1、确定控制器应提供的控制信号控制器的功能,是向计算机各个功能部件提供它们协同运行所需要的控制信号。因此在设计控制器时,首先要根据指令的执行过程,把每条指令在执行过程中需要的控制信号统计出来,然后在根据根据这些信号的要求设计电路,产生这些信号。下面开始对控制器需要提供出来的控制信号进行详细的说明。对运算器部件,应该向它提供23位的控制信号(在实验四中,这23位控制信号是用24位的微型手拨开关提供的,当计算机正常运行时,将改由控制器

10、向运算器提供这23位控制信号),包括:4位的A口地址、4位的B口地址(累加器编号),用于选择读写的通用寄存器;3组3位的控制码I8I6,I5I3,I2I0,用于选择结果处置方案、运算功能、数据来源;2组共6位的控制信号,控制配套的2片GAL20V8;3位SST,用于控制C、Z、V、S这4个状态标志位的状态变化;1位SSH和2位SCI, 用于控制产生运算器最低位的进位输入信号,以及运算器最高、最低位(累加器和Q寄存器)的移位输入信号。对内存储器和I/O接口部件,控制器主要向它们提供读写操作用到的地址信息和全部控制信号。为实现对存储器和I/O接口的读写操作控制,必须指明:是否要读写内存或I/O接口

11、,是读写内存储器还是I/O接口,到底是读还是写操作。可以把这些要求组合成以下5种情形:写内存,在写数据到内存时要用,用于实验机的STO、PUSH等指令的写内存操作;读内存,在从内存读数据时要用,用于实验机的LOD、POP等指令的读内存操作;写接口,在写数据到接口时要用,用于实验机的OUT指令的写I/O接口操作;读接口,在从接口读数据时要用,用于实验机的IN指令的读I/O接口操作;既不读写内存也不读写接口,在许多指令的大部分时间里是有这种运行需求的,此时应禁止内存和接口的读写操作。设计中一定不能忘记这一使用要求。在TEC-XP实验机系统中,通过3位编码(/MIO,REQ,/WE)来区分上述5种情

12、形,具体安排如下。/MIOREQ/WE操作功能000内存写001内存读010I/O写011I/O读1XX无读写 可以看到,/MIO信号为低,要读写内存或I/O接口,为高则不读写内存和I/O接口;在/MIO信号为低、REQ信号为低时,是内存工作(读写),为高则是I/O接口工作;在/MIO信号为低、/WE信号为低时是写操作,为高则是读操作。这里的“”符号表示“无关位”,即/MIO信号为高时,无论REQ和/WE处于什么状态,都是既不读写内存也不读写I/O接口。向内存和I/O接口提供的读写信号,通过对/MIO REQ /WE这3位码的译码来实现。 对CPU内部总线数据来源的控制,可以向内部总线IB传送

13、数据的信息来源包括:ALU的输出结果,将ALU的输出送到内部总线,主要目的是用于把累加器的内容写进内存或I/O接口,即把ALU的输出经内部总线、经过双向3态门电路(74LS245)传送到外部数据总线DB,而DB的每一位与内存的数据线、I/ O接口的数据线直接连接在一起。标志寄存器内容,由4位状态标志位寄存器的输出C、Z、V、S,及2位中断优先级P1、P0信号总共6位信息组成。将这8位(最低2位补0值)信息送到IB,也是为了将其写入内存。在响应中断后,用于通过PUSHF指令保存中断现场信息。指令寄存器的低位字节,在IN和OUT指令中,存放的是IO端口地址,需要送内部总线再经ALU传到地址寄存器;

14、在相对转移指令中,存放的是offset偏移值,需要送内部总线经ALU完成与程序计数器PC的内容相加;此时有一个符号位扩展支持的问题,在计算相对转移指令的转移地址时,是通过把一个8位的补码(由汇编程序计算得到)与该转移指令本来的16位地址(一定为正数,故其原码与补码相同)相加来实现,必须把8位补码offset的最高位(补码的符号位,可能为0或1)扩展到加法器的高8位的每一位上去参加相加。16位的数据手拨开关,用于把通过该开关所拨的内容,经过内部总线传送到计算机内相关部件中。16位的中断向量,由2位的中断优先级拼接上确定的高12位数值(通过跳线给出)得到,最低的2位补0,在处理中断时,用于找到中断

15、服务子程序的入口地址。在任何时刻只能把一个数据来源送上总线。为了从上述5个数据来源中选取其一,可以设置3位编码。编码译码信号操作说明000/SWTOIB送开关内容到内部总线001/RTOIB送ALU输出到内部总线010/ETOIB送IR低位字节内容到内部总线(可能含符号为扩展)011/FTOIB送程序状态到内部总线100/STOIB16位机种不用101/INTVH16位机种不用110/INTV送中断向量到内部总线111NC无操作功能,不向内部总线发送数据 在TEC-XP实验机中,这三位编码通过译码器(标记为DC1)给出的译码信号打开不同的选择门线路来选择把哪一组数据发送到CPU内部总线IB上。

16、其实还可以从外部总线向内部总线传送数据(或者相反方向),但这是通过另外的办法处理的,并且已经处理好与DC1编码控制的协调关系。对几个特定的寄存器接受输入的控制,用来选择允许哪一个寄存器接收送给它的一组数据。这些寄存器是指令寄存器IR,地址寄存器,中断优先级寄存器INTP等。这些控制信号也可以用三位编码来实现:编码译码信号操作说明000NC不操作001/GIR指令寄存器接收010/GARL16位机中不用011/GAR地址寄存器接收100/INTR恢复原中断优先级101/INTN接收新中断优先级110/EI开中断111/DI关中断 在TEC-XP实验机中,通过一译码器(标记为DC2)对上述三位编码

17、进行译码产生的信号送到各相应寄存器的/G控制端引脚,来完成对寄存器接收数据的控制。对这一译码器产生8个译码输出信号中,其中的3个用于控制专用寄存器的接收操作,1个不用,另外的4个转义用于有关中断的控制操作,响应新的中断请求时需要变化中断优先级,中断处理完成时,需要恢复中断之前的程序现场,为了使得CPU可以响应中断,需要在用户程序中执行一条开中断指令EI,为了禁止CPU响应中断,需要在用户程序中执行一条关中断指令DI。再一次说明,此时至少得有一个译码信号为NC,即不操作(接收)控制。 把上述全部内容归纳在一起,就得出需要控制器形成并提供给计算机各个功能部件的32位时序控制信号。 23位用于运算器

18、, 3位用于内存和I/O接口, 3 位用于内部总线, 3位用于几个特定寄存器。这些控制信号的功能可用下图表示:2、设计指令流程中各时序控制信号的状态值在划分完指令执行步骤(流程),确定好全部时序控制信号的组成之后,接下来的工作,是根据每条指令的每一个节拍所执行的功能,确定这32位控制信号的正确值,为0 还是 为1,或是 0/1 均可,即填写指令流程表,这项工作的原理不难但却比较繁琐,容不得一点错误。下表给出了对教学计算机基本指令执行流程的设计结果。其实这就是一张由多个输入变量(节拍状态、指令操作码、标志位的值)和32个输出变量构成的逻辑关系的真值表。在指令流程表中,用一个横行,给出一条指令的一

19、个执行步骤(节拍)需要使用的全部控制信号(计32位)的状态取值,这是时序控制信号产生部件的输出信号。该表最左一列是4位的节拍状态,第3列是8位的指令操作码,二者合起来用于指出该行对应的是哪一条指令的哪一个节拍;其中4条条件转移指令还用到了标志位C和Z的值,以决定是否实现转移,已经直接给出在这4条指令相应节拍的控制命令字段对应着I7的位置。4位的节拍状态,8位的指令操作码,状态标志位(C、Z、V、S)组成时序控制信号产生部件的输入信号。第2列和最右一列是注释部分,分别标明指令对应的汇编语句名和本节拍完成的主要操作功能,为理解与阅读指令流程表中的内容提供帮助。这里要做的工作,就是依据已经完成的指令

20、执行流程设计(指令节拍划分与编码,每一条指令的每一个节拍应实现的操作功能),把32位的控制信号的正确取值填入到指令流程表的每一个方格中去。这基本上是一个查表(教学计算机简明操作卡上的内容)并填写的过程,繁琐而机械,却容不得任何错误。节拍指令编码/M R /WI2-0I8-6I5-3BASSTSSH SCIDC2DC1注释1000100001011001010101010000011110000PC,DI#=0000010001101000001010101000001011000PCAR,PC+1PC001000100000100000000000000000001000MEMIR0011AD

21、D00000000100001011000DRSR001000000000DR+SRDRSUB00000001100001011001DRSR001001000000DR-SRDRAND00000010100001011100DRSR001000000000DR or SRDRCMP00000011100001001001DRSR001001000000DR-SRXOR00000100100001011110DRSR001000000000DR xor SRDRTEST00000101100001001100DRSR001000000000DRLSROR00000110100001011011

22、DRSR001000000000DR and SRDRMVRR00000111100100011000DRSR000000000000SRDRDEC00001000100011011001DR0000001000000000DR-1DRINC00001001100011011000DR0000001001000000DR+1DRSHL00001010100011111000DR0000110100000000SHL DRSHR00001011100011101000DR0000101100000000SHR DRJR010000011001010110000101010100000000001

23、0Offset + PCPCJRC010001001001010C100001010101000000000010Offset + PCPCJRNC010001011001010/C100001010101000000000010Offset + PCPCJRZ010001101001010Z100001010101000000000010Offset + PCPCJRNZ010001111001010/Z100001010101000000000010Offset + PCPC0110JMPA1000000010001101000001010101000001011000PCAR, PC+1

24、PCLDRR100000011001000010000000SR000000011000SRAR0110IN1000001010011100100000000000000000011010IRLARLSTRR10000011100011001000DR0000000000011000DRARPSHF1000010010001101100101000000000000011000SP-1SP、ARPUSH1000010110001101100101000000000000011000SP-1SP、AROUT1000011010011100100000000000000000011010IRLAR

25、LPOP1000011110001101000001000100000001011000SPAR, SP+1SPMVRD1000100010001101000001010101000001011000PCAR, PC+1PCPOPF1000110010001101000001000100000001011000SPAR, SP+1SPRET1000111110001101000001000100000001011000SPAR, SP+1SP0110CALA1100111010001101000001010101000001011000PCAR,PC+1PC0100JMPA1000000000

26、111101100001010000000000000000MEMPCLDRR10000001001111011000DR0000000000000000MEMDRIN1000001001111101100000000000000000000000(PORT)R0STRR100000110001000010000000SR000000000001SRMEMPSHF1000010000000000100000000000000000000011FLAGMEMPUSH100001010001000010000000SR000000000001SRMEMOUT10000110010100001000

27、00000000000000000001R0(PORT)POP10000111001111011000DR0000000000000000MEMDRMVRD10001000001111011000DR0000000000000000MEMDRPOPF1000110000100000100000000000010000000000MEMFLAGRET1000111100111101100001010000000000000000MEMPCCALA1100111000111100000000000000000000000000(AR)Q0111CALA11001110100001101100010

28、1000000000000011000SP-1SP、AR0101CALA1100111000001001000001010101000000000001PCMEM,QPC4、用线路实现表312所确定的功能表2-12是体现教学机硬连线控制器的时序控制信号部件功能的一张真值表。由真值表出发设计其线路实现是数字电路的基本核心知识,通常要经过写出相应的逻辑表达式,适当化简,再选用由与-或两级逻辑关系实现的线路这样3步来完成。在实验机中,这个线路使用的是由5000个门组成的MACH器件来实现的。MACH器件内部实现的正好就是与-或两级逻辑关系,又可以现场编程。结合表2,利用层次结构的逻辑描述语言ABEL

29、通过对MACH现场编程即可实现产生上述32位控制信号的功能。(程序略)四、硬布线控制器的组成和功能TEC-XP的硬布线控制器(又称组合逻辑)的主体部分由程序计数器PC(16位长度,是Am2901的R5),指令寄存器IR(16位长度),节拍发生器(4位触发器的节拍状态)和时序控制信号形成部件(1片100条引脚的现场可编程的CPLD器件)4部分组成,框图如图所示。程序计数器PC用于保存下一条将要执行的指令在内存中的单元地址,有增量功能(PC+1PC),并可以接受新的指令地址。在到内存读取指令之前,需要把PC中的内容送到内存地址寄存器,给出被读指令在内存中的单元地址。在教学计算机中,程序计数器PC选用运算器内部的一个16位的累加器实现。指令寄存器IR用于保存当前正在执行的指令的主要内容,在读取指令的周期接收从内存中读出来的一条指令,以便提供本指令的操作码和使用的数据或者数据地址。在教学计算机中,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论