资源描述
计算机组成原理与体系结构课程设计
10
2020年4月19日
文档仅供参考,不当之处,请联系改正。
计 算 机 组 成 原 理
实 验 报 告
评 语:
成绩
教 师:
年 月 日
班 级: 031213
学 号: 03121256
姓 名: 戚玉志
地 点: 二区312
时 间: .9.15(第二批)
计算机组成原理与体系结构课程设计
基本模型机设计与实现
一.实验目的
1.深入理解基本模型计算机的功能、组成知识;
2.深入学习计算机各类典型指令的执行流程;
3.学习微程序控制器的设计过程和相关技术,掌握LPM_ROM的配置方法。
4.在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机。
5.定义五条机器指令,并编写相应的微程序,上机调试,掌握计算机整机概念。掌握微程序的设计方法,学会编写二进制微指令代码表。
6.经过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。
二.实验原理
本实验采用五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(最高4位二进制数为操作码):
1.在部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本实验将能在微过程控制下自动产生各部件单元控制信号,实现特定的功能。实验中,计算机数据通路的控制将由微过程控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
2.指令格式
(1)指令格式
采用寄存器直接寻址方式,其格式如下:
位
7654
32
10
功能
OP-CODE
rs
rd
其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
Rs或rd
选定的寄存器
00
01
10
R0
R1
R2
助记符
机器指令码
Addr地址码
功能说明
IN
ADD addr
STA addr
OUT addr
JMP addr
0 0H
1 0H XX H
2 0H XX H
3 0H XX H
4 0H XX H
“INPUT”中的数据→R0
R0+[addr] ->R0
R0 -> [addr]
[addr] -> BUS
addr →PC
其中IN为单字长(8位二进制),其余为双字长指令,XX H 为addr对应的十六进制地址码。为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
图6-1 数据通路框图
1,存储器读操作(KRD):下载实验程序后按总清除按键(CLR)后,控制台SWA、SWB为“0 0”时,可对RAM连续手动读入操作。
2,存储器写操作(KWE):下载实验程序后按总清除按键(CLR)后,控制台SWA、SWB为“0 1”时,可对RAM连续手动写操作。
3、启动程序(RP):下载实验程序后按总清除按键(CLR)后,控制台SWA、SWB为“1 1”时,即可转入到微地址“01”号“取指令”微指令,启动程序运行。
SWB
SWA
控制台指令
0
0
1
0
1
1
读内存(KRD)
写内存(KWE)
启动程序(RP)
根据以上要求设计数据通路框图,如图5-1所示。
表6-1 24位微代码定义:
24
23
22
21
20
19
18
17
16
15 14 13
12 11 10
987
6
5
4
3
2
1
S3
S2
S1
S0
M
Cn
WE
A9
A8
A
B
C
uA5
uA4
uA3
uA2
uA1
uA0
表6-2 A、B、C各字段功能说明:
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)
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
0
1
LDAR
1
1
0
LDAR
1
1
0
PC-B
1
1
0
LDPC
24位微代码中各信号的功能
(1) uA5—uA0:微程序控制器的微地址输出信号,是下一条要执行的微指令的微地址。
(2) S3、S2、Sl、S0:由微程序控制器输出的ALU操作选择信号,以控制执行16种算术操作或16种逻辑操作中的某一种操作。
(3) M:微程序控制输出的ALU操作方式选择信号端。M=0执行算术操作;M=l执行逻辑操作。
(4) Cn:微程序控制器输出的进位标志信号,Cn=0表示ALU运算时最低位有进位,Cn=1则表示无进位。 (5)WE:微程序控制器输出的RAM控制信号。当/CE=0时,如WE=0为存储器读;如WE=1为存储器写。
(6) A9、A8——译码后产生CS0、CS1、CS2信号,分别作为SW_B、RAM、LED的选通控制信号。
(7) A字段(15、14、13)——译码后产生与总线相连接的各单元的输入选通信号(见表6-1)。
(8) B字段(12、11、10)——译码后产生与总线相连接的各单元的输出选通信号。
(9) C字段(9、8、7) ——译码后产生分支判断测试信号P(1)~P(4)和LDPC信号。
系统涉及到的微程序流程见图6-2。当执行“取指令”微指令时,该微指令的判断测试字段为P(1)测试。由于“取指令”微指令是所有微程序都使用的公用微指令,因此P(1)的测试结果出现多路分支(见图6-2左图)。用指令寄存器的高4位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定地址单元。
控制台操作为P(4)测试(见图6-2右图),它以控制台信号SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就能够一条微指令占用控制存储器的一个微地址单元,随意填写。注意:微程序流程图上的微地址为8进制!
当全部微程序设计完毕后,应将每条微指令代码化,表6-2即为图6-2的微程序流程图按微指令格式转化而成的“二进制微代码表”。
微地址
微指令
S3 S2 S1 S0 M CN WE A9 A8
A
B
C
UA5—UA0
00
018110
000
000
100
010000
01
00ED82
110
110
110
000010
02
00C048
100
000
001
001000
03
00E004
110
000
000
000100
04
00B005
011
000
000
000101
05
01A206
010
001
000
000110
06
919A01
001
101
000
000001
07
00E00D
110
000
000
001101
10
001001
001
000
000
000001
11
00ED83
110
110
110
000011
12
00ED87
110
110
110
000111
13
00ED8E
110
110
110
001110
14
00ED96
110
110
110
010110
15
038201
00000011
000
001
000
000001
16
00E00F
110
000
000
001111
17
00A015
010
000
000
010101
20
01ED92
110
110
110
010010
21
01ED94
110
110
110
010100
22
00A010
010
000
000
010000
23
008001
000
000
000
000001
24
06
010
000
000
010001
25
070A01
000
101
000
000001
26
00D181
101
000
110
000001
表6-2 二进制微代码表
指令寄存器(IR):指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试“P(1)”,经过节拍脉冲T4的控制,以便识别所要求的操作。
指令译码器: 根据指令中的操作码强置微控制器单元的微地址,使下一条微指令指向相应的微程序首地址。
实验的电路原理图 :
实验程序1:
伪指令的设计过程:
如图所示,设计了减法,或运算,与运算,非运算,加一和减一运算,得到的微指令如下图所示:
实验的RAM中的程序如下图所示:
实验心得
实验刚开始的时候,拿到课程设计的题目,觉得自己简直是无法下手,但后来经过认真的学习实验课程的相关内容和在同学的帮助下,我认为其是自己还是能够实现课程设计的最终目的。其是只要是认真看明白了实验所给出的微指令的例程,特别是加法指令后,与其相似的指令就能够实现了,自己所需要改变的只是某些控制位和最后的地址位而已,但这种方法做出来的微指令也有一定的缺点,所有的指令都是在围绕着ALU而已,没有创新。
经过这次的课程设计,我更加深刻的认识到,所有在课本上面学到的知识其实都是能够在实际操作中实现的。经过自己的动手,所学到的知识才会有更加深刻的印象,才能真正的做到学以致用。
展开阅读全文