微程序控制器实验报告
一、 实验目的
(1)掌握微程序控制器的功能、组成知识。
(2)掌握为程序的编制、写入、观察微程序的运行
二、实验设备:
PC机一台,TD-CM3+实验系统一套
三、实验原理:
微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件的为命令序列,完成数据传送和个汇总处理操作,他的执行方法是将控制各部件的微命令的集合进行编码,即将微命令的集合仿照及其指令一眼,用数字代码的形式表示,这种表示陈伟微指令。这样就可以用一个微指令序列表示一条机器指令,这种为指令序列称作为程序。微程序存储在一种专用的存储器中,成为控制储存器
四、实验步骤
1.对为控制器进行读写操作:
(1)手动读写:
①按图连线:
②将MC单元编程开关置为“编程”档,时序单元状态开关置为“单步”档,ADDR单元状态开关置为“置数”档
③使用ADDR单元的低六位SA5…SA0给出微地址MA5…MA0,微地址可以通过MC单元的MA5…MA0微地址灯显示
④CON单元SD27…SD20,SD17…SD10,SD07…SD00开关上置24位微代码,待写入值由MC单元的M23…M024位LED灯显示
⑤启动时序电路(按动一次TS按钮),即将微代码写入到E2PROM2816的相应地址对应单元中
⑥重复③④⑤三步,将下图微代码写入2816芯片中
二进制代码表
(2)联机读写:
①将微程序写入文件,联机软件提供了微程序下载功能,以代替手动读写微控制器,但微程序得以指定的格式写入
本次试验的微程序如下:
://************************************************************//
:// //
:// 微控器实验指令文件 //
:// //
://************************************************************//
://***************Start Of MicroController Data****************//
$M 00 000001;NOP
$M 01 007070;CON(INS)->IR,P<1>
$M 04 002405;R0->A
$M 05 04B201;R0->B
$M 30 001404;A加B->RO
$M 32 183001;IN->R0
$M 33 280401;R0->OUT
$M 35 000035;NOP
;//***************End Of MicroController Data*******************//
②写入微程序用联机软件的“【转存】-【装载数据】”功能将改格式文件装载入试验系统。
③校验位程序。选择联机软件的“【转存】-【刷新指令区】”可独处机器指令和微指令,并在指令区显示,检查是否与表相同
(2)运行微程序:
①连线:将电路按图所示连接起来,自习检查线路无误后接通电源。如果有报警声,说明有竞争现象,应关闭电源,检查连线,直到错误排除
本实验采用的是本机运行,运行过程如下:
① 将MC单元的编程开关置为“运行”档,MEM单元的编程开关也置为“运行”档,按动CON单元的CLR按钮,将微地址寄存器清零,同时也将指令寄存器,ALU单元的暂存器A和暂存器B清零
② 将时序单元的状态开关置为“单拍”档,然后按动TS按钮,体会系统在T1和T2节拍中各做的工作。T1节拍微控制器将后续地址打入微地址寄存器,当前微指令打入微指令寄存器,并产生执行部件相应的控制信号,T2节拍根据T1节拍产生的控制信号做出相应的执行动作,如果测试位有效,还要根据指令及单前微地址寄存器中的内容进行译码,使微程序转入相应的微地址入口,实现微程序的分支
③ 按动CON单元的CLR按钮,清零微地址寄存器(MAR)等,并将时序单元的状态开关置为“单步”档
④ 置IN单元数据位00100011,按动TS按钮,当MC单元后续微地址显示为000001是,在CON单元的SD27…SD20模拟给出IN指令00100000并继续单步执行,当MC单元后续微地址显示为000001是,说明当前指令已完成;在CON单元的D27…D20各处ADD指令00000000,该指令将会在下个T2被打入指令寄存器,他将R0中的数据和其自身相加后送RO;接下来在CON单元的SD27…SD20给出OUT指令00110000并继续单步执行,在MC单元后续微地址显示为00000001是,观察OUT单元的显示是否为01000110
五、 实验结果:
由实验可得按要求完成实验步骤后,数据会按照数据通路进行流程验算,最终的到两个数字相加的结果
六、 实验反思:
通过此次的微程序控制器的实验,我们通过实际操作基本掌握微程序控制器的功能、组成知识。以及程序的编制、写入、观察微程序的运行等功能。了解到了理论知识与实际操作的差别。
第二篇:计算机组成原理实验3-微程序控制器实验
经济管理学院 信息管理与信息系统专业 班 __组 学号
姓名 协作者 教师评定_____________
实验题目_ 微 程 序 控 制 器 实 验_________________
1. 实验目的与要求:
实验目的:1.理解时序产生器的原理,了解时钟和时序信号的波形;
2.掌握微程序控制器的功能、组成知识;
3掌握微指令格式和各字段功能;
4.掌握微程序的编制、写入、观察微程序的运行,学习基本指令的执行流程。
实验要求:按练习一要求完成测量波形的操作,画出TS1、TS2、TS3、
TS4的波形,并测出所有的脉冲Φ的周期。按练习二的要求输入微指令的二进制代码表,并单步运行五条机器指令。
2. 实验方案:
1.用联机软件的逻辑示波器观测时序信号:
测量Φ、TS1、TS2、TS3、TS4信号的方法:
(1)按图接线,接一根即可;
(2)把探笔的探头端按颜色分别插到试验仪左上角的CH1、CH2,黑探头插CH1,红探头插CH2,将黑探笔的探头插在Φ接线的上孔,将红探笔的探针夹在TS1两针之间;
(3)将实验仪的STOP开关置为RUN、STEP开关置为EXEC,“SWITCH UNIT”中CLR开关置为1状态,按动START按键;
(4)启动“组成原理联机软件”,点击“调试”菜单下的“显示逻辑示波器窗口”,点击示波器开关,即可在屏幕上看到波形。使用“步数”或“速度”调整波形,波形调整好后,不要用同步通道来稳定波形,应该单击示波器开关,这样整个波形都停下来;
(5)鼠标停留在波形线上,会有时间提示,两者相减可以算出波形周期;
(6)测完Φ 和TS1后,接着测量TS1和TS2,把黑红探针分别夹在TS1两根针之间和TS2两根针之间,相互比较,可以测量TS1和TS2之间相位关系。同理通过测量TS2、TS3可以测量出TS2和TS3之间相位关系,同理通过测量TS3、TS4可以测量出TS3和TS4之间相位关系。
2.观察微程序控制器的工作原理:
(1)关掉实验仪电源,拔掉前面测时序信号的接线,按图连接实验电路,仔细检查无误后接通电源;
(2)编程写入E2PROM 2816
A.将编程开关(MJ20)置为PROM状态;
B.将实验板上STATE UNIT中的STEP置为“STEP”状态,STOP置为“RUN”状态,“SWITCH UNIT”中CLR开关置为1状态;
C.在右下角的“SWITCH UNIT”中UA5-UA0开关上表3.2中某个要写的微地址;
D.在MK24-MK1开关上置表3.2中要写的微地址后面的24位微代码,24位开关对应24位显示灯,开关置为“1”时灯亮,开关置为“0”时灯灭;
E.启动时序电路(按动启动按钮START),即将微代码写入到E2PROM 2816的相应地址对应的单元中;
F.重复C-E步骤,将表3.2的每一行写入E2PROM 2816。
(3)校验
A.将编程开关置为READ状态;
B.保持STEP、STOP、CLR开关状态不变,即实验板的STEP开关置为“STEP”状态,STOP开关置为“RUN”状态,“SWITCH UNIT”中CLR开关置为1状态;
C.在开关UA5-UA0上按表3.2置好要读的某个微地址;
D.按动START键,启动时序电路,就能读出微代码,观察显示灯MD24-MD1的状态,检查读出的微代码是否与写入的相同。如果不同,将开关置为PROM编程状态,重新执行;
E.重复C-D步骤,将表3.2的每一行从E2PROM28 16中读出来。
单步运行五条机器指令:
A. 将编程开关置为“RUN”状态;
B. 将STEP置为“STEP”状态,STOP置为”RUN“状态,”SWITCH UNIT”中的CLR开关置为1状态;
C. 将“SW-BUS”开关置为“0”,左下方开关D5-D0置为“111111”,D6和D7开关任意;
D. 将清零开关CLR从高拔到低,再从低拔到高,即将开关CLR置为1——>0——>1,可发现后续微地址UA5-UA0灯变为000000,000000是微指令运行启始地址;
E. 按动“START”键,UA5-UA0灯变为010000,这是在读00条微指令,给出下一条要读的微指令是20。以后每按动一次启动键“START”,都会读出后续微地址指定的一条微指令,微命令显示灯和微地址显示灯显示着正在所读出的微指令;
F. 在UA5-UA0灯变为010000时,可通过实验仪左下方开关D7-D0人为强置设置分支地址,将D5-D0置为“111111”——>“111100”——>“111111”,可发现UA5-UA0灯从010000变为010011,表示下一个要读的微指令从010000修改为了010011;
G. 在UA5-UA0灯为010011时,也就是23时,对照微程序流程图,按动一下“START”键,UA5-UA0灯会变成000001,也就是01,表示读出了23条微指令,给出了下一条要读的是01条微指令;
H. 在UA5-UA0灯为000001时,也就是01时,对照微程序流程图,按动一下“START”键,UA5-UA0灯会变成000010,也就是02,表示读出了01条微指令,下一步要的是02条微指令;
I. 按动“START”键,读出02条微指令时,UA5-UA0灯显示为001000时,在当前条件下,可通过强置端SE1-SE6相接的D5-D0人为强置修改分支地址;
J. 执行完每个指令的最后一条微指令后,都会回到01微指令,这样才表示执行完了一条指令,同时也表示可以执行新的指令了;
K. 按照上述方法,把所有分支执行一遍。
3. 实验结果和数据处理:
通过比较各波形的相互关系可得:脉冲Ф的周期是TS1,TS2,TS3,TS4各点的周期的1/4,而且在时间为T的条件下,TS1与TS2, TS2与TS3, TS3与TS4各自之间相差1/4周期。
4. 实验结果分析:
ADD加法指令为双字长指令,第一字为操作码,第二字为操作地址,其含义是将R寄存器的内容与内存中以A为地址单元的数相加,结果放R寄存器。ADD加法指令由7条微指令组成,分别为:01、02、11、03、04、05、06。
以微指令06为例:微指令功能是DR1+DR2;06微指令S3 S2 S1 S0 M CN的值为“100101”代表算术运算A加B;A字段“001”起的作用是选择LDRi,B字段“101”起的作用是选择ALU-B;06微指令中UA5-UA0中“00000001”代表的含义是后继执行的微地址。(其他指令的功能均按以上方式解读)
5. 写出你掌握了的控制信号的作用
1. 时钟时序电路
时序电路可产生4个等间隔的时序信号Tsi-TS4,其中Ф为钟信号,由实验台左上方的方波信号源提供,可产生频率及脉宽可调的方波信号。可根据实验自行选择方波信号的频率及脉宽。为了便于控制程序的运行,时序电路发生器也设置了一个启停控制触发器Cr,使TSl—TS4信号输出可控。
2.微程序控制电路
微程序控制器的组成,本实验装置的微程序放在二片2816的E2PROM中,只有掉电保护功能,微命令寄存器为18位,由三片8D触发器(273)和1片4D触发器(175)组成;微地址寄存器6位,用三片正沿触发的双D触发器(74)组成。它们带有清“0”端和预置端。在不判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某—触发器置为“1”状态,完成地址修改。
在该实验电路中设有一个编程开头(位于实验板右上方),它具有二种状态:PROM(编程)、READ(校验)、RUN(运行)。当处于“编程状态”时,可根据微地址和微指令格将微指令二进制代码写入到控制存储器2816中。当处于“校验状态”时,可以对写入控制存储器中的二进制代码进行验证,从而可以断写入的二进制代码是否正确。当处于“运行状态”时,只要给出微程序的入口微地址,则可根据微程序流程图自动执行微程序。图中微地址寄存器输出端增加了一组三态门,目的是隔离触发器的输出,增加抗干扰能力,并用来驱动微地址显示灯。
3.微指令格式
一个完整的程序是由若干条指令语句组成的,一条指令义由若干条微指令组成,而每一条微指令义由若干微命令及下一条微地址信号组成。其中UA5—UA0为6位的后续微地址,A、B、C三个译码字段,分别有二个控制位译码出多位。C字段中的AR为算术运算是否影响进位及判零标控控制位,其为零有效。P(1)-P(4)是四个测试字位,其功能是根据机器指令及相应微代码进行译码,使微程序输入相应的微地址入口,从而实现微程序的顺序、分支、循环运行, I7—I2为指令寄存器的第7—2位输出,SE5—SEl为微控器单元微地址锁存器的强置端输出。B字段中的RS—B、R0-B、R1—B分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码, 10-14为指令寄存器的第0-4位,LDRi打入工作寄存器信号的泽码器位能控制位。P(1)判别指令代码前四位(I7、I6、I5、I4);P(2)判别指令代码I2、I3位:P(3)判别是否有进位或值是否为零:P(4)判别控制台指令(SWA、SWB)。LDRi与指令代码I0、I1译出LDR0、LDRI、LDR2;RD-B与指令代码Io、I1译出目的通用寄存器:RS—B与指令代码I2、I3译出源通用寄存器:RI-B控制R2-B输出。
6. 结论
通过实验,能按照如《计算机组成原理实验指导书》给出的步骤输入微指令的二进制代码表并单步运行五条机器指令,且能精确得出计算机组成原理中所推出的结果。
7. 问题与讨论及实验总结
问题与讨论:
在练习二所要求的输入微指令的二进制代码表的五条机器指令时,没有将编程开关置为READ(校验)状态,致使在校验的时候,读出的微代码一直不变,后经过改正,实验得以完成。
实验总结:
通过本次实验,我掌握了微程序的编制及写入,学习了基本指令的执行流程。掌握了时序产生器的原理和具体操作,掌握了一些微程序控制器的功能和组成知识。在实验过程中,我基本能按步骤完成实验,但因为控制信号繁多而未能熟练地进行操作,最终还是能勉强完成实验。因此,做实验时一定要认真仔细,课前更应做好充分的预习工作。
8. 思考选择题:(单选题)
1、( A ) 2、( A ) 3、( A ) 4、( A )
5、( B ) 6 、( C ) 7、( B ) 8、( A )
9、( A ) 10、( B ) 11、( C )