微程序控制器实验
实验环境
计算机组成原理实验环境
实验目的
- 掌握微程序控制器的组成原理和工作过程。
- 理解微指令和微程序的概念,理解微指令与指令的区别与联系。
- 掌握指令操作码与控制存储器中微程序的对应方法。熟悉根据指令操作码从控制存储器中读出微程序的过程。
实验要求
- 做好实验预习,读懂实验电路图,熟悉实验元器件的功能特性和使用方法。
- 按照实验内容与步骤的要求,独立思考,认真仔细地完成实验。
- 写出实验报告。
实验电路
???????本实验使用的主要元器件有: 4 位数据锁存器 74LS175,2Kx8 EPROM2716,时序发生器,或门、与门、开关、指示灯等。芯片详细说明请见附录。 ???????图 8.1 为实验电路图,其中3片EPROM2716构成控制存储器,1片74LS175为微地址寄存器,与74LS175 数据输入引脚相连的输入信号线及6个门电路构成了地址转移逻辑。注意,2716输出信号中带后缀“#”的信号为低电平有效信号,不带后缀“#”的信号为高电平有效信号。为简化电路结构,本实验没有使用微命令寄存器,并且在虚拟实验系统中,将3片EPROM组合为一个虚拟EPROM组件。本实验使用的EPROM和时序发生器一样, 均为虚拟实验系统提供的虚拟组件。
???????实验电路中涉及的主要控制信号如下:
- CE :2716 芯片的片选信号。为 0 时 2716 正常工作,实验中将其接地,恒置为 0 。
- OE :2716 读信号。 CE = 0 , OE = 0 时为读操作,实验中将其接地,恒置为 0 。
- CLR : 芯片 74LS175 的清零信号,低电平有效。
- T1:微地址加载信号,在 T1 的上升沿将微地址锁存到 74LS175 。
- IR5 ~IR7 指令操作码的输入信号,这几条信号线本应与指令寄存器的输出引脚相连,但在本实验中,与数据开关相连,指令操作码通过数据开关手动设置。
实验原理
???????在存储逻辑型计算机中,一条机器指令对应了一个微程序,不同的机器指令对应了不同的微程序,执行一条指令其实就是运行其对应的一个微程序,微程序由微指令组成,是微指令的有序集合。微程序是在设计一台计算机时就预先设计好并且固化在只读存储器中的,以后每当要执行某条指令时,只需找到并运行其对应的微程序。 ???????控制存储器专门用于存放微程序,在本实验中,控制存储器由 3 片 EPROM2716 组成,为了减少连线的复杂度,虚拟实验系统把三片 EPROM2716 集成到一片芯片上,因此,本实验所用到的是 EPROM2716 x 3 (2Kx24位),其中地址输入引脚为 A10 ~ A0 ,实验中仅用到 A3 ~ A0 ,高 7 位地址线 A4 ~ A10 接地,实际存储容量为 16 x 3 字节。Q0 ~ Q23 这 24 个输出引脚与 24 位的微指令相对应。 ???????微指令格式如表 8-1 所示,采用全水平型,字长 24 位,其中操作控制字段 19 位,全部采用直接表示法,不使用译码器,每一位表示一个微命令,用于发出全机的操作控制信号;顺序控制字段 5 位,包括后续微地址 μA3 ~ μA0 和判别位 P1 ,用于决定下一条微指令的地址。 ???????地址转移逻辑电路用于产生下一条微指令的地址,主要由两级与门、或门构成。地址转移逻辑需要用到的数据信号有:后续微地址 μA3 ~ μA0 、判别位 P1 、指令操作码 IR7 ~ IR5 。当判别位 P1 = 0 时,下一条微指令的地址即为后续微地址 μA3 ~ μA0 ;当判别位 P1 = 1 时,下一条微指令的地址由指令操作码 IR7 ~ IR5 决定,一般是将操作码进行简单变换,把变换后的值作为下一条微指令的地址,此地址就是该操作码对应的微程序的入口地址。 ???????微地址寄存器 74LS175 为控制存储器提供微指令地址。当 CLR = 0 时,微地址寄存器清零,从控制存储器 00H 地址开始执行微程序,地址转移逻辑生成下一条微指令的地址。此后,每当 T1 上升沿到来时,新的微指令地址会打入微地址寄存器,控制存储器随即输出这条微指令,地址转移逻辑继而生成下一条微指令的地址。如果时序信号连续发生,微指令也会按一定的顺序接连输出。 ???????为了教学简单明了,本实验仅用到四条机器指令: IN (输入)、ADD (加法)、STA (存数)、JMP (无条件转移),操作码分别为 000、001、 010、 011,指令格式如表 8-2 所示。 ???????上述四条指令的微程序流程设计如图 8.2 所示,其中一个方框就对应一条微指令, 方框右上角的数字为八进制表示的微地址。一个方框也表示一个CPU周期,执行一条微指令需要一个CPU周期。四条指令对应四个微程序,每个微程序包括N条微指令,需要执行N个CPU周期。 ???????图 8.2 中的每条微指令都按照表 8-1 的格式编写了二进制代码,并预存在控制存储器芯片 EPROM2716 x 3 中。其中部分微指令二进制代码如表 8-3 所示,注意:微地址用八进制表示。 ?????????????????????????????????????????????????????????????????????????????图 8.3 控制器虚拟实验电路 (2) 电路预设置:将 EPROM2716 芯片的CE 、OE 、A4、A5 引脚置 0 ,微地址寄存器 74LS175 的 CLR 置 0 ,时序发生器的 Step 置 1 。 (3) 打开电源。此时由于 CLR = 0 ,微地址寄存器清零,给出微程序入口地址 00H,控制存储器随之输出第 00 号微指令。 (4) 将 CLR 设置为 1 ,否则微地址寄存器会一直处于清零状态。 (5) 将 IR7 ~ IR5 均设置为 0 ,思考并回答问题:若此时连续不断地发出时序信号,微程序的执行流程是怎样的? 00->01->02->03->10->02->03->10->02->03 (6) 连续单击 Start 按钮,观察微指令的输出顺序,检验控制存储器输出的微指令是否与表 8-3 中的相符,验证上一步预测的顺序是否正确。 (7) 设置 IR7 ~ IR5 的不同组合,用单步方式分别读出 ADD 、STA 和 JMP 三条指令的微程序,用后续微地址和判别指示灯跟踪微程序执行及转移情况,将表 8-3 中缺少的微程序代码补充完整。
微地址 微指令(对应下面的指示灯,若显示不一样样则没有成功) 04: 000001001001001111100101 05: 000001101010000111000110 06: 100101101100000011100010 07: 000001001000001111101100 14: 000001011000000111000010 15: 000001000000010111100010
(8) 思考并回答问题:若不改变控制器实验电路,IN、ADD、STA 和 JMP 四条指令的微程序在控制存储器中的存放位置是否可以随意安排?有什么限制??为什么?
具体连线步骤
实验验证
电路预设置
将 EPROM2716 芯片的 OE、CE 、A4、A5 引脚置 0 ,微地址寄存器 74LS175 的 CLR 置 0,时序发生器的 Step 置 1 。 打开电源 点击 Start 按钮,此时由于 CLR = 0,微地址寄存器清零,给出微程序入口地址 00H ,控制存储器随之输出第 00 号微指令。 将 CLR 设置为 1 (否则微地址寄存器会一直处于清零状态),点击 Start 按钮。此时显示的是图 8.3 微程序二进制代码表 01 号单元的微指令。 点击 Start 按钮。根据图 8.2 微程序流程图 02 地址,此时显示的是图 8.3 微程序二进制代码表 02 号单元的微指令。 点击 Start 按钮。根据图 8.2 微程序流程图 03 地址,此时显示的是图 8.3 微程序二进制代码表 03 号单元的微指令。 再次 Start 按钮将显示 10 地址,从这开始点击Start将进入00 -> 01 -> 02 -> 03 -> 10 -> 02 -> 03 -> 10 -> 02 -> 03 循环 后面的地址是由操作码决定的,要先改变要更改操作码, 四条机器指令: IN (输入)、ADD (加法)、STA (存数)、JMP (无条件转移),操作码分别为 000、001、 010、 011
001操作码
操作码设置为001,点击 Start 按钮。根据图 8.2 微程序流程图显示 04 地址 点击 Start 按钮,根据图 8.2 微程序流程图显示 05 地址 点击 Start 按钮,根据图 8.2 微程序流程图显示 06 地址 点击 Start 按钮,显示 11 再次点击返回到 02 单元 点击 Start 进入 02 -> 03 -> 04 -> 05 -> 06 -> 11 -> 02 循环
010操作码
更改操作码,点击 Start 按钮,根据图 8.2 微程序流程图显示 03 地址 点击 Start 按钮,根据图 8.2 微程序流程图显示 12 地址 点击 Start 按钮,根据图 8.2 微程序流程图显示 07 地址 点击 Start 按钮,根据图 8.2 微程序流程图显示 14 地址 点击 Start 按钮,根据图 8.2 微程序流程图显示 02 地址 点击 Start 按钮 进入 02-> 03->12->07->14 循环
011操作码
更改操作码,点击 Start 按钮,根据图 8.2 微程序流程图显示 13 地址 点击 Start 按钮,根据图 8.2 微程序流程图显示 15 地址 点击 Start 按钮,根据图 8.2 微程序流程图显示 02 地址 点击 Start 按钮,根据图 8.2 微程序流程图显示 03 地址 点击 Start 按钮,进入 02 -> 03 ->13 -> 15 -> 02 循环
思考与分析
- 微程序控制器主要由哪些部件组成?各部件的功能是什么?
- 本实验中,地址转移逻辑电路是怎样利用判别测试字段(P字段)实现微程序分支的?
- 如果把微程序控制器看作一个黑盒子,那么它的输入信号有哪些?这些信号是哪些部件提供给它的?她的输出信号有哪些?这些信号是发送给哪些部件的?
|