首页 计算机组成原理实验指导-2012-1

计算机组成原理实验指导-2012-1

举报
开通vip

计算机组成原理实验指导-2012-1计算机组成原理实验指导河南大学计算机与信息工程学院2011年TEC-XP实验设备概述TEC-XP实验设备是由清华大学科教仪器厂和清华大学计算机系联合研制,并通过教育部鉴定的实验系统。TEC-XP是在原有TEC系列教学计算机系统的基础上,重新设计的新一代产品,进一步增加了用单片FPGA门阵列器件实现的CPU系统。该实验系统重点用于计算机组成原理、计算机系统结构等课程的硬件教学实验,还支持监控程序、汇编语言程序设计、BASIC高级语言程序设计等软件方面的教学实验。TEC-XP教学机的外观如图1所示。图1TEC-XP教学...

计算机组成原理实验指导-2012-1
计算机组成原理实验指导河南大学计算机与信息工程学院2011年TEC-XP实验设备概述TEC-XP实验设备是由清华大学科教仪器厂和清华大学计算机系联合研制,并通过教育部鉴定的实验系统。TEC-XP是在原有TEC系列教学计算机系统的基础上,重新设计的新一代产品,进一步增加了用单片FPGA门阵列器件实现的CPU系统。该实验系统重点用于计算机组成原理、计算机系统结构等课程的硬件教学实验,还支持监控程序、汇编语言程序设计、BASIC高级语言程序设计等软件方面的教学实验。TEC-XP教学机的外观如图1所示。图1TEC-XP教学机的外观TEC-XP教学机的系统结构如图2所示。图2TEC-XP教学机的系统结构图TEC-XP教学机的主要技术指标TEC-XP教学机的机器字长16位,即运算器、主存、数据总线、地址总线都是16位。(1)TEC-XP的内存地址分配如图3所示。其中0000H~1FFFH的8K空间是由ROM构成的,存放洗的监控程序,2000H~27FFH的2K空间是由RAM构成的工作区。该教学机还可以进一步完成存储器扩展的教学实验,扩展地址从4000H开始。图3TEX-XP教学机的内存分配(2)运算器由4片位片结构器件级联而成,片间用串行进位方式传递进位信号。ALU实现8种算术与逻辑运算功能,内部包括16个双端口读出、单端口写入的通用寄存器,和一个能自行移位的乘商寄存器。设置C(进位标志位)、Z(零标志位)、V(溢出标志位)、S(符号标志位)四个状态标志位。(3)控制器采用微程序和硬布线两种控制 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 实现,可由实验者自由选择。TEC-XP教学机的面板结构TEC-XP教学机的面板结构如图4所示,控制部件主要由运算部件ALU、控制部件——组合逻辑控制器和微程序处理器、存储部件——ROM和RAM、控制存储器等芯片构成。用户输入部分在面板的最下方,自左向右分别是工作模式选择开关、运算器控制信号输入开关、数据输入开关三个部分。系统中的输出结果可由面板上的发光二极管状态得到。图4TEX-XP教学机的面板TEC-XP教学机的脱机和联机工作方式TEC-XP教学机可以采用脱机和联机两种工作方式。脱机工作方式是指所有操作在TEC-XP教学机上完成,通过控制按钮、数据开关等硬件的设置来控制TEC-XP教学机的工作,执行结果在发光二极管上查看。这种方式适合于需要做硬件级别实验时使用。联机工作方式是指,TEC-XP教学机通过串口与PC连接,由PC运行仿真终端软件PCEC(路径一般为:D:\大板可编程器件内容\Pcec16.com),在监控状态下对TEC-XP教学机的工作进行操作控制。这种方式适合于需要大量数据输入和输出的实验中使用。图5TEC-XP教学机的串口工作模式选择开关在每次使用TEC-XP教学机进行实验之前,都应先选择当前教学机应工作的状态,这由面板左下方的5个黑色控制开关的状态决定,工作模式的选择如 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 1所示。其中“1”表示开关上拨,“0”表示开关下拨,“X”表示该开关无用。表1工作模式选择开关状态 开关状态 工作模式 00110 连续运行程序、采用组合逻辑控制器、联机、16位机 00010 连续运行程序、采用微程序控制器、联机、16位机 11110 单步运行程序、手动设置指令、采用组合逻辑控制器、联机、16位机 11010 单步运行程序、手动设置指令、采用微程序控制器、联机、16位机 1XX00 16位机、脱机运算器实验TEC-XP教学机串口的状态寄存器TEC-XP教学机是通过串口(可编程串行接口8251A)与PC连接的,在联机操作中,PC机对教学机的访问是通过对其数据端口和控制状态端口来完成的。TEC-XP教学机的COM1口(左侧)的数据端口地址为80H,控制与状态口地址为81H;COM2(右侧)的数据端口地址为82H,控制与状态口地址为83H。TEC-XP教学机与PC机的联机操作方法1、将TEC-XP教学机放在实验台上,连接好电源线,关上实验箱侧边的电源开关。2、使用串行通信线连接TEC-XP教学机与PC机的串口。(该串口连接已由实验室老师完成)3、将TEC-XP教学机的工作模式选择开关设置为00110。4、打开TEC-XP教学机的电源开关,检查面板上的发光二极管状态是否正常。5、打开PC机,在D:\大板可编程器件内容\Pcec16.com路径下找到PCEC16.EXE文件,并运行;注意:监控程序运行时需要选择连接串口,此时应选的是当前所连PC机的串口,而不是TEC-XP教学机的串口。实验时可尝试选择串口1或串口2,其他设置一般不用改动,直接回车即可。6、按下TEC-XP教学机的面板左下角的RESET和START按键,当主机上显示如下内容时,表示已进入TEC-XP教学机的的监控程序,可以开始联机实验。SHAPE\*MERGEFORMAT注意:提示符“>”是TEC-XP教学机监控程序的提示符。TEC-XP教学机的监控命令当TEC-XP教学机在联机工作方式下时,应使用PC来控制教学机的工作。在PC机的监控状态下,监控命令与DOS系统的DEBUG命令相似,具体命令格式及含义如表2所示。表2教学机的监控命令格式及含义 命令名称 命令格式 功能 汇编命令 A[adr] 输入单条指令,并将汇编之后的机器代码存入相应的内存单元中。有错误提示,但功能并不完善 反汇编命令 U[adr] 从指定或默认地址开始反汇编15条指令,并将结果显示处理 执行程序命令 G[adr] 从指定或默认地址开始连续运行一个用户程序 单条指令执行命令 T[adr]P[adr] 从命令指定或PC指定地址开始单条执行指令 显示/修改寄存器内容命令 R[reg] 当R命令不带参数时只是显示所有寄存器的内容;当R命令带参数时显示指定寄存器的内容,并可修改其值 显示存储器内容命令 D[adr] 从指定或默认地址开始显示内存128个存储字的内容 修改存储器内容命令 E[adr] 从指定或默认地址开始逐字显示每个内存字的内容并等待用户键入一个新值存回该单元,用空格切换各个单元,用回车结束E命令的执行。其中,adr表示直接地址,reg表示寄存器,均是可选项。注意:以上监控命令与8086汇编系统中的DEBUG命令名相同,但命令格式不同,请注意使用时区分清楚。TEC-XP教学计算机的指令系统TEC-XP教学计算机的指令系统中共有48条指令,包含基本的传送类指令、算术逻辑运算类指令、IO访问指令、转移控制类指令、子程序调用和返回指令等。根据指令的不同功能,指令的操作数个数为0~3个,操作数可以使用立即数寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式等,但每条指令中的操作数寻址方式都是固定的,只能按照对应的格式使用,不能随意更改。1、指令系统的分组TEC-XP教学计算机中,按照每条指令的功能和实际的执行步骤,将指令分成了A、B、C、D共4组,每条指令的所属组详见具体的指令描述。A组中的指令执行时,一般只是完成通用寄存器间的数据运算或传送,在取指后可一步完成。B组中的指令,一般需要完成一次内存或I/O读、写操作,在取指后可两步完成:第一步把要使用的地址传送到地址寄存器ARH、ARL中,第二步执行内存或I/O读写操作。C组中的指令,在取指后可三步完成:其中CALR在用两步读写内存后,第三步执行寄存器间的数据传递;而其它指令在第一步置地址寄存器ARH、ARL,第二步读内存(即取地址操作数)、计算内存地址、置地址寄存器ARH、ARL,第三步读、写内存。D组中的指令,完成两次读、写内存操作,在取指之后可四步完成。2、指令的一般格式该指令系统中包含有单字长指令(16位)和双字长指令(32位),其指令的一般格式如下所示。1587430 操作码 目的寄存器号 源寄存器号 I/O端口地址/相对偏移量 立即数/绝对地址/变址偏移量所有指令的操作码均为8位的,(记作IR15~IR8),每位的含义如下:①IR15、IR14用于区分指令组:0X表示A组,10表示B组,11表示C、D组;C、D组的区分还要用IR11,IR11=0为C组,IR11=1为D组。②IR13用于区分基本指令和扩展指令:基本指令该位为0,扩展指令该位为1。③IR12用于简化控制器实现,其值恒为0。④IR11~IR8用于区分同一指令组中的不同指令。若指令中使用寄存器寻址方式,则可使用的寄存器共有16个,分别为R0~R15,其中R4,R5,R6为专用寄存器,分别作为R4——堆栈指针;R5——程序计数器PC;R6——指令当前地址寄存器IP;其余13个寄存器作为通用寄存器供用户编程用。3、指令系统下面按照指令字长和指令中操作数的个数,分类介绍每条指令,在以下描述中,使用默认的助记符如下:SR―源操作数寄存器;DR-目的操作数寄存器;PC-程序计数器;OP-指令操作码。1单字、无操作数指令,共8条 158 70 OP 00000000格式: 指令格式 含义 指令类型 PSHF 状态标志(C、Z、V、S、P1、P0)入栈 B组基本指令 POPF 弹出栈顶数据到状态标志寄存器 B组基本指令 RET 子程序返回 B组基本指令 CLC 清进位标志位C=0 A组扩展指令 STC 置进位标志位C=1 A组扩展指令 EI 开中断,置中断允许位INTE=1 A组扩展指令 DI 关中断,置中断允许位INTE=0 A组扩展指令 IRET 中断返回 D组扩展指令2单字、单操作数指令,共21条 158 70 OP DR0000 0000SR OFFSET I/O端口 指令格式 含义 指令类型 DECDR DR←DR-1 A组基本指令 INCDR DR←DR+1 A组基本指令 SHLDR DR逻辑左移(低位补0,高位移入C) A组基本指令 SHRDR DR逻辑右移(高位补0,低位移入C) A组基本指令 JROFFSET 无条件转移到ADR,ADR=原PC值+位移量 A组基本指令 JRCOFFSET C=1时,转移到ADR,ADR=原PC值+位移量 A组基本指令 JRNCOFFSET C=0时,转移到ADR,ADR=原PC值+位移量 A组基本指令 JRZOFFSET Z=1时,转移到ADR,ADR=原PC值+位移量 A组基本指令 JRNZOFFSET Z=0时,转移到ADR,ADR=原PC值+位移量 A组基本指令 INI/O端口 R0←[I/O端口]从外设I/O端口读入字节数据到R0低8位 B组基本指令 OUTI/O端口 [I/O端口]←R0R0低8位数据写入外设I/O端口 B组基本指令 PUSHSR SR入栈 B组基本指令 POPDR 弹出栈顶数据到DR B组基本指令 RCLDR DR与C循环左移(C移入最低位,最高位移入C) A组扩展指令 RCRDR DR与C循环右移(C移入最高位,最低位移入C) A组扩展指令 ASRDR DR算术右移(最高位不变,最低位移入C) A组扩展指令 NOTDR DR求反,即DR←/DR A组扩展指令 JMPRSR 无条件转移到SR指向的地址 A组扩展指令 CALRSR 调用SR指向的子程序 C组扩展指令 JRSOFFSET S=1时,转移到ADR,ADR=原PC值+位移量 A组扩展指令 JRNSOFFSET S=0时,转移到ADR,ADR=原PC值+位移量 A组扩展指令3单字、双操作数指令,共12条 158 7430 OP DR SR 指令格式 含义 指令类型 ADDDR,SR 不带进位加 A组基本指令 SUBDR,SR 不带进位减 A组基本指令 ANDDR,SR 逻辑与 A组基本指令 CMPDR,SR 比较(SR‐DR的结果影响标志位) A组基本指令 XORDR,SR 逻辑异或 A组基本指令 TESTDR,SR 测试(做与操作,但不改变操作数,只影响标志位) A组基本指令 ORDR,SR 逻辑或 A组基本指令 MVRRDR,SR 寄存器间传送数据 A组基本指令 LDRRDR,[SR] DR←[SR] B组基本指令 STRR[DR],SR [DR]←SR B组基本指令 ADCDR,SR 带进位加 A组扩展指令 SBBDR,SR 带进位减 A组扩展指令4双字、单操作数指令,2条 158 70 OP 00000000 ADR 指令格式 含义 指令类型 JMPAADR 无条件转移到地址ADR B组基本指令 CALAADR 调用首地址在ADR的子程序 D组基本指令5双字、双操作数指令,2种格式格式1: 158 70 OP DR0000 0000SR DATA 基本指令 含义 指令类型 MVRDDR,DATA DR←DATA B组基本指令 LDRADR,[ADR] DR←[ADR] C组扩展指令 STRA[ADR],SR [ADR]←SR C组扩展指令 158 70 OP DRSR DATA格式2: 指令格式 含义 指令类型 LDRXDR,OFFSET[SR] DR←[OFFSET+SR] C组扩展指令 STRXOFFSET[DR],SR [OFFSET+DR]←SR C组扩展指令实验项目设置与安排计算机组成原理实验一共有5个实验,总共18个学时。 实验项目 学时安排 实验一TEC-XP教学机环境熟悉 2学时 实验二运算器实验 4学时 实验三存储器实验 2学时 实验四微程序控制器实验 4学时 实验五TEC-XP汇编语言程序设计 2学时 实验六中断实验 4学时 合计 18学时实验注意事项1、硬件芯片级实验,避免用手、金属物直接碰触芯片,以防静电损坏芯片;2、进行硬件连接、或长时间不用时,请关闭实验箱电源;3、按时到达实验室(608),认真实验,做好数据记录,课下完成实验报告;实验一TEC-XP教学机环境熟悉实验目的1、学习和了解TEC-XP教学实验系统监控命令的用法;2、学习和了解TEC-XP教学实验系统的指令系统;3、学习和了解TEC-XP教学实验系统汇编程序设计方法。实验内容1、熟悉TEC-XP教学机与PC机的联机操作过程;2、练习常用的TEC-XP教学机监控命令;3、在监控状态下输入给定的汇编程序,进行单步跟踪执行,并观察结果;4、编写指定功能的汇编语言程序,并调试通过。实验要求使用教学机前,熟悉TEC-XP教学机的各个组成部分及其使用方法。实验学时2学时实验步骤1、完成TEC-XP教学机与PC机的联机操作详细步骤见概述部分的“脱机和联机工作方式”。2、练习常用的TEC-XP教学机监控命令(1)R命令(查看或修改寄存器内容)eq\o\ac(○,1)在命令行提示符状态下输入:R↙;显示寄存器内容eq\o\ac(○,2)在命令行提示符状态下输入:RR0↙;修改寄存器R0的内容,再用R命令查看修改的结果。(2)用D命令显示存储器的内容在命令行提示符状态下输入:D2000↙;显示从地址2000H开始的128个字的内容;连续使用不带参数的D命令,起始地址会自动加128(即80H)。(3)用E命令修改存储器的内容在命令行提示符状态下输入:E2000↙屏幕显示地址2000单元的原有内容,可输入更改值;然后再用D命令显示修改的结果。注意:用E命令连续修改内存单元的值时,每修改完一个,按一下空格,系统会自动给出下一个内存单元的值,等待修改;按回车则退出E命令。3、输入给定的汇编程序,单步跟踪执行,并观察结果(1)输入如下形式的程序,请单步跟踪执行,说明程序功能。2000:MVRDR0,AAAA;MVRD与R0之间有且只有一个空格,其他同2002:MVRDR1,55552004:ADDR0,R12005:ANDR0,R12006:RET↙;程序的最后一个语句,必须为RET指令2007:↙若输入有误,系统会给出提示并显示出错地址,只需在该地址用A命令重新输入正确的指令即可。(2)输入如下形式的程序,请单步跟踪执行,说明程序功能。2000:IN80;输入数据保存于R0寄存器的低8位中2001:CMPR0,302002:JRCEXIT2003:CMPR0,392004:JRNCEXIT2005:OUT80;R0->[I/OPORT]2006:RET↙2007:↙实验报告要求本次实验需完成实验报告一份。实验二运算器实验实验目的1、深入了解AM2901运算器的功能与具体用法;2、深化运算器部件的组成、设计、控制与使用等知识。实验内容在脱机方式下,对于给定指令分析其执行过程中运算的步骤,通过对AM2901运算器所需控制信号的设置,使之完成运算,并核对运算结果。实验要求1.实验前,认真了解AM2901运算器的基本结构,预习所需实验的内容,并在课前填写实验步骤表格,对于实验数据和实验结果进行预期性的分析,以提高实验效率;2.实验过程中,要按正确流程操作,防止损坏设备,分析可能遇到的各种现象,判断结果是否正确,记录运行结果。3.实验之后,认真写出实验报告,包括对遇到的各种现象的分析,实验步骤和实验结果。实验学时4学时实验原理图2-1Am2901的数据通路1、运算器数据通路TEC-XP教学机的运算器主要采用4片Am2901芯片级联组成,每片Am2901芯片实现4位运算,4片芯片级联成16位的运算器。Am2901芯片的组成包括:1个4位的算术逻辑单元ALU、16个4位的通用寄存器、1个4位的乘商寄存器Q和若干个多路选择开关。Am2901的数据通路如图2-1所示。(1)算术逻辑单元ALUALU有两个数据输入端R和S。R端的数据来源有三个——寄存器A、数据线D、数值0;S端的数据来源有四个——寄存器A、寄存器B、乘商寄存器Q、数值0。在RS的各种组合中除去没有意义的和重复的,只有8种有效的组合。ALU的数据来源由控制信号I2I1I0决定,其控制方式如表2-1所示。ALU可完成两个操作数的加、减、与、或、异或等多种操作,操作类型的控制有控制信号I5I4I3决定,其控制方式如表2-2所示。ALU若要实现乘除等其他运算,可使用串行算法来完成。ALU的输出结果可保存到通用寄存器、乘商寄存器Q,并且可以将其值乘除2之后再保存,该过程控制由I8I7I6和SSH控制,其控制方式如表2-3、表2-5所示。ALU根据其运算的结果会产生4个标志位——符号标志位F3、零标志位F=0、溢出标志位OVR和进位标志位Cn+4。ALU运算后标志位设置可有多种不同的方式,其设置控制由SST控制信号决定,其控制方式如表2-6所示。(2)通用寄存器组Am2901中的通用寄存器组是由16个寄存器构成,具有双端口读写电路。可以通过A口、B口输入的地址(4位地址)选择寄存器,将其值送入A、B锁存器。其中A口地址指定的寄存器是只读的,B口地址指定的寄存器是可读写的。A、B锁存器可作为ALU的输入数据,ALU输出的结果值也可以保存到B口指定的寄存器中,而且在写寄存器时,可以通过通用寄存器组入口处的三选一多路开关,选择写入ALU结果值,或其左移(乘2)、右移(除2)之后的结果。(3)乘商寄存器乘商寄存器Q是为配合ALU的乘除运算而设置的。该寄存器输入端有三选一多路开关,可选择ALU输出结果、或乘商寄存器Q本身的内容作为其输入数据,同时还可以将这两个输入值左移(乘2)、右移(除2)之后,再送入Q中。(4)最低进位信号CinAm2901的基本运算是加法电路,其减法功能的实现是通过对减数求补而完成的。因此,在ALU运算时,应使用SCI控制位设置最低进位信号Cin的状态,具体控制方式见表2-4。2、Am2901的级联结构一片4位的Am2901芯片的引脚信号如图2-2所示。其中A3~A0、B3~B0用于输入选中的通用寄存器地址(0000~1111分别对应于R0~R15);I8~I0用于运算过程的控制信号;D3~D0用于输入外部数据;Y3~Y0用于输出运算的结果;CP为时钟信号;/OE为选通信号;RAM3、RAM0为运算结果左右移时的移出位;Q3、Q0为乘商寄存器Q左右移时的移出位;Cy、F=0、Over、F3分别为进位标志位、零标志位、溢出标志位、符号标志位;Cin为外部输入的最低进位位。图2-2Am2901芯片的引脚信号TEC-XP教学机的16位运算器是采用4片Am2901芯片级联而成的,各芯片之间采用串行进位方式,具体连接图如图2-3所示。该运算器进行运算时,需要对4个芯片加同样的A、B口地址、I8~I0控制信号,通过对选定的16位通用寄存器(每4位分属4个芯片)、或外部数据D的运算,产生Y输出,以及标志位状态。图2-34片Am2901芯片的级联结构3、Am2901时钟信号的作用在Am2901的每个ALU操作周期内,ALU各部件的执行时间是不同的,具体操作过程如图2-4所示图2-4Am2901时钟信号的作用4、实验控制信号开关说明该实验是在完全脱机的方式下完成的。实验过程中,使用实验箱面板下方标有microswitch1和microswitch2的两个红色开关(控制信号顺序如图2-5所示),设置24位的运算控制信号。运算完成后,通过实验箱面板中间位置的发光二极管观察运算结果。实验过程中可能会用到外部输入数据,则可通过实验箱面板右下方的16个黑色数据开关设置。图2-5Microswitch开关信号顺序5、指令举例指令1:MVRDR0,0FFFFH分析:(1)该指令是使用立即数为寄存器赋值的,立即数应从数据总线拨入,经ALU传送至目的寄存器R0,因此,ALU的数据来源应选择D、0,即I2-I0取值为111。(2)该赋值指令中的数据必须经过ALU才可写入通用寄存器,可使用FFFFH+0→R0的操作,因此,ALU的运算类型应选择算术加;I5-I3取值为000。(3)ALU的运算结果应保存至B口地址指定的通用寄存器中,即I8-I6取值为011,同时B口地址输入R0的地址(0000)。(4)其余信号:A口地址无用,为任意值;SST取000(标志位保持不变,传送类指令不影响标志位状态);SSH—00(不移位);Sci—00(Cin=0)。指令2:ADDR0,R1分析:(1)该指令是加法运算指令,因此,ALU的运算类型应选择算术加;I5-I3取值为000。(2)两个操作数都是通用寄存器,故,ALU的数据来源应选择A、B;I2-I0取值为001,且A口地址为0001,B口地址为0000,I8-I6取值为011(将ALU的输出保存至B口指定寄存器)。(3)其余信号:SST—001(按照运算结果设置标志位,加法指令正常影响标志位);SSH—00(不移位);Sci—00(Cin=0)。指令3:SUBR0,R1分析:(1)该指令是减法运算指令,两个操作数都是通用寄存器,故,ALU的数据来源应选择A、B;I2-I0取值为001,且A口地址为0001,B口地址为0000,I8-I6取值为011(将ALU的输出保存至B口指定寄存器)。(2)由ALU数据的来源可决定,本次运算应使用B-A的方式,因此,结合I5-I3的组合形式,可取值001。(3)其余信号:SST—001(按照运算结果设置标志位);SSH—00(不移位);Sci—01(使用Cin=1的值作为减数求补时末位应加上的1)。实验步骤1、预习Am2901运算器原理,并填写下表。(第一次实验之前务必完成)表1运算器实验一验证内容 运算 I8~0 SST SSH SCI B A 按START前 按START后 ALU输出 SVZC ALU输出 SVZC MVRDR0,0101 011000111 000 00 00 0000 任意 0101 0101 0010 MVRDR1,1010 011000111 000 00 00 0001 1010 1010 ADDR0,R1 011000001 001 00 00 0000 0001 SUBR0,R1 SUBR1,R0 ORR0,R1 ANDR0,R1 XORR0,R1 ┑(R0⊕R1)(R0 2*R0(R0 R0/2(R0 2、实验方式设置将TEC-XP教学机左下方的5个功能开关设置为1**00(单步、16位、脱机);先按一下“RESET”按键,再按一下“START”按键,进行初始化。3、逐条指令执行,并核对结果完成初始化后,请按顺序控制运算器执行每条指令,每条指令执行时请记录按START前和按START后两个时刻的状态,若与预期结果不同,请查找问题并思考原因。4、预习Am2901运算器原理,并填写下表。(第二次实验之前务必完成)表2运算器实验一验证内容 运算 I8~0 SST SSH SCI B A 按START前 按START后 ALU输出 SVZC ALU输出 SVZC 按照上次实验的步骤,继续完成验证型实验内容。思考问题1、每次运算,为什么按START之前和按START之后的结果会有不同?应使用哪个结果作为当前的运算结果?为什么?2、分析第二次实验内容中的R0-R2→R0和R8-R9→R9的结果,说明其中操作控制的区别。实验报告要求本次实验需完成实验报告一份,本次实验报告内容写出验证后“表1运算器实验一验证内容”的内容,并对思考问题进行讨论。控制信号附录表表2-1ALU数据来源控制I2I1I0表2-2ALU运算类型控制I5I4I3表2-3ALU数据传送控制I8I7I6表2-4最低进位Cin控制信号SCI SCI Cin 典型指令 0 0 0 ADD、DEC 0 1 1 INC、SUB 1 0 C ADC、SBB 1 1 TCLK2方波 本实验中不使用表2-5移位状态控制信号SSH SSH 左移 右移 说明 RAM0 Q0 RAM3 Q3 0 0 0 * 0 * 补0(逻辑左右移) 0 1 C * C * 带进位移(循环移位) 1 0 Q3 F3 CY RAM0 带Q同时移位(乘除时) 1 1 * * F3⊕OV RAM0 补码右移注:RAM0指任意一个通用寄存器的最低位,RAM15指任意一个通用寄存器的最高位。表2-6标志位状态控制信号SST SST编码 CZVS 说明 000 CZVS 四个标志位的值保持不变 001 CyF=0OVRF15 接收ALU的标志位输出的值 010 内部总线对应的一位 恢复标志位原来的现场值 011 0ZVS 置“0”C,另三个标志位不变 100 1ZVS 置“1”C,另三个标志位不变 101 RAM0ZVS 右移操作,另三个标志位不变 110 RAM15ZVS 左移操作,另三个标志位不变 111 Q0ZVS 联合右移,另三个标志位不变实验三存储器实验实验目的1、了解计算机中半导体存储器RAM、EPROM和E2PROM的功能和区别;2、理解并掌握半导体存储器芯片的扩展和验证方式;实验内容1、验证半导体存储器RAM的读写特性;2、使用给定的存储芯片进行存储器的容量扩展,扩展地址从4000H开始;3、对于扩展的存储芯片进行读写验证,并理解E2PROM的读写特性;实验要求实验前先复习存储器字、位扩展的方法,并熟悉所做实验的内容。实验学时2学时实验步骤1、TEC-XP教学机现有RAM存储区的读写特性验证TEC-XP教学机的存储系统中,2000H~27FFH的2K空间是由6116RAM芯片构成的(详见概述部分的“主要技术指标”内容介绍)。随机存储器RAM的读写特性是:在不断电的情况下,CPU可以对该存储器的任何单元进行随机读写操作,其中内容可以长期保存;但该存储器是易失性的存储器,一旦断电,其中数据均被清空。本实验要在监控状态下,分别使用不同的监控命令对该RAM存储芯片的读写特性进行验证。由于是联机测试,需要将TEC-XP的功能开关先置为00110。(1)检查FPGA下方的插针按下列要求短接标有“/MWR”“RD”的插针左边两个短接;标有“/MRD”“GND”的插针右边两个短接;标有“ROMLCS”和“RAMLCS”的插针短接。(2)使用E命令修改RAM中某存储单元的值在命令行提示符状态下输入:E2020↙屏幕将显示:2020内存单元原值:按如下形式输入:2020原值:2222(空格)原值:3333(空格)原值:4444(空格)原值:5555↙注意:E命令之后的地址应为2000~25FFH之间的某一个单元。(3)使用D命令查看所修改单元的内容D2020↙这里查看到的数据,应与上一步中输入的数据一致。(4)断电后重新启动教学机,使用D命令再次查看所修改单元的内容D2020↙这里发现原来置入到这几个内存单元的值已经改变。因此,用户使用RAM时,必须在每次断电重启后,重新写入所需要的数据。(5)使用A命令输入一段指令序列A2000↙按如下形式输入:2000:MVRDR0,AAAA2002:MVRDR1,55552004:ANDR0,R12005:RET2006:↙这里,对RAM使用A命令写入连续的指令不会出错。(6)单步方式执行以上指令序列,观察结果T2000↙R0的值变为AAAAH,其余寄存器的值不变。T↙R1的值变为5555H,其余寄存器的值不变。T↙R0的值变为0000H,其余寄存器的值不变。(7)教学机断电重启后,以上数据仍然会丢失2、给定E2PROM存储芯片的扩展连接TEC-XP教学机中的RAM芯片和扩展对应的器件位置如图3-1所示。(1)将E2PROM芯片插入扩展插槽位置每台教学机配备2片E2PROM芯片,实验时应首先将这两个芯片插入指定区域标有“EXTROMH”和“EXTROML”的自锁紧插座中。插入方法:将锁紧杆拨开,按正确的方向将芯片插入插座中,然后放下锁紧杆,固定芯片。注意:芯片插入时,应将带有半圆形缺口的一方朝左插入,一旦插反会导致芯片烧毁。(2)数据地址线连接将标有“DataBus15-8”和“DataBus7-0”的数据总线的指示灯下方的插针短接。将标有“AddressBus15-8”和“AddressBus7-0”的地址总线的指示灯下方的插针短接。(3)读写控制总线连接将EXTROML芯片右上方的标有“WE”和“A11”的插针下面两个短接。标有“TEC”“OE”“GND”“FPGA”的四个插针上面一排左边的两个短接。图3-1存储器扩展实验器件位置图(4)片选信号连接首先要将“EXTROMLCS”插针短接,具体的片选信号的连接可以有两种方式:一种是插针短接方式,扩展默认地址;另一种是直接连接译码器的方式,扩展地址可选。相关的插槽位置如图3-2所示。方法一:将EXTROML芯片右边标有“TEC”“/CS”“FPGA”的三个插针左边两个短接,这表示扩展的RAM的内存地址是从4000H开始,可用空间是4000H~5FFFH,用户可在这个范围内输入程序或改变内存单元的值。方法二:将标有“EXTROMLCS”的圆孔针与74LS138译码器下方的一排圆孔针中的任意一个用导线相连。注意:连接译码器的哪个输出端,给扩展芯片分配的就是对应的地址范围。图3-2译码器及插槽示意图3、扩展容量的读写特性验证扩展用的E2PROM芯片,其读操作和RAM一样,而其写操作,由于要先擦除信息再写入,因此需要一定的延迟时间,大约为1毫秒。在对E2PROM进行写操作时,应加入一段延时子程序的调用,以完成正确的读写。(1)用E修改扩展单元的内容,并用D查看结果假定第2步中的扩展连接采用的是默认地址4000H~5FFFH,使用E命令修改该地址范围内的某几个单元,再用D命令查看数据的修改情况。将教学机断电后重新启动,再次查看以上修改单元的值,分析原因。(2)控制程序实验使用的E2PROM芯片不能直接用A命令输入程序,单字节的指令可能会写进去,双字节指令的低位会出错(建议试一试)。因此,可以将程序放到RAM(6116)中,使用程序读写扩展空间5000H~500FH单元。从2000H单元开始输入主程序:(2000)MVRDR0,0030MVRDR2,0010;R2记录循环次数MVRDR3,5000;R3的内容为16位内存地址(2006)STRR[R3],R0;将R0寄存器的内容放到R3给出的内存单元中CALA2200;调用程序地址为2200的延时子程序INCR0;R0加1INCR3;R3加1DECR2;R2减1JRNZ2006;R2不为0跳转到2006HRET(3)延时子程序从2200H单元开始输入延时子程序:(2200)PUSHR3MVRDR3,0001(2203)DECR3JRNZ2203POPR3RET(4)运行程序,查看结果在命令提示符下输入:G2000↙,运行主程序。使用D命令查看5000H~500FH单元中的数据。思考问题1、该实验中使用的两个E2PROM芯片是位扩展还是字扩展?说明原因。2、分析2000H单元中的E2PROM写入程序段的功能,与D命令的查看结果对比,思考原因,并改正程序使程序段运行结果正确。实验注意事项1、实验中,每次要改动芯片连接时,应先断电再进行。2、实验完成后,取下扩展芯片,将FPGA下方标有“/MWR”“RD”的插针改成右边两个短接;标有“TEC”“OE”“GND”“FPGA”的四个插针中间垂直的两个短接。3、实验过程中,不要随意改动其他芯片的位置或连接。实验报告要求本次实验需完成实验报告一份,本次实验报告内容写出从实验步骤2开始写,即只写E2PROM的扩展和验证即可。实验四微程序控制器实验实验目的1、深入理解微程序控制器的功能和组成结构;2、学习教学计算机各类指令的指令格式、寻址方式及执行流程;3、学习微程序控制器的设计过程和相关技术。实验内容1、分析基本指令的执行流程,在教学机上验证其对应的微指令;2、设计几条指令的功能、格式和指令流程,并在教学计算机上进行测试。实验要求1、实验之前,认真准备,对于该实验的基本原理、微指令格式、以及相关机器指令的微程序等内容预先做好分析和设计;2、实验过程中,应认真进行实验操作,仔细思考实验有关内容,把难点内容通过实验理解清楚,争取最好的实验效果;3、实验之后,应认真思考,写出实验总结,包括实验中遇到的主要问题和分析、解决方法。实验学时4学时实验原理1、TEC-XP教学机的控制器基本原理TEX-XP教学机中包含组合控制逻辑和微程序控制逻辑两种不同结构的控制器。本实验中使用的是微程序控制器,与微程序控制器相关的机器结构如图4-1所示。控制器中使用程序计数器PC跟踪机器指令的执行,使用PC中的内容访存获取机器指令,得到的机器指令送入控制器中的指令寄存器IR暂存,并由微程序控制器分析执行,执行过程中的所有控制信号均由微程序控制器中的微命令寄存器μIR发出。图4-1TEC-XP教学机的基本结构TEC-XP教学机的微程序控制器详细内部结构如图4-2所示。该控制器中包含指令寄存器IR(存放当前执行的指令)、地址映射部件(确定不同指令对应的微程序入口地址)、微程序定序器Am2910(根据微指令中的下址字段和判断测试条件,产生下一条微指令的地址)、条件判定线路(用于微程序流向控制)、控制存储器CM(包含所有的微指令)、微指令寄存器μIR(存放当前微指令的操作控制字段)等部件。图4-2微程序控制器内部结构微程序控制器的工作过程是:对于指令寄存器IR中的机器指令,由地址映射部件产生该指令所对应微程序的入口地址,通过Am2910送给控制存储器。取出的一条微指令送入微指令寄存器,其中的微命令字段用于发出控制信号,控制各部件的执行,下址字段与条件判定线路的各测试信号一起送给Am2910,由其确定下条微指令的地址,继续执行。2、地址映射部件地址映射部件,即微指令地址映射部件,它是由一片E2PROM构成的,一般称为MAPROM。指令寄存器IR将其中的高8位指令操作码送给MAPROM,MAPROM根据操作码与微地址之间的映射关系,给出该指令对应微程序的入口地址。TEC-XP教学机中的指令操作码与微地址之间的映射关系如附录表4-1所示。3、TEC-XP教学机的微指令格式TEC-XP教学机的微指令共48位,由16位的下址字段和32位的操作控制字段形成,其格式如图4-3所示。图4-3TEC-XP教学机的微指令格式(1)下址字段a)8位的微下址用于给出下一条将要执行的微指令的地址。微程序顺序执行,即把已增1后的微指令地址作为下地址b)4位的测试控制码CI3~0用于决定微程序中的微指令寻址方式(顺序寻址、跳跃寻址)。本实验中只使用到0000(初始化,使微下址=0)、0010(指令功能分支,做MAPROM映射)、0011(条件转移,由SCC决定是否转移)、1110(顺序寻址,将当前微地址加1作为微下址)这四个命令码。c)4位的转移条件编码SCC3~0当CI3~0=0011时,由这四位编码决定转移判断测试的条件,若选中条件满足,则使用微下址寻址下一条微指令,否则做顺序寻址,同CI3~0=1110。下址字段的这3部分控制信号与形成微地址的关系详如附录表4-2所示。(2)操作控制字段a)MIQ、REQ、WE这3位控制信号用于对存储器或I/O接口进行读写操作时的控制。具体定义如附录表4-3所示。b)I8-I6、I5-I3、I2-I0、A口和B口、SST2-0:具体定义参考实验二。c)SSH、SCI1-0:本实验中控制方式如附录表4-3所示。d)DC1用于选择把哪一组数据发送到CPU的内部总线(IB)上。在微指令执行过程中,若不使用内部总线,则通常将其设置为000,可认为是无效状态。e)DC2用于控制数据接收及相关的内部功能。DC1和DC2的控制方式如附录表4-4所示。4、控制存储器控制存储器字长48位,用来存放TEC-XP教学机的所有微指令。硬件实现时,是使用两片EEPROM芯片(58C64)存放16位下地址字段信息,而32位操作控制字段信息存放在MACH器件内。每次读控制存储器时,从这三个芯片中读出一条微指令。48位的微指令寄存器也分为两段,即16位的下地址信息,和32位的微命令信息。5、A、B、C、D组指令执行流程TEC-XP教学计算机中,按照每条指令的功能和实际的执行步骤,将指令分成了A、B、C、D共4组,每条指令的所属组详见具体的指令描述。A组中的指令执行时,一般只是完成通用寄存器间的数据运算或传送,在取指后可一步完成。B组中的指令,一般需要完成一次内存或I/O读、写操作,在取指后可两步完成:第一步把要使用的地址传送到地址寄存器AR中,第二步执行内存或I/O读写操作。C组中的指令,在取指后可三步完成:其中CALR在用两步读写内存后,第三步执行寄存器间的数据传递;而其它指令在第一步置地址寄存器ARH、ARL,第二步读内存(即取地址操作数)、计算内存地址、置地址寄存器ARH、ARL,第三步读、写内存。D组中的指令,完成两次读、写内存操作,在取指之后可四步完成。TEC-XP教学机的基本指令、扩展指令执行流程分别由附录中图4-4和4-5给出。6、TEC-XP教学机的数据通路与微命令的关系微指令的操作控制字段直接用于控制TEC-XP教学机中的各个执行部件,顺序控制字段分别送微程序控制器中的微地址寄存器和转移控制逻辑,用于产生微下址,寻址微指令。图4-4中给出了微指令中的各个字段与TEC-XP教学机数据通路的对应关系,可帮助理解微指令的应用。图4-4TEC-XP教学机的数据通路与微命令实验步骤请根据每个步骤的详细要求,完成本实验内容。1、设定工作方式接通TEC-XP教学机的电源,将功能开关拨为11010,即设为单步、手动执行指令,使用微程序控制器,联机操作。2、验证A组基本指令——加法指令ADDR0,R1的微程序根据如下所示的ADD指令格式,可得到指令ADDR0,R1的机器代码为0000000000000001,其中高8位为ADD指令的操作码(详见代码表4-1),接下来的两个4位分别对应R0和R1寄存器。先按下RESET按键,复位系统,然后通过16位的数据开关SW拨入指令代码,再按下RESET按键,此时指示灯Microp亮,其它灯全灭。注意:在本实验中,选择的是微程序控制器,Microp指示灯会一直点亮。由附录图4-5所示的基本指令流程可知,加法指令ADDR0,R1的整个指令周期包含6个CPU周期,其中前3个CPU周期是取指阶段,所有指令都是一样的,第4个CPU周期用于指令操作码的地址映射,第5个CPU周期完成加法指令的功能,第6个CPU周期用于判断是否需要执行中断周期,从而决定该加法指令执行结束后的流向。该加法指令的微程序如表4-6所示。在完成以上设置后,接下来每次按下START按键,控制器就会执行一条微指令,请在实验前看懂以下微指令,在实验中验证每条微指令,并记录每条微指令执行时微地址、微下址指示灯的状态。表4-6加法指令ADDR0,R1的微程序 微地址 操作功能 下址 CI3~0 SCC3~0 MRW I2~0 I8~3 B口 A口 SST SSH\SCI DC2 DC1 00H 0(PC、DI#=0 00H 1110 0000 100 001 011001 0101 0101 000 001 111 000 01H PC(AR、PC+1(PC 00H 1110 0000 100 011 010000 0101 0101 000 001 011 000 02H MEM(IR 00H 1110 0000 001 000 001000 0000 0000 000 000 001 000 03H /MAP 00H 0010 0000 100 000 001000 0000 0000 000 000 000 000 04H R0+R1(R0 30H 0011 0000 100 001 011000 0000 0001 001 000 000 000 30H STR→Q、CC#=INT# 3AH 0011 0010 100 111 000000 0000 0000 000 000 000 011 (1)公操作微指令(0(PC、DI#=0)该微指令在控制存储器中位于第一个单元,即微地址为00H,是程序运行时的初始操作。本实验中由于是脱机单步运行状态,因此每条指令执行时都需要该微指令。该操作中的PC清零是通过运算器的PC本身相减得到的,因此这里与运算器相关的控制信号应选择I2~0=001(选择A、B锁存器输入)、I8~6=011(F(B,结果保存到B口指定寄存器)、I5~3=001(S-R,减法运算)、B口=0101(指定R5,即PC)、A口=0101(指定R5,即PC)、SST=000(标志位保持不变)、SSHSCI=001(减法运算的最低位进位Cin=1)。该操作中不需要访存,或访问IO,因此MRW为100(无读写)。DC1无用,选择000。本条微指令的另一个操作DI#=0,使用DC2=111,选择关中断实现。本条微指令执行完成后应进入指令的取指周期,因此要转向执行PC(AR微指令,因此,CI应选择1110(顺序寻址),则下条微指令的地址应在本条微指令地址(00H)的基础上加1,即01H。顺序寻址方式下,SCC无效,直接写0000。(2)送指令地址微指令(PC(AR、PC+1(PC)本条微指令首先要做的是PC(AR的操作,这里使用A口地址指定PC,即0101,并设置I8~6=010(使A口指定内容输出到内部总线上),DC2=011(指定AR接收内部总线上的数据)。本条微指令中要完成的PC+1(PC,仍然通过运算器做加法,加上Cin来实现,故控制信号I2~0=011(选择0、B数据),B口=0101(B口指定PC),I8~6=010(F(B,运算结果送PC),I5~3=000(加法运算),SST=000(标志位保持不变)、SSHSCI=001(增量运算中使用最低进位位Cin提供加数)。该操作中不需要访存,或访问IO,因此MRW为100(无读写)。DC1无用,选择000。本条微指令将所要访问主存单元的地址送给AR,则接下来应从主存中读出机器指令字,即本条微指令之后的微指令一定是MEM(IR,因此,CI应选择1110(顺序寻址),则下条微指令的地址应在本条微指令地址(01H)的基础上加1,即02H。顺序寻址方式下,SCC无效,直接写0000。(3)读指令字微指令(MEM(IR)本条微指令需要做访存读取机器指令,因此运算器相关的命令可设置无效,即I2~0=000,I8~6=001,I5~3=010,A口=0000,B口=0000,SST=000(标志位保持不变)、SSHSCI=000。访存获取的指令字应存放于指令寄存器IR中,因此,MRW=001(内存读),DC2=001(IR接收)。DC1无用,选择000。本条微指令执行后,控制器应进行操作码的译码,做微地址映射,因此,CI应选择1110(顺序寻址),则下条微指令的地址应在本条微指令地址(02H)的基础上加1,即03H。顺序寻址方式下,SCC无效,直接写0000。注意:以上3条微指令是适用于所有指令的取指操作的。(4)地址映射微指令(/MAP)本条微指令主要是由地址映射部件,根据指令操作码给出对应的指令周期微程序的入口地址,故,本条微指令中有关运算器和访存的控制信号均无效,即I2~0=000,I8~6=001,I5~3=010,A口=0000,B口=0000,SST=000(标志位保持不变),SSHSCI=000,DC1=000,DC2=000。微地址的映射用CI的2号命令控制,即CI3~0=0010(指令功能分支),SCC3~0=0000(必转)。下址字段无效,写00H。根据地址映射表4-1可知,ADD指令的微程序入口地址为04H,故该微指令执行后,下址指示灯显示为00000100。(5)加法微指令(R0+R1(R0)本条微指令主要完成两个通用寄存器的加法运算,由实验二可知,运算器相关的控制信号为:I2~0=001(选择AB口数据),I8~6=011(F(B),I5~3=000(加法运算),A口=0001(R1作为源操作数),B口=0000(R0作为目的操作数),SST=001(运算影响标志位),SSHSCI=000(Cin=0)。本条微指令无访存控制,因此DC1=000,DC2=000。本条微指令执行结束时,ADD指令功能已完成,即指令的执行周期完成,按照指令周期的流程,这里需要检查系统是否有中断请求。因此,本条微指令执行结束即应转向中断判断微指令,CI3~0=0011码(条件转移),SCC3~0=0000(必转),下址字段给出中断判断微指令的地址,30H。(6)中断判断微指令(STR→Q、CC#=INT#)本条微指令用于判断当前系统是否有中断请求,若有,则转去处理中断(地址为3AH的微指令),否则顺序执行下一条机器指令(地址为31H的微指令)。因此,CI3~0=0011码(条件转移),所依据的条件应为SCC3~0=0010(若有中断请求时转移),下址=3AH。在进行中断判断时,需要使用到标志位状态,因此,本条微指令需要做的另一个操作是DC1=011(将标志位送到内部总线上),用以判断中断。3、验证B组基本指令——传送指令MVRDR0,D的微程序指令MVRD是将立即数传送到指定寄存器的数据传送类指令,该指令是双字长双操作数指令。其指令格式如下所示,则指令MVRDR0,D的机器代码的高16位为1000100000000000,其中高8位为MVRD指令的操作码(详见代码表4-1),接下来的4位对应目的寄存器R0。本次实验中,只是验证指令的微程序,至于该指令所传送的数据D可采用存储单元中的随机值。先按下RESET按键,复位系统,然后通过16位的数据开关SW拨入指令代码,再按下RESET按键,此时指示灯Microp亮,其它灯全灭。由附录图4-5所示的基本指令流程可知,传送指令MVRDR0,D的指令周期共包含7个CPU周期,比A组指令在执行阶段多一个CPU周期,主要用于访存获取操作数。这里MVRD的源操作数是立即数寻址方式,其值保存于指令的第二个字上,而TEC-XP教学机是16位机,在取指阶段仅读出该指令的第一个字,所以,在访存取操作数时应使用PC中的地址寻址存储单元,执行1DH的微指令。该传送指令的微程序如表4-6所示。在完成以上设置后,接下来每次按下START按键,控制器就会执行一条微指令,请在实验前看懂以下微指令,在实验中验证每条微指令。表4-6传送指令MVRDR0,D的微程序 微地址 操作功能 下址 CI3~0 SCC3~0 MRW I2~0 I8~3 B口 A口 SST SSH\SCI DC2 DC1 00H 0(PC、DI#=0 00H 1110 0000 100 001 011001 0101 0101 000 001 111 000 01H PC(AR、PC+1(PC 00H 1110 0000 100 011 010000 0101 0101 000 001 011 000 02H MEM(IR 00H 1110 0000 001 000 001000 0000 0000 000 000 001 000 03H /MAP 00H 0010 0000 100 000 001000 0000 0000 000 000 000 000 1DH PC(AR、PC+1(PC、CC#=0 1CH 0011 0000 100 011 010000 0101 0101 000 001 011 000 1CH MEM→DR、CC#=0 30H 0011 0000 001 111 011000 0000 0000 000 000 000 000 30H STR→Q、CC#=INT# 3AH 0011 0010 100 111 000000 0000 0000 000 000 000 011在传送指令MVRDR0,D执行过程中,前3条取指相关的微指令和最后1条中断处理微指令与ADD之前完全相同,这里只对不同的3条微指令进行介绍。(1)地址映射微指令(/MAP)本条微指令主要是由地址映射部件,根据指令操作码给出对应的指令周期微程序的入口地址,故,本条微指令中有关运算器和访存的控制信号均无效,即I2~0=000,I8~6=001,I5~3=010,A口=0000,B口=0000,SST=000(标志位保持不变),SSHSCI=000,DC1=000,DC2=000。微地址的映射用CI的2号命令控制,即CI3~0=0010(指令功能分支),SCC3~0=0000(必转)。下址字段无效,写00H。根据地址映射表4-1可知,MVRD指令的微程序入口地址为1DH,故该微指令执行后,下址指示灯显示为00011101。(2)取机器指令的第二个字节微指令(PC(AR、PC+1(PC、CC#=0)由于MVRD指令是双字指令,在取指阶段仅从主存中取得了指令中包含操作码的高字部分,这里要执行该指令时,必须获取指令的第二个字数据,即指令中的16位立即数。因此,在完成地址映射后,应执行该微指令,再次读取主存。本条微指令的执行与取指阶段PC(AR、PC+1(PC微指令的操作控制部分完全相同,但顺序控制部分,根据指令的执行流程可知,下条微指令应将使用主存中读得的立即数给目的寄存器赋值。因此CI3~0=0011(条件转移),SCC3~0=0010(必转),所要转向的地址由下址字段给出,即1CH。(3)访存赋值微指令(MEM→DR、CC#=0)本条微指令是将存储单元中读得的立即数给目的寄存器赋值。这里使用运算器D+0(R操作实现,其中D为从存储单元中读出的操作数。因此,MRW=001(内存读),I2~0=111(选择外部数据D和0),I8~6=011(F(B),I5~3=000(加法),A口未用,B口=0000(指定目的寄存器R0),SST=000(标志位保持不变),SSHSCI=000(Cin=0)。本条微指令中DC1=000(无效),DC2=000(无操作)。本条微指令执行结束时,MVRD指令功能已完成,即指令的执行周期完成,按照指令周期的流程,这里需要检查系统是否有中断请求。因此,本条微指令执行结束即应转向中断判断微指令,CI3~0=0011码(条件转移),SCC3~0=0000(必转),下址字段给出中断判断微指令的地址,30H。4、分析D组基本指令——子程序调用指令CALAADR的微程序指令CALA是将立即数传送到指定寄存器的数据传送类指令,该指令是双字长双操作数指令。其指令格式如下所示,则指令CALAADR的机器代码的高16位为1100111000000000,其中高8位为CALA指令的操作码(详见代码表4-1),接下来的4位对应目的寄存器R0。本次实验中,只是验证指令的微程序,至于该指令所用到的直接地址可采用存储单元中的随机值。先按下RESET按键,复位系统,然后通过16位的数据开关SW拨入指令代码,再按下RESET按键,此时指示灯Microp亮,其它灯全灭。由附录图4-5所示的基本指令流程可知,子程序调用指令CALAADR的指令周期共包含9个CPU周期,执行阶段比B类指令多用2个CPU周期。CALA指令的微程序如表4-7所示。在完成以上设置后,接下来每次按下START按键,控制器就会执行一条微指令,请在实验前完成对表4-7中每条微指令的分析,在实验中验证,并分析每条微指令的具体功能。表4-7子程序调用指令CALAADR的微程序 微地址 操作功能 下址 CI3~0 SCC3~0 MRW I2~0 I8~3 B口 A口 SST SSH\SCI DC2 DC1 00H 0(PC、DI#=0 00H 1110 0000 100 001 011001 0101 0101 000 001 111 000 01H PC(AR、PC+1(PC 00H 1110 0000 100 011 010000 0101 0101 000 001 011 000 02H MEM(IR 00H 1110 0000 001 000 001000 0000 0000 000 000 001 000 03H /MAP 00H 0010 0000 100 000 001000 0000 0000 000 000 000 000 1FH PC(AR、PC+1(PC 00H 1110 0000 100 011 010000 0101 0101 000 001 011 000 20H MEM→Q 00H 1110 0000 001 111 000000 0000 0000 000 000 000 000 21H SP-1→SP、SP→AR 00H 1110 0000 100 011 011001 0100 0000 000 000 011 000 22H PC→MEM、Q→PC、CC#=0 30H 0011 0000 000 010 010000 0101 0101 000 000 000 001 30H STR→Q、CC#=INT# 3AH 0011 0010 100 111 000000 0000 0000 000 000 000 0115、设计扩展指令ADC、STC、LDRA、CALR的微程序TEC-XP教学机支持动态微程序设计,即允许用户把自己设计的微程序写入控制存储器中,当扩展指令需要执行时,直接从控制存储器中读取对应的微指令执行即可。但写控制存储器时,需要用到硬件描述语言VHDL,故在本次实验中,对于扩展实验直接采用出厂已设计好的扩展指令进行验证。扩展指令ADC、STC、LDRA、CALR的执行周期相关微指令如表4-8所示,请在实验时以单步方式进行验证。表4-8若干扩展指令的执行周期微程序 指令 微地址 操作功能 下址 CI3~0 SCC3~0 MRW I2~0 I8~3 B口 A口 SST SSH\SCI DC2 DC1 ADC 50H DR+SR+CF(DR 30H 0011 0000 100 001 011000 0000 0000 001 010 000 000 STC 57H 1(CF 30H 0011 0000 100 000 001000 0000 0000 100 000 000 000 LDRA 5BH PC(ARPC+1(PC 00H 1110 0000 100 011 010000 0101 0101 000 001 011 000 5CH MEM(AR 1CH 0011 0000 001 111 001000 0000 0000 000 000 011 000 CALR 64H SP-1(SPSP(AR 00H 1110 0000 100 011 011001 0100 0000 000 000 011 000 65H PC(MEM 00H 1110 0000 000 100 001000 0000 0101 000 000 000 001 66H SR(PC 30H 0011 0000 100 100 011000 0101 0000 000 000 000 0006、测试扩展指令扩展指令在使用时与基本指令不同,基本指令可以在监控环境下使用汇编命令A以汇编指令格式输入存储单元中,而扩展指令只能使用存储单元修改命令E以机器指令的形式写入存储单元中。相关扩展指令的操作码编码见表4-1。(1)设置功能开关测试扩展指令之前,先将TEC-XP的功能开关设置为00010,即连续运行程序、采用微程序控制器、联机、16位机。运行“D:\大板可编程器件内容\”路径下的PCEC16.EXE文件,进入TEC-XP的监控环境。(2)测试STC、ADC指令①将如下测试程序段输入到主存2000H开始的存储区域中。MVRDR0,0101MVRDR1,1010*STC*ADCR0,R1RET注意:带*号的指令为扩展指令,只能使用E命令写入,请先对照指令的操作码编码表4-1和指令格式写出对应指令的机器代码。②使用如下格式的G命令连续运行该程序段:G2000↙③使用如下格式的R命令察看寄存器的内容:R↙可观察到运行结果应为R0=1112,R1=1010。(3)测试CALR指令对CALR指令的测试需要设计一个有读写内存和子程序调用指令的程序。下面使用一个功能是读出内存中的字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域的程序进行测试。①从地址2080H开始输入下列主程序段:MVRDR3,6MVRDR2,20F0LDRRR0,[R2]MVRDR8,2100*CALRR8DECR3JRZ208CINCR2JR2084RET②从地址2100H开始输入下列子程序段:OUT80MVRDR1,20ADDR0,R1STRR[R2],R0IN81SHRR0JRNC2105RET③使用E命令将‘A’~‘F’这6个字符送入到存储单元20F0H~20F5H中。④使用如下格式的G命令连续运行2080H中的程序段:G2080↙屏幕显示运行结果为:ABCDEF56⑤使用如下格式的D命令,查看20F0H~20F5H单元中的内容:D20F0↙屏幕上显示查看结果应为:006100620063006400650066(4)测试指令LDRA编写一个使用LDRA指令将存储单元2100H和2101H中的内容通过R0输出的程序段,测试扩展指令LDRA的功能。①从地址2000H开始输入下列程序段:*LDRAR0,[2100]OUT80IN81SHRR0JRNC2003*LDRAR0,[2101]OUT80RET②使用E命令将要显示的两个字符“A”、“B”写入存储单元2100H和2101H中。③在如下格式的G命令,连续运行以上程序段:G2000↙屏幕上将会显示预设置字符‘A’、‘B’。实验报告要求本次实验需完成实验报告一份,本次实验报告内容写出以下两个内容:1、D组基本指令——程序调用指令CALA的微程序分析;2、扩展指令LDRA的设计和测试。附录表4-1指令机器编码和微程序入口地址对应表 指令 操作码编码 微程序入口地址 基本指令 ADDDR,SR 00000000 04H SUBDR,SR 00000001 05H ANDDR,SR 00000010 06H ORDR,SR 00000110 07H XORDR,SR 00000100 08H CMPDR,SR 00000011 09H TESTDR,SR 00000101 0AH MVRRDR,SR 00000111 0BH INCDR 00001001 0CH DECDR 00001000 0DH SHLDR 00001010 0EH SHRDR 00001011 0FH JRCOFFSET 01000100 10H JRNCOFFSET 01000101 10H JRZOFFSET 01000110 10H JRNZOFFSET 01000111 10H JROFFSET 01000001 11H INPORT 10000010 12H OUTPORT 10000110 12H PSHF 10000100 15H PUSHDR 10000101 15H POPDR 10000111 17H POPF 10001100 17H STRR[DR],SR 10000011 19H LORRDR,[SR] 10000001 1BH MVRDDR,DATA 10001000 1DH JMPAADR 10000000 1EH CALAADR 11001110 1FH RET 10001110 23H 扩展指令 ADCDR,SR 00100000 50H SBBDR,SR 00100001 51H NOTDR 00101101 52H ASRDR 00101100 53H RCLDR 00101010 54H RCRDR 00101011 55H CLC 01101100 56H STC 01101101 57H EI 01101110 58H DI 01101111 59H JMPRSR 01100000 5AH LDRADR,[ADR] 11100100 5BH LDRXDR,OFFSET[SR] 11100101 5DH STRA[ADR],SR 11100111 5FH STRXDR,OFFSET[SR] 11100110 61H CALRSR 11100000 64H IRET 11101111 67H JRSOFFSET 01100100 69H JRNSOFFSET 01100101 69H表4-2微指令中的下址确定 CI3~0 SCC3~0 判断条件 微下址 0000 0000(无效) 00H 0010 0000(无效) MAP映射 映射获得 0011 0000 必转 微下址字段值 0010 有中断请求时转移 微下址字段值/顺序寻址 0100 JRC、JRNC、JRZ、JRNZ指令测试 微下址字段值/顺序寻址 0101 JRS、JRNS指令测试 微下址字段值/顺序寻址 0110 IN指令测试 微下址字段值/顺序寻址 0111 入出栈指令测试 微下址字段值/顺序寻址 1110 0000(无效) 顺序寻址表4-3MEW信号功能表4-4SSH和SCI控制信号表4-5DC1和DC2控制方式图4-5基本指令流程图图4-6扩展指令流程图4-7微指令表注:该表中的微指令为56位的,只需要将每条微指令的MRW、I2~0、I8~6、I5~3、SST、SSH、DC2、DC1这8个字段的首位0除去即为48位的微指令。实验五TEC-XP汇编程序设计实验目的1、熟悉和理解查询方式的数据传送过程;2、学习TEC-XP教学实验系统汇编程序设计方法。实验内容1、编写指定功能的汇编语言程序,并调试通过。实验要求使用教学机前,熟悉查询方式的数据传送原理和TEC-XP教学机的指令系统。实验学时2学时实验原理本次实验是将PC的键盘和显示器作为TEC-XP教学机的外设,采用程序查询方式进行数据的输入输出操作。TEC-XP教学机串口的状态寄存器TEC-XP教学机是通过串口(可编程串行接口8251A)与PC连接的,在联机操作中,PC机对教学机的访问是通过对其数据端口和控制状态端口来完成的。TEC-XP教学机的COM1口(左侧)的数据端口地址为80H,控制与状态口地址为81H;COM2(右侧)的数据端口地址为82H,控制与状态口地址为83H。TEC-XP教学机的状态字格式如下所示。 …… RXRDY TXRDY D7…………D2 D1 D0其中,TxRDY为发送就绪位(1——就绪;0——未就绪),RxRDY为接收就绪位(1——就绪;0——未就绪)。注意:当教学机与PC要传送数据时,必须先查询相应的收发状态位。程序查询方式的数据传送程序查询方式的数据传送的基本过程是:CPU传送数据之前先检查外设的状态,若没有准备好,则继续查询等待,直至外设就绪即进行数据传送。在TEC-XP教学机上,所要查询的是与PC连接的TEC-XP的串口状态字。由于本实验室中的TEC-XP教学机所用的都是串口1,则其状态端口地址均为81。(1)TEC-XP教学机接收输入数据时当TEC-XP教学机需要从键盘上接收输入数据时,需要检测所读状态字的次低位RXRDY状态。由于读入数据的前提是键盘按键被按下,所以执行IN80指令(从串口1的数据端口中读取数据)时,必须确认输入数据已到达接口中。因此,IN80指令总是需要查询等待至RXRDY状态位就绪才可执行。(2)TEC-XP教学机输出显示数据时当TEC-XP教学机需要向显示器上输出显示数据时,需要检测所读状态字的最低位TXRDY状态。若单个数据输出时,可直接使用OUT80指令,从串口1的数据端口中输出数据,因此,可不必进行状态检测。但若要连续输出多个数据时,为保证每一个数据输出的都能被显示器接收到,则必须要查询等待TXRDY状态位就绪才可执行OUT80指令,以免后一个数据将前一个还没来得及输出的数据覆盖,而导致数据丢失。实验步骤1、完成TEC-XP教学机与PC机的联机操作汇编实验中的程序执行控制由组合逻辑控制器实现,因此,功能开关状态设定为00110。2、输入给定的汇编程序,连续执行,并观察结果以下程序段完成功能为:采用程序查询方式,从PC机的键盘接收一个字符至TEC-XP教学机,并将接收到的字符输出显示至PC机的屏幕上。2000:IN81;从串行接口的状态端口读入状态字,保存于R0的低8位2001:SHRR02002:SHRR0;将状态字的次低位RXRDY移出至标志位C上2003:JRNC2000;若接收未就绪,即C=0,则跳转(查询等待)2004:IN80;若接收就需,即C=1,则读入输入的字符至R0的低8位2005:OUT80;将读入字符输出至PC机的屏幕显示2006:RET↙2007:↙在监控状态下输入程序的注意事项:(1)地址使用用户区地址,采用绝对地址形式。(2)所有数字默认采用16进制,后面不加H。(3)程序的最后一个语句为RET,若无该指令,则程序无法结束。3、试将以上程序段中的OUT80指令删除,连续执行程序,观察与之前结果的区别。注意:这里删除OUT80指令,实际上是在2005单元上写入RET指令,用RET指令取代OUT80指令。4、试编写完成以下功能的汇编程序,并在TEC-XP上运行成功。(1)设计一个小程序,用计数值控制在显示器上输出显示‘0’到‘9’十个数字符。提示:假设用R2存储字符个数,R0放第一个字符“0”,输出一个字符则R2减1,完成输出后R0加1,以准备下一个字符。(2)从键盘上连续输入多个‘0’~‘9’之间的数字符,并在屏幕上显示,遇到非数字字符结束输入。思考:本程序中是否需要判别串行口输出完成否?为什么?(3)计算1到10的累加和。(4)设计一个循环程序,将内存2080H起始的10个字符依次显示到屏幕上,并将其转化为小写字母再写回原存储区域。要求:使用子程序完成大小写字母的转换。实验报告要求本次实验需完成实验报告一份,本次实验报告内容只写编写汇编程序的第(2)小题。实验六中断实验实验目的1、加深理解计算机系统中断工作的原理及处理过程。2、学习和掌握中断产生、中断响应、中断处理等技术。实验内容编写主程序和三个中断源的中断服务程序,在主程序执行过程中,按下按键产生中断请求,观察中断服务和中断嵌套的现象。主程序的功能:在屏幕上循环显示数字字符“6”,并可随时接受中断请求;中断服务程序的功能:进入中断服务程序显示字符串“BIn”,其中n是与中断源优先级相对应的数字字符“1/2/3”,等待按键,直到有任一按键按下,显示字符串“EIn”后退出中断。实验要求1、实验前做好预习,理解TEC-XP教学机的中断实现原理;2、熟悉TEC-XP教学机的指令系统,能够编写完成中断功能的汇编程序。实验学时4学时,其中1~7步2学时,第8步2学时,请在实验前提前预习和准备,以保证实验效果。实验原理TEC-XP教学机中提供给用的外部中断源有三个,由教学机面板右下角的三个无锁按键作为其硬件中断源,从右到左依次简称为P1、P2、P3中断源。TEC-XP在响应这三个中断源的中断请求时,采用的是向量地址转移法,即中断源的请求可通过硬件电路产生一个向量地址,在该地址中存放一条转移指令,执行该指令即可转入对应的中断服务程序。P1、P2、P3的中断向量地址由TEC-XP的内部结构确定,分别为2420H、2430H和2440H,用户中断使用时,应在对应地址中写入转移指令,从而转向用户自定义的中断服务程序。实验步骤1、相关扩展指令的微程序验证本实验中使用到开中断、关中断、中断返回等扩展指令,做具体中断实验之前,先进行这些指令微程序的分析和验证。该步骤中应将功能开关拨为11010,即设为单步、手动执行指令,使用微程序控制器,联机操作。表6-1若干扩展指令的执行周期微程序 指令 微地址 操作功能 下址 CI3~0 SCC3~0 MRW I2~0 I8~3 B口 A口 SST SSH\SCI DC2 DC1 EI 58H EI 30H 0011 0000 100 000 001000 0000 0000 000 000 110 000 DI 59H DI 30H 0011 0000 100 000 001000 0000 0000 000 000 111 000 IRET 67H SP(ARSP+1(SP 00H 1110 0000 100 011 010000 0100 0100 000 001 011 000 68H MEM(STRCC#INTOLD# 23H 0011 0000 001 000 001000 0000 0000 010 000 100 000注意:以上扩展指令若在程序段中使用,在监控状态下必须用E命令写入机器指令代码,而不能使用A命令写入汇编指令。2、设定工作方式中断实验中的程序执行控制由微程序控制器实现,因此,功能开关状态设定为00010,即联机方式下,采用微程序控制器连续运行程序。3、编写显示子程序本实验中需要通过中断服务程序中的字符显示来查看中断执行情况,字符显示时仍然采用程序查询方式。因此,将各程序段中所需的显示代码作为单独子程序。该显示子程序保存于2200H单元,代码如下:2200:PUSHR0;保护待显示字符所在的寄存器R02201:IN81;查询接口状态,判断字符输出是否完成2202:SHRR02203:JRNC2201;未完成,则循环等待2204:POPR0;显示完成,则恢复寄存器,R0出栈2205:OUT80;输出R0的值2206:RET4、编写中断服务程序系统中三个中断源,分别需要编写三段中断服务程序,本实验只需观察各中断的执行效果,因此三段中断服务程序功能为:在屏幕上显示连续的15个数字字符“1”、“2”、“3”,显示完成后中断返回。由于三段中断服务程序功能一致,只是显示的具体字符不同,这里可以将三段中断服务程序的功能部分使用同一段代码完成,各中断请求时转入对应的入口位置,进行参数——显示字符的设置。P1中断服务程序段入口为2420H,代码如下:2420:PUSHR0;R0进栈2421:PUSHR3;R3进栈2422:MVRDR3,31;将显示字符‘1’的ASCII码送寄存器R32424:JR2450P2中断服务程序段入口为2430H,代码如下:2430:PUSHR0;R0进栈2431:PUSHR3;R3进栈2432:MVRDR3,32;将字符‘2’的ASCII码送寄存器R32434:JR2450P3中断服务程序段入口为2440H,代码如下:2440:PUSHR0;R0进栈2441:PUSHR3;R3进栈2442:MVRDR3,33;将字符‘3’的ASCII码送寄存器R32444:JR2450以上三段代码在完成入口参数设置后,均转入2450H单元中执行,该地址中保存中断服务程序的功能代码,具体如下:2450:*EI;开中断(指令编码:6E00)2451:MVRDR0,42;将字符“B”赋值给R0,B即Begin的缩写。2453:CALA2200;调用子程序,完成显示2455:MVRDR0,49;将字符“I”赋值给R0,Interrupt的缩写。2457:CALA2200;调用子程序,完成显示2459:MVRRR0,R3;将要显示的字符——R3的内容送R0245A:CALA2200;调用子程序,完成显示245C:IN81;判键盘上是否按了一个键245D:SHRR0;即串口是否有输入字符245E:SHRR0245F:JRNC245C;若没有,等待2460:IN80;输入字符到R0,实际读入该字符没有用处2461:MVRDR0,0045;将字符“E”赋值给R0,E即End的缩写。2463:CALA2200;调用子程序,完成显示2465:MVRDR0,0049;将字符“I”赋值给R0,Interrupt的缩写。2467:CALA2200;调用子程序,完成显示2469:MVRRR0,R3;将R3的内容送R0246A:CALA2200;调用子程序,完成显示246C:POPR3;R3出栈246D:POPR0;R0出栈246E:*IRET;中断返回(指令编码:EF00)5、填写中断向量TEC-XP教学机采用向量地址转移法来实现中断的响应,即响应中断时,由硬件产生一个向量地址,该向量地址中保存一条可以转向对应中断服务程序的转移指令,CPU通过执行该转移指令转入中断服务程序。根据系统的硬件连接,P1、P2、P3的中断向量地址分别为2404H、2408H和240CH,这三个地址中应写入以下三条指令:2404:JR2420;跳转到一级中断服务程序2408:JR2430;跳转到二级中断服务程序240C:JR2440;跳转到三级中断服务程序6、编写主程序主程序应开中断,等待中断请求的到来,并同时循环显示字符“6”。主程序存放于2000H中,代码如下:2000:*EI2001:MVRDR0,0036;将字符‘6’的ASCII码送寄存器R02003:CALA2200;输出该字符2005:MVRDR0,4000;延时子程序2007:DECR02008:JRNZ20072009:JR2001;跳到2001循环执行该程序200A:RET注意:在以上代码中,转移指令中的地址均为直接地址,若程序的入口地址不同,则各转移指令中的地址都要进行相应的改动。7、运行主程序,等待、响应中断。在监控状态命令行,使用G命令执行主程序,具体命令如下:G2000↙(1)无中断请求在没有任何中断请求时,主程序运行结果是:在屏幕上连续显示字符“6”。(2)单级中断主程序运行过程中,按下P1按键,则进入P1的中断服务程序,屏幕上会中断字符“6”的显示,显示字符串“BI1”,然后等待按键,屏幕上状态无变化。键入任一按键,屏幕上显示字符串“EI1”,返回中断,继续执行主程序,循环显示字符“6”。再次提交P2、P3的中断请求,查看结果。(3)中断嵌套主程序运行过程中,按下P1按键,则进入P1的中断服务程序,屏幕上会中断字符“6”的显示,显示字符串“BI1”,然后等待按键,屏幕上状态无变化。此时,按下P2按键,则中断P1的服务程序,执行P2的中断服务程序,屏幕上显示字符串“BI2”,等待按键。再按下P3按键,再次发生中断嵌套,屏幕上显示字符串“BI3”,等待按键。8、更改主程序和中断服务程序功能尝试修改主程序和中断服务程序代码,主程序等待中断时循环显示字符“M”,各级中断服务程序只循环显示16个字符“1、2、3”即产生中断返回。完成以上程序修改后,试观察单级中断和中断嵌套的现象。思考问题1、观察三级中断的嵌套现象,当执行P3中断时,连续按下键盘3次,观察到的显示效果如何?2、更改中断服务程序后,中断嵌套现象和更改前有什么不同?实验报告要求本次实验需完成实验报告一份,本次实验报告内容只写实验步骤8中要求更改程序功能的主程序和中断服务程序,并回答思考问题。TEC-XPCRTMONITORVersion1.0April2001ComputerArchitectureLab.,TsinghuaUniersityProgrammedbyHeJia>_1366862288.vsd�2路串行接口内存体地址寄存器译码器译码器电平转换双线选通门DC2译码器DC1译码器/GAR�/GIR�/MIOREQ/WE�A口B口I8~I0SSHSCISST/SWTOIB/YTOIB/IRLTOIB/FTOIB控制器部件运算器部件内部总线数据总线地址总线YCZVS控制总线/GAR�DFPGA芯片实现的CPU系统�地址总线FPGA芯片实现的CPU系统�数据总线控制信号
本文档为【计算机组成原理实验指导-2012-1】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥10.8 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
壹笑先生
致力于服务广大学子、教师、社考人员等一份学习的资料!
格式:doc
大小:6MB
软件:Word
页数:0
分类:工学
上传时间:2020-08-25
浏览量:81