- 29
- 0
- 约6.27千字
- 约 9页
- 2017-11-01 发布于湖北
- 举报
实验一基本简单模拟机实验
《计算机体系结构》实验报告
实验序号:01 实验项目名称:基本简单模拟机实验
学 号 姓 名 专业、班 实验地点 文波332 指导教师 时间 一、实验目的
(1)在掌握各部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
(2)为其定义五条机器指令,编写相应的微程序,并上机调试,由此掌握整机概念。
实验原理
在部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一段微程序。
本实验采用五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT (输出)、JMP(无条件转移),其指令格式如下(前4位为操作码):
助记符 机器指令码 说 明
IN 0000 0000 “INPUT DEVICE”中的开关状态 R0
ADD addr 0001 0000 ×××××××× R0+[addr] R0
STA addr 0010 0000 ×××××××× R0 [addr]
OUT addr 0011 0000 ×××××××× [addr] LED
JMP addr 0100 0000 ×××××××× addr PC
其中,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的状态来设置,其定义如下:
SWB SWA 控制台指令
0 0 读内存(KRD )
0 1 写内存(KWE )
1 1 启动程序(RP)
根据以上要求设计数据通路框图,如下图所示,微代码定义如下表所示:
系统涉及到的微程序流程如下图所示,这里“取指”是公用微指令,为了能确定不同 机器指令有各自不同的微程序转向,我们在这里以指令寄存器的前4位(IR7~IR4)作为测试条件,引入了P(1)指令测试字段,如此,对于五条机器指 就可以有五路P(1)测试分支,对于每一指令分别予以微程序解释。
控制台操作为 P(4 )测试,它以控制台开关 SWB、SWA 作为测试条件,出现了三路分支,占用三个固定微地址单元。当分支微地址单元固定后,剩下的其他地方就可以一条微指令占用控制存储器一个微地址单元,其地址单元随意填写。注意:微程序流程图上的单元地址为八进制。
微程序流程图
当全部微程序设计完毕后,应将每条微指令代码化,下表即为将上图的微程序
流程图按微指令格式转化而成的二进制微代码表。
指令寄存器(IR)用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到指令寄存器中,然后再对其进行译码、执行。指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试[P(1)],通过节拍脉冲T4 的控制以便识别所要求的操作。“指令译码器
原创力文档

文档评论(0)