学生实验报告

实验课名称:计算机组成原理
实验项目名称:微程序控制实验

一、实验名称:

微程序控制实验

二、实验目的:

(1)掌握微程序控制器的组成原理。
(2)掌握微程序的编制、写入,观察微程序的运行过程。

三、实验要求:

通过一个微程序控制程序实验,了解微程序控制的的组成原理、工作原理,同时掌握微程序的编制、写入,观察微程序的翻译机器指令的运行过程。

四、实验内容:

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

控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍TS1、TS2、TS3、 TS4, 时序单元的介绍见附录2。微程序控制器的组成见图3-2-2,其中控制存储器采用3片2816 的E’PROM,具有掉电保护功能,微命令寄存器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一SD0O 开关给出需要校验的控存单元地址(000000), 连续两次按动开关ST,MC单元指示灯M7–M0显示该单元低8位数据(00010001); KK5拨至‘加1’档,再连续两次按动开关ST, MC单元指示灯M15- -M8 显示该单元高8位数据(00110011)。 再连续两次按动开关ST,地址加1, MC单元指示灯M7-编辑完成后需进行校验,以确保编辑的正确。以校验00H单元为例,对于控制存储器进行校验的具体操作步骤如下:首先将KK1拨至‘停止’档、KK3拨至‘校验’档、KK4拨至‘控
存’档、KK5拨至‘置数’档。由CON单元的SD05一SD0O 开关给出需要校验的控存单元地址(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:

其中MA…MA0为6位的后续微地址,A、B、C为三个译码字段,分别由三个控制位译码出多位。C字段中的P为测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支,本系统上的指令译码原理如图3-2-3所示,图中17…2为指令寄存器的第7…2 位输出SE…SEO 为微控器单元微地址锁存器的强置端输出,指令译码逻辑在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>为测试字,根据条件使微程序产生分支。

五、实验设备及工具:

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

六、实验过程详述:

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)联机读写
(1)将微程序写入文件联机软件提供了微程序下载功能,以代替手动读写微控器,但微程序得以指定的格式写入到以TXT为后缀的文件中,微程序的格式如下:

如$M 1F 112233, 表示微指令的地址为1FH,微指令值为11H (高)、22H (中)、33H (低),本次实验的微程序如下,其中分号‘;’为注释符,分号后面的内容在下载时将被忽略掉。
(2)写入微程序
用联机软件的“[转储]一[装载]”功能将该格式(*.TXT) 文件装载入实验系统。装入过程中,在软件的输出区的‘结果’栏会显示装载信息,如当前正在装载的是机器指令还是微指令,还剩多少条指令等。
(3)校验微程序
选择联机软件的“[转储] - [ 刷新指令区]”可以读出下位机所有的机器指令和微指令,并在指令区显示。检查微控器相应地址单元的数据是否和表3-2-2中的十六进制数据相同,如果不同,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的微指令,先用鼠标左键单击指令区的‘ 微存’TAB按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6位数据并回车,编辑框消失,并以红色显示写入的数据。

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指令0000000,该指令将会在下个T3被打入指令寄存器(IR),它将RO中的数据和其自身相加后送R0;接下来在CON单元的SD27…SD20给出OUT指令001 10000并继续单步执行,在MC单.元后续微地址显示为000001时,观查OUT单元的显示值是否为01000110。
2)联机运行
联机运行时,进入软件界面,在菜单上选择[实验]一[微控器实验],打开本实验的数据通路图,也可以通过工具栏上的下拉框打开数据通路图,数据通路图如图3-2-8 所示。将时序与操作台单元的开关KK1、KK3置为‘运行’档,按动CON单元的总清开关后,按动软件中单节拍按钮,当后续微地址(通路图中的MAR)为000001 时,置CON单元SD27…SD20,产生相应的机器指令,该指令将会在下个T3被打入指令寄存器(IR), 在后面的节拍中将执行这条机器指令。仔细观察每条机器指令的执行过程,体会后续微地址被强置转换的过程,这是计算机识别和执行指令的根基。也可以打开微程序流程图,跟踪显示每条机器指令的执行过程。
按本机运行的顺序给出数据和指令,观查最后的运算结果是否正确。

七、实验结果与分析:

结果
         手动操作时,系统按照程序编写方式,逐一执行代码:提取机器指令、放入指令寄存器、测试、执行所需操作…执行上述操作的同时,也需要手动的操作IN单元、开关单元、WR、RD等,从而完成一系列的指令操作。最后程序正确的执行,并得出最后正确结果。联机操作时,通过写入需要执行的程序、微程序命令,在CMA软件中进行仿真实验,在实验模型中,可以看到执行每一条指令所进行的一系列操作,同时观察出数据的流向、各个门的开闭。运行到最后,得出正确结果。

分析
         无论是手动操作还是联机操作,都可以正确的执行写入的程序指令,得出正确的结果。通过两次不同实验的对比,我们可以发现,其实微程序起的作用就是将所有指令需要执行的操作编写成一条条的微操作,形成一个微程序库。当执行不同的指令时,同时调出对应的微操作,完成指令操作。

八、心得体会:

通过这次的微程序控制实验,自己深有体会。原来计算机处理程序指令是通过先提取指令、送往指令寄存器,然后利用判断电路对指令类型进行测试,再进行相应的指令操作。在判断数据的流向、存储器的打开等选择上,这时就靠微程序起作用了。在手动操作运行程序时,我们通过逐步手动的控制输入输出流、WR、RD等控制信号,从而进行一系列的指令操作,完成所需运算。而微程序起的作用就是人为的把需要执行指令所需的“人为动作”,全部以微指令的方式存储起来,当需要执行相应的微指令时,直接从微存中调出微程序即可。所以,微程序起的作用简而言之就是替代手工的操作,使得计算机可以按照一定的逻辑关系运行,这同样也是计算机可以在没有人的操作下独立运行人们所编写的原因,同时也保持了绝对的准确性。刚开始的时候,自己对微程序的了解也不是很深,其主要原因就是不知道微程序到底有什么用?为什么需要微程序呢?后面通过手动操作运行程序和联机运行程序的对比,自己才慢慢的明白了原来微程序是以程序命令的方式模拟手动操作。这样计算机的准确性也就同时上了一个新的台阶。

计算机组成原理实验:微程序控制实验相关推荐

  1. 计算机组成原理整机实验报告,计算机组成原理加器实验报告.doc

    计算机组成原理加器实验报告 课程设计任务书 学 院信息学院专 业计算机科学与技术学生姓名学 号设计题目研制一台多累加器结构的实验计算机 内容及要求: 利用EL-JY-II型计算机组成原理实验仪提供的硬 ...

  2. 计算机组成原理复杂机实验总结,计算机组成原理复杂模型机设计_课程设计报告.doc...

    成绩: 计算机组成原理课程设计实验报告 复杂模型机设计 姓 名 _ 曾凯杨 班 级 _ 计算机102 学 号 _ 40 实验地点 _ 计算机实验室四楼 实验时间 _ 3月6日 指导教师 刘晶 概述 这 ...

  3. 计算机组成与系统结构输入输出控制实验,计算机组成原理与系统结构实验指导书...

    计算机组成原理与系统结构实验指导书 (57页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 21.9 积分 计算机实验室实验预习报告专业名称(班级) 姓名 ...

  4. 计算机组成原理模型机设计实验总结,计算机组成原理课程设计实验报告-基本模型机设计与实现.docx...

    计算机组成原理课程设计实验报告-基本模型机设计与实现 计 算 机 组 成 原 理 实 验 报 告 评 语: 成绩 教 师: 年 月 日 班 级: 1403011 学 号: 140301124 姓 名: ...

  5. 计算机模型机设计实验报告,计算机组成原理课程设计实验报告-基本模型机设计与实现...

    计算机组成原理课程设计实验报告-基本模型机设计与实现 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 计 算 机 组 成 原 理实 ...

  6. 计算机组成原理实验箱使能开关,计算机组成原理微程序计数器实验报告

    计算机组成原理微程序计数器实验报告 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 洛阳理工学院实验报告系别计算机与信息工程学院班级学号 ...

  7. 计算机组成原理的实验课心得,计算机组成原理移位控制实验心得.docx

    计算机组成原理移位控制实验心得 计算 机组成原理实验五 位运算实验............... 姓名:陈衍席学号:网工1202移 [实验环境] 1.WindowsXX或WindowsXP 2.sp2 ...

  8. 计算机组成原理实验箱D7,计算机组成原理与系统结构实验仪教学设备,上海求育...

    原标题:计算机组成原理与系统结构实验仪教学设备,上海求育 上海求育QY-JXSY30计算机组成原理与系统结构实验箱 上海求育QY-JXSY30计算机组成原理与系统结构实验箱是一款八位,十六位兼容设计的 ...

  9. 计算机组成原理微控制设计实验总结,计算机组成原理微程序控制器实验报告.doc...

    计算机组成原理微程序控制器实验报告.doc 计算机组成原理实验报告三:微程序控制器实验?? 2011-05-06 01:00:09|??分类: 实验报告 |??标签:实验??微程序??字段??微指令? ...

  10. 2015年杭电计算机存储器扩展,杭电计算机组成原理存储器设计实验5

    <杭电计算机组成原理存储器设计实验5>由会员分享,可在线阅读,更多相关<杭电计算机组成原理存储器设计实验5(4页珍藏版)>请在人人文库网上搜索. 1.杭州电子科技大学计算机学院 ...

最新文章

  1. [WinAPI] API 11 [创建目录]
  2. 交换机端口mtu值最大_大中型监控系统如何正确选择交换机
  3. Spring Cloud Alibaba基础教程:Sentinel Dashboard同步Apollo存储规则
  4. linux ajp集群,Linux下apache tomcat ajp_proxy 负载均衡+集群+session 复制
  5. 7-1 最大子列和问题
  6. 多分类loss函数本质理解
  7. YznCMS 后台开发框架
  8. c#操作XML文件 1614260503
  9. linux永久启动服务命令,Linux(CentOS)用service命令启动任意服务
  10. AcWing 1813. 方块游戏(暴力枚举)
  11. 百科知识 STEP文件如何打开
  12. java Structs 介绍
  13. 最小生生树算法-prim/kruskal
  14. autogluon--自动机器学习快速训练模型
  15. 金山云智能营销平台再升级,AI 投放助力游戏厂商精准到达;微医发布 AI 解决方案,提升县域医疗服务能力...
  16. lavarvel框架路由
  17. 微信小程序全栈开发实践 第三章 微信小程序开发常用的API介绍及使用 -- 3.6 网络接口简介(六)关于Page页面隐藏代码执行及Promise对象catch处理的补充
  18. IntelliJ IDEA 创建Java项目
  19. cnPuTTY CAC 0.78.0.1—PuTTY CAC 0.78中文版本简单说明~~
  20. android 中打电话,Android 在 APP 中实现拨打电话的方法

热门文章

  1. windows2008 R2安装LoadRunner 11提示WindowsInstaller存储空间不足解决方法
  2. 在LUAT中使用MQTT客户端
  3. 数据化建设知识图谱(文末附PDF下载)
  4. 关闭Window 10 Ctrl+Shift+B(表情包)快捷键冲突
  5. CNN 入门讲解:什么是标准化?
  6. 骨传导耳机有什么优缺点,骨传导耳机好用吗
  7. 什么是知识图谱?通俗易懂
  8. 存地失人,人地皆失;存人失地,人地皆存。
  9. Spring Boot进阶:原理、实战与面试题分析
  10. 360点睛销售开放平台-身份认证-java版