目的:
(1)掌握微程序控制器的原理
(2)掌握TEC-8模型计算机中微程序控制器的实现方法,尤其是微地址转移逻辑的实现方法
(3)理解条件转移对计算机的重要性
要求:
(1)掌握TEC-8模型计算机微控制器的工作原理。
实验任务
(1) 设置SWC/SWB/SWA,用单微指令方式跟踪控制台操作运算器组成实验等的执行过程,记录每一步的微地址uA5-uA0、P4-P0和有关控制信号的值,写出每一步所执行的微指令的作用。
(2)手工设置操作码IR7-IR4,用单微指令方式跟踪STP以外指令的执行过程,记录每一步的微地址uA5-uA0、P4-P0和有关控制信号的值,写出每步所执行的微指令的作用。
实验步骤
(1)将控制器转换开关拨到微程序位置,将编程开关设置为正常位置,将开关DP拨到向上位置。打开电源。
(2)跟踪控制台操作读寄存器、写寄存器、运算器组成实验的执行。
a) 按下CLR复位键,注意此时uA5-uA0全灭,表示当前执行的是CM中的0号微指令,按一次QD键执行一条微指令。
b) 请预先填写下表内容,在实验箱上验证所写信号是否正确。如果不一致,请分析原因。按QD结束每个操作。记录每一步的微地址uA5-uA0、P4-P0和有关控制信号的值,写出每一步所执行的微指令的作用。
操作1:读寄存器(操作模式:1011)
操作 | 当前微指令地址 | 与本操作有关的控制信号及取值 | 判定字段 | 下地址字段 | 实际下地址 | |||||
uA5-uA0 | P4 | P3 | P2 | P1 | P0 | NuA5-0 | NuA’5- NuA’0 | |||
复位 | 00H | 0 | 0 | 0 | 0 | 1 | 01H | SWC SWB SWA=011,07H | ||
实验现象解释: 此时29个控制信号处于无效状态, 在复位状态下当前微指令地址为00H,判别字段P4-P0为00001,理论下地址字段为01H,但实际上由于P0=1,SWB=1,SWA=1,根据微程序控制电路可知在P0=1,SWB=1,SWA=1的情况下NuA2=1,NuA1=1,所以实际下地址NuA5-0为000111即实际下地址为07H。 | ||||||||||
读寄存器 A/B指示灯上显示R0和R1 | 07H | RD1-0=00 RS1-0=01 SELCTL=1,STOP=1 | 0 | 0 | 0 | 0 | 0 | 06H | SWC SWB SWA=011,06H | |
实验现象解释: 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 RD1-0=00表示A口显示R0,RS1-0表示B口显示R1 |
操作2:写寄存器(操作模式:1100)
操作 | 当前微指令地址 uA5-uA0 | 与本操作有关的控制信号及取值 | 判定字段 | 下地址字段 | 实际下地址 | ||||
P4 | P3 | P2 | P1 | P0 | NuA5-0 | NuA’5- NuA’0 | |||
复位 | 00H | 0 | 0 | 0 | 0 | 1 | 01H | SWC SWB SWA=100,09H | |
实验现象解释: 此时29个控制信号处于无效状态, 在复位状态下当前微指令地址为00H,判别字段P4-P0为00001,理论下地址字段为01H,但实际上由于P0=1,SWC=1,根据微程序控制电路可知在P0=1,SWC=1的情况下NuA3=1,所以实际下地址NuA5-0为001001即实际下地址为09H。 | |||||||||
写R0 | 09H | RD1-0=00,RS1-0=01 SBUS=1,STOP=1 DRW=1 | 0 | 0 | 0 | 0 | 0 | 08H | SWC SWB SWA=100,08H |
写R1 | 08H | RD1-0=01,RS1-0=00 SBUS=1,STOP=1 DRW=1 | 0 | 0 | 0 | 0 | 0 | 0AH | SWC SWB SWA=100,0AH |
写R2 | 0AH | RD1-0=10,RS1-0=01 SBUS=1,STOP=1 DRW=1 | 0 | 0 | 0 | 0 | 0 | 0CH | SWC SWB SWA=100,0CH |
写R3 | 0CH | RD1-0=11,RS1-0=10 SBUS=1,STOP=1 DRW=1 | 0 | 0 | 0 | 0 | 0 | 00H | SWC SWB SWA=100,00H |
实验现象解释: 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。因此写R0、R1、R2、R3的地址为09H、08H、0AH、0CH; SBUS=DRW=1:允许外界数据通过数据总线输送入寄存器R0-R3 RD1-0 设置数据允许数据进入的相应寄存器。如值为00为R0,01为R1,10为R2,11为R3. RS1-0 可检查相应寄存器存入数据的正确性,如值为00为R0,01为R1,10为R2,11为R3 |
操作3:运算器组成实验(操作模式:1101)
操作 | 当前微指令地址 | 与本操作有关的控制信号及取值 | 判定字段 | 下地址字段 | 实际下地址 | ||||
uA5-uA0 | P4 | P3 | P2 | P1 | P0 | NuA5-0 | NuA’5- NuA’0 | ||
复位 | 00H | 0 | 0 | 0 | 0 | 1 | 01H | SWC SWB SWA=101,0BH | |
实验现象解释: 此时29个控制信号处于无效状态 在复位状态下当前微指令地址为00H,判别字段P4-P0为00001,理论下地址字段为01H,但实际上由于P0=1,SWB=1,SWA=1,根据微程序控制电路可知在P0=1,SWC=1,SWA=1的情况下NuA3=1,NuA1=1,所以实际下地址NuA5-0为001011即实际下地址为0BH。 | |||||||||
写R0 | 0BH | RD1-0=00,RS1-0=01 SBUS=1,DRW=1 STOP=1 | 0 | 0 | 0 | 0 | 0 | 15H | SWC SWB SWA=101,15H |
写R1 | 15H | RD1-0=01,RS1-0=00 SBUS=1,DRW=1 STOP=1 | 0 | 0 | 0 | 0 | 0 | 16H | SWC SWB SWA=101,16H |
实验现象解释: 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 SBUS=1表示数据可以送往DBUS;DRW=1表示允许数据写入到寄存器 当指示灯uA5--uA0显示0BH时,此时RD1-0=00,在数据开关S70~SD0上设置R0。设置数据正确后,按一次QD按钮,将SD7~SD0上的数据写入R0,进入下一步。 微指令地址为15H,RD1-0为01,在数据开关S70~SD0上设置R1。设置数据正确后,按一次QD按钮,将SD7~SD0上的数据写入R1。此时RS1-0=00,B端口显示R0的值。 | |||||||||
R0+R1 | 16H | RD1-0=00,RS1-0=01 ABUS=1,STOP=1 M=0,S3-S0=1001 CIN=1,LDC=LDZ=1 | 0 | 0 | 0 | 0 | 0 | 17H | SWC SWB SWA=101,17H |
实验现象解释: 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 指示灯uA5--uA0显示16H。指示灯A7~A0显示被加数R0,指示灯B0~B7显示加数R1,D7~D0指示灯显示运行结果R0+R1;M=0表示算术运算,S3~S0=1001表示进行的加法运算,CIN=1表示低进位输入,LDC=1表示保存C标志,LDZ=1表示保存Z标志;此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 | |||||||||
R0-R1 | 17H | RD1-0=00,RS1-0=01 ABUS=1,STOP=1 M=0,S3-S0=0110 CIN=1,LDC=LDZ=1 | 0 | 0 | 0 | 0 | 0 | 18H | SWC SWB SWA=101,18H |
实验现象解释: 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 指示灯uA5--uA0显示17H。指示灯A7~A0显示被减数R0,指示灯B0~B7显示减数R1,D7~D0指示灯显示运行结果R0-R1;M=0表示算术运算,S3~S0=0110表示进行的减法运算,CIN=0表示低位不进位输入,LDC=1表示保存C标志,LDZ=1表示保存Z标志;此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 | |||||||||
R0 and R1 | 18H | RD1-0=00,RS1-0=01 ABUS=1,STOP=1 M=1,S3-S0=1011 CIN=0,LDC=0,LDZ=1 | 0 | 0 | 0 | 0 | 0 | 19H | SWC SWB SWA=101,19H |
实验现象解释: 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 指示灯uA5--uA0显示18H。指示灯A7~A0显示R0,指示灯B0~B7显示R1,D7~D0指示灯显示运行结果R0 and R1;M=1表示逻辑运算,S3~S0=1011表示进行与逻辑运算,CIN=0表示低位不进位输入,LDC=0表示不保存C标志,LDZ=1表示保存Z标志;SBUS=0此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 | |||||||||
R0 or R1 | 19H | RD1-0=00,RS1-0=01 ABUS=1,STOP=1 M=1,S3-S0=1110 CIN=0,LDC=0,LDZ=1 | 0 | 0 | 0 | 0 | 0 | 00H | SWC SWB SWA=101,00H |
实验现象解释: 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 指示灯uA5--uA0显示19H。指示灯A7~A0显示R0,指示灯B0~B7显示R1,D7~D0指示灯显示运行结果R0 or R1;M=1表示逻辑运算,S3~S0=1110表示进行的或运算,CIN=0表示低位不进位输入,LDC=0表示保存C标志,LDZ=1表示保存Z标志;此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 |
(3)验证机器指令对应的微指令
将实验箱上信号C-I、Z-I、IR7-I、IR6-I、IR5-I、IR4-I与开关K6-K0接起来,用单微指令方式跟踪STP以外指令的执行过程,记录每一步的微地址uA5-uA0、P4-P0和有关控制信号的值,写出每一步所执行的微指令的作用。
要求:至少跟踪3条机器指令的微指令,表格行数根据具体指令的微指令条数进行增删。
指令1: JMP 操作码IR7-IR4 = 1001 | |||||||||
操作 | 当前微指令地址 | 与本操作有关的控制信号及取值 | 判定字段 | 下地址字段 | 实际下地址 | ||||
uA5-uA0 | P4 | P3 | P2 | P1 | P0 | NuA5-0 | NuA’5- NuA’0 | ||
复位 | 00H | 0 | 0 | 0 | 0 | 1 | 01H | SWC SWB SWA=000,01H
| |
取指 | 01H | STOP=1, PCINC=1 | 0 | 0 | 0 | 1 | 0 | 20H | SWC SWB SWA=000,29H |
实验现象解释: 此时29个控制信号处于无效状态, 复位的微地址为00H;P0=1表示根据后继微地址NuA5~NuA0=01H和模式开关SWC、SWB、SWA=000确定下一条微指令的地址是01H。然后按QD,进入下一条微指令。 P1=1表示根据后继微地址NuA5-0=20H和指令操作码IR7~IR4= 1001确定下一条微指令的地址是29H。然后按QD,进入下一条微指令。 | |||||||||
执行第1步: 进入ADD | 21H | S3-S0=1001,CIN=1 LDC=1,LDZ=1,ABUS=1,DRW=1 | 1 | 0 | 0 | 0 | 0 | 01H | SWC SWB SWA=000,01H |
实验现象解释: P4=1表示根据后继微地址NuA5-0=01H和中断信号INT=0确定下一条微指令的地址是01H. |
指令2:JC 操作码IR7-IR4 =0111 | |||||||||
操作 | 当前微指令地址 | 与本操作有关的控制信号及取值 | 判定字段 | 下地址字段 | 实际下地址 | ||||
uA5-uA0 | P4 | P3 | P2 | P1 | P0 | NuA5-0 | NuA’5- NuA’0 | ||
执行第1步: 进入JZ | 28H | 0 | 1 | 0 | 0 | 0 | 12H | SWC SWB SWA=000,13H | |
实验现象解释: 地址28H中没任何控制信号,当P3=1时,根据下地址字段NuA5-0和结果为0标志Z确定下一条微指令的地址。此时设Z=1,根据微程序流程图可知,下一条地址为13H。 | |||||||||
执行第2步: 读出指令JC | 13H | PCADD=1 | 1 | 0 | 0 | 0 | 0 | 01H | SWC SWB SWA=000,01H |
实验现象解释: 该指令设置PCADD=1让PC值加上相对转移量。 P4=1表示根据后继微地址NuA5-0和中断信号INT确定下一条微指令的地址;此时地址字段NuA5~NuA0=01且INT=0,根据微程序控制器电路图可以得出下一条微指令地址是01H. |
指令3:ST 操作码IR7-IR4 =0110 | |||||||||
操作 | 当前微指令地址 | 与本操作有关的控制信号及取值 | 判定字段 | 下地址字段 | 实际下地址 | ||||
uA5-uA0 | P4 | P3 | P2 | P1 | P0 | NuA5-0 | NuA’5- NuA’0 | ||
执行第1步: 读入指令ST | 26H | M=1、S=1111 ABUS=1、LAR=1 | 0 | 0 | 0 | 0 | 0 | 10H | SWC SWB SWA=000,10H |
实验现象解释: ST指令的第一步地址为26H,置M=1、S=1111、ABUS=1、LAR=1,判定字段全为0,表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 | |||||||||
执行第2步: | 10H | M=1、S=1010 ABUS=1、MEMW=1 | 1 | 0 | 0 | 0 | 0 | 01H | SWC SWB SWA=000,01H |
实验现象解释: ST指令的第二步地址为10H,置M=1、S=1010、ABUS=1、MEMW=1,P4=1表示根据后继微地址NuA5-0和中断信号INT确定下一条微指令的地址;此时地址字段NuA5~NuA0=01且INT=0,根据微程序控制器电路图可以得出下一条微指令地址是01H. |