计算机组成原理——TEC-2机微程序设计实验
《计算机组成原理》
实验名称: TEC-2机微程序设计实验 | 实验地点:10-413 |
一.实验目的比较深入透彻地学懂计算机各种指令的执行过程,以及控制器的组成、设计的具体知识。理解动态微程序设计的概念。 | |
二.实验原理1.TEC-2机的控制器部件的组成 TEC2机控制器部件的关键内容包括: (1)由7片S6116随机读写存储器芯片组成的56位字长的徽程序控制存储器,用于存放TEC-2机的微程序。其内容在刚加电时不定,加电后将首先从2片ROM(LS2716芯片)中读出固化的、用于实现53条机器指令的做程序,经组织后写入这一控制存器,这一过程称为装入微码。装入完成后,将从监控程序的零地扯执行指令,完成TEC-2机的启动过程。这之后,还可以用LDMC指令按規定的办法向控制存俙器写入新的微程序,以实现新的机器指令。从简化逻辑框图上可以看到,控制存儲器的地址为µRA9~O,读出的信息送微指令流水线寄存器PLR。 (2)做指令寄存器PLR由7片8位的寄存器芯片(6片LS374和1片LS273)组成,用于存放当前做指令的内容,更具体的说明将在后面给出。 (3)微程序定序器AM2910芯片(其内部结构、引脚信号和运行原理等稍候详细说明),是做程序控制器中非常关鍵、也是稍微难懂一点的部分。在学习中要正确理解。它的核心功能是依据机器的运行状态与当前微指令的有关内容等,正确地形成下一条微指令的地址,以保证微程序按要求的微指令序列关系自动地逐条衔接执行。 (4)程序计数器PC和当前指令地址寄存器IP,是用运算器通用寄存器组中的两个选定的寄存器R5和R6实现的,这在图上见不到。 (5)指令寄存器IR,用于存放当前正在执行的指令内容。 (6)为AM2910提供输入地址信号的配套线路,包括 ①由两片S2716ROM芯片组成的MAPROM,它变指令寄存器中的操作码转换成一段微程序的入口地; ②由片S125和1片S244组成的接收内部总线的IB9~O信号的选择门电路,它把由水平板上的开关提供的微指令地址送AM2910的地址输入端; ③由1片LS125和微指令寄存器的PLR55~48组成的一组地址输入,把当前微指令中的后续地址B55~46送入AM2910的地址输入端:请注意,1片LS125(共4位独立的输入和输出端)分成两组(每组两位)分别用于②和③两项用途。 这三组信号均为10位宽,且为互斥关系,分别由AM2910芯片提供的3个互斥控制信号/MAP、/VECT和/PL加以选通。 (7)由AM2910芯片的10位地址输出信号驱动的配套电路,包括 ①由一片LSI75和一片LS374寄存器组构成的记亿电路,用于保存当前微指令的地址,其输出仅送往显示灯部分,以显示当前微指令的地址 ②由3片LS257(四位的二选一电路)芯片构成的微控存的地址选择形成电路,它实现在AM2910的10位输出地址与存储器地址寄存器的低10位地址之间的选择,结果送往微控存的地址输入端,用于完成微控存单元的读写操作;选择信号是Smux。 ③与此有关的还有3片计数器芯片1s161组成的地址计数器电路,其输出(共10位)通过两片LS244与刚提到的3片LS257的10位输出形成“线或"关系,用计数器的一个输出端Y11实现二者之间的选择,Y11为0时,pRA9pRAO是计数器的输出信号,提供完成装入微码过程的微控存的地址,Y11为1时,表明装入微码的过程已结束,微控存的地址uRA9uRA0为3片LS257的输出信号,以完成机器指令运行过程中的微控存的读、写(写仅用于LDMC指令)操作。 (8)由2片LS2716ROM芯片组成的、固化的微码保存电路及读写控制电路。这是为机器加电后完成装入微码所配备的专用线路,除2片LにS2716外,还有前边提到的3片LS161芯片(计数器),1片LS61芯片,2片LS244、1片Gal20v8、1片LS74、1片LS23和1片LS00.其连接关系在逻辑线路图(二)的右下部分。 2.TEC-2机控制器部件实现中的一些技术问题 这部分内容叙述较多,详见《实验指导书》P96。 3.具体实现的微程序微代码 (1)加法 MEM->AR,PC+1->PC: 0000 0E00 A0B5 5402 MEM->AR: 0000 0E00 10F0 0002 MEM->Q: 0000 0E00 00F0 0000 PC->AR,PC+1->: 0000 0E00 A0B5 5402 MEM->AR: 0000 0E00 10F0 0002 MEM+Q->Q: 0000 0E01 00E0 0000 Q->MEM,CC#=0: 0029 0300 1020 0010 (2)减法 MEM->AR,PC+1->PC: 0000 0E00 A0B5 5402 MEM->AR: 0000 0E00 10F0 0002 MEM->Q: 0000 0E00 00F0 0000 PC->AR,PC+1->: 0000 0E00 A0B5 5402 MEM->AR: 0000 0E00 10F0 0002 MEM-Q->Q: 0000 0E01 02E0 0000 Q->MEM,CC#=0: 0029 0300 1020 0010 | |
三.实验内容:选定指令操作码,指令格式,设计一条指令,其功能是把用绝对地址表示的内存单元 A中的内容与内存单元B中的内容相加,结果存放在B单元中。 1、通过以下实例熟悉微指令的装入、新指令的运行及测试。 把用绝对地址表示的内存单元ADDR1的内容与内存单元ADDR2中的内容相加,结果存放到内存单元ADDR2中。 ⑴ 编写微程序 PC→AR,PC+1→PC; 0000 0E00 A0B5 5402 MEM→AR; 0000 0E00 10F0 0002 MEM→Q; 0000 0E00 00F0 0000 PC→AR,PC+1→PC; 0000 0E00 A0B5 5402 MEM→AR; 0000 0E00 10F0 0002 MEM+Q→Q; 0000 0E01 00E0 0000 Q→MEM,CC#=0;0029 0300 1020 0010 ⑵ 启动TEC-2机,进入监控程序状态,输入微程序到内存中。写入微码时,每条微指 令的前8位补全0,补齐64位。 ① 用“E”命令将微码写入内存, 本例写入0900H开始的内存区域。 >E900↙ 屏幕显示: 0900: 之后继续输入:(每个数值间用空格键分开,输入完毕用回车键) 0000 0E00 A0B5 5402 0000 0E00 10F0 0002 0000 0E00 00F0 0000 0000 0E00 A0B5 5402 0000 0E00 10F0 0002 0000 0E01 00E0 0000 0029 0300 1020 0010↙ ② 用“D”命令检查写入是否正确 >D900↙ 屏幕显示: 0900 0000 0E00 A0B5 5402 0000 0E00 10F0 0002 0908 0000 0E00 00F0 0000 0000 0E00 A0B5 5402 0910 0000 0E00 10F0 0002 0000 0E01 00E0 0000 0918 0029 0300 1020 0010 ┉ ⑶ 装入微码 将内存存放的微程序装入到控制存储器中,由专用指令LDMC完成。 ① 用“A”命令输入用于装入微程序的汇编程序 >A800↙ 0800:MOV Rl,900 ;900:微码在内存的起始地址 MOV R2,7 ;7:微程序长度 MOV R3,100 ;100:微程序在控存的起始地址(为什么是“100”) LDMC ;装入微码指令 RET ② 用“G”运行上述程序 >G800↙ 执行后,微码便装入到起始地址为0100H的微程序控制存储器中 ⑷ 输入验证程序,运行新指令 ① 用“A”命令输入程序 >A820 屏幕将显示: 0820: 之后继续输入: MOV R0,0023 MOV [A00],R0 MOV [A01],R0 0826:NOP NOP NOP 0829:RET ② 用“E”命令将 NOP填充位置改为新指令码 >E826↙ 屏幕显示: 0826: 之后输入: D400 0A00 0A01↙ ③ 用“U”命令查看输入的程序 >U820↙ 屏幕显示: 0820: 2C00 0023 MOV R0,0023 0822: 3400 0A00 MOV [0A00],R0 0824: 3400 0A01 MOV [0A01],R0 0826: D400 DW D400 0827: 0A00 ADC R0,R0 0828: 0A01 ADC R0,R1 0829: AC00 RET ┇ ④ 用“G”命令执行验证程序 >G820↙ ⑸ 观察运算结果 由“D”命令检查 0A00、0A01单元内容 >DA00↙ 屏幕显示: 0A00 0023 0046┉ 0A01单元内容为 0046,即为正确的运算结果 | |
四. 实验器材1. TEC-2机一台,电脑一台 2. TEC-2模拟软件一套 | |
五. 实验结果分析
| |
六. 实验心得
此次实验,使用TEC-2仿真机器学习了怎样设计一条微指令,实现算术和逻辑运算,学习了如何编写程序和指令。通过本次实验,能够深入透彻地学懂计算机各种指令的执行过程,以及控制器的组成、设计的具体知识。理解动态微程序设计的概念。本次实验,收获颇多,对今后的学习有较大的帮助。 | |