快好知 kuaihz订阅看过栏目

 

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

基本含义

中断:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。

虽然现在win9x已经有了PNP(即插即用)功能,但是中断冲突仍然是不可避免的,其中最为容易发生冲突的就是IRQ、DMA和I/O。首先我们先了解一下IRQ、DMA和I/O的概念:

1、IRQ(Interrupt Request)

IRQ英文全称Interrupt Request,中文翻译为中断请求线。计算机中有许多设备(例如声卡、硬盘等)他们都能在没有CPU介入的情况下完成一定的工作。但是这些设备还是需要定期中断CPU,让CPU为其做一些特定的工作。如果这些设备要中断CPU的运行,就必需在中断请求线上把CPU中断的信号发给CPU。所以每个设备只能使用自己独立的中断请求线。一般来说在80286以上计算机中,共有16个中断请求线与各种需要用中断的不同外设相连接,(每个中断线有一个标号也就是中断号)。

中断号的分配情况如下:

IRQ说明

0定时器

1键盘

2 串行设备控制器

3COM2

4COM1

5 LPT2

6软盘控制器

7LPT1

8实时时钟

9PC网络

10可用(Available)

11可用(Available)

12 PS/2 鼠标

13数学协处理器

14 硬盘控制器

15 可用(Available)

NM1奇偶校验

大家现在就可以清楚的看到,IRQ3、4、5、10、11、12、15可供用使用。

2、DMA(Direct Memory Access)

计算机与外设之间的联系一般通过两种方法:一是通过CPU控制来进行数据的传送;二是在专门的芯片控制下进行数据的传送。我们所说的DMA,就是不用CPU控制,外设同内存之间相互传送数据的通道,在这种方式下,外设利用DMA通道直接将数据写入存储器或将数据从存储器中读出,而不用CPU参与,系统的速度会大大增加。

DMA通道分配情况表

DMA0可用

DMA1EPC打印口

DMA2软盘控制器

DMA38位数据传送

DMA4DMA控制器

DMA5可用

DMA6可用

DMA7可用

3、I/O(INPUT/OUTPUT)

输入/输出端口,也就是计算机配件与CPU连接的接口。每个端口都有自己唯一的一个端口号,这个端口号称为地址。每一个想和CPU通信的外设或配件都有不同的I/O地址,通常在PC机内部一共有1024个地址。

详细解释

中断是计算机中的一个十分重要的概念,在现代计算机中毫无例外地都要采用中断技术。什么是中断呢?可以举一个日常生活中的例子来说明,假如你正在给朋友写信,电话铃响了。这时,你放下手中的笔,去接电话。通话完毕,再继续写信。这个例子就表现了中断及其处理过程:电话铃声使你暂时中止当前的工作,而去处理更为急需处理的事情(接电话),把急需处理的事情处理完毕之后,再回头来继续原来的事情。在这个例子中,电话铃声称为"中断请求",你暂停写信去接电话叫作"中断响应",接电话的过程就是"中断处理",相应地,在计算机执行程序的过程中,由于出现某个特殊情况(或称为"事件"),使得CPU中止现行程序,而转去执行处理该事件的处理程序(俗称中断处理或中断服务程序),待中断服务程序执行完毕,再返回断点继续执行原来的程序,这个过程称为中断。

中断是为了使单片机具有对外或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部时间的能力。它也是学习单片机重要的功能之一。

对于单片机来讲,中断是指CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理(中断发生);CPU暂时停止当前的工作(中断响应),转去处理事件B(中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。

计算机为什么要采用中断

为了说明这个问题,再举一例子。假设你有一个朋友来拜访你,但是由于不知道何时到达,你只能在大门等待,于是什么事情也干不了。如果在门口装一个门铃,你就不必在门口等待而去干其它的工作,朋友来了按门铃通知你,你这时才中断你的工作去开门,这样就避免等待和浪费时间。计算机也是一样,例如打印输出,CPU传送数据的速度高,而打印机打印的速度低,如果不采用中断技术,CPU将经常处于等待状态,效率极低。而采用了中断方式,CPU可以进行其它的工作,只在打印机缓冲区中的当前内容打印完毕发出中断请求之后,才予以响应,暂时中断当前工作转去执行向缓冲区传送数据,传送完成后又返回执行原来的程序。这样就大大地提高了计算机系统的效率。

什么是中断的优先级

我们仍然可以举例说明中断优先级的概念。在上面的例子中,如果在电话铃响的同时,门铃也响了,那么你将在"接电话"和"开门"这两个中断请求中选择,先响应哪一个请求。这就有一个谁优先的问题。如果"开门"比"接电话"重要(或者说"开门"比"接电话"的优先级高),那么就应该先开门,然后再接电话,接完电话后再回头来继续写信。这就是说,当同时有多个中断请求时,应该先响应优先级较高的中断请求。

此外,如果在响应一个中断,执行中断处理的过程中,又有新的中断事件发生而发出了中断请求,应该如何处理也取决于中断事件的优先级。当新发生的中断事件的优先级高于正在处理的中断事件时,又将中止当前的中断处理程序,转去处理新发生的中断事件,处理完毕才返回原来的中断处理。在上面的例子中,我们假设"开门"比"接电话"的优先级高。在你写信时,电话铃响了,你去接电话,在通话的过程中,门铃又响了。因为"开门"的优先级高,你只能让通话的对方稍等,放下电话去开门。开门之后再回头继续接电话,通话完毕再回去继续写信。而如果"开门"比"接电话"的优先级低,那么在通话的过程中门铃响了也可以不予理睬,通话结束再去开门。当然,在日常生活中,谁也不会为"开门"和"接电话"规定一个优先级别的高低。但是在计算机中,各种中断事件很多,其优先级都有规定,否则就会乱套。在计算机中,中断事件的优先级是根据事件的实时性、重要性和软件处理的方便性来安排的。

中断的屏蔽

中断屏蔽也是一个十分重要的功能,所谓中断屏蔽是指通过设置相应的中断屏蔽位,禁止响应某个中断。这样作的目的,是保证在执行一些重要的程序中不响应中断,以免造成迟缓而引起错误。例如,在系统启动执行初始化程序时,就屏蔽键盘中断,使初始化程序能够顺利进行。这时,敲任何键,都不会响应。当然对于一些重要的中断是不能屏蔽的,例如重新启动、电源故障、内存出错、总线出错等影响整个系统工作的中断是不能屏蔽的。因此,从中断是否可以被屏蔽来看,可分为可屏蔽中断和不可屏蔽中断两类。

中断源

凡是能够引起中断原因或提出中断请求的设备和异常故障均称被称为"中断源"。

通常中断源有以下几种:

(1)外部设备请求中断。一般的外部设备(如键盘、打印机和A / D转换器等)在完成自身的操作后,向CPU发出中断请求,要求CPU为他服务。

硬件中断分为外部中断和内部中断。

外部中断一般是指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备的中断请求。

内部中断是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、运算溢出、单步中断等)所引起的中断。内部中断是不可屏蔽的中断。

(2)故障强迫中断。计算机在一些关键部位都设有故障自动检测装置。如运算溢出、存储器读出出错、外部设备故障、电源掉电以及其他报警信号等,这些装置的报警信号都能使CPU中断,进行相应的中断处理。

(3)实时时钟请求中断。在控制中遇到定时检测和控制,为此常采用一个外部时钟电路(可编程)控制其时间间隔。需要定时时,CPU发出命令使时钟电路开始工作,一旦到达规定时间,时钟电路发出中断请求,由CPU转去完成检测和控制工作。

(4)数据通道中断。数据通道中断也称直接存储器存取(DMA)操作中断,如磁盘、磁带机或CRT等直接与存储器交换数据所要求的中断。

(5)程序自愿中断。CPU执行了特殊指令(自陷指令)或由硬件电路引起的中断是程序自愿中断,是指当用户调试程序时,程序自愿中断检查中间结果或寻找错误所在而采用的检查手段,如断点中断和单步中断等。

中断分类 (1)按中断处理方式,可分为简单中断和程序中断。简单中断采用周期窃用的方法来执行中断服务,有时也称数据通道或DMA;程序中断不是窃用中央处理机的周期来进行中断处理,而是中止现行程序的执行转去执行中断服务程序。

(2)按中断产生的方式,中断可分为自愿中断和强迫中断。自愿中断即通过自陷指令引起中断,或称软件中断,例如程序自愿中断;强迫中断是一种随机发生的实时中断,如外部设备请求中断、故障强迫中断、实时时钟请求中断和数据通道中断等。

(3)按引起中断事件所处的地点,中断可分为内部中断和外部中断。外部中断也称为外部硬件实时中断,他由来自CPU某一引脚上的信号引起;内部中断也称软件指令中断,他是为了处理程序运行过程中发生的一些意外情况或调试程序而提供的中断。

(4)根据微处理器内部受理中断请求的情况,中断可分为可屏蔽中断和不可屏蔽中断。凡是微处理器内部的中断触发器(或许中断允许触发器)能够拒绝响应的中断,称为可屏蔽中断;凡是微处理器内部的中断触发器(或许中断允许触发器)不能够拒绝响应的中断,称为不可屏蔽中断。

中断系统的功能中断系统应具有的功能可归结为中断处理和中断控制。

(1)中断处理。中断处理包括发现中断请求、响应中断请求、中断处理和中断返回。

(2)中断控制。中断控制主要是实现中断优先级的排队和中断嵌套。

中断控制器和中断通道

因为每个设备都要使用中断,每个设备也就需要一个传送中断请求的通道。而CPU中只有一条接收中断请求的引脚,因此需要有一个机构来收集各个设备产生的各种中断请求,并按优先级排列送给CPU。这个机构称为中断控制器。早期的中断控制器是一片8259集成芯片,可以接收8个中断请求信号,也就是可以有8个中断通道。PC机允许使用15个中断通道,因此需要两片8259芯片。现在的微机仍然维持了这个结构,不过8259芯片已不是独立的芯片,而被进一步集成到其它的大规模芯片中了。

两片8259之间用级联的方法连接起来,即一片8259的输出连接到另一片8259的输入端。因此实际可以使用的中断通道只有15个

由于每个设备都要占用一个中断通道,如果有两个或两个以上的设备占用了相同的通道时就会发生冲突,使得设备不能正常工作甚至死机。因此在安装新的设备时,一定要选择那些还没有被占用(保留)的中断通道,否则就会引起冲突。选择中断通道一般是通过改变适配卡上的跳线来实现的。很多微机在安装声卡或显卡时没有正确地选择好中断通道,造成冲突后不能工作。对于有即插即用功能的微机和适配卡,能够自动地选择未被占用的通道,就不需要我们去设置了。

(更加详细的可以查阅大学教材《微机原理》或《计算机组成原理》)

防止方法

要防止中断冲突,其实就是要知道什么设备容易产生中断冲突,只要知道了这点,在使用这些设备时稍微注意一下就可以了。下面我列出一些容易冲突的设备,希望对读者有用。

1、声卡:一些早期的ISA型声卡,系统很有可能不认,就需要用户手动设置(一般为5)

2、内置调制解调器和鼠标:一般鼠标用COM1,内置调制解调器使用COM2的中断(一般为3),这时要注意此时COM2上不应有其它设备

3、网卡和鼠标:此问题一般发生在鼠标在COM1口,使用中断为3,这时要注意通常网卡的默认中断为3,两者极有可能发成冲突。

4、打印机和EPP扫描仪:在安装扫描仪驱动程序时应将打印机打开,因为两个设备中串联,所以为了防止以后扫描仪驱动程序设置有误,一定要将打印机打开再安装扫描仪驱动程序。

5、操作系统和BIOS:如果计算机使用了“即插即用”操作系统(例如win98),应将BIOS中PNP OS Installed设置为Yes这样可让操作系统重新设置中断。

6、PS/2鼠标和BIOS:在使用PS/2鼠标时应将BIOS中PS/2 Mouse Function Control打开或设置为Auto,只有这样BIOS才能将IRQ12分配给PS/2鼠标用。

投稿
非常不爽,删了吧! 相关词条:其他