计算机组成原理-模型机综合实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.实验设计方案
实验序号实验名称基本模型机实验
实验时间2014年11月19日实验室睿智4—303
1.实验目的
1、在“微程序控制器的组成与微程序设计实验”的基础上,将第一部分中的各单元组成系统,构造一台基本模型计算机;
2、本实验定义五条机器指令,编写相应的微程序,并上机调试运行,形成整机概念。

3、在原有程序的基础上修改一条指令和增加两条指令。

2.实验原理、实验流程或装置示意图
1、实验内容:根据模型机的指令系统,编写相应的微程序,并上机调试运行,观察并记录结果。

2、实验原理:
在第一部分的单元实验中,所有的控制信号是人为用SWITCH单元产生的,但是在实际的CPU中,所有的控制信号都是由CPU自动产生的。

所以在本次实验中我们用微程序来控制,自动产生各部件单元控制信号,实现特定指令的功能。

这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一段微程序。

本实验设计了五条机器指令,其指令格式如下:
助记符机器指令码说明
IN 00000000 ;输入,“INPUT”设备中的开关状态→R0 ADD addr 00010000 XXXXXXXX ;二进制加法,R0+[addr]→R0
STA addr 00100000 XXXXXXXX ;存数,R0→[addr]
OUT addr 00110000 XXXXXXXX ;输出,[addr]→BUS
JMP addr 01000000 XXXXXXXX ;无条件转移,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号“取址”微指令,启动程序运行。

上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如下:
SWB SWA 控制台命令
0 0 读内存(READ)
0 1 写内存(WRITE)
1 1 启动程序运行(RUN )
根据以上要求设计数据通路框图,如图2-1。

微代码定义如表2-1所示。

ALU
S3S2S1MEM
OUT
IN
PC
LDPC
AR
LDAR
LOAD ALU-G
LED-G
SW-G
DR1
T4DR2
T4PC-G
时序
微控制器
IR
LDIR
地址总线
数据总线
T1T 2
WE WE
WE
S0
LDDR1
LDDR2
CE
R0
R0-G LDR0
图2-l 数据通路框图
表2-1 基本模型机微指令结构图
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
LDAR
1
1
PC_G
1
1
LDPC
系统涉及到的微程序流程见图2-2,当拟定“取指令”微指令时,该微指令的判别测试字段为P1测试。

由于“取指令”微指令是所有微程序都使用的公用微指令,因此P1的测试结果出现多路分支。

本机用指令寄存器的高4位(I7—I4操作码)作为测试条件,出现5路分支,占用5个固定微地址单元。

控制台操作为P4测试,它以控制台开关SWB 、SWA 作为测试条件,出现了3路分支,占用3个固定微地址单元。

当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用
微程序 24 23 22 21 20 19 18 17
16 15 14 13 12 11 10 9 8 7
6 5 4 3
控制信号 S3 S2 S1 S0 M CN RD M17 M16
A
B
P
uA5 uA4 uA3 uA2
一个微地址单元随意填写。

当全部微程序设计完毕后,应将每条微指令代码化,表2-2即为将图2-2的微程序流程图按微指令格式转化而成的“二进制微代码表”。

表2-2 二进制代码
本系统有两种外部I/O设备,一种是二进制数码开关,作为输入设备(INPUT);另一种是两位十六进制数LED数码管,作为输出设备(OUTPUT UNIT)。

在输入时,二进制开关数据直接经过三态门送到总线上。

只要开关状态不变,输入的信息也不变。

输出时,将输出数据送到数据总线上,当写信号(WE)有效时,将数据打入输出锁存器,驱动数码块显示。

图2-2 微程序流程图
3.实验设备及材料
1、ZY15Comp12BB计算机组成原理教学实验箱一台
2、排线若干
3、PC机一台
4.实验方法步骤及注意事项
1、根据该模型机的指令系统,编写一段程序。

这里给出两个参考程序。

参考程序一:
本程序从输入设备(数码开关)取入数据,保存在内存单元08,然后从08单元送到输出设备(LED数码管)进行显示。

每次循环过程中,可以使输入设备数据改变,考察输出显示的结果(请实验者考虑:如何修改程序,使程序只执行一次从输入设备取出数据,送出输出设备显示)。

设计机器指令程序如下(机器码和地址为十六进制数据)。

地址内容助记符说明
00 00 IN ;输入开关数据→R0
01 20 STA [08H] ;R0→[08]
02 08 ;地址
03 30 OUT [08H] ;[08H] →BUS
04 08 ;地址
05 40 JMP [00H] ;00H→PC
06 00 ;跳转地址
参考程序二:
本程序从输入设备(数码开关)读入数据,与0A单元的数据相加,然后送到输出设备(LED数码管)进行显示。

本程序不断地循环运行,在运行中可改变输入开关(INPUT)的值,观察输出显示的变化。

设计机器指令程序如下(机器码和地址为十六进制数据)。

地址内容助记符说明
00 00 IN ;输入开关数据→R0,采集数据
01 10 ADD [0AH] ;R0+[0AH]→R0,输入数据与指定数据相加
02 0A ;地址
03 20 STA [0BH] ;R0→[0B]
04 0B ;地址
05 30 OUT [0BH] ;[0BH] →BUS,输出显示
06 0B ;地址
07 40 JMP [00H] ;00H→PC
08 00 ;跳转地址
0A 01 ;加数,可自定
0B ;求和结果保存在0B单元
修改参考二程序:
2、按图2-3连接实验线路(图中箭头表示需要接线的地方,接总线和控制信号时要注意高低位一一对应,可用彩排线的颜色来进行区分)。

3、写程序
对于本实验箱可以用两种方法来写入程序。

方法一:联机读/写程序
按照规定格式,将机器指令及表2-2微指令二进制表编辑成十六进制的规定格式文件。

微指令格式中的微指令代码为将表2-2中的24位微代码按从左到右分成3个8位,将此三个8位二进制代码化为相应的十六进制数即可。

使用联机软件的文件装载将实验程序和微程序下载到实验箱中,并用软件的读出功能进行检查。

其中参考程序一对应的文件名为“基本模型机 1.TXT”,参考程序二对应的文件名为“基本模型机2.TXT”(联机软件的使用方法参看附录2)。

方法二:手动写入
(1)先将机器指令对应的微代码正确地写入28C16中,由于在实验1.7微程序控制器的组成与微程序设计实验中已将微代码写入E2PR0M芯片中,对照表2-2校验正确后就可使用。

(2)使用控制台WRITE和READ微程序进行机器指令程序的装入和检查,其操作如下:
A、使SIGNAL UNIT单元的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”,按动CONTROL UNIT的触动开关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
修改参考二程序的机器指令:
修改参考二程序的微程序:
6.参考文献
1、计算机组成原理
2、计算机组成原理实验指导书
二.实验报告
1.实验现象与结果
在机房机箱上,实验结果按照我们设定的微程序执行,实验结果没有全部出来。

2.对实验现象、实验结果的分析及其结论
实验运行了指令IN,和SUB 之后就一直重复运行SUB(走sub的路线),然后我们一直检查问题,但是程序是对的,可能是机箱的问题!
3.实验总结
这次课程设计中,基于前几次实验中,对计算机的大致组成以及运行原理有了初步的了解,并且对实验板也比较熟悉了,所以按照实验连接图连线也比较上手了,经过那么多次实验,觉得连线最重要的就是认真,如果一开小差就会出错,每连完一条线之后,都要检查一遍,看是否连错,这告诉我们,做每一件事都要认认真真的完成,容不得一丝马虎,否则只会落得个事倍功半的效果。

这次课程设计最重要的就是编写程序了,要想编写程序首次要对程序了解,知道每个助记符对应的机器码是什么意思,对应的二进制的每四位代表什么。

在对程序理解的过程中,刚开始不知道程序的十六进制是如何通过助记符转换过来的,经过对指令格式的剖析才知道没个助记符对应的二进制,然后对刚编好的程序进行运行,通过观察CPU一般都是先取机器指令,然后编译,送往寄存器,然后再去指令,再编译,一直这样下去,直到停止为止,此次课程设计最大的收获就是,通过观察大致了解了CPU的运行方式,并且都指令也有了较大的了解,还懂得了合作和请教才是完成任务的最佳方法。

教师评语及评分:
签名:年月日。

相关文档
最新文档