《计算机组成原理》微程序设计实验报告.docx

上传人:b****1 文档编号:1619330 上传时间:2023-05-01 格式:DOCX 页数:14 大小:179.18KB
下载 相关 举报
《计算机组成原理》微程序设计实验报告.docx_第1页
第1页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第2页
第2页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第3页
第3页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第4页
第4页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第5页
第5页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第6页
第6页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第7页
第7页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第8页
第8页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第9页
第9页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第10页
第10页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第11页
第11页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第12页
第12页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第13页
第13页 / 共14页
《计算机组成原理》微程序设计实验报告.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《计算机组成原理》微程序设计实验报告.docx

《《计算机组成原理》微程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《《计算机组成原理》微程序设计实验报告.docx(14页珍藏版)》请在冰点文库上搜索。

《计算机组成原理》微程序设计实验报告.docx

《计算机组成原理》微程序设计实验报告

《计算机组成原理》

实验报告

 

学院:

计算机学院

专业:

交通工程

班级学号:

AP0804114

学生姓名:

黄佳佳

实验日期:

2010.12.14

指导老师:

李鹤喜

成绩评定:

 

五邑大学信息学院计算机组成原理实验室

 

实验五微程序设计实验

一、实验目的:

深入掌握微程序控制器的工作原理,学会设计简单的微程序。

二、预习要求:

1.复习微程序控制器工作原理;

2.复习计算机微程序的有关知识。

三、实验设备:

EL-JY-II型计算机组成原理实验系统一台,连接线若干。

四、微程序的设计:

1.微指令格式

设计微指令编码格式的主要原则是使微指令字短、能表示可并行操作的微命令多、微程序编写方便。

微指令的最基本成份是控制场,其次是下地址场。

控制场反映了可以同时执行的微操作,下地址场指明下一条要执行的微指令在控存的地址。

微指令的编码格式通常指控制场的编码格式,以下几种编码格式较普遍。

1)最短编码格式

这是最简单的垂直编码格式,其特点是每条微指令只定义一个微操作命令。

采用此格式的微指令字短、容易编写、规整直观,但微程序长度长,访问控存取微指令次数增多从而使指令执行速度慢。

2)全水平编码格式

这种格式又称直接编码法,其特点是控制场每一位直接表示一种微操作命令。

若控制场长n位,则至多可表示n个不同的微操作命令。

采用此格式的微指令字长,但可实现多个允许的微操作并行执行,微程序长度短,指令执行速度快。

3)分段编码格式是将控制场分成几段。

若某段长i位,则经译码,该段可表示2i个互斥的即不能同时有效的微操作命令。

采用这种格式的微指令长度较短,而可表示的微操作命令较多,但需译码器。

2.微程序顺序控制方式的设计

微程序顺序控制方式指在一条指令对应的微程序执行过程中,下一条微指令地址的确定方法,又叫后继地址生成方式。

下面是常见的两种。

1)计数增量方式

这种方式的特点是微程序控制部件中的微地址中的微地址产生线路主要是微地址计数器MPC。

MPC的初值由微程序首址形成线路根据指令操作码编码形成。

在微程序执行过程中该计数器增量计数,产生下一条微指令地址。

这使得微指令格式中可以不设置“下地址场”。

缩短了微指令长度,也使微程序控制部件结构较简单。

但微程序必须存放在控存若干连续单元中。

2)断定方式

微指令中设有“下地址场”,它指出下条微指令的地址,这使一条指令的微程序中的微指令在控存中不一定要连续存放。

在微程序执行过程中,微程序控制部件中的微地址形成电路直接接受微指令下地址场信息来产生下条微指令地址,微程序的首址也由此微地址形成电路根据指令操作码产生。

3.本系统的微指令格式

微程序设计的关键技术之一是处理好每条微指令的下地址,以保证程序正确高效地进行。

本系统采用分段编码的指令格式,采用断定方式确定下一条微指令的地址。

微操作控制信号

控制场下地址场

微指令寄存器MIR

微指令

控存CM

微地址

微地址形成电路

状态条件

指令操作码

图5-2断定方式微程序控制部件示意图

其中“微地址形成电路”对应于实验四的图4-1(b);“控存CM”对应于实验四的图4-1(a);“微指令寄存器及控制、地址场”对应于实验四的图4-1(c)。

每条微指令由24位组成,其控制位顺序如下:

24

23

22

21

20

19

18

17

16

151413

121110

987

6

5

4

3

2

1

S3

S2

S1

S0

M

Cn

WE

1A

1B

F1

F2

F3

uA5

uA4

uA3

uA2

uA1

uA0

 

微指令译码电路如下:

图5—3微指令译码电路

图中MS24—MS16对应于微指令的第24—16位,S3S2S1S0MCn为运算器的方式控制,详见实验一和实验二;WE为外部器件的读写信号,‘1’表示写,‘0’表示读;1A、1B用于选通外部器件,通常接至底板IO控制电路的1A1B端,四个输出Y0Y1Y2Y3接外部器件的片选端。

(注:

再实验六及以后的实验中,Y3被系统占用,用于输入中断,Y0Y1Y2仍能被用户使用)

图5—3中MS15—MS13对应于微指令中的F1,经锁存译码后产生6个输出信号:

LRi、LDR1、LDR2、LDIR、LOAD、LAR。

其中LDR1、LDR2为运算器的两个锁存控制(见实验一);LDIR为指令寄存器的锁存控制(见系统介绍中指令寄存器电路);LRi为寄存器堆的写控制,它与指令寄存器的第0位和第1位共同决定对哪个寄存器进行写操作(见系统介绍中寄存器堆电路和图5-4);LOAD为程序计数器的置数控制,LAR为地址寄存器的锁存控制(见系统介绍中程序计数器和地址寄存器电路)。

以上6个输出信号均为‘1’有效。

图5—3中MS12—MS10对应于微指令中的F2,经锁存译码后产生6个输出信号:

RAG、RBG、RCG、299-G、ALU-G、PC-G。

其中RAG、RBG、RCG分别为寄存器Ax、Bx、Cx的输出控制(见系统介绍中寄存器堆电路);299-G为移位寄存器的输出控制(见实验二);ALU-G为运算器的输出控制(见实验一);PC-G为程序计数器的输出控制(见系统介绍中程序计数器和地址寄存器电路)。

以上信号均为‘0’有效。

图5—3中MS9—MS9对应于微指令中的F3,经锁存译码后产生6个输出信号:

P1、P2、P3、P4、AR、LPC。

其中P1、P2、P3、P4位测试字,其功能是对机器指令进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支和循环运行(见实验4的图4-1(b)和图5-4);AR为运算器的进位输出控制(见实验一);LPC为程序计数器的时钟控制(见系统介绍中程序计数器电路)。

以上信号均为‘1’有效。

图5-4指令译码器电路

微指令中的uA5-uA0为6位的后续微地址(见实验4的微地址形成电路图4-1(b))。

表5-1F1、F2、F3三个字段的编码方案

F1字段

F2字段

F3字段

151413

选择

121110

选择

987

选择

000

LDRi

000

RAG

000

P1

001

LOAD

001

ALU-G

001

AR

010

LDR2

010

RCG

010

P3

011

自定义

011

自定义

011

自定义

100

LDR1

100

RBG

100

P2

101

LAR

101

PC-G

101

LPC

110

LDIR

110

299-G

110

P4

111

无操作

111

无操作

111

无操作

五、实验内容:

编写几条可以连续运行的微代码,熟悉本实验系统的微代码设计方式。

表5-2为几条简单的可以连续运行的二进制微代码表:

注意UA5-------UA0的编码规律,观察后续地址。

表5-2实验五微代码表

微地址(二进制)

S3S2S1S0MCNWE1A1B

F1

F2

F3

UA5...UA0

000000

000000000

000

000

000

000001

000001

000000000

000

000

000

000010

000010

000000000

000

000

000

000011

000011

000000010

101

111

111

000100

000100

000000010

010

111

111

001000

001000

000000000

000

111

000

001001

001001

000000011

101

101

101

010000

010000

000000011

101

101

101

010101

010101

000001101

111

001

111

011000

011000

111111110

111

001

111

011001

011001

000000010

111

111

000

000000

以下举例说明微代码的含义:

1、微地址“000011”:

读Y1设备上的数据,并将该数据打入地址寄存器。

然后跳转至微地址“000100”。

2、微地址“000100”:

读Y1设备上的数据,并将该数据打入运算暂存器2,然后跳转至微地址“001000”。

3、微地址“011000”:

运算暂存器1数据输出至数据总线,将该数据写入Y1设备,然后跳转至微地址“011001”。

4、微地址“011001”:

读Y1设备上的数据,然后进行P1测试。

由于未对指令寄存器操作,I7—I0均为0,强制置位无效,仍跳转至后续微地址“000000”。

六、实验步骤:

Ⅰ、单片机键盘操作方式实验

在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。

1.实验连线:

实验连线图如图5-5所示。

连线时应按如下方法:

对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

图5—5实验五键盘实验连线图

2.写微代码:

(1)将开关K1K2K3K4拨到写状态即K1off、K2on、K3off、K4off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。

在监控指示灯滚动显示【CLASSSELECt】状态下按【实验选择】键,显示【ES--__】输入05或5,按【确认】键,显示为【ES05】,再按下【确认】键。

(2)监控显示为【CtL1=_】,表示对微代码进行操作。

输入1显示【CtL1_1】,表示写微代码,按【确认】。

(3)监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,这时输入微代码【000001】,该微代码是用6位十六进制数来表示前面的24位二进制数,注意输入微代码的顺序,先右后左,此过程中可按【取消】键来取消上一次输入,重新输入。

按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入表5-3第二条微代码地址。

(4)按照上面的方法输入表5-3微代码,观察微代码与微地址显示灯的对应关系(注意输入微代码的顺序是由右至左)。

表5-3实验五微代码表

微地址(二进制)

微代码(十六进制)

000000

000001

000001

000002

000010

000003

000011

015FC4

000100

012FC8

001000

018E09

001001

005B50

010000

005B55

010101

06F3D8

011000

FF73D9

011001

017E00

3.读微代码:

(1)先将开关K1K2K3K4拨到读状态即K1off、K2off、K3on、K4off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASSSELECt】状态。

(2)按【实验选择】键,显示【ES--__】输入05或5,按【确认】键,显示【ES05】。

按【确认】键。

(3)监控显示【CtL1=_】时,输入2,按【确认】显示【U_Addr】,此时输入6位二进制微地址,进入读微代码状态。

再按【确认】显示【PULSE】,此时按【单步】键,监控显示【U_Addr】,微地址指示灯显示输入的微地址,微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。

对照表5-3表检查微代码是否有错误,如有错误,可按步骤2写微代码重新输入这条微代码。

4.微代码的运行:

(1)先将开关K1K2K3K4拨到运行状态即K1on、K2off、K3on、K4off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASSSELECt】状态。

(2)按【实验选择】键,显示【ES--__】输入05或5,按【确认】键,显示【ES05】。

按【确认】键。

(3)监控指示灯显示【CtL1=_】,输入3,显示【CtL1_3】,表示进入运行微代码状态,拨动CLR清零开关(在控制开关电路上,注意对应的JUI应短接)对程序计数器清零,清零结果是地址指示灯(A7—A0)和微地址显示灯(uA5—uA0)全灭,清零步骤是使其电平高-低-高即CLR指示灯状态为亮-灭-亮,使程序入口地址为000000。

1)、单步运行

在监控指示灯显示【CtL1_3】状态下,确认清零后,按【确认】键,监控指示灯滚动显示【RunCodE】,此时可按【单步】键单步运行微代码,观察微地址显示灯,显示“000001”,再按【单步】,显示为“000010”,连续按【单步】,则可单步运行微代码,注意观察微地址显示灯和微代码的对应关系。

2)、全速运行

在控指示灯滚动显示【RunCodE】状态下,按【全速】键,开始自动运行微代码,微地址显示灯显示从“000000”开始,到“000001”、“000010”、“000011”、“000100”、“001000”、“001001”、“010000”、“010101”、“011000”、“011001”再到“000000”,循环显示。

Ⅱ、开关控制操作方式实验

本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。

为了避免总线冲突,首先将控制开关电路的所有开关拨到输出高电平“1”状态,所有对应的指示灯亮。

连线时应注意:

对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

 

1.按图5-6接线图接线:

2.实验步骤:

1)写微代码(以写表5-3的微代码为例):

首先将微程序控制电路上的开关K1K2K3拨到写入状态,即K1off、K2on、K3off,然后将24位微代码输入及显示电路上的开关K4拨到on状态。

置控制开关UA5……UA0=“000000”,输入微地址“000000”,置24位微代码开关MS24---MS1为:

“000000000000000000000001”,输入24位二进制微代码,按【单步】,红色微地址灯显示“000000”,写入微代码。

保持K1K2K3K4状态不变,写入表4-1的所有微代码。

2)读微代码并验证结果:

将微程序控制电路上的开关K1K2K3拨到读出状态,即K1off、K2off、K3on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。

置控制开关UA5……UA0=“000000”,输入微地址“000000”,按【单步】,黄色微地址灯显示“000000”,24位微代码显示“000000000000000000000001”,即第一条微代码。

保持K1K2K3K4状态不变,改变UA5……UA0微地址的值,读出相应的微代码,并和表5-3的微代码比较,验证是否正确。

如发现有误,则需重新输入微代码。

3)运行微代码:

将微程序控制电路上的开关K1K2K3拨到运行状态,即K1on、K2off、K3on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。

拨动控制开关电路上的清零开关CLR,使微地址和地址指示灯全灭。

置控制开关“UA5------UA0=“000000”,程序运行入口地址为000000,按【单步】,运行微代码,观察黄色微地址显示灯,显示“000001”,再按【单步】,显示为“000010”,连续按【单步】,则可单步运行微代码,注意观察微地址显示灯和微代码的对应关系,微地址显示灯显示从“000000”开始,到“000001”、“000010”、“000011”、“000100”、“001000”、“001001”、“010000”、“010101”、“011000”、“011001”再到“000000”,循环显示。

八.心得体会

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2