计算机组成原理课程设计基本模型机.docx
《计算机组成原理课程设计基本模型机.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计基本模型机.docx(19页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计基本模型机
课程设计说明书
题目:
1、基本模型机设计与实现
2、扩展8255并行口设计
院系:
专业班级:
学号:
学生姓名:
指导教师:
2010年月日
课程设计(论文)任务书
计算机科学与工程学院 硬件 教研室
学号
*******
学生姓名
****
专业(班级)
计算机07级3班
设
计
题
目
基本模型机(算术运算,包括IN,OUT,STA,加ADD,减SUB,循环左移RLC六条指令)
设
计
技
术
参
数
微指令,程序,微程序控制器
设
计
要
求
设计机器指令和微指令,将机器指令和微指令编写成规定格式的十六进制文件,然后下载到实验箱上模拟验证。
工
作
量
1、画出流程图,编写微指令代码和程序
2、课程设计说明书1000字
工
作
计
划
第13周学习微程序控制器
第14周画出流程图,设计微指令,将机器指令和微指令编写成规定格式的十六进制文件
第15周连线,在实验箱上运行
参
考
资
料
计算机组成原理第三版(网络版)白中英主编
计算机组成原理实验指导书
指导教师签字
教研室主任签字
2009年9月28日
课程设计(论文)成绩评定表
指导教师评语:
成绩:
指导教师:
年月日
摘要
随着社会科技的发展,计算机被应用到各行各业,人们步入自动化、智能化的生活阶段。
本次课程设计课题是基本模型机的设计与实现,它正体现了这一点。
利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系。
本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,形成具有一定功能的完整的应用程序。
部件实验过程中,各部件单元的控制信号是人为模拟产生的,本课程设计将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能,通过设计流程图,编写机器指令,微指令和控制信号程序。
首先向存储器(RAM)中装入数据和程序,然后检查写入是否正确,启动程序执行。
另外,还需设计三个控制台操作微程序:
存储器读操作(READ),存储器写操作(WRITE),运行程序(RUN)。
以上各微指令设计完毕后,连接线路在ZY15CompSys12BB计算机组成原理教学实验箱运行程序,并将实验结果显示输出。
这一课题的实现不仅使我们对各种微指令有了熟练的掌握,更对以后的学习、工作中有深远的影响。
关键词:
微指令,机器指令,READ,WRITE,RUN,ZY15CompSys12BB
目录
摘要III
1设计背景1
2设计目标1
3概要设计2
3.1设计目的2
3.2设计仪器2
3.3设计内容2
4详细设计8
4.1系统需求分析8
4.2系统目标8
4.3功能分析8
4.4详细步骤8
5总结12
参考文献(资料)13
1设计背景
通过计算机组成原理理论课和几次实验的学习,尝试设计六条机器指令,并编写相应的微程序,完成由基本单元电路构成一台基本模型机,再经过调试指令和模型机使其在微程序的控制下自动产生各部件单元的正常工作控制信号。
在设计基本模型机4的实验过程中,个别部件单元的控制信号是人为模拟产生的,而本课程设计将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序。
本课程设计要求实现六条机器指令:
IN(输入),与AND(逻辑乘),STA(存数),OUT(输出),或OR(逻辑加),异或XOR(逻辑异)的输入,输出。
重点主要在逻辑运算的设计中。
2设计目标
在“微程序控制器的组成与微程序设计实验”的基础上,将第一部分中的各单元组成系统,构造一台基本模型计算机。
本次课程设计主要是为其定义六条机器指令,编写相应的微程序,并上机调试运行,形成整机概念。
用微程序控制器实现以下指令功能,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,自拟编写加ADD,减SUB,循环左移RLC的应用程序。
全部微指令设计完毕后,编写二进制代码,即使每条指令代码化。
连接线路在ZY15CompSys12BB计算机组成原理教学实验箱上运行,并显示输出实验结果。
3概要设计
3.1设计目的
1.在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台稍微复杂的模型计算机;
2.为其定义六条机器指令,并编写相应的微程序,具体上机调试掌握整机概念
3.2设计仪器
TDX—CM+计算机组成原理教学实验系统一台,排线若干;
PC机一台。
3.3设计内容
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能,这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本实验采用六条机器指令:
IN,OUT,STA,加ADD,减SUB,循环左移RLC其指格式如下:
地址 内容 助记符 说明
00 00 IN ;输入开关数据→R0,采集数据
01 10 ADD[0AH] ;R0+[0AH]→R0
02 0A ;地址
03 20 STA[0BH] ; R0→[0BH]
04 0B ;地址
05 30 OUT[0BH] ;[0BH] →BUS,输出显示
06 0B ;地址
07 40 SUB[0AH] ;R0-[0AH] →R0
08 0A ;地址
09 50 RLC
0A 01
0B
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序.
存储器读操作:
拨动总清开关CLR后,控制台开关SWB,SWA为”00”时,按START微动开关,可对RAM连续手动读操作.
存储器写操作:
拨动总清开关CLR后,控制台开关SWBSWA置为”01”时,按START微动开关可对RAM进行连续手动写入.
启动程序:
拨动总清开关CLR后,控制台开关SWBSWA置为“11”时,按START微动开关,既可转入到第01号“取址”微指令,启动程序运行.
上述三条控制台指令用两个开关SWBSWA的状态来设置,其定义如下
表3-1读写变化
SWB
SWA
控制台指令
0
0
1
0
1
1
读内存(KRD)
写内存(KWE)
启动程序(RP)
根据以上要素设计数据通路框图,如图3-2:
图3-1数据通路框图
微代码定义如表1-2所示:
表3-2微代码的定义
微程序
24
23
22
21
20-
19
18
17
16
15
14
13
控制信号
S3
S2
S1
S0
M
CN
RD
M17
M16
A
12
11
10
9
8
7
6
5
4
3
2
1
B
P
uA5
uA4
uA3
uA2
uA1
uA0
表3-3A,B,P字段内容
A字段B字段P字段
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
0
1
0
0
1
1
LDDR2
0
1
1
0
1
1
1
0
0
LDIR
1
0
0
1
0
0
P4
1
0
1
LOAD
1
0
1
ALU_G
1
0
1
1
1
0
LDAR
1
1
0
PC_G
1
1
0
LDPC
当拟定“取指令”微指令时,该微指令的判别测试字段为P1测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P1测试结果出现多路分支。
本次课程设计用指令寄存器的前4位(I7-I4)作为测试条件,出现6路分支,占用6个固定微地址单元。
控制台操作为P4测试,它以控制台开关SWB,SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其他地方就可以一条微指令占用控存一个微地址单元随意填写。
当全部微程序设计完毕之后,应将每条微指令代码化:
运行:
01
02
10
INADDSTAOUTSUBRLC
101112131415
010307163135
0426173236
0501253337
063425
01
37
01
01
25
01
控制台
00
20
WRITE(01)READ(00)RUN(11)
212023
2422
01
3027
图3-1微程序流程图
表3-4二进制微代码表
微地址
S3~CN
RD
M17M16
A
B
P
uA5~uA0
00
000000
0
11
000
000
100
010000
01
000000
0
11
110
110
110
000010
02
000000
0
01
100
000
001
001000
03
000000
0
01
110
000
000
000100
04
000000
0
01
011
000
000
000101
05
000000
0
11
010
001
000
000110
06
100101
0
11
001
101
000
000001
07
000000
0
01
110
000
000
010110
10
000000
0
00
001
000
000
000001
11
000000
0
11
110
110
110
000011
12
000000
0
11
110
110
110
000111
13
000000
0
11
110
110
110
001110
14
000000
0
11
110
110
110
011001
15
001100
0
11
000
001
000
011101
16
000000
0
01
110
000
000
001111
17
000000
0
01
010
000
000
010101
20
000000
0
11
110
110
110
010010
21
000000
0
11
110
110
110
010100
22
000000
0
01
010
000
000
010111
23
000000
0
11
000
000
000
000001
24
000000
0
00
010
000
000
011000
25
000001
1
10
000
101
000
000001
26
000000
1
01
000
001
000
000001
27
000001
1
10
000
101
000
010000
30
000001
1
01
000
101
000
010001
31
000000
0
01
110
000
000
000100
32
000000
0
01
011
000
000
000101
33
000000
0
11
010
001
000
000110
34
011000
0
11
001
101
000
011111
35
000110
0
11
000
100
000
011110
36
000000
0
11
001
100
000
011111
37
000000
0
11
010
001
000
010101
下面介绍指令寄存器(IR):
指令寄存器用来保存当前正在执行的一条指令。
当执行一条指令时,先把他从内存取到缓冲寄存器中,然后再传送至指令寄存器。
指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试[P
(1)],通过节拍脉冲T4的控制以便识别所要求的操作。
“指令译码器:
”(实验板上标有“INSDECODE”的芯片)根据指令中的操作码译码强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。
本系统有两种外部I/O设备,一种是二进制代码开关,它作为输入设备(INPUTDEVICE);另一种是数码块,它作为输出设备(OUTDEVICE)。
例如:
输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。
输出时,将输出数据送到数据总线上,当写信号(W/E)有效时,将数据打入输出锁存器,驱动数码块显示。
4详细设计
4.1系统需求分析
一台计算机所能执行的各种指令集合称为指令系统或指令集。
一台特定的计算机只能执行自己指令系统中的指令。
因此,指令系统就是计算机的机器语言。
指令系统表征着计算机的基本功能和使用属性,它是计算机系统设计中的核心问题。
指令系统的设计主要括指令功能、操作类型的设计,寻址方式和指令格式的设计。
计算机的性能与它所设置的指令系统有很大的关系,指令系统反映了计算机的主要属性,而指令系统的设置又与机器的硬件结构密切相关。
指令是计算机执行某种操作的命令,而指令系统是一台计算机中所有机器指令的集合。
通常性能较好的计算机都设置有功能齐全、通用性强、指令丰富的指令系统,而指令功能的实现需要复杂的硬件结构来支持。
4.2系统目标
在基本模型机的基础上改进并实现IN,OUT,STA,加ADD,减SUB,循环左移RLC六条指令。
4.3功能分析
该系统实现的功能是对输入的数据可以和内存中的数据进行连续的加、减及循环左移运算,并对其结果进行存储,显示等功能,从而得到一个简易的复杂模型机所实现的功能。
4.4详细步骤
(1)按图4-1连接实验线路。
4-1实验线路图
(2)写程序
联机读/写程序
按照规定格式,将机器指令及表5-2微指令二进制表成十六进制的如下格式文件。
微指令格式中的微指令代码微将表5-2中的24位微代码按从左到右分成3个8位,将此三个8位二进制代码化为相应的十六进制数即可。
程序
$P0000
$P0110
$P020A
$P0320
$P040B
$P0530
$P060B
$P0740
$P080A
$P0950
$P0A01
微程序
$M00018110
$M0101ED82
$M0200C048
$M0300E004
$M0400B005
$M0501A206
$M06959A01
$M0700E016
$M08001001
$M0901ED83
$M0A01ED87
$M0B01ED8E
$M0C01ED99
$M0D31821D
$M0E00E00F
$M0F00A015
$M1001ED92
$M1101ED94
$M1200A017
$M13018001
$M14002018
$M15070A01
$M16028201
$M17070A10
$M18068A11
$M1900E01A
$M1A00B01B
$M1B01A21C
$M1C619A1F
$M1D19881E
$M1E01981F
$M1F01A215
(3)运行程序
①.单步运行程序
A使编程开关处于”RUN’的状态,STEP为”STEP”状态,STOP为”RUN”状态’
B拨动总清处于CLR(0_1),微地址清零,程序计数器清零,程序首址为00H..
C单步运行一条微指令,每按动一次START键,即单步运行一条指令,对照微程序流程图,观察微地址显示是否和流程一致.
D当运行结束后.可检查存数单元中的结果是否和理论植一致.
②.连续运行程序
A使”STARTUNIT”中的STEP开关置为”ECEX”状态.STOP开关置为”RUN”状态.
B拨动CLR开关,清微地址及程序计数器,然后按动START,系统连续运行程序,稍后将”STOP”拨至”STOP”时,系统停机.
C停机后,可检查存数单元结果是否正确.
③.若联机运行程序时,进入DEBUG调试界面,总清开关CLR清零后,程序首址为00H.按相应功能键既可联机运行调试程序。
5总结
经过这次课程设计,我体会到自己所学的东西太少了,很多都不知道。
虽然这次设计的只是一个小程序,但是这其间我还是学到了不少东西。
在这次课程设计的过程,有些很基本的知识出现记混淆的现象,通过查书及询问同学,最终明白了。
本次课程设计我们要设计一台微程序控制的模型机,以对计算机能有一个整机的概念,完成对计算机组成原理这门课程的综合应用,达到学习本书的作用。
作为一个计算机系学生这是必需掌握的,使我们对数据选择器,移位器,加法器,运算器,存储器和微程序控制器,有了比较透彻的认识。
由于计算机设计的部件较多,结构原理较复杂,对于我们这样的初设计者来说感到无从下手,所以我们在整个过程中采取由浅入深,由简单到复杂的放法,通过这次设计,使我们能清楚的了解计算机的基本组成,基本原理和设计步骤,设计思路和调试步骤,最终能清晰的建立起整机概念,为独立完成计算机设计奠定了基础。
课程设计结束了,从中我们也学到了不少知识。
虽然计算机组成原理的课程设计与学习已经结束,可我们学习之路并没有结束,我们会继续努力学习其相关的知识,以适应社会的发展与需要,这样才能真正成为一名合格的大学生。
在此次的设计中,感谢老师对我们的帮助和指导。
过程还不够完善,希望老师继续指导。
参考文献(资料)
[1]张昆藏.计算机系统结构.北京:
科学出版社,1994
[2](美)普拉持(Platt,D.S)著.黄慧萍等译.Microsoft.NET精髓.北京:
机械工业出版社,2003.9
[3]白中英.计算机组成原理(第二版).北京:
科学出版社,1998
[4]白中英.计算机组成原理(第三版·网络版).北京:
科学出版社,1998
[5],中国研究生招生信息网
[6]计算机组成原理实验指导书.王诚,宋佳兴,董长洪编著.清华大学出版社,2002.
[7]《计算机组成原理》学习指导与训练.旷海兰等编著.中国水利水电出版社,2004.
[8]计算机原理与设计.宋焕章张春元王保恒.长沙:
国防科技大学出版社,2000.