目录
第一章 微程序控制器的基本原理 2
1.1 微程序控制器的原理 2
1.2 微程序控制器的设计 2
第二章 设计环境简介 3
2.1 COP2000模型机的结构 3
2.2 COP2000虚拟软件介绍 3
2.3 模型机的指令集和微指令集 4
第三章 指令系统的设计 5
3.1 指令系统的设计思想 5
3.2 水平型微指令格式设计 5
3.3 微程序的设计 5
第四章 指令系统的测试 6
第五章 心得体会 9
参考文献 9
第一章 微程序控制器的基本原理
1.1 微程序控制器的原理
先是数据传送:用立即数寻址的方式把立即数#00H送到累加器A中;用存储器间接寻址把累加器A里的数据送到存储器里;用立即数寻址的方式把立即数#23H送到寄存器R0中;用累加器寻址的方式把累加器中的数据输出。数据运算:对累加器的数进行取反(CPL),此为累加器寻址;把累加器中的数据加上寄存器中的数据(ADD),此为寄存器寻址;把累加器中的数据减去地址在寄存器中的数据(SUB),此为寄存器间接寻址;把累加器中数据与存储器中数据67H进行与运算(AND),此为存储器直接寻址。无条件转移:用存储器直接寻址
的方式把存储器中的数据进行转移(JMP)。
1.2 微程序控制器的设计
(1)设计微程序
设计微程序,就是确定微程序流程图,也就是控制算法流程图。微程序流程图中的一条微指令,相当于ASM流程图中的一个状态。
由于控制存储器有足够的容量,状态分配和状态化简这两种传统技术在微程序设计中已失去意义。控制存储器中一个地址转移到下一个地址是随意的,灵活的。因此增加微指令或减少微指令不必改动硬件。总之,以微指令结构为基础,就可以设计任何所要求的微程序,可长可短,灵活自如,且能实现多路并行转移,而不受“状态分配”的限制。
(2)确定微指令格式
微指令格式中的操作控制字段取决于执行部件的子系统需要多少微指令。假定采用直接控制方式,执行部件需要10个微命令,则操作控制字段需要10位。
测试判别字段取决于微程序流程图中有多少处分支转移。假定有3处分支,则测试判别字段需要3位。
设计微程序,就是确定微程序流程图,也就是控制算法流程图。微程序流程图中的一条微指令,相当于ASM流程图中的一个状态。
由于控制存储器有足够的容量,状态分配和状态化简这两种传统技术在微程序设计中已失去意义。控制存储器中一个地址转移到下一个地址是随意的,灵活的。因此增加微指令或减少微指令不必改动硬件。总之,以微指令结构为基础,就可以设计任何所要求的微程序,可长可短,灵活自如,且能实现多路并行转移,而不受“状态分配”的限制。
(2)确定微指令格式
微指令格式中的操作控制字段取决于执行部件的子系统需要多少微指令。假定采用直接控制方式,执行部件需要10个微命令,则操作控制字段需要10位。
测试判别字段取决于微程序流程图中有多少处分支转移。假定有3处分支,则测试判别字段需要3位。
下址字段取决于微程序流程图的规模。假定微程序共用50条微指令,则下址字段至少需要6位。这是因为ROM地址译码时,26=64,6位地址可容纳64条微指令。
(3)将微程序编译成二进制代码
根据确定的微指令格式,将微程序流程图中的每一条指令编译成二进制代码,这项工作可由人工完成。
(4)微程序写入控制存储器
将二进制代码的微程序写入E2PROM中。
(5)设计硬件电路
硬件电路包括微地址寄存器、微命令寄存器和地址转移逻辑三部分。前两部分可选用适当的标准寄存器芯片(如74LS36、74LS273等)。地址转移逻辑的输入是测试判断标志Pi、状态条件和时间因素Tj(读ROM时间),先写出逻辑表达式,然后用门电路芯片实现。
(3)将微程序编译成二进制代码
根据确定的微指令格式,将微程序流程图中的每一条指令编译成二进制代码,这项工作可由人工完成。
(4)微程序写入控制存储器
将二进制代码的微程序写入E2PROM中。
(5)设计硬件电路
硬件电路包括微地址寄存器、微命令寄存器和地址转移逻辑三部分。前两部分可选用适当的标准寄存器芯片(如74LS36、74LS273等)。地址转移逻辑的输入是测试判断标志Pi、状态条件和时间因素Tj(读ROM时间),先写出逻辑表达式,然后用门电路芯片实现。
第二章 设计环境简介
2.1 COP2000模型机的结构
2.2 COP2000虚拟软件介绍
COP2000软件支持WINDOWS95/98/2000/XP/ME,集成编辑器、汇编器、调试器。独一无二的“模拟调试”能力,可完全模拟实验机的所有功能。强大的功能、友好的界面定会成为计算机组成原理实验系统的行业标准。
COP2000拥有很多先进的功能特点:多媒体教学、模拟调试功能、逻辑分析仪、微程序及跟踪器等。
设计好指令系统后,将其以INS为后缀保存下来。同时把根据指令功能所编的程序在源程序
窗口输入,并将其另存为以ASM为后缀的文件。做好了这些,对程序进行汇编,进入调试过程。
按快捷图标的F7,执行“单微指令运行”功能,观察执行每条指令时,数据是否按照设计的要求流动,寄存器的输入/输出状态是否符合设计要求,各控制信号的状态,PC及uPC如何工作是否正确。这样,通过以上步骤对所设计的程序进行调试和修改,就能将所设计的程序一步步完善和正确起来。
2.3 模型机的指令集和微指令集
助记符 机器码 说明
MOV A ,#II 011111XX 7C-7F 立即数寻址
MOV MM,A 100010XX 88-8B 存储器间接寻址
MOV R?,#II 100011XX 8C-8F 立即数寻址
CPL A 111001XX E4-E7 将累加器A的值取反
汇编语言清华大学出版社ADD A ,R? 000100XX 10-13 寄存器寻址
SUB A ,@R? 001101XX 34-37 寄存器间接寻址
AND A ,MM 010110XX 58-5B 存储器直接寻址
OUT 110001XX C4-C7 输出运算结果
JMP MM 101011XX AC-AF 无条件跳转
第三章 指令系统的设计
3.1 指令系统的设计思想
编写一个指令系统,根据所编写的指令的功能来设计相应的微程序。首先利用MOV传送指令来给寄存器和累加器传送立即数,实现立即数寻址;利用寄存器寻址方式,用ADDC指令对两者进行相加运算;利用寄存器间接寻址方式,用SUB指令实现减运算;利用累加器寻址方式,用CPL指令实现对累加器寻址;利用存储器寻址方式,用JMP指令实现程序的无条件跳转。这样,所要设计的指令系统的功能就全部实现了。
3.2 水平型微指令格式设计
一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令.水平型微指令的一般格式如下:
控 制 字 段 | 判别测试字段 | 下地址字段 |
按照控制字段的编码方法不同,水平型微指令又分为三种:一种是全水平型(不译法)微指令,第二种是字段译码法水平型微指令,第三种是直接和译码相混合的水平型微指令。
3.3 微程序的设计
助记符 机器码 说明
MOV A ,#II 011111XX 7C-7F 立即数寻址
MOV MM,A 100010XX 88-8B 存储器间接寻址
MOV R?,#II 100011XX 8C-8F 立即数寻址
CPL A 111001XX E4-E7 将累加器A的值取反
ADD A ,R? 000100XX 10-13 寄存器寻址
SUB A ,@R? 001101XX 34-37 寄存器间接寻址
AND A ,MM 010110XX 58-5B 存储器直接寻址
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论