TECXP16实验指导书.docx
- 文档编号:30103116
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:125
- 大小:1.96MB
TECXP16实验指导书.docx
《TECXP16实验指导书.docx》由会员分享,可在线阅读,更多相关《TECXP16实验指导书.docx(125页珍藏版)》请在冰豆网上搜索。
TECXP16实验指导书
计算机组成原理
实验指导书
王潇编写
仲恺农业工程学院计算机科学与工程学院
二00八年十月
目录
第一章TEC-XP16实验计算机系统原理1
§1.1TEC-XP16计算机组成原理实验系统概述1
§1.2TEC-XP16机指令系统8
§1.3TEC-XP16机运算器部件12
§1.4TEC-XP16机内存储器部件15
§1.5TEC-XP16机的控制器部件18
§1.6TEC-XP16机的输入输出及中断22
第二章TEC-XP16实验计算机系统实验内容24
实验一基础汇编语言程序设计24
实验二脱机运算器实验29
实验三存储器部件教学实验32
实验四组合逻辑控制器部件教学实验37
实验五微程序控制器部件教学实验51
实验六输入/输出接口扩展实验59
实验七中断实验63
实验八8位模型机的设计与实现(综合实验)71
附录74
附录1联机通讯指南74
附录2TEC-XP16计算机组成原理实验系统简明操作卡77
附录3微程序入口地址映射表78
附录4指令流程框图80
附录5指令流程表82
附录6书写实验报告的一般格式86
参考文献87
第一章TEC-XP16实验计算机系统原理
§1.1TEC-XP16计算机组成原理实验系统概述
一、教学计算机系统的实现方案和硬软件资源概述
TEC-XP是由清华大学计算机系和清华大学科教仪器厂联合研制的适用于计算机组成原理课程的实验系统,主要用于计算机组成原理和数字电路等的硬件教学实验,同时还支持监控程序、汇编语言程序设计、BASIC高级语言程序设计等软件方面的教学实验。
它的功能设计和实现技术,都紧紧地围绕着对课程教学内容的覆盖程度和所能完成的教学实验项目的质量与水平来进行安排。
其突出特点是硬、软件基本配置比较完整,能覆盖相关课程主要教学内容,支持的教学实验项目多且水平高。
其组成和实现的功能如图1.1.1所示。
软件:
解释BASIC语言
汇编语言支持
监控程序
硬件:
运算器,控制器(多种实现)
(微程序或硬布线控制器)
主存储器,总线,接口
输入设备,输出设备
硬件与电路:
逻辑器件和设备
图1.1.1硬件实现的实际计算机系统图
从图1.1.1可以看到,该计算机硬件系统组成中,功能部件是完整齐备的,运算器、控制器、存储器、输入输出接口、计算机总线等配备齐全,还可以接通PC机仿真终端执行输入输出操作,同时实现了微程序方案的和硬连线方案的2种控制器。
从计算机组成原理课程教学需求的角度看,该计算机软件系统的组成也是完整的,支持
简单的高级语言(包括浮点运算指令和基本函数运算功能),汇编语言(支持基本伪指令功
能)和二进制的机器语言,配有自己的监控程序,以及PC机仿真终端程序等。
二、教学计算机指令系统的设计目标和指令格式
合理地确定一台计算机的指令系统,无论对计算机厂家还是对最终用户来说都是十分重
要的事情,它密切关系到计算机设计与实现的复杂程度和生产成本,计算机使用的难易程度
和运行效率。
对主要用于教学和教学实验目的的计算机,特别是对于一台16位字长的教学计算机来说,确定其指令系统,更多地应关注它在教学过程中的作用和使用方法,至少应解决好以下几个问题:
1、指令格式和功能的典型性,即选择DLX指令集结构,适当靠拢RISC机的指令格式,包括尽可能小的指令集,简化的寻址方式。
这样做不仅可以简化教学计算机的结构,实现简单,易于实现指令流水,重要的是选用有良好典型性的指令格式和功能,讲课时更容易完整地讲解清楚这套指令系统和控制器设计,有利于教学内容的整体安排。
2、指令系统要有一定的完备程度,给出的指令格式适当规范,指令分类合理,指令执行步骤容易理解,符合人们通常的编程使用习惯,有较好的易学易用性,确保选用这套指令系统,能方便地设计教学计算机的配套软件。
3、更高的可扩充性,即为学生添加各种新的指令留下比较充足的余地,为此可以把完整系统中的指令划分为必备的基本指令(由设计者实现)和待扩展的保留指令(由学生设计实现)2大类;在扩展新的指令时,实现手段要适当简单,但要有比较多的设计内容和选择余地,以便更好地培养学生的创新意识和开创能力,有利于深化教学内容。
4、符合教学计算机的特定要求。
对16位字长的计算机,指令的操作码部分可以选择为固定长度;再结合我们所选用的运算器器件Am2901芯片内含16个通用寄存器的特点,寄存器寻址方式需要使用4位的形式地址。
如果需要,还可以指定16个累加器中的几个为专用的寄存器,以便最大程度地简化教学机硬件组成,简化指令执行流程设计。
遵照上述思路,最终确定了教学计算机的指令格式,如图1.1.2所示。
这套指令系统支持单字指令和双字指令,第一个指令字的高8位是指令操作码字段,低8位和双字指令的第二个指令字是操作数地址字段,分别有3种用法。
8位
4位
4位
操作码
DR
SR
IO端口地址/相对偏移量
立即数/直接内存地址/变址偏移量
图1.1.2教学机的指令格式
8位指令操作码(记作“IR15~IR8”),各位的含义如下:
IR15、IR14用于区分指令组:
0×表示A组,10表示B组,11表示C、D组;
IR13用于区分基本和扩展指令:
0表示基本指令,1表示扩展指令;
IR12用于简化控制器的实现,暂定该位的值为0;
IR11~IR8用于区分同一指令组中的不同指令(最多16条);
IR11还用于区分C、D组指令(每组最多8条):
0表示C组,1表示D组。
第一个指令字中的操作数地址字段可以给出:
4位的通用寄存器编号(DR代表目的寄存器,SR代表源寄存器),8位的IO端口地址,8位的相对变址偏移量。
第二个指令字中的操作数地址字段用于给出16位的立即数,16位的直接内存地址,或者16位的变址偏移量。
三、教学计算机的硬件组成和设计概述
作为教学和教学实验使用的计算机,其硬件结构和组成设计,要比较好地体现出尽可能多的主要教学内容,包括功能部件划分清晰,设计合理,它们之间连接关系适当规范等。
TEC-XP16的硬件系统由以下几个基本部分组成:
运算器部件、控制器部件、内存储器
系统和串行接口线路;此外还设置了辅助电路和扩展电路两个辅助部分,各个部分被划分在
电路板的不同区域,如照片图1.1.3所示,基本组成部分的线路逻辑框图如图1.1.4所示。
从图1.1.3中我们可以看到,教学计算机运算器部件是选用4片位片结构的4位长度的运算器Am2901芯片实现的。
该芯片包含完成算术和逻辑运算功能的ALU,双端口控制读出、单端口控制写入的16个累加器和完成乘除法运算的乘商寄存器等功能部件,从功能和组成两个方面都比较好地体现了运算器部件的教学内容。
从图1.1.4可以看到运算器和其它部件的连接关系,它只能接收教学机内部总线IB送来的16位数据,其运算结果直接送到地址寄存器AR的输入端,或者经过2个8位的开关门电路送到内部中线IB。
运算结果的标志位信息送到标志位寄存器FLAG,FLAG的输出可以经过一个8位的开关门送到内部总线IB。
在教学计算机控制器部件设计中,同时实现了微程序和硬连线的两种控制器,并可以通
过拨动一个开关完成两种控制器之间的切换。
两种控制器主要都由一片高集成度MACH器件实现,这一实现方案为简化修改与扩展控制器功能的操作,改善教学实验效果有重要作用,是本教学计算机系统非常显著的一个特色。
在MACH芯片之外,还用到了确定微指令执行次序的一片Am2910芯片,用作指令寄存器IR的2片8位的寄存器电路,1片传送IR低位字节内容到内部总线IB的开关门电路。
指令寄存器接收从内存储器读出并传送到内部总线IB的指令,其全部16位输出送到MACH芯片的输入引脚,其低8位内容还要经一个开关门送到内部总线IB。
在教学计算机存储器部件设计中,出于简化和容易实现的目的,选用静态存储器芯片实
现内存储器系统,包括了唯读存储区(ROM,存放监控程序等)和随读写存储区(RAM)两部分,ROM存储区选用4片长度8位、容量8KB的芯片实现,RAM存储区选用2片长度8位、容量2KB的芯片实现,每2个8位的芯片合成一组用于组成16位长度的内存字,6个芯片被分成3组,其地址空间分配关系是:
0-1777h用于第一组ROM,固化监控程序,2000-2777h用于RAM,保存用户程序和用户数据,其高端的一些单元作为监控程序的数据区,第二组ROM的地址范围可以由用户选择,主要用于完成扩展内存容量的教学实验。
关于计算机中的接口线路,教学计算机提供了2路串行接口(INTEL8251),以支持接
入PC机作为教学计算机的仿真终端完成输入输出操作;第一个串口的端口地址分配80h/81h,第二个串口的端口地址可以由用户选择。
作为扩展实验内容,也可以通过在一个40芯的器件插座上插上其他标准接口线路(例如INTEL的8255、8253等)并适当接线,完成常用接口线路的输入输出操作。
在教学计算机总线部件设计中,选用单总线结构,数据总线、地址总线和控制总线都比较简单,保证教学机的正常运行并体现出总线设计的基本原理。
图1.1.5给出了各个部件如何通过总线相互连接在一起,从而构成一台能够正常运行的计算机系统。
图1.1.3TH-union(计原16)教学计算机系统组成
图1.1.4计原16位教学计算机线路逻辑框图
图1.1.5部件之间的连接关系和信息传送路径
数据总线被划分成内部总线IB(在CPU一侧)和外部总线DB(在存储器和串行接口一侧)两部分,它们之间通过2片8位的双向三态门电路连接在一起。
3组存储器芯片的数据输入输出引脚都直接连接在一起,连接到16位的数据总线DB上,串行接口芯片的8位数据输入输出引脚只与数据总线DB的低8位(DB7-DB0这8位)相连接。
地址总线的构成比较特殊,仅地址寄存器AR一个来源,AR又只接收ALU一路输入。
内存储器和接口电路的地址都来自于地址总线AB(地址寄存器AR的输出),地址总线的最高3位送到1片3-8译码器,地址总线的低位字节中的高4位(规定最高一位必定为1)送到另外1片3-8译码器,分别产生存储器芯片的8个片选信号和接口电路的8个片选信号。
控制总线提供内存和串口的读写命令,是把控制器提供的3位控制信号送1片双2-4译码器得到的,以决定有无内存或接口读写,若有,是和内存还是接口工作,执行的是读还是写操作。
内存和CPU选用同步方式运行,串行接口和CPU选用状态查询方式工作。
通过图1.1.5简单地看一下教学计算机每个部件的运行环境和相关功能的执行过程。
运算器部件中的ALU可以对两路输入数据A和B执行3种算术或5种逻辑运算功能,其两路输入可来自芯片内部的寄存器堆送出来的数据(是由指令寄存器IR的两个寄存器编号选定的寄存器的内容,还设置有锁存线路),或来自芯片外的内部总线IB的数据,其运算结果可以在芯片内部被直接写入寄存器堆,或送到芯片外被直接连接到地址寄存器AR、或经过支持三态逻辑的开关门送到内部总线IB。
ALU运算产生的4个标志位的值被保存进芯片外部的Flag寄存器。
运算器部件中的寄存器堆暂存用于ALU运算的数据和运算的中间结果。
控制器部件将依据指令内容和指令执行步骤信息来提供管理计算机各个部件运行所必需的控制信号,指令寄存器IR接收从内存储器读出来的指令内容,其输出被送到MACH芯片的输入引脚,由MACH(也包括Am2910芯片,图中未画)产生指令执行步骤信号,并为各个部件提供每一个执行步骤要用到的全部控制信号。
指令寄存器低位字节的内容可以经过带三态逻辑的开关门送到内部总线,用作为运算器部件的外部输入数据D的一个来源。
内存储器用于保存运行中的程序和数据,可读可写。
读写操作的第一步是为其提供内存
单元的地址,即把ALU的输出内容写进地址寄存器AR,第二步是执行读或者写操作。
为读操作时,若读出的是指令则经过数据总线DB和内部总线IB写进指令寄存器IR,若读出的是数据应经过数据总线DB和内部总线IB、经过运算器的D输入引脚写到运算器寄存器堆中一个寄存器。
这个寄存器由指令字中的目的寄存器字段指定。
为写操作时,把由指令字的一个字段指定的寄存器堆中的一个寄存器的内容经内部总线IB和数据总线DB写进存储器的一个存储单元。
串行接口用于执行数据的输入输出操作。
输入输出操作的第一步是为接口芯片提供入出
端口地址,即把指令寄存器低位字节的内容(IO端口地址)经过内部总线和运算器部件写进地址寄存器AR,第二步是执行输入或者输出操作,若执行输入指令IN,则应从接口芯片读出一个8位的数据并经过数据总线DB和内部总线IB写进寄存器堆中的R0寄存器,若执行输出指令OUT,则需要把寄存器堆中的R0寄存器的内容经过内部总线IB和数据总线DB写入接口芯片。
接口芯片与输入输出设备之间的数据传送过程无需另外管理,会自动完成。
在教学计算机系统中,实现并提供了简明、常规的中断处理能力,在支持多级的中断嵌套实验方面,这个系列的教学计算机有非常明显的特色。
四、主要技术指标
1、机器字长16位,即运算器、主存、数据总线、地址总线均是16位。
2、基本指令系统支持多种基本寻址方式。
其中部分指令已实现,用于设计监控程序和用户的常规汇编程序,尚保留多条指令供用户自己实现。
3、主存最大寻址空间是18K字,可进行主存储器扩展实验。
4、运算器由4片位片结构器件AM2901级联而成,片间用串行进位方式传递进位信号。
ALU实现8种算术与逻辑运算功能,内部包括16个双端口读出、单端口写入的通用寄存器,和一个能自行移位的乘商寄存器。
设置C、Z、V、S四个状态标志位。
运算器实验可以有脱机和联机两种实验方式。
5、控制器采用微程序和组合逻辑两种控制方案实现。
组合逻辑控制器用的是LATTICE公司的CPLD的芯片。
在做控制器实验时,用户可按基本指令的格式和流程扩展指令,编写程序使新老指令同时运行。
6、主机上安装有一路INTEL8251串行接口,可直接接计算机终端,或接入一台PC机作为自己的仿真终端。
另保留一路为用户扩展用,可完成串口初始化,双机通讯等实验。
7、主机可完成三级中断实验和中断嵌套实验。
8、实验箱有自己的监控程序(操作系统),支持多种实验方式(如:
单步/连续,手动置指令/从内存读指令等),监控源码开放,用户可以修改。
9、配有简单的逻辑笔电路,可以测量板上各个信号的电压。
10、用作组合逻辑控制器的MACH芯片和实验箱上的XILINX的FPGA芯片也可用于实现各种时序电路和组合逻辑电路实验。
11、实验箱上XILINX的FPGA芯片可以实现流水和非流水两种CPU方案,还可完成高速缓冲存储器(CHACHE)的教学实验。
12、实验箱支持比较正规的汇编语言设计和BASIC语言设计。
13、实验箱配套指令级和微指令级的仿真软件。
§1.2TEC-XP16机指令系统
一、教学计算机的指令系统概述
在字长为16位的教学计算机系统中,规定指令的位数也是16位的倍数,支持单字指令和双字指令,指令格式要规范和简单,尽量向DLX指令集结构靠拢,使其有一定的完备性和更好的典型性。
从有利于教学实验考虑,把指令划分为基本指令(已经由设计者和制作厂家实现)和扩展指令(留待进行教学实验的同学实现)两大类。
对指令的格式说明如图1.2.1所示:
8位
4位
4位
操作码
DR
SR
IO端口地址/相对偏移量
立即数/直接内存地址/变址偏移量
图1.2.1指令格式
指令操作码由8位组成(记作“IR15~IR8”),各位的控制作用有所不同:
(1)IR15、IR14用于区分指令组:
0X表示A组,10表示B组,11表示C、D组;
还要用IR11区分C、D组:
IRH11=0为C组,IRH11=1为D组。
(2)IR13用于区分基本和扩展指令:
IRH13=0为基本指令,IRH13=1为扩展指令。
(3)IR12用于简化控制器实现,暂定该位的值均为0。
(4)IR11~IR8用于区分同一指令组中的不同指令。
按不同的分类标准,可以把16位机的指令划分成不同的指令组,例如:
从指令长度区分,有单字指令和双字指令,也允许定义与使用3字指令。
从操作数的个数区分,有双操作数指令、单操作数指令和无操作数指令。
从使用的寻址方式区分,有采用寄存器寻址、寄存器间接寻址、立即数寻址、直接寻址、变址寻址、相对寻址、堆栈寻址等多种基本寻址方式的不同类别指令。
从指令功能区分,有算术和逻辑运算类指令、读写内存类指令、输入/输出类指令、转
移指令、子程序调用和返回类指令,还有传送、移位、置进位标志和清进位标志等指令。
依照指令的执行步骤,可以把教学计算机的指令划分为如下4组。
A组:
基本指令ADD、SUB、AND、OR、XOR、CMP、TEST、MVRR、DEC、INC、SHL、SHR、JR、JRC、JRNC、JRZ、JRNZ
扩展指令ADC、SBB、RCL、RCR、ASR、NOT、CLC、STC、EI、CI、JRS、JRNS、JMPR
B组:
基本指令JMPA、LDRR、STRR、PUSH、POP、PSHF、POPF、MVRD、IN、OUT、RET
C组:
扩展指令CALR、LDRA、STRA、LDRX、STRX
D组:
基本指令CALA
扩展指令IRET
这种分类办法,是为了突出指令执行步骤的划分结果,有利于讲解控制器设计技术。
A组指令完成的是通用寄存器之间的数据运算或传送,或其它几项特殊的操作,在取指
之后可一步完成。
B组指令完成的是一次内存或I/O读、写操作,在取指之后可两步完成,第一步把要使用的地址传送到地址寄存器AR中,第二步执行内存或I/O读、写操作。
C组指令在取指之后可三步完成,其中CALR指令在用两步完成一次写内存之后,第三步执行寄存器之间的数据传送;而其它指令在第一步置地址寄存器AR,第二步读内存(即取得一个内存单元的地址)并传送到地址寄存器AR,第三步执行另外一次读、写内存的操作。
D组指令完成的是两次读、写内存操作,在取指之后可四步完成。
十六位的教学机系统,实现了上面4组中的29条基本指令,用于支持教学机的监控程序和简单的汇编语言程序设计。
保留了其余19条扩展指令,供学生在教学实验中进行扩展,即完成对这些指令的设计与调试,当然,还可以扩展另外一些指令。
为了支持汇编语言程序设计,每一条指令分配了一个汇编语句名,其命名规则是:
用一个英文单词或其缩写形式(2~4个字母)给出一个汇编语句名,例如ADD、SUB、MVRR、MVRD、JR、JMPA、STRX等。
其中的1~2个字母可能涉及到操作数寻址方式,具体规定如下:
用R代表寄存器寻址,例如ADDR0,R1语句表示R0←R0+R1;MVRRR0,R1语句表示把
寄存器R1的内容传送到寄存器R0;在R字母两侧加上方括号,代表寄存器间接寻址,例如
STRR[R8],R9语句表示把R9的内容传送到以寄存器R8的内容为地址的内存单元之中;
用D表示立即数寻址,例如MVRDR3,1234语句表示R0←立即数1234;
用X表示变址寻址,例如LDRXR1,12[R2]语句表示把变址寄存器R2的内容与变址偏移量12相加作为内存地址,进行读操作,读出的数据传送的寄存器R1;
用A表示直接地址寻址,例如JMPA2008语句表示转移到2008单元之处,STRA
[2000],R2语句表示把R2的内容写入到地址为2000的内存单元之中。
二、基本指令汇总表
表1.2.1基本指令汇总表
注:
①表中CZVS一列,*表示对应的状态位在该指令执行后会被重置;
·表示对应状态位在该指令执行后不会被修改。
②运算器芯片中有16个通用寄存器(累加器)R0~R15,其中:
R4用作16位的堆栈指针SP;R5用作16位的程序计数器PC;
其余寄存器用作通用寄存器,即多数双操作数指令和单操作数指令中的DR、SR。
三、扩展指令汇总表
表1.2.2扩展指令汇总表
注:
①表中CZVS一列,*表示对应的状态位在该指令执行后会被重置;
·表示对应状态位在该指令执行后不会被修改。
②扩展指令的功能、格式、操作码和操作数地址字段的确定,留给同学自己设计。
表中给出的只是可能的一种选择,但同学们一定要认识到,这里的基本指令和扩展指令共同构成教学计算机的完整的指令系统,彼此需要协调,至少不能有冲突。
§1.3TEC-XP16机运算器部件
运算器是计算机硬件系统传统的5大功能部件之一,承担执行运算和暂存运算数据的功
能,通常由执行算术逻辑运算功能的ALU线路、暂存参加ALU运算的数据和中间运算结果的通用寄存器组、支持乘除法运算的专用寄存器三部分组成,三个部分之间通过多路选择器线路实现连接,从而构成一个完整的运算器部件。
TEC-XP16教学计算机的运算器部件,主体部分由4片4位长度的位片结构的运算器芯片Am2901组成,每片Am2901可以接收来自内部总线IB的4位输入数据,其4位输出都直接送到地址寄存器AR的不同字段(AR不属于运算器的组成部分,图中用虚线框表示),并且经过支持三态功能的开关门电路送到内部总线IB。
还要使用MACH芯片内部的部分电路提供ALU最低位的进位输入信号和最高、最低位的移位输入信号,使用一片GAL20V8实现4位的标志位寄存器FLAG,接收ALU输出的4个标志位信号和来自内存堆栈区的4位数据(用于恢复现场状态信息),FLAG的4位输出可以经过一片带支持三态功能的开关门电路送到内部总线IB,用于保存现场状态信息到堆栈区。
教学机运算器部件的组成线路和信息连接关系如图1.3.1所示。
图1.3.1运算器组成线路和信息连接关系
运算器部件的教学实验,要在教学计算机主板上进行,既可以在脱机方式下完成,也可
以在联机方式下完成。
脱机运算器实验方式是指使运算器部件完全脱离与计算机主机其他部件正常的连接关
系,在完全孤立出来的运算器上进行的教学实验。
此时,只能通过数据开关拨入参加运算的
数据,通过微型开关提供操作运算器运行所必需的控制信号,通过信号指示灯观察运算结果,
操作简单,实验结果清晰易理解。
图1.3.2为16位运算器脱机实验的环境,在计原16系统中,运算器最低位的进位输入信号Cin和左右移位输入信号RAM0、Q0、RAM15、Q15是由MACH芯片内部的SHIFT线路提供的,图左侧的长方形部分是MACH内部的线路。
16个开关拨入的数据经开关门电路送到内部总线,内部总线与运算器的输入端D15~D0已经连接。
23位的微型开关的不同组合完成不同的控制,其各编码对应的控制功能给出在表1.3.1。
图1.3.2脱机运算器实验的环境
联机实验方式是指在运算器部件与计算机主机保持正常连接关系,教学计算机可以正常
执行指令的情况下进行的以运算器为重点的教学实验。
此时,可以通过指令提供参加运算的
数据,通过控制器提供操作运算器运行所必需的控制信号,通过信号指示灯或者通过运行监
控程序观察运算结果,操作略显复杂,涉及到目前尚未讲解到的如何让控制器提供运算器实
验所要求的控制信号的办法,有一定难度,当然完成实验后的收获也会更大,提前接触到控
制器部件的一些内容。
表1.3.1微型开关各编码对应的控制功能表
I8~6
I5~3
I2~0
REG
Q
Y
功能
R
S
000
F→Q
F
R+S
A
Q
001
F
S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TECXP16 实验 指导书