计算机组成原理课程设计报告.docx
- 文档编号:23660295
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:13
- 大小:210.61KB
计算机组成原理课程设计报告.docx
《计算机组成原理课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告.docx(13页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计报告
课程设计
课程名称计算机组成原理
题目模型机设计与实现
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.在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
2.为其定义五条机器指令,并编写相应的微程序,具体上机调试掌握整机概念
二.实验设备
1.TDN-CM+或TDN-CM++教学实验系统一台。
2.PC微机一台。
三.实验原理
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,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求和结果
四.实验步骤
(1)按图5-3连接实验线路。
(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实验接线图
总结
这次课程设计使我从中获益匪浅。
对计算机组成原理的理论知识有了更深刻的理解,对于以前一知半解的东西也有了充分的理解。
因为课程设计是要求将以前在课堂上学的理论知识运用到实际的设计当中去,但是在设计过程中,我们一定会碰到各种各样的问题。
但是为了解决这些问题,我们一定会更加仔细认真的去翻阅自己以前学过但是以为已经了解熟悉的东西。
这在无形中帮助我们加深对所学知识的了解及运用能力,并且让我们明白什么地方是我们真正需要去关注的。
而且这样我们对课本以及以前学过的知识有了一个更好的总结与理解。
在模型机设计过程中我碰到了许多问题,而这些问题都是需要我认真仔细才能检查出来,而且,这些设计是要通过系统的设计才能完成的,不能想到哪里就做到哪里,必须在设计之前有个系统的分析,在详细设计时更加要仔细对待,因为对于各个代码都不能出错,一些细微的错误就会导致所有的错误。
通过这次课设让我明白了理论和实际操作之间差距,而且也让我明确得意识到自己在学习上有很多的知识漏洞,应努力弥补,并且给了我努力的明确方向,知识只有会运用了才是真正的了解掌握了这些知识。
而这些不了解的差距在以后的工作中将是致命的。
所有又一次给我的提点。
给我不断完善自己的机会。
给了我实际工作的一点有用的经验,这是所有的理论都比不过实践的地方,而我在今后的学习中,也将向着这些方面去完善。
设计过程中质疑(或答辩)记载:
1.微指令在编的工程中应该注意什么?
答:
在写微指令时,没有用到的位置0,注意A、B、C字段的值,根据微程序流程图编写微指令。
2.在微程序运行过程中如何验证微程序流程是否正确?
答:
在运行程序时可使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”,进行单步运行,每次单步运行一条微指令,每按动一次START键,即单步运行一条微指令,可对照微程序流程图,观察微地址显示灯是否和流程一致。
,如果一致则微程序流程正确,反之错误。
指导教师评语:
评分:
签名:
2015年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 报告