计算机组成原理课程设计(中央处理器--微程序控制器设计)
“计算机组成原理”课程设计报告
微程序控制器的设计
一、设计思路
按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。从而可以想到如下指令:
(1)24位控制位分别介绍如下:
XRD : 外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
EMWR: 程序存储器EM写信号。
EMRD: 程序存储器EM读信号。
PCOE: 将程序计数器PC的值送到地址总线ABUS上。
EMEN: 将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。
IREN: 将程序存储器EM读出的数据打入指令寄存器IR和微指令计数器uPC。
EINT: 中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP: PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。
MAREN:将数据总线DBUS上数据打入地址寄存器MAR。
MAROE:将地址寄存器MAR的值送到地址总线ABUS上。
OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里。
STEN: 将数据总线DBUS上数据存入堆栈寄存器ST中。
RRD: 读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。
RWR: 写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。
CN: 决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。
FEN: 将标志位存入ALU内部的标志寄存器。
X2: X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。
X1: 见16页表。
X0:
WEN: 将数据总线DBUS的值打入工作寄存器W中。
AEN: 将数据总线DBUS的值打入累加器A中。
S2: S2、S1、S0三位组合决定ALU做何种运算。
本实验还需用到的五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下:
助记符 机器指令码 说明
IN 0000 0000 “INPUT DEVICE”中的开关状态(R0
ADD addr 0001 0000 ×××× R0+[addr] (R0
STA addr 0010 0000 ×××× R0( [addr]
OUT addr 0011 0000 ×××× [addr] (BUS
JMP addr 0100 0000 ×××× addr(PC
其中IN为单字长(8位),其余为双字长指令,××××××××为addr对应的二进制地址码。
RAM写入、读出机器指令,并能启动程序执行,还须设计三个控制台操作微程序。
KRD):拨动总清开关CLR后,控制台开关SWB、SWA为“0 0”时,按START微动开关,可对RAM连续手动读操作。
KWE):拨动总清开关CLR后,控制台开关SWB、SWA为“0 1”时,按START微动开关,可对RAM连续手动写操作。
RP):拨动总清开关CLR后,控制台开关SWB、SWA为“1 1”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。
SWB、SWA的状态来设置,其定义如下:
SWBSWA控制台指令00读内存(KRD)01写内存(KWE)11启动程序(RP)
(二)在实验中使用的模型机的微指令格式如下表给定,长度共24位。
其中最后六位uA0~uA5 为6位的下一条微指令的地址, 前面几位为直接控制字段,直接与相应的控制门连接,A,B,C为3个译码字段,分别由三个控制位译码出多位。其含义如下:
A字段B字段C字段151413选择121110选择987选择000000000001LDRi001RS-B001P(1)010LDDR1010010011LDDR2011011100LDIR100100P(4)101LOAD101ALU-B101110LDAR110PC-B110LDPC 控制位含义