本教材是《计算机组成与体系结构》(第3版) 的配套实验教材, 给出了TEC-XP-Ⅱ实验计算机系统的组成概述, 硬件领域的芯片级实验内容、部件级实验内容、部件组合与构建整机系统实验内容, 软件领域给出了监控程序使用和汇编语言程序设计的实验内容。还包括不同层次的中断实验内容。
本书是《计算机组成与体系结构》(第3版)的配套实验教材,重点讲解教学实验设备和教学实验项目,还会把不宜在主教材过多涉及的部分内容(计算机硬件系统的设计技术与工程实现方法)安排到这本书中进行讲解。本书给出了TEC-XP-Ⅱ实验计算机系统的组成概述,硬件领域的芯片级实验内容、部件级实验内容、部件组合与构建整机系统实验内容,软件领域给出了监控程序使用和汇编语言程序设计的实验内容。还包括不同层次的中断实验内容。书中对实验计算机系统的组成和实现的实验功能讲解清楚,实验的可操作性强,既要突出原理知识,又要提升实验技能,与主教材融会贯通,相互配合,把理论教学和实验教学结合好,有利于提高教学质量。
主任: 李晓明副主任: 蒋宗礼卢先和委员: (按姓氏笔画为序)
马华东马殿富王志英王晓东宁洪
刘辰孙茂松李仁发李文新杨波
吴朝辉何炎祥宋方敏张莉金海
周兴社孟祥旭袁晓洁钱乐秋黄国兴
曾明廖明宏秘书: 张瑞庆
前言FOREWORD本书是《计算机组成与体系结构(第3版)——基本原理、设计技术与工程实现》的配套教材,重点讲解教学实验设备和教学实验项目,并把不宜在主教材过多涉及的部分内容(计算机硬件系统的设计技术与工程实现方法)安排到本书中进行讲解。
教学实验设备TECXPⅡ计算机系统,是TECXP+的升级版,指令系统典型实用,硬件组成简单清晰,软件配置基本够用,是计算机组成原理课程比较理想的实验设备。该设备实现的功能有所增加,但使用方式和操作界面与此前的产品保持良好的一致性,避免增加授课教师的工作负担,而设计技术和实现手段有了重大改进升级,大幅降低了学生学习和完成实验的难度,主要体现在以下10个方面。
(1) 把硬布线控制器和微程序控制器拆分开来,用两个ABEL程序分别描述并独立实现,使描述控制器组成与功能的ABEL程序大为精简,使学生更容易看清学懂,使两种类型的控制器实现不再相互搅和,选用哪一种控制器就把哪一种控制器的.jed文件下载到控制器芯片。
(2) 取消原来在主板上的某些电路,把它们移入控制器芯片中实现,仅把指令寄存器IR设置在主板上。减少了所用器件数量,更重要的是确保设备主板上提供的都是核心必要电路,能更清楚地展现计算机功能部件及其相互连接与信息传输关系,有利于教师授课和学生的实验操作。非常明确地把设备主板上的电路区分成核心功能器件和辅助型元器件两大类,强调辅助电路只是用于硬件调试,学生会用即可,不属于计算机组成原理课的教学内容。
(3) 把指令计数器PC从运算器部件中移出,设置到控制器芯片中,确保读取指令操作能够在一个步骤中完成,使全部指令都能在2~4个步骤中完成,既易于实现也更为合理。
(4) 在描述CPLD芯片内部的电路组成与实现功能方面,选用的是ABELHDL硬件描述语言,用到的只限于数字电路和逻辑设计的基本知识,外加一点ABEL程序结构和语句规则、实现功能的有关规定,容易学懂,方便使用;最重要的变动是在ABEL程序中,改用真值表描述每一条指令的每一执行步骤使用的控制信号,使控制器设计中最为烦琐的工作变成只需在真值表中直接编辑这些控制信号,而不再是劳心费力地设计每一位控制信号的逻辑方程,极大地提高了ABEL程序的可读性,特别是在真值表的注释部分提供了汇编语句名称、指令在这一步骤执行的功能、标志位维护要求等注释信息之后,可以看清运算器、存储器、串行接口和输入输出设备这几个执行部件,在每一条的每一个执行步骤执行的是什么功能,以及向它们提供什么控制信号才能使其完成各自的功能,把计算机组成原理的核心内容直观清晰地展现出来。
(5) 对控制器的节拍发生器(Timing)、程序计数器(PC)、内存的地址寄存器(AR)、运算器的标志位寄存器(Flag)等时序逻辑电路,在ABEL程序中是通过逻辑方程描述的,即直接使用逻辑方程语句描述这些电路应该在什么条件下接收什么信息,或者在哪些时刻需要送出其输出到哪个部件,简明严谨、直观清楚,特别是为有关语句提供了较为详细的注释信息,在真值表的注释部分又提供了维护和使用这些时序电路的要求之后,使读懂和理解这些逻辑方程语句变得更为轻松。
(6) 在CPLD芯片内可以实现一个16个字的小ROM电路,用于编辑、保存测试程序,确保在监控程序尚不能运行或者尚未接入内存储器的情形下,也能调试控制器或者CPU的部分指令,检查新扩展的指令是否正确运行,这是一项颇有新意、简单有效的调试手段。
(7) 在CPLD芯片内设置用于中断的电路,此时可以通过关闭掉微程序控制器Am2910芯片的电源使其不运行,腾出了它与CPLD芯片进行连接的24个管脚,用于显示中断请求、响应、处理过程中的有关信号,更有利于学生理解中断的运行原理和运行机制。
(8) 为实验计算机设置3种运行方式,即正常方式(程序在内存中)、测试方式(程序在CPLD芯片内的ROM中)、手拨指令方式(指令来自钮子开关),程序既可以连续运行,也可以单步骤运行。可以通过设备主板上的3个功能开关来选择这3种运行方式。
对这3种运行方式中的正常方式未做赘述,测试方式更多地用于调试扩展指令,手拨指令方式在此前的设备中也是有的,但多数人对此认识不足,较少使用,在这一款设备中我们进一步强调了它的功能,进行了必要说明,主要针对的还是硬件设计中的调试问题。
(9) 在设备的主板上加入了3个40管脚的器件插座,可以方便地插接多种型号的双列直插封装、不同管脚数的中小规模集成电路芯片,并能够实现各器件的各个管脚之间的随意连接,成为电子线路和逻辑设计实验的通用平台,给出的实验项目简单,大体对应主教材第2章的教学内容,对此前没有学习过数字电路与逻辑设计课程的同学显得尤为重要。
(10) 在设备主板上设置了6组8位的通用钮子开关,4组8位的通用指示灯,并在计算机部件之间传送信息的主要通路上设置了专用的指示灯和接线插针(孔),能够更方便地支持手工的单个重要芯片的功能实验,芯片之间配合关系的实验,单个部件的功能实验,几个部件之间的连接和组合运行的实验,以及部件拆分和构建整机系统的实验,提供了其他同类实验设备难以实现的实验手段。可以这样说,计算机内部指令的执行步骤、数据存储、信息传送、运算功能和执行结果以及每个步骤用到的控制信号的状态等都可以通过指示灯清楚地看到,在实验计算机系统内部发生的每一点变化、每一项操作及其效果都清楚地显示在实验计算机的主板上,无须通过其他手段将其采集起来并传送到PC的屏幕上进行显示。
与本套教材配套的还有电子版教学课件,重点教学与实验内容的动画演示。这些文件将放置在清华大学出版社的网站,供用户单位随时下载使用。
由于作者水平所限,书中可能有一些不足甚至不当之处,欢迎读者批评指正。
前言计算机组成与体系结构(第3版)实验教程
编者2017年6月
王诚,多年在清华大学计算机系教学和科研第一线工作,出版了十余本书,教学取得优异业绩,科研工作也有十余项重要成果。在长达十七、八年的教学过程中,重点主讲“计算机组成原理”、“计算机组成与体系结构”等课程,计算机组成原理课被评为国家、北京市、清华大学三个级别的精品课程,获北京市高教教学成果一等奖。出版多本主教材和实验指导书,其中有2本被评为北京市精品教材,进入国家“十五”和“十一五”规划教材。开发研制了教学硬件实验设备及其软件模拟系统,制作了教学课件,在全国有较大影响。
教学计算机主板照片1
第1章TECXPⅡ计算机硬软件系统组成、构建与工程实现3
1.1TECXPⅡ计算机硬、软件系统的组成概述3
1.2部件拆分与整机构建设计6
1.3控制器部件的设计技术和实现方法7
第2章电子线路实验10
2.1反相器SN74LS04和与非门SN74LS00的实验11
2.2译码器SN74LS139器件和三态门SN74LS244器件的实验13
2.3寄存器器件SN74LS377、SN74LS374芯片的实验15
2.4计数器器件SN74LS161的实验18
第3章芯片级实验19
3.1认知主板上元器件布局和开关、指示灯的使用方法19
3.2单独RAM6116或ROM58C65芯片的读写实验20
3.3单独MACH芯片的运算器设计实验23
第4章脱机的计算机部件实验28
4.1脱机的运算器部件实验28
4.2脱机基本存储器部件实验30
4.3脱机的串行接口读写与输入输出实验(选做)33
第5章监控程序使用和汇编语言程序设计实验36
5.1使用监控程序的实验36
5.2汇编程序设计实验38
第6章部件组合和构建计算机整机系统的实验46
6.1硬布线控制器部件设计和构建CPU系统(运算器+控制器)实验46目录计算机组成与体系结构(第3版)实验教程6.2主机系统(CPU+内存)的设计与实现实验51
6.3整机系统(CPU+内存+串口和输入输出设备)的设计与实现实验51
6.4微程序控制器设计和CPU(控制器+运算器)系统实现的实验(选做)53
6.5中断功能的设计、线路实现和三级嵌套的中断实验61
第7章FPGACPU系统的设计与实现66
7.1FPGACPU系统概述66
7.2运算器部件的功能、组成与设计68
7.3控制器部件的功能组成与设计72
附录A硬件描述语言ABELHDL知识简单介绍80
附录BMACH器件的编程方法和操作步骤——LC4256V器件83
附录CMACH芯片的下载(编程)操作86
附录DPCB板的设计与制作概述——Altium Designer软件使用简介88
附录EVHDL语言入门性知识和FPGACPU设计简介104
附录F教学计算机指令级的软件模拟系统107
附录GBASIC语言程序设计114
参考文献119
第5章监控程序使用和汇编语言
程序设计实验5.1使用监控程序的实验〖*2〗【实验目的】 了解教学机系统的指令格式、寻址方式、基本指令系统构成。
了解机器语言、汇编语言的概念及其对应关系。
学习使用教学机的监控命令操作运行教学机系统的方法和过程。
学习汇编语言程序设计的基础知识和基本技术。
【实验说明】
这项实验可以使用指令级仿真软件tec2ksim系统,有一台装了相应软件的PC即可,也可以在教学实验设备上完成,更有利于加深对真实教学计算机硬件的了解。为此需要了解教学机系统提供的A、U、G、D、E、R、T这7个监控命令的格式和每个命令的功能,试着用一下,短时间即可初步了解并学会使用。
汇编语言程序设计则略复杂,需要了解实验设备提供的30条基本指令、汇编语句的格式和各自的功能以及指令与汇编语句的对应关系。最好先从实验指导书中提供的程序例子开始,首先学会操作方法和工作步骤;接下来再试着学习、理解每个汇编语句的格式和含义,初步了解汇编程序的结构和设计方法;在有了基本知识之后,再开始设计自己的小汇编程序,此时要解决的是把自己想完成的一项事情(如求整数1~20的累加和)用汇编程序计算出来,还要观察到程序的执行过程及其运行结果。
【学习使用监控命令】
1. 用R命令查看寄存器内容或修改寄存器的内容
(1) 在命令行提示符状态下输入: R↙;显示寄存器的内容注意: 寄存器的内容在运行程序或执行命令后会发生变化。计算机组成与体系结构(第3版)实验教程监控程序使用和汇编语言程序设计实验第 5 章(2) 在命令行提示符状态下输入: R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格主机显示:寄存器原值:_在该提示符下输入新的值0036,再用R命令显示寄存器内容,则R0的内容变为0036。这里用到的数字都是十六进制的。
2. 用D命令显示存储器内容
在命令行提示符状态下输入: D 2000↙ 会显示从2000H地址开始的连续128个字的内容;连续使用不带参数的D命令,起始地址会自动加128(即80H)。
3. 用E命令修改存储器内容
在命令行提示符状态下输入:E 2000↙屏幕显示:2000地址单元的原有内容:光标闪烁等待输入一个新的数值输入 0000
依次改变地址单元2001~2005的内容为: 1111 2222 3333 4444 5555。
注意: 用E命令连续修改内存单元的值时,每修改完一个,按一下空格键,系统会自动给出下一个内存单元的值,等待修改;按Enter键则退出E命令。
4. 用D命令显示这几个单元的内容D 2000↙可以看到这6个地址单元的内容变为000011112222333344445555。
5. 用A命令输入一段汇编源程序
主要是向累加器赋初值并进行运算,执行程序命令查看运行结果。
(1) 在命令行提示符状态下输入: A 2000↙;表示该程序从2000H(内存RAM区的起始地址)地址开始屏幕将显示: 2000:
输入以下形式的程序: 2000: MVRD R0,AAAA;MVRD与R0之间要有空格,其他指令相同
2002: MVRD R1,5555;每条指令都以按Enter键结束输入
2004: ADD R0,R1
2005: AND R0,R1
2006: RET;程序的最后一个语句,必须为RET指令
2007:(直接按Enter键,结束A命令输入程序的操作过程)若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。此处的数字均默认为十六进制。
(2) 用U命令反汇编刚输入的程序。
在命令行提示符状态下输入: U 2000↙在从相应地址开始执行反汇编功能,每行一条指令,包括指令地址、指令代码、汇编语句等相应几列的信息。
注意: 连续使用不带参数的U命令时,将从上一次反汇编的最后一条语句之后接着继续反汇编。
(3) 用G命令运行前面输入的源程序。G 2000↙程序运行结束后,可以看到程序的最终运行结果,屏幕将显示各寄存器的值,其中R0和R1的值均为5555H,说明程序运行正确。
(4) 用P或T命令,单指令方式执行这段程序,可以查看到每条指令的执行结果。
在命令行提示符状态下输入: T 2000↙寄存器R0被赋值为AAAAH。T↙寄存器R1被赋值为5555H。T↙做加法运算,和保存进R0,R0的值变为FFFFH。T↙做与运算,结果放在R0,R0的值变为5555H。
5.2汇编程序设计实验
设计汇编语言程序之前,初步看清教学机的基本指令系统的构成以及典型指令的功能、指令格式、选用的寻址方式等十分必要,还要对指令代码和汇编语句的对应关系有基本认识,这是本实验要重点学习、深入理解的内容。首先给出教学机的基本指令汇总表(见表5.1)。
……