计算机组成原理实验报告

sunxxjj 贡献于2014-01-13

作者 Administrator  创建于2013-12-19 12:40:00   修改者cy  修改于2014-01-14 01:49:00字数3934

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

 集 美 大 学 诚毅学院信息工程系 实 验 报 告 课程名称 计算机组成原理 序号名称 实验三 微程序控制器实验 姓名 学号 专业 日期 成绩 教师 评语: 实验目的: (1) 掌握微程序控制器的组成原理。 (2) 掌握微程序的编制、写入,观察微程序的运行过程。 一. 实验设备: PC机一台,TD-CMA实验系统一套; 二. 实验原理: 微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以 控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图3-2-1 所示。 控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从 前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍TS1、TS2、TS3、TS4,时序单元的介绍见附录2。 微程序控制器的组成见图3-2-2,其中控制存储器采用3 片2816 的E2PROM,具有掉电保护功能,微命令寄存器18 位,用两片8D 触发器(273)和一片4D(175)触发器组成。微地址寄存器6 位,用三片正沿触发的双D 触发器(74)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2 时刻打入微地址寄存器的内容即为下一条微指令地址。当T4 时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。 在实验平台中设有一组编程控制开关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 单元为例,对于控制存储器进行 校验的具体操作步骤如下:首先将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 位数据。如校验的微指令出错,则返回输入操作,修改该单元的数据后再进行校验,直至确认输入的微代码全部准确无误为止,完成对微指令的输入。 位于实验平台MC 单元左上角一列三个指示灯MC2、MC1、MC0 用来指示当前操作的微 程序字段,分别对应M23——M16、M15——M8、M7——M0。实验平台提供了比较灵活的 手动操作方式,比如在上述操作中在对地址置数后将开关KK4 拨至‘减1’档,则每次随着开关ST 的两次拨动操作,字节数依次从高8 位到低8 位递减,减至低8 位后,再按动两次开关ST,微地址会自动减一,继续对下一个单元的操作。 微指令字长共24 位,控制位顺序如表3-2-1: 其中MA5…MA0 为6 位的后续微地址,A、B、C 为三个译码字段,分别由三个控制位译 码出多位。C 字段中的P<1>为测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支,本系统上的指令译码原理如图3-2-3 所示,图中I7…I2 为指令寄存器的第7…2 位输出,SE5…SE0 为微控器单元微地址锁存器的强置端输出,指令译码逻辑在IR 单元的INS_DEC(GAL20V8)中实现。从图3-2-2 中也可以看出,微控器产生的控制信号比表3-2-1 中的要多,这是因为实验的不同,所需的控制信号也不一样,本实验只用了部分的控制信号。 本实验除了用到指令寄存器(IR)和通用寄存器R0 外,还要用到IN 和OUT 单元,从微控 器出来的信号中只有IOM、WR 和RD 三个信号,所以对这两个单元的读写信号还应先经过译码,其译码原理如图3-2-4 所示。IR 单元的原理图如图3-2-5 所示,R0 单元原理如图3-2-7 所示,IN 单元的原理图见图2-1-3 所示,OUT 单元的原理图见图3-2-6 所示。 本实验安排了四条机器指令,分别为ADD(0000 0000)、IN(0010 0000)、OUT(0011 0000) 和HLT(0101 0000),括号中为各指令的二进制代码,指令格式如下: 实验中机器指令由CON 单元的二进制开关手动给出,其余单元的控制信号均由微程序控制 器自动产生,为此可以设计出相应的数据通路图,见图3-2-8 所示。 几条机器指令对应的参考微程序流程图如图3-2-9 所示。图中一个矩形方框表示一条微指令,方框中的内容为该指令执行的微操作,右上角的数字是该条指令的微地址,右下角的数字是该条指令的后续微地址,所有微地址均用16 进制表示。向下的箭头指出了下一条要执行的指令。P<1>为测试字,根据条件使微程序产生分支。 将全部微程序按微指令格式变成二进制微代码,可得到表3-2-2 的二进制代码表。 三. 实验步骤: 1. 按图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-2-8 所示。 将时序与操作台单元的开关KK1、KK3 置为‘运行’档,按动CON 单元的总清开关后, 按动软件中单节拍按钮,当后续微地址(通路图中的MAR)为000001 时,置CON 单元 SD27…SD20,产生相应的机器指令,该指令将会在下个T3 被打入指令寄存器(IR),在后面的节拍中将执行这条机器指令。仔细观察每条机器指令的执行过程,体会后续微地址被强置转换的过程,这是计算机识别和执行指令的根基。也可以打开微程序流程图,跟踪显示每条机器指令的执行过程。按本机运行的顺序给出数据和指令,观查最后的运算结果是否正确。 四. 实验运算结果表: 五、实验总结及心得:

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档