微程序控制器实验

计算机组成原理实验报告

班级:计算机二班姓名:李小硕

学号:

08143103

微程序控制器实验报告

将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器.

微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。

一、实验目的

(1)掌握微程序控制器的组成原理。

(2)掌握微程序的编制、写入,观察微程序的运行过程。

二、实验设备

PC 机一台,TD-CMA 实验系统一套。

三、实验原理

四、实验步骤

本实验安排了四条机器指令,分别为 ADD(00000000)、IN(0010 0000)、OUT(0011 0000)和HTL(0101 0000),括号中为各指令的二进制代码,指令格式如下:

助记符机器指令码说明

IN 0010 0000 IN->R0

ADD 0000 0000 R0 + R0->R0

OUT 0011 0000 R0->OUT

HLT 0101 0000 停机

1.按图 3-2-10 所示连接实验线路,仔细查线无误后接通电源。如果有‘滴’报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。

图 3-2-10 实验接线图

2. 对微控器进行读写操作,分两种情况:手动读写和联机读写。

1) 手动读写

(1) 手动对微控器进行编程(写)

①将时序与操作台单元的开关 KK1 置为‘停止’档,KK3 置为‘编程’档,KK4 置为‘控存’档,KK5 置为‘置数’档。

②使用 CON 单元的 SD05——SD00 给出微地址,IN 单元给出低 8 位应写入的数据,连续两次按动时序与操作台的开关 ST,将 IN 单元的数据写到该单元的低 8 位。

③将时序与操作台单元的开关 KK5 置为‘加 1’档。

④ IN 单元给出中 8 位应写入的数据,连续两次按动时序与操作台的开关 ST,将 IN 单元的数据写到该单元的中 8 位。IN 单元给出高 8 位应写入的数据,连续两次按动时序与操作台的开关 ST,将 IN 单元的数据写到该单元的高 8 位。 ⑤重复①、②、③、④四步,将表 3-2-2 的微代码写入 2816 芯片中。

(2) 手动对微控器进行校验(读)

①将时序与操作台单元的开关 KK1 置为‘停止’档,KK3 置为‘校验’档,KK4 置为‘控存’档,KK5 置为‘置数’档。

②使用 CON 单元的 SD05——SD00 给出微地址,连续两次按动时序与操作台的开关 ST,MC单元的指数据指示灯 M7——M0 显示该单元的低 8 位。 ③将时序与操作台单元的开关 KK5 置为‘加 1’档。

④连续两次按动时序与操作台的开关 ST,MC 单元的指数据指示灯 M15——M8 显示该单元的中 8 位,MC 单元的指数据指示灯 M23——M16 显示该单元的高 8 位。

⑤重复①、②、③、④四步,完成对微代码的校验。

微程序控制器实验

如果校验出微代码写入错误,

重新写入、校验,直至确认微指令的输入无误为止。

2) 联机读写

3. 运行微程序

运行时也分两种情况:本机运行和联机运行。

1) 本机运行

①将时序与操作台单元的开关 KK1、KK3 置为‘运行’档,按动 CON 单元的 CLR 按钮,将微地址寄存器(MAR)清零,同时也将指令寄存器(IR)、ALU 单元的暂存器 A 和暂存器 B 清零。

②将时序与操作台单元的开关 KK2 置为‘单拍’档,然后按动 ST 按钮,体会系统在 T1、 T2、T3、T4 节拍中各做的工作。T2 节拍微控器将后续微地址(下条执行的微指令的地址)打入微地址寄存器,当前微指令打入微指令寄存器,并产生执行部件相应的控制信号;T3、T4 节拍根据T2 节拍产生的控制信号做出相应的执行动作,如果测试位有效,还要根据机器指令及当前微地址寄存器中的内容进行译码,使微程序转入相应的微地址入口,实现微程序的分支。

③按动 CON 单元的 CLR 按钮,清微地址寄存器(MAR)等,并将时序与单元的开关 KK2 置为‘单步’档。

④置 IN 单元数据为 00100011,按动 ST 按钮,当 MC 单元后续微地址显示为 000001 时,在CON 单元的 SD27…SD20 模拟给出 IN 指令 00100000 并继续单步执行,当 MC 单元后续微地址显示为 000001 时,说明当前指令已执行完;在 CON 单元的 SD27…SD20 给出 ADD 指令 00000000。该指令将会在下个 T3 被打入指令寄存器(IR),它将 R0 中的数据和其自身相加后送 R0;接下来在CON 单元的 SD27…SD20 给出 OUT 指令 00110000 并继续单步执行,在 MC 单元后续微地址显示为000001 时,观查 OUT 单元的显示值是否为 01000110。

2) 联机运行

五、实验思考题

结合实验中数据通路图,简要说明各微命令的功能?

首先取出一条机器指令,对其进行译码,译码过后通过判别测试p<1>,然后执行相应的微程序。

ADD:R0->A是将寄存器R0中的内容打入到A中,

R0->B再将寄存器R0中的内容打入到B中,

A+B->R0是将A与B的运算结果打入到寄存器R0,

微程序再转入公操作。

IN:IN->R0是直接将输入端的数值打入到寄存器R0中,

微程序转入公操作。

OUT:RO->OUT是直接寄存器R0中的内容送入到输出端,

微程序转入公操作。

HLT:由于操作内容为NOP空,指存不执行任何操作。

六、实验心得

本实验为验证型实验,验证并了解在运行微程序时各条微指令的作用及运行一条完整的微指令所经的过程。

微程序解释机器指令,微指令构成微程序。在微程序的运行过程中,各种微指令的运行路径及其作用可以很清楚的观察到。当然在运行之前要将微指令输入到机器中,可以手动输入,也可以联机输入,本次微指令较少,完全可以手动输入并手动检查。

要保证微指令的正确输入,首先要保证线路的正确连接,线路连接完毕后,可通过联机进行检测。

本实验是在第一次试验的基础上增加了线路连接及一次完整的微程序输入至运行的过程,为之后更加复杂的实验打下原理基础。

 

第二篇:微程序控制器实验报告

组成原理No.4实验---

微程序控制器实验

组员:

      

组号:21号

时间:周二5、6节          

【实验目的】

(1)掌握时序发生器的组成原理。

(2)掌握微程序控制器的组成原理。

(3)掌握微程序的编制、写入、观察微程序的运行情况

【实验设备】

TDN-CM++,

【实验原理】

微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制硬件逻辑部件工作的微命令序列,以完成数据传输和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,该存储器称为控制存储器。

实验所用的时序控制电路框图如图1所示,

可产生四个等间隔的时序信号TS1~TS4。在

图1中,为时钟信号,由实验台左上方的

方波信号源提供,可产生频率及脉宽可调额

方波信号;STEP是来自实验板上方中部的

一个二进制开关STEP的模拟信号;START

键是来自实验板上方左部的一个微动开关

START的按键信号。当STEP开关为EXEC(0)时,一旦按下START启动键,时序信号TS1~TS4将周而复始地发送出去。当STEP为STEP(1)时,按下START启动键,机器便处于单步运行状态,即此时只发送一个CPU周期的时序信号就停机了。利用单步方式,每次只读一条微指令,可以观察微指令的代码与当前微指令的执行结果。另外,如果STEP开关置“STEP”,会使机器停机,CLR开关执行1→0→1操作可以使时序清零。时序状态图如下图所示。

       由于时序电路的内部线路已经连好,因此只需将时序电路与方波信号源连接,即将时序电路的时钟脉冲输入端接至方波信号发生器输入端H23上,按动启动键START后,就可产生时序信号TS1~TS4.时序电路的CLR已接至CLR模拟开关上。

       编程开关具有三种状态:PROM(编程)、READ(校验)和RUN(运行)。

微指令格式如下:

【实验步骤】

(一)机器指令对应的参考微程序流程图,如下图     

  

将全部微程序指令格式变成二进制代码,可得到如下图所示的二进制代码表。

(二)连接电路图:按照下图所示连接实验电路图。

(3)观察时序信号

观察方波信号源的输出端H23,调节电位器W1,使输出波形的频率最慢。将时序电路中的“STOP”开关置为“RUN”,“STEP”开关置为“EXEC”。按动START键,测量TS1~TS4各点的波形,比较他们的相互关系,画出波形,并标注测量所得的脉冲宽度,见下图:

注:其中TS2~TS4的高电平宽度所测结果与TS1的相同,在图中未标注。

(四)实际操作

①编程:

将编程开关置为PROM(编程状态)。

将“STATE UNIT”单元中的STEP开关置为“STEP”,STOP开关置为“RUN”状态。

用二进制模拟开关置微地址UA5~UA0。

在MK24~MK1开关上置微代码,置0显示灯亮,置1灭。

按动START键,则将微代码写入到对应的地址单元中。

重复后三步操作,将需要的微代码写入到芯片中。

②校验:

将编程开关READ(校验)状态。

将“STATE UNIT”单元中的STEP开关置为“STEP”,STOP开关置为“RUN”状态。

用二进制开关置好微地址UA5~UA0。按动START键,读出微代码,观察显示灯的状态是否与写入的相同。若不同,则编写错误,重新编程。

③单步运行:

将编程开关置于“RUN(运行)”状态。

将“STATE UNIT”单元中的STEP开关置为“STEP”,STOP开关置为“RUN”状态。

使CLR开关从1→0→1,此时微地址寄存器MA5-MA0清“0”,从而给出运行微指令的入口地址为000000(二进制)。按动START键,启动时序电路,则每按动一次,读出一条微指令后停机,微地址显示灯和微命令显示灯将显示所读出的一条指令。

④强置运行:

通过UA5~UA0端口人为置分支地址,试验中置微地址为001010(12)

⑤连续运行:

将编程开关置于“RUN(运行)”状态。

将单步开关“STEP”置为“EXEC”状态。

使CLR开关从1→0→1,此时微地址寄存器清“0”,从而给出运行微指令的入口地址为000000(二进制)。

按动START键,则可连续读出微指令。

【实验结果】

       实验中所置微地址为001010(12),连续运行后,就得出连续的000111(07)和001101(15)。可知操作正确。

问题分析

                                                                   

相关推荐