CPU 组成与机器指令执行实验
一、实验目的
(1)将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机;
(2)用微程序控制器控制模型机数据通路;
(3)通过CPU 运行九条机器指令(排除中断指令)组成的简单程序,掌握机器指令与 微指令的关系,牢固建立计算机的整机概念。
二、实验电路
本次实验用到前面四个实验中的所有电路,包括运算器、存储器、通用寄存器堆、程序 计数器、指令寄存器、微程序控制器等,将几个模块组合成为一台简单计算机。因此,在基 本实验中,这是最复杂的一个实验,也是最能得到收获的一个实验。 在前面的实验中,实验者本身作为“控制器”,完成数据通路的控制。而在本次实验中, 数据通路的控制将由微程序控制器来完成。CPU 从内存取出一条机器指令到执行指令结束的 一个机器指令周期,是由微指令组成的序列来完成的,即一条机器指令对应一个微程序。
三、实验要求
(1)对机器指令系统组成的简单程序进行译码。
将下表的程序按指令格式手工汇编成十六进制机器代码,此项任务应在预习时完成。完成表1.
(2)按照下面框图,参考前面实验的电路图完成连线,控制器是控制部件,数据通路 (包括上面各模块)是执行部件,时序产生器是时序部件。连线包括控制台、时序部分、数 据通路和微程序控制器之间的连接。其中,为把操作数传送给通用寄存器组 RF,数据通路 上的RS1、RS0、RD1、RD0 应分别与IR3 至IR0 连接,WR1、WR0 也应接到IR1、IR0 上。
开关控制
控制台 时序发生器
时序信号
开关控制 指示灯信号 控制信号 时序信号
控制信号
微程序控制器 数据通路
指令代码、条件信号
图13 模型计算机连线示意图
(3)将上述任务(1)中的程序机器代码用控制台操作存入内存中,并根据程序的需要, 用数码开关SW7—SW0 设置通用寄存器R2、R3 及内存相关单元的数据。注意:由于设置通用 寄存器时会破坏内存单元的数据,因此一般应先设置寄存器的数据,再设置内存数据。
(4)用单拍(DP)方式执行一遍程序,列表记录通用寄存器堆RF 中四个寄存器的数据, 以及由STA 指令存入RAM 中的数据(程序结束后从RAM 的相应单元中读出),与理论分析值 作对比。单拍方式执行时注意观察微地址指示灯、IR/DBUS 指示灯、AR2/AR1 指示灯和判断 字段指示灯的值,以跟踪程序中取指令和执行指令的详细过程(可观察到每一条微指令)。
(5)以单指(DZ)方式重新执行程序一遍,注意观察 IR/DBUS 指示灯、AR2/AR1 指示 灯的值(可观察到每一条机器指令)。执行结束后,记录 RF 中四个寄存器的数据,以及由 STA 指令存入RAM 中的数据,与理论分析值作对比。注意:单指方式执行程序时,四个通用 寄存器和RAM 中的原始数据与第一遍执行程序的结果有关。
(6)以连续方式(DB、DP、DZ 都设为0)再次执行程序。这种情况相当于计算机正常 运行程序。由于程序中有停机指令STP,程序执行到该指令时自动停机。执行结束后,记录 RF 中四个寄存器的数据,以及由STA 指令存入RAM 中的数据,与理论分析值作对比。同理, 程序执行前的原始数据与第二遍执行结果有关。
四、实验步骤和实验结果
(1)对机器指令系统组成的简单程序进行译码。
表1
地址
指令
机器代码
00H
LDA R0,[R2]
58H
01H
LDA R1,[R3]
5DH
02H
ADD R0,R1
0HH
03H
JC +5
95H
04H
ND R2,R3
3EH
05H
SUB R3,R2
1BH
06H
STA R3,[R2]
4BH
07H
MUL R0,R1
24H
08H
STP