当前位置:文档之家› 计算机组成原理中断实验报告

计算机组成原理中断实验报告

北京建筑大学
2015/2016 学年第二学期
课程设计
(签名)
计算机组成综合实验任务书
•5、利用上端软件,把所编写的微程序控制器内容写入实验台中控制器中。

•6、利用单拍测试控制器与编程的要求是否一致。

如果有错误重新修改后再写入控制器中。

7、编写一段测试程序,测试控制器运行是否正确。

实验目的
1.融合贯通计算机组成原理课程,加深对计算机系统各模块的工作原理及相互联系(寄存器堆、运算器、存储器、控制台、微程序控制器)。

2.理解并掌握微程序控制器的设计方法和实现原理,具备初步的独立设计能力;3.掌握较复杂微程序控制器的设计、调试等基本技能;提高综合运用所学理论知识独立分析和解决问题的能力。

实验电路
1. 微指令格式与微程序控制器电路
2.微程序控制器组成
仍然使用前面的CPU组成与机器指令执行实验的电路图,但本次实验加入中断系统。

这是一个简单的中断系统模型,只支持单级中断、单个中断请求,有中断屏蔽功能,旨在说明最基本的原理。

中断屏蔽控制逻辑分别集成在2片GAL22V10(TIMER1 和TIMER2)中。

其ABEL语言表达式如下:
INTR1 := INTR;
INTR1.CLK = CLK1;
IE := CLR & INTS # CLR & IE & !INTC;
IE.CLK= MF;
时,
制逻辑传递给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)了解中断系统中每个信号的意义和变化条件,并将下面的主程序和中断服务程序手工汇编成十六进制机器代码,此项任务应在预习时完成。

主程序:
地址指令机器代码
(2)参考CPU组成与机器指令执行实验,再加上中断系统,完成本次实验的线路连接。

接通电源之前应仔细检查接线,确认无误。

(3)将上述任务(1)的程序代码存入内存中,并根据需要设置通用寄存器组和内存
相关单元的数据。

其中,寄存器R1的值应置为21H,以便程序循环执行。

(4)从地址20H执行程序,在程序运行中,按一次控制台的INTR。

进入中断后,用单拍(DP)方式执行,直到返回主程序为止。

列表记录中断系统中有关信号的变化情况,特别要纪录好断点地址和R0的值。

(5)重复执行(4)两次。

(一共执行3次)
中断服务程序:。

,IR2
选择开关拔至“微程序”
3、存程序机器代码,设置通用寄存器R1、R2及内存相关单元的数据。

(1)、设置寄存器R1、R2的值
根据要求,设置R1 = 21H,R2的值由实验者自定,假定为10H。

1)、令DP = 0,DB = 0,DZ =0,使实验系统处于连续运行状态。

令SWB = 1,SWA = 1,。

01H
02H
寄存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。

按CLR#按钮,使实验系统处于初始状态。

2)置SW7—SW0为10H,按QD按钮,将10H写入AR1。

1,变
变为
写中断程序
1)置SW7—SW0为0A0H,按QD按钮,将0A0H写入AR1。

2)置SW7—SW0 为30H,按QD按钮,将30H写入存储器0A0H单元。

3)置SW7—SW0 0A0H,按QD按钮,将0A0H写入存储器0A1H单元。

4)按CLR#按钮,使实验系统恢复到初始状态。

或用实验台监控系统或系统上端软件直接写入内容
(3)从地址20H连续执行程序
从地址20H连续执行程序,在程序运行中,按一次控制台的INTR。

进入中断后,用单
QD
7)按一次QD按钮,进行R0 & R0 操作,这时微程序地址应为38H。

观察DBUS总线的值,即为R0的值。

8)按一次QD按钮,进行写回微操作。

微程序地址应为34H。

9)按一次QD按钮,进行判定有无中断请求INTQ微操作。

微程序地址应为0FH。

10)按一次QD按钮,进行取指微操作。

微程序地址应为05H。

11)按一次QD按钮,进行从中断程序返回主程序微操作。

微程序地址应为1AH。

这时观察PC地址,即中断地址。

12)按一次QD按钮,进行判有无新的中断操作。

微程序地址为0FH。

流程图 1.微程序流程图 2.拓展程序流程图 10H XOR Rd,Rs INC Rd DEC Rd F=1 21H 22H 23H 24H 实验结果
1、单拍执行程序(SWC=0,SWB=0,SWA==0;DP=1,DZ=0,DB=0)初值:R1=11H ,R2=22H a 、XOR R1,R2 执行结果R1 = 33H 、R2=02H b 、INC R1,R2 执行结果R1 = 34H 、R2=02H
c 、DEC R1,R2 执行结果R1 = 33H 、R2=02H
d 、F=A+B R1,R2 执行结果R1 = FFH 、R2=02H 七、实验分析与总结
JC
STP JMP
IRET INTS OFH OFH OFH OFH OFH
1FH
C=1 C=0
26H INTQ=
INTQ=OFH
INT CN# LDAR2
P1
TJ,CN# 10H
P2
CN#
00H CN#
P3 KT 07H 05H
M4=0 CN# P0 WRD OFH
STA SUB AND ADD LDA 36H CN# CN# 3BH CN# CN# S3,S0
38H CN# M,S3,S1,S0 3AH CN#
S3,S1 35H CN# CN# WRD
CN# CN# CN# CN#
M1 S2,S1 ALU-BUS LDER CN# S3,S2,S1,M S3,S2 WRD
通过这次实验,首先我懂得了什么叫中断,同时学会了中断的调用。

通过亲自动手,能更好的理解本次实验的原理。

在做实验的过程中遇到了各种问题,在此过程中,我通过请教老师,还有班里的同学(特别感谢拍子古,周瑞奇,喀斯等同学)最终成功的的做出来了。

这次实验提高了我的动手操作的能力。

相关主题