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

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

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

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

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

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

北京建筑大学

2015/2016学年第二学期

课程设计

课程名称计算机组成原理综合实验

设计题目微程序控制器设计与实现

系别电信学院计算机系

班级计141

学生姓名艾尼瓦尔·阿布力米提

学号

完成日期二〇一六年七月八日星期五

成绩

指导教师

(签名)

计算机组成综合实验任务书

指导教师姓名

王怀秀

计算机

任务

微程序控制器的设计与实现

人数

32

学时

1周

实验目的

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

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

实验任务

•基于TEC-9教学实验平台基于原有指令集的基础上设计或扩展4~8条指令。

首先在原微程序控制器指令系统的基础上进行原指令集的微指令编码的测试,然后利用上端软件,编写用户设计的微指令,实现指令预定的功能。

实验步骤

•1、进行原实验平台指令集的微程序控制器下指令运行测试;

•2、记录每一条机器指令的指令的执行流程和微命令编码;

•3、画出每一条指令的指令微程序执行流程图;

•4、在原有指令集基础上自行设计或扩展4~8条指令。

画出扩展指令的指令执行流程图;

•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;

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

ADDR0,R0

24H

ADDR0,R0

25H

ADDR0,R0

26H

ADDR0,R0

27H

ADDR0,R0

28H

ADDR0,R0

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、实验程序

主程序:

地址

指令

机器代码

20H

INTS

0BH

21H

LDAR0,[R2]

58H

22H

ADDR0,R0

00H

23H

ADDR0,R0

00H

24H

ADDR0,R0

00H

25H

ADDR0,R0

00H

26H

ADDR0,R0

00H

27H

ADDR0,R0

00H

28H

ADDR0,R0

00H

29H

JMP[R1]

84H

中断服务程序:

地址

指令

机器代码

0A0H

ANDR0,R0

30H

0A1H

IRET

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

选择开关拔至“微程序”

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。

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

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。

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

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

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按钮,进行取指微操作。

微程序地址应为05H。

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

20H

05H

05H

10H

00H

04H

91H

10H

15H

10H

01H

04H

00H

36H

36H

10H

0CH

20H

00H

34H

34H

00H

12H

00H

00H

0FH

LDAR1,[R3]

07H

10H

00H

04H

00H

05H

05H

10H

00H

04H

91H

10H

15H

10H

01H

04H

00H

36H

36H

10H

0CH

20H

00H

34H

34H

00H

12H

00H

00H

0FH

ADDR0,R1

07H

10H

00H

04H

00H

05H

05H

10H

00H

04H

91H

10H

10H

10H

20H

00H

00H

3BH

3BH

14H

82H

20H

00H

34H

34H

00H

12H

00H

00H

0FH

JC+5

07H

10H

00H

04H

00H

05H

05H

10H

00H

04H

91H

10H

19H

10H

00H

00H

00H

0FH

ANDR2,R3

07H

10H

00H

04H

00H

05H

05H

10H

00H

04H

91H

10H

13H

10H

20H

00H

00H

38H

38H

0DH

82H

20H

00H

34H

34H

00H

12H

00H

00H

0FH

SUBR3,R2

07H

10H

00H

04H

00H

05H

05H

10H

00H

04H

91H

10H

11H

10H

20H

00H

00H

3AH

3AH

03H

02H

20H

00H

34H

34H

00H

12H

00H

00H

0FH

STAR3,[R2]

07H

10H

00H

04H

00H

05H

05H

10H

00H

04H

91H

10H

14H

10H

21H

04H

00H

35H

35H

10H

06H

00H

00H

0FH

STP

07H

10H

00H

04H

00H

05H

05H

10H

00H

04H

91H

10H

16H

30H

00H

00H

00H

0FH

JMP[R1]

07H

10H

00H

04H

00H

05H

05H

10H

00H

04H

91H

10H

18H

10H

01H

01H

20H

0FH

INTS

00H

30H

00H

02H

08H

26H

07H

10H

00H

81H

20H

05H

05H

10H

00H

04H

91H

10H

1AH

10H

20H

00H

00H

3AH

3AH

03H

02H

20H

00H

34H

34H

00H

12H

00H

00H

0FH

IRET

07H

10H

00H

04H

00H

05H

05H

10H

00H

04H

91H

10H

1BH

10H

00H

41H

20H

0FH

2.拓展控制器信号表

指令

CM4

CM3

CM2

CM1

CM0

XORRd,Rs

10H

10H

04H

00H

05H

10H

00H

04H

91H

10H

10H

20H

00H

00H

31H

0BH

02H

20H

00H

34H

00H

12H

00H

00H

0FH

INCRd,Rs

10H

00H

04H

00H

05H

10H

00H

04H

91H

10H

10H

20H

00H

00H

32H

00H

02H

20H

00H

34H

00H

12H

00H

00H

0FH

DECRd,Rs

10H

00H

04H

00H

05H

10H

00H

04H

91H

10H

10H

20H

00H

00H

33H

17H

82H

20H

00H

34H

00H

12H

00H

00H

0FH

F=A+BRd,Rs

10H

00H

04H

00H

05H

10H

00H

04H

91H

10H

10H

20H

00H

00H

24H

0EH

02H

20H

00H

34H

00H

12H

00H

00H

0FH

Ø

流程图

1.微程序流程图

2.拓展程序流程图

10H

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

7、实验分析与总结

通过这次实验,首先我懂得了什么叫中断,同时学会了中断的调用。

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

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

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

通过这几天的课程设计,使我对计算机组成原理知识有了更加深刻的认识和理解,对计算机的工作流程有了更具体的了解和认识。

非常感谢这次的课程设计给我带来的知识和学习经验,我真正意识到了实践是理论所不能及的。

 在今后我一定会更加努力学习专业知识和技术。

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

当前位置:首页 > 农林牧渔 > 林学

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

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