1、 计算机组成原理计算机组成原理 课课 程程 设设 计计 报报 告告 微程序控制器的设计微程序控制器的设计 一、设计思路一、设计思路 按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减 运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存 储器直接寻址、立即数寻址等五种寻址方式。从而可以想到如下指令: ()24 位控制位分别介绍如下: XRD : 外部设备读信号,当给出了外设的地址后,输出此信号,从指 定外设读数据。 EMWR: 程序存储器 EM 写信号。 EMRD: 程序存储器 EM 读信号。 PCOE: 将程序计数器 PC 的值送到地址总线 ABUS 上。 EMEN:
2、将程序存储器 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
3、 里。 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
4、、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 addrPC 其中 IN 为单字长(8 位) ,其余为双字长指令,为 addr 对应的二进制地
5、址码。 为了向 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 号“取址”微指令,启动程序运行。 上述三条控制台指令用两个开关
6、 SWB、SWA 的状态来设置,其定义如下: (二)在实验中使用 的模型机的微指令格式 如下表给定,长 度 共24 位。 其中最后六位 uA0uA5 为 6 位的下一条微指令的地址, 前面几位为直接控 制字段,直接与相应的控制门连接,A,B,C 为 3 个译码字段,分别由三个控制位 译码出多位。其含义如下: A 字段 B 字段 C 字段 15 14 13 选择 12 11 10 选择 9 8 7 选择 0 0 0 0 0 0 0 0 0 0 0 1 LDRi 0 0 1 RS-B 0 0 1 P(1) SWB SWA 控制台指令 0 0 读内存(KRD) 0 1 写内存(KWE) 1 1 启动程序(RP) 0 1 0 LDDR1 0 1 0 0 1 0 0 1 1 LDDR2 0 1 1 0 1 1 1 0 0 LDIR 1 0 0 1 0 0 P(4) 1 0 1 LOAD 1 0 1 ALU-B 1