工信版(中职)计算机原理模块七教学课件.ppt
YCF(中职)计算机原理模块七教学课件模块模块7 输入输入/输出与中断输出与中断任务任务1 I/O接口接口7.1.1 数据输入数据输入/输出概述输出概述7.1.2 I/O接口功能接口功能7.1.3 I/O接口组成接口组成7.1.4 I/O端口编址端口编址7.1.5 I/O接口分类接口分类下一页下一页模块模块7 输入输入/输出与中断输出与中断任务任务2 中断中断7.2.1 中断的基本概念中断的基本概念7.2.2 中断向量表中断向量表7.2.3 DMA I/O控制方式控制方式上一页上一页任务任务1 I/O接口接口除了存储器这个地址空间外,计算机中还有一个除了存储器这个地址空间外,计算机中还有一个I/O端口寄端口寄存器地址空间,这是专门针对输入存器地址空间,这是专门针对输入/输出外设而言的。这些外输出外设而言的。这些外设同微处理器交换数据时都不直接挂到外部总线上,而必须设同微处理器交换数据时都不直接挂到外部总线上,而必须通过专用的接口电路与输入通过专用的接口电路与输入/输出指令。本模块首先介绍了这输出指令。本模块首先介绍了这方面的一些基本知识,以便于学习后续的中断技术。方面的一些基本知识,以便于学习后续的中断技术。中断中断(Interrupt)在计算机技术中是一个非常重要的基本概念,在计算机技术中是一个非常重要的基本概念,中断系统是计算机系统中一个十分重要的子系统。本模块将中断系统是计算机系统中一个十分重要的子系统。本模块将对实模式下中断系统的工作原理与操作过程、异常中断、软对实模式下中断系统的工作原理与操作过程、异常中断、软件中断与硬件中断以及中断的应用设计进行系统的描述。件中断与硬件中断以及中断的应用设计进行系统的描述。下一页下一页返回返回任务任务1 I/O接口接口7.1.1数据输入数据输入/输出概述输出概述计算机的工作过程概括起来,可分为计算机的工作过程概括起来,可分为3个阶段,即数据输入、个阶段,即数据输入、数据处理和结果输出。用以输入数据和输出结果的设备分别数据处理和结果输出。用以输入数据和输出结果的设备分别称为输入设备和输出设备,统称为外部设备,简称外设。外称为输入设备和输出设备,统称为外部设备,简称外设。外设通过专门的接口电路与主机连接,在主机的控制下进行工设通过专门的接口电路与主机连接,在主机的控制下进行工作。外设、接口电路及其相关的程序统称为计算机的输入作。外设、接口电路及其相关的程序统称为计算机的输入/输输出系统,简称出系统,简称I/O系统。系统。I/O接口泛指主机与外部设备或其他计算机之间通过总线连接口泛指主机与外部设备或其他计算机之间通过总线连接所用到的电路,也称为适配器。计算机有多种外部设备,接所用到的电路,也称为适配器。计算机有多种外部设备,由于速度和信号类型的缘故,往往不能直接与主机连接,而由于速度和信号类型的缘故,往往不能直接与主机连接,而需要专门的接口电路和相关的程序进行转换。例如,显示器需要专门的接口电路和相关的程序进行转换。例如,显示器通过显卡与主机连接,并由相应的程序完成信号转换及显示通过显卡与主机连接,并由相应的程序完成信号转换及显示工作工作;又如,计算机通过网卡或又如,计算机通过网卡或Modern与外部网络连接。与外部网络连接。因此,因此,I/O系统也是计算机系统的重要组成部分。系统也是计算机系统的重要组成部分。下一页下一页返回返回上一页上一页任务任务1 I/O接口接口7.1.2 I/O接口功能接口功能1.信号转换信号转换在计算机内部,只能识别和处理二进制数据。因此,外部设在计算机内部,只能识别和处理二进制数据。因此,外部设备必须将采集到的各类信息转换成二进制数据,才能输入给备必须将采集到的各类信息转换成二进制数据,才能输入给计算机。同样,计算机输出的二进制数据也要转换成一定形计算机。同样,计算机输出的二进制数据也要转换成一定形式的媒体信号,去控制外部设备或者以人们习惯的形式显示式的媒体信号,去控制外部设备或者以人们习惯的形式显示以及记录下来。即使两台计算机之间的数据传送,也存在数以及记录下来。即使两台计算机之间的数据传送,也存在数据格式的转换与匹配、传送方式的设置、调制与解调等过程。据格式的转换与匹配、传送方式的设置、调制与解调等过程。因此,进行信号转换是因此,进行信号转换是I/O系统的基本功能,包括电信号与系统的基本功能,包括电信号与非电信号之间的转换、数字量与非数字量之间的转换、编码非电信号之间的转换、数字量与非数字量之间的转换、编码与解码以及传送方式的转换等。对于多媒体设备,还包括音与解码以及传送方式的转换等。对于多媒体设备,还包括音频、视频信号的转换与处理。频、视频信号的转换与处理。下一页下一页返回返回上一页上一页任务任务1 I/O接口接口2.数据缓冲与时序匹配数据缓冲与时序匹配主机速度快,而大多数外部设备速度慢。这样,外设与主机速度快,而大多数外部设备速度慢。这样,外设与CPU或主存直接传送数据时,可能会导致数据丢失或主存直接传送数据时,可能会导致数据丢失;或者使或者使CPU等待外设的输入等待外设的输入/输出,而影响输出,而影响CPU的工作效率。因此,一的工作效率。因此,一般在外设接口中设置缓冲器或者有一定容量的缓冲存储器。般在外设接口中设置缓冲器或者有一定容量的缓冲存储器。CPU送给外设的数据先锁存到缓冲器中,然后通知外设取走送给外设的数据先锁存到缓冲器中,然后通知外设取走;或者外设送给或者外设送给CPU的数据先存入缓冲器中,然后由的数据先存入缓冲器中,然后由CPU读读取。这样,借助于缓冲器,可实现取。这样,借助于缓冲器,可实现CPU与不同速度的外设之与不同速度的外设之间的时序匹配。例如,一般显卡中都配置有一个容量为间的时序匹配。例如,一般显卡中都配置有一个容量为128MB一一768MB的缓冲存储器。的缓冲存储器。3.电气特性匹配电气特性匹配计算机内部的信号通常是计算机内部的信号通常是TTL电平,而外设的输入电平,而外设的输入/输出信号输出信号有有TTL电平、电平、CMOS电平或其他规格的电平。当电平不同时,电平或其他规格的电平。当电平不同时,需经接口电路进行电平转换。如果信号微弱,需由接口电路需经接口电路进行电平转换。如果信号微弱,需由接口电路放大,以增强其驱动能力。放大,以增强其驱动能力。下一页下一页返回返回上一页上一页任务任务1 I/O接口接口4.可编程功能可编程功能一般接口电路有多种工作方式,可通过编程进行设置或者选一般接口电路有多种工作方式,可通过编程进行设置或者选择。为了实现编程,在接口电路中一般都设有可寻址的控制择。为了实现编程,在接口电路中一般都设有可寻址的控制字寄存器和状态字寄存器。控制字寄存器可由字寄存器和状态字寄存器。控制字寄存器可由CPU写入控制写入控制字,设置接口的工作方式字,设置接口的工作方式;状态字寄存器可由状态字寄存器可由CPU查询,了查询,了解外设的当前状态。解外设的当前状态。5.数据类型转换数据类型转换在计算机内部,数据是以并行的方式存储与处理的,因此对在计算机内部,数据是以并行的方式存储与处理的,因此对于以串行方式传送数据的设备来说,就存在一个并于以串行方式传送数据的设备来说,就存在一个并/串转换或串转换或串串/并转换的过程。另外,有些设备还要求接口电路能够实现并转换的过程。另外,有些设备还要求接口电路能够实现ASCII码、码、BCD码甚至汉字数符的转换等。码甚至汉字数符的转换等。下一页下一页返回返回上一页上一页任务任务1 I/O接口接口7.1.3 I/O接口组成接口组成I/O接口接口7-1所示,处于所示,处于CPU和和I/O设备之间。在设备之间。在CPU一端,一端,传送地址、数据和控制信号传送地址、数据和控制信号;在在I/O设备一端,传送控制信号、设备一端,传送控制信号、数据和状态信息。因此可以说,接口是数据和状态信息。因此可以说,接口是CPU与外部设备之间与外部设备之间进行数据转换与传送的部件。一般包括进行数据转换与传送的部件。一般包括I/O地址译码器、数地址译码器、数据输入据输入/输出接口输出接口(缓冲与格式转换缓冲与格式转换)、控制寄存器、状态寄存、控制寄存器、状态寄存器、中断控制逻辑与中断向量寄存器等部件。它所传送的信器、中断控制逻辑与中断向量寄存器等部件。它所传送的信息,可分为以下息,可分为以下3种类型。种类型。1.数据数据数据是输入数据是输入/输出设备传送的基本信息。在输入过程中,数据输出设备传送的基本信息。在输入过程中,数据经输入设备传送给经输入设备传送给CPU,或存入存储器中或存入存储器中;在输出过程中,数在输出过程中,数据经输出设备显示、打印,或者传送到其他设备。在接口电据经输出设备显示、打印,或者传送到其他设备。在接口电路中,设有数据锁存与缓冲器,对输入路中,设有数据锁存与缓冲器,对输入/输出的数据进行锁存输出的数据进行锁存或者缓冲或者缓冲;在有些情况下,还需要进行格式或编码转换。在有些情况下,还需要进行格式或编码转换。下一页下一页返回返回上一页上一页任务任务1 I/O接口接口2.地址地址在一个计算机系统中,外部设备往往有多个,为此分配有不在一个计算机系统中,外部设备往往有多个,为此分配有不同的地址,以便识别。这样,在进行数据输入同的地址,以便识别。这样,在进行数据输入/输出时,首先输出时,首先要发送地址,经译码器选择某一外部设备。因此,在接口电要发送地址,经译码器选择某一外部设备。因此,在接口电路中设有地址锁存器与译码器。路中设有地址锁存器与译码器。3.状态与控制信号状态与控制信号状态信号反映的是外设的工作状态,一般存放在接口中的状状态信号反映的是外设的工作状态,一般存放在接口中的状态寄存器中,态寄存器中,CPU可读取检查,了解外部设备的工作状态。可读取检查,了解外部设备的工作状态。控制信号是控制信号是CPU向外设发出的向外设发出的I/O控制命令,经接口传送给控制命令,经接口传送给外部设备,实现相应的外部设备,实现相应的I/O操作。通过接口电路,还可以增操作。通过接口电路,还可以增强信号的驱动能力。强信号的驱动能力。在在I/O接口电路中,各寄存器都可作为一个端口设置地址。接口电路中,各寄存器都可作为一个端口设置地址。CPU通过地址对其访问或者编程,例如,设置参数,选择工通过地址对其访问或者编程,例如,设置参数,选择工作方式,读取状态标志或中断向量,传送数据等。作方式,读取状态标志或中断向量,传送数据等。下一页下一页返回返回上一页上一页任务任务1 I/O接口接口7.1.4 I/O端口编址端口编址在在I/O接口电路中,每一个可由接口电路中,每一个可由CPU直接访问的部件或寄存直接访问的部件或寄存器统称为端口,在硬件设计时可对其分配地址,也称为编址。器统称为端口,在硬件设计时可对其分配地址,也称为编址。编址的方法有两种,即统一编址和独立编址。编址的方法有两种,即统一编址和独立编址。1.统一编址统一编址统一编址是把外部设备的端口地址与存储器地址统一编排。统一编址是把外部设备的端口地址与存储器地址统一编排。即在主存空间中划出一部分区域用作即在主存空间中划出一部分区域用作I/O地址,使输入地址,使输入/输出输出变成对某个地址单元的读变成对某个地址单元的读/写操作。在这种方式下,写操作。在这种方式下,CPU可可使用访问主存的指令访问外部设备,而不需要专门的使用访问主存的指令访问外部设备,而不需要专门的I/O指指令。但是,令。但是,I/O端口占用了主存地址空间,使主存容量减少。端口占用了主存地址空间,使主存容量减少。下一页下一页返回返回上一页上一页任务任务1 I/O接口接口2.独立编址独立编址独立编址是对独立编址是对I/O端口和主存分别编址,即主存地址空间和端口和主存分别编址,即主存地址空间和I/O地址空间,两者的地址都是从。开始。地址空间,两者的地址都是从。开始。CPU访问时,通访问时,通过专门的选通信号过专门的选通信号IO/M确定地址总线上传送的是确定地址总线上传送的是I/O地址地址还是主存地址。例如,还是主存地址。例如,IO/M信号为高电平时,表示信号为高电平时,表示I/O地地址址;当当IO/M信号为低电平时,表示主存地址。采用独立编址,信号为低电平时,表示主存地址。采用独立编址,I/O地址空间不占用主存空间,但是需要专门的地址空间不占用主存空间,但是需要专门的I/O指令。指令。目前的目前的Pentium微处理器采用的就是这种独立编址方式。微处理器采用的就是这种独立编址方式。另外,也可以把二者结合起来,构成混合编址方式。即一部另外,也可以把二者结合起来,构成混合编址方式。即一部分分I/O地址独立,一部分与主存空间合为一体。地址独立,一部分与主存空间合为一体。下一页下一页返回返回上一页上一页任务任务1 I/O接口接口7.1.5 I/O接口介类接口介类接口处于主机与外部设备之间,但是接口与外部设备之间的接口处于主机与外部设备之间,但是接口与外部设备之间的界面并不十分严格。因为有些外部设备为了便于连机使用,界面并不十分严格。因为有些外部设备为了便于连机使用,兼有部分接口功能。也有些接口独立于外部设备,制成专门兼有部分接口功能。也有些接口独立于外部设备,制成专门的接口板。这样,就形成不同类型的接口板,而且有不同的的接口板。这样,就形成不同类型的接口板,而且有不同的分类方式。分类方式。1.按照传输信号分类按照传输信号分类按照传输信号分类,可分为数字量输入按照传输信号分类,可分为数字量输入/输出接口和模拟量输输出接口和模拟量输入入/输出接口。对于数字量信号,计算机可以通过数字量接口输出接口。对于数字量信号,计算机可以通过数字量接口直接与输入直接与输入/输出设备进行连接。对于模拟信号,则要通过输出设备进行连接。对于模拟信号,则要通过A/D转换器转换成数字量信号输入给计算机。输出时,再使转换器转换成数字量信号输入给计算机。输出时,再使用用D/A转换器将数字量信号转换成模拟量信号输出给外部设转换器将数字量信号转换成模拟量信号输出给外部设备或现场控制设备。这就要求模拟接口除具备数据传输功能备或现场控制设备。这就要求模拟接口除具备数据传输功能之外,还要具备之外,还要具备A/D与与D/A转换功能。转换功能。下一页下一页返回返回上一页上一页任务任务1 I/O接口接口2.按照传输数据方式分类按照传输数据方式分类按照传输数据的方式,可分为并行输入按照传输数据的方式,可分为并行输入/输出接口和串行输入输出接口和串行输入/输出接口。输出接口。并行输入并行输入/输出接口输出接口:多位数据同时传送,传输效率高。但多位数据同时传送,传输效率高。但是它要求有多条数据线与接口电路连接,传输线的宽度与数是它要求有多条数据线与接口电路连接,传输线的宽度与数据的位数一致,而且各条数据线的电气特性也要一致。这种据的位数一致,而且各条数据线的电气特性也要一致。这种接口成本较高,传输距离受到一定的限制。接口成本较高,传输距离受到一定的限制。串行输入串行输入/输出接口输出接口:按位传输,即一位一位地通过数据线。按位传输,即一位一位地通过数据线。这种方式效率较低,但是传输线少,结构简单,成本低,适这种方式效率较低,但是传输线少,结构简单,成本低,适合远距离传输。例如,主机与键盘、鼠标、显示器等外部设合远距离传输。例如,主机与键盘、鼠标、显示器等外部设备的连接,就是通过串行接口进行的。由于在计算机中数据备的连接,就是通过串行接口进行的。由于在计算机中数据是并行存储与处理的,因此串行接口都配有并是并行存储与处理的,因此串行接口都配有并/串转换和串串转换和串/并转换电路。并转换电路。下一页下一页返回返回上一页上一页任务任务1 I/O接口接口3.按照传输控制方式分类按照传输控制方式分类按照传输控制方式分类,可分为直接按照传输控制方式分类,可分为直接/查询方式、中断控制方查询方式、中断控制方式和式和DMA方式的接口。另外,还有通道和方式的接口。另外,还有通道和I/O处理机等。处理机等。返回返回上一页上一页任务任务2中断中断任何一种类型的计算机,包括微控制器任何一种类型的计算机,包括微控制器(或称单片机或称单片机)都离不都离不开中断技术,它们对中断的处理机理大同小异。任务开中断技术,它们对中断的处理机理大同小异。任务2描述中描述中断系统的基本概念与基本工作原理、中断产生的过程和其他断系统的基本概念与基本工作原理、中断产生的过程和其他若干技术问题。若干技术问题。7.2.1中断的基本概念中断的基本概念1.中断的引入中断的引入CPU不仅要进行繁琐的数据运算与处理内部复杂事务,还必不仅要进行繁琐的数据运算与处理内部复杂事务,还必须随时同各类外设交换信息,仅以键盘输入为例,只要有键须随时同各类外设交换信息,仅以键盘输入为例,只要有键按下,微处理器就应立即响应。这里有两种处理办法。其一,按下,微处理器就应立即响应。这里有两种处理办法。其一,是让是让CPU不断地查询外设的状态,一刻不停地监视键盘不断地查询外设的状态,一刻不停地监视键盘“有有无按键输入无按键输入”。于是。于是CPU浪费了很多时间去反复查询等待键浪费了很多时间去反复查询等待键盘,工作效率极低。其二,是让盘,工作效率极低。其二,是让CPU平时不顾外设而独自处平时不顾外设而独自处理自己的事务,届时让外设主动向理自己的事务,届时让外设主动向CPU报告,例如,一旦有报告,例如,一旦有按键输入,按键输入,下一页下一页返回返回任务任务2中断中断键盘立即主动向键盘立即主动向CPU报告,报告,CPU马上中止当前的操作,保护马上中止当前的操作,保护好操作现场后即与键盘通信读入按键值,然后作相应处理。好操作现场后即与键盘通信读入按键值,然后作相应处理。键盘处理完成后再恢复原来的现场,继续原操作,这就是中键盘处理完成后再恢复原来的现场,继续原操作,这就是中断的思路。断的思路。所谓中断就是由于发生了某种必须及时处理的事件,使所谓中断就是由于发生了某种必须及时处理的事件,使CPU暂停当前程序的执行,而转去处理临时发生的该事件,处理暂停当前程序的执行,而转去处理临时发生的该事件,处理完毕后再返回继续执行暂停的原程序。能够产生中断请求的完毕后再返回继续执行暂停的原程序。能够产生中断请求的事件或者外设称为中断源。事件或者外设称为中断源。计算机中引入中断的概念后获得了以下明显的效果。计算机中引入中断的概念后获得了以下明显的效果。同步操作同步操作:CPU与外设在一定程度上做到了并行操作,从而与外设在一定程度上做到了并行操作,从而大大提高了计算机的整机效率。大大提高了计算机的整机效率。实时处理实时处理:要求及时处理的事务向要求及时处理的事务向CPU请求中断,请求中断,CPU立立即响应并作处理,使系统达到实时要求。即响应并作处理,使系统达到实时要求。下一页下一页返回返回上一页上一页任务任务2中断中断故障处理故障处理:计算机在运行过程中,有时会出现事先预料不到计算机在运行过程中,有时会出现事先预料不到的故障现象,将这些故障作为中断来响应就达到了自动处理的故障现象,将这些故障作为中断来响应就达到了自动处理的功能,提高了整机的可靠性。的功能,提高了整机的可靠性。2.中断优先权与中断嵌套中断优先权与中断嵌套在一个在一个PC系统中有许多外设,因而一个中断系统中就有多个系统中有许多外设,因而一个中断系统中就有多个中断源,有时可能会有几个中断源同时发生中断请求,这时中断源,有时可能会有几个中断源同时发生中断请求,这时CPU该优先处理哪个中断服务呢该优先处理哪个中断服务呢?这里就有一个中断优先级这里就有一个中断优先级别的问题。必须将系统中所有的中断源按实时性要求或者其别的问题。必须将系统中所有的中断源按实时性要求或者其他规则排队,高优先级的中断总是优先被处理,待后再依次他规则排队,高优先级的中断总是优先被处理,待后再依次处理其他级别较低的中断。处理其他级别较低的中断。优先级顺序有多种排队方法,比较常用的有固定法与循环法优先级顺序有多种排队方法,比较常用的有固定法与循环法等,前者是固定各中断源的优先级别,使用中不可改变。后等,前者是固定各中断源的优先级别,使用中不可改变。后者则是非固定的,各中断源的优先级依某种规则发生变化,者则是非固定的,各中断源的优先级依某种规则发生变化,例如,可以采取自然排队的方案,先服务的自动排在末尾,例如,可以采取自然排队的方案,先服务的自动排在末尾,优先级别最低,按此时间顺序排队。优先级别最低,按此时间顺序排队。下一页下一页返回返回上一页上一页任务任务2中断中断除中断排队外,还有一种情况是当除中断排队外,还有一种情况是当CPU正在进行中断服务处正在进行中断服务处理时又出现了新的中断请求。正常的处理办法是,只要新的理时又出现了新的中断请求。正常的处理办法是,只要新的中断的优先级低于当前被服务的中断,中断的优先级低于当前被服务的中断,CPU暂不理会,待当暂不理会,待当前中断服务结束后再作处理。但是当新的中断的优先级高于前中断服务结束后再作处理。但是当新的中断的优先级高于当前被服务的中断时,那么当前较低优先级的中断必须暂停当前被服务的中断时,那么当前较低优先级的中断必须暂停服务,服务,CPU转去响应更高优先级的中断。从而使得较高优先转去响应更高优先级的中断。从而使得较高优先级的中断可以打断当前正被处理的中断。这样就出现了中断级的中断可以打断当前正被处理的中断。这样就出现了中断嵌套,如嵌套,如图图7-2所示,可以嵌套的最多层数由微处理器的功所示,可以嵌套的最多层数由微处理器的功能确定。能确定。3.中断源的分类中断源的分类中断可以分为软件中断中断可以分为软件中断(Software Interrupts)与硬件中断与硬件中断(Hardware Interrupts)两大类,两者之中又由不同类型的两大类,两者之中又由不同类型的中断源构成。中断源构成。图图7-3列出了它的整个中断结构。列出了它的整个中断结构。软件中断是微处理器内部执行某条特殊指令或者机器产生故软件中断是微处理器内部执行某条特殊指令或者机器产生故障引发的,所以这类中断障引发的,所以这类中断下一页下一页返回返回上一页上一页任务任务2中断中断又称为内部中断,它与相应的指令同步发生。此时又称为内部中断,它与相应的指令同步发生。此时CPU必须必须中止当前事务,转去执行特定的事务或者处理故障。中止当前事务,转去执行特定的事务或者处理故障。硬件中断是由处理器的外部事件引起的,在处理器的中断引硬件中断是由处理器的外部事件引起的,在处理器的中断引脚上输入触发信号以请求这种中断,因此又可以称为外部中脚上输入触发信号以请求这种中断,因此又可以称为外部中断,它不是由指令引发的。这类中断通常应用于外设。断,它不是由指令引发的。这类中断通常应用于外设。4.中断一般过程中断一般过程现以外设请求中断为例详细描述中断的全过程,如现以外设请求中断为例详细描述中断的全过程,如图图7-4所所示。对于内部中断,除首尾有所差别外,中间的过程基本上示。对于内部中断,除首尾有所差别外,中间的过程基本上相同。这个一般过程是用户设计中断程序的基本思路,必须相同。这个一般过程是用户设计中断程序的基本思路,必须牢固掌握。牢固掌握。请求中断请求中断:外设输出中断请求信号,使中断控制系统的中断外设输出中断请求信号,使中断控制系统的中断请求触发器置为高电平,向请求触发器置为高电平,向CPU请求中断。请求中断。响应中断响应中断:CPU每执行完一条指令后都要检查是否有中断请每执行完一条指令后都要检查是否有中断请求发生,一旦有中断源请求中断,则立即响应。求发生,一旦有中断源请求中断,则立即响应。下一页下一页返回返回上一页上一页任务任务2中断中断关闭中断关闭中断:CPU响应中断后,自动将状态标志寄存器响应中断后,自动将状态标志寄存器FLAGS的内容压入堆栈保护起来,然后将的内容压入堆栈保护起来,然后将FLAGS的中断标志位的中断标志位I(bit9)与陷阱标志位与陷阱标志位T(big8)清零,从而自动关闭外部硬件清零,从而自动关闭外部硬件中断。如果考虑中断嵌套,允许更高优先级的中断可以打断中断。如果考虑中断嵌套,允许更高优先级的中断可以打断本中断服务的话,则要使用一条本中断服务的话,则要使用一条STI指令将标志寄存器中的指令将标志寄存器中的中断标志位置中断标志位置1,从而打开已被,从而打开已被CPU自动关闭了的中断功能。自动关闭了的中断功能。如果不允许中断嵌套则不必多此一举。如果不允许中断嵌套则不必多此一举。保留断点保留断点:所谓断点是指所谓断点是指CPU响应中断后主程序停止执行响应中断后主程序停止执行时的下一条指令的地址,保护断点就是将时的下一条指令的地址,保护断点就是将CS和和IP的当前内容的当前内容推入堆栈保存,以便中断处理完毕后能返回被中断的原程序推入堆栈保存,以便中断处理完毕后能返回被中断的原程序继续执行,这一步也是由继续执行,这一步也是由CPU自动完成的。自动完成的。下一页下一页返回返回上一页上一页任务任务2中断中断中断入口中断入口:中断控制器系统给出中断服务程序的入口地址,中断控制器系统给出中断服务程序的入口地址,装入装入CS和和IP两个寄存器。两个寄存器。CPU转入相应的中断服务子程序转入相应的中断服务子程序开始执行指令。开始执行指令。保护现场保护现场:主程序与中断服务程序都要使用主程序与中断服务程序都要使用CPU内部寄存内部寄存器等资源,为使中断处理程序不破坏主程序中的寄存器内容,器等资源,为使中断处理程序不破坏主程序中的寄存器内容,应先将断点处的各寄存器的内容压入堆栈保护起来再进入实应先将断点处的各寄存器的内容压入堆栈保护起来再进入实质性的中断事务处理,这一步是由用户使用质性的中断事务处理,这一步是由用户使用PUSH指令来实指令来实现现场保护的。现现场保护的。中断服务中断服务:CPU执行中断处理事务。执行中断处理事务。恢复现场恢复现场:中断处理完毕后,通过中断处理完毕后,通过POP指令将保存在堆栈指令将保存在堆栈中的各个寄存器的内容弹出,即恢复主程序断点处的寄存器中的各个寄存器的内容弹出,即恢复主程序断点处的寄存器原值。原值。中断返回中断返回:在中断服务程序的最后要安排一条中断返回指令在中断服务程序的最后要安排一条中断返回指令IRET,执行该指令,系统自动将堆栈内保存的,执行该指令,系统自动将堆栈内保存的IP和和CS值弹值弹出,从而恢复了主程序断点处的出,从而恢复了主程序断点处的CS;IP地址值,同时还从堆地址值,同时还从堆栈中弹出原来保存的标志寄存器栈中弹出原来保存的标志寄存器FLAGS。下一页下一页返回返回上一页上一页任务任务2中断中断不同的中断源拥有不同的中断服务程序,那么当中断请求发不同的中断源拥有不同的中断服务程序,那么当中断请求发生后,生后,CPU如何获知是哪个中断源,从而转到相应的中断服如何获知是哪个中断源,从而转到相应的中断服务程序完成相关处理呢务程序完成相关处理呢?下面即将介绍的中断向量表下面即将介绍的中断向量表(Interrupt Vector Table)能有效地解决这一问题。能有效地解决这一问题。7.2.2中断向量表中断向量表中断向量表就是用于存放各类中断源对应的中断服务子程序中断向量表就是用于存放各类中断源对应的中断服务子程序入口地址的表格。系统一共有入口地址的表格。系统一共有256个中断向量,每个都分配个中断向量,每个都分配一个向量类型号一个向量类型号N,N=0255。表表7-1列出了大多数已经被列出了大多数已经被系统定义了的中断向量的简单信息。系统定义了的中断向量的简单信息。中断服务程序的入口地址是以中断服务程序的入口地址是以“段段:偏移量偏移量”格式的逻辑地址格式的逻辑地址表示的,每个向量占表示的,每个向量占4个字节单元,较高值地址的个字节单元,较高值地址的2个单元放个单元放置置16位位CS段基地址,较低值地址的段基地址,较低值地址的2个单元放置个单元放置16位位IP偏偏移量。由于是按中断向量号移量。由于是按中断向量号N顺序存放,所以只要简单地将顺序存放,所以只要简单地将中断向量号中断向量号N乘以乘以4就指向了所需的表格位置。就指向了所需的表格位置。下一页下一页返回返回上一页上一页任务任务2中断中断256个中断向量的总长度为个中断向量的总长度为256 x 4字节单元字节单元=1 024字节字节单元,占据系统存储器的最底层位置,其物理地址为单元,占据系统存储器的最底层位置,其物理地址为00000 H003 FFH。图图7-5描述了描述了CPU执行中断操作时查询中断向量表的前后过执行中断操作时查询中断向量表的前后过程。程。堆栈指针堆栈指针SP减减2,标志寄存器,标志寄存器FLAGS自动进栈保存,然后自动进栈保存,然后中断标志位中断标志位I(bit8)与陷阱标志位与陷阱标志位T(bit9)清。,表示此后清。,表示此后关闭了外部硬件中断。关闭了外部硬件中断。堆栈指针堆栈指针SP减减2,代码段寄存器,代码段寄存器CS自动进栈保存自动进栈保存;堆栈指堆栈指针针SP再减再减2,指令指针,指令指针IP自动进栈保存。自动进栈保存。下一页下一页返回返回上一页上一页任务任务2中断中断将中断向量号将中断向量号N乘以乘以4即得表格中的中断向量首地址,在该即得表格中的中断向量首地址,在该单元与单元与(4xN+1)中存放着中存放着IP值值;在在(4xN+2)与与(4 xN+3)中存中存放着放着CS值,将它们分别装入值,将它们分别装入IP与与CS中,即获得中断服务程中,即获得中断服务程序的入口地址。序的入口地址。CPU从入口地址处开始执行中断服务程序。中断服务处理从入口地址处开始执行中断服务程序。中断服务处理完毕后由完毕后由IRET指令实施弹出堆栈的逆向操作,恢复指令实施弹出堆栈的逆向操作,恢复FLAGS,CS与与IP寄存器的原值,返回原主程序。寄存器的原值,返回原主程序。7.2.3 DMA I/O控制方式控制方式中断控制中断控制I/0方式虽然可以提高计算机的工作效率,但是,方式虽然可以提高计算机的工作效率,但是,事实上仍然要通过事实上仍然要通过CPU执行程序来实现数据传送操作。当某执行程序来实现数据传送操作。当某些外围设备些外围设备(例如,软盘、硬盘或高速数据采集系统等例如,软盘、硬盘或高速数据采集系统等)要求要求高速大批量地传送数据时,程序中断方式已不能满足要求。高速大批量地传送数据时,程序中断方式已不能满足要求。原因是这种数据交换是成批的,且单位数据之间的时间间隔原因是这种数据交换是成批的,且单位数据之间的时间间隔较短。每次转入中断服务程序,较短。每次转入中断服务程序,CPU都少不了要进行保护断都少不了要进行保护断点和标志寄存器以及保护寄存器和恢复寄存器的操作,这些点和标志寄存器以及保护寄存器和恢复寄存器的操作,这些操作明显地增加了操作明显地增加了CPU的处理时间,因此会造成信息丢失。的处理时间,因此会造成信息丢失。下一页下一页返回返回上一页上一页任务任务2中断中断直接存储器存取直接存储器存取(Direct Memory Access,DMA)方式的方式的基本设计思想是,在存储器和外围设备之间建立起直接的数基本设计思想是,在存储器和外围设备之间建立起直接的数据传送通路。即传送不需经过据传送通路。即传送不需经过CPU,而由专门的,而由专门的DMA控制控制器实现存储器和外围设备之间的数据传送操作。这样,数据器实现存储器和外围设备之间的数据传送操作。这样,数据传送就不必进行现场保护等一系列的额外操作,从而减轻了传送就不必进行现场保护等一系列的额外操作,从而减轻了CPU的负担,因此特别适合于高速度、大批量数据传送的场的负担,因此特别适合于高速度、大批量数据传送的场合。但这种方式要求设置合。但这种方式要求设置DMA控制器,硬件电路比较复杂。控制器,硬件电路比较复杂。不过,对于一个完善的微机系统,不过,对于一个完善的微机系统,DMA数据传送功能是不可数据传送功能是不可缺少的。缺少的。图图7-6展示了展示了DMA方式的传送原理,如方式的传送原理,如图图7-7所示所示则是则是DMA方式传送工作流程。方式传送工作流程。下一页下一页返回返回上一页上一页任务任务2中断中断直接存储器存取直接存储器存取(DMA)是在是在I/O设备和存储器之间直接进行数设备和存储器之间直接进行数据传送的一项技术。据传送的一项技术。DMA的读操作是将数据从存储器传送给的读操作是将数据从存储器传送给I/O设备,而设备,而DMA的写操作是将数据从的写操作是将数据从I/O设备传送给存储设备传送给存储器。器。DMA在进行读在进行读/写操作时,存储器和写操作时,存储器和I/O设备同时地、设备同时地、分别地处于被存储器的控制信号和分别地处于被存储器的控制信号和I/)设备的控制信号所控设备的控制信号所控制的状态。微机的这种特殊控制总线结构允许制的状态。微机的这种特殊控制总线结构允许DMA的传送操的传送操作,数据的传送速度则由存储器的存取速度和作,数据的传送速度则由存储器的存取速度和DMA控制器的控制器的速度决定。速度决定。在进行大批量数据传送操作时,在进行大批量数据传送操作时,DMA技术是一种最有效的技技术是一种最有效的技术。术。返回返回上一页上一页图图7-1接口的基本组成接口的基本组成返回返回图图7-2中断的嵌套处理中断的嵌套处理返回返回图图7-3 Pentium的中断系统的中断系统返回返回图图7-4中断响应过程中断响应过程返回返回表表7-1中断向量汇总表中断向量汇总表返回返回下一页下一页表表7-1中断向量汇总表中断向量汇总表(续表续表)返回返回上一页上一页图图7-5实模式下的中断过程实模式下的中断过程返回返回图图7-6 DMA传送原理图传送原理图返回返回图图7-7 DMA工作流程图工作流程图返回返回