文章目录
微程序控制的简单模型机设计
要求
基本要求
完成一个简单主机的设计,模型机应具备如下能力:在自行设计的指令集基础上,运行自行编写的简单用户程序,实现特定运算功能。
弹性要求
在此基础上,完成必要的扩展,实现模型机的功能扩展设计,包括:实现多种运算功能(指令集的扩充)、支持更为丰富的寻址方式、有更为完善的微程序设计等。
实验软件和硬件环境
QuartusII, FPGA计算机组成实验箱
winxp系统,内存8G,CPU i7-5500U
实验原理和方法
利用所学过的理论知识,写出要设计的指令系统的微程序。随后确认总体结构,进行逻辑设计,再确定控制方式,编制指令流程,最后将所设计的微程序写入计算机组成原理教学实验系统环境中进行测试,
在设计的过程中,我们首先要确定所设计计算机的功能和用途,设计中根据功能和用途确定指令系统,数据的表示格式,位数,指令的编码,类型,需要设计那些指令和寻址方式。确定相对应指令所包含的微操作以及总体结构设计之间的数据通路结构,在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微指令。
实验步骤
拟定指令系统
基本字长:
模型机基本字长定位8位,存储容量为256*8位,
指令类型:
指令类型有三种:无操作数指令、单操作数指令和双操作数指令。操作码OP共四位,最多可以定义16条指令。
基本字长:8位
指令格式:
指令格式有单字长指令、双字长指令(16位)和三字长指令(24位,仅用于乘法)三种;
在双字长指令和三字长指令中中,第二字节和第三字节被定义为操作数或操作数地址
寻址方式:
采用了立即数寻址、直接寻址两种寻址方式。
10:是立即数寻址,操作数在指令的下一个单元;
20:是直接寻址,操作数地址在指令的下一个单元。
基本指令集:
LOAD 取指指令
LOAD A 立即数寻址
LOAD A# 直接寻址
MOVE AC,R1 转移指令(AC->R1)
MOVE R1,AC 转移指令(R1->AC)
STORE 存数指令(AC->RAM立即数)
STORE 存数指令(AC->RAM直接寻址)
ADD AC,R1 加法指令(AC+Y->AC)
ADD AC,A 加法指令(立即数寻址+AC->AC)
ADD AC,A# 加法指令(直接寻址+AC->AC)
MUTI AC,R1 乘法指令(ACR1->AC/R1)