TECXP实验指导书.docx
- 文档编号:6610147
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:116
- 大小:266.22KB
TECXP实验指导书.docx
《TECXP实验指导书.docx》由会员分享,可在线阅读,更多相关《TECXP实验指导书.docx(116页珍藏版)》请在冰豆网上搜索。
TECXP实验指导书
TEC-XP
计算机组成原理与
系统结构实验系统
清华大学科教仪器厂
清华大学计算机系
2005年8月
目录
第一章TEC-XP计算机组成原理实验系统概述---------------------1
1.1TEC-XP教学机系统的技术指标与系统配置-----------------------------------1
1.2教学机系统支持的实验项目-----------------------------------------------------------2
1.2.1基本实验项目---------------------------------------------------------------------2
1.2.2其他实验项目---------------------------------------------------------------------3
第二章实验指导------------------------------------------------------------5
2.1基础汇编语言程序设计-------------------------------------------------------------5
2.2脱机运算器实验---------------------------------------------------------------------12
2.3组合逻辑控制器部件教学实验---------------------------------------------------21
2.4存储器部件教学实验---------------------------------------------------------------30
2.5I/O口扩展实验----------------------------------------------------------------------34
2.6中断实验------------------------------------------------------------------------------36
2.7微程序控制器部件教学实验------------------------------------------------------50
2.7.1技术资料汇总------------------------------------------------------------50
2.7.2微程序控制器实验------------------------------------------------------57
附录实验注意事项-------------------------------------------------------------------------72
第一章TEC-XP计算机组成原理与系统结构实验系统概述
1.1TEC-XP教学计算机系统概述
1.1.1TEC-XP教学计算机系统系列和总体组成概述
TEC-XP是由清华大学计算机系和清华大学科教仪器厂联合研制并通过了教育部主持的成果鉴定的适用于计算机组成原理与系统结构的实验系统,主要用于计算机组成原理和计算机系统结构等课程的硬件教学实验,同时还支持监控程序、汇编语言程序设计、BASIC高级语言程序设计等软件方面的教学实验。
它的功能设计和实现技术,都紧紧地围绕着对课程教学内容的覆盖程度和所能完成的教学实验项目的质量与水平来进行安排。
其突出特点有二,一是硬、软件基本配置比较完整,能覆盖相关课程主要教学内容,支持的教学实验项目多且水平高,文字与图纸资料相对齐全。
二是既有用不同集成度的半导体器件实现的真实“硬件”计算机系统,同时还有在PC计算机上用软件实现的功能完全相同的教学计算机的“软件”模拟系统,其组成和实现的功能如下图所示。
软件:
解释BASIC语言
汇编语言支持
监控程序
硬件:
运算器,控制器(多种实现:
(微程序或硬布线控制器,
中小规模器件或FPGA器件实现)
主存储器,总线,接口
输入设备,输出设备
硬件与电路:
逻辑器件和设备
软件:
解释BASIC语言
汇编语言支持
监控程序(指令)级模拟
教学机模拟:
运算器、控制器模拟
(微程序级或硬布线控制器级模拟)
主存储器模拟,总线、接口模拟
输入设备/输出设备模拟
运行环境:
PC机,Windows系统
图1.1硬件实现的实际计算机系统图1.2软件实现的模拟计算机系统
从图1.1可以看到,该计算机硬件系统组成中,功能部件是完整齐备的,运算器、控制器、存储器、计算机总线、输入输出接口等配备齐全,还可以接通PC机仿真终端执行输入输出操作,同时实现了微程序方案的和硬布线方案的2种控制器。
从CPU的具体设计和实现技术区分,既支持用中小集成度芯片实现CPU的方案,也支持选用高集成度的FPGA门阵列器件实现CPU的方案,体现了CPU系统设计的最新水平。
从计算机组成原理课程教学实验的角度看,该计算机软件系统组成也是完整的,支持简单的高级语言BASIC(包括浮点运算指令和基本函数运算功能),汇编语言(支持基本伪指令功能)和二进制的机器语言,配有自己的监控程序,以及PC机仿真终端程序等。
毫无疑问,全部软件的源程序代码是宝贵的教学参考资料。
从图1.2可以看到,软件实现的计算机指令级模拟系统,可以使实验人员脱离实际的教学计算机系统,在PC机上执行教学计算机软件系统的全部功能;微程序和硬连线这一级别的模拟软件,可以通过PC机屏幕查看在教学计算机内部数据、指令的流动过程,并显示每一步的运行结果,为设计、调试教学机新的软件或硬件功能提供重要的辅助作用。
值得一提的还研制了控制器(微程序或硬连线方案)辅助设计软件,同学可以在PC机上使用该软件直接设计该计算机的控制器,包括定义指令格式和编码,划分指令执行步骤和每一步的操作功能,确定控制器需要提供的全部控制信号等全部过程,最后会自动生成能装入教学计算机硬件系统中实际应用的最终结果文件。
接下来还可以选用微程序级的模拟软件系统,或者硬布线控制器级的模拟软件系统,对经过辅助设计软件得到的设计结果进行模拟运行,计算机屏幕上会详细显示每一步的运行结果,做到尽早地发现问题。
由于在执行上述的控制器设计和模拟运行的整个过程中,都是在PC机上完成的,脱离实际的教学机系统,工作更方便,效率更高,对节省学时、帮助同学加深对控制器组成、设计等方面的理解深度也有益处。
1.1.2TEC-XP教学计算机的指令系统设计
合理地确定一台计算机的指令系统,无论对计算机厂家还是对最终用户来说都是十分重要的事情,它密切关系到计算机设计与实现的复杂程度和生产成本,计算机使用的难易程度和运行效率。
对主要用于教学和教学实验目的的计算机,特别是对于一台16位字长的教学计算机来说,确定其指令系统,更多地应关注它在教学过程中的作用和使用方法,至少应解决好以下几个问题。
(1)指令格式和功能的典型性,即选择DLX指令集结构,适当靠拢RISC机的指令格式,做到尽可能小的指令集,简化的寻址方式。
这样做不仅使教学计算机的结构简化,实现简单,易于实现指令流水。
做到指令格式和功能有良好的典型性,同学更容易接受,讲课时更容易完整地讲解清楚这套指令系统和控制器设计,也有利于教学内容的整体安排。
(2)指令系统要有一定的完备程度,给出的指令格式适当规范,指令分类合理,指令执行步骤容易理解,符合人们通常的编程使用习惯。
总之,有较好的易学易用性。
确保选用这套指令系统,能方便地设计教学计算机的配套软件。
(3)更高的可扩充性,即为学生添加各种新的指令留下比较充足的余地,为此可以把完整的系统中指令划分为必备的(约30条)基本指令(设计者已经实现)和待扩展的(约20条)保留指令(留给学生设计实现)2大类;在扩展新的指令时,实现手段要适当简单,但要有比较多的设计内容和选择余地,以便更好地培养学生的创新意识和开创能力,有利于深化教学内容。
(4)符合教学计算机的特定要求。
对16位字长的计算机,指令的操作码部分可以选择为固定长度;再结合我们所选用的运算器器件Am2901芯片内含16个通用寄存器的特点,寄存器寻址方式需要使用4位的形式地址。
如果需要,还可以指定16个累加器中的几个为专用的寄存器,以便最大程度地简化教学机硬件组成,简化指令执行流程设计。
遵照上述思路,最终确定了教学计算机的指令系统的具体组成和指令格式。
指令格式如图1.3所示。
从图中可以看到,指令中包括单字指令和双字指令,第一个指令字的高8位是指令操作码字段,低8位和双字指令的第二个指令字是操作数地址字段,分别有3种用法。
8位4位4位
操作码
DR
SR
IO端口地址/相对偏移量
立即数/直接内存地址/变址偏移量
图1.3教学机的指令格式
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位的变址偏移量。
1.1.3TEC-XP教学计算机的结构和组成设计
作为教学和教学实验使用的计算机,其结构和组成设计要比较好地体现出尽可能多的主要教学内容,包括功能部件划分清晰,设计合理,它们之间连接关系适当规范等。
在选用中小规模集成度器件实现的CPU系统中,运算器部件设计选用了位片结构的4位长度的运算器芯片,内含功能比较合理的ALU,双端口控制读出、单端口控制写入的16个累加器,和完成乘除法运算的乘商寄存器等功能部件,从功能和组成两个方面都比较好地体现了运算器部件的教学内容。
在控制器部件设计中,同时实现了微程序的和硬布线的两种控制器,通过一个开关简单地完成两种控制器之间的切换。
讲课过程中,以一种控制器方案为主,对控制器的组成与设计技术讲明讲透,再用少量学时顺便介绍另外一种控制器方案,有利于比较两种控制器的异同之处和各自的优缺点,可以取得事半功倍的教学效果。
设计指令执行步骤时,对选用中小规模集成电路实现的控制器,为了突出基本原理和减少器件数量,指令被设计为串行执行,即下一条指令必须在当前指令完全结束后才能开始;在选用高集成度的现场可编程器件FPGA实现的CPU系统中,继承了原来的指令系统,既支持指令的串行执行,也可以选用指令流水线技术实现指令的并行执行,以支持真实的指令流水线的教学实验功能。
在教学计算机存储器部件设计中,出于简化和容易实现的目的,选用静态存储器芯片实现内存储器系统,包括了唯读存储区(ROM,存放监控程序等)和随读写存储区(RAM)两部分,也可以实现指令和数据分开的两个存储体(只用于FPGA实现的带指令流水线的CPU系统)。
适当改进后,可以支持存储器的多体交叉编址技术。
在教学计算机总线部件设计中,实现了单总线结构,数据总线、地址总线和控制总线比较简单,保证教学机的正常运行并体现出总线设计的基本原理。
关于计算机中的接口线路,教学计算机提供了2路串行接口(INTEL8251),可以接入PC机作为教学计算机的仿真终端完成输入输出操作;作为扩展实验内容,也可以通过在一个40芯的器件插座上插上其他标准接口线路(例如INTEL的8255、8253等)并适当接线,完成常用接口线路的输入输出操作。
关于中断处理,支持3级的中断并允许中断嵌套,可以完成常规的中断处理能力,对中断优先级编码与排队,中断响应和现场切换等处理上特色很强。
1.1.4教学计算机的硬件实现技术
作为教学目的的计算机系统,在具体的硬件实现方面与一般的商用计算机有着某些明显不同之处,具体表现在如下3个方面。
首先是“处处可见”的要求,不仅全部部件和全部器件要做成全暴露方式,还包括计算机运行过程中各种数据和控制信号的状态及其时空关系也容易观察,这对于学生完成教学实验,掌握计算机组成与设计技术是必不可少的。
因此,教学机的线路板上设置了大量的开关和指示灯,适当的跳接线插针、插孔等。
随之带来的一个突出矛盾是设备的可靠性和更高的抗破坏性,换句话说,要能够尽量降低学生实验过程时常会发生的错误对教学机的损坏程度,还要容易维修,这是教学计算机设计与实现过程中的难点之一。
其次,在教学计算机实现中,要给出尽可能高的可扩展性,即可以方便地修改已有设计,或者增加新的功能。
限制太多,留的选择余地太少,会严重影响教学实验的水平和质量;保留的选择余地过多,不仅难以实现,还会增大教学实验难度,反过来也难以保证教学实验的质量。
如何在这二者之间进行取舍,无疑是留给设计者的又一个难题。
作为主导思想,我们还是更强调选择余地留得适当多一点,通过加强实验指导,实验说明写的详细一些,使得学生可以开展一些有创意的教学实验内容,全力增强学生的创新意识和自主学习的能力。
最后一点是通过教学计算机系统能够体现出多大的知识面,即涵盖多大范围的主要教学内容。
为了兼顾不同院校的教学安排,针对计算机组成原理和计算机体系结构两门课程的实验需求,我们把教学计算机系统做成了一个系列产品。
从计算机字长划分,可以实现8位字长的计算机,也可以实现16位字长的计算机,难能可贵的是它们是在同一个印制电路板上实现的,换言之,只要教师具备相应的知识和技术能力,在16位的教学计算机上,经过重新设计并组装成8位字长的计算机是可行的,当然这已经是完全不同指令系统、不同硬软件组成的两套计算机,可以用在计算机组成原理课程的教学过程中,用于课程设计,甚至于作为学生的毕业设计题目也是可行的。
从选用的器件划分,支持用中小规模集成电路实现的CPU系统,在体现计算机组成的原理性知识的同时,在很多场合都要涉及到数字逻辑电路和逻辑设计的具体知识,更接近计算机实现的线路逻辑的底层,体现了比较传统的教学内容和实验安排。
还支持用大规模集成电路FPGA芯片实现的单个芯片的CPU系统,选用VHDL语言描述计算机处理器的功能组成,此时则较少涉及计算机具体实现的线路逻辑,更有利于突出计算机的功能设计与实现,并且为实现指令流水提供了最好的条件,体现出比较新的教学内容和更高层次的实验安排。
从计算机系统的完整性划分,目前国内多数的计算机组成原理课程的教学实验是在硬件裸机装置上完成的,实验装置上没有配备合理的软件系统,计算机组成原理被作为一门“纯正的”硬件课程来看待,这是很过时的做法,与国外先进的教学安排相差甚远。
我们则坚持把一台硬软件配置比较完整的计算机系统用于教学实验,汇编语言程序设计、简单的操作系统雏形(监控程序),不同层次的软件模拟等应该在计算机组成原理课程中有适当的地位。
从计算机硬件系统的设计手段划分,在教学计算机设计与实现中,有非常老式的、基本上完全手工设计的例子,也有更现代化的通过VHDL语言描述、并用FPGA芯片实现的例子。
使同学们有机会在二者之间进行某些对比,看到技术进步给IT产业带来的深远影响。
除此之外,我们还设计了计算机控制器(含微程序控制器和硬连线控制器)辅助设计软件,该软件将以导航方式指明控制器的设计流程,引导学生逐项完成必要的设计,包括定义指令系统,划分指令执行步骤和每一步实现的功能,选择有关控制信号等,并把原来完全手工设计过程中那些机械重复的微指令编码、微指令地址安排,以及书写硬连线控制器每一个控制信号的逻辑表达式等烦人的劳动交由计算机自动完成,极大地提高了教学实验的工作效率和设计质量。
接下来可以通过运行模拟软件系统,检查辅助设计的结果,尽快地帮助找出设计中的错误。
正确的设计结果可以被直接装入到实际的硬件系统中,通过运行最终设计的硬件教学计算机系统,查看实际运行效果。
设计过程和操作运行步骤密切相关,环环紧扣,使学生在探索中学习,浓厚的兴趣,油然而生的成就感将激励他们不断前进。
1.1.5软件模拟实现的教学计算机系统
把已经用硬件实现的教学计算机系统的全部功能,通过软件模拟的办法在PC机上再次展现出来,是我们做出的重大努力之一。
通过网上查询和与已经出国人员的直接交流,了解到国外有一些著名大学在计算机组成原理课程教学过程中的安排,多选用软件模拟的方式完成逐项教学实验。
其优点是使用方便,变动设计的灵活性强,可以比较容易地对比不同设计方案对计算机执行性能影响的程度。
不使用专用硬件设备完成教学实验,实验成本也会比较低,不要求专职的人员管理硬件教学实验室,授课与辅导教师更容易与同学交互。
缺憾也是明显的,学生学习硬件课程的整个过程,不接触(拥有)自己可以设计与修改的硬件设备,更多的精力集中到计算机的功能设计部分,难以对线路与逻辑设计部分,计算机硬件实现中的工程性、技术性问题有切身体会。
如何权衡硬件的教学计算机系统和软件模拟的教学计算机系统在课程教学中的作用,可能是仁者见仁,智者见智,恐怕一时也难有定论。
对此,我们采取的措施是同时实现出这样两部分内容,并且同时使用在教学过程中,使它们发挥各自不同的作用,通过教学实践来探索更好的解决问题的途径。
为了更便于比较,做到更好的资源复用,在设计与实现软件模拟的教学计算机系统的过程中,采取了两项措施:
(1)坚持与硬件实现的教学计算机系统有尽可能高的一致性。
为此,模拟软件使用的信息,例如监控程序的执行码,微程序控制器的微程序的二进制编码文件等,与硬件教学机系统中使用的完全相同,这样辅助设计产生的设计结果,既可以直接用于模拟,也可以直接用于写到硬件教学机的部件中,确保二者之间有最好的一致性。
(2)在模拟软件的设计中,比较准确地按照硬件系统的主要功能部件实现模拟,确保硬件实现的与软件模拟现实的系统有良好的对照关系,有望在教学过程中可以得到更好的教学效果。
实现的模拟系统,模拟重点分配到2个层次上。
一个层次是指令级模拟,模拟的最小单位是一条机器指令,根据得到的指令的具体内容计算出这条指令的执行结果。
这个模拟软件的运行对象是机器指令组成的程序,运行结果将显示在计算机的屏幕上。
当被运行的程序对象是监控程序时,实际上就是在模拟监控程序的执行过程,可以执行每一个监控命令,与在真实教学计算机上运行监控程序的效果是一样的,此时也可以说是在执行教学计算机系统一级的模拟,可以建立并运行用户的汇编程序,也可以建立并运行用户的BASIC语言的程序等。
另一个层次是微体系结构级模拟,模拟的最小单位是一条指令的一个执行步骤,对微程序控制器而言是一条微指令,对硬连线控制器而言是指令的一个节拍。
这个模拟软件的运行对象也是机器指令组成的程序,运行结果将显示在计算机的屏幕上,但它有2种不同的运行方式:
连续运行和单步运行。
在连续运行方式下,在计算机屏幕上见到的运行效果和前一个层次上的运行效果是一样的,只是运行速度要慢得多,因为要模拟计算每一条指令的每一个执行步骤的结果,经过几个模拟步骤才能得到一条指令的运行结果,承担模拟的PC计算机的计算量要增大很多。
在单步运行方式下,在计算机屏幕上将显示指令的这个执行步骤的有关运行结果,包括指令寄存器的内容,指令所处的执行步骤,地址总线、数据总线、各个累加器的内容,运算器的输出结果和标志位的结果,状态寄存器的内容,控制器全部控制信号的当前状态等完整的信息,主要用于查看、理解、分析计算机内指令执行的详实过程,这对检查同学新增加的控制器功能(扩展的新指令的执行过程)的正确性是很有帮助的。
开发模拟软件需要注意选择运行平台。
考虑到已经把Windows系统作为仿真终端的运行环境,全部软件系统也都统一到这一平台之上。
1.1.6教学计算机在教学过程中的作用
TH-union教学计算机系统的组成和设计技术,作为教学内容的实例有很强的典型性,修改或扩展已有功能可以比较好地满足教学实验的要求;硬件实现的计算机系统可以用于现场的真实硬件系统的教学实验,软件模拟实现的计算机系统,可以在脱离实际教学计算机系统的条件下,在PC机上通过模拟的办法完成原本必须在教学机上进行的教学实验。
计算机组成原理是计算机系本科生最重要的专业基础课程之一,必修,课程在整个教学安排中占有重要的地位。
计算机系统结构课程也是计算机系本科生重要的专业课程之一,但系统结构课程的教学实验却不容易落实,目前比较多地集中到通过软件模拟来评测不同设计方案对系统性能的影响。
应该清醒地看到,国内对于计算机硬件为主的课程的定位尚不够准确,教学过程中也还存在一些模糊认识,或由于条件上的限制采取了一些不够进取的办法,这一切严重地影响教学质量,长远看,对我国信息产业的发展是不利的。
对硬件为主的课程定位不够准确,主要表现在一种“欺软怕硬”的心理,认为计算机硬件(尤其是计算机组成原理课程)难教更难学,于是采取适当躲避的态度对待之,极端一点的,直接说计算机组成原理课程没有用。
显而易见,如果计算机专业的本科生,连计算机组成原理这样一些专业基础知识都不具备,如何更好地学习后续的专业课程,又如何能发展成为计算机的专业人士呢?
更不要说是高级专门人才。
对课程的模糊认识之一,认为计算机组成原理是纯硬件课,把它和计算机软件系统决然分开,而不是把它作为完整计算机系统的组成部分之一来合理安排教学内容,这是国外30多年前就已舍弃的陈旧做法。
模糊认识之二,认为计算机基础硬件不再重要,以为主要应该讲解高档计算机中最新出现的技术和最新进展,殊不知这些最新出现的技术和最新进展都是在基本原理上发展而来的,轻视专业基础知识,最终架设的知识结构只能是空中楼阁,更不符合大学通才教育的要求。
条件上的限制,主要表现在缺乏必要的、能比较好地满足教学实验要求的教学实验设备,使教学过程更多地建立在课堂授课的方式下,缺乏必要的教学实践支持,这对于技术性和工程性很强的课程来说几乎成为灾难性的问题。
引申一步看,还包括部分任课教师所具有的知识结构基本上也只限于书本知识,缺乏设计和实现一台真实一点的计算机基本硬、软件系统的经历,一时还难以完全适应教学的实际需要。
我们的观点是,解决上述问题的出路之一,在于建设被广泛接受和认可的、高质量的教学资源,包括体现最新水准的高质量的教材,形象生动的教学课件(教学教案),研制并合理配备能覆盖主要教学内容、具有良好教学实验功能的教学实验设备和软件模拟系统。
在清华大学计算机系,“计算机组成原理”课程教学改革的思路是,从课堂教师讲授为主、学生被动地听课和完成验证性的教学实验为辅的传统“知识传授型”的教法,改变成为在精简课堂授课内容的基础上,以完成一项计算机完整的硬、软件系统的工程设计与实现的课题研究为重要支撑手段的“学生主动探索式”新的教学途径,尽量做到:
从学生听课为主的被动接收知识的学习方式,变成为结合课题研究与工程设计来主动学习的重大变革,给学生更多自由支配的时间,充分发挥学生自主学习的积极性;
从传授知识为主变为传授知识与培养能力并重的人才培养模式。
清华大学关注开创意识和创新能力的培养,注重学生全面素质的提高。
特别是考虑到计算机组成原理课程教学内容的工程性、技术性、实践性特别强的特点,把工程设计项目引进教学全过程很有必要。
教学计算机系统在清华大学计算机系的教学改革中显示出强大的生命力,在为期一个学期的计算机组成原理课程的教学过程中,要求每3名同学为一组,合作完成一台与教学实例有明显差异的、硬软件配置基本完整的全新计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TECXP 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)