控制器部件是计算机的五大功能部件之一,其作用是向整机每个部件(包括控制器本身)提供协同运行的需要的控制信号.因而,控制器在计算机组成原理过程中是非常重要的内容,但学生在学习过程中,对其工作原理却常常感到难以理解.教师在讲述这一部分内容时,也常常觉得难以叙述清楚,通过本实验,轻而易举的解决了这一问题。 一.实验设备和运行环境
在组合程序控制器方式下,同样可以做汇编语言程序设计、主存储器扩展、I/O接口扩展和中断实验。这几项实验的操作步骤与在微逻辑控制器方式下的实验操作相同,用户也可参照后面给出的参考步骤。本节只给出组合逻辑控制器实验的操作步骤。 二.实验目的、原理、实验具体步骤和内容
2.1 实验原理 控制器的设计实现有两种方式:一种是微程序,另一种是组合逻辑线路,微程序控制器的工作原理,是用一条微指令的控制命令字段来提供一条机器指令的一个执行步骤所需要的控制信号,用这条微指令的下地址字段,指明下一条微指令在控制器存储器中的地址,以便从控制器存储器中读出下一条微指令.换句话说,每一条微指令对应一条机器指令的一个执行步骤。 1、微指令格式
微指令由下地址字段及控制字段组成.TH—UNION教学机的微指令格式如下: 其中高八位为下地址字段.其余各位为控制字段. 1)址形成逻辑
TH—UNION 教学机利用器件形成下一条微指令在控制器存储器的地址.
下地址的形成由下地址字段及控制字段中的CI3—SCC控制.当为顺序执行时,下地址字段不起作用.下地址为当前微指令地址加1;当为转移指令(CI3—0=0011)时,由控制信号SCC提供转移条件,由下地址字段提供转移地址.
2)控制字段
控制字段用以向各部件发送控制信号,使各部件能协调工作。 控制字段中各控制信号有如下几类:
① 对运算器部件为了完成数据运算和传送功能,微指令向其提供了24位的控制信号,包括:4位的A、B口地址,用于选择读写的通用积存器3组3位的控制码I8-I6、 I5-I3、I2-I6,用于选择结果处置方案、运算功能、数据来源。 3组共7位控制信号控制配合的两片GAL20V8 3位SST,用于控制记忆的状态标志位
2位SCI,用于控制产生运算器低位的进位输入信号
2位SSH,用于控制产生运算器最高,最地位(和积存器)移位输入信号 ② 对内存储器I/O和接口部件,控制器主要向它们提供读写操作用到的全部控制信号,共3位,即MRW
③ 对CPU内部总线数据来源的控制,主要通过3位编码标记为DCD,来选择把哪一组数据发送到内部总线(IB)上。
④ 对几个特定的积存器接受输入的控制,也通过了编码C标记为D(2),用来选择允许哪个积存器接受送个它的一组数据。
2.2实验目的:通过看懂教学计算机中已经设计好并正常运行的几条典型指令(例如,ADD、
腹有诗书气自华
精品文档 你我共享
SHR、OUT、MVRD、JRC、RET、CALA等指令)的功能、格式和执行流程,然后自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。其最终要达到的目的是:
1.深入理解计算机控制器的功能、组成知识; 2.深入地学习计算机各类典型指令的执行流程;
3.对指令格式、寻址方式、指令系统、指令分类等建立更具体的概念; 4.学习组合逻辑控制器的设计过程和相关技术。
2.3 实验说明
控制器组成和运行机制是学习计算机总体组成的重要部分,应该比较清楚地懂得: 1.在计原16教学计算机中,组合逻辑控制器由程序计数器PC(运算器中的R5)、指令寄存器IR(用2片8位的寄存器实现)、节拍发生器Timing和控制信号形成线路(在CPLD器件MACH芯片中实现)4个主要部分组成;控制器中需要变化的主要功能线路集中到MACH芯片内部,用一个VHDL语言或者ABEL语言的程序代码描述,因此,修改或者扩展指令的实验,主要表现为修改编辑这个程序源码,再经过编译和下载操作即可完成,可以极大地提高实验效率。
2.在计原16教学计算机中,有29条基本指令已经实现,尚保留19条用于指令扩展实验,用监控程序的A命令能输入并汇编基本指令,对扩展指令虽然可以输入,但监控程序却不能识别,将作为非法指令处理。此时可以在包含有扩展指令的程序中为其预留下存储单元,之后用E命令输入扩展指令的二进制代码。通常情况下,T、P命令不适用于扩展指令;
3.应理解计原16教学机支持的指令格式及指令执行流程分组情况;通过听课、阅读教材和教学实验,看懂已经设计好并正常运行的各类指令的功能、格式和执行流程,也包括计算机总体组成,控制器为各功能部件提供的控制信号。
三.实验内容
1.完成控制器部件的教学实验,主要内容是由学生自己设计几条指令的的功能、格式和执行流程,并在教学计算机上实现、调试正确。
2.首先是看懂计原16教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机中已经设计好并正常运行的几条典型指令(例如,ADD、SHR、OUT等指令)的功能、格式和执行流程。
3.设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。例如ADC、JRS、JRNS、LDRA、STOR、JMPR等指令,可以从《TH-union计原16机系统技术说明与实验指导》书中查找,也可以设计与实现其它的指令,包括原来已经实现的基本指令(要变换为另外一个指令操作码)或自己确定的指令。在原来提供的MACH程序的基础上按照VHDL语言或ABEL语言的要求添加新指令的控制信号,编译产生.JED文件并下载到MACH芯片里。软件的使用和下载参见《技术说明和实验指导》。 4.单条运行指令,查看指令的功能、格式和执行流程。
先将教学机左下方的5个拨动开关置为11110,再按一下“RESET”按键,然后通过16位的数据开关(SWH、SWL)置入指令,按“START”按键单步送脉冲,通过指示灯观察控制信号的变化。
5.用监控程序的A、E(扩展指令必须用E命令置入)命令编写一段小程序,观察运行结果。
实验时将教学机左下方的5个拨动开关置为00110,运行编写的小程序。观察终端显示的结果,检验设计的指令是否正确。若与预定结果不符,可查看指令的功
腹有诗书气自华
精品文档 你我共享
能、格式、执行、流程设计的是否正确。 四.实验要求
1.实验之前,应认真准备,写出实验步骤和具体设计内容,否则实验效率会特别低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说学懂了些什么重要教学内容;
2.应在实验前掌握所有控制信号的作用,在脱机运算器实验中,已给出了与运算器有关的控制信号的作用,16位机组合逻辑控制器用到的控制信号的功能表参见《TH-union计原16教学计算机技术说明和实验指导》第三章。
3.实验过程中,应认真进行实验操作,既不要因为粗心造成短路等事故而损坏设备,又要仔细思考实验有关内容,提高学习的主动性和创造性,把自己想不太明白的问题通过实验理解清楚,争取最好的实验效果,力求达到教学实验的主要目的; 4.实验之后,应认真思考总结,写出实验报告,包括实验步骤和具体实验结果,遇到的主要问题和分析与解决问题的思路。大家应该认识到,遇到一些问题是好事情,通过分析与解决这些问题,才提高了自己的工作能力,学习到更多的知识。还未理解清楚,但实验结果正确了就匆忙结束实验,并没有达到教学实验的目的。实验报告中,还应写出自己的学习心得和切身体会,也可以对教学实验提出新的建议等。实验报告要交给教师评阅并给出实验成绩。
五.实验内容和具体步骤:
学习和检查已有指令的运行功能和执行步骤,当5位的功能开关处于11110状态时,教学机的指令将通过16位的数据开关手拨方式送入,并且每按一次“START”按键,只执行指令的一个步骤,有足够的时间察看计算机内部的信息和控制信号的状态。
1. 接通教学机电源;
2. 将教学机左下方的5个拨动开关置为11110(单步、手拨指令、组合、联机、16位); 3. 按一下“RESET”按键;
4. 通过16位的数据开关SWH、SWL置入16位的指令操作码; 5. 在手拨方式下,通过指示灯观察各类基本指令的节拍。
1) 选择基本指令的A 组指令中的ADD指令,观察其执行流程: <1> 置数据开关SW=00000000 00000001;(是ADD R0,R1 指令) <2> 按RESET按键;节拍指示灯T4~T0显示( );(本节拍的功能与ADD指令无关,用于 总清教学计算机系统) <3> 按START按键;T3~T0显示 ( );(AR←PC,PC←PC+1); <4> 按START按键;T4~T0显示 ( );(读内存,IR←读出指令); <5> 按START按键;T4~T0显示 ( );( R0←R0+R1操作),指令结束; <6> 再按START按键,将返回到第<3>步,开始下一条指令的执行过过程; 可以看到,属于A组的全部指令(包括ADD、SUB、CMP、AND、XOR、SHR、SHL、INC、DEC、TEST、OR、MVRR、JR、JRC、JRNC、JRZ、JRNZ)都是经过( )个节拍来完成的。( )公共节拍(编码为0000、0010)完成读取指令,每条指令还要用( )节拍(0011)完成自己特定的运算、处理功能。
2) 选择B组指令中的LDRR指令,完成DR←[SR]功能,观察其执行流程 <1> 置数据开关SW=10000001 DRSR ;(LDRR DRSR指令) <2> 按RESET按键,T4~T0显示( );(总清教学计算机系统) <3> 按START按键,T4~T0显示 ( );(AR←PC,PC←PC+1) <4> 按START按键,T4~T0显示( );(读内存,IR←读出指令)
腹有诗书气自华
精品文档 你我共享
<5> 按START按键,T4~T0显示( );(执行LDRR指令的第一步:送内存地址,即AR←DR)
<6> 按START按键,T4~T0显示 ( );(执行LDRR指令的第二步:读、写内存或读、写外设DR←DATA) 可以看到,B组的全部指令(包括JMPA、LDRR、IN、STRR、PSHF、PUSH、OUT、POP、MVRD、POP、RET)都是经过( )个节拍来完成的。( )公共节拍(编码:0000和0010)完成读取指令,每条指令还要用( )节拍(0110、0100)分别完成传送存储器或I/O接口的地址,以及完成存储器或I/O接口的读写操作。
同样的操作步骤,也可以查看基本指令集合中的子程序调用指令(CALA)的6个执行步骤,在0000、0010这2个节拍完成取指,在0110、0100这2个节拍完成读出指令的第2个字并暂存,在0111、0101这2个节拍完成把PC的值写入堆栈,并把暂存的子程序地址送PC。
6.单步方式下,通过指示灯观察各类基本指令的执行步骤、实现功能、用到的控制信号