计算机组成原理多级中断实验,TEC-XP计算机组成原理实验系统概述

第一章 TEC-XP计算机组成原理实验系统概述

1.1 TEC-XP教学计算机系统系列和总体组成概述

TEC-XP是适用于计算机组成原理与系统结构的实验系统,主要用于计算机组成原理和计算机系统结构等课程的硬件教学实验,同时还支持监控程序、汇编语言程序设计、BASIC高级语言程序设计等软件方面的教学实验。它的功能设计和实现技术,都紧紧地围绕着对课程教学内容的覆盖程度和所能完成的教学实验项目的质量与水平来进行安排。其突出特点有二,一是硬、软件基本配置比较完整,能覆盖相关课程主要教学内容,支持的教学实验项目多且水平高,文字与图纸资料相对齐全。二是既有用不同集成度的半导体器件实现的真实“硬件”计算机系统,同时还有在PC计算机上用软件实现的功能完全相同的教学计算机的“软件”模拟系统,其组成和实现的功能如下图1.1和图1.2所示。

软件:解释 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.2 TEC-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.3 TEC-XP教学计算机的结构和组成设计

作为教学和教学实验使用的计算机,其结构和组成设计要比较好地体现出尽可能多的主要教学内容,包括功能部件划分清晰,设计合理,它们之间连接关系适当规范等。

在选用中小规模集成度器件实现的CPU系统中,运算器部件设计选用了位片结构的4位长度的运算器芯片,内含功能比较合理的ALU,双端口控制读出、单端口控制写入的16个累加器,和完成乘除法运算的乘商寄存器等功能部件,从功能和组成两个方面都比较好地体现了运算器部件的教学内容。

在控制器部件设计中,同时实现了微程序的和硬布线的两种控制器,通过一个开关简单地完成两种控制器之间的切换。讲课过程中,以一种控制器方案为主,对控制器的组成与设计技术讲明讲透,再用少量学时顺便介绍另外一种控制器方案,有利于比较两种控制器的异同之处和各自的优缺点,可以取得事半功倍的教学效果。

设计指令执行步骤时,对选用中小规模集成电路实现的控制器,为了突出基本原理和减少器件数量,指令被设计为串行执行,即下一条指令必须在当前指令完全结束后才能开始;在选用高集成度的现场可编程器件FPGA实现的CPU系统中,继承了原来的指令系统,既支持指令的串行执行,也可以选用指令流水线技术实现指令的并行执行,以支持真实的指令流水线的教学实验功能。

在教学计算机存储器部件设计中,出于简化和容易实现的目的,选用静态存储器芯片实现内存储器系统,包括了唯读存储区(ROM,存放监控程序等)和随读写存储区(RAM)两部分,也可以实现指令和数据分开的两个存储体(只用于FPGA实现的带指令流水线的CPU系统)。适当改进后,可以支持存储器的多体交叉编址技术。

在教学计算机总线部件设计中,实现了单总线结构,数据总线、地址总线和控制总线比较简单,保证教学机的正常运行并体现出总线设计的基本原理。

关于计算机中的接口线路,教学计算机提供了2路串行接口(INTEL

8251),可以接入PC机作为教学计算机的仿真终端完成输入输出操作;作为扩展实验内容,也可以通过在一个40芯的器件插座上插上其他标准接口线路(例如INTEL的8255、8253等)并适当接线,完成常用接口线路的输入输出操作。

关于中断处理,支持3级的中断并允许中断嵌套,可以完成常规的中断处理能力,对中断优先级编码与排队,中断响应和现场切换等处理上特色很强。

1.4 基本实验项目设置

在本节提到的实验项目,多数是在TH-union系统中选用中小规模集成度器件实现的教学计算机上可以开设的实验,把选用FPGA芯片实现的CPU构建的教学机系统中支持的教学实验项目放在第3章介绍。

基本实验是指学习计算机组成原理通常总要完成的实验项目,解决的是学习基本原理和培养基本能力的问题。

1. 基础汇编程序设计学习

使用系统已实现的29条指令和监控程序、交叉汇编程序软件,设计与调试由教师布置的或自己设想的各种汇编程序。如有可能,可以参照系统提供的交叉汇编程序的源码,学习系统汇编程序(Assembler)的实现原理与设计技术。

2. 运算器部件实验

可以在运算器完全脱开主机控制的方式下,用主板上的微型开关直接控制运算器的方式来使用运算器并观察运算结果;也可以在实验计算机正常运行方式下,用控制器给出实验者所设计的对运算器的控制信号来使用运算器并观察运算结果(此时并不需要懂得控制器的运行原理)。

可以观察并量测运算器在串行进位方式下的进位信号的波形和延迟时间,也可以测出该运算器所允许的最高工作频率。

3. 主存储器部件的实验

可以进行存储器工作波形的观察与量测,可进行静态存储器的容量扩展实验,通过监控命令或自己设计的小程序向存储器写入数据并检查读写的正确性。

4. 控制器部件实验

可以做微程序方案或硬布线方案的控制器实验。首先是通过听课和操作实验机,学懂已实现的控制器的设计原理与实现技术,以单指令方式、单步骤执行方式观察指令的运行结果和信息在计算机内产生和传送的时间、空间关系,这是更重要的实验内容;然后才是设计与实现多条自己定义的新指令,并把新老指令放在同一程序中运行,检查结果的正确性。在微程序方案下实现新指令更容易,不用改动任何硬件,按规定办法把有关新指令用到的微程序装入控制存储器即可。在硬连线控制器方案中,则要把新指令用到的控制逻辑与原有的基本指令的控制逻辑合并一起,经过编译之后再重新下载到可编程的MACH器件中,略显得复杂一点,可能要多次地改正错误才能得到最终的正确结果。

5. 串行口输入/输出实验

由于本机上已给出了两路串行接口,其中的一路的接线完全连接好,系统也已经执行了对接口芯片的初始化,可以直接用于输入输出操作;另外的一路的接线并未全部连通,要求实验人员看懂图纸并完成必要的连线操作和串行口的初始化操作后,方能用程序控制方式完成该串行接口的正常输入/输出操作,例如用两台实验机的这一路串行口完成双机双向通信等实验。作为更高要求,还可以增加少量硬件线路,实现在中断方式下完成输入/输出操作(需在讲过中断之后进行)。还可以观察与量测串行数据的波形,起始位、停止位、串行数据采样时间的配合关系等。

6. 并行口与并行口打印机驱动的实验

可以在教学机的主板上设计并搭建诸如Intel

8255并行接口与配套逻辑电路,并用程序控制方式和中断方式驱动并行口打印机完成打印操作。在无打印机的情况下,可用并行口在程序控制方式下或中断方式下实现两台实验机的双机单向或双机双向通信,或在同一台实验机上实现内存内容"搬移"等实验。这涉及硬件与软件两个方面知识的综合应用。

7. 中断及DMA实验

串行口、并行口输入/输出操作中,都可以有中断方式下的输入输出方式,这需要适当地修改监控程序。这里也可以专门做多级中断、优先级排队及中断嵌套的实验。此时可用按钮等作为中断请求信号来源,抛开相应设备入/出以强化中断处理本身的份量。

DMA的工作方式,最简单的实验是在程序正常运行的同时,用DMA方式同时完成内存内容的"搬移"操作,结果的正确性便于检查。这个实验需用到扩展的通用接口芯片的插座,完成必要的连线,设计实验小程序软件等。

8. 整机故障定位与排除实验

实验机上有一些跳线夹,是用来人为设置机器故障的。教师可以通过移走一或几个跳线,或换上有故障的器件,要求学生发现故障,查清故障原因并设法排除。该实验有一定难度,但也是综合应用所学全部知识、完成能力训练的非常有效的手段,对提高分析问题与解决问题的能力会有很大帮助。此时需要确保设置的故障不会损坏教学计算机系统的硬件。

1.5 其他实验项目

是指那些不一定是学习计算机组成原理课程必做的实验,或难度更大的实验项目。

1. 故障诊断软件的设计与实现

这可以在机器指令级或微体系结构级进行。机器指令级的诊断程序用以疹断指令与监控程序运行的正确性,是机器出厂前例行实验的一部分,也是实验指导教师把实验机交付学生使用之前判断机器好坏的简便手段。可以让学生试着设计。

微体系结构级的诊断,设计得好的话,可用来实现实验机的故障诊断,非常有用,对于透彻掌握实验机的组成与运行机制帮助巨大,但在教学机中实现起来有相当的难度。

2. 用一台正确运行的实验机辅助调试另一台实验机

在本实验机的实现过程中,已考虑到这类实验的需求。可以把同一时钟同时提供给两台实验机,使其完全同步运行,并比较检查两台实验机内部主要信号、运行状态及结果的一致性,并依此结果判断是否继续给出后续时钟,则很容易找到待调试计算机的出错位置。与此类似的是双机同步运行,是检查机器可靠性的一条捷径。

3. 实验机的监控程序、交叉汇编程序的修改与扩充功能的实验。

4. 扩充输入/输出接口、设备与驱动程序的实验。

5.

设计与实现一套全新指令系统的CPU。指令格式可以突破现在规定,寻址方式也可变化,以16位字长的一字或多字指令为宜。微指令格式可变,但字长在56位以下最方便。运算器也可适当变动,用Am2901实现其他型号的运算器功能,或用可编程器件设计一个新的运算器均可行。例如,在这个硬件主板上设计并实现一个全新的8位字长的计算机系统,指令格式、寻址方式、监控程序等全部软件有关的内容完全重新设计,运算器、控制器、存储器、总线和接口等硬件也完全重新设计,这是完全可行的,工作量是大一些,但可学内容更丰富。对大部分院校来说,这作为学习过计算机组成原理课程之后的一个大的课程设计、甚至于是毕业设计的题目可能更合适一些。

6. 软盘驱动器的接口与驱动线路实验

设计与实现软盘驱动器的接口与驱动线路,是综合应用有关软件与硬件知识的途经之一,可以在教学实验计算机现有功能的基础上,增加新的设备和操作功能,在更大程度上拓展其实验性能。

7.

使用现场可编程器件(GAL20V8和MACH)完成组合逻辑的或者时序逻辑的线路实验,对于在学习本课程之前尚未学习过数字电路与逻辑设计课程的学生是必要的。

8. 通过使用第2路串行接口和修改监控程序,实现2个用户同时操作同一台教学计算机的多用户系统的功能。

以上提出的只是教学计算机系统可以支持(能够实现)的、可以开设的实验项目的思路与可行性,至于更具体地安排哪一些教学实验项目,实验的具体目标、内容、要求等将在下一节中分别详细说明,最终还是应该依据各个单位的教学安排和总体目标由任课教师来具体选择落实。

你可能感兴趣的:(计算机组成原理多级中断实验)