基本模型机设计与实现
这个实验的原理图如上图(1)所示。部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应与一个微程序。
本实验采用五条机器指令:IN(输入)、SUB(二进制减法)、STA(存数)、OUT(输出)、JMP(无条件转移)其指令格式如下(前4位为操作码):
助记符 机器指令码 说 明
IN 0000 0000 “INPUT DEVICE”中的开关状态 →R0
SUB addr 0001 0000 xxxxxxxx R0 - [ addr ] →R0
STA addr 0010 0000 xxxxxxxx R0→ [ addr ]
OUT addr 0011 0000 xxxxxxxx [addr ] →BUS
JMP addr 0100 0000 xxxxxxxx addr → PC
其中IN为单字长(8位),其余为双字长指令,xxxxxxxx为addr对应的二进制地址码 。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
存储器读操作(KRD):拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START微动开关,可对RAM连续手动读操作。
存储器写操作(KWE):拨动总清开关CLR后,控制台开关SWB、SWA为“01”时,按START微动开关,可对RAM进行连续手动写入。
启动程序:拨动总清开关CLR后,控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。
上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如下:
|
SWB |
SWA |
控制台指令 |
|
0 |
0 |
读内存(KRD) |
|
0 |
1 |
写内存(KWE) |
|
1 |
1 |
启动程序(RP) |
|
|
|
|
微代码定义如下表所示:
|
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 14 13 |
12 11 10 |
9 8 7 |
6 |
5 |
4 |
3 |
2 |
1 |
|
S3 |
S2 |
S1 |
S0 |
M |
Cn |
WE |
A9 |
A8 |
A |
B |
C |
uA5 |
uA4 |
uA3 |
uA2 |
uA1 |
uA0 |
A字段 B 字段 C字段
本实验设计机器指令程序如下指令程序。
地 址(二进制) 内 容(二进制) 助记符 说 明
0000 0000 0000 0000 IN “INPUT DEVICE”→R0
//任意输入数据
0000 0001 0001 0000 SUB [16H] R0-[16H] →R0
0000 0010 0001 0110
0000 0011 0010 0000 STA [0BH] R0→[0BH]
0000 0100 0000 1011
0000 0101 0011 0000 OUT [0BH] [0BH] →BUS
0000 0110 0000 1011
0000 0111 0100 0000 JMP [00H] 00H→PC
0000 1000 0000 0000
0000 1001
0001 0110 0000 1000 自定,基于本设计,现减8H(8D)
0000 1011 求差结果
当拟定“取指” 微指令时,该微指令的判别测试字段为P(1)测试。由于“取指” 微指令是所有微程序都使用的公用微指令,因此P(1)测试结果出现多路分支。本机用指令寄存器的前4位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定微地址单元。控制台操作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。
本系统有两种I/O外部设备,一种是二进制代码开关,它作为输入设备(INPUT DEVICE);另一种是数码块,它作为输出设备(OUTPUT DEVICE)。输入时,二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到外部数据总线上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码块显示。
控制台流程