计算机组成原理课程设计.docx
《计算机组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计.docx(32页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计
计算机组成原理
课程设计报告
题目基本模型机与复杂模型机的设计与实现
系名
班级
姓名
学号
同组成员
指导教师
日期2011年12月2日
课程设计任务书
一、设计任务:
1、基本模型机设计与实现;
2、在基本模型机设计的基础上设计一台复杂模型机。
二、功能指标和设计要求:
利用所学过的理论知识,特别是微程序设计的思想,写出要设计的指令系统的微程序。
设计环境为TDN-CM+计算机组成原理教学实验箱、微机,联机软件等。
将所设计的微程序在此环境中进行调试,并给出测试思路和具体程序段。
最后撰写出符合要求的课程设计说明书、完成答辩。
1.基本模型机设计与实现
1.1、设计一台简单模型机,要求其指令系统至少要包括五条不同类型指令:
如一条输入指令(假设助记符为IN),一条加法指令(假设助记符为ADD),一条存数指令(假设助记符为STA),一条输出指令(假设助记符为OUT)和一条无条件转移指令(假设助记符为JMP);利用设计的模型机设计一个进行两个数求和运算的测试验证程序,验证模型机的功能。
1.2、在1.1的基础上,给基本模型机增加一条加法指令(假设助记符仍为ADD),但是该加法指令的寻址方式与1.1中的加法指令寻址方式不同。
利用设计的模型机设计一个进行两个数求和运算的测试验证程序,验证模型机的功能。
2.在任务1的基础上,设计具有不少于10条指令的复杂指令系统模型机。
其中,包含算术逻辑指令、访问内存指令、转移指令、程序控制指令(控制台指令)、输入输出指令、停机指等令。
数据的寻址方式要包括直接、间接、变址和相对寻址等多种寻址方式。
利用设计的复杂模型机实现两个数的减法运算并判断差得正负,差为正数则输出A,差为负数则输出B,差为零则输出C。
设计该测试验证程序,验证模型机的功能。
3、基本模型机和复杂模型机的CPU数据字长为8位,采用定点补码表示。
指令字长为8的整数倍。
微指令字长为24位。
三、设计步骤:
1、确定设计目标
进行全面深入的模型机设计需求分析,确定所设计计算机的功能和用途。
2、确定指令系统
确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。
确定相对应指令所包含的微操作。
3、总体结构与数据通路与硬件实现
总体结构设计包括确定各部件设置以及它们之间的数据通路结构。
在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微命令。
综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,确定采用何种方案的内总线及外总线。
数据通路不同,执行指令所需要的操作就不同,计算机的结构也就不一样。
硬件实现基于现有的基本实验箱平台,根据所设计模型机选择必要的元器件,并通过接插件(各种连线等)进行器件连接,组成所设计的模型机硬件系统(物理机)。
4、设计指令执行流程
数据通路确定和硬件实现后,就可以设计指令系统中每条指令所需要的机器周期数。
对于微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一条微指令中,哪些微操作不能安排在同一条微指令中。
5、确定微程序地址
根据后续微地址的形成方法,确定每个微程序地址及分支转移地址。
6、微指令代码化
根据微指令格式,将微程序流程中的所有微指令代码化,转化成相应的二进制代码写入到控制存储器中的相应单元中。
7、组装、调试
7.1、在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,才能保证整机的正常运行。
首先调试每条微指令功能,再调试每条机器指令功能。
连接所有模块,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入一段机器指令,进行其他的运行方式等功能调试及执行指令的正确性验证。
7.2、当所有功能模块都调试正常后,进入总调试。
根据设计的模型机设计模型机功能测试验证程序,运行程序验证模型机功能。
四、课程设计报告要求:
课程设计报告要求打印,其中的数据通路框图、微程序流程图、实验接线图用VISIO等绘图工具软件绘制或用铅笔工工整整绘制,要求图文清晰,报告内容包括:
(1)封面
(包括:
题目、所在系、班级、学号、指导教师及时间等项)
(2)任务书
(3)目录
(目录要层次清晰,要给出标题及页次,目录的最后一项是无序号的“参考文献”)。
(4)正文
正文应按目录中编排的章节依次撰写,要求论述清楚,文字简练通顺,插图清晰,书写整洁,充分体现“设计”的思想。
文中图、表及公式应规范地绘制和书写。
正文是实践设计报告的主体,具体由以下几部分组成:
1)课程设计题目;
2)课程设计使用的实验设备;
3)课程设计步骤(包括确定所设计计算机的功能和用途、指令系统、总体结构与数据通路、设计指令执行流程、确定微程序地址、微指令代码化、组装、调试、测试验证程序与功能验证情况。
)
4)课程设计总结(包括自己的收获与体会;遇到的问题和解决的方法等);
(5)附录
附录1:
数据通路图
附录2:
微程序流程图
附录3:
实验接线图
附录4:
实验程序及微程序
附录5:
参考文献(资料)
五、设计工作量:
(1)作品:
设计的最终作品包括硬件和软件两个部分,要求硬件实现正确,能够演示并达到设计指标的要求。
每个学生(或小组)在作品完成后,要经指导教师检查,同意拆除后方可拆卸。
(2)论文:
严格按上述课程设计说明书的要求撰写和装订。
每个学生一份。
六、成绩评定标准:
课程设计的成绩分为:
优秀、良好、中等、及格、不及格五个等级。
优秀:
完成复杂模型机的设计与实现,指令系统完备有更新扩充。
调试成功。
文档规范齐全。
良好:
完成模型机的设计与实现,指令系统指令种类丰富有一定的更新。
调试成功。
文档规范齐全。
中等:
完成基本模型机的设计与实现,在老师指导下对指令系统有更新。
调试成功。
文档规范齐全。
及格:
完成基本模型机的设计与实现。
调试成功。
文档规范齐全。
不及格:
没有课程设计报告,无故缺勤,不能完成调试者不及格。
七、工作计划:
时间:
14周周1~周5(40课时)
讲授:
2课时
设计及调试:
26课时
设计报告编8课时
答辩:
4课时
1、课程设计题目-----------------------------------------------
2、课程设计的目的------------------------------------------
3、课程设计实验设备------------------------------------------
4、课程设计步骤-----------------------------------------------
4.1、所设计计算机的功能和用途------------------------------
4.2、指令系统----------------------------------------------
4.3、总体结构与数据通路与硬件实现-------------------------------
4.4、设计指令执行流程--------------------------------------
4.5、微指令代码化------------------------------------------
4.6、组装和调试-----------------------------------------
4.7系统测试----------------------------------------
5、课程设计总结-----------------------------------------------
6、附录-----------------------------------------------------------------------------------
附录1:
数据通路图----------------------------------------------------------
附录2:
微程序流程图--------------------------------------------------------
附录3:
实验接线图------------------------------------------------------------
附录4:
实验程序及微程序---------------------------------------------------
附录5:
参考文献(资料)-----------------------------------
1、课程设计的题目
基本模型机与复杂模型机的设计与实现
二、课程设计的目的
经过一系列硬件课程如计算机原理的学习及相关实验后,综合应用所学理论知识解决实际设计和应用问题,进行一个综合的系统的实验。
具体的来说就是在掌握各部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
培养实际动手能力,进一步提高硬件设计能力。
培养实事求是和严肃认真的工作态度。
通过设计过程,熟悉和掌握微机系统的硬件设计方法、设计步骤,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力。
三、课程设计使用的实验设备
TDN—CM++计算机组成原理教学实验系统一台,PC机一台,虚拟软件,排线若干。
四、课程设计步骤
4.1所设计计算机的功能和用途
对于起初设计的基本模型机来说
设计的基本模型机的指令系统包括至少五条不同类型指令:
一条输入指令(假设助记符为IN),一条加法指令(假设助记符为ADD),一条存数指令(假设助记符为STA),一条输出指令(假设助记符为OUT)和一条无条件转移指令(假设助记符为JMP);
利用此模型机完成加法操作。
两个操作都能读入被加数,从内存中读取加数,运算后都能保存运算结果,并且都将结果输出。
在基本模型机的基础上,增加至少十条以上的指令十条指令的复杂指令系统模型机。
其中,包含算术逻辑指令、访问内存指令、转移指令、程序控制指令(控制台指令)、输入输出指令、停机指令等。
数据的寻址方式要包括直接、间接、变址和相对寻址等多种寻址方式。
利用设计的复杂模型机实现一个数的带进位右移和两个数的带进位减法。
能读入减数与被减数,从内存中读取两个数,进行进位减法后能保存运算结果,并且将结果输出。
4.2指令系统
本课程设计中的基本模型机采用五条机器指令:
IN(输入),OUT(输出),ADD(二进制加法),STA(存数),JMP(无条件转移)。
指
令格式及说明如下:
序号
助记符
机器指令码
功能说明
1
IN
"INPUTDEVICE"中的开关状态→R0
2
ADDaddr
********
R0+[addr]→R0
3
STAaddr
********
R0→[addr]
4
OUTaddr
********
[addr]→DR1→LED
5
JMPaddr
********
[addr]→PC
6
SUBaddr
********
R0-[addr]→R0
表1指令系统编码
其中:
IN为单字长(8位),其余为双字长指令。
********为addr对应的二进制地址码。
本课程设计中的复杂模型机采用的十六条机器指令,其中包括算术逻辑指令、I/O指令、访问存储器及转移指令和停机指令。
每种类型的指令格式如下:
(A)算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
D7D6D5D4
D3D2
D1D0
OP-CODE
Rs
Rd
其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:
选中的寄存器(Rs或Rd)
R0
R1
R2
寄存器的编码
00
01
10
(B)访存指令及转移指令
模型机设计2条访问指令,即存数(STA)、取数(LDA)、2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC)。
其格式如下:
D7D6
D5D4
D3D2
D1D0
D7···D0
OP-CODE
M
OP-CODE
Rd
D
其中,OP-CODE为操作码,Rd为目的寄存器,D为位移量(正负均可),M为寻址方式,其定义如下:
寻址方式
有效地址
说明
00
E=D
直接寻址
01
E=(D)
间接寻址
10
E=(RI)+D
RI变址寻址
11
E=(PC)+D
相对寻址
本模型机规定变址寄存器RI指定为寄存器R2。
(C)I/O指令
输入和输出指令采用单字节指令,其格式如下:
D7D6D5D4
D3D2
D1D0
OP-CODE
addr
Rd
其中,addr=01时,表示选中“输入单元”中的开关组作为输入设备,addr=10时,表示选中“输出单元”中的数码管作为输出设备。
(D)停机指令
这类指令只有1条,即停机指令HALT,用于实现停机操作,指令格式如下:
D7D6D5D4
D3D2
D1D0
0110
00
00
根据上面提供的指令的格式,可以列出本次课设所需要的复杂模型机指令系统,如下图表一所示:
序号
汇编符号
指令格式
功能说明
1
CLRRd
011100Rd
0→Rd
2
MOVRS,Rd
1000RSRd
RS→Rd
3
ADCRS,Rd
1001RSRd
RS+Rd+Cy→Rd
4
SBCRS,Rd
1010RSRd
RS-Rd-Cy→Rd
5
INCRd
1011--Rd
Rd+1→Rd
6
ANDRS,Rd
1100RSRd
RS∧Rd →Rd
7
COMRd
110100Rd
Rd →Rd
8
RRCRS,Rd
1110RSRd
RS带进位右循环一位,RS→Rd
9
RLCRS,Rd
1111RSRd
RS带进位左循环一位,RS→Rd
10
LDAM,D,Rd
00M00Rd,D
E→Rd
11
STAM,D,Rd
00M01Rd,D
Rd→E
12
JMPM,D
00M1000,D
E→PC
13
BZCM,D
00M1100,D
当CY=1或ZI=1时,E→PC
14
INaddr,Rd
010001Rd
addr→Rd
15
OUTaddr,Rd
010110Rd
Rd→addr
16
HALT
01100000
停机
表1复杂模型机指令系统
微指令格式如下图:
微程序
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
控制信号
S3
S2
S1
S0
M
CN
RD
M17
M16
A
B
C
uA5
uA4
uA3
uA2
uA1
uA0
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_G
0
0
1
P1
0
1
0
LDDR1
0
1
0
RD_G
0
1
0
P2
0
1
1
LDDR2
0
1
1
RI_G
0
1
1
P3
1
0
0
LDIR
1
0
0
299_G
1
0
0
P4
1
0
1
LOAD
1
0
1
ALU_G
1
0
1
AR
1
1
0
LDAR
1
1
0
PC_G
1
1
0
LDPC
其中,在基本模拟机中B字段只用到了RS_G、ALU_G和PC_G,C字段中只用到了P1测试和P4测试。
4.3总体结构与数据通路与硬件实现
首先,需要确定此次设计需要用到的硬件设备。
计算机基本由五大部件组成即运算器,控制器,存储器,输入设备和输出设备。
其中运算器和存储器又是CPU的基本组成部分。
控制器由程序计数器(PC)--相当于指针、指令寄存器(IR)--存放指令、指令译码器—根据指令中的操作码译码强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址、时序产生器和操作控制器组成。
运算器由算术逻辑运算单元(ALU)、通用寄存器(GR)和状态字寄存器(PSW)--保存状态,防止中断。
主存由DRAM读写存储器来实现。
控制存储器一般用来存放微程序。
根据上面的概述对寄存器的设置如下:
R0、R1、R2为通用寄存器,8位;
IR为指令寄存器,8位;
PC为程序计数器,8位;
AR为地址寄存器,8位;
DR1、DR2为数据寄存器
数据通路可见附录1的数据通路图。
根据数据通路图和指令的执行流程,可以画出实现整个设计功能的实验原理图,见附录二。
然后根据原理图用排线将需要用到的硬件设备准确无误的连接好,随后进行测试和调试。
4.4设计指令执行流程
根据机器指令系统要求,设计微程序流程图及确定微地址,如附录三所示。
当拟定“取指”微指令时,该微指令的判别测试字段为P
(1)测试。
本机使用指令寄存器的前四位(IR7—IR4)作为测试条件,出现5路分支,占用5个固定的微地址单元。
控制台操作P(4)测试,它以控制台开关SWB、SWA作为测试条件,出现了三路分支,占用3个固定微地址单元。
注意:
流程图上的单元地址为8进制。
基本模型机仅用到P
(1)和P(4)测试。
复杂模拟机相较于基本模拟机多了P2和P3测试。
各自功能为:
P2测试用下址低2位(uA1~uA0)与指令寄存器的IR3IR2相或得到4路分支;P3测试用于条件转移,它用下址的uA4与(ZI+CY)相或得到2路分支。
4.5微指令代码化
当全部微程序设计完毕后,应将每条微指令代码化,下表即为“二进制微代码表”。
微地址
S3~CN
RD
M17M16
A
B
P
uA5~uA0
00
0
11
000
000
100
01
0
11
110
110
110
02
0
01
100
000
001
35
0
01
010
000
000
36
0
01
110
000
010
37
0
01
110
000
010
60
0
01
010
000
000
61
0
01
110
000
010
54
0
11
110
110
110
55
0
11
110
110
110
56
0
01
010
000
000
23
0
11
000
000
000
24
0
00
010
000
000
62
0
01
010
000
000
63
0
11
011
011
000
64
0
11
110
101
000
20
0
11
110
110
110
21
0
11
110
110
110
22
0
11
110
110
110
57
0
11
110
110
110
51
0
00
001
000
000
52
1
10
000
010
000
46
0
11
000
000
000
40
0
11
001
101
000
41
0
11
001
001
000
42
0
11
010
001
000
43
0
11
011
001
000
44
0
11
010
010
000
45
0
11
010
001
000
53
0
11
010
010
000
47
0
11
000
001
000
50
0
11
000
001
000
05
0
01
001
000
000
04
1
01
000
010
001
07
0
11
101
101
110
06
0
11
000
000
011
11
0
11
000
000
000
74
0
11
010
101
010
65
0
01
010
000
000
67
0
11
011
110
000
70
0
11
110
101
000
71
0
11
010
101
010
72
0
11
011
010
000
12
0
11
001
101
101
03
0
11
010
010
000
14
0
11
010
101
101
25
0
11
001
101
000
57
0
11
010
101
000
60
0
11
000
000
101
61
0
11
001
101
101
15
0
11
001
101
000
16
0
11
011
010
000
31
0
11
101
101
110
17
0
11
001
101
101
73
0
11
001
101
000
32
0
11
000
100
000
13
0
11
001
100
000
33
0
11
000
100
000
72
0
11
001
100
000
27
1
10
000
101
000
30
1
01
000
101
000
4.6组装与调试
本设计采用的方法是联机读/写程序。
按照规定格式,将机器指令及微指令二进制表编辑成十六进制格式文件,如附录四所示。
打开电源,运行联机软件的CMP.EXE,根据所使用的PC微机串口选择键入1或2,测试通过后,进入主菜单。
进入主菜单后,使用联机软件中的【转储】--