计算机组成原理中断实验报告Word下载.docx
- 文档编号:18822082
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:14
- 大小:83.07KB
计算机组成原理中断实验报告Word下载.docx
《计算机组成原理中断实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理中断实验报告Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
实验任务
•基于TEC-9教学实验平台基于原有指令集的基础上设计或扩展4~8条指令。
首先在原微程序控制器指令系统的基础上进行原指令集的微指令编码的测试,然后利用上端软件,编写用户设计的微指令,实现指令预定的功能。
实验步骤
•1、进行原实验平台指令集的微程序控制器下指令运行测试;
•2、记录每一条机器指令的指令的执行流程和微命令编码;
•3、画出每一条指令的指令微程序执行流程图;
•4、在原有指令集基础上自行设计或扩展4~8条指令。
画出扩展指令的指令执行流程图;
•5、利用上端软件,把所编写的微程序控制器容写入实验台中控制器中。
•6、利用单拍测试控制器与编程的要否一致。
如果有错误重新修改后再写入控制器中。
7、编写一段测试程序,测试控制器运行是否正确。
Ø
实验电路
1.微指令格式与微程序控制器电路
2.微程序控制器组成
仍然使用前面的CPU组成与机器指令执行实验的电路图,但本次实验加入中断系统。
这是一个简单的中断系统模型,只支持单级中断、单个中断请求,有中断屏蔽功能,旨在说明最基本的原理。
中断屏蔽控制逻辑分别集成在2片GAL22V10(TIMER1和TIMER2)中。
其ABEL语言表达式如下:
INTR1:
=INTR;
INTR1.CLK=CLK1;
IE:
=CLR&
INTS#CLR&
IE&
!
INTC;
IE.CLK=MF;
INTQ=IE&
INTR1;
其中,CLK1是TIMER1产生的时钟信号,它主要是作为W1—W4的时钟脉冲,这里作为INTR1的时钟信号,INTE的时钟信号是晶振产生的MF。
INTS微指令位是INTS机器指令执行过程中从控制存储器读出的,INTC微指令位是INTC机器指令执行过程中从控制存储器读出的。
INTE是中断允许标志,控制台有一个指示灯IE显示其状态,它为1时,允许中断,为0时,禁止中断。
当INTS=1时,在下一个MF的上升沿IE变1,当INTC=1时,在下一个MF的上升沿IE变0。
CLR信号实际是控制台产生的复位信号CLR#。
当CLR=0时,在下一个CLK1的上升沿IE变0。
当CLR=1且INTS=0且INTC=0时,IE保持不变。
INTR是外部中断源,接控制台按钮INTR。
按一次INTR按钮,产生一个中断请求正脉冲INTR。
INTR1是INTR经时钟CLK1同步后产生的,目的是保持INTR1与实验台的时序信号同步。
INTR脉冲信号的上升沿代表有外部中断请求到达中断控制器。
INTQ是中断屏蔽控制逻辑传递给CPU的中断信号,接到微程序控制器上。
当收到INTR脉冲信号时,若中断允许位INTE=0,则中断被屏蔽,INTQ仍然为0;
若INTE=1,则INTQ=1。
为保存中断的断点地址,以便中断返回,设置了一个中断地址寄存器IAR。
第二节图4中的IAR(U19)就是这个中断地址寄存器,它是一片74HC374,有LDIAR和IAR_BUS#两个信号输入端,均连接至微程序控制器。
LDIAR信号的上升沿到达时,来自程序计数器PC的地址会置入IAR中。
IAR_BUS#为0时,保存在IAR中的断点地址会输出到数据总线DBUS上。
由于本实验系统只有一个断点寄存器而无堆栈,因此仅支持一级中断而不支持多级中断。
中断向量即中断服务程序的入口地址,在本实验仪中由8位数码开关SW7—SW0提供。
3.中断的检测、执行和返回过程
微程序控制器每执行一条机器指令之后,执行下一条机器指令之前,先转到微地址0F处(见图12微程序流程图),在条件位P1=1时判断是否有中断请求INTQ。
如果没有INTQ,则继续正常的机器指令执行。
若检测到中断请求INTQ,首先发出关中断信号INTC、保存断点信号LDIAR,并且发出停机信号TJ,等待手动设置中断向量。
设置好SW7—SW0后,按QD按钮启动,机器将中断向量读入程序计数器PC中,从而转到中断服务子程序去执行。
执行一条机器指令IRET,从中断服务子程序返回时,发出IAR_BUS#信号,从中断地址寄存器IAR向数据总线DBUS输出断点地址,再从DBUS依次写入到R4、PC中,恢复执行被中断的程序。
发生中断时,关中断由硬件负责,而中断现场(寄存器堆中的寄存器,进位标志C)的保存和恢复由中断服务程序来处理。
(1)了解中断系统中每个信号的意义和变化条件,并将下面的主程序和中断服务程序手工汇编成十六进制机器代码,此项任务应在预习时完成。
主程序:
地址
指令
机器代码
20H
INTS
21H
LDAR0,[R2]
22H
ADDR0,R0
23H
24H
25H
26H
27H
28H
29H
JMP[R1]
中断服务程序:
0A0H
ANDR0,R0
0A1H
IRET
(2)参考CPU组成与机器指令执行实验,再加上中断系统,完成本次实验的线路连接。
接通电源之前应仔细检查接线,确认无误。
(3)将上述任务
(1)的程序代码存入存中,并根据需要设置通用寄存器组和存相关单元的数据。
其中,寄存器R1的值应置为21H,以便程序循环执行。
(4)从地址20H执行程序,在程序运行中,按一次控制台的INTR。
进入中断后,用单拍(DP)方式执行,直到返回主程序为止。
列表记录中断系统中有关信号的变化情况,特别要纪录好断点地址和R0的值。
(5)重复执行(4)两次。
(一共执行3次)
(6)将RAM中20H单元的容由指令INTS改为INTC,重作(4),记录发生的现象。
六、实验步骤和实验结果
1、实验程序
主程序:
0BH
58H
00H
84H
中断服务程序:
30H
0A0H
2、接线
微程序控制器与数据通路之间的线可以通过选择开关直接选择。
将开关设置为“微程序”。
只需连接数据通路部分的线。
a、数据通路的LDIR接CER、LDPC接LDR4、LDDR1接LDDR2、M1接M2、LDAR1接LDAR2。
b、指令寄存器IR的输出IR0接双端口寄存器堆的RD0、WR0,IR1接RD1、WR1,IR2接RS0,IR3接RS1。
C、单脉冲DMC接中断INTR
信号1
LDIR
LDPC
LDDR1
M1
LDAR1
IR0
IR1
IR2
IR3
DMC
信号2
CER
LDR4
LDDR2
M2
LDAR2
RD0
WR0
RD1
WR1
RS0
RS1
INTR
选择开关拔至“微程序”
3、存程序机器代码,设置通用寄存器R1、R2及存相关单元的数据。
(1)、设置寄存器R1、R2的值
根据要求,设置R1=21H,R2的值由实验者自定,假定为10H。
1)、令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。
令SWB=1,SWA=1,使实验系统处于寄存器加载工作方式KLD。
按CLR#按钮,使实验系统处于初始状态。
1)、在SW7—SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。
该存储器地址最好是不常用的一个地址,以免设置通用寄存器操作破坏重要的存储器单元的容。
例如可将该地址设置为0FFH。
按一次QD按钮,将0FFH写入AR1和AR2。
2)在SW7—SW0上设置01H,作为通用寄存器R1的寄存器号。
按一次QD按钮,将01H写入IR。
3)在SW7—SW0设置21H,按一次QD按钮,将21H写入IR指定的R1寄存器。
4)在SW7—SW0上设置02H,作为通用寄存器R2的寄存器号。
按一次QD按钮,将02H写入IR。
5)在SW7—SW0设置10H,作为R2的值。
按一次QD按钮,将10H写入IR指定的R2寄存器。
6)设置R1、R2结束,按CLR#按钮,使实验系统恢复到初始状态。
(2)、存程序机器代码。
本操作中,我们在10H单元存入01H(也可以是其他值),从20地址开始存10个机器代码:
0B0H,58H,00H,00H,00H,00H,00H,00H,00H,84H。
从0A0H存入2个机器代码:
30H,0A0H。
1)令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。
令SWB=1,SWA=0,使实验系统处于写双端口存储器工作方式KWRD。
2)置SW7—SW0为10H,按QD按钮,将10H写入AR1。
3)置SW7—SW0为01H,按QD按钮,将01H写入存储器10H单元。
写主程序
1)按CLR#按钮,使实验系统恢复初始状态。
2)置SW7—SW0为20H,按QD按钮,将20H写入AR1。
3)置SW7—SW0为0B0H,按QD按钮,将0B0H写入存储器20H单元。
AR1自动加1,变为21H。
4)置SW7—SW0为58H,按QD按钮,将58H写入存储器21H单元。
AR1自动加1,变为22H。
5)重复进行下去,一直到将84H写入存储器29H单元。
按CLR#按钮,使实验系统恢复到初始状态。
写中断程序
1)置SW7—SW0为0A0H,按QD按钮,将0A0H写入AR1。
2)置SW7—SW0为30H,按QD按钮,将30H写入存储器0A0H单元。
3)置SW7—SW00A0H,按QD按钮,将0A0H写入存储器0A1H单元。
4)按CLR#按钮,使实验系统恢复到初始状态。
或用实验台监控系统或系统上端软件直接写入容
(3)从地址20H连续执行程序
从地址20H连续执行程序,在程序运行中,按一次控制台的INTR。
1)令DP=0,DZ=0,DB=0,使实验系统处于连续运行状态。
2)置SW7—SW0为20H,作为程序的起始地址。
按QD按钮,启动程序从20H地址运行。
中断允许指示灯亮。
3)按INTR按钮,发出一个INTR中断脉冲,请求中断。
中断后硬件自动将中断地址存入中断地址寄存器IAR。
微程序地址应为25H。
4)置SW7—SW0为0A0H,这是中断程序的入口地址。
将DP由置0改为置1。
按一次QD按钮,将0A0H送入程序计数器PC。
微程序地址应为26H。
5)按一次QD按钮,进行取指微操作。
微程序地址应为05H。
6)按一次QD按钮,进行置数微操作。
微程序地址应为13H。
7)按一次QD按钮,进行R0&
R0操作,这时微程序地址应为38H。
观察DBUS总线的值,即为R0的值。
8)按一次QD按钮,进行写回微操作。
微程序地址应为34H。
9)按一次QD按钮,进行判定有无中断请求INTQ微操作。
微程序地址应为0FH。
10)按一次QD按钮,进行取指微操作。
11)按一次QD按钮,进行从中断程序返回主程序微操作。
微程序地址应为1AH。
这时观察PC地址,即中断地址。
12)按一次QD按钮,进行判有无新的中断操作。
微程序地址为0FH。
13)按一次QD按钮,进行取指微操作。
微程序地址为05H。
此刻,程序已返回主程序。
由于按下INTR按钮的时间对主程序而言,是随机的,具有不确定性,因此各次中断地址、R0会具有不同的值。
将RAM中20H单元的容由指令INTS改为INTC,重作(4),记录发生的现象。
由于INTC是关中断指令,因此将不会发生中断。
(4)控制存储器代码表
1.微程序控制器信号表
当前指令
CM4
CM3
CM2
CM1
CM0
LDAR0,[R2]
07H
10H
00H
81H
05H
04H
91H
15H
01H
36H
0CH
34H
12H
0FH
LDAR1,[R3]
ADDR0,R1
3BH
14H
82H
JC+5
19H
ANDR2,R3
13H
38H
0DH
SUBR3,R2
11H
3AH
03H
02H
STAR3,[R2]
35H
06H
STP
16H
30H
18H
08H
1AH
1BH
41H
2.拓展控制器信号表
XORRd,Rs
31H
0BH
INCRd,Rs
32H
DECRd,Rs
33H
17H
F=A+BRd,Rs
0EH
流程图
1.微程序流程图
2.拓展程序流程图
XORRd,RsINCRdDECRdF=1
21H22H23H24H
实验结果
1、单拍执行程序(SWC=0,SWB=0,SWA==0;
DP=1,DZ=0,DB=0)初值:
R1=11H,R2=22H
a、XORR1,R2执行结果R1=33H、R2=02H
b、INCR1,R2执行结果R1=34H、R2=02H
c、DECR1,R2执行结果R1=33H、R2=02H
d、F=A+BR1,R2执行结果R1=FFH、R2=02H
七、实验分析与总结
通过这次实验,首先我懂得了什么叫中断,同时学会了中断的调用。
通过亲自动手,能更好的理解本次实验的原理。
在做实验的过程中遇到了各种问题,在此过程中,我通过请教老师,还有班里的同学(特别感拍子古,周瑞奇,喀斯等同学)最终成功的的做出来了。
这次实验提高了我的动手操作的能力。
通过这几天的课程设计,使我对计算机组成原理知识有了更加深刻的认识和理解,对计算机的工作流程有了更具体的了解和认识。
非常感这次的课程设计给我带来的知识和学习经验,我真正意识到了实践是理论所不能及的。
在今后我一定会更加努力学习专业知识和技术。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 中断 实验 报告