计算机组成原理实验报告.doc
《计算机组成原理实验报告.doc》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告.doc(6页珍藏版)》请在冰点文库上搜索。
计算机组成原理
实验报告
评语:
成绩
教师:
年月日
班级:
s
学号:
姓名:
地点:
时间:
计算机组成原理实验报告
一、实验目的
1.深入理解基本模型计算机的功能、组成知识;
2.深入学习计算机各类典型指令的执行流程;
3.学习微程序控制器的设计过程和相关技术,掌握LPM_ROM的配置方法。
4.在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机。
5.定义五条机器指令,并编写相应的微程序,上机调试,掌握计算机整机概念。
掌握微程序的设计方法,学会编写二进制微指令代码表。
6.通过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。
二、实验原理
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
ADDaddr
STAaddr
OUTaddr
JMPaddr
00H
10HXXH
20HXXH
30HXXH
40HXXH
“INPUT”中的数据→R0
R0+[addr]->R0
R0->[addr]
[addr]->BUS
addr→PC
其中IN为单字长(8位二进制),其余为双字长指令,XXH为addr对应的十六进制地址码。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
图6-1数据通路框图
1,存储器读操作(KRD):
下载实验程序后按总清除按键(CLR)后,控制台SWA、SWB为“00”时,可对RAM连续手动读入操作。
2,存储器写操作(KWE):
下载实验程序后按总清除按键(CLR)后,控制台SWA、SWB为“01”时,可对RAM连续手动写操作。
3、启动程序(RP):
下载实验程序后按总清除按键(CLR)后,控制台SWA、SWB为“11”时,即可转入到微地址“01”号“取指令”微指令,启动程序运行。
SWB
SWA
控制台指令
0
0
1
0
1
1
读内存(KRD)
写内存(KWE)
启动程序(RP)
根据以上要求设计数据通路框图,如图5-1所示。
表6-124位微代码定义:
24
23
22
21
20
19
18
17
16
151413
121110
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-2A、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的微程序流程图按微指令格式转化而成的“二进制微代码表”。
表6-2二进制微代码表
微地址
微指令
S3S2S1S0MCNWEA9A8
A
B
C
UA5—UA0
00
018110
000000011
000
000
100
010000
01
00ED82
000000001
110
110
110
000010
03
00E004
000000001
110
000
000
000100
04
00B005
000000001
011
000
000
000101
05
01A206
000000011
010
001
000
000110
06
619A01
011000011
001
101
000
000001
07
01A217
000000011
110
000
000
001101
10
001001
000000000
001
000
000
000001
11
01ED83
000000011
110
110
110
000011
12
01ED87
000000011
110
110
110
000111
13
01ED98
000000011
110
110
110
011000
14
01ED9A
000000011
110
110
110
011010
15
01ED9E
000000011
110
110
110
011110
16
01EDA2
000000011
110
110
110
100010
27
01A217
000000011
010
001
000
010111
30
01A219
000000011
010
001
000
011001
31
F59A01
111110011
001
101
000
00001
32
00E01B
000000001
110
000
000
01011
33
00B01C
000000001
011
000
000
011100
34
01A21D
000000011
010
001
000
011101
35
B99A01
101110011
001
101
000
000001
36
00E01F
000000001
110
000
000
011111
37
00B020
000000001
011
000
000
100000
指令寄存器(IR):
指令寄存器用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。
指令划分为操作码和地址码段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试“P
(1)”,通过节拍脉冲T4的控制,以便识别所要求的操作。
指令译码器:
根据指令中的操作码强置微控制器单元的微地址,使下一条微指令指向相应的微程序首地址。
三、实验步骤
PC>AR
PC+1
01
01ED82
RAM>BUS
BUS->IR
00C048
02
P
(1)
IN
SW->R0
10
001001
(DR1)-(DR2)->R0
01
PC->AR
PC+1
11
01ED83
03
00B005
RAM->BUS
BUS->DR2
R0->DR1
04
05
619A01
06
01
PC->AR
PC+1
(DR1)+1->R0
12
SUN
INC
01
DEC
PC->AR
PC+1
13
(DR1)-1->R0
01
PC->AR
PC+1
14
RAM->BUS
BUS->DR2
R0->DR1
(DR1与(DR2)->R0
AND
OR
15
PC->AR
PC+1
16
DR1的非->R0
01
01
01
01ED87
059A01
07
27
01ED98
F59A01
30
01ED9A
PC->AR
PC+1
RAM->BUS
BUS->DR2
R0->DR1
(DR1)或(DR2)->R0
31
32
00B01C
01A21D
B99A01
01ED9E
00B020
33
34
01A221
E99A01
35
36
37
40
41
01A206
RAM->BUS
BUS->AR
00E004
R0->DR1
01A217
R0->DR1
01A129
RAM->BUS
BUS->AR
00E01B
RAM->BUS
BUS->AR
42
00E01F
R0->DR1
43
NOT
099A01
01ED9E
01A223
执行程序:
(1)按1次系统复位键8,并置键8为高电平,使CPU允许正常工作;
(2)控制开关(键4、键3)设置为SWB、SWA=1,1,处于程序执行方式,控制台:
RP(11);
(3)通过键2、键1输入运算数据,如56H,按4次单步键7,产生2个脉冲,执行2条微指令,进入到图6-1控制台的RP(11),此时的微指令地址是“23”,微指令码MC=008001;IN=56H
(4)再用键7产生1个脉冲,执行1条微指令,微程序流程进入图6-2左的“运行微程序”的最上块:
此时PC=00送地址寄存器AR=00,PC自动加1,PC=01,MC=00ED82,IN=56;
1.实验中遇到的主要问题和分析解决问题的思路
自己动手才能发现问题,从而解决问题,实验的初期大家都是在认真阅读与理解实验文档,从而了解基本模型计算机的功能、组成知识,理解微指令的设计过程与方法,从而深入学习计算机各类典型指令的执行流程。
在学习微程序控制器的设计过程和相关技术,同时掌握了LPM_ROM的配置方法,在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机。
通过定义五条机器指令,并编写相应的微程序,上机调试,从而掌握了计算机整机概念。
掌握微程序的设计方法,学会编写二进制微指令代码表,通过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。
在此次试验过程中,我们出现更改rom.mif而忘记更改ram.mif中的数据,导致程序运行错误,后经过认真检查才发现问题所在。
通过动手实验,自己之前很多不懂的东西都弄懂了。
2.通过实验,自己的学习经验和切身体会,以及对教学实验的意见和建议。
通过这次模型机设计的实验,自己了解到了微指令与微程序,了解到微程序和微指令的区别,已经程序流程。
通过这次实验自己了解到ram.mif中存的是微程序入口地址,通过入口找到了在rom.mif的微指令,根据微指令来执行具体的微程序操作。
通过这次实验,我对于课本上的知识点有了更深刻的认识。