计算机组成原理模型机设计与实现报告.docx
《计算机组成原理模型机设计与实现报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理模型机设计与实现报告.docx(11页珍藏版)》请在冰豆网上搜索。
计算机组成原理模型机设计与实现报告
课程设计
课程名称计算机组成原理
题目模型机设计与实现
2016年6月26日
课程设计任务书
设计题目:
模型机设计与实现
设计目的:
利用基本模型机的构建与调试实验,完整地建立计算机硬件的整机模
型,掌握CPU的基本结构和控制流程,掌握指令执行的基本过程。
设计任务(在规定的时间内完成下列任务)
1.掌握CISC微控制器功能与微指令格式
2.设计五条机器指令,并编写对应的微程序
3.在TDN-CM+教学实验系统中调试机器指令程序,确认运行结果
时间安排(集中时间)
1.第18周周一(1-4):
全体集中讲解课程设计原理与方法
2.第18周周一~周四(1-4):
分班调试,撰写设计报告
3.第18周周五:
验收及答辩。
具体要求
1.周一:
熟悉任务,掌握设备
2.周一:
完成模型机的实验线路连接
3.周二:
调试模型机,记录实验结果
4.周三:
拟定课程设计报告大纲
5.周四、五:
撰写并打印课程设计报告
指导教师签名:
2016年6月29日
教研室主任签名:
2016年月日
1.实验目的
1.1在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
1.2为其定义五条机器指令,并编写相应的微程序,具体上机调试掌握整机概念。
2.实验设备:
2.1TDN-CM+或TDN-CM++教学实验系统一台。
2.2PC微机一台。
3.实验原理:
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一段微程序。
本实验采用五条机器指令:
IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移)、其指令格式如下(前4位为操作码):
其中IN为单字长(8位),其余为双字长指令,××××××××为addr对应的二进制地址码。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
存储器读操作(KRD):
拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START微动开关,可对RAM连续手动读操作。
存储器写操作(KWE):
拨动总清开关CLR后,控制台开关SWB、SWA置为“01”时,按START微动开关可对RAM进行连续手动写入。
启动程序:
拨动总清开关CLR后,控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。
上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如下:
根据以上要求设计数据通路框图,如图5-1。
微代码定义如表5-1所示。
图5-1数据通路框图
系统涉及到的微程序流程见图5-2,这里“取指”是公用微指令,为了能确定不同机器指令有各自不同的微程序转向,我们在这里以指令寄存器的前4位(IR7—IR4)作为测试条件,引入了P
(1)指令测试字段,如此,对于5条机器指令,就可以有5路P
(1)测试分支,对于每一指令分别予以微程序解释。
控制台操作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。
注意:
微程序流程图上的单元地址为8进制。
当全部微程序设计完毕后,应将每条微指令代码化,表5-2即为将图5-2的微程序流程图按微指令格式转化而成的“二进制微代码表”。
表5-1微代码定义
图5-2微程序流程图
表5-2二进制代码表
微地址
S3S2S1S0MCNWEA9A8
A
B
C
μA5…μA0
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
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
下面介绍指令寄存器(IR):
指令寄存器用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存取到指令寄存器中,然后再对其进行译码、执行。
指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试[P
(1)],通过节拍脉冲T4的控制以便识别所要求的操作。
“指令译码器”(实验板上标有“INSDECODE”的芯片)根据指令中的操作码译码强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。
本系统有两种外部I/O设备,一种是二进制代码开关,它作为输入设备(INPUTDEVICE);另一种是数码块,它作为输出设备(OUTPUTDEVICE)。
例如:
输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。
输出时,将输出数据送到数据总线上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码块显示。
本实验设计机器指令程序如下:
地址(二进制)容(二进制)助记符说明
0000000000000000INR0“INPUTDEVICE”R0
0000000100010000ADD[0AH],R0R0+[0AH]R0
0000001000001010
0000001100100000STAR0,[0BH]R0[0BH]
0000010000001011
0000010100110000OUT[0BH][0BH]LED
0000011000001011
0000011101000000JMP00H00HPC
0000100000000000
00001001
0000101000000001自定
00001011求和结果
4.实验步骤:
4.1按图5-3连接实验线路。
4.2写程序方法一:
手动写入
①先将机器指令对应的微代码正确地写入2816中,由于在实验三微程序控制实验中已将微代码写入E2PROM芯片中,对照表6-2校验正确后就可使用。
②使用控制台KWE和KRD微程序进行机器指令程序的装入和检查。
A.使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”状态。
B.拨动总清开关CLR(1→0→1),微地址寄存器清零,程序计数器清零。
然后使控制台SWB、SWA开关置为“01”,按动一次启动开关START,微地址显示灯显示“010001”,再按动一次START,微地址灯显示“010100”,此时数据开关的内容置为要写入的机器指令,按动两次START键后,即完成该条指令的写入。
若仔细阅读KWE的流程,就不难发现,机器指令的首地址总清后为零,以后每个循环PC会自动加1,所以,每次按动START,只有在微地址灯显示“010100”时,才设置内容,直到所有机器指令写完。
C.写完程序后须进行校验。
拨动总清开关CLR(1→0→1)后,微地址清零。
PC程序计数器清零,然后使控制台开关SWB、SWA为“00”,按动启动START,微地址灯将显示“010000”,再按START,微地址灯显示为“010010”,第三次按START,微地址灯显示为“010111”,再按START后,此时输出单元的数码管显示为该首地址中的内容。
不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。
每次在微地址灯显示为“010000”时,是将当前地址中的机器指令写入到输出设备中显示。
方法二:
联机读/写程序
按照规定格式,将机器指令及表5-2微指令二进制表编辑成十六进制的如下格式文件。
微指令格式中的微指令代码为将表5-2中的24位微代码按从左到右分成3个8位,将此三个8位二进制代码化为相应的十六进制数即可。
用联机软件的“【转储】—【装载】”功能将该格式文件装载入实验系统即可。
(3)运行程序方法一:
本机运行
①单步运行程序
A.使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。
B.拨动总清开关CLR(1→0→1),微地址清零,程序计数器清零。
程序首址为00H。
C.单步运行一条微指令,每按动一次START键,即单步运行一条微指令。
对照微程序流程图,观察微地址显示灯是否和流程一致。
D.当运行结束后,可检查存数单元(0BH)中的结果是否和理论值一致。
②连续运行程序
A.“STATEUNIT”中的STEP开关置为“EXEC”状态。
STOP开关置为“RUN”状态。
B.拨动CLR开关,清微地址及程序计数器,然后按动START,系统连续
运行程序,稍后将STOP拨至“STOP”时,系统停机。
C.停机后,可检查存数单元(0BH)结果是否正确。
方法二:
联机运行
联机运行程序时,进入软件界面,装载机器指令及微指令后,选择“【运行】-【通路图】-【复杂模型机】”功能菜单打开相应动态数据通路图,按相应功能键即可联机运行、监控、调试程序。
(软件使用说明请看《用户手册》)
总清开关CLR清零(1→0→1)后,将使程序首址及微程序地址为00H,程序可从头开始运行。
图5-3实验接线图
5.实验结果:
首先验证微控制器的存储特性。
将编程开关置为“写入”状态,写入如表2位微地址为06~0D的微代码。
每写入一条指令,按一下“启动运行”开关。
再将微地址和总清开关置0编程开关置为“读”状态,即可验证是否存储正确。
若有错误,则需检查连线或者是重新输入。
经试验,成功显示。
最后,将编程开关置为“运行”状态,即可运行所写入的微程序。
经试验,结果显示正确。
6.总结:
经过这次课程设计,我体会到自己所学的东西太少了。
很多都不知道,甚至连题目都不懂。
在这次课程设计的过程中,有些很基本的知识出现记忆混淆的现象,通过查书及询问同学,最终基本上明白了。
本次课程设计,我们要设计一台微程序控制的模型机,以对计算机能有一个整机的概念,完成对计算机组成原理这门课程的综合应用,达到学习这本书的作用。
作为一个计算机专业的学生,这是必须掌握的,使我们对数据选择器、移位器、加法器、运算器、存储器和微程序控制器,有了比较彻底地认识。
由于计算机设计的部件较多,结构原理较复杂,对我们这样的初设计者来说感到无从下手,所以我们在整个过程中采取由浅入深,有简单到复杂的做法,通过这次设计,是我们能清楚地了解计算机的基本组成,基本原理和设计步骤,设计思路和调试步骤,最终能清晰地建立其整机的概念,为独立完成计算机设计奠定了基础。
通过这次实践,不仅让我对计算机的基本组成、简单运算器的数据传送通路组成、静态随机存取存储器RAM工作特性及数据的读写方法、时序信号发生电路组成原理、微程序控制器的设计思想和组成原理、微程序的编制、写入过程有了进一步的了解,也让我觉得自己的动手能力有了很大的提高。
在课程设计中自己动脑子解决遇到的问题,书本上的知识有了用武之地,这巩固和深化了自己的知识结构。
而在这次实践中,我相信,只要自己在每一次实践都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲手动手做试验,而不是想着其他人的劳动果实;其次就是还要多操作,只有多操作才能从中间发现问题,才能及时向老师和同学请教。
解决问题,从而更好地掌握书本中的知识。
设计过程中质疑(或答辩)记载:
1执行输入指令时,输入指令由哪些微指令组成?
答:
输入指令是由SW→RO微指令组成。
2执行程序时,为什么每执行完一条机器指令,微地址都要返回到01?
答:
因为每执行完一条机器指令,都要读取PC的值来顺序获得下一条机器指令的地址。
3在每一条机器指令的执行过程中,第一个CPU周期是由哪些微指令组成“它们完成了什么操作?
答:
在每一条机器指令的执行过程中,第一个CPU周期,都是有PC→ARPC+1,RAM→BUSBUS→IR,P
(1)微指令组成;他们完成取值操作并指定下一条机器指令的地址。
指导教师评语:
评分:
签名:
2016年月日