ELJYⅡ 计算机组成原理第二套 实验十.docx

上传人:b****6 文档编号:7724455 上传时间:2023-01-26 格式:DOCX 页数:12 大小:159.69KB
下载 相关 举报
ELJYⅡ 计算机组成原理第二套 实验十.docx_第1页
第1页 / 共12页
ELJYⅡ 计算机组成原理第二套 实验十.docx_第2页
第2页 / 共12页
ELJYⅡ 计算机组成原理第二套 实验十.docx_第3页
第3页 / 共12页
ELJYⅡ 计算机组成原理第二套 实验十.docx_第4页
第4页 / 共12页
ELJYⅡ 计算机组成原理第二套 实验十.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

ELJYⅡ 计算机组成原理第二套 实验十.docx

《ELJYⅡ 计算机组成原理第二套 实验十.docx》由会员分享,可在线阅读,更多相关《ELJYⅡ 计算机组成原理第二套 实验十.docx(12页珍藏版)》请在冰豆网上搜索。

ELJYⅡ 计算机组成原理第二套 实验十.docx

ELJYⅡ计算机组成原理第二套实验十

实验十、具有简单中断处理功能的模型机实验

一、实验目的:

1.了解微程序控制器是如何控制模型机运行的,掌握整机动态工作过程;

2.掌握中断响应、中断处理的流程及实现方法;

3.定义若干条机器指令,编写相应微程序并具体上机调试。

二、实验设备:

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

三、模型机结构:

图10-1模型机结构图

图中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273构成,暂存器2由U5、U6两片74LS273构成。

微控器部分控存由U13—U15三片2816构成。

除此之外,CPU的其它部分都由EP1K10集成(其原理见系统介绍部分)。

存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。

输出设备由底板上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。

在开关方式下,输入设备由16位电平开关及两个三态缓冲芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。

在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。

中断源可由底板脉冲源和时序电路中的单脉冲提供。

每按一次单脉冲产生一次中断请求。

中断请求由CPU板上的“LARI”引入微控器。

注:

本系统的数据总线为16位,指令、地址和程序计数器均为8位。

当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低8位有效。

四、工作原理

本实验在实验八的基础上,增加三条指令:

1、开中断指令:

助记符指令格式

STI01010000

2、关中断指令:

助记符指令格式

CLI01100000

3、中断返回指令:

助记符指令格式

IRET01110000

中断处理的过程如下:

系统内部设有一个“中断允许”标志位,CLI指令使它复位,STI指令使它置位。

另设一个“中断请求”标志位,只有当“中断允许”为置位态时检测到外部中断脉冲,才将“中断请求”置位,否则“中断请求”为复位状态。

在某些指令执行完正常操作返回之前,进入中断请求测试,如“中断请求”为复位状态则正常返回。

如“中断请求”为置位状态,则将下一条程序的地址压入堆栈,同时将固定的中断服务程序首地址送入程序计数器,在下一个CPU周期进入中断服务程序的执行。

当中断服务程序执行到“IRET”指令时,进行中断返回测试,将堆栈中地址弹出送入程序计数器,在下一个CPU周期进入中断前程序的执行。

以上这些操作均由EP1K10实现,有兴趣的读者可查看随机工程文件total_1.gdf。

与前面实验一样,系统设计的微指令字长共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

F1、F2、F3三个字段的编码方案如表10-2:

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

P5

100

LDR1

100

RBG

100

P2

101

LAR

101

PC-G

101

LPC

110

LDIR

110

299-G

110

P4

111

无操作

111

无操作

111

无操作

表10-2

注:

此处定义P5为中断请求测试,P3为中断返回测试。

系统涉及到的微程序流程见图10-2(图中各方框内为微指令所执行的操作,方框外的标号为该条微指令所处的八进制微地址)。

控制操作为P4测试,它以CA1、CA2作为测试条件,出现了写机器指令、读机器指令和运行机器指令3路分支,占用3个固定微地址单元。

(注:

CA1、CA2由控制总线的E4、E5给出。

键盘操作方式时由监控程序直接对E4、E5赋值,无需接线。

开关方式时可将E4、E5接至控制开关CA1、CA2,由开关来控制。

在机器指令的执行过程中,公用微指令对应于图10-2中01、02、21地址的微指令。

21地址为“译码”微指令,该微指令的操作为P

(1)测试,测试结果出现多路分支。

本实验用指令寄存器的前4位(I7-I4)作为测试条件,出现6路分支,占用6个固定微地址单元。

如I7—I4相同,则还需进行P2测试,以指令寄存器的I3、I2位作为测试条件,以区分不同的指令,如MOV、JMP指令和IN、OUT指令。

在执行P1测试时,如I7—I0=“01010000”(即STI指令),则将“中断允许”置位;如I7—I0=“01100000”(即CLI指令),则将“中断允许”复位;在JMP和OUT指令中进行中断请求测试,在IRET指令中进行中断返回测试。

本实验中中断服务程序首地址固定为“0AH”。

当全部微程序流程图设计完毕后,应将每条微指令代码化,表10-3即为将图9-3的微程序流程按微指令格式转化而成的微代码表。

控制开关

00

P(4)测试

MWE(10)MRD(00)RUN(11)

PCAR,PC+121PCAR,PC+12023

(D_INPUT)D_BUSLT124RAMD_BUSLT12201

LT1RAM30LT1LED27

图10-2微指令流程图

五、实验参考代码

本实验采用的微代码如下:

微地址(八进制)

微代码(十六进)

00

007F90

01

005B42

02

016FDC

04

0029C5

05

9403C1

10

005B65

11

0041C4

14

007F0D

15

02F1D9

17

018FC1

20

005B52

21

005B54

22

014FD7

23

007FC1

24

01CFD8

27

06F3D0

30

FF73D1

31

005BDA

32

001EC1

33

001E81

34

016E08

35

007FC1

36

007FC1

37

007FDB

41

010FC1

42

011F59

45

007F20

表10-3微代码表

本实验采用的机器指令如下所示:

地址机器指令助记符说明

000060CLI关中断

010048INAx,KIN“数据输入电路”—>Ax

020050STI开中断

030044OUTDISP,AXAx—>显示LED

040008JMP03H03H—>PC

050003

060000无效空指令

070000无效空指令

080000无效空指令

090000无效空指令

0A0060CLI关中断(中断入口)

0B0005MOVBx,01H01H—>Bx

0C0001

0D0094ADDAx,BxAx+Bx—>Ax

0E0050STI开中断

0F0070IRET中断返回

表10-4机器指令表

注:

其中MOV、JMP为双字长(32位),其余为单字长指令。

对于双字长指令,第一字为操作码,第二字为操作数;对于单字长指令只有操作码,没有操作数。

上述所有指令的操作码均为低8位有效,高八位默认为0。

而操作数8位和16位均可。

KIN和DISP分别为本系统专用输入、输出设备。

六、实验连线

采用键盘方式时见连线图10-3。

(连线时应按如下方法:

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

采用开关方式时,接线作如下改动:

断开控制总线C1——C6和F4——F1上的接线

数据输入电路DIJ1接数据总线BD7-----BD0

数据输入电路DIJ2接数据总线BD15-----BD8

数据输入电路DIJ-G接I/O控制电路Y3

微控器接口UAJ1接控制开关电路UA5---UA0

脉冲源及时序电路fin接脉冲源及时序电路f/8

脉冲源及时序电路T4—T1接控制总线T4---T1

控制开关电路CA1接控制总线E4

控制开关电路CA2接控制总线E5

七、实验步骤

实验前首先将CPU板上的J1-J6跳线均接至EPC2ON,然后通过CPU板上JTAG口将total_1.pof文件写入FPGA。

将系统关电重启动。

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

1、写微代码:

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

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

(2)监控显示为【CtL1=_】,输入1显示【CtL1_1】,按【确认】。

(3)监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,显示这时输入微代码【007F90】,该微代码是用6位十六进制数来表示前面的24位二进制数,注意输入微代码的顺序,先右后左,按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入第二条微代码地址。

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

2.读微代码及校验微代码:

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

(2)按【实验选择】键,显示【ES--__】输入10,按【确认】键,显示【ES10】。

按【确认】键。

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

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

(4)此时监控显示【U_Addr】,按上述步骤对照表10-3检查微代码是否有错误,如有

错误,可按步骤1重新输入微代码。

3、写机器指令

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

(2)按【实验选择】键,显示【ES--__】输入10,按【确认】键,显示【ES10】,再按【确认】。

(3)监控显示【CtL1=_】,按【取消】键,监控指示灯显示【CtL2=_】,输入1显示【CtL2_1】表示进入对机器指令操作状态,此时拨动CLR清零开关(在控制开关电路上,注意对应的JUI应短接)对地址寄存器、指令寄存器清零,清零结果是微地址指示灯和地址指示灯全灭。

如不清零则会影响机器指令的输入!

确定清零后,按【确认】。

(4)监控显示闪烁的【PULSE】,按【单步】键,微地址显示灯显示“010001”时,再按【单步】,微地址显示灯显示“010100”,地址指示灯显示“00000000”,此时按【确认】键,监控指示灯显示【data】,提示输入机器指令“60”或“0060”(两位或四位十六进制数),输入后按【确认】,显示【PULSE】,再按【单步】,微地址显示灯显示“011000”,数据总线显示灯显示“0000000001100000”,即输入的机器指令。

(5)再连续按【单步】,当微地址显示灯再次显示“010100”时,按【确认】输入第二条机器指令。

依此规律逐条输入表10-4的机器指令,输完后,可连续按【取消】或【RESET】键退出写机器指令状态。

注意,每当微地址显示灯显示“001100”时,地址指示灯自动加1显示。

如输入指令为8位,则高8位自动变为0。

4.读机器指令及校验机器指令:

在监控指示灯显示【CtL2=_】状态下,输入2,显示【CtL2_2】,表示进入读机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【PULSE】,连续按【单步】键,微地址显示灯(黄色)显示从“000000”开始,然后按“010000”、“010010”、“010110”方式循环显示。

当微地址灯再次显示为“010000”时,输出显示数码管上显示写入的机器指令。

读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的对应关系。

如果发现机器指令有误,则需重新输入机器指令。

注意:

机器指令存放在RAM里,掉电丢失,故断电后需重新输入。

5.运行程序

在监控指示灯显示【CtL2=_】状态下,输入3,显示【CtL2_3】,表示进入运行机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【runCodE】,表示运行程序,可以【单步】运行也可以【全速】运行程序,观察实验运行结果。

6.运行结果

1)单步运行结果

在监控指示灯显示[runcode]状态下,连续按[单步]键,可单步运行程序。

当微地址显示灯显示“001111”时,按[单步],监控指示灯显示[data],此时输入数据1000,按[确认],再连续按[单步]。

当微地址显示灯显示“001101”时,按[单步],输出显示电路数码管结果为1000。

此时可按一次单脉冲键,再连续按[单步]。

当微地址显示灯再次显示“001101”时,按[单步],输出显示结果为1001。

以后每按一次单脉冲键,经若干[单步]后,输出显示结果均自动加1。

2)全速运行结果

在监控指示灯显示[runcode]状态下,按[全速]键,开始自动执行程序。

在监控指示灯显示[data]时输入数据,按[确定]键,程序继续运行,此时可由数码管显示输入的数据。

此后,每按一次单脉冲键,输出显示结果均自动加1。

Ⅱ、采用开关控制操作方式进行实验

读者可参考前述实验自行思考用开关方式的接线和实验过程。

八、实验提示

在单步运行状态下,通过微地址显示灯观察其运行流程,特别是发生中断后的运行流程。

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1