计算机组成原理课程设计报告材料.docx
《计算机组成原理课程设计报告材料.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告材料.docx(19页珍藏版)》请在冰点文库上搜索。
计算机组成原理课程设计报告材料
计算机组成原理
课程设计报告
课程设计题目:
计算机组成原理
专业名称:
计算机科学与技术
班级:
2013240202
关童:
201324020217
张一轮:
201324020218
孙吉阳:
201324020219
张旭:
201324020220
老师姓名:
单博炜
2015年12月31日
第一章课程设计概述
1.1课程设计的教学目的
本课程设计的教学目的是在掌握计算机系统组成及内部工作机制、理解计算机各功能部件工作原理的基础上,深入掌握数据信息流和控制信息流的流动过程,进一步加深计算机系统各模块间相互关系的认识和整机的概念,培养开发和调试计算机的技能。
在设计实践中提高应用所学专业知识分析问题和解决问题的能力。
1.2课程设计任务和基本要求
本课程设计以TDN-CM++计算机组成原理教学实验系统为平台设计完成。
1按给定的数据格式和指令系统,理解微程序控制器的设计原理。
2设计给定及其指令系统以及微程序流程图,按微指令格式写出微程序的微指令代码。
3链接逻辑电路,完成启动、测试、编程、校验和运行,并观测运行过程及结果。
4将微程序控制器模块与运算器模块、存储器模块联机,组成一台模型计算机。
5用微程序控制器控制模型机的数据通路。
6通过在模型机上运行由机器指令组成的简单程序,掌握机器指令与微指令的关系,建立计算机的整机概念,掌握计算机的控制机制。
7按指定应用项目进行汇编指令格式及功能设计,并设计相应的机器指令代码,按照模型机数据通路设计实现机器指令功能的微程序。
在PC机上编辑机器指令和微程序,装载代码到TDN-CM++实验系统并运行,实现应用要求。
第二章规定应用项目的验证实现
2.1设计原理
在部件实验中,我们是人为用二进制开关来模拟一些控制信号来完成数据通路的控制。
而在本课程设计中,数据通路的控制将由微程序控制器来完成。
计算机从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本设计的规定项目采用五条机器指令:
IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如表1(前4位是操作码):
表1:
指令助记符
操作码
地址码
功能说明
IN
00000000
数据开关的状态→R0
ADDA
00010000
XXXXXXXX
R0+[A]→R0
STAA
00100000
XXXXXXXX
R0→[A]
OUTA
00110000
XXXXXXXX
[A]→LED
JMPA
01000000
XXXXXXXX
A→PC
IN为单字长(8位),含义是将数据开关8位数据输入到R0寄存器;ADD为双字长指令,第一字为操作码,第二字为操作数地址,其含义是将R0寄存器的内容与内存中以A为地址单元的数相加,结果放在R0;STA为双字长指令,含义是将R0中的内容存储到以第二字A为地址内存单元中;OUT为双字长指令,含义是将内存中以第二字为地址的数据读到数据总线上,由数码管进行显示;JMP是双字长指令,执行该指令时,程序无条件转移到第二字所指定的内存单元地址。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还设计了三个控制台操作微程序:
存储器读操作”(KRD):
拨动总清开关CLR后,当控制台开关SWB、SWA置为“00”时,按START微动开关,可对RAM进行连续手动读操作;存储器写操作(KWE):
拨动总清开关CLR后,当控制台开关SWB、SWA置为“01”时,按START微动开关,可对RAM进行连续手动写入;启动程序:
拨动总清开关CLR后,当控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入第01号“取指”微指令,启动程序运行。
这三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如表2:
表2:
SWA
SWB
控制台指令
0
0
读内存(KRD)
0
1
写内存(KWE)
1
1
启动程序(RP)
根据以上要求设计数据通路框图如附页中图1所示。
微指令格式如表3所示,当微指令格式确定之后,下一步就是确定后续微指令地址,通常的方法是先确定微程序分支处的微地址,因为微程序分支处需要进行判断测试,这些微地址确定以后,就可以在一个“微地址表”中将分支微地址填入相应的分支微地址单元,避免以后的设计中因重复使用而造成错误,对于其他位置就可以按一条微指令对应一个微地址随意填写。
表3:
微指令格式
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
A字段B字段
15
14
13
选择
0
0
0
0
0
1
LDRi
0
1
0
LDDR1
0
1
1
LDDR2
1
0
0
LDIR
1
0
1
LOAD
1
1
0
LDAR
12
11
10
选择
0
0
0
0
0
1
RS-B
0
1
0
0
1
1
1
0
0
1
0
1
ALU-B
1
1
0
PC-B
1
1
1
C字段:
9
8
7
选择
0
0
0
0
0
1
P
(1)
0
1
0
0
1
1
1
0
0
P(4)
1
0
1
1
1
0
LDPC
按照数据通路可画出机器指令的微程序流程图如图2所示,当拟定“取值”微指令时,该微指令的判别测试字段为P
(1)测试,由于取值指令是所有微程序都是用的公用微程序,因此P
(1)测试结果出现多路分支,本机使用指令寄存器的前四位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定的微地址单元。
控制台操作作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定的微地址单元,当分支地址单元固定后,其余每条微指令各占用控存一个微地址单元,随意填写即可,注意:
微程序流程图上的单元地址为八进制。
指令寄存器(IR)用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存中取到缓存,然后在传送到指令寄存器中。
图2微程序流程图
当全部微程序设计完毕后,应将每条微指令代码化,表4即为将图2微程序流程图按微指令格式转化得到的“二进制微代码表”。
下图为表4:
微地址
S3S2S1S0MCnWEA9A8
A
B
C
μA5.....μA0
00
000000011
000
000
100
010000
01
100000011
110
110
110
000010
02
000000001
100
000
001
001000
03
000000001
110
000
000
000100
04
000000001
011
000
000
000101
05
000000011
010
001
000
000110
06
100101011
001
101
000
000001
07
000000001
110
000
000
001101
10
000000000
001
000
000
000001
11
000000011
110
110
110
000011
12
000000011
110
110
110
000111
13
000000011
110
110
110
001110
14
000000011
110
110
110
010110
15
000000101
000
001
000
000001
16
000000001
110
000
000
001111
17
000000001
010
000
000
010101
20
000000011
110
110
110
010010
21
000000011
110
110
110
010100
22
000000001
010
000
000
010111
23
000000011
000
000
000
000001
24
000000000
010
000
000
011000
25
000001110
000
101
000
000001
26
000000001
101
000
110
000001
27
000001110
000
101
000
010000
30
000001101
000
101
000
010001
本系统使用两种外部设备,一种是二进制代码开关,它作为输入设备(INPUTDEVICE);另一种是数码管,它作为输出设备(OUTPUTDEVICE).例如:
输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。
输出时,将输出数据送到数据总线BUS上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码管显示。
本设计的机器指令程序及相应的汇编程序如下:
地址(二进制)
内容(二进制)
助记符
注释
00000000
00000000
INR0
"INPUTDEVICE"→R0
00000001
00010000
ADD[0AH],R0
R0+[0AH]→R0
00000010
00001010
00000011
00100000
STAR0,[0BH]
R0→[0BH]
00000100
00001011
00000101
00110000
OUT[0BH]
[0BH]→LED
00000110
00001011
00000111
01000000
JMP00H
00H→PC
00001000
00000000
00001001
00001010
00000001
自定
00001011
求和结果
2.2操作步骤
1按附页中图3进行连线。
2测试:
在联机软件CMPP中打开复杂模型机的数据通路图,在测试菜单中点击“开始”,按照提示进行测试。
3写程序:
采用联机读/写程序
按下面规定格式,用联机软件在CMPP中建立将机器指令及微指令的二进制代码编辑成十六进制的*.TXT文档,并用联机软件的转储功能将该格式文件装载到实验系统中。
程序:
$P0000微程序:
$M00018110
$P0110$M0101ED82
$P020A$M0200C048
$P0320$M0300E004
$P040B$M0400B005
$P0530$M0501A206
$P060B$M06959A01
$P0740$M0700E00D
$P0800$M08001001
$P0A01$M0901ED83
$M0A01ED87
$M0B01ED8E
$M00C01ED96
$M0D028201
$M0E00E00F
$M0F00A015
$M1001ED92
$M1101ED94
$M1200A017
$M13018001
$M14002018
$M15070A01
$M1600D181
$M17070A10
$M18068A11
4运行程序
联机运行:
联机运行程序时,进入软件界面,装在机器指令及微指令后,选择【运行】→【通路图】→【复杂模型机】功能菜单打开相应动态数据通路图,按相应功能键即可联机运行、监控、调试程序。
第三章指定应用项目的设计实现
3.1设计任务:
将指令中所带数据X与以R0内容K为地址的内存单元内容Y执行X减Y的反的运算,结果送入Y的上一个内存单元。
3.2任务分析及解决方案:
对该任务而言,可以看出,该任务中涉及到了减法运算和逻辑非运算。
根据题目,X存于R0寄存器中,Y存在于以K为直接地址的R1寄存器中,然后将Y取反,存入R1,将R0与R1中内容相减存入R0,最后将结果存入R1寄存器中以60位地址的单元中。
3.3设计原理:
整体设计原理与第二章规定项目设计原理相似,其中,数据通路框图如附页图1所示。
本任务采用的的五条机器指令为:
IN(输入),SUB(二进制减法),AND(逻辑非运算后求逻辑与),STA(存数),OUT(输出),其功能和格式见表5。
表5:
指令助记符
操作码
地址码
功能说明
LDIR001
01100000
将01存入R0
LADMR103
11000001
XXXXXXXX
将02存入R1
STAM61R1
11000001
XXXXXXXX
地址60存入R1
NOTY
01000101
XXXXXXXX
对R1取反
SUBR0R1
10000100
XXXXXXXX
R0减R1
STAM60R1
11010000
XXXXXXXX
将R0内容给地址60
而该微程序流程图如下:
图4:
微程序流程图
全部微程序设计完毕后,每条代码微指令化,表5即为将图4微程序流程图按微指令格式转化得到的该任务的“二进制代码表”:
表5:
二进制代码表
微地址
16进制表示
高5位
S3-S0
A字段
B字段
C字段
UA5-UA0
00
000001
00000
0000
000
000
000
000001
01
006D43
00000
0000
110
110
101
000011
03
107070
00010
0000
111
000
001
110000
06
002407
00000
0000
010
010
0000
000111
07
013201
00000
0010
011
001
000
000001
08
106009
00010
0000
110
000
000
001001
09
183001
00011
0000
011
000
000
000001
0A
106010
00010
0000
110
000
000
010000
0C
103001
00010
0000
011
000
000
000001
0D
200601
00100
0000
000
011
000
000001
10
280401
00101
0000
000
010
000
000001
15
002416
00000
0000
010
010
000
010110
16
01B201
00000
0011
011
001
000
000001
1C
10101D
00010
0000
001
000
000
011101
1D
10608C
00010
0000
110
000
010
001100
1E
10601F
00010
0000
110
000
000
011111
1F
101020
00010
0000
001
000
000
100000
20
10608C
00010
0000
110
000
010
001100
21
023201
00000
0100
011
001
000
000001
30
001606
00000
0000
001
011
000
000100
31
001606
00000
0000
001
011
000
000110
32
006D48
00000
0000
110
110
101
001000
33
006D4A
00000
0000
110
110
101
001010
37
001621
39
001615
00000
0000
001
011
000
010101
3C
006D5C
00000
0000
110
110
101
011100
3D
006D5E
00000
0000
110
110
101
011110
将该为该任务设计的程序做成*.TXT文档,其内容如下:
$P 00 60
$P 01 01
$P 02 C1
$P 03 61
$P 04 45;R1寄存器内容取反
$P 05 84;R0-R1->R0
$P 06 D0
$P 07 60
$P 08 C1
$P 09 60
$P 0A 50 ;停机
;数据
$P 61 02
;微程序
$M 00 000001
$M 01 006D43
$M 03 107070
$M 04 002405
$M 05 04B201
$M 08 106009
$M 09 183001
$M 0A 106010
$M 0B 000001
$M 0C 103001
$M 0D 200601
$M 0E 005341
$M 0F 0000CB
$M 10 280401
$M 11 103001
$M 12 06B201
$M 13 002414
$M 14 05B201
$M 15 002416
$M 16 01B201
$M 17 002418
$M 18 02B201
$M 1B 005341
$M 1C 10101D
$M 1D 10608C
$M 1E 10601F
$M 1F 101020
$M 20 10608C
$M 28 101029
$M 29 00282A
$M 2A 04E22B
$M 2B 04928C
$M 2C 10102D
$M 2D 002C2E
$M 2E 04E22F
$M 2F 04928C
$M 30 001604
;$M 31 001606
$M 32 006D48
$M 33 006D4A
$M 34 003401
$M 35 000035
$M 36 006D51
$M 37 001612
$M 38 001613
$M 39 001615
$M 3A 001617
$M 3B 000001
$M 3C 006D5C
$M 3D 006D5E
$M 3E 006D68
$M 3F 006D6C
$M 34 001406
$M 06 023201
3.4程序运行分析及讨论
3.4.1上机调试、运行程序状态结果分析及结果讨论:
按附页中图3进行连线,将制成的TXT文档装载到CMPP联机实验系统中,在程序运行过程中,CMPP实验系统清楚地显示出了在程序执行过程中的数据流向,同时在程序的执行过程中,每个过程产生的结果都详细显示在了CMPP实验系统中的数据通路原理框图的RAM及寄存器中,同时还更加明了地展现出了任务中所出现的操作数寻址方式的执行过程。
X=1,Y=2,执行Y取反,然后相减。
3.4.2问题探讨:
在此次课程设计过程中,也出现了一些值得以后借鉴学习的问题,下面就几个问题展开讨论。
(1)在对微程序流程图进行设计过程中,可以充分利用每个部件中间相连接的数据通路,例如在本设计中最后的OUT(输出)这一分支过程,是将数据直接从DR1直接送到LED上进行显示,虽然单一的这样一个动作似乎看不出来明显的作用效果,但是如果在一个很庞大的项目中,如果在可以使用这种数据传输方式的地方都使用这种方式,那么会节省很大的时间和资源开销。
(2)在进行该项目设计中,由微程序指令设计的特点可知,在执行完成某一条指令之后,如何找到所要执行下一条指令完全取决于当前指令后部所写入的微地址。
因此,要保证该程序按设计思路顺序并且顺利执行,每一条指令后部的微地址要确保与下一条所要执行的指令的存储地址一致
(3)在进行该项目设计中,因为打通每条需要使用的数据通路都需要有相对应的控制信号,且某个信号可能在不通过程中扮演的角色不一样。
因此,在此设计过程中,在编程操作控制信号时要保证准确性。
第四章收获、体会和建议
4.1收获、体会
关童:
虽然曾经在相关课程中学到了与课程设计有关的内容,但现在上手的时候感觉非常茫然,不知该如何下手,但是在老师的悉心指导和同学们之间的热烈讨论,让任务的进行渐渐有了方向,找到了关键所在。
随着不断的研究和尝试,设计的思路渐渐清晰,终于完成。
虽然在整个过程中经历了不少挫折,但是最后的成功带来的喜悦和收获让我觉得一切努力都是值得的。
张一轮:
这次实验经过了四天的时间,因为平时对这方面的知识了解的不够多,所以在实验中遇到了一些困难,但是在老师和同学的帮助下还是圆满的完成了这次课设,让我更加的喜欢上了这一门课,最后感谢老师这学期的教学与指导。
孙吉阳:
这次课设,加强了我们动手、思考、解决问题的能力,提高了综合应用所学知识解决问题的能力。
这次课设让我更加了解到计算机组成原理的重要性。
以及它对我们专业的发展发挥的作用。
对我们而言,知识上的收获很重要,谢谢老师一学期的教导。
张旭:
课设已经结束,学到了很多以前不理解的东西,我以前不曾了解的东西也懂得了如何运用,受益匪浅,对计算机的内部结构和原理有了更深的理解,最后感谢老师的指导。
附页
图1数据通路框图
图3接线图