计算机组成原理课程设计.docx
《计算机组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计
课程设计任务书
课题名称
复杂模型机组成原理实验
完成时间
指导教师
职称
学生姓名
班级
总体设计要求和技术要点
掌握计算机五大功能部件的组成及功能,熟悉完整的单台计算机基本组成原理,掌握计算机中数据表示方法、运算方法、运算器的组成、控制器的实现、存储器子系统的结构与功能、输入/输出系统的工作原理与功能。
(1)利用实验设备平台构造完整的模型机;
(2)利用运算器74LS181执行算术操作和逻辑操作;
(3)运用随机存储器RAM以及地址和数据在计算机总线的传送关系,实现运算器和存储器协同工作,读写数据,检查结果是否正确;
(4)应用微程序控制器,往EEPROM里任意写24位微代码,读出微代码并验证其正确性;
(5)构造指令系统,定义至少10条机器指令,实现具有计算四则运算及逻辑运算的功能;
(6)利用微程序控制器控制模型机运行,实现基于重叠和流水线技术的CPU技术。
工作内容及时间进度安排
总计2周:
1.12月6日:
资料查阅、选题、系统总体设计
2.12月7日-12月14日:
熟悉开发环境和工具,模块设计、代码编制
3.12月15日-12月17日:
系统调试与运行,成果验收
4.12月17日:
上交设计报告
课程设计成果
1.课程设计硬件系统及配套软件
2.课程设计报告书
内容摘要
本实验利用EL-JY-Ⅱ型计算机组成原理实验系统组建电路,综合运用运算器、控制器、存储器、输入输出系统、总线等部件和辅助电路,完成一个较完整的模型计算机设计和实现,并构造一个指令系统,编写机器指令实现不同的具体功能,如实现数据的输入、输出、加法、减法、移位、自增、自减以及赋值等运算的功能。
关键词
模型机,微代码,机器指令,数据输入/输出,算术逻辑运算
目录
内容摘要-3-
关键词-3-
第1章绪论-5-
1.1设计地点-5-
1.2设计目的-5-
1.3设计的意义-5-
1.4课程设计的主要内容和要求-5-
1.5实验的环境-6-
第2章系统设计与实现-7-
2.1模型机结构框图-7-
2.2工作原理-8-
2.2.1数据格式-8-
2.2.2指令格式-8-
2.2.3指令系统-9-
2.2.4设计微代码-10-
2.2.5实验微代码-13-
2.3程序代码-14-
2.4实验内容介绍-15-
2.5系统实现步骤-15-
2.6测试用例-18-
2.7硬件连线图-19-
第3章总结-20-
参考文献-21-
第1章绪论
1.1设计地点
计算机组成原理实验室。
1.2设计目的
本课程设计综合运用运算器、控制器、存储器、输入输出系统、总线等部件和辅助电路,完成一个较完整的模型计算机设计和实现(包括硬件和软件)。
通过课程设计对计算机组成和系统结构的基础知识进行全面的掌握,培养独立分析、研究、开发和综合设计能力。
1.3设计的意义
通过对复杂模型机组成的研究以及对微程序、微代码、机器指令的深入理解,进一步增强对计算机组成的学习,巩固以前所学知识,并对以后的学习打下坚实的基础。
1.4课程设计的主要内容和要求
掌握计算机五大功能部件的组成及功能,熟悉完整的单台计算机基本组成原理,掌握计算机中数据表示方法、运算方法、运算器的组成、控制器的实现、存储器子系统的结构与功能、输入/输出系统的工作原理与功能。
(1)利用实验设备平台构造完整的模型机;
(2)利用运算器74LS181执行算术操作和逻辑操作;
(3)运用随机存储器RAM以及地址和数据在计算机总线的传送关系,实现运算器和存储器协同工作,读写数据,检查结果是否正确;
(4)应用微程序控制器,往EEPROM里任意写24位微代码读出微代码并验证其正确性;
(5)构造指令系统定义至少10条机器指令,实现可以计算鸡兔同笼题的模型机功能;
(6)利用微程序控制器控制模型机运行,实现基于重叠和流水线技术的CPU技术。
要求画出系统模块框图:
按从上到下的设计方法,将整个设计依功能划分成若干模块;并确定各个模块的输出、输入端口及要完成的功能。
检查模块逻辑功能是否正确;
(7)在EL-JY-Ⅱ型计算机组成原理实验系统上,编写机器指令,实现数据的输入,输出,移位以及加法等运算功能。
1.5实验的环境
EL-JY-Ⅱ型计算机组成原理实验系统。
第2章系统设计与实现
2.1模型机结构框图
此模型机是由运算器,控制器,存储器,输入设备,输出设备五大部分组成。
1.运算器又是有299,74LS181完成控制信号功能的算逻部件,暂存器LDR1,LDR2,及三个通用寄存器Ax,Bx,Cx等组成。
2.控制器由程序计数器PC、指令寄存器、地址寄存器、时序电路、控制存储器及相应的译码电路组成。
3.存储器RAM是通过CE和W/R两个微命令来完成数据和程序的的存放功能的。
4.输出设备有两位LED数码管和W/R控制完成的。
图1模型机结构框图
图1中运算器ALU由U7--U10四片74LS181构成,暂存器1由U3、U4两片74LS273构成,暂存器2由U5、U6两片74LS273构成。
微控器部分控存由U13--U15三片2816构成。
除此之外,CPU的其他部分都由EP1K10集成。
存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H--FFH。
输出设备由底板上的四个LED数码管及其译码、驱动构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。
在开关方式下,输入设备由16位电平开关及两个三态缓冲芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。
在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。
本系统的数据总线为16位,指令、地址和程序计数器均为8位。
当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低八位有效。
2.2工作原理
2.2.1数据格式
本实验计算机采用定点补码表示法表示数据,字长为16位,格式如下:
表1补码表示表
15
1413..................0
符号
尾数
其中,第16位为符号位,数值表示范围是:
-32768~32767。
2.2.2指令格式
(1)算术逻辑指令
设计9条单字长算术逻辑指令,寻址方式采用寄存器直接寻址。
其格式如下:
表2寻址方式表示表
7654
32
10
OP-CODE
rs
rd
OP-CODE
0111
1000
1001
1010
1011
1100
1101
1110
1111
指令
CLR
MOV
ADD
SUB
INC
AND
NOT
ROR
ROL
表3操作码表
其中OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
表4寄存器表
rs或rd
选定寄存器
00
Ax
01
Bx
10
Cx
(2)存储器访问及转移指令
存储器的访问有两种,存数和取数。
它们都使用助记符MOV,但操作码不同。
转移指令只有一种,及无条件转移(JMP)。
指令格式如下:
表5存储器的访问表
76
54
32
10
00
M
OP-CODE
rd
D
其中OP-CODE为操作码,rd为寄存器。
M为寻址模式,D随M的不同其定义也不同,如下表所示:
表6操作码表
OP-CODE
00
01
10
指令说明
写存储器
读存储器
转移指令
表7寻址模式表
寻址模式M
有效地址E
D定义
说明
00
E=(PC)+1
立即数
立即寻址
10
E=D
直接地址
直接寻址
11
E=100H+D
直接地址
扩展直接寻址
(3)I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
表8I/O操作码表
7654
32
10
OP-CODE
addr
rd
其中,当OP-CODE=0100且addr=10时,从“数据输入电路”中的开关组输入数据;当OP-CODE=0100且addr=01时,将数据输入到“输出显示电路”中的数码管显示。
2.2.3指令系统
本实验共有十四条基本指令,其中算术逻辑指令8条,访问内存指令和程序控制指令4条,输入输出指令2条。
下表列出了各条指令的格式,汇编符号和指令功能。
表9指令格式表
汇编符号
指令的格式
功能
MOVrd,rs
ADDrd,rs
SUBrd,rs
INCrd
ANDrd,rs
NOTrd
RORrd
ROLrd
rs→rd
rs+rd→rd
rd-rs→rd
rd+1→rd
rs∧rd→rd
对rd求反
rd循环右移
rd循环左移
MOV[D],rd
MOVrd,[D]
rd→[D]
[D]→rd
MOVrd,D
JMPD
D→rd
D→PC
INrd,KIN
OUTDISP,rd
KIN→rd
rd→DISP
2.2.4设计微代码
设计三个控制操作微程序:
存储器读操作(MRD):
拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。
存储器写操作(MWE):
拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。
启动程序(RUN):
拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“11”时,按“单步”键,即可转入到第01号“取指”微指令,启动程序运行。
本系统设计的微程序字长共24位,其控制位顺序如下:
表1024位微代码表
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
1A
1B
F1
F2
F3
uA5
uA4
uA3
uA2
uA1
uA0
F1、F2、F3三个字段的编码方案如下表:
表11编码方案表
F1字段
F2字段
F3字段
151413
选择
121110
选择
987
选择
000
LDRi
000
RAG
000
P1
001
LOAD
001
ALU-G
001
AR
010
LDR2
010
RCG
010
P3
011
自定义
011
自定义
011
自定义
100
LDR1
100
RBG
100
P2
101
LAR
101
PC-G
101
LPC
110
LDIR
110
299-G
110
P4
111
无操作
111
无操作
111
无操作
微程序流程图如图2所示。
表12即为将图2的微程序流程图按微程序格式转化而成的二进制微代码表
2.2.5实验微代码
实验微代码如表12所示。
表12使用微代码表
微地址(8进制)
微地址(2进制)
微代码(16进制)
00
000000
007F88
01
000001
005B42
02
000010
016FFD
06
000110
015FE5
07
000111
015FE5
10
001000
005B4A
11
001001
005B4C
12
001010
014FFB
13
001011
007FC1
14
001100
01CFFC
20
010000
005B65
22
010010
005B47
23
010011
005B46
24
010100
007F15
25
010101
02F5C1
27
010111
018FC1
30
011000
0001C1
31
011001
0041EA
32
011010
0041EC
33
011011
0041F2
34
011100
0041F3
35
011101
0041F6
36
011110
3071F7
37
011111
3001F9
40
100000
0379C1
41
100001
010FC1
42
100010
011FC4
45
100101
007F20
52
101010
0029EB
53
101011
9403C1
54
101100
0029ED
55
101101
6003C1
62
110010
0003C1
63
110011
0025F5
65
110101
B803C1
66
110110
0C03C1
67
110111
207DF8
70
111000
000DC1
71
111001
107DFA
72
111010
000DC1
73
111011
06F3C8
74
111100
FF73C9
75
111101
016E10
2.3程序代码
本实验的机器指令程序代码如下:
表13指令输入表
地址(十六进制)
机器指令(十六进制)
00H
01H
02H
03H
04H
05H
06H
07H
08H
09H
0AH
0BH
0048H
00F0H
0005H
0002H
0094H
00F0H
00F0H
00E0H
0082H
0046H
0008H
0000H
2.4实验内容介绍
本实验完成的是计算及验证实验结果,即输入开始数据,做完运算后计算结果是否正确。
计算公式:
Cx=[(X*2+2)*4]/2,观察估计结果值与实验输出结果值是否相等。
2.5系统实现步骤
本系统在联机方式下进行。
步骤如下:
1.连接硬件系统,电路图如“图7”所示。
2.启动实验联机软件,打开实验课题菜单,选中实验课题,打开实验课题参数对话窗口。
微指令操作:
写:
在编辑框中输入微指令程序(格式:
两位八进制微地址+空格+六位十六进制微代码),按“保存”按钮,将微程序代码保存在一给定文件(*.MSM)中;按“打开”按钮,打开已有的微程序文件,并显示在编辑框中;将实验箱上的K4K3K2K1拨到写状态即K1off、K2on、K3off、K4off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上,然后按"写入"按钮,微程序写入控制存储器电路。
读:
将实验箱上的K4K3K2K1拨到写状态即K1off、K2on、K3off、K4off,在“读出微地址”栏中填入两位八进制地址,按“读出”按钮,则相应的微代码显示在“读出微代码”栏中。
微指令操作界面如图3所示:
图3微指令操作
打开实验课题参数对话窗口:
机器指令操作。
写:
在编辑框中输入实验用的机器指令程序(格式:
两位十六进制地址+空格+2位或4位十六进制代码),按“保存”按钮,将机器指令程序代码保存在一给定文件(*.ASM)中;按“打开”按钮,打开已有的机器指令程序文件,并显示在编辑框中;将实验箱上的K4K3K2K1拨到运行状态即K1on、K2off、K3on、K4off,拨动“CLR”开关对地址和微地址清零,将表13中的数据以图4形式写入,然后按“写入”按钮,机器指令写入存储器电路。
读:
将实验箱上的K4K3K2K1拨到运行状态即K1on、K2off、K3on、K4off,在“读出指令地址”栏中填入两位十六进制地址,拨动“CLR”开关对地址和微地址清零,然后按“读出”按钮,则相应的指令代码显示在“读出指令代码”栏中。
3.运行程序
单步:
在运行状态前提下,选择操作-单步,点击弹出窗口如图5,然后拨动“CLR”开关对地址和微地址清零,然后每按一次"单步"按钮,执行一条微指令。
可从实验箱的指示灯和显示LED观察单步运行的结果。
连续:
在运行状态前提下,选择操作-连续,点击弹出窗口如图5,,先拨动“CLR”开关对地址和微地址清零,然后按"连续"按钮,可连续执行程序。
可从实验箱的指示灯和显示LED观察连续运行的结果。
停止:
在连续运行程序过程中,可按"停止”按钮暂停程序的执行。
此时地址和微地址并不复位,仍可以从暂停处单步或连续执行。
机器指令操作界面如图4所示:
图4机器指令操作
程序运行过程中,遇到输入语句时,会出现如图6所示对话框,要求输入数据:
图5弹出窗口提示操作
图6输入数据
2.6测试用例
实验数据
1
结果
0008
2.7硬件连线图
由图1设计出的硬件连线图
图6硬件连线图
第3章总结
通过这次课程设计,基本上了解和掌握模型机的硬件结构关于微程序的设计。
实验的初期阶段主要是做一些实验指导书上提供的实验,熟悉实验环境和实验设备。
同时在实验中了解到各个器件的功能与作用,微地址的使用与机器指令的设计。
我们组主要设计的是一个具有复杂运算功能的模型机。
由于之前没有学过计算机组成原理这门课程,实验开始时进程比较慢,但通过几次的上机实验逐渐学习了课程的原理和实验设备的掌握.凭着有点汇编语言的基础设计了我们这次的实验督.同时通过杨老师详细的指导,我们明白了实验设计的基本步骤。
按照实验指导书提供的实验步骤,开始设计模型机,按照指导书实验八的实验连接线路。
设计了机器指令,指令中开始具有将数据存入寄存器再取出的功能,实验结果与预期的结果不相符,只好删除一些相关的机器指令。
再次测试,实验数据结果很正确。
实验中完成了加减乘除运算四则运算和逻辑运算,使用了运算器、控制器、存储器、输入输出系统、总线等部件和辅助电路完成实验功能,在此基础上完成一个较完整的模型计算机设计。
在做本次实验的过程遇到了很多的问题,如机器代码的错误输入、实验的错误连线以及输出显示的出错等等。
通过组员内和组与组之间的沟通讨论,以用向杨老师的请教,同时还查阅很多相关资料等,克服了相关问题。
通过这次课程设计我获益匪浅,在以后的学习过程奠定了基础。
参考文献
《计算机组织与系统结构》季福坤主编荆淑霞杨彬副主编中国水利水电出版社
《计算机组织与系统结构实验教程》杨小龙编著西安电子科技大学出版社
评语
课程设计成绩:
指导教师:
日期:
年月日