1)中断的一些基本概念
中断不是只用于输入/输出系统中,它是计算机的基本结构,是现代计算机功能强大的标志。顾名思义,中断就是打断中央处理器正在执行的工作,让中央处理器去处理其他更加重要或者更为紧迫的任务。发起中断的事务称为中断源,中断源包括I/O设备、实时时钟、故障源、软件中断等。中断系统使中央处理器摆脱了只能按照指令顺序执行的束缚,让计算在并行性、分时操作、故障处理等方面更加强大。
按照中断源来区分中断,可以分为内部中断和外部中断。内部中断是中央处理器内部产生的中断,在个人计算机中,内部中断又分为溢出中断、除法错中断、断点中断、软件中断及单步中断,其中可以使用软件中断实现DOS功能调用和基本BIOS(Basic Input Output System,基本输入/输出系统)调用,也可以使用单步中断实现程序的调试。与之相对应的是外部中断,其中断源来白于中央处理器之外。而外部中断按照中央处理器的响应可以分为可屏蔽中断和非屏蔽中断.非屏蔽中断是中央处理器一定要响应的中断,通常是计算机发生了紧急情况(如停电等)时使用。可屏蔽中断大多数是外设和时钟中断,在计算机处理一些不应该打断的任务吋,可以通过屏蔽位来不响应这些中断。
2)中断处理过程
中央处理器收到中断请求后,如果是当前允许的中断,那么要停止正在执行的代码,并把内部寄存器入栈,这个过程不能被再次打断,所以在保护现场的开始要先关中断,保护完后再开中断。这个过程应该尽量短,以避免错过了其他中断。这个过程消耗的时间称为中断响应时间。中断处理程序常常比较简单,通常是设置一些标志位,做一些简单的数据处理,而让其他更耗时的处理在非中断程序中完成。中断处理程序完成后,需要将刚才保存的现场恢复,把入栈的寄存器出栈,继续执行被中断的程序。整个过程消耗的时间称为中断处理时间。当然,这个时间对不同的中断及不同的应用差别比较大,而且也不是一味求短,实际编写时要考虑中断处理的重要程度。现在大多数中央处理器都支持多级中断,即在进行中断处理程序时,还可以响应其他中断,形成中断嵌套。
3)中断的判断
当有多个中断源时,常用的处理方式有如下几种(如图1.18所示)。
·每个中断源使用自身的中断请求信号线与中央处理器相应引脚相连,这种方式适用于中断源不是很多的情况,而中央处理器的外部中断引脚是有限的.
·统一的中断请求,由中央处理器使用专门程序依次查询判断哪个是哪个中断源的请求,通过查询的次序,可以实现中断的优先级控制。
·有一种是硬件查询法,有一个中断确认信号链或方式与输入/输出设备相连,某个外设发出中断请求后,中断确认信号开始在各处传递,发出中断请求的外设响应这个信号。
展开