版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第8章章 I/O 接口技术接口技术1本章主要内容本章主要内容(1) I/O接口的基本概念接口的基本概念(2) I/O控制方式控制方式(3) DMA接口技术接口技术(4) 中断系统中断系统2本章主要复习内容本章主要复习内容1.PPT第第9页页PPT第第18页页2.PPT第第21页页PPT第第26页页3.PPT第第40页页PPT第第55页页4.PPT第第56页页PPT第第82页页5.教材例题教材例题3本章主要复习要点内容归纳本章主要复习要点内容归纳1.I/O端口的编址方式及优缺点端口的编址方式及优缺点2.主机与外围设备之间的数据传送控制方式主机与外围设备之间的数据传送控制方式3.中断分类及特点。
2、中断分类及特点。1.外部外部1.可屏蔽中断和不可屏蔽中断可屏蔽中断和不可屏蔽中断2.内部内部4本章主要复习要点内容归纳本章主要复习要点内容归纳4.中断向量表中断向量表5.中断响应和中断处理过程中断响应和中断处理过程1.中断响应和中断处理过程中堆栈的变化中断响应和中断处理过程中堆栈的变化1.主程序主程序PSW(FLAGE)、CS、IP进栈进栈2.中断处理程序中断处理程序 IP、CS出栈出栈3.FLAGE变化变化4.画图画图58.1 I/O接口概述接口概述8.1.1 I/O接口的基本功能接口的基本功能 (1) 数据缓冲数据缓冲 (2) 提供联络信息提供联络信息 (3) 信号与信息格式的转换信号与信
3、息格式的转换 (4) 设备选择设备选择 (5) 中断管理中断管理 (6) 可编程功能可编程功能68.1.2 I/O接口的基本结构接口的基本结构nI/O接口的基本结构如图接口的基本结构如图8.1所示。所示。7cpu外外 围围 设设 备备 数据输入寄存器数据输入寄存器数据输出寄存器数据输出寄存器状态寄存器状态寄存器 控制寄存器控制寄存器中断控制逻辑中断控制逻辑数据总线数据总线地址总线地址总线控制总线控制总线图图8.1 I/O 接口的基本结构接口的基本结构I/O接口接口88.1.3 I/O端口的编址方式端口的编址方式n输入输出接口包含一组称为输入输出接口包含一组称为I/O端口的寄存器。为了让端口的寄
4、存器。为了让CPU能够访问这些能够访问这些I/O端口,每个端口,每个I/O端口都需有自己端口都需有自己的端口地址的端口地址(或端口号或端口号)。n在一个微型计算机系统中,如何编排这些在一个微型计算机系统中,如何编排这些I/O接口的端接口的端口地址,称为口地址,称为I/O端口的编址方式。端口的编址方式。9n常见的常见的I/O端口编址方式有两种端口编址方式有两种: n一种是一种是I/O端口和存储器统一编址,也称存储器映像的端口和存储器统一编址,也称存储器映像的I/O(MemoryMapped I/O)方式;方式;n另一种是另一种是I/O端口和存储器分开编址,也称端口和存储器分开编址,也称I/O映像
5、的映像的I/O(I/O Mapped I/O)方式。方式。101. I/O端口和存储器统一编址端口和存储器统一编址 (Memory-mapped I/O)nI/O端口和存储器统一编址的地址空间分布情况如图端口和存储器统一编址的地址空间分布情况如图8.2所示。所示。11I/O 端口端口存储单元存储单元I/O 地址空间地址空间存储器地址空间存储器地址空间整个地址空间整个地址空间图图8.2 I/O 端口和存储器统一编址端口和存储器统一编址12n这种编址方式的优点是,这种编址方式的优点是,可以用访向存储器的指令来可以用访向存储器的指令来访问访问I/O端口,而访问存储器的指令功能比较强,不仅端口,而访问
6、存储器的指令功能比较强,不仅有一般的传送指令,还有算术、逻辑运算指令,以及有一般的传送指令,还有算术、逻辑运算指令,以及各种移位、比较指令等,并且可以实现直接对各种移位、比较指令等,并且可以实现直接对I/O端口端口内的数据进行处理。内的数据进行处理。n例如,若一个存储器映像的例如,若一个存储器映像的I/O端口地址为端口地址为3000H, n则可以直接用指令则可以直接用指令“ADD AL, DS:3000H”对端口对端口的内容进行算术运算。的内容进行算术运算。13n缺点是:缺点是:n由于由于I/O端口占用了一部分存储器地址空间,因而使用端口占用了一部分存储器地址空间,因而使用户的存储地址空间相对
7、减小;户的存储地址空间相对减小;n另外,由于利用访问存储器的指令来进行另外,由于利用访问存储器的指令来进行I/O操作,指操作,指令的长度通常比单独令的长度通常比单独I/O指令要长,因而指令的执行时指令要长,因而指令的执行时间也较长。间也较长。n微处理器微处理器MC6800系列、系列、6502系列以及系列以及MC680 x0系列系列采用这种编址方式。采用这种编址方式。142. I/O端口和存储器单独编址端口和存储器单独编址 (I/O- mapped I/O)nI/O端口和存储器单独编址的地址空间分布如图端口和存储器单独编址的地址空间分布如图8.3所所示。示。 15存储单元存储单元存储地址空存储地
8、址空间间I/O 端口端口I/O 地址空间地址空间图图8.3 I/O 端口和存储器单独编址端口和存储器单独编址 16n这种编址方式的这种编址方式的优点是:优点是:n第一,第一,I/O端口不占用存储器地址,故不会减少用户的端口不占用存储器地址,故不会减少用户的存储器地址空间;存储器地址空间;n第二,单独第二,单独I/O指令的地址码较短,地址译码方便,指令的地址码较短,地址译码方便,I/O指令短,执行速度快;指令短,执行速度快;n第三,采用单独的第三,采用单独的I/O指令,使程序中指令,使程序中I/O操作和其他操作和其他操作层次清晰,便于理解。操作层次清晰,便于理解。17n这种编址方式的这种编址方式
9、的缺点是:缺点是:n第一,单独第一,单独I/O指令的功能有限,只能对端口数据进行指令的功能有限,只能对端口数据进行输入输入/输出操作,不能直接进行移位、比较等其他操作;输出操作,不能直接进行移位、比较等其他操作;n第二,由于采用了专用的第二,由于采用了专用的I/O操作时序及操作时序及I/O控制信号控制信号线,因而增加了微处理器本身控制逻辑的复杂性。线,因而增加了微处理器本身控制逻辑的复杂性。n微处理器微处理器Z80系列、系列、Intel 80 x86系列采用了这种编址方系列采用了这种编址方式。式。188.1.4 I/O接口的地址译码及片选信号的产生接口的地址译码及片选信号的产生在一个微机系统中
10、通常具有多台外设,当在一个微机系统中通常具有多台外设,当CPU与外设进与外设进行通信时,需要对各个设备所对应的接口芯片进行逻辑行通信时,需要对各个设备所对应的接口芯片进行逻辑选择,从而实现与相应的设备进行数据交换。选择,从而实现与相应的设备进行数据交换。这种逻辑选择功能是由这种逻辑选择功能是由I/O接口电路中的地址译码器实接口电路中的地址译码器实现的。现的。目前常见的一种做法是目前常见的一种做法是:先通过对:先通过对I/O端口地址的某几端口地址的某几位位高位地址进行译码,产生有效的片选信号高位地址进行译码,产生有效的片选信号,从而选中,从而选中对应的接口芯片,再利用对应的接口芯片,再利用I/O
11、端口地址的端口地址的低位地址作为低位地址作为对接口芯片内部有关寄存器的选择对接口芯片内部有关寄存器的选择。19n例如,在例如,在IBM PC/XT微机中,其系统板上有数片微机中,其系统板上有数片I/O接口接口芯片,其中包括芯片,其中包括DMA控制器控制器8237、中断控制器、中断控制器8259A、并、并行接口行接口8255A、计数器、计数器/定时器定时器8253等。等。n这些接口芯片必须是在相应的片选信号有效时才能工作。这些接口芯片必须是在相应的片选信号有效时才能工作。n图图8.4所示的就是在该微机系统中片选信号的产生电路。所示的就是在该微机系统中片选信号的产生电路。20 A Y0 B Y1
12、C Y2 Y3 Y4G2B Y5 G2A Y6 G1 Y7A5A6A874LS138A7A9AENPPICST/C CSINTRCSDMACSIOWWRTDMAPG(写写DMA页面寄存器页面寄存器)WRTNMIREG(写(写NMI屏蔽寄存器)屏蔽寄存器)图图8.4 片选信号的产生片选信号的产生218.2 I/O控制方式控制方式n主机与外围设备之间的数据传送控制方式主机与外围设备之间的数据传送控制方式(即即I/O控制控制方式方式)主要有三种:主要有三种:n程序控制方式、中断控制方式和直接存储器存取程序控制方式、中断控制方式和直接存储器存取(DMA)方式。方式。8.2.1 程序控制方式程序控制方式
13、n程序控制方式是指在程序控制下进行的数据传送方式。程序控制方式是指在程序控制下进行的数据传送方式。它又分为无条件传送和程序查询传送两种。它又分为无条件传送和程序查询传送两种。1. 无条件传送方式无条件传送方式n优点:优点:控制程序简单。控制程序简单。n缺点:缺点:必须是在外设已准备好的情况下才能使用,否必须是在外设已准备好的情况下才能使用,否则,传送就会出错。则,传送就会出错。 222. 程序查询传送方式程序查询传送方式n优点:优点:比无条件传送要准确和可靠。比无条件传送要准确和可靠。 n缺点:缺点: (1)CPU的利用率低;的利用率低; (2)不能满足实时控制系统对)不能满足实时控制系统对I
14、/O处理的要求。处理的要求。 23准备好?准备好?读取状态信息读取状态信息输入数据输入数据是是否否图图8.5 查询式输入程序流程图查询式输入程序流程图忙?忙?读取状态信息读取状态信息输出数据输出数据否否是是图图8.6 查询式输出程序流程图查询式输出程序流程图248.2.2 中断控制方式中断控制方式n与程序查询方式相比,中断控制方式的数据交换具有与程序查询方式相比,中断控制方式的数据交换具有如下特点如下特点: (1) 提高了提高了CPU的工作效率的工作效率; (2) 外围设备具有申请服务的主动权外围设备具有申请服务的主动权; (3) CPU可以和外设并行工作可以和外设并行工作; (4) 可适合实
15、时系统对可适合实时系统对I/O处理的要求。处理的要求。258.2.3 DMA方式方式1. DMA的基本概念的基本概念n采用程序控制方式以及中断方式进行数据传送时,都采用程序控制方式以及中断方式进行数据传送时,都是靠是靠CPU执行程序指令来实现数据的输入执行程序指令来实现数据的输入/输出的。输出的。n采用程序控制方式及中断方式时,数据的传输率不会采用程序控制方式及中断方式时,数据的传输率不会很高。很高。n对于高速外设对于高速外设,如高速磁盘装置或高速数据采集系统,如高速磁盘装置或高速数据采集系统等,采用这样的传送方式,往往满足不了其数据传输等,采用这样的传送方式,往往满足不了其数据传输率的要求。
16、率的要求。n例如,对于磁盘装置,其数据传输率通常在例如,对于磁盘装置,其数据传输率通常在20万字节万字节/秒以上,即传输一个字节的时间要小于秒以上,即传输一个字节的时间要小于5s。26n对于通常的对于通常的PC机来说,执行一条程序指令平均需要几机来说,执行一条程序指令平均需要几s时时间。显然,采用程序控制或中断方式不能满足这种高速外间。显然,采用程序控制或中断方式不能满足这种高速外设的要求。设的要求。n由此产生由此产生不需要不需要CPU干预干预(不需不需CPU执行程序指令执行程序指令),而在,而在专门硬件控制电路控制之下进行的外设与存储器间直接数专门硬件控制电路控制之下进行的外设与存储器间直接
17、数据传送的方式据传送的方式,称为直接存储器存取,称为直接存储器存取(Direct Memory Access),简称简称DMA方式方式。n这一专门的硬件控制电路称为这一专门的硬件控制电路称为DMA控制器,简称控制器,简称DMAC。27CPU外设外设存储器存储器总线总线:执行程序指令的数据传送路径;:执行程序指令的数据传送路径; :DMA方式的数据传送路径方式的数据传送路径图图8.7 两种不同的数据传送路径两种不同的数据传送路径282. 几种不同形式的几种不同形式的DMA传送传送内存外设DMAC输出输入外设外设DMAC内存内存DMAC图图 8.8 DMA传送的几种形式传送的几种形式29随着大规模
18、集成电路技术的发展,随着大规模集成电路技术的发展,DMADMA传送已不局限传送已不局限于存储器与外设间的信息交换,而可以扩展为在存储器的于存储器与外设间的信息交换,而可以扩展为在存储器的两个区域之间,或两种高速的外设之间进行两个区域之间,或两种高速的外设之间进行DMADMA传送,如传送,如图所示。图所示。8.3 DMA技术技术8.3.1 DMA控制器的基本功能控制器的基本功能 (1) 能接收能接收I/O接口的接口的DMA请求,并向请求,并向CPU发出总线请发出总线请求信号;求信号; (2) 当当CPU发出总线回答信号后,接管对总线的控制,发出总线回答信号后,接管对总线的控制,进入进入DMA传送
19、过程;传送过程; (3) 能实现有效的寻址,即能输出地址信息并在数据传能实现有效的寻址,即能输出地址信息并在数据传送过程中自动修改地址;送过程中自动修改地址;30 (4) 能向存储器和能向存储器和I/O接口发出相应的读接口发出相应的读/写控制信号;写控制信号; (5) 能控制数据传送的字节数,控制能控制数据传送的字节数,控制DMA传送是否结束;传送是否结束; (6) 在在DMA传送结束后,能释放总线给传送结束后,能释放总线给CPU,恢复,恢复CPU对对总线的控制。总线的控制。318.3.2 DMA控制器的一般结构控制器的一般结构n一个单通道一个单通道DMA控制器的一般结构及其与控制器的一般结构
20、及其与I/O接口的接口的连接如图连接如图8.9所示。所示。n图图8.9的上半部分是的上半部分是I/O接口,下半部分是接口,下半部分是DMA控制器。控制器。32计数结束信号计数结束信号(可作为中断请求信号)(可作为中断请求信号)控制寄存器控制寄存器 状态寄存器状态寄存器数据输入寄存器数据输入寄存器数据输出寄存器数据输出寄存器控制寄存器控制寄存器 状态寄存器状态寄存器地址寄存器地址寄存器字节计数寄存器字节计数寄存器数据总线数据总线控制总线控制总线数据总线数据总线控制总线控制总线地址总线地址总线地址总线地址总线地址译地址译码器码器 DMA控制器控制器DMA请求请求DMA响应响应中断请求中断请求外设外
21、设I/O 接口接口总线回答总线回答总线请求总线请求图图8.9 DMA控制器的一般结构及其与控制器的一般结构及其与I/O 接口的连接接口的连接338.3.3 DMA控制器的工作方式控制器的工作方式nDMA控制器的工作方式通常有控制器的工作方式通常有“单字节传输方式单字节传输方式”、“块传输方式块传输方式”以及以及“请求传输方式请求传输方式”等。等。1. 单字节传输方式单字节传输方式n在单字节传输方式下,在单字节传输方式下,DMA控制器每次请求总线只传控制器每次请求总线只传送一个字节数据,传送完后即释放总线控制权。送一个字节数据,传送完后即释放总线控制权。n在此方式下,总线控制权处于在此方式下,总
22、线控制权处于CPU与与DMA控制器交替控制器交替控制之中,其间,总线控制权经过多次交换。控制之中,其间,总线控制权经过多次交换。2. 块传输方式块传输方式(也称成组传输方式也称成组传输方式)n块传输方式是指块传输方式是指DMA控制器每次请求总线即连续传送控制器每次请求总线即连续传送一个数据块,待整个数据块全部传送完成后再释放总一个数据块,待整个数据块全部传送完成后再释放总线控制权。线控制权。343. 请求传输方式请求传输方式n每传输完一个字节,每传输完一个字节,DMA控制器都要检测由控制器都要检测由I/O接口接口发来的发来的“DMA请求请求”信号是否仍然有效,如果该信号信号是否仍然有效,如果该
23、信号仍有效,则继续进行仍有效,则继续进行DMA传输;传输;n否则,就暂停传输,交还总线控制权给否则,就暂停传输,交还总线控制权给CPU,直至,直至“DMA请求请求”信号再次变为有效,数据块传输则从刚信号再次变为有效,数据块传输则从刚才暂停的那一点继续进行下去。才暂停的那一点继续进行下去。358.3.4 DMA工作过程工作过程n在在DMA方式下,往往传送的是一个数据块,但传送这方式下,往往传送的是一个数据块,但传送这个数据块的具体操作方式,可以采用上面介绍的单字个数据块的具体操作方式,可以采用上面介绍的单字节传输方式,也可采用块传输或请求传输方式。节传输方式,也可采用块传输或请求传输方式。n下面
24、先以从下面先以从内存输出一个字节数据到外设内存输出一个字节数据到外设的的DMA传送传送过程为例,具体说明过程为例,具体说明DMA的操作过程。然后再给出的操作过程。然后再给出以以DMA方式输入一个数据块方式输入一个数据块的工作过程。的工作过程。n以以DMA方式从内存输出一个字节数据到外设的具体工方式从内存输出一个字节数据到外设的具体工作过程如图作过程如图8.10中第步所示。中第步所示。36(6) 内存把数据送数据总线内存把数据送数据总线(7) 接口锁存数据接口锁存数据内存内存接口接口DMA控制器控制器I/O 设备设备CPU 和总线和总线控制逻辑控制逻辑HOLD HLDA (1) 接口准备就绪,发
25、接口准备就绪,发DMA请求请求(2) 发总线请求发总线请求(3) 总线允许总线允许 (5) DMA响应响应(9) CPU收回总线控制权收回总线控制权(8)DMA 控制器撤销总线请求控制器撤销总线请求(4) DMA控制器把地址送地址总线控制器把地址送地址总线数据总线数据总线控制总线控制总线地址总线地址总线图图 8.10 以以DMA方式输出一个字节数据的工作过程方式输出一个字节数据的工作过程37n若从外设往内存输入一个数据块若从外设往内存输入一个数据块(输入过程输入过程),在,在单字节传输单字节传输方式下方式下,其主要工作过程为:,其主要工作过程为:(1)I/O接口准备就绪,向接口准备就绪,向DM
26、A控制器发控制器发“DMA请求请求”信号;信号;(2)DMA控制器向控制器向CPU发发“总线请求总线请求”信号;信号;(3)CPU向向DMA控制器发控制器发“总线允许总线允许”信号;信号; (4)DMA控制器把地址送到地址总线上;控制器把地址送到地址总线上;(5)DMA控制器向控制器向I/O接口发接口发“DMA响应响应”信号;信号;38(6)DMA控制器发读控制器发读I/O接口信号,令接口信号,令I/O接口把数据送接口把数据送到数据总线上;到数据总线上;(7)DMA控制器发写存储器信号,将数据写入由地址控制器发写存储器信号,将数据写入由地址总线上的地址所指向的内存单元;总线上的地址所指向的内存
27、单元;(8)DMA控制器撤销总线请求;控制器撤销总线请求;(9)CPU 收回总线控制权;收回总线控制权;(10)地址寄存器加)地址寄存器加1;(11)字节计数寄存器减)字节计数寄存器减1;(12)如果字节计数寄存器的值不为零,则返回第()如果字节计数寄存器的值不为零,则返回第(1) 步,否则结束。步,否则结束。398.3.5 可编程可编程DMA控制器控制器8237nIntel 8237是一种功能很强的可编程是一种功能很强的可编程DMA控制器,目前控制器,目前仍在微机系统中广泛应用(置于南桥芯片中)。采用仍在微机系统中广泛应用(置于南桥芯片中)。采用5MHz时钟时,其传输速率可达时钟时,其传输速
28、率可达1.6MB/s;n一片一片8237内部有内部有4个独立的个独立的DMA通道,每个通道一次通道,每个通道一次DMA传送的最大长度可达传送的最大长度可达64KB;每个通道的;每个通道的DMA请请求都可以分别允许和禁止;不同通道的求都可以分别允许和禁止;不同通道的DMA请求有不请求有不同的优先级,优先级可以是固定的,也可以是循环的同的优先级,优先级可以是固定的,也可以是循环的(可编程设定可编程设定);n4个通道可以分时地为个通道可以分时地为4个外部设备实现个外部设备实现DMA传送,也传送,也可以同时使用其中的通道可以同时使用其中的通道0和通道和通道1实现存储器到存储实现存储器到存储器的直接传送
29、,还可以用多片器的直接传送,还可以用多片8237进行级联,从而构进行级联,从而构成更多的成更多的DMA通道。通道。408.4 中断系统中断系统8.4.1 基本概念基本概念1. 中断中断n在程序运行时,系统外部、内部或现行程序本身若出在程序运行时,系统外部、内部或现行程序本身若出现紧急事件,处理器必须立即强行中止现行程序的运现紧急事件,处理器必须立即强行中止现行程序的运行,改变机器的工作状态并启动相应的程序来处理这行,改变机器的工作状态并启动相应的程序来处理这些事件,然后再恢复原来的程序运行,这一过程称为些事件,然后再恢复原来的程序运行,这一过程称为中断中断(interrupt) 。在通用计算机
30、中,为了提高系统的效率,采用在通用计算机中,为了提高系统的效率,采用CPU与与外设并行工作的方式,中断就作为外设和外设并行工作的方式,中断就作为外设和CPU之间联之间联系的手段。随着计算机系列化产品和操作系统的出现,系的手段。随着计算机系列化产品和操作系统的出现,中断系统的地位更加重要。中断系统的地位更加重要。411)中断源)中断源n能够向能够向CPU发出中断请求的中断来源称为中断源。常见发出中断请求的中断来源称为中断源。常见的中断源为:的中断源为:(1) 一般的输入一般的输入/输出设备,如输出设备,如CRT终端、打印机等;终端、打印机等;(2) 数据通道,如磁盘、磁带等;数据通道,如磁盘、磁
31、带等;(3) 实时时钟,如定时器输出的作为定时中断请求信号等;实时时钟,如定时器输出的作为定时中断请求信号等;(4) 故障信号,如电源掉电等;故障信号,如电源掉电等;(5) 软件中断,如为调试程序而设置的中断源。软件中断,如为调试程序而设置的中断源。422) 现代计算机采用的中断系统的主要目的现代计算机采用的中断系统的主要目的(1)维持系统的正常工作,提高系统效率;)维持系统的正常工作,提高系统效率;(2)实时处理;)实时处理;(3)为故障处理作准备。)为故障处理作准备。2. 中断响应和处理的一般过程中断响应和处理的一般过程n每个中断源向每个中断源向CPU发出的中断请求信号通常是随机的,而发出
32、的中断请求信号通常是随机的,而大多数大多数CPU都是在现行都是在现行指令周期结束时指令周期结束时,才检测有无中断,才检测有无中断请求信号到来。故在现行指令执行期间,各中断源必须把请求信号到来。故在现行指令执行期间,各中断源必须把中断请求信号锁存起来中断请求信号锁存起来,并保持到,并保持到CPU响应这个中断请求响应这个中断请求后,才清除中断请求。后,才清除中断请求。43nCPU在执行每条指令的最后一个机器周期的最后一个在执行每条指令的最后一个机器周期的最后一个时钟周期,检测中断请求信号输入线。若发现中断请时钟周期,检测中断请求信号输入线。若发现中断请求信号有效,对于可屏蔽中断还必须求信号有效,对
33、于可屏蔽中断还必须CPU开放中断,开放中断,则在下一总线周期进入中断响应周期。进入中断响应则在下一总线周期进入中断响应周期。进入中断响应周期后,中断响应和处理的一般过程如下。周期后,中断响应和处理的一般过程如下。进入中断响应周期后,中断响应和处理的过程如下:进入中断响应周期后,中断响应和处理的过程如下:1)关中断)关中断 CPU在响应中断时,发出中断响应信号在响应中断时,发出中断响应信号INTA*,同时,同时内部自动地关中断,以禁止接受其他的中断请求。内部自动地关中断,以禁止接受其他的中断请求。442)保存断点)保存断点 把断点处的指令指针把断点处的指令指针IP值和值和CS值压入堆栈,以使中断
34、值压入堆栈,以使中断处理完后能正确地返回主程序断点。处理完后能正确地返回主程序断点。3)识别中断源)识别中断源 CPU要对中断请求进行处理,必须找到相应的中断服要对中断请求进行处理,必须找到相应的中断服务程序的入口地址,这就是中断的识别。务程序的入口地址,这就是中断的识别。4)保护现场)保护现场 为了不使中断服务程序的运行影响主程序的状态,必为了不使中断服务程序的运行影响主程序的状态,必须把断点处有关寄存器须把断点处有关寄存器(指在中断服务程序中要使用的指在中断服务程序中要使用的寄存器寄存器)的内容以及标志寄存器的状态压入堆栈保护。的内容以及标志寄存器的状态压入堆栈保护。455)执行中断服务程
35、序)执行中断服务程序 在执行中断服务程序中,可在适当时刻重新开放中断,在执行中断服务程序中,可在适当时刻重新开放中断,以便允许响应较高优先级的中断。以便允许响应较高优先级的中断。6)恢复现场并返回)恢复现场并返回 把中断服务程序执行前压入堆栈的现场信息弹回原寄把中断服务程序执行前压入堆栈的现场信息弹回原寄存器,然后执行中断返回指令,从而返回主程序继续存器,然后执行中断返回指令,从而返回主程序继续运行。运行。46n在上述中断响应及处理的在上述中断响应及处理的6项操作中,项操作中,前前3项项是中断响是中断响应过程,一般由中断系统硬件负责完成;应过程,一般由中断系统硬件负责完成;n后后3项项是中断处
36、理过程,通常是由用户或系统程序设计是中断处理过程,通常是由用户或系统程序设计者编制的中断处理程序者编制的中断处理程序(软件软件)负责完成。负责完成。n针对一个具体的系统或机型,中断服务程序设计者应针对一个具体的系统或机型,中断服务程序设计者应该清楚该系统在中断响应时,中断响应硬件完成了哪该清楚该系统在中断响应时,中断响应硬件完成了哪些操作(如程序状态字些操作(如程序状态字PSW是否已被压入堆栈),还是否已被压入堆栈),还需中断处理软件(中断服务程序)完成哪些操作。需中断处理软件(中断服务程序)完成哪些操作。473. 中断优先级和中断嵌套中断优先级和中断嵌套1) 中断优先级中断优先级n在实际系统
37、中,多个中断请求可能同时出现,但中断在实际系统中,多个中断请求可能同时出现,但中断系统只能按一定的次序来响应和处理,这时系统只能按一定的次序来响应和处理,这时CPU必须必须确定服务的次序,即根据中断源的重要性和实时性,确定服务的次序,即根据中断源的重要性和实时性,照顾到操作系统处理的方便,对中断源的响应次序进照顾到操作系统处理的方便,对中断源的响应次序进行确定。行确定。n这个响应次序称为中断优先级这个响应次序称为中断优先级(priority)。)。48n通常,可用软件查询法确定中断优先级,也可用硬件通常,可用软件查询法确定中断优先级,也可用硬件组成中断优先级编码电路来实现。组成中断优先级编码电
38、路来实现。n现代现代PC机中多采用可编程中断控制器(如机中多采用可编程中断控制器(如8259A)来)来处理中断优先级问题。处理中断优先级问题。(1) 软件查寻法确定中断优先级软件查寻法确定中断优先级n采用软件查询法解决中断优先级只需要少量硬件电路。采用软件查询法解决中断优先级只需要少量硬件电路。如图如图8.11所示,系统中有多种外部设备,将这些设备所示,系统中有多种外部设备,将这些设备的中断请求信号相的中断请求信号相“或或”,从而产生一个总的中断请,从而产生一个总的中断请求信号求信号INTR发给发给CPU。49图图8.11 软件查询接口电路软件查询接口电路磁磁盘盘磁磁带带CRT显示显示键键盘盘
39、输输入入打打印印输输出出电电源源故故障障纸纸带带输输入入保保留留INTR50当当CPU响应中断请求进入中断处理程序后,必须在中响应中断请求进入中断处理程序后,必须在中断处理程序的开始部分安排一段带优先级的查询程序,断处理程序的开始部分安排一段带优先级的查询程序,查询的先后顺序就体现了不同设备的中断优先级,查询的先后顺序就体现了不同设备的中断优先级,即即先查的设备具有较高的优先级,后查的设备具有较低先查的设备具有较高的优先级,后查的设备具有较低的优先级。的优先级。 一般来说总是先查速度较快或是实时性较高的设备。一般来说总是先查速度较快或是实时性较高的设备。 软件查询的流程如图软件查询的流程如图8
40、.12所示。所示。51图图8.12 软件查询流程图软件查询流程图保护现场保护现场恢复现场恢复现场A申请服务?申请服务?B申请服务?申请服务?C申请服务?申请服务?外设外设A中断服务程序中断服务程序NNN外设外设B中断服务程序中断服务程序外设外设C中断服务程序中断服务程序YYY52(2) 菊花链优先级排队电路菊花链优先级排队电路 菊花链菊花链(Daisy Chain)优先级排队电路是一种优先级管优先级排队电路是一种优先级管理的简单硬件方案。它是在每个设备接口设置一个简理的简单硬件方案。它是在每个设备接口设置一个简单的逻辑电路,以便根据优先级顺序来传递或截留单的逻辑电路,以便根据优先级顺序来传递或
41、截留CPU发出的中断响应信号发出的中断响应信号INTA*,以实现响应中断的,以实现响应中断的优先顺序。优先顺序。(3)可编程中断控制器)可编程中断控制器n中断优先级管理的第三种方法是利用专门的可编程中中断优先级管理的第三种方法是利用专门的可编程中断控制器,如可编程中断控制器断控制器,如可编程中断控制器8259A。532) 中断嵌套中断嵌套n当当CPU正在执行优先级较低的中断服务程序时,允许正在执行优先级较低的中断服务程序时,允许响应比它优先级高的中断请求,而将正在处理的中断响应比它优先级高的中断请求,而将正在处理的中断暂时挂起,这就是暂时挂起,这就是中断嵌套中断嵌套。n此时,此时,CPU首先为
42、级别高的中断服务,待优先级高的首先为级别高的中断服务,待优先级高的中断服务结束后,再返回到刚才被中断的较低的那一中断服务结束后,再返回到刚才被中断的较低的那一级,继续为它进行中断服务。如图级,继续为它进行中断服务。如图8.13所示。所示。54图图8.13 中断嵌套示意图中断嵌套示意图STIIRETSTIIRET.55n中断嵌套的深度中断嵌套的深度(中断服务程序又被中断的层次)受(中断服务程序又被中断的层次)受到堆栈容量的限制。到堆栈容量的限制。n所以在编写中断服务程序时,必须要考虑有足够的堆所以在编写中断服务程序时,必须要考虑有足够的堆栈单元来保留多次中断的断点信息及有关寄存器的内栈单元来保留
43、多次中断的断点信息及有关寄存器的内容。容。568.4.2 80 x86实模式的中断系统实模式的中断系统1. 中断的分类中断的分类n中断分类的方式很多。根据其重要性和紧急程度可分中断分类的方式很多。根据其重要性和紧急程度可分为为可屏蔽中断可屏蔽中断和和不可屏蔽中断不可屏蔽中断,根据中断源的位置可,根据中断源的位置可分为分为内部中断内部中断和和外部中断外部中断,根据进入中断的方式可分,根据进入中断的方式可分为为自愿中断自愿中断和和强迫中断强迫中断等。等。n实模式下的实模式下的80 x86有一个简单而灵活的中断系统,每个有一个简单而灵活的中断系统,每个中断都有一个中断类型码中断都有一个中断类型码(也
44、叫中断类型号也叫中断类型号),以供,以供CPU进行识别。实模式下的进行识别。实模式下的80 x86最多能处理最多能处理256种不种不同的中断,对应的中断类型码为同的中断,对应的中断类型码为0255。57n中断可以由中断可以由CPU外的外的硬设备启动硬设备启动,也可由,也可由软件中断指软件中断指令启动令启动,在某些情况下,也可由,在某些情况下,也可由CPU自身启动自身启动。根据。根据中断源的位置,将实模式下的中断源的位置,将实模式下的80 x86系统的中断分为内系统的中断分为内部中断和外部中断两大类,如图部中断和外部中断两大类,如图8.14所示。所示。n内部中断来自内部中断来自CPU内部,包括指
45、令中断内部,包括指令中断INT n、溢出中、溢出中断(断(INTO)、除法错)、除法错(除数为除数为0)中断、单步中断、断中断、单步中断、断点中断点中断(INT 3)等几种。等几种。58图图8.14 80 x86实模式系统的中断分类实模式系统的中断分类INT n 指令指令中中 断断 逻逻 辑辑断点中断断点中断(INT 3)溢出中断溢出中断(INTO, OF=1)单步中断单步中断(TF=1)除法错除法错中断中断软件中断(内部中断)软件中断(内部中断)非屏蔽中断请求非屏蔽中断请求中中断断控控制制器器(8259A)NMIINTRIRQ0.IRQ7可可 屏屏 蔽蔽 中中 断断 硬件中断(外部中断)硬件
46、中断(外部中断)59n80 x86实模式系统中可引入的实模式系统中可引入的外部中断分为可屏蔽中断外部中断分为可屏蔽中断和不可屏蔽中断两大类和不可屏蔽中断两大类。不可屏蔽中断也叫非屏蔽中。不可屏蔽中断也叫非屏蔽中断,通过断,通过CPU的的NMI 引脚进入,它不受中断允许标志引脚进入,它不受中断允许标志IF的屏蔽,一般将比较紧急、需要系统立即响应的中的屏蔽,一般将比较紧急、需要系统立即响应的中断定义为非屏蔽中断。断定义为非屏蔽中断。n可屏蔽中断是通过可屏蔽中断是通过CPU的的INTR引脚进入的,并且只有引脚进入的,并且只有当中断允许标志当中断允许标志IF=1时,可屏蔽中断才能进入。在一时,可屏蔽中
47、断才能进入。在一个系统中,通过中断控制器个系统中,通过中断控制器(如如8259A)的配合工作,可的配合工作,可屏蔽中断可以有几个甚至几十个。屏蔽中断可以有几个甚至几十个。n外部中断也叫硬件中断,内部中断也叫软件中断。外部中断也叫硬件中断,内部中断也叫软件中断。60n需要说明的是,对于工作于保护模式下的需要说明的是,对于工作于保护模式下的80386以上微处以上微处理器,把外部中断称为理器,把外部中断称为“中断中断”,把内部中断称为,把内部中断称为“异常异常”(exception)。)。n关于保护模式下的中断和异常的相关概念和操作过程,这关于保护模式下的中断和异常的相关概念和操作过程,这里不再做专
48、门介绍。里不再做专门介绍。612. 中断向量表中断向量表n所谓所谓中断向量(中断向量(interrupt vector),实际上就是,实际上就是中断服中断服务程序的入口地址务程序的入口地址,每个中断类型对应一个中断向量。,每个中断类型对应一个中断向量。n每个中断向量占每个中断向量占4字节的存储单元。字节的存储单元。其中其中:n前两个字节单元存放中断服务程序入口地址的偏移量前两个字节单元存放中断服务程序入口地址的偏移量(IP),低字节在前,高字节在后;,低字节在前,高字节在后;n后两个字节单元存放中断服务程序入口地址的段基值后两个字节单元存放中断服务程序入口地址的段基值(CS),也是低字节在前,
49、高字节在后。,也是低字节在前,高字节在后。62n80 x86实模式系统允许引入的中断可达实模式系统允许引入的中断可达256个,因此需个,因此需占用占用1K字节的存储空间来存放这字节的存储空间来存放这256个中断服务程序个中断服务程序入口地址。入口地址。n80 x86实模式系统把中断服务程序入口地址信息设置在实模式系统把中断服务程序入口地址信息设置在存储器的最低端,即从存储器的最低端,即从00000H003FFH的的1K字节存字节存储空间中。储空间中。n这一存储空间就叫这一存储空间就叫中断向量表,中断向量表,如图如图8.15所示。所示。63图图8.15 实模式系统的中断向量表实模式系统的中断向量
50、表CSIPCSIPCSIPCSIPCSIPCSIPCSIP类型类型255(十进制)(十进制)类型类型32类型类型31(十进制)(十进制)供用户定义的中断供用户定义的中断(共(共224个)个)类型类型5类型类型4类型类型3类型类型2类型类型1类型类型0保留的中断保留的中断(共(共27个)个)专用的中断专用的中断(共(共5个)个)0000: 03FFH0000:007FH0000:007EH 0000:0014H0000:0013H0000:0010H0000:000FH0000:000CH0000:000BH0000:0008H0000:0007H0000:0004H0000:0003H0000
51、:0000H溢出中断溢出中断断点中断断点中断非屏蔽中断非屏蔽中断单步中断单步中断除数为除数为0中断中断64n在中断向量表中,各中断向量按中断类型码从在中断向量表中,各中断向量按中断类型码从0 0到到255255顺序存放。这样,知道了中断类型码,很快就可算出顺序存放。这样,知道了中断类型码,很快就可算出相应中断向量的存放位置,从而取出中断向量相应中断向量的存放位置,从而取出中断向量。n例如,中断类型码为例如,中断类型码为27H的中断所对应的中断向量应的中断所对应的中断向量应存放在从存放在从0000H:009CH开始的开始的4个连续字节单元中。个连续字节单元中。n如果相应存储单元的内容如图如果相应
52、存储单元的内容如图8.16所示,那么所示,那么27H号中号中断的中断服务程序的入口地址即为断的中断服务程序的入口地址即为8765H:4321H。65图图8.16 中断向量的存放格式中断向量的存放格式87H65H43H21H0000:009FH0000:009CH66n由于中断向量在中断向量表中是按中断类型码(也称中由于中断向量在中断向量表中是按中断类型码(也称中断向量号)顺序存放的,所以每个中断向量的地址可由断向量号)顺序存放的,所以每个中断向量的地址可由中断类型码乘以中断类型码乘以4 4计算出来。计算出来。nCPU响应中断时,只要把中断类型码响应中断时,只要把中断类型码N左移左移2位(乘以位
53、(乘以4),即可得到中断向量在中断向量表中的对应地址),即可得到中断向量在中断向量表中的对应地址4N(该中断向量所占该中断向量所占4个字节单元的第一个字节单元的地个字节单元的第一个字节单元的地址址)。n然后把由此地址开始的两个低字节单元的内容装入然后把由此地址开始的两个低字节单元的内容装入IP寄寄存器:存器: IP (4N, 4N+1) n再把两个高字节单元的内容装入再把两个高字节单元的内容装入 CS 寄存器寄存器: CS (4N+2, 4N+3)67n这就是使程序转入中断类型码为这就是使程序转入中断类型码为N的中断服务程序的的中断服务程序的控制过程,如下面例控制过程,如下面例8.1所示。所示
54、。n至于中断类型码至于中断类型码N的来源,对于不同的中断类型(内的来源,对于不同的中断类型(内部中断、外部中断),情况有所不同,详见后述。部中断、外部中断),情况有所不同,详见后述。例例8.1 若中断类型码为若中断类型码为3,则由中断类型码取得中断服务,则由中断类型码取得中断服务程序入口地址的过程如图程序入口地址的过程如图8.17所示。所示。68注意中断服务程序入口地址注意中断服务程序入口地址存放次序存放次序OOH(IPL)0AH(IPH)00H(CSL)1EH(CSH)中断服务程序中断服务程序00000H00001H0000CH(0000:000CH) 1EA00H(1E00:0A00H)F
55、FFFFH高地址高地址低地址低地址34000CH(中断向量地址)(中断向量地址)69IP低低IP高高CS低低CS高高图图8.17 根据中断类型码取得中断服务程序入口地址根据中断类型码取得中断服务程序入口地址例例8.2 中断类型码为中断类型码为20H,则中断服务程序的入口地址存,则中断服务程序的入口地址存放在中断向量表从放在中断向量表从0000:0080H开始的开始的4个字节单元中。个字节单元中。若这若这4个字节单元的内容分别为:个字节单元的内容分别为:n(0000:0080H)= 10Hn(0000:0081H)= 20Hn(0000:0082H)= 30Hn(0000:0083H)= 40H
56、试指出相应的中断服务程序的入口地址。试指出相应的中断服务程序的入口地址。解解: 中断服务程序的入口地址为中断服务程序的入口地址为 。70n例例8.3 中断类型码为中断类型码为17H,若中断服务程序的入口地,若中断服务程序的入口地址为址为2340H:7890H,试指出中断向量表中存放该中断,试指出中断向量表中存放该中断向量的向量的4个字节单元的地址及内容。个字节单元的地址及内容。解解: 由于中断类型码为由于中断类型码为17H,所以中断向量表中存放相,所以中断向量表中存放相应中断向量的应中断向量的4个字节单元的地址分别为个字节单元的地址分别为0000:005CH、0000:005DH、0000:0
57、05EH、0000:005FH,4个字节单个字节单元的内容分别为元的内容分别为 。 713. 外部中断外部中断由外部的中断请求信号启动的中断,称为外部中断由外部的中断请求信号启动的中断,称为外部中断, ,也也称硬件中断。称硬件中断。80 x86 CPU80 x86 CPU为外部中断提供两条引线,即为外部中断提供两条引线,即NMINMI和和INTRINTR,用来输入中断请求信号用来输入中断请求信号。1) 非屏蔽中断非屏蔽中断 从从NMI引脚进入的中断为非屏蔽中断,它不受中断允引脚进入的中断为非屏蔽中断,它不受中断允许标志许标志IF的影响。的影响。 非屏蔽中断的类型码为非屏蔽中断的类型码为2,因此
58、,非屏蔽中断处理子程,因此,非屏蔽中断处理子程序的入口地址存放在序的入口地址存放在08H、09H、0AH和和0BH这这4个字个字节单元中节单元中 。722) 可屏蔽中断可屏蔽中断n一般外部设备请求的中断都是从一般外部设备请求的中断都是从CPU的的INTR端引入的端引入的可屏蔽中断。可屏蔽中断。n当当CPU接收到一个可屏蔽中断请求时,如果中断允许接收到一个可屏蔽中断请求时,如果中断允许标志标志IF为为1,那么,那么CPU就会在执行完当前指令后响应这就会在执行完当前指令后响应这一中断请求。一中断请求。n至于至于IF的设置和清除,则可以通过指令或调试工具来的设置和清除,则可以通过指令或调试工具来实现
59、。实现。nCPU响应外部可屏蔽中断时,往响应外部可屏蔽中断时,往INTA引脚上先后发两引脚上先后发两个负脉冲。外设接口收到第二个负脉冲以后,立即往个负脉冲。外设接口收到第二个负脉冲以后,立即往数据总线上送出中断类型码,以供数据总线上送出中断类型码,以供CPU读取。读取。734. 内部中断内部中断内部中断也称软件中断。内部中断也称软件中断。它是由于它是由于CPU执行了执行了INT n(含含INT 3)、INTO指令,或指令,或者由于除法出错以及进行单步操作所引起的中断,主者由于除法出错以及进行单步操作所引起的中断,主要包括要包括INT n指令中断、断点中断、溢出中断、除法错指令中断、断点中断、溢
60、出中断、除法错中断以及单步中断。中断以及单步中断。74(1) INT n 指令中断。指令中断。 n80 x86系统提供了直接调用中断处理子程序的手段,这系统提供了直接调用中断处理子程序的手段,这就是中断指令就是中断指令INT n。n指令中的中断类型码指令中的中断类型码n告诉告诉CPU调用哪个中断处理子程调用哪个中断处理子程序。序。(2) 除法错中断(类型除法错中断(类型0)n在执行除法指令在执行除法指令DIV 或或IDIV 后,若所得的商超出了目后,若所得的商超出了目标寄存器所能表示的范围,比如用数值标寄存器所能表示的范围,比如用数值0作除数,则作除数,则CPU立即产生一个立即产生一个0型中断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理不良事件报告的心理学分析
- 2025年北京经济技术开发区教育领域面向应届毕业生公开招聘事业单位工作人员29人备考题库带答案详解
- 2025年广东外语外贸大学附属科学城实验学校临聘教师招聘备考题库带答案详解
- 生产现场质量责任制度
- 室外施工安全责任制度范本
- 精神科责任制护理制度
- 司法监督监护责任制度
- 生产矿长岗位责任制度
- hse经理安全生产责任制度
- 检察院岗位责任制度范本
- 部编人教版(2021年春修订版)6年级下册语文全册课件
- 移动应用隐私保护承诺书
- 《土地潜力评价》课件
- 模块三 WPS Office电子表格
- 消防设施安全检查表
- 数字化系列研究之财务数智化篇:大型集团企业财务管理的数智化
- 加油站防恐安全培训
- 酒店线上推广方案
- Micro Shield程序初级应用指南
- 劳动与社会保障法详解
- GB/T 31734-2015竹醋液
评论
0/150
提交评论