计算机组成原理实验报告
一、实验目的:
(1)掌握微程序控制器的组成原理。
(2)掌握微程序的编制、写入,观察微程序的运行过程。
二、实验设备:
PC 机一台,TD-CMA 实验系统一套。
三、实验原理:
微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图所示:
微程序控制器组成原理框图
在实验平台中设有一组编程控制开关KK3、KK4、KK5(位于时序与操作台单元),可实现对存储器(包括存储器和控制存储器)的三种操作:编程、校验、运行。考虑到对于存储器(包括存储器和控制存储器)的操作大多集中在一个地址连续的存储空间中,实验平台提供了便利的手动操作方式。以向00H 单元中写入332211 为例,对于控制存储器进行编辑的具体操作步骤如下:首先将KK1 拨至‘停止’档、KK3 拨至‘编程’档、KK4 拨至‘控存’档、KK5 拨至‘置数’档,由CON 单元的SD05——SD00 开关给出需要编辑的控存单元首地址(000000),IN 单元开关给出该控存单元数据的低8 位(00010001),连续两次按动时序与操作台单元的开关ST(第一次按动后MC 单元低8 位显示该单元以前存储的数据,第二次按动后显示当前改动的数据),此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M7——M0 显示当前数据(00010001)。然后将KK5 拨至‘加1’档,IN 单元开关给出该控存单元数据的中8 位(00100010),连续两次按动开关ST,完成对该控存单元中8 位数据的修改,此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M15——M8 显示当前数据(00100010);再由IN 单元开关给出该控存单元数据的高8 位(00110011),连续两次按动开关ST,完成对该控存单元高8 位数据的修改此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M23——M16 显示当前数据(00110011)。此时被编辑的控存单元地址会自动加1(01H),由IN 单元开关依次给出该控存单元数据的低8 位、中8 位和高8 位配合每次开关ST 的两次按动,即可完成对后续单元的编辑。
以向00H 单元中写入332211 为例的图示流程
编辑完成后需进行校验,以确保编辑的正确。以校验00H 单元为例,对于控制存储器进行校验的具体操作步骤如下:首先将KK1 拨至‘停止’档、KK3 拨至‘校验’档、KK4 拨至‘控存’档、KK5 拨至‘置数’档。由CON 单元的SD05——SD00 开关给出需要校验的控存单元地址(000000),连续两次按动开关ST,MC 单元指示灯M7——M0 显示该单元低8 位数据(00010001);KK5 拨至‘加1’档,再连续两次按动开关ST,MC 单元指示灯M15——M8 显示该单元中8 位数据(00100010);再连续两次按动开关ST,MC 单元指示灯M23——M16 显示该单元高8 位数据(00110011)。再连续两次按动开关ST,地址加1,MC 单元指示灯M7——M0 显示01H 单元低8 位数据。如校验的微指令出错,则返回输入操作,修改该单元的数据后再进行校验,直至确认输入的微代码全部准确无误为止,完成对微指令的输入。
以校验00H 单元为例的图示流程
位于实验平台MC 单元左上角一列三个指示灯MC2、MC1、MC0 用来指示当前操作的微程序字段,分别对应M23——M16、M15——M8、M7——M0。实验平台提供了比较灵活的手动操作方式,比如在上述操作中在对地址置数后将开关KK4 拨至‘减1’档,则每次随着开关ST 的两次拨动操作,字节数依次从高8 位到低8 位递减,减至低8 位后,再按动两次开关ST,微地址会自动减一,继续对下一个单元的操作。
微指令字长共24 位,控制位顺序如表所示:
微指令格式表
其中MA5…MA0 为6 位的后续微地址,A、B、C 为三个译码字段,分别由三个控制位译码出多位。C 字段中的P<1>为测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支。
本实验安排了四条机器指令,分别为ADD(0000 0000)、IN(0010 0000)、OUT(0011 0000)和HLT(0101 0000),括号中为各指令的二进制代码,指令格式如下:
助记符机器指令码说明
IN 0010 0000 IN—>R0
ADD 0000 0000 R0 + R0 R0
OUT 0011 0000 R0—>OUT
HLT 0101 0000 停机
实验中机器指令由CON 单元的二进制开关手动给出,其余单元的控制信号均由微程序控制器自动产生。
几条机器指令对应的参考微程序流程图如图所示。图中一个矩形方框表示一条微指令,方框中的内容为该指令执行的微操作,右上角的数字是该条指令的微地址,右下角的数字是该条指令的后续微地址,所有微地址均用16 进制表示。向下的箭头指出了下一条要执行的指令。P<1>为测试字,根据条件使微程序产生分支。
微程序流程图
注释:(说明地址为30H,32H,33H,35H的来源)
由地址01H的后续地址为30H说起,往后的30H,32H,33H,35H(此时的30H,32H,33H,35H是六位的二进制构成,相当于三位二进制译码出相对应的一位十进制)是由两部分组成的:微操作控制字段(在该实验中地址01H的后续地址30H的高四位二进制代码就是该实验的微操作控制字段)和顺序控制字段(该实验的助记符机器指令码的高四位二进制)。例如:32H是由地址01H的后续地址30H(0011 0000)的高四位(0011)与IN(0010 0000)的高四位(0010)连接的(00110010)。
将全部微程序按微指令格式变成二进制微代码,可得到下表的二进制代码表:
二进制微代码表
四、实验步骤:
1. 按下图所示连接实验线路,仔细查线无误后接通电源。如果有‘滴’报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。
实验接线图
2. 对微控器进行读写操作:
(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 位。
⑤ 重复①、②、③、④四步,将二进制微代码表的微代码写入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 位。
⑤ 重复①、②、③、④四步,完成对微代码的校验。如果校验出微代码写入错误,重新写入、校验,直至确认微指令的输入无误为止。
3. 运行微程序
① 将时序与操作台单元的开关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。
五、实验结果:
最后实验结果与实验操作理论上完全一致。置IN 单元数据为00100011(十进制数:23),OUT 单元的显示值为01000110(十进制数:46)。
第二篇:实验五—微程序控制器实验报告
实验报告
专业:计算机科学与技术
班级:计算机科学与技术(1)班
学号:201024131147
姓名:赵倩倩
课程名称:计算机组成原理
学年:20##—2011 学期1
课程类别:专业必修
试验时间:20##年11月28日
实验名称:微程序控制实验
实验目的和要求:
实验目的:
1.掌握微程序控制器的组成原理
2.为模型机定义五条机器指令,并编写相应的微程序
3.掌握微程序的编制,写入,观察微程序的运行
实验要求:按实验目的完成相应的操作,将实验结果记下并分析实验总结。
实验软硬件要求:
TDN-CM++计算机组成原理教学实验系统一台,排线若干。
实验内容,方法和步骤(可附页)
实验原理:
1. 时序控制电路:控制器的功能是产生执行指令所需的控制信号,但执行指令时所需的控制信号是依赖于具体计算机的数据通路的,电路框图如下
数据通路结构图
Ø:始终脉冲输入端,接到方波发生器的输出(H23),W1调节频率,W2调脉宽。
START键是实验板上一个微动开关START的按键信号。
STEP(单步开关)STEP开关为0时(EXEC),一旦按下启动键,时序信号TS0—TS3将周而复始地发送出去。
STOP:拨动开关,STOP停机;RUN,运行。
CLR:拨动开关,时序清零。
TS0—TS3等间隔的时序信号输出。
实验模型机有五条指令:
IN(输入)
ADD(加法)
STA(存数)
OUT(输出)
JMP(无条件转移)
指令对应的参考微程序流程
2.微程序控制电路
微程序控制电路组成:控制存储器,微命令寄存器,微地址寄存器。
编程开关:PROM(编程),根据微地址和微指令格式将微指令二进制代码写入到控制存储器中。
READ(校验):可以对写入控制存储器中的二进制代码进行验证。
RUN(运行):只要给出微地址的入口微地址,则可以根据微程序流程图自动执行微程序。
3.微指令格式
微指令字长共24位,其中UA5—UA0为6位的后续微地址,A,B,C为三个译码器字段,分别由三个控制位译码出多位。
实验步骤及内容:
实验内容:
1.将微程序输入到控制存储器并校验。
2. 单步运行,连续运行,观察微程序控制器的工作原理。
解释数据通路:结合实验,对照微程序流程图和基本微型机的硬件组成解释数据通路。
实验步骤:
1.接线
2.将微程序输入到控制存储器
3.校验
4.单步运行
5.连续运行,将开关MJ20置为“RUN”(运行)状态。
实验结果:按照实验要求将全部的微程序按微指令格式转换成二进制代码表。并将条条指令代码进行编程,校验。通过单步运行,发现显示灯MD24—MD1的状态总与输入编程二进制位代码一致,且二进制模拟开关UA0—UA输入状态与显示灯一致。
实验小结:
1. 实验前应该了解微程序控制器的实验原理。
2. 实验时应该科学地步骤进行
3. 加强同学之间的关系,效率会更高。