浅谈中断系统的教学方法

2022-09-11

当今社会的主要专业之一的计算机专业的教学方法一直被人们在进行探讨。由于专业涉及的知识面宽, 难度大, 导致很多学生在学习的过程中有很多的困惑, 也不容易掌握好学习的方向, 而在计算机专业中的一个方向——计算机应用方向, 是一个大众既熟悉又陌生的方向, 说熟悉是因为很多的高校都开设这个专业, 陌生是因为这个专业的学生的就业面也是非常的多, 所以针对这个专业的学习的特点, 笔者探讨了其中的专业课程——《微型计算机原理及接口技术》的教学方法, 而针对课程中的相对难的中断系统的教学方法进行探讨。

1 中断系统的概述

中断系统是CPU与外部设备进行数据交换的一种方式。众所周知, 计算机的工作方式主要是CPU与外设进行数据交换, 有三种方式:程序控制方式、DMA (直接存储器存取) 方式和中断方式。其中程序控制方式要花费大量的时间检查状态信息, DMA方式是直接建立存储器与外设之间的交换桥梁, 中断方式是在CPU的控制下进行并行工作的方式。具体的说, 中断方式是当CPU运行程序的过程中, 如果外设和存储器之间要进行数据交换, 则由外设向CPU发出申请, 请求CPU打断当前的程序转去执行外设和存储器的交换, 如果CPU接受到请求时符合一切可以暂停当前程序的条件, 则转去执行外设的请求, 等执行完毕后再返回原程序继续执行, 这一过程就是中断。可以看见, 采用这种方式不需要CUP花时间等待外设准备数据, 而是在外设准备数据的过程中CPU继续自己的事情, 当外设准备好数据时, CPU才过来控制数据传送, 这在一定意义上实现了并行的传送。

2 中断系统的几个概念分析

在学生学习的过程中, 我们可以对中断系统先进行概念的理解。涉及的概念有以下几个。

(1) 中断源:引起中断的原因我们称为中断源。具体的原因我们分为两类:外部的原因, 内部的原因。根据中断源的分类可以将中断分为外部中断和内部中断两类。顾名思义, 外部中断指的是由外部的硬件产生的中断, 也称为硬件中断, 又分为NMI (非屏蔽中断) 和INTR (可屏蔽中断) 两种;内部中断是由中断指令或某些运算错误引起的中断, 又称为软件中断。

(2) 中断向量:当CPU响应中断后, 就要去执行相应的程序, 由于IP始终是自增1的, 所以我们应该提供一个专门的区域来存放中断程序的入口地址 (即中断向量) , 这样的一个区域我们称为中断向量表。该表格中按顺序共存放了256类中断的入口地址。每类中断安排一个号码, 即中断类型号, 每类中断分配了4个存储单元分别存放CS和IP, 因此有了中断类型号就可以找到中断入口程序地址所在的单元地址, 即:中断类型号*4, 然后根据计算出来的地址找到相应的存储单元, 取出4个单元的内容就是该中断的入口地址了。

(3) 优先级:当有多个中断源同时向CPU请求中断的时候, CPU究竟根据什么样的标准去选择执行呢?这就出现了中断优先级的概念。对于优先级的设置有三种方法:软件查询中断优先级、硬件查询优先方式——菊花链法和矢量中断优先级。而当今采用最多的方法就是矢量优先级法, 中断控制芯片8259A就采用了该方法。

(4) 中断屏蔽和嵌套:不是所有的申请都得响应, CPU通过设置不能响应的称为中断屏蔽。通过屏蔽和优先级还可以实现中断嵌套, 丰富了中断系统。

3 中断的处理过程

当中断申请之后, C P U如果满足响应的条件就要去处理中断。CPU要满足什么样的条件才能去响应中断呢?以外部中断中的INTR为例, 有以下几个条件:外设必须提出中断申请、本中断未被屏蔽、中断允许。上述条件同时满足后CPU就进入了相应的中断周期, 还是以INTR为例, 说明CPU对中断的响应的步骤:

(1) 关中断:由于在CPU响应中断的初期要保护当前程序被打断处 (称为断点) 的地址用来等中断结束时返回用, 如果在这个时期中断开关处于开放状态, 则会有更高级别的中断打断这个过程, 影响了地址的保存, 在这个时期不允许被打断, 所以C P U首先关中断。

(2) 保护断点及现场:CPU为了使中断处理程序不影响主程序的运行, 故要把断点处的地址及相关标志寄存器的内容进行压栈保存, 等中断结束后再弹出栈使用。

(3) 根据中断向量表的内容查找中断程序的入口地址, 转入相应的中断服务程序:首先获得中断类型号 (外部中断由CPU自己提供, 内部中断由指令指出) , 根据 (类型号*4) 找到相应的存储单元, 取出连续4个单元的内容, 低地址的是IP, 高地址的是CS, 即为中断程序的入口地址。根据找到的地址转去相应的中断服务程序执行。

(4) 恢复现场:中断服务程序执行完毕, CPU将返回原来的程序继续执行, 只需把所保存的标志寄存器的内容弹栈即可。

(5) 开中断与返回:在中断服务程序的最后, 开中断 (为了CPU可以响应新的中断请求) , 并进行中断返回, 弹出原程序的地址, 运行被恢复到主程序。

4 结语

这里笔者浅谈了关于认识中断系统的学习, 当然不是仅这些就可以代表如此庞大的一个中断系统, 对于中断系统涉及的内容还很多, 学习方法也很多, 要大家在理论知识的前提下, 还要通过相应的实践, 才能更加方便的去学习中断系统。当然在计算机的内部还有更多的值得大家去探讨的知识, 我们还需要更多的时间去尝试与探讨!

摘要:计算机的硬件知识是很多学生反映枯燥和难学的, 在计算机的知识中又以《微型计算机原理与接口技术》中的中断系统是更加的不容易理解, 涉及的概念难理解, 过程难想象, 所以导致很多同学到了这一章节时会产生掉队的情况, 针对这样的现状, 笔者根据多年的教学经验, 缩短了书本中的篇幅, 将内容简单化, 将文字易懂化帮助同学学习。

关键词:中断系统,中断向量,优先级,中断屏蔽

参考文献

[1] 周明德, 蒋本珊.微机原理与接口技术[M].人民邮电出版社, 2006.

[2] 戴梅萼, 史嘉权.微型计算机技术及应用[M].清华大学出版社, 2001.

[3] 周荷琴, 吴秀清.微型计算机原理与接口技术[M].中国科学技术大学出版社, 2007.

上一篇:Φ1500热锯锯切200×200坯料校核下一篇:工会组织在企业文化建设中的作用