logo资料库

计算机组成训练——微程序控制器实验报告.doc

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
实验报告 1、实验名称:微程序控制器实验报告 2、实验目的:通过看懂教学计算机中已经设计好的并正常运行的数条基本指令的功能、格 式和执行流程,然后自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、 调试正确。其最终要达到的目的是:1、深入理解计算机微程序控制器的功能、组成知识;2、 深入的学习计算机各类典型指令的执行流程;3、对指令格式、寻址方式、指令系统、指令 分类等建立具体的总体概念;4、学习微程序控制器的设计过程和相关技术。 3、实验内容: 综合型实验 1: (1)思考题: 1. 在进行上面的实验时,你可能已经发现不同的指令在执行的过程中都会经过 相同的微地址,也就是说,不同指令的微程序也有公用部分。请你找出这些公共 的微指令,说明它们所做的工作。 答:(1)微址为 00 下址为 00 的微指令,所做的工作是:给出微程序首地址并 在启动时执行。 (2)微址为 01 下址为 00 的微指令,所做的工作是:将 PC 寄存器中的内容送 入地址寄存器中,PC 自加 1。 (3)微址为 30 下址为 3A 的微指令,所做的工作是:完成检查中断检查。 2. 总结机器指令和微程序之间的关系 答:(1)一条机器指令对应一个微程序,这个微程序由若干条微指令构成。即一 条机器指令所完成的操作划分成若干条微指令来完成,由微指令编成的微程序进 行解释和执行 (2)从指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前 者与内存储器有关,而后者与控制存储器有关。 (3)机器指令是把程序员编写的程序经编译以后成为机器能执行的以二进制码 形式表示的指令;在微程序控制的计算机中通过执行一串微指令完成一条指令的 功能 3. 总结指令的一般流程
设计型实验 1: 设计几条指令的功能、格式和执行流程,设计每条微指令各字段的具体编码值,包括控 制码的各字段、下地址字段、形成下址用到的条件码。可以从给出的 19 条扩展指令中 任意选择,例如 ADC、STC、LDRA、CALR 等指令,当然也可以设计与实现其它的指 令,包括原来已经实现的基本指令(要变换为另外一个指令操作码)或自己确定的指令。 写出指令格式、指令功能和执行流程及对应的微程序。扩展几条指令,确定各步的控制 信号。 指令 操作功 能 C=1 DR+SR+ CF→DR PC→AR PC+1→ PC STC ADC LDRA DR, [ADR ] 微 址 57 50 下 址 30 30 CI3~0 0011 0011 SCC 3~0 0000 0000 MR W 100 100 I2~0 I8~6 I5~3 B 口 A 口 SST 000 001 001 011 000 000 0000 1000 0000 1000 100 001 SSH SCI 000 010 DC 2 000 000 DC1 000 000 5B 00 1110 0000 100 011 010 000 0101 0101 000 001 011 000 MEM → 5C 1C 0011 0000 001 111 001 000 0000 0000 000 000 011 000 AR MEM → 1C 30 0011 0000 001 111 011 000 1000 0000 000 000 000 000
DR 设计型实验 2 设计一条新的机器指令,该指令的功能是把一个通用寄存器的内容与一个内存单 元 ADR1 中的内容相或,结果保存到另外一个内存单元 ADR2 中,即:[ADR2] [ADR1] ∨ SR 1、写出你实验课的分组组号; 36 2、写出你组要求使用的操作码和微程序首地址; 56(H) 66(H) 3、写出新指令的指令格式; 双字长指令: 1-8 位操作码:0101 0001; 9-12 位 DR:0000; 13-16 位 SR:0000; 17-32 位 ADR1:0000 0000 0000 0000; 33-48 位 ADR2:0000 0000 0000 0000. 4、写出新指令的每一个执行步骤的说明; (1)、SR->Q: 将 SR 寄存器中的数据转移到 Q 寄存器中; (2)PC->AR,PC+1->PC: 读指令(ADR1); (3)、MEM->AR: 读内存,输出 MEM 的内容(【ADR1】)到 AR 寄存器; (4)、MEM+Q->Q: 将 MEM 中的数据(【ADR1】)与 Q 寄存器中数据(即 SR 的 值)求和,将结果存在 Q 寄存器中; (5)、PC->AR,PC+1->PC: 读指令(ADR2); (6)、MEM->AR: 读内存,输出 MEM 的内容(【ADR2】)到 AR 寄存器; (7)、Q->MEM:将 Q 最终的值送入内存(ADR2)中。 5、写出完整的微程序; 指 操作功能 微 下 令 址 址 CI3~ 0 SCC 3~0 MR W I2~0 I8~6 I5~3 B 口 A 口 SST SSH Sci DC 2 DC1 1 2 3 4 5 SR->Q PC->AR, PC+1->P C MEM->A R MEM V Q ->Q PC->AR, PC+1->P 66 67 00 00 1110 0000 100 100 000 000 0000 0000 000 000 000 000 1110 0000 100 011 010 000 0101 0101 000 001 011 000 68 00 1110 0000 001 111 001 000 0000 0000 000 000 011 000 69 00 1110 0000 001 110 000 011 0000 0000 001 000 000 000 6a 00 1110 0000 100 011 010 000 0101 0101 000 001 011 000
C 6 7 6b MEM->A R Q->MEM 6c 00 30 1110 0000 001 111 001 000 0000 0000 000 000 011 000 0011 0000 000 010 001 000 0000 0000 000 000 000 001 6、写出对每一条微指令控制信号和下地址的解释说明; (1) SR->Q 微址(66H):入口地址为 66H; 下址(00H):给出监控程序的首地址和禁止中断,在教学机加点启动时被 执行一次,正常运行期间不再使用; CI3-0(1110):顺序执行; SCC3-0(0000):必转; MRW(100):无读写,既不读写内存也不读写接口; I2-0(000):SR 的数据来源是 A 口,另一个数据来源是 Q; I8-6(000):输出 SR 寄存器的值到 Q 寄存器; I5-3(000):加法功能; SST(000):CZVS 的值保持不变; SSH SCI(000):ADD; B 口(0000)A 口(0000):R0,R0; DC2(000):不操作; DC1(000):送开关内容到内部总线。 (2) PC->AR,PC+1->PC: 微址(67H):入口地址为 67H; 下址(00H):给出监控程序的首地址和禁止中断,在教学机加点启动时被 执行一次,正常运行期间不再使用; CI3-0(1110):顺序执行; SCC3-0(0000):必转; MRW(100):无读写,既不读写内存也不读写接口; I2-0(011):B 口读入 PC 的值; I8-6(010):A 口与输出 Y 相连; I5-3(000):加法功能; SST(000):CZVS 的值保持不变; SSH SCI(001):进位; B 口(0101):PC 为 R5,B 口内容+1 送到 B 口; A 口(0101):输出 A 口内容到 AR; DC2(011):地址寄存器接收; DC1(000):送开关内容到内部总线。 (3) MEM->AR 微址(68H):入口地址为 68H; 下址(00H):给出监控程序的首地址和禁止中断,在教学机加点启动时被 执行一次,正常运行期间不再使用;
CI3-0(1110):顺序执行; SCC3-0(0000):必转; MRW(001):内存读; I2-0(111):数据来源是 MEM; I8-6(001):只输出 MEM,没有送到 B 口和 Q; I5-3(000):加法功能; SST(000):CZVS 的值保持不变; SSH SCI(000):ADD; B 口(0000):R0; A 口(0000):R0; DC2(011):地址寄存器接收; DC1(000):送开关内容到内部总线。 (4) MEM|Q->Q 微址(69H):入口地址为 69H; 下址(00H):给出监控程序的首地址和禁止中断,在教学机加点启动时被 执行一次,正常运行期间不再使用; CI3-0(1110):顺序执行; SCC3-0(0000):必转; MRW(001):内存读; I2-0(110):执行或操作; I8-6(000):输出送到 Q 寄存器; I5-3(011):或运算; SST(000):CZVS 的值保持不变; SSH SCI(000):ADD; B 口(0000):R0; A 口(0000):R0; DC2(000):不操作; DC1(000):送开关内容到内部总线。 (5) PC->AR,PC+1->PC 微址(6aH):入口地址为 6aH; 下址(00H):给出监控程序的首地址和禁止中断,在教学机加点启动时被 执行一次,正常运行期间不再使用; CI3-0(1110):顺序执行; SCC3-0(0000):必转; MRW(100):无读写,既不读写内存也不读写接口; I2-0(011):B 口读入 PC 的值; I8-6(010):A 口与输出 Y 相连; I5-3(000):加法功能; SST(000):CZVS 的值保持不变; SSH SCI(001):进位; B 口(0101):PC 为 R5,B 口内容+1 送到 B 口; A 口(0101):输出 A 口内容到 AR; DC2(011):地址寄存器接收; DC1(000):送开关内容到内部总线。
(6)MEM ->AR 微址(6bH):入口地址为 6bH; 下址(00H):给出监控程序的首地址和禁止中断,在教学机加点启动时被 执行一次,正常运行期间不再使用; CI3-0(1110):顺序执行; SCC3-0(0000):必转; MRW(001):内存读; I2-0(111):数据来源是 MEM; I8-6(001):只输出 MEM,没有送到 B 口和 Q; I5-3(000):加法功能; SST(000):CZVS 的值保持不变; SSH SCI(000):ADD; B 口(0000):R0; A 口(0000):R0; DC2(011):地址寄存器接收; DC1(000):送开关内容到内部总线。 (7)Q->MEM 微址(6cH):入口地址为 6cH; 下址(30H):中断执行入口地址; CI3-0(0011):中断程序到下址 30; SCC3-0(0000):必转; MRW(000):写内存; I2-0(010):读寄存器 Q 中的数据; I8-6(001):只输出 MEM,没有送到 B 口和 Q; I5-3(000):加法功能; SST(000):CZVS 的值保持不变; SSH SCI(000):ADD; B 口(0000):R0; A 口(0000):R0; DC2(000):不操作; DC1(001):送 ALU 输出到内部总线。 7、要在模拟程序上实现扩展和调试验证。给出进行扩展指令和验证调试过程的 截图;(注意:实验课不同分组的操作码和微程序首地址不同)
4、实验体会及总结 这次实验让我收获颇多。在试验过程中遇到了很多问题,比如刚开始的时候 不是很明白操作码、控制信号是怎样影响指令的执行,以及各种控制信号的具体 含义。但通过查阅实验指导书,与同学进行讨论之后最终顺利的完成了实验。在 整个设计、调试的过程中,我对微程序控制器的理解更加深入,对其整体架构、 工作流程有了新的认识。我相信,这对于我理解计算机组成原理理论课很有帮助, 也让我今后的学习充满信心。
分享到:
收藏