计算机组成原理课程实习报告.docx
- 文档编号:30472502
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:32
- 大小:286.14KB
计算机组成原理课程实习报告.docx
《计算机组成原理课程实习报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程实习报告.docx(32页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程实习报告
福建农林大学计算机与信息学院
计算机类
课程实习报告
课程名称:
计算机组成原理
实习题目:
简单模型机设计
姓名:
郑彬
系:
计算机
专业:
计算机科学与技术
年级:
2008级
学号:
081150002
指导教师:
张旭玲
职称:
讲师
2010年6月25日
福建农林大学计算机与信息学院计算机类
课程实习报告结果评定
评语:
能够参加课程实习,认真完成任务
(20分)
实习报告格式符合要求,内容完整
(20分)
流程图、电路图正确,文字叙述正确
(25分)
对所学知识的理解程度及分析问题的能力
(35分)
成绩:
指导教师签字:
评定日期:
2010.7.3
目录
1、实习的目的和任务………………………………………………………………4
2、实习要求…………………………………………………………………………4
3、实习地点…………………………………………………………………………4
4、主要仪器设备……………………………………………………………………4
5、实习内容…………………………………………………………………………4
5.1实验原理………………………………………………………………………4
5.2实验步骤………………………………………………………………………9
5.3实验过程及结果、分析:
数据变化、数据流程和截图
………………………………………………………………………………15
6、问题讨论与分析
……………………………………………………………………………………23
7、结束语……………………………………………………………………………24
简单模型机设计
1.实习的目的和任务
《计算机组成原理》是一门理论性和实践性非常强的课程,学生仅仅通过课堂教学来获取理论知识是远远不够的,必须加强实践教学,通过亲自动手,巩固课堂知识、提高综合运用所学的理论知识和方法独立分析和解决问题的能力,并从成功和失败的体验中得到锻炼,才能够掌握和运用所学到的理论知识来解决实际问题,达到学以致用的目的。
除此之外,《计算机组成原理课程实习》为学生提供了一次学习综合运用所学知识去解决实际问题的锻炼。
《计算机组成原理课程实习》是学生学习《计算机组成原理》课程期间的一个重要教学环节。
通过实习总结计算机组成原理课程的学习内容:
层次化设计方法、多路开关,逻辑运算部件,微程序控制的运算器设计、微程序控制的存储器设计、简单计算机的设计等内容。
为将来从事专业工作打下基础,培养良好的职业道德和严谨的工作作风。
2.实习要求
了解并掌握计算机组成原理设计的一般方法,具备初步的独立分析和设计能力;通过该课程设计的学习,总结计算机组成原理课程的学习内容,层次化设计方法、多路开关,逻辑运算部件,微程序控制的运算器设计、微程序控制的存储器设计、简单计算机的设计。
提高综合运用所学的理论知识和方法独立分析和解决问题的能力。
3.实习地点
田家炳C404硬件实验室
4.主要仪器设备(实验用的软硬件环境)
ZYE1603B计算机组成原理实验仪一台
PC机一台
ZYE1603B计算机组成原理实验仪联机软件
5.实习内容
5.1实验原理:
在第一部分的单元实验中,所有的控制信号是认为用开关单元产生的,但是在实际的cpu中,所有的控制信号都是由cpu自动产生的。
所以在本次实验中我们用微程序来控制,自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制来完成,cpu从内存中取出一条指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一段微程序。
本实验设计了5条机器指令,其指令格式如下:
助记符机器指令码说明
IN00000000:
输入:
“INPUT”设备中的开关状态→R0
ADDaddr00010000XXXXXXXX:
二进制加法,R0+[addr]→R0
STAaddr00100000XXXXXXXX:
存数,R0→[addr]
OUTaddr00110000XXXXXXXX:
输出,[adddr]→BUS
JMPaddr01000000XXXXXXXX:
无条件转移,addr→PC
机器指令码的前4位为操作码。
其中IN为单字长,其余为双子长指令,XXXXXXXX为addr对应的二进制地址码。
为了来向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
存储器读操作(READ):
拨动总清开关CLR后,置开关单元SWB,SWA为“00”时,按START微动开关,可对RAM连续手动读取操作。
存储器写操作(WRITE):
拨动总清开关CLR后,置开关单元SWB,SWA为“01”时,按START微动开关,可对RAM进行连续手动写入。
启动程序(RUN):
拨动总清开关CLR后,置开关单元SWB,SWA为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。
上述3条控制台指令用两个开关SWB,SWA的状态来设置,其定义如下:
SWB
SWA
控制台命令
0
0
1
0
1
1
读内存
写内存
启动程序
根据以上要求设计数据通路框图,如下图,伪代码定义入下表所示。
基本模型机数据连通框图
基本模型机微指令结构图
微程序
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
C
uA5
uA4
uA3
uA2
uA1
uA0
A字段B字段P字段
系统涉及到微程序流程图,当拟定“取指令”微指令时,该微指令的判别测试字段为P1测试。
由于“取指令”微指令是所有微程序都使用的公用微指令,因此P1的测试结果出现多路分支。
本机用指令寄存器的高4位(17-14操作码)作为测试条件,出现5路分支,占用5个固定微地址单元。
控制台操作为P4测试,它以控制开关SWB,SWA作为测试条件,出现3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其他地方就可以一条微指令占用一个微地址单元随意填写。
当全部微程序设计完毕后,应将每条微指令代码化,下表即为下图的微程序流程图按该微指令格式转化而成的“二进制微代码表”。
运行
基本模型机微程序流程图
二进制代码表
微地址
S3S2S1S0MCNWEB1B0
A
B
C
UA5…UA0
00
000000011
000
000
100
001000
01
000000011
110
110
110
000010
02
000000001
100
000
001
010000
03
000000001
110
000
000
000100
04
000000001
011
000
000
000101
05
000000011
010
001
000
000110
06
100100011
001
101
000
000001
07
000000001
110
000
000
001111
08
000000011
110
110
110
001010
09
000000011
110
110
110
001100
0A
000000001
010
000
000
001110
0B
000000011
000
000
000
000001
0C
000000000
010
000
000
001101
0D
000000101
000
101
000
001001
0E
000000110
000
101
000
001000
0F
000000101
000
001
000
000001
10
000000000
001
000
000
000001
11
000000011
110
110
110
000011
12
000000011
110
110
110
000111
13
000000011
110
110
110
011001
14
000000011
110
110
110
011100
15
001100011
000
001
000
011101
16
001100011
000
001
000
011111
17
001100011
000
001
000
100001
18
001100011
000
001
000
100011
19
000000001
110
000
000
011010
1A
000000111
010
000
000
011011
1B
000000110
000
101
000
000001
1C
000000001
101
000
110
000001
1D
001000011
000
100
000
011110
1E
000000011
001
100
000
000001
1F
001010011
000
100
000
100000
20
000000011
001
100
000
000001
21
000100011
000
100
000
100010
22
000000011
001
100
000
000001
23
000110011
000
100
000
100100
24
000000011
001
100
000
000001
25
000000011
110
110
110
100110
26
000000001
110
000
000
100111
27
000000001
011
000
000
101000
28
000000011
010
001
000
101001
29
011000011
001
101
000
000001
2A
000001011
001
001
000
000001
2B
001110011
001
101
000
000001
2C
000001011
110
110
110
101101
2D
000000001
110
000
000
101110
2E
000000111
010
000
000
000001
2F
000001011
110
110
110
110000
30
000000001
110
000
000
110000
31
000000111
010
000
000
000001
本系统有两种外部I/O设备,一种是二进制数码开关,作为输入设备(输入单元),另一种是两位十六进制数LED数码管,作为输出设备(输出单元)。
在输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息不变,输出时,将输出数据送到数据总线上,当写信号(WE)有效时,将数据打入输出锁存器,驱动数码管显示。
5.2实验步骤
1.根据该模型机的指令系统,编写一段程序。
这里给出两个参考程序。
参考程序一:
本程序从输入设备(数码开关)取入数据,保存在内存单元08,然后从08单元送到输出设备(LED数码管)进行显示。
每次循环过程中,可以使输入设备数据改变,考察输出显示的结果(请实验者考虑:
如何修改程序,使程序只执行一次从输入设备取出数据,送出输出设备显示)。
设计机器指令程序如下(机器码和地址为十六进制数据)。
地址内容助记符说明
0000IN;输入开关数据→R0
0120STA[08H];R0→[08]
0208;地址
0330OUT[08H];[08H]→BUS
0408;地址
0540JMP[00H];00H→PC
0600;跳转地址
参考程序二:
本程序从输入设备(数码开关)读入数据,与0A单元的数据相加,然后送到输出设备(LED数码管)进行显示。
本程序不断地循环运行,在运行中可改变输入开关(INPUT)的值,观察输出显示的变化。
设计机器指令程序如下(机器码和地址为十六进制数据)。
地址内容助记符说明
0000IN;输入开关数据→R0,采集数据
0110ADD[0AH];R0+[0AH]→R0,输入数据与指定数据相加
020A;地址
0320STA[0BH];R0→[0B]
040B;地址
0530OUT[0BH];[0BH]→BUS,输出显示
060B;地址
0740JMP[00H];00H→PC
0800;跳转地址
0A01;加数,可自定
0B;求和结果保存在0B单元
2.连接实验线路
3.写程序
对于本实验箱可以用两种方法来写入程序。
方法一:
联机读/写程序
按照规定格式,将机器指令及表2-2微指令二进制表编辑成十六进制的规定格式文件。
微指令格式中的微指令代码为将表2-2中的24位微代码按从左到右分成3个8位,将此三个8位二进制代码化为相应的十六进制数即可。
使用联机软件的文件装载将实验程序和微程序下载到实验箱中,并用软件的读出功能进行检查。
其中参考程序一对应的文件名为“基本模型机1.TXT”,参考程序二对应的文件名为“基本模型机2.TXT”(联机软件的使用方法参看附录2)。
方法二:
手动写入
(1)先将机器指令对应的微代码正确地写入28C16中,由于在实验1.7微程序控制器的组成与微程序设计实验中已将微代码写入E2PR0M芯片中,对照表2-5校验正确后就可使用。
(2)使用控制台WRITE和READ微程序进行机器指令程序的装入和检查,其操作如下:
A.使SIGNALUNIT单元的SP03为“STEP”状态,SP04为“RUN”状态,CONTROLUNIT的开关SP05处于“NORM”状态,开关SP06处于“RUN”状态。
B.拨动开关单元的总清开关CLR(1à0à1),微地址寄存器清零,程序计数器清零。
然后使开关单元的SWB、SWA开关设置为“01”,按动一次控制台单元的触动开关START,微地址显示灯显示“010001”,再按动一次START,微地址灯显示“010100”,此时数据开关的内容(输入单元)置为要写入的机器指令的内容,按动两次START键后,即完成该条指令的写入。
若仔细阅读WRITE的流程,就不难发现,机器指令的首地址总清后为零,以后每个循环PC会自动加1。
所以,每次按动START,只有在微地址灯显示“010100”时,才设置内容,直到所有机器指令写完。
C.校验。
拨动SWITCH单元的总清开关CLR(1à0à1),微地址清零。
PC程序计数器清零,然后使SWITCH单元的开关SWB、SWA为“00”,按动CONTROLUNIT的触动开关START,微地址灯将显示“010000”,再按START,微地址灯显示为“010010”,第三次按START,微地址灯显示为“010111”,再按START后,此时OUTPUT单元的数码管显示为该首地址中的内容。
不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。
每次在微地址灯显示为“010000”时,是将当前地址中的机器指令写入到输出设备中显示。
参考程序一的机器指令:
$P0000
$P0120
$P0208
$P0330
$P0408
$P0540
$P0600
参考程序二的机器指令:
$P0000
$P0110
$P020A
$P0320
$P040B
$P0530
$P060B
$P0740
$P0800
$P0A01
微程序(以上两程序公用):
$M00018110
$M0101ED82
$M0200C048
$M0300E004
$M0400B005
$M0501A206
$M06959A01
$M0700E00D
$M08001001
$M0901ED83
$M0A01ED87
$M0B01ED8E
$M0C01ED96
$M0D028201
$M0E00E00F
$M0F00A015
$M1001ED92
$M1101ED94
$M1200A017
$M13018001
$M14002018
$M15070A01
$M1600D181
$M17070A10
$M18068A11
4.运行程序
方法一:
联机运行程序
首先使各个开关的状态为:
SIGNALUNIT中的SP03开关设置为“STEP”状态,SP04开关设置为“RUN”状态;CONTROLUNIT的开关SP05处于“NORM”状态,SP06处于“RUN”状态;SWITCH单元的开关SWB、SWA为“11”。
使SWITCH单元的总清开关CLR(1à0à1)清零后,程序首址为00H。
通过联机软件进入调试界面(其操作方法参见附录2系统联机操作软件说明),可以通过调试程序的操作界面控制程序的运行,同时观察运行过程和结果。
方法二:
手动运行程序
(1)单步运行程序
A.使CONTROLUNIT的开关SP05处于“NORM”状态,SP06处于“RUN”状态,SIGNALUNIT中的SP03为“STEP”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。
B.拨动SWITCH单元的总清开关CLR(1à0à1),微地址清零,程序计数器清零,程序首址为00H。
C.单步运行微指令,每按动一次CONTROLUNIT的START触动开关,即单步运行一条微指令。
对照微程序流程图2-2,观察微地址显示灯MA5-MA0是否和流程一致。
D.当运行结束后,可检查运行结果是否和理论值一致。
如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。
(2)连续运行程序
A.使CONTROLUNIT的开关SP05处于“NORM”状态,SP06处于“RUN”状态,SIGNALUNIT中的SP03为“RUN”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。
B.拨动SWITCH单元的总清开关CLR(1à0à1),微地址及程序计数器清零,然后按动CONTROLUNIT的START触动开关,系统连续运行程序,稍后将SIGNALUNIT中的SP04拨至“STOP”时,系统停机。
C.停机后,可检查运行结果是否正确。
如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。
5.3实验过程及结果、分析:
数据变化、数据流程和截图
实验一:
程序的实现过程:
(数据变化说明:
这里数据变化是指与其相对应的上方的数据的变化)
(截图说明:
从左到右,从上到下,按程序流程截图,其中ARM与其下一步走向同属一次完成,故没有截图。
)
1)数据流程:
PCARMIRINR0
数据变化:
01000000D5D5
说明:
输入开关数据R0
截图:
2)数据流程:
PCARMIR
数据变化:
02012020
说明:
R0[08]
截图:
3)数据流程:
PCARMIRR0M
数据变化:
03020808D5D5
说明:
地址
截图:
3)数据流程:
PCARMIR
数据变化:
04033030
说明:
[08H]BUS
截图:
4)数据流程:
PCARMARMDR1ALUOUT
数据变化:
05040808FFFFFFFF
说明:
地址
截图:
5)数据流程:
PCARMIR
数据变化:
06054040
说明:
00HPC
截图:
6)数据流程:
PCARMPC
数据变化:
07060000
说明:
跳转地址
截图:
实验二:
1)数据流程:
PCARMIRINR0
数据变化:
01000000D5D5
说明:
输入开关数据R0
截图:
2)数据流程:
PCARMIR
数据变化:
02011010
说明:
R0+[0AH]R0,输入数据与指定数据相加
截图:
3)数据流程:
PCARMARMDR2R0DR1ALUR0
数据变化:
03020A0A0101D5D5FFFF
说明:
地址加数,可自定
截图:
4)数据流程:
PCARMIR
数据变化:
04032020
说明:
R0[0B]
截图:
5)数据流程:
PCARMARR0M
数据变化:
05010B0BFFFF
说明:
输入开关数据R0
截图:
6)数据流程:
PCARMIR
数据变化:
06053030
说明:
[0BH]BUS,输出显示
截图:
7)数据流程:
PCARMARMDR1ALUOUT
数据变化:
07060B0BFFFFFFFF
说明:
地址求和结果保存在0B单元
截图:
8)数据流程:
PCARMIR
数据变化:
08074040
说明:
00HPC
截图:
9)数据流程:
PCARMPC
数据变化:
09080000
说明:
跳转地址
截图:
6.问题讨论与分析
实验刚刚开始时常常出现指令的执行过程在BUS中停止的现象,原因是天气潮湿,机器内部线路受影响。
实验过程中出现了实验结果错误,运行过程中的各部件没有相应等情况。
原因是机器自身线路和地址线的问题,在做了更换之后,得出正确结果,有可能是前
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程 实习 报告