实验3 微程序控制器实验 |
您所在的位置:网站首页 › 白板笔实验过程 › 实验3 微程序控制器实验 |
一、实验类型 本实验为原理型+分析型 二、实验目的 (1)掌握微程序控制器的原理 (2)掌握TEC-8模型计算机中微程序控制器的实现方法,尤其是微地址转移逻辑的实现方法 (3)理解条件转移对计算机的重要性 三、实验设备 (1)TEC-8实验系统 四、实验电路 (1)TEC-8模型计算机框图 (2)微指令格式 (3)微程序控制电路图 (4)操作模式 操作模式 DP SWC SWB SWA 实验功能 1 0 0 0 启动程序运行 1 0 0 1 写存储器 1 0 1 0 读存储器 1 0 1 1 读寄存器 1 1 0 0 写寄存器 1 1 0 1 运算器组成实验 1 1 1 0 双端口存储器实验 1 1 1 1 数据通路实验 五、实验要求 (1)掌握TEC-8模型计算机微控制器的工作原理。 (2)做好实验预习,按要求预先填写实验步骤中各表格。 六、实验任务 (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 RD1-RD0=00 RS1-RS0=11 0 0 0 0 1 01H SWC SWB SWA=011,07H 实验现象解释: 复位的微地址为00H;P0=1表示根据后继微地址NuA5~NuA0和模式开关SWC、SWB、SWA确定下一条微指令的地址。此时下地址字段NuA5~NuA0=01H、SWC SWB SWA=011,根据微程序控制器电路图可以得出下一条微指令地址是07H。然后按QD,进入下一条微指令。 读寄存器 A/B指示灯上显示R0和R1 07H RD1-RD0=00 RS1-RS0=01 STOP=1 SELCTL=1 0 0 0 0 0 06H SWC SWB SWA=011,06H 读寄存器 A/B指示灯上显示R2和R3 06H RD1-RD0=10 RS1-RS0=11 STOP=1 SELCTL=1 0 0 0 0 0 00H SWC SWB SWA=011,00H 实验现象解释: 由于指示灯只有两个但寄存器有4个,所以要读两次,第一次读R0和R1,第二次读R2和R3,指令地址分别为07H和06H;RD1-RD0、RS1-RS0:分别控制A、B指示灯显示的值; 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 操作2:写寄存器(操作模式:1100) 操作 当前微指令地址 uA5-uA0 与本操作有关的控制信号及取值 判定字段 下地址字段 实际下地址 P4 P3 P2 P1 P0 NuA5-0 NuA’5- NuA’0 复位 00H RD1-RD0=00 RS1-RS0=11 0 0 0 0 1 01H SWC SWB SWA=100,09H 实验现象解释: 复位的微地址为00H;P0=1表示根据后继微地址NuA5~NuA0和模式开关SWC、SWB、SWA确定下一条微指令的地址。 此时下地址字段NuA5~NuA0=01H、SWC SWB SWA=100,根据微程序控制器电路图可以得出下一条微指令地址是09H。 然后按QD,进入下一条微指令。 写R0 09H SBUS=1 RD1-RD0=00 RS1-RS0=01 SELCTL=1 DRW=1, STOP=1 0 0 0 0 0 08H SWC SWB SWA=100,08H 写R1 08H SBUS=1 RD1-RD0=01 RS1-RS0=00 SELCTL=1 DRW=1, STOP=1 0 0 0 0 0 0AH SWC SWB SWA=100,0AH 写R2 0AH SBUS=1 RD1-RD0=10 RS1-RS0=01 SELCTL=1 DRW=1, STOP=1 0 0 0 0 0 0CH SWC SWB SWA=100,0CH 写R3 0CH SBUS=1 RD1-RD0=11 RS1-RS0=10 SELCTL=1 DRW=1, STOP=1 0 0 0 0 0 00H SWC SWB SWA=100,00H 实验现象解释: 写R0写R1写R2写R3的操作指令地址为09H、08H、0AH、0CH; SBUS=DRW=1:允许外界数据进入R0-R3寄存器 RD1-RD0:决定外界的值进入到哪个寄存器; 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 操作3:运算器组成实验(操作模式:1101) 操作 当前微指令地址 与本操作有关的控制信号及取值 判定字段 下地址字段 实际下地址 uA5-uA0 P4 P3 P2 P1 P0 NuA5-0 NuA’5- NuA’0 复位 00H RD1-RD0=00 RS1-RS0=11 0 0 0 0 1 01H SWC SWB SWA=101,0BH 实验现象解释: 复位的微地址为00H;P0=1表示根据后继微地址NuA5~NuA0和模式开关SWC、SWB、SWA确定下一条微指令的地址。 此时下地址字段NuA5~NuA0=01H、SWC SWB SWA=100,根据微程序控制器电路图可以得出下一条微指令地址是09H。 然后按QD,进入下一条微指令。 写R0 0BH RD1-RD0=00 RS1-RS0=01 STOP=1 DRW=1 SUBS=1 0 0 0 0 0 15H SWC SWB SWA=101,15H 写R1 15H RD1-RD0=01 RS1-RS0=00 STOP=1 DRW=1 SUBS=1 0 0 0 0 0 16H SWC SWB SWA=101,16H 实验现象解释: 当指示灯uA5--uA0显示0BH时,在数据开关S70~SD0上设置R0。在数据总线DBUS指示灯D7~D0 上可以看到数据是否设置正确,发现错误需及时改正。设置数据正确后,按一次QD按钮,将SD7~SD0上的数据写入R0,进入下一步。设置R0时,74LS181不需要运转,因此它的指示灯全为0;SBUS=1表示数据可以送往DBUS;DRW=1表示允许数据写入到寄存器;ABUS=0表示禁止将ALU运算结果送往DBUS;RD1-RD0值取00表示选择R0的数据送往A端口,RS1-RS0值取01表示选择R1的数据送往B端口。 在数据开关S70~SD0上设置R1。设置数据正确后,按一次QD按钮,将SD7~SD0上的数据写入R1,进入下一步。指示灯uA5--uA0显示15H,这时R0已经写,在指示灯B7~B0上可以观察到设置的R0数值;设置R1时,74LS181不需要运转,因此它的指示灯全为0;SBUS=1表示数据可以送往DBUS;DRW=1表示允许数据写入到寄存器;ABUS=0表示禁止将ALU运算结果送往DBUS;RD1-RD0值取01表示选择R1的数据送往A端口,RS1-RS0值取00表示选择R0的数据送往B端口。 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 R0+R1 16H RD1-RD0=00 RS1-RS0=01 M=0 S3-S0=1001 CIN=1 LDC=1 LDZ=1 SBUS=0 DRW=0 ABUS=1 STOP=1 SETCTL=1 0 0 0 0 0 17H SWC SWB SWA=101,17H 实验现象解释: 指示灯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标志;SBUS=0表示数据不可以送往DBUS;DRW=0表示不允许数据写入到寄存器,此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 R0-R1 17H RD1-RD0=00 RS1-RS0=01 M=0 S3-S0=0110 CIN=0 LDC=1 LDZ=1 SBUS=0 DRW=0 ABUS=1 STOP=1 SETCTL=1 0 0 0 0 0 18H SWC SWB SWA=101,18H 实验现象解释: 指示灯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标志;SBUS=0表示数据不可以送往DBUS;DRW=0表示不允许数据写入到寄存器,此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 R0 and R1 18H RD1-RD0=00 RS1-RS0=01 M=1 S3-S0=1011 CIN=0 LDC=0 LDZ=1 SBUS=0 DRW=0 ABUS=1 STOP=1 SETCTL=1 0 0 0 0 0 19H SWC SWB SWA=101,19H 实验现象解释: 观察并记录与运算结果和相应的指示灯信息,完成后按一次QD按钮,进入下一步。 现象解释:指示灯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表示数据不可以送往DBUS;DRW=0表示不允许数据写入到寄存器,此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 R0 or R1 19H RD1-RD0=00 RS1-RS0=01 M=1 S3-S0=1110 CIN=0 LDC=0 LDZ=1 SBUS=0 DRW=0 ABUS=1 STOP=1 SETCTL=1 0 0 0 0 0 00H SWC SWB SWA=101,00H 实验现象解释: 指示灯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标志;SBUS=0表示数据不可以送往DBUS;DRW=0表示不允许数据写入到寄存器,此时RD1-0与RS1-0信号无意义;ABUS=1表示允许将ALU运算结果送往DBUS。 判定字段全为0:表示不需要对地址字段进行判定,后继微地址NuA5-0就是下一条指令的地址。 (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 RD1-RD0=00 RS1-RS0=11 0 0 0 0 1 01H SWC SWB SWA=000,01H 取指 01H LIR=1 PCINC=1 0 0 0 1 0 20H SWC SWB SWA=000,29H 实验现象解释: 复位的微地址为00H;P0=1表示根据后继微地址NuA5~NuA0和模式开关SWC、SWB、SWA确定下一条微指令的地址。此时下地址字段NuA5~NuA0=01H、SWC SWB SWA=000,根据微程序控制器电路图可以得出下一条微指令地址是01H。然后按QD,进入下一条微指令。 P1=1表示根据后继微地址NuA5-0和指令操作码IR7~IR4确定下一条微指令的地址;此时地址字段NuA5~NuA0=20H,IR7-IR4 = 1001,根据微程序控制器电路图可以得出下一条微指令地址是29H。然后按QD,进入下一条微指令。 执行第1步: 读出JMP指令 29H M=1 S=1111 ABUS=1 LPC=1 1 0 0 0 0 01H SWC SWB SWA=000,01H 实验现象解释: 该指令置M=1、S=1111、ABUS=1、LPC=1、P4=1; P4=1表示根据后继微地址NuA5-0和中断信号INT确定下一条微指令的地址;此时地址字段NuA5~NuA0=01H,INT=0,根据微程序控制器电路图可以得出下一条微指令地址是01H. 指令2:JC 操作码IR7-IR4 =1000 操作 当前微指令地址 与本操作有关的控制信号及取值 判定字段 下地址字段 实际下地址 uA5-uA0 P4 P3 P2 P1 P0 NuA5-0 NuA’5- NuA’0 执行第1步: 进入JZ 28H Z=1 0 1 0 0 0 12H SWC SWB SWA=000,13H 实验现象解释: 地址28H中没任何控制信号,同时由P3来判定下一条微指令地址。当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和IR中的转偏移量相加。 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. 八、思考题 (1)TEC-8模型计算机的微指令地址有多少位?最多能寻址多少条微指令? 答:有6位,最多能寻址26=64条。 能对TEC-8模型计算机的微指令格式压缩长度吗?如果能,可以怎么做?答:能;方法如下: 1. 改直接表示为编码表示(压缩互斥性微指令) 1)互斥性微命令 输出信号不能同时为 1 XXX(out) 运算器的 +1, ADD, SUB 信号也不能同时给出 2)7 个out型命令有7 个状态 --> 3:8译码器 所有输出里面一定有一个为高电平,所以 000 不用 预留的一个状态表示什么信号也不给 3)加法类的运算器信号 --> 2:4译码器 +1,ADD, SUB 无信号 缩短了微指令长度,增加了硬件开销(3:8译码器,2:4译码器),硬件被所有微程序共 享,所以开销可忽略 2. 去掉下址字段,采用 μPC = μPC + 1 的方式生成微指令地址 每一条指令都有一个下址字段,对控存的浪费是巨大的 增加了一个运算器,减少了下址字段,节约了控存空间 改水平型微指令为垂直型微指令(牺牲并行性)水平型微指令: 并行操作能力强,效率高,灵活性强 微指令字较长,微程序短,控存容量大,性能佳 垂直型微指令: 子长短,微程序长,控存容量小,性能差 垂直型与指令相似,易于掌握 基本被淘汰 (3)试根据运算器组成实验的实验过程,请画出该实验的微程序流程图。
承诺: 本实验和实验报告均系本人独立完成,未抄袭他人,实验过程、数据、结果真实。 签名 时间:20 年 月 日
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |