西农大_计算机组成原理实验报告_计算机122_SunLian_第1页
西农大_计算机组成原理实验报告_计算机122_SunLian_第2页
西农大_计算机组成原理实验报告_计算机122_SunLian_第3页
西农大_计算机组成原理实验报告_计算机122_SunLian_第4页
西农大_计算机组成原理实验报告_计算机122_SunLian_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成原理实验报告计算机组成原理实验报告一、 实验计算机的组成1、 软件组成软件系统的组成和实现功能:软件:解释 BASIC语言汇编语言支持监控程序(指令)级模拟教学机模拟:运算器、控制器模拟(微程序级或硬连线控制器级模拟)主存储器模拟,总线、接口模拟输入设备/ 输出设备模拟运行环境:PC机,Windows系统从计算机组成原理课程教学实验的角度看,该计算机软件系统组成也是完整的,支持简单的高级语言BASIC(包括浮点运算指令和基本函数运算功能),汇编语言(支持基本伪指令功能)和二进制的机器语言,配有自己的监控程序,以及PC机仿真终端程序等。2、 硬件组成硬件系统的组成和实现功能:软件:解释

2、 BASIC 语言汇编语言支持监控程序硬件:运算器,控制器(多种实现:微程序或硬连线控制器,中小规模器件或FPGA器件实现)主存储器,总线,接口输入设备,输出设备硬件与电路:逻辑器件和设备由以上可知,该计算机硬件系统组成中,功能部件是完整齐备的,运算器、控制器、存储器、输入输出接口、计算机总线等配备齐全,还可以接通PC机仿真终端执行输入输出操作,同时实现了微程序和硬连线两种方案控制器。从CPU的具体设计和实现技术来说,既支持用中小集成度器件实现CPU的方案,也支持选用高集成度的FPGA门阵列实现CPU的方案,体现了CPU系统设计的最新水平。运算器与控制器1)控制器控制器概述:控制器分别用微程序

3、方式与硬布线方式两种方案实现, 实验者可以方便地选择使用其中任何一种。这能方便地比较两种控制器各自的优缺点, 和设计过程的相同的、不同的步骤与方法。在选用器件时, 微程序方案中选用了美国AMD公司的微程序定序器Am2910芯片, 保证微程序设计的规范与实用性;控存体选用唯读存储器(ROM)芯片, 通过对该ROM的编程写入方式支持动态微程序设计。硬布线方案中, 节拍逻辑与时序控制信号形成部件(组合逻辑线路)选用了GAL20V8 现场可编程器件和Macro Array CMOS High density(简写为MACH)器件, 这对简化控制器的逻辑设计与实现至关重要,也有利于进一步掌握数字系统设计

4、自动化和逻辑模拟的新知识。控制器部件详细介绍:组合逻辑的控制器主要由程序计数器PC(选用运算器内的一个通用累加器实现,未明显表示的图中)、指令寄存器IR、节拍发生器Timing、和时序控制信号产生部件MACH435(或MACH5)芯片等组成。硬布线控制器(又称组合逻辑)的主体部分由程序计数器PC(16位长度,是Am2901的R5),指令寄存器IR(16位长度),节拍发生器(4位触发器的节拍状态)和时序控制信号形成部件(1片100条引脚的现场可编程的CPLD器件)4部分组成。程序计数器PC用于保存下一条将要执行的指令在内存中的单元地址,有增量功能(PC+1PC),并可以接受新的指令地址。在到内存

5、读取指令之前,需要把PC中的内容送到内存地址寄存器,给出被读指令在内存中的单元地址。在教学计算机中,程序计数器PC选用运算器内部的一个16位的累加器实现。指令寄存器IR用于保存当前正在执行的指令的主要内容,在读取指令的周期接收从内存中读出来的一条指令,以便提供本指令的操作码和使用的数据或者数据地址。在教学计算机中,指令寄存器IR选用两片由8位的D触发器构成的寄存器实现。节拍发生器Timing用于使用几个触发器的不同的编码状态来区分和标示指令的执行步骤,指令执行步骤的衔接是通过节拍发生器的编码状态转换完成的。在教学计算机中,节拍发生器Timing选用一片简单PLD器件GAL20V8芯片实现。时序

6、控制信号产生部件用于产生并提供每一条指令的每一个执行步骤使用的全部时序控制信号,它要依据指令寄存器的操作码和节拍发生器的状态编码信号,可能还有运算器运算产生的标志位信号(C、Z、S)等,通过由与_或两级门电路产生并提供出一条指令的一个执行步骤使用的全部控制信号,这些信号可以直接送到每个被控制对象,或者经过译码器送到被控制对象。在教学计算机中,时序控制信号产生部件选用一片有100个引脚的 CPLD 器件实现,两个译码器选用三八译码器 74LS138 芯片实现。教学计算机的硬布线控制器组成框图2)运算器运算器概述:运算器中配置了两组独立的8位字长的运算器,各自由2片位片结构的运算器器件组成;还有四

7、位的状态标志寄存器和教学实验所需的相关逻辑部件。全部的算术与逻辑运算均在这里完成; 还完成几种寻址方式的实际地址计算; 它也是主要的数据、地址传送的通路。要特别说明的一点是, 堆栈指针SP和控制器中的程序计数器PC,都是用这里的几个通用寄存器来实现的, 以节省器件与简化实验机的实现。运算器部件详细介绍:教学计算机的运算器部件的主体由4片4位的运算器芯片Am2901彼此串接构成。它输出16位的数据运算的结果(用Y表示)和4个结果特征位(用Cy、F=0000、OVER、F15标志),它的输入(用D表示)只能来自于内部总线。确定运算器运算的数据来源、运算功能、结果处置方案,需要使用控制器提供的I8I

8、0、B3B0、A3A0共17个信号。运算器的输出直接连接到地址寄存器AR的输入引脚,用于提供地址总线的信息来源。运算器的输出还经过两个8位的244器件的控制(使用DCI译码器的 /YTOIB信号)被送到内部总线IB,用于把运算器中的数据或者运算结果写入内存储器或者输入输出接口芯片。运算器产生的4个结果特征位的信息需要保存,为此必须设置一个4位的标志寄存器FLAG,用于保存这4位结果特征信息,标志寄存器的输出分别用C、Z、V、S表示。控制标志寄存器何时和如何接收送给它的信息,需要使用控制器提供的SST2SST0三位信号。运算器还需要按照指令执行的要求,正确地得到最低位的进位输入信号,最低位和最高

9、位的移位输入信号,为此还需要配置另外一个标示为SHIFT的线路,在控制器提供的SSH和SCI1SCI0三位信号的控制下,产生运算器最低位的进位输入信号,最低位和最高位的移位输入信号。运算器主要芯片及功能介绍:Am2901芯片是一个4位的位片结构的、完整的运算器器件,其内部组成如下图所示,作为教学内容的实例具有很好的典型性。4输出Y/OE二选一FA L UF=0000I3Cn+4I4CnOVRI5SF3R二选一三选一I0I1 4输入DI2B锁存器A锁存器A 16个 B 通用寄存器4A地址 Q寄存器B地址4三选一I6I7I8Q3Q0 三选一RAM 0RAM 3 Am2901芯片的内部组成框图1).

10、 Am2901的内部组成从图上可以看到,该芯片的第一个组成成分是一个4位的算逻运算部件ALU,它的输出为F,两路输入分别用R和S标记,还有送入ALU最低位的进位信号Cn。它能实现R+S、S-R、R-S三种算术运算功能,和RS、RS、RS、RS、RS五种逻辑运算功能。在给出运算结果的同时,还送出向高位的进位输出信号Cn+4,溢出标志信号OVR,最高位的状态信号F3(可能用作符号位),以及运算结果为零的标志信号F=0000。该芯片的第二个组成成分是由16个4位的通用寄存器组成的寄存器组。它是一个用双端口(A口和B口)控制读出、单端口(B口)控制写入的部件。为了对其进行读写,需通过A地址(寄存器编号

11、)、B地址(寄存器编号)指定被读写的寄存器。两路读出数据分别用A、B标记,经锁存器线路可以送到ALU的R、S输入端的多路选择器,A口读出数据还可以用作该芯片的可选输出信号之一。寄存器组的写入数据由一组多路选择器给出,并由B地址选择写入的寄存器。该芯片的第三个组成成分是一个4位的Q寄存器,主要用于实现硬件的乘法、除法指令,能对本身的内容完成左、右移位的功能,能接收ALU的输出,输出送到ALU 的S 输入端。该芯片的其余组成成分是5组多路数据选择器电路,每组都由4套电路组成,一套电路对应一个数据位,通过它们,实现芯片内部上述三个组成成分之间的联系,也实现该芯片和其外界信息的输入与输出操作,这包括:

12、 一组4位的二选一器件控制把运算器内的两路4位输出数据(A口数据、ALU的运算结果数据)送出芯片,标记为Y; 一组4位的二选一和 一组4位的三选一器件,分别用于组合外部送来信息D,通用寄存器组的双路读出信息A和B,乘商寄存器Q的信息,以决定ALU的两路输入R和S的数据来源; 一组4位的三选一器件,完成从ALU的输出结果,ALU输出结果左移一位的值,ALU输出结果右移一位的值中选择其一,作为通用寄存器的写入信息,实现的是通用接存器接收及移位功能。在左右移位时,其最高位和最低位可以送出或接收相应位的信息,图中用RAM3和RAM0标记,它们都是由能进行双向传送的三态门电路实现的; 一组4位的三选一器

13、件,用于完成Q寄存器内容的左右移位,或接收ALU的输出结果的操作功能。在进行左右移位操作时,与通用寄存器移位类似的是,这里存在Q3和Q0的双向传送问题。2)AR由什么芯片构成,引脚,读写工作原理结构型式,其主要电器特性的典型值如下(不同厂家具体值有差别):型号 TPD PD 读写工作原理:输出端 Q0Q7 可直接与总线相连。当三态允许控制端 OE 为低电平时,Q0Q7为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,Q0Q7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端 LE 为高电平时,Q 随数据 D 而变。当 LE 为低电平时,D 被锁存

14、在已建立的数据电平。当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV。74Ls373内部结构图如下所示:引脚:D0D7 数据输入端OE 三态允许控制端(低电平有效)LE 锁存允许端Q0Q7 输出端真值表: DnLEOEQnHHLHLHLLXLLQ0XXH高阻3)查找送往AR的PC是2901中的R几?R54)74LS244及74LS245的内部结构、功能74LS244为3态8位缓冲器,一般用作总线驱动器。74LS244没有锁存的功能。地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。8086/8088数据和地址总线采用分时复用操作方法,即用

15、同一总线既传输数据又传输地址。当微处理器与存储器交换信号时,首先由CPU发出存储器地址,同时发出允许锁存信号ALE给锁存器,当锁存器接到该信号后将地址/数据总线上的地址锁存在总线上,随后才能传输数据。 它主要用于三态输出,作为地址驱动器、时钟驱动器、总线驱动器和定向发送器等。其真值表如下:74Ls244真值表74LS244真值表L表示低电平H表示高电平X表示不定状态Z表示高阻态74ls24574LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载达

16、到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)DIR=“1”,信号由 A 向 B 传输;(发送)当CE为高电平时,A、B均为高阻态。由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,E端接地,保证数据线畅通。8051的/RD和/PSEN相与后接DIR,使得RD和PSEN有效时,74LS245输入(P0.1D1),其它时间处于输出(P0.1D1)。5)138译码器与139译码器比较 139译码器内部138译码

17、器内部为38译码器,139是两个独立的24译码器。二、实验机工作原理2.1、TEC-XP计算机组成原理实验箱简介1.教学机系统配置了两个不同实现方案的CPU系统,一个CPU沿袭传统的设计思路,由中小规模的器件组成;另一个CPU参考国外著名大学的设计思路用大规模的FPGA器件设计实现。2.教学机的机器字长16位, 即运算器、主存、数据总线、地址总线都是16位。3.指令系统支持多种基本寻址方式。其中一部分指令已实现,用于设计监控程序和用户的常规汇编程序,尚保留多条指令供实验者自己实现。4.主存最大寻址空间是18K字,由基本容量为8K(字节或16位的字)的ROM和2K(字节或16位的字)的RAM存储

18、区域组成。还可以进一步完成存储器扩展的教学实验。5.原理上讲,主时钟脉冲的频率可在几百KHz近2MHz之间选择。6.运算器由4片位片结构器件级联而成,片间用串行进位方式传递进位信号。ALU实现8种算术与逻辑运算功能,内部包括16个双端口读出、单端口写入的通用寄存器, 和一个能自行移位的乘商寄存器。设置C(进位)、Z(结果为0)、V(溢出)和S(符号位)四个状态标志位。7.控制器采用微程序和硬布线两种控制方案实现,可由实验者自由选择。实验人员可方便地修改已有设计,或加进若干条自己设计与实现的新指令,新老指令同时运行。8.主机上安装有两路INTEL8251串行接口,一路出厂时已经实现,可直接接计算

19、机终端,或接入一台PC机作为自己的仿真终端;另一路保留学生扩展实现。选用了MAX202倍压线路,以避免使用+12V和-12V电源。9.在主板的右下方,配置了完成中断教学实验的全套线路,可以实现三级中断和中断嵌套。10.系统实现多种运行方式,可以单步/连续运行主存储器的指令或程序,也可以执行一条或若干条通过数据开关手动置入的指令。11.主板上设置数据开关和微型开关、按键和指示灯,支持最低层的手工操作方式的输入/输出,通过指示灯来显示重要的数据或控制信号的状态,可以完成机器调试和故障诊断。板上还有支持教学实验用的一定数量的跳线夹。12.实验机硬件系统,全部功能部件分区域划分在大一些的水平放置的一块

20、印制电路板的不同区域,所有器件都用插座插接在印制板上,便于更换器件。13.实验计算机使用单一的5V、最大电流3A的直流模块电源,所耗电流在1.52.5A之间。电源模块安装在水平电路板右上角位置,交流220V通过电源接线插到机箱后侧板,经保险丝、开关连接到电路板上,开关安放在机箱右侧靠后位置,方便操作且比较安全。13.两路的串行接口的接插座安放在机箱后侧板以方便接线插拔和机箱盖的打开关闭。2.2、教学计算机的指令执行流程按照TEC-XP教学计算机指令的功能和它们的执行步骤,可把指令划分成为如下4组。A组: 基本指令 ADD,SUB, AND,OR,XOR,CMP, TEST,MVRR,INC,

21、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组指令完成的是通用寄存器之间的数据运算或传送,和其它几项特殊的操作,例如CLC和STC指令,在读取指令之后可一步完成。B组指令完成的是一次内存读、写操作,或一次IO设备的读、写操

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

23、D组指令完成的也是2次内存储器的读、写操作,在读取指令之后可4步完成。全部指令又被划分为基本指令(29条)和扩展指令(19条)两大类,两类指令合在一起才构成一套比较完整的指令系统。基本指令已经由生产厂家完成设计并实现,被用来支持监控程序和简单的汇编语言程序设计,设计结果作为教学内容的实例写进了教材中。扩展指令则保留给实验者在控制器部件的教学实验中自己动手来设计和实现,对扩展指令的设计结果在教师用书中给出。在运行BASIC语言解释程序时,会用到大部分的扩展指令,全指令集的设计结果已经做成一个文件提供给使用者,只需把这个文件的内容下载到MACH芯片中,教学计算机就可以支持前面给出的全部48条指令。

24、教学计算机的使用者还可以设计实现自己选择的其他一些指令。接下来是划分指令执行步骤和安排每个步骤所执行的处理功能,得到的设计结果,即指令执行流程如图2-17所示。在4组指令中,属于B组的指令都是基本指令,属于C组的指令都是扩展指令,在A组、D组中都同时含有基本指令和扩展指令。R4 0, 关中断1000 按RESET键B、C、D组指令0000检查有无中断请求无读 取 指 令 AR PC,PC PC+10110B组指令01000010读、写内存或读、写外设读内存,IR 读出指令传送地址AR 地址D组指令C组指令A组指令011100110101读写内存或寄存器间传送传送地址AR 地址寄存器之间的数据运

25、算或传送 教学计算机的指令执行流程图图中的每一个方框代表一个节拍,表示指令的一个执行步骤。方框内部的文字简要说明在该节拍中应该完成的主要操作功能。方框之间的带箭头的连线表示节拍状态的转换次序和方向。箭头线旁边有文字说明的,表示从前一个节拍转换为当前节拍的条件,没有文字说明的,表示无条件地从前一个节拍转换为当前节拍。每个方框左上角的4位数字,是为该节拍分配的节拍状态编码。前面已经讲到,把教学计算机全部指令按其应完成的功能和执行步骤情况,划分成A、B、C、D共4组。从指令流程图上可以看到,在完成读取指令之后,即已经得知指令操作码的前提下,节拍发生器就按这4类指令的划分情况,分别进入到各自不同的节拍

26、序列。其中状态编码为1000的节拍完成把0值送到程序计数器PC,为启动监控程序做好准备,只在教学计算机系统加电启动时被执行一次,在教学计算机正常运行的过程中不会进入这个节拍。状态编码为0000和0010的两个节拍完成读取指令的功能,公用于所有指令,是每一条指令开始执行时必须首先完成的两个操作步骤。图中用虚线菱形框表示的“响应与处理中断请求”的动作,在相邻两条指令进行切换的时刻,即前一条指令已经结束、下一条指令尚未开始的时刻,完成检查有无中断请求的功能,这个检查步骤也公用于所有指令,并依据检查结果进行不同的处理,无中断请求时,就开始下一条指令的执行过程,有中断请求时则进入中断响应和处理的过程,处

27、理起来略显复杂,等到讲解中断的时候再详细说明。其他节拍用于不同指令,具体说明如下。A组指令将进入标记为0011状态的节拍,用1步完成寄存器之间的数据运算或传送;B组指令将进入标记为0110状态的节拍,再经过标记为0100的节拍,用2步完成1次对主存储器或IO设备的读写操作;C组指令将进入标记为0110状态的节拍,再经过标记为0111的节拍、0101的节拍,用3步完成2次内存储器的读写操作,前2个节拍完成读主存储器的同时,还把读出内容传送到地址寄存器,第3个节拍直接使用该地址完成第二次对主存储器的读写操作;CALR指令是一次内存写操作和一次寄存器之间的数据传送操作,也是3个步骤完成。D组指令,将

28、进入标记为0110状态的节拍,再经过标记为0100的节拍、0111的节拍、0101的节拍,用4步完成2次内存储器的读写操作,每一次内存储器的读写操作各自用2步完成。2.3、教学计算机的时序控制信号形成部件2.3.1. 确定控制器应提供的控制信号教学计算机的总体组成情况,部件之间的连接关系,即数据传送的通路,如下图所示:教学计算机的数据通路与微命令的控制作用2.3.2、教学计算机各部件的连接关系:运算器部件的输入只来自于教学机的内部总线。运算器部件的输出可以: (1)直接送地址寄存器;(2)经开关门送到内部总线。内部总线可以接收5路数据来源:(1) 运算器的16位输出数据; (2) 16位的中断

29、向量;(3) 指令寄存器的低8位内容和 8位的补码符号扩展;(4) 8位的程序状态字内容; (5) 16位数据开关送来的手拨数据。请注意,内部总线还可以经双向三态门接收从外部总线送来数据或指令,这是通过另外的控制方式实现的,与对前5路数据来源的选择分开来处理,逻辑关系上显得更加合理。内部总线的内容可以送到:(1) 运算器的输入端; (2) 指令寄存器;(3)状态位寄存器; (4) 通过双向三态门送到外部总线。两个需要控制其是否接受输入的寄存器:(1) 指令寄存器,输入来自内部总线,保存的是指令的第一个字的内容;(2) 地址寄存器,输入来自运算器的输出,其输出就是地址总线,用作为访问内存的地址或

30、IO设备的端口的地址。下面开始对控制器需要提供出来的控制信号进行详细的说明。 对运算器部件,应该向它提供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寄存器)的移位输入信号在完成脱机情况下的运算器实验时,使用24位的微型手拨开关向运算器提供这23位

31、控制信号。当计算机正常运行时,将改由控制器向运算器提供这23位控制信号。 对内存储器和I/O接口部件,控制器主要向它们提供读写操作用到的地址信息和全部控制信号。为实现对存储器和I/O接口的读写操作控制,必须指明:要还是不要读写内存或I/O接口,是读写内存储器还是I/O接口,到底是读还是写操作。可以把这些要求组合成以下5种情形:写内存,在写数据到内存时要用,用于教学机的STO、PUSH等指令的写内存操作;读内存,在从内存读数据时要用,用于教学机的LOD、POP等指令的读内存操作;写接口,在写数据到接口时要用,用于教学机的OUT指令的写I/O接口操作;读接口,在从接口读数据时要用,用于教学机的IN

32、指令的读I/O接口操作;既不读写内存也不读写接口,在许多指令的大部分时间里是有这种运行需求的,此时应禁止内存和接口的读写操作。设计中一定不能忘记这一使用要求。在TEC-2000教学计算机系统中,通过3位编码(/MIO,REQ,/WE)来区分上述5种情形,具体安排如下。 /MIO REQ /WE 操作功能 0 0 0 内存写 0 0 1 内存读 0 1 0 I/O写 0 1 1 I/O读 1 无读写可以看到,/MIO信号为低,要读写内存或I/O接口,为高则不读写内存和I/O接口;在/MIO信号为低时,REQ信号为低,是内存工作(读写),为高则是I/O接口工作;在/MIO信号为低时,/WE信号为低

33、是写操作,为高则是读操作。 这里的“”符号表示“无关位”,即/MIO信号为高时,无论REQ和/WE处于什么状态,都是既不读写内存也不读写I/O接口。向内存和I/O接口提供的读写信号,通过对/MIO REQ /WE这3位码的译码来实现。 对CPU内部总线数据来源的控制,主要是通过3位编码(标记为DC1),用来选择把哪一组数据发送到CPU内部总线IB上。可以向内部总线IB传送数据的信息来源包括:ALU的输出结果,将ALU的输出送到内部总线,主要目的是用于把累加器的内容写进内存或I/O接口,即把ALU的输出经内部总线、经过双向3态门电路(74LS245)传送到外部数据总线OB(DB),而DB的每一位

34、与内存的数据线、I/ O接口的数据线直接连接在一起。程序状态字,由4位状态标志位寄存器的输出C、Z、V、S,及2位中断优先级P1、P0信号总共6位信息组成。将这8位(最低2位补0值)程序状态送到IB,也是为了将其写入内存。在响应中断后,用于通过PUSHF指令保存中断现场信息。指令寄存器的低位字节,在IN和OUT指令中,存放的是IO端口地址,需要送内部总线再经ALU传到地址寄存器;在相对转移指令中,存放的是offset偏移值,需要送内部总线经ALU完成与程序计数器PC的内容相加;此时有一个符号位扩展支持的问题,在计算相对转移指令的转移地址时,是通过把一个8位的补码(由汇编程序计算得到)与该转移指

35、令本来的16位地址(一定为正数,故其原码与补码相同)相加来实现,必须把8位补码offset的最高位(补码的符号位,可能为0或1)扩展到加法器的高8位的每一位上去参加相加。16位的数据手拨开关,用于把通过该开关所拨的内容,经过内部总线传送到计算机内相关部件中。16位的中断向量,由2位的中断优先级拼接上确定的高12位数值(通过跳线给出)得到,最低的2位补0,在处理中断时,用于找到中断服务子程序的入口地址。在任何时刻只能把一个数据来源送上总线。为了从上述5个数据来源中选取其一,可以设置3位码(标记为DC1),并通过译码器给出的译码信号打开不同的选择门线路来完成。在TEC-2000计算机的实现中,具体

36、规定如下。 DC1码 译码信号 操作说明 000 /SWTOIB 送开关内容到内部总线 001 /RTOIB 送ALU输出到内部总线 010 /ETOIB 送IR低位字节内容到内部总线(可能含符号为扩展) 011 /FTOIB 送程序状态到内部总线 100 /STOIB 16位机种不用 101 /INTVH 16位机种不用 110 /INTV 送中断向量到内部总线 111 NC 无操作功能,不向内部总线发送数据其实还可以从外部总线向内部总线传送数据(或者相反方向),但这是通过另外的办法处理的,并且已经处理好与DC1编码控制的协调关系。 对几个特定的寄存器接受输入的控制,也要通过3位编码(标记为

37、DC2),用来选择允许哪一个寄存器接收送给它的一组数据。这些寄存器是指令寄存器IR,地址寄存器,中断优先级寄存器INTP等。可以通过把对DC2信号译码产生的各译码信号送到各相应寄存器的/G控制端引脚,来完成对寄存器接收数据的控制。再一次说明,此时至少得有一个译码信号为NC,即不操作(接收)控制。在TEC-2000计算机的实现中,具体规定如下。 DC2码 译码信号 操作说明 000 NC 不操作 001 /GIR 指令寄存器接收 010 /GARL 16位机中不用 011 /GAR 地址寄存器接收 100 /INTR 恢复原中断优先级 100 /INTN 接收新中断优先级 110 /EI 开中断

38、 111 /DI 关中断这里需要说明,对3位的DC2码译码可以产生8个译码输出信号,其中的3个用于控制专用寄存器的接收操作,1个不用,另外的4个转义用于有关中断的控制操作,响应新的中断请求时需要变化中断优先级,中断处理完成时,需要恢复中断之前的程序现场,为了使得CPU可以响应中断,需要在用户程序中执行一条开中断指令EI,为了禁止CPU响应中断,需要在用户程序中执行一条关中断指令DI。把上述全部内容归纳在一起,就得出需要控制器形成并提供给计算机各个功能部件的32位时序控制信号。 23位用于运算器, 3位用于内存和I/O接口, 3 位用于内部总线, 3位用于几个特定寄存器2.4指令系统2.4.1指

39、令格式TEC-XP教学机实现了29条基本指令,用于编写教学机的监控程序和支持简单的汇编语言程序设计。同时保留了19条扩展指令,供学生在教学实验中完成对这些指令的设计与调试。教学机的指令格式支持单字和双字指令,第一个指令字的高8位是指令操作码字段,低8位和双字指令的第二个指令字是操作数、地址字段,分别有3种用法,如下图所示。操作码DRSRIO端口地址 / 相对偏移量立即数 / 直接内存地址 / 变址偏移量这8位指令操作码(记作“IR15IR8”),含义如下:1) IR15、IR14用于区分指令组:0X表示A组,10表示B组,11表示C、D组;C、D组的区分还要用IR11,IR11=0为C组,IR

40、11=1为D组。2) IR13用于区分基本指令和扩展指令:基本指令该位为0,扩展指令该位为1;3) IR12用于简化控制器实现,其值恒为0;4) IR11IR8用于区分同一指令组中的不同指令。教学机的指令根据指令字长、操作数不同可划分为如下5种指令格式:1) 单字、无操作数指令:格式:操作码0000 0000基本指令:PSHF;状态标志(C、Z、V、S、P1、P0)入栈POPF;弹出栈顶数据送状态标志寄存器RET子程序返回扩展指令:CLC;清进位标志位C=0STC;置进位标志位C=1EI;开中断,置中断允许位INTE=1DI;关中断,置中断允许位INTE=0IRET;中断返回2) 单字、单操作

41、数指令:格式:操作码DR 00000000 SROFFSETI/O PORT基本指令:DECDR;DRDR-1INCDR;DRDR+1SHLDR;DR逻辑左移,最低位补0,最高位移入CSHRDR;DR逻辑右移,最高位补0,最低位移入CJROFFSET;无条件跳转到ADR,ADR=原PC值+OFFSETJRCOFFSET;当C=1时,跳转到ADR,ADR=原PC值+OFFSETJRNCOFFSET;当C=0时,跳转到ADR,ADR=原PC值+OFFSETJRZOFFSET;当Z=1时,跳转到ADR,ADR=原PC值+OFFSETJRNZOFFSET;当Z=0时,跳转到ADR,ADR=原PC值+O

42、FFSETINI/O PORT;R0I/O PORT ,从外设I/O PORT端口读入数据到R0OUTI/O PORT;I/O PORTR0,将R0中的数据写入外设I/O PORT端口PUSHSR;SR入栈POPDR;弹出栈顶数据送DR扩展指令:RCLDR;DR与C循环左移,C移入最低位,最高位移入CRCRDR;DR与C循环右移,C移入最高位,最低位移入CASRDR;DR算术右移,最高位保持不变,最低位移入CNOTDR;DR求反,即DR/DRJMPRSR;无条件跳转到SR指向的地址CALRSR;调用SR指向的子程序JRSOFFSET;当S=1时,跳转到ADR,ADR=原PC值+OFFSETJR

43、NSOFFSET;当S=0时,跳转到ADR,ADR=原PC值+OFFSET3) 单字、双操作数指令:格式:操作码DRSR基本指令:ADDDR,SR;DRDR+SRSUBDR,SR;DRDR-SRANDDR,SR;DRDR and SRCMPDR,SR;DR-SRXORDR,SR;DRDR xor SRTESTDR,SR;DR and SRORDR,SR;DRDR or SRMVRRDR,SR;DRSRLDRRDR,SR;DRSRSTRRDR,SR;DRSR扩展指令:ADCDR,SR;DRDR+SR+CSBBDR,SR;DRDR-SR-C4) 双字、单操作数指令:格式:操作码0000 0000A

44、DR基本指令:JMPAADR;无条件跳转到地址ADRCALAADR;调用首地址在ADR的子程序5) 双字、双操作数指令:格式1:操作码DR 0000 0000 SRDATA基本指令:MVRDDR,DATA;DRDATA扩展指令:LDRADR,ADR;DRADRSTRAADR,SR;ADRSR格式2:操作码DRSRADR扩展指令:LDRXDR,OFFSETSR;DROFFSET+SRSTRXDR,OFFSETSR;OFFSET+SRDR2.4.2教学指令2.4.2.1基本指令指令格式汇编语句操作数个数CZVS指令类型功能说明00000000 DRSR00000001 DRSR00000010 D

45、RSR00000011 DRSR00000100 DRSR00000101 DRSR00000110 DRSR00000111 DRSR00001000 DR000000001001 DR000000001010 DR000000001011 DR000001000001 OFFSET01000100 OFFSET01000101 OFFSET01000110 OFFSET01000111 OFFSETADD DR,SRSUB DR,SRAND DR,SRCMP DR,SRXOR DR,SRTEST DR,SROR DR,SRMVRR DR,SRDEC DRINC DRSHL DRSHR DR

46、JR OFFSETJRC OFFSETJRNC OFFSETJRZ OFFSETJRNZ OFFSET22222222111111111*A组指令DRDR+SRDRDR-SRDRDR and SRDR-SRDRDR xor SRDR and SRDRDR or SRDRSRDRDR-1DRDR+1DR,CDR/2DR,CDR*2无条件跳转C=1时跳转C=0时跳转Z=1时跳转Z=0时跳转10000000 0000000ADR(16位)10000001 DRSR10000010 I/O PORT10000011 DRSR10000100 0000000010000101 0000SR1000011

47、0 I/O PORT10000111 DR000010001000 DR000010001100 0000000010001111 00000000JMPA ADRLDRR DR,SRIN I/O PORTSTRR DR,SRPSHFPUSH SROUT I/O PORTPOP DRMVRD DR,DATAPOPFRET12120111200B组指令无条件跳到ADRDRSRR0I/O PORTDRSRFLAG入栈SR入栈I/O PORTR0DR出栈DRDATAFLAG出栈子程序返回11001110 00000000CALA ADR1D组指令调用首地址在ADR的子程序注:表中CZVS一列,*表示

48、对应状态位在该指令执行后会被重置;表示对应状态位在该指令执行后不会被修改。1 运算器芯片中有16个通用寄存器(累加器)R0R15,其中:R4用作16位的堆栈指针SP;R5用作16位的程序计数器PC;其余寄存器用作通用寄存器,即多数双操作数指令和单操作数指令中的DR、SR2.4.2.2扩展指令指令格式汇编语句操作数个数CZVS指令类型功能说明00100000 DRSR00100001 DRSR00101010 DR000000101011 DR000000101100 DR000000101101 DR000001100000 0000SR01100100 OFFSET01100101 OFFS

49、ET01101100 0000000001101101 0000000001101110 0000000001101111 00000000ADC DR,SRSBB DR,SRRCL DRRCR DRASR DRNOT DRJMPR SRJRS OFFSETJRNS OFFSETCLCSTCEIDI2211111110000*01A组指令DRDR+SR+CDRDR-SR-CDRDR带进位C循环右移DRDR带进位C循环左移DRDR算术右移DR/DR跳转到SR指明的地址S=1时跳转S=0时跳转C=0C=1开中断关中断11100000 0000SR11100100 DR000011100101 DR

50、SRADR(16位)11100110 DRSRADR(16位)11100111 0000SRCALR SRLDRA DR,ADRLDRX DR,OFFSETSRSTRX DR,OFFSETSRSTRA ADR,SR12221C组指令调用SR指明的子程序DRADRDRDATA+SRDATA+SRSRADRSR11101111 00000000IRET0D组指令中断返回注:表中CZVS一列,*表示对应状态位在该指令执行后会被重置;表示对应状态位在该指令执行后不会被修改。二、 实验3.1基础汇编语言程序设计3.1.1实验内容1 学习联机使用TEC-XP教学实验系统和仿真终端软件PCEC.2 使用监控

51、程序R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;3 使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。3.1.2实验完成情况今天老师主要给我们介绍了实验计算机在PC机上运行PCEC16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为“1”或“2”, 其它的设置一般不用改动,直接回车即可。按一下“RESET”按键,再按一下“START”按键。在操作这两步出出了问题,start 按键必须按两次。不然无法出现想要的结果。3.1.3实验体会实验一我们主要是按照书上的步骤来一步一步的往下做,所以并没有遇上很多问题。我们所做的例题都是用监控程序的A命令完成输入源汇编程序的,有时候不小心输错了字符还要重新输入,特别的麻烦。3.2脱机运算器实验 3.2.1实验内容深入了解AM2901运算器的功能与具体用法,4片AM2901的级连方式,深化运算器部件的组成、设计、控制与使用等诸项知识。3.2.2实验完成情况做脱机运算器实验时,要用到提供24位控制信号的微动开关和提供16位数据的拨动开关。微动开关是

温馨提示

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

最新文档

评论

0/150

提交评论