信息学院
实 验 报 告
注:每学期至少有一次设计性实验。每学期结束请任课老师按时按量统一交到教学秘书处。
第二篇:微程序设计实验报告
计算机组成原理实验报告
一、实验内容
将微代码输入并手动单步运行输入的微代码,与微代码流程图对照。
二、实验目的及要求
深入学懂计算机各种指令的设计和执行过程,掌握微程序设计的概念。
三、实验原理
微程序的设计:
1.微指令格式
设计微程序指令格式的主要原则是使微指令字短,能表示可并行操作的微命令多,微程序编写方便。 微指令的最基本成分是控制场,其次是下地址场。控制场反映了可以同时执行的微操作,下地址场指明下一条要执行的微指令在控存的地址。微指令的编码格式通常只控制场的编码格式,以下几种编码格式较普遍。
1)最短编码格式
这是最简单的垂直编码格式,其特点是每条微指令只定义一个微操作命令。采用此格式的微指令字短,容易编写、规整直观,但微程序长度长,访问控存取微指令次数增多从而使指令执行速度慢。
2)全水平编码格式
这种格式又称直接编码法,其特点是控制场每一位直接表示一种微操作命令。若控制场长n位,则至多可以表示n个不同的微操作命令。
采用此格式的微指令字长,但可实现多个允许的微操作并行执行,微程序长度短,指令执行速度快。
3)分段编码格式是将控制场分成几段,若某段长i位,则经译码,该段可表示2?个互斥的既不能同时有效的微操作命令。
采用这种格式的微指令长度较短,而可表示的微操作命令较多,但需译码器。
2.微程序顺序控制方式的设计
微程序顺序控制方式指在一条指令对应的微程序执行过程中,下一条微指令地址的确定方法。又叫后继地址生成方式,下面是常见的两种。
1)计数增量方式
这种方式的特点是微程序控制部件中的微地址中的微地址产生线路主要是微地址计数器MPC,MPC的初值由微程序首址形成线路根据指令操作码编码形成,在微程序执行过程中该计数器增量计数,产生下一条微指令地址。这使得微指令格式中可以不设置“下地址场”,缩短了微指令长度,也使微程序控制部件结构较简单。但微程序必须存放在控存若干连续单元中。
2)断定方式
微指令中设有“下地址场”,他指出下条微指令的地址,这使一条指令的微程序中的微指令在控存中不一定要连续存放。在微程序执行过程中。微程序控制部件中的微地址形成电路直接接受微指令下地址场信息来产生下条微指令地址,微程序的首址也由此微地址形成线路根据指令操作码产生。见图5-2。
3.本系统的微指令格式
每条微指令由24位组成,其控制位顺序如下:
微程序设计的关键技术之一是处理好每条微指令的下地址,以保证程序正确高效地进行,在本系统中ua5-ua0为6位的后续微地址,F1,F2,F3为三个译码字段,分别由三个控制位译码多出位。F3字段中的P(1)-P(4)是四个测试字位。其功能是根据及其指令及相应微代码进行译码,是微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行。
F1、F2、F3三个字段的编码方案如表5—1:
F2字段中的RAG、RBG、RCG分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信
号,器功能是根据及其指令来进行三个工作寄存器R0、R1、R2的选通译码,Lri打入工作寄存器的信号译码使能控制位。
图5-1为几条机器指令的微程序流程图。
表5-2为将全部微程序微指令格式变址的二进制代码表。
图5-1
四、使用实验设备、仪器、材料
El-jy-II8型计算机组成原理实验系统一台,连接线若干。
五、实验方法过程(步骤)。
单片机键盘操作实验:
在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。
1.连接实验电路:(连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上,对于竖排座,应使排线插头上的箭头面向左边插在竖排座上)
在脱机实验连线图的基础上更改以下连线:
原电路连接处 改接 控制总线
2.在监控指示灯显示“CLASS SELECT”时按“实验选择”键,输入04或者4及按下“确认”键确认后,进入实验四程序,监控指示灯显示为“ES04”,按下“确认”键。
3.微代码的写入:
1)监控指令灯显示为“CTL1=_”输入1(1为写微控存储器,注意此时开关K1K2K3置为写入状态),在输入过程中,可按“取消”键进行输入修改。按下“确认”键确认。
2)监控指令灯显示为“U-Addr=_”,这时输入6为2进制数微地址,在输入过程中,可按“取消”
键进行输入修改。输入完成后按下“确认”键确认。
3)监控指示灯显示为“U-Code”时,输入要写入微控存储器的24位微代码(按6位16进制数输入,且反向输入,即第一次输入最后的一位数。如:432BC5,应先输入5,最后输入4),在输入过程中,可按“取消”键进行输入修改输入完成后按下“确认”键确认。
4)监控指示灯显示为“PULSE”时,按“单步“键完成此次操作。
5)重复1)-4)的操作,写入下一个要写入存储器的数据,或按“取消”退出操作。 4.按按“取消”键退出到监控指示灯显示为“ES04”。按下“确认”键。 5.微代码的读出:
1)监控指示灯显示为“CTL1=_”输入2(2为读微控存储器注意此时开关K1K2K3置为读出状态)在输入过程中,可按“取消”键进行输入修改。按下“确认”键确认。
2)监控指示灯显示为“U-Addr=_”等待输入2位16进制数地址,可按“取消”键进行输入修改,输入完成后按下“确认”键确认。
3)监控指示灯显示为“PULSE”时,按“单步”键,24位微代码显示灯上显示该地址的微代码, 4)重复1)-3)的操作,读出下一个微代码,或按“取消”退出操作。 7.微代码的运行:
1)监控指示灯显示为“CTL1=_”,输入3(3为运行微代码,注意此时开关K1K2K3置为运行状态),在输入过程中,可按“取消”键进行输入修改。按下“确认”键确认。
2)监控指示灯显示为“run CodE”,此时按“单步”运行微代码或按“全速”连续运行微代码。可按“取消”键退出操作。
六、实验过程原始记录(数据、图表、计算等)
(1) 将K1K2K3调为微代码写入状态,将下表的微代码和微地址写入:
(2) 将K1K2K3调为微代码读出状态,将(1)表的微地址写入,读出微代码与上表对照: (3) 将K1K2K3调为微代码运行状态,通过按单步使微指令逐步运行:
运行过程与微程序流程图比较验证是否正确。
七、实验结果及分析
在实验过程中要严格按照要求做,我在把微代码写入时忘记改变K1K2K3的状态,使得输入出错,在运行时又忘记改变,这使得我们反复改正了很多次。经过多次改正最终在读出微代码时,与上表对照正确。在单步运行过程中,验证与微程序流程图一致。