北 京 林 业 大 学
11学年—12学年第 2 学期计算机组成原理实验任务书
专业名称: 计算机科学与技术 实验学时: 2 课程名称:计算机组成原理 任课教师: 张海燕 实验题目:实验五 组合逻辑控制器部件实验 实验环境: TEC-XP+教学实验系统、PC机 实验内容
1.看懂TEC-XP+教学计算机的功能部件组成,分析教学计算机中已经设计好并正常运行的几条典型指令(例如,ADD、SHR、OUT、MVRD、JRC、CALA、RET等指令)的功能、格式和执行流程。
2.单条运行指令,查看指令的功能、格式和执行流程。先将教学机左下方的6个拨动开关置为111100,再按一下“RESET”按键,然后通过16位的数据开关(SWH、SWL)置入指令,按“START”按键单步送脉冲,通过指示灯观察控制信号的变化。
实验目的
1.深入理解计算机控制器的功能、组成知识。 2.深入地学习计算机各类典型指令的执行流程。
3.对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念。
实验要求
1.实验之前认真预习,明确实验的目的和具体实验内容,做好实验之前的必要准备。 2.想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果;
3.在教学实验过程中,要爱护教学实验设备,记录实验步骤中的数据和运算结果,仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。
4.实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,运算结果的分析讨论,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排
的建议等。善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。
实验说明
控制器设计是学习计算机总体组成和设计的最重要的部分。要在TEC-XP+教学计算机完成这项实验,必须比较清楚地懂得:
1.TEC-XP+教学机的组合逻辑控制器主要由MACH 器件组成。
2.TEC-XP+教学机上已实现了29条基本指令的控制信号由MACH给出的。 3.要明白TEC-XP+教学机支持的指令格式及指令执行流程分组情况;理解TEC-XP+教学机中已经设计好并正常运行的各类指令的功能、格式和执行流程,也包括控制器设计与实现中的具体线路和控制信号的组成。
4.教学计算机的指令执行流程图可参看《TEC-XP+技术说明和实验指导.pdf》P51的图2.10。
1000按RESET键R5←0,关中断读取指令0000AR←PC,PC←PC+10010读内存IR←读出指令A组指令0011寄存器之间的数据运算或传送B、C、D组指令无检查有无中断请求0100传送地址AR←地址C组指令0111传送地址AR←地址D组指令0101读写内存或寄存器间传送B组指令0110读写内存或读写外设
图2.10 教学计算机的指令执行流程图
图中的每一个方框代表一个节拍,表示指令的一个执行步骤。方框内部的文字简要说明在该节拍中应该完成的主要操作功能。
方框之间的带箭头的连线表示节拍状态的转换次序和方向。箭头线旁边有文字说明的,表示从前一个节拍转换为当前节拍的条件,没有文字说明的,表示无条件地从前一个节拍转换为当前节拍。
每个方框左上角的4位数字,是为该节拍分配的节拍状态编码。
前面已经讲到,把教学计算机全部指令按其应完成的功能和执行步骤情况,划分成A、B、C、D共4组。从指令流程图上可以看到,在完成读取指令之后,即已经得知指令操作码的前提下,节拍发生器就按这4类指令的划分情况,分别进入到各自不同的节拍序列。
其中状态编码为1000的节拍完成把0值送到程序计数器PC(即R5),为启动监控程序做好准备,只在教学计算机系统加电启动时被执行一次,在教学计算机正常运行的过程中不会进入这个节拍。
状态编码为0000和0010的两个节拍完成读取指令的功能,公用于所有指令,是每一条指令开始执行时必须首先完成的两个操作步骤。图中用虚线菱形框表示的“响应与处理中断请求”的动作,在相邻两条指令进行切换的时刻,即前一条指令已经结束、下一条指令尚未开始的时刻,完成检查有无中断请求的功能,这个检查步骤也公用于所有指令,并依据检查结果进行不同的处理,无中断请求时,就开始下一条指令的执行过程,有中断请求时则进入中断响应和处理的过程,处理起来略显复杂,等到讲解中断的时候再详细说明。
其他节拍用于不同指令,具体说明如下。
A组指令将进入标记为0011状态的节拍,用1步完成寄存器之间的数据运算或传送。 B组指令将进入标记为0110状态的节拍,再经过标记为0100的节拍,用2步完成1次对主存储器或I/O设备的读写操作。
C组指令将进入标记为0110状态的节拍,再经过标记为0111的节拍、0101的节拍,用3步完成2次内存储器的读写操作,前2个节拍完成读主存储器的同时,还把读出内容传送到地址寄存器,第3个节拍直接使用该地址完成第二次对主存储器的读写操作;CALR指令是一次内存写操作和一次寄存器之间的数据传送操作,也是3个步骤完成。
D组指令,将进入标记为0110状态的节拍,再经过标记为0100的节拍、0111的节拍、0101的节拍,用4步完成2次内存储器的读写操作,每一次内存储器的读写操作各自用2步完成。
5.基本指令系统如图1所示。
基本指令系统指令格式汇编语句操作数个数CZVS 类型功能说明00000000 DRSR ADD DR,SR 2 **** A DR←DR+SR00000001 DRSR SUB DR,SR 2 **** A DR←DR-SR00000010 DRSR AND DR,SR 2 **** A DR←DR and SR 00000011 DRSR CMP DR,SR 2 **** A DR-SR00000100 DRSR XOR DR,SR 2 * ???A DR←DR xorSR 00000101 DRSR TEST DR,SR 2 * *** A DR and SR 00000110 DRSR OR DR,SR 2 * ???A DR←DR or SR 00000111 DRSR MVRR DR, SR 2 ????A DR←SR00001000 DR0000 DEC DR 1 **** A DR←DR-100001001 DR0000 INC DR 1 **** A DR←DR+100001010 DR0000 SHL DR 1 * ???A DR,C←DR*2 00001011 DR0000 SHR DR 1 * ???A DR,C←DR /201000001 OFFSET JR ADR 1 ????A 无条件跳转01000100 OFFSET JRC ADR 1 ????A C=1 时跳转01000101 OFFSET JRNC ADR 1 ????A C=0 时跳转01000110 OFFSET JRZ ADR 1 ????A Z=1 时跳转01000111 OFFSET JRNZ ADR 1 ????A Z=0 时跳转 基本指令系统指令格式汇编语句个数CZVS 类型功能说明10000000 0000000 JMPA ADR 1 ????B 无条件跳到ADRADR(16位)10000001 DRSR LDRR DR,[SR] 2 ????B DR←[SR]10000010 I/O PORT IN I/O PORT 1 ????B R0←[I/O PORT] 10000011 DRSR STRR [DR],SR 2 ????B [DR]←SR 10000100 00000000 PSHF 0 ????B FLAG 入栈10000101 0000SR PUSH SR 1 ????B SR 入栈10000110 I/O PORT OUT I/O PORT 1 ????B [I/O PORT]←R0 10000111 DR0000 POP DR 1 ????B 出栈到DR10001000 DR0000 MVRD DR, DATA 2 ????B DR←DATADATA(16位)10001100 00000000 POPF 0 * ***B FLAG←出栈10001111 00000000 RET 0 ????B 子程序返回11001110 00000000 CALA ADR 1 ????D 调用子程序ADR(16位) 图1 教学计算机的基本指令系统
实验注意事项
1.连接电源线和通讯线前TEC-XP+实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP+实验系统上的芯片和PC机的串口造成损害。
2.六个黑色控制开关的功能示意图如下:(开关拨到上方表示为1,拨到下方为0,x表
示任意)
单步
手动置指令
组合逻辑
联机
8位
FPGA
上面 下面
连续
从内存读指令 微程序
脱机
16位
MACH
3.几种常用的工作方式(开关拨到上方表示为1,拨到下方为0,x表示任意)
工作方式 连续运行程序、组合逻辑控制器、联机、16位机、MACH 连续运行程序、微程序控制器、联机、16位机、MACH 六个拨动开关 001100 000100 单步、手动置指令、组合逻辑控制器、联机、16位机、MACH 111100 单步、手动置指令、微程序控制器、联机、16位机、MACH 110100 16位机、脱机运算器实验、MACH 连续运行程序、联机、16 位机、FPGA 1XX000 00X101 4.在拔插实验箱上的任何器件和连线时,都要关闭实验箱电源,否则可能会烧坏实验箱的器件。
实验步骤
1.接通教学机电源。
2.将教学机左下方的6个拨动开关置为111100(单步、手动置指令、组合、联机、16位、MACH)。
3.按一下“RESET”按键。
4.通过16位的数据开关SWH、SWL置入16位的指令操作码。 5.在单步方式下,通过指示灯观察各类基本指令的节拍。 ? A组指令
(1)选择基本指令的A组指令中的ADD指令,观察其节拍流程:
① 置拨动开关SW=00000000 00000001;(表示指令ADD R0,R1,是ADD R0,R1的机器码表示)
② 按RESET按键;节拍指示灯T3——T0显示1000;(本拍在第1次复位后才会执行) ③ 按START按键;节拍指示灯T3——T0显示0000;(以上两拍,为公共节拍)