计算计组成原理课程设计 黄颖芳.docx
《计算计组成原理课程设计 黄颖芳.docx》由会员分享,可在线阅读,更多相关《计算计组成原理课程设计 黄颖芳.docx(18页珍藏版)》请在冰豆网上搜索。
计算计组成原理课程设计黄颖芳
目录
1绪论1
1.1课设的目的和意义1
1.2课设内容1
1.3预期结果1
2问题描述2
3实验原理3
3.1控制台指令3
3.2微代码定义3
3.3数据通路框图4
4设计思路5
4.1二进制微代码表设计5
4.2机器指令程序5
4.3线路连接6
4.4微程序流程及说明7
5运行调试和分析9
5.1运行步骤9
5.2运行结果和分析10
6心得体会14
7参考文献15
1绪论
1.1课设的目的和意义
在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
为其定义五条机器指令,并编写相应的为程序,具体上机调试掌握整机概念。
1.2课设内容
利用所学过的理论知识,微程序设计的思想,设计一台基本模型机,写出要设计的指令系统的微程序并实现相关的指令。
1.3预期结果
本课程设计将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序。
2问题描述
一台计算机所能执行的各种指令集合称为指令系统或指令集。
一台特定的计算机只能执行自己指令系统中的指令。
因此,指令系统就是计算机的机器语言。
指令系统表征着计算机的基本功能和使用属性,它是计算机系统设计中的核心问题。
指令系统的设计主要括指令功能、操作类型的设计,寻址方式和指令格式的设计。
计算机的性能与它所设置的指令系统有很大的关系,指令系统反映了计算机的主要属性,而指令系统的设置又与机器的硬件结构密切相关。
指令是计算机执行某种操作的命令,而指令系统是一台计算机中所有机器指令的集合。
通常性能较好的计算机都设置有功能齐全、通用性强、指令丰富的指令系统,而指令功能的实现需要复杂的硬件结构来支持。
3实验原理
3.1控制台指令
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本实验采用五条机器指令:
IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移)。
其中IN为单字长,其余为双字长指令。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
存储器读操作(KRD):
拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START微动开关,可对RAM连续手动读操作。
存储器写操作(KWE):
拨动总清开关CLR后,控制台开关SWB、SWA为“01”时,按START微动开关,可对RAM进行连续手动写入。
启动程序:
拨动总清开关CLR后,控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行
上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如表3.1:
SWB
SWA
控制台指令
0
0
1
0
1
1
读内存(KRD)
写内存(KWE)
启动程序(RP)
表3.1控制台指令
3.2微代码定义
微代码定义如表3.2所示:
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字段C字段
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
9
8
7
选择
0
0
0
0
0
1
P
(1)
0
1
0
P
(2)
0
1
1
P(3)
1
0
0
P(4)
1
0
1
AR
1
1
0
LDPC
12
11
10
选择
0
0
0
0
0
1
RS-B
0
1
0
RD-B
0
1
1
RI-B
1
0
0
299-B
1
0
1
ALU-B
1
1
0
PC-B
表3.2微代码定义表
3.3数据通路框图
根据以上要求设计的数据通路框图如图3.3所示:
图3.3数据通路框图
4设计思路
4.1二进制微代码表设计
当全部为程序设计完毕后,应将每条微指令代码化,将微程序流程图按微指令格式转化而成的“二进制微代码表”如表4.1所示:
微地址
S3S2S1S0MCNWEA9A8
A
B
C
UA5…UA0
00
000000011
000
000
100
010000
01
000000011
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
011111
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
000000011
110
001
000
011001
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
表4.1二进制代码表
4.2机器指令程序
本实验设计机器指令程序如下:
地址(二进制)内容(二进制)助记符说明
0000000000000000IN“INPUTDEVICE”→R0
0000000100010000ADD[0AH]R0+[0AH]→R0
0000001000001010
0000001100100000STA[0BH]R0→[0BH]
0000010000001011
0000010100110000OUT[0BH][0BH]→BUS
0000011000001011
0000011101000000JMP[00H]00H→PC
0000100000000000
00001001
0000101000000001自定
00001011求和结果
4.3线路连接
线路连接如图4.3所示:
图4.3线路连接图
4.4微程序流程及说明
系统涉及到的微程序流程如图4.4,当拟定“取址”微指令时,该微指令的判别测试字段为P
(1)测试。
由于“取址”微指令是所有微程序都使用的公用微指令,因此P
(1)的测试结果出现多路分支。
本机用指令寄存器的前4位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定微地址单元。
控制台操作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用一个微地址单元随意填写。
注意:
微程序流程图上的单元地址为8进制。
微程序流程图如图4.4所示:
图4.4微程序流程图
5运行调试和分析
5.1运行步骤
按照规定格式,将机器指令及微指令二进制表编辑成十六进制的如下格式文件。
机器指令格式说明:
$XXXX
机器指令代码
十六进制地址
微指令格式说明:
$MXXXXXXXX
微指令代码
十六进制地址
因系统文件格式要求,微指令格式文件和控制存储器的微指令代码第一字节(前8位)与第三字节(后8位)对换一下。
程序
$P0000
$P0110
$P020A
$P0320
$P040B
$P0530
$P060B
$P0740
$P0800
$P0A01
$M0010101
$M0182ED01
$M0248C00
$M0304E000
$M0505B000
$M0506A201
$M06019A95
$M070DE000
$M08011000
$M0983ED01
$M0A87ED01
$M0B8EED01
$M0C96ED01
$M0D018202
$M0E0FE000
$M0F15A000
$M1092ED01
$M1194ED01
$M1217A000
$M12018001
$M14182000
$M15010A07
$M1681D100
$M17100107
$M18118A06
用联机软件的传送文件功能(F4)将该格式文件传入实验系统即可。
运行步骤
①单步运行程序
A.使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。
B.拨动总清开关CLR(0→1),微地址清零,PC计数器清零,程序首地址为00H。
C.单步运行一条微指令,每按动一次START键,即单步运行一条微指令。
对照微程序流程图,观察微地址显示灯是否和流程一致。
D.当运行结束后,可检查存数单元(0B)中的结果是否和理论值一致。
②连续运行程序
A.使“STATEUNIT”中的STEP开关置于“EXEC”状态,STOP开关置为“RUN”状态。
B.拨动CLR开关,清微地址及PC计数器,按动START,系统连续运行程序,稍后将STOP拨至“STOP”时,系统停机。
C.停机后,可检查存数单元(0B)结果是否正确。
若联机运行程序时,进入DEBUG调试界面,总清开关CLR(0→1)清零后,程序首地址为00H,按相应功能键即可联机运行、调试程序。
5.2运行结果和分析
进入联机程序,进入实验,按F4写入我们的程序名称,待装入数据后,按F6debug进入cpu的原理图。
按F2单步执行程序。
从实验器材中向R0装入被减数B8H(184D)如图5.21所示:
图5.21
从内存中读入减数08H(8D)如图5.22所示:
图5.22
将R0中的被减数B8H(184D)装入DR1中,同时将内存中的减数08H(8D)装入DR2中如图5.23所示:
图5.23
将DR1和DR2的值送入ALU运算器中,进行减法运算,得结果为B0H,并将其送入R0中,如图5.24所示:
图5.24
将R0中的差送入内存中如图5.25所示:
图5.25
将结果通过ALU运算器输出为B0H(176D)如图5.26所示:
图5.26
6心得体会
通过这次的计算机组成原理的课程设计,我对计算机内部元件的工作原理有了进一步的了解与认识。
在课堂上有很多没有掌握的内容借这次机会好好的复习消化了。
我对机器指令及微指令的的编码方法不了解,对计算机各部件的组成和工作原理也不是很理解。
为了弄清楚这些问题,我又把课本拿出来重新学习相关的章节。
由于计算机设计的部件较多,结构原理较复杂,对于我们这样的初设计者来说感到无从下手,所以我们在整个过程中采取由浅入深,由简单到复杂的放法,通过这次设计,使我们能清楚的了解计算机的基本组成,基本原理和设计步骤,设计思路和调试步骤,最终能清晰的建立起整机概念,为独立完成计算机设计奠定了基础。
这次的课程设计题目是基本模型机的设计与实现,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
并为其定机器指令,并编写相应的微程序,具体上机调试掌握整机概念。
在课程设计的最初阶段,我没有急于进行具体的设计,而是先理清思路,明确自己要做的工作是什么,如何来实现基本模型机的相关功能。
通过这次课程设计,我的收获很多。
课程设计不仅巩固我的理论知识,将理论和实践结合起来,锻炼了我的动手能力,也让我认识到自己的不足之处,争取以后能克服这些缺点,更进一步提高自己各个方面的能力。
7参考文献
[1]王爱英.《计算机组成原理与结构第3版》.清华大学出版社,2001
[2]《计算机组成原理实验指导书》