计算机组成原理课程设计.docx
- 文档编号:8995207
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:21
- 大小:49.93KB
计算机组成原理课程设计.docx
《计算机组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计.docx(21页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计
课程设计说明书
(封面请重新排版)
题目:
计算机组成原理课程设计
院系:
计算机科学与工程学院
专业班级:
计算机08-6
学号:
2008302982
学生姓名:
王加昭
指导教师:
顾老师
2010年12月11日
安徽理工大学课程设计(论文)任务书
计算机科学与工程院系计算机硬件教研室
学号
2008302982
学生姓名
王加昭
专业(班级)
计算机08-6
设计题目
基本模型机指令系统
设
计
技
术
参
数
1.本系统采用DJ-CPTH超强型计算机组成原理教学实验系统设计指令系统,在实验箱上加以实现。
2.利用软件工程中的可行性研究以及分析方法,进行系统分析。
设
计
要
求
1.在基本模型机的基础上构建一组能实现输入、输出、加、减、逻辑与、逻辑或、逻辑非、转移指令等8个功能的指令,这些指令的助记符不得与指导书上相同。
2.指令包括立即数寻址、寄存器直接寻址、存储器直接寻址三种寻址方式。
3.利用新构建的指令系统编程,分别实现带进位的循环左移功能。
工
作
量
1.课程设计说明书1000字;
2.画出流程图,编写微指令代码和程序。
工
作
计
划
设计课一:
分析设计要求,制定设计计划,完成指令系统设计,并在CPTH实验软件
中形成.mic文件
设计课二:
分析设计编写程序实现带进位的循环左移
设计课三:
在微机和试验仪的支持下,调入指令系统和程序,运行,测试,完成系统的设计
设计课四:
提交设计报告
参
考
资
料
[1]李敬兆.8086/8088和基于ARM核汇编语言程序设计
[2]清华大学出版社.计算机组成原理与设计实验指导
[3白中英.计算机组成原理
指导教师签字
教研室主任签字
2010年12月9日
指导教师评语:
成绩:
指导教师:
年月日
安徽理工大学课程设计(论文)成绩评定表
摘要
本次课程设计课题是基本模型机的设计与实现,设计是在DJ-CPT816计算机组成原理实验仪和仿真软件上进行的。
实验原理是计算机数据通路的控制由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成本次设计。
完成了各指令的格式以及编码的设计,实现了各机器指令微代码,形成具有一定功能的完整的应用程序。
设计出的指令包括传送,逻辑与,逻辑或,算术加,减运算,输入,输出,转移这八种指令,且运用直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。
利用新构建的指令系统编程,实现带进位的循环左移的功能。
这一课题的实现使我们对各种微指令有了熟练的掌握。
关键词:
指令,寻址,带进位的循环左移
目录
1系统分析1
1.1设计背景1
1.2设计目标2
2系统设计4
2.1模型机的指令系统设计4
2.2模型机的微指令设计5
2.3带进位的循环左移程序设计10
3系统实现12
3.1实现带进位的循环左移12
3.2程序系统分析12
3.3程序微指令分析13
3.4实验结果14
4总结15
4.1设计体会15
4.2系统改进15
参考文献17
1系统分析
1.1设计背景
通过计算机组成原理理论课和几次实验的学习,尝试设计八类机器指令,并编写相应的微程序,完成由基本单元电路构成一台基本模型机,再经过调试指令和模型机使其在微程序的控制下自动产生各部件单元的正常工作控制信号。
本课程设计的模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数,指令码的最低两位用来选择R0-R3寄存器。
在微程序控制方式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令的微程序。
在本模型机中,一条指令最多分为四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。
模型机有24位控制位以控制寄存器的输入输出,选择运算器的运算功能,存储器的读写。
简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。
本设计是在DJ-CPT816计算机组成原理实验仪和仿真软件上进行的
24位控制位分别介绍如下:
XRD:
外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。
EMWR:
程序存储器EM写信号
EMRD:
程序存储器EM读信号
PCOE:
将程序计数器PC的值送到地址总线ABUS上
EMEN:
将程序存储器EM与数据总线DBUS接通,有EMWR和EMRD决定是将DBUS数据写入EM中,还是从EM读出数据到DBUS
IREN:
将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPC
EINT:
中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP:
PC打入允许,与指令寄存器的IR2.,IR3位结合,控制程序跳转。
MAREN:
将数据总线DBUS上数据打入地址寄存器MAR
MAROE:
将地址寄存器MAR的值送到地址总线ABUS上
OUTEN:
将数据总线DBUS上数据送到输出端口寄存器OUT里
STEN:
将数据总线DBUS上数据存到堆栈寄存器里
RRD:
读寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定
RWR:
写寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定
CN:
决定运算器是否带进位移位,CN=1带进位,CN=0不带进位
FEN:
将标志位存入ALU内部的标志寄存器
X2,X1,X0三位组合来译码选择将数据送到DBUS上的哪个寄存器,见表1
WEN:
将数据总线DBUS的值打入工作寄存器W中
AEN:
将数据总线DBUS的值打入累加器A中
S2,S1,S0三位组合决定ALU做何种运算,见表2
表1寄存器选择控制表
X2X1X0
输出寄存器
000
IN_OE外部输入门
001
IA_OE中断向量
010
ST_OE堆栈寄存器
011
PC_OEPC寄存器
100
D_OE直通门
101
R_OE右移门
110
L_OE左移门
111
没有输出
表2运算器功能控制
S2S1S0
功能
000
A+W加
001
A-W减
010
A|W或
011
A&W与
100
A+W+C带进位加
101
A-W-C带进位减
110
~AA取反
111
A输出A
1.2设计目标
本课程设计要求实现机器指令:
SED(传送),IPT(输入),AND(逻辑与),OR(逻辑或),OPT(输出),PLU(不带进位算术加),MIN(不带进位算术减),PLUC(带进位算术加),MINC(带进位算术减)和JZ,JC,JMP(转移指令)。
并且要包括直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。
最后要在设计的指令系统基础上,编写程序实现带进位的循环左移。
2系统设计
2.1模型机的指令系统设计
根据设计要求,设计出的指令要包括传送,逻辑与,逻辑或,算术加,减运算,输入,输出,转移这八种指令,且要运用直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。
由此设计出如下表3:
表3指令表
指令类型
助记符
机器码
功能
取指
_FETCH_
000000xx
IR→PC
算术加(不带进位)
PLUA,#*
000100xx#*
*+A→A
PLUA,R?
000101xx
R?
+A→A
PLUA,*
000011xx*
(*)+A→A
PLUA,@R?
000010xx
@R?
+A→A
算术加(带进位)
PLUCA,R?
000101xx
R?
+A→A
PLUCA,@R?
000110xx
@R?
+A→A
PLUCA,*
000111xx*
(*)+A→A
PLUCA,#*
000100xx#*
*+A→A
算术减(不带进位)
MINA,R?
001001xx
R?
-A→A
MINA,@R?
001010xx
@R?
-A→A
MINA,*
001011xx*
A-(*)→A
MINA,#*
001100xx#*
A-*→A
算术减(带进位)
MINCA,R?
001101xx
R?
-A→A
MINCA,@R?
001110xx
@R?
-A→A
MINCA,*
001111xx*
A-(*)→A
MINCA,#*
010000xx#*
A-*→A
输入
IPT
010001xx
K23…K16→A
输出
OPT
010010xx
A→OUT寄存器
传送
SEDR?
A
100000xx
A→R?
SED*,A
100010xx*
A→(*)
SEDR?
#*
100011xx#*
*→R?
SEDA,R?
011100xx
R?
→A
SEDA,#*
011111xx#*
*→A
SED@R?
A
100001xx
A→@R?
SEDA,@R?
011101xx
@R?
→A
SEDA,*
011110xx
(*)→A
逻辑与
ANDA,#*
010110xx#*
*&&A→A
ANDA,R?
010011xx
R?
&&A→A
ANDA,*
010101xx*
(*)&&A→A
ANDA,@R?
010100xx
@R?
&&A→A
逻辑或
ORA,#*
011010xx#*
*||A→A
ORA,R?
010111xx
R?
||A→A
ORA,*
011001xx*
(*)||A→A
ORA,@R?
011000xx
@R?
||A→A
逻辑非
NOTA
011011xx
A取反
转移
JMP*
100111xx*
*→PC
JZ*
100101xx*
ZF=1则*→PC
JC*
100100xx*
CF=1则*→PC
2.2模型机的微指令设计
(1)微指令的24位控制位如下:
▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫
XRDEMWREMRDPCOEEMENIRENEINTELPMARENMARDEOUTENSTENRRDRWRCNFENX2X1X0WENAENS2S1S0
(2)设计出的微指令集如下表4:
表4微指令集
助记符
状态
微地址
微程序
_FETCH_
T0
00
CBFFFF
01
FFFFFF
02
FFFFFF
03
FFFFFF
PLUA,R?
T2
04
FFF7EF
T1
05
FFFE90
T0
06
CBFFFF
07
FFFFFF
PLUA,@R?
T3
08
FF77FF
T2
09
D7BFEF
T1
0A
FFFE90
T0
0B
CBFFFF
PLUA,*
T3
0C
C77FFF
T2
0D
D7BFEF
T1
0E
FFFE90
T0
0F
CBFFFF
PLUA,#*
T2
10
C7FFEF
T1
11
FFFE90
T0
12
CBFFFF
13
FFFFFF
PLUCA,R?
T2
14
FFF7EF
T1
15
FFFE94
T0
16
CBFFFF
17
FFFFFF
PLUCA,@R?
T3
18
FF77FF
T2
19
D7BFEF
T1
1A
FFFE94
T0
1B
CBFFFF
PLUCA,*
T3
1C
C77FFF
T2
1D
D7BFEF
T1
1E
FFFE94
T0
1F
CBFFFF
PLUCA,#*
T2
20
C7FFEF
T1
21
FFFE94
T0
22
CBFFFF
23
FFFFFF
MINA,R?
T2
24
FFF7EF
T1
25
FFFE91
T0
26
CBFFFF
27
FFFFFF
MINA,@R?
T3
28
FF77FF
T2
29
D7BFEF
T1
2A
FFFE91
T0
2B
CBFFFF
MINA,*
T3
2C
C77FFF
T2
2D
D7BFEF
T1
2E
FFFE91
T0
2F
CBFFFF
MINA,#*
T2
30
C7FFEF
T1
31
FFFE91
T0
32
CBFFFF
33
FFFFFF
MINCA,R?
T2
34
FFF7EF
T1
35
FFFE95
T0
36
CBFFFF
37
FFFFFF
MINCA,@R?
T3
38
FF77FF
T2
39
D7BFEF
T1
3A
FFFE95
T0
3B
CBFFFF
MINCA,*
T3
3C
C77FFF
T2
3D
D7BFEF
T1
3E
FFFE95
T0
3F
CBFFFF
MINCA,#*
T2
40
C7FFEF
T1
41
FFFE95
T0
42
CBFFFF
43
FFFFFF
IPT
T1
44
FFFF17
T0
45
CBFFFF
46
FFFFFF
47
FFFFFF
OPT
T1
48
FFDF9F
T0
49
CBFFFF
4A
FFFFFF
4B
FFFFFF
ANDA,R?
T2
4C
FFF7EF
T1
4D
FFFE93
T0
4E
CBFFFF
4F
FFFFFF
ANDA,@R?
T3
50
FF77FF
T2
51
D7BFEF
T1
52
FFFE93
T0
53
CBFFFF
ANDA,*
T3
54
C77FFF
T2
55
D7BFEF
T1
56
FFFE93
T0
57
CBFFFF
ANDA,#*
T2
58
C7FFEF
T1
69
FFFE93
T0
5A
CBFFFF
5B
FFFFFF
ORA,R?
T2
5C
FFF7EF
T1
5D
FFFE92
T0
5E
CBFFFF
5F
FFFFFF
ORA,@R?
T3
60
FF77FF
T2
61
D7BFEF
T1
62
FFFE92
T0
63
CBFFFF
ORA,*
T3
64
C77FFF
T2
65
D7BFEF
T1
66
FFFE92
T0
67
CBFFFF
ORA,#*
T2
68
C7FFEF
T1
69
FFFE92
T0
6A
CBFFFF
6B
FFFFFF
NOTA
T1
6C
FFFE96
T0
6D
CBFFFF
6E
FFFFFF
6F
FFFFFF
SEDA,R?
T1
70
FFF7F7
T0
71
CBFFFF
72
FFFFFF
73
FFFFFF
SEDA,@R?
T2
74
FF77FF
T1
75
D7BFF7
T0
76
CBFFFF
77
FFFFFF
SEDA,*
T2
78
C77FFF
T1
79
D7BFF7
T0
7A
CBFFFF
7B
FFFFFF
SEDA,#*
T1
7C
C7FFF7
T0
7D
CBFFFF
7E
FFFFFF
7F
FFFFFF
SEDR?
A
T1
80
FFFB9F
T0
81
CBFFFF
82
FFFFFF
83
FFFFFF
SED@R?
A
T2
84
FF77FF
T1
85
B7BF9F
T0
86
CBFFFF
87
FFFFFF
SED*,A
T2
88
C77FFF
T1
89
B7BF9F
T0
8A
CBFFFF
8B
FFFFFF
SEDR?
#*
T1
8C
C7FBFF
T0
8D
CBFFFF
8E
FFFFFF
8F
FFFFFF
JC*
T1
90
C6FFFF
T0
91
CBFFFF
92
FFFFFF
93
FFFFFF
JZ*
T1
94
C6FFFF
T0
95
CBFFFF
96
FFFFFF
97
FFFFFF
UNDEF
98
FFFFFF
99
FFFFFF
9A
FFFFFF
9B
FFFFFF
JMP*
T1
9C
C6FFFF
T0
9D
CBFFFF
9E
FFFFFF
9F
FFFFFF
2.3带进位的循环左移程序设计
带进位的循环左移:
(图1)
图1图要有注释
程序设计思路:
一个二进制数带进位的循环左移,相当于该二进制数与自身相加,和有进位则再加1。
则有程序流程图:
(图2)
图2
3系统实现(章节的标题字号不对)
3.1实现带进位的循环左移
1.按照系统分析中得到的指令集,在DJ-CPT816实验软件中新建指令系统,生成.mac文件和.mic文件。
2.在DJ-CPT816实验软件中新建.asm文件,输入程序:
IPT
SEDR0,A
PLUA,R0
JCLOOP
JMPLOOP1
LOOP:
PLUA,#01H
LOOP1:
OPT
JMP01H
3.2程序系统分析
1.程序开始执行一条取指的微指令,读入程序第一条指令。
IPT:
利用开关K23-K16输入一个立即数A,下面就是对A进行循环左移。
SEDR0,A:
将立即数A存入R0,利用R0对立即数A进行循环左移。
PLUA,R0:
将R0中的数与A累加并存入R0,也就是将A+A存入R0。
JCLOOP:
如果相加结果有进位则跳转到LOOP。
LOOP:
PLUA,#01H:
A加上数01H,因为有进位才跳转到这步,所以进位须放置到A最后一位以实现循环左移。
JMPLOOP1:
没有进位则强制跳转到LOOP1,说明数A的最高位是0。
LOOP1:
OPT:
输出数A。
JMP01H:
因为程序实现的是带进位的循环左移,所以此句无条件跳转至程序开始。
2.将程序另存为.asm文件,再汇编成机器码,调试窗口会显示出程序、机器码、反汇编指令,见表5
表5译码表
程序地址
机器码
反汇编指令
指令说明
00
44
IPT
输入一个立即数
01
80
SEDR0,A
累加器A中的数送入寄存器R0
02
04
PLUA,R0
累加器A加寄存器R0
03
9007
JC07
有进位则跳转到LOOP
05
9C09
JMP09
强制跳转到LOOP1
07
0C01
PLUA,#01
累加器A加1
09
48
OPT
输出
0A
9C01
JMP01
跳转到01地址,循环执行
3.3程序微指令分析
将程序在DJ-CPT816软件上单步运行结束后可得微指令跟踪图如下表6:
表6微指令跟踪图
助记符
状态
微地址
微程序
数据输出
数据打入
地址输出
运算器
Upc
Pc
T0
00
CBFFFF
指令寄存器IR
PC输出
A输出
写入
1
00IPT
T1
44
FFFF17
用户IN
寄存器A
A输出
+1
T0
45
CBFFFF
指令寄存器IR
PC输出
A输出
写入
1
01SEDR0,A
T1
80
FFFB9F
ALU直通
寄存器R0
A输出
+1
T0
81
CBFFFF
指令寄存器IR
PC输出
A输出
写入
1
02PLUA,R0
T2
04
FFF7EF
寄存器值R0
寄存器W
A输出
+1
T1
05
FFFE90
ALU直通
寄存器A标志位C,Z
加运算
+1
T0
06
CBFFFF
指令寄存器IR
PC输出
A输出
写入
1
03JC07
T1
90
C6FFFF
存贮器值EM
寄存器PC
PC输出
A输出
+1
写入
T0
91
CBFFFF
指令寄存器IR
PC输出
A输出
写入
1
05JMP09
T1
9C
C6FFFF
存贮器值EM
寄存器PC
PC输出
A输出
+1
写入
T0
9D
CBFFFF
指令寄存器IR
PC输出
A输出
写入
1
07PLUA,#01
T2
10
C7FFEF
存贮器值EM
寄存器W
PC输出
A输出
+1
+1
T1
11
FFFE90
ALU直通
寄存器A标志位C,Z
加运算
+1
T0
12
CBFFFF
指令寄存器IR
PC输出
A输出
写入
1
09OPT
T1
48
FFDF9F
ALU直通
用户OUT
A输出
+1
T0
49
CBFFFF
指令寄存器IR
PC输出
A输出
写入
1
0AJMP01
T1
9C
C6FFFF
存贮器值EM
寄存器PC
PC输出
A输出
+1
写入
T0
9D
CBFFFF
指令寄存器IR
PC输出
A输出
写入
1
3.4实验结果
分别
置K23—K16为00101001,输出的是01010010
置K23—K16为00101100,输出的是01011000
置K23—K16为00000001,输出的是00000010
置K23—K16为10000000,输出的是00000001
实现了设计要求
4总结
4.1设计体会
通过这一次的课程设计,我的动手能力和实践经验有了一定程度的提高。
在调试的过程中,通过排除故障,寻找出错原因,不仅学会了如何判断问题的所在原因,也让我更加喜欢自己解决
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计