630 likes | 751 Views
第五章 中断 5.1 输入输出概述 输入 / 输出设备是计算机系统的重要组成部分,计算机通过它们与外设进行数据交换。微机系统中,各种输入 / 输出设备通过接口与系统相连,并在接口的支持下实现各种方式的数据传送。微型计算机系统中常用的外围设备有:键盘、显示器、磁带机、硬盘驱动器、软盘驱动器、模数转换器、数模转换器、调制解调器以及一些专用设备等。把外围设备同微型计算机连接起来的电路称为外设接口电路,简称外设接口。. 5.1.1 I/O 端口及其寻址方式 CPU 对外设的访问实质上是对外设接口电路 中相应端口的访问 。 I/O 端口的寻址方式有两种,
E N D
第五章 中断 • 5.1 输入输出概述 • 输入/输出设备是计算机系统的重要组成部分,计算机通过它们与外设进行数据交换。微机系统中,各种输入/输出设备通过接口与系统相连,并在接口的支持下实现各种方式的数据传送。微型计算机系统中常用的外围设备有:键盘、显示器、磁带机、硬盘驱动器、软盘驱动器、模数转换器、数模转换器、调制解调器以及一些专用设备等。把外围设备同微型计算机连接起来的电路称为外设接口电路,简称外设接口。 德 能 日 新
5.1.1 I/O端口及其寻址方式 • CPU对外设的访问实质上是对外设接口电路 • 中相应端口的访问。I/O端口的寻址方式有两种, • 即I/O指令寻址和存储器映像I/O寻址。 • 1.I/O指令寻址 • I/O指令寻址方式又称“专用的I/O端口寻址” • 方式。其硬件结构及地址空间分配如图5-1所示。 • 这种寻址方式的特点是:存储器和I/O端口在两个 • 独立的地址空间中,I/O端口的读、写命令由IOR • 和IOW来控制,访问I/O端口用专用的IN指令和 • OUT指令。 德 能 日 新
I/O指令寻址方式的优点是:I/O端口的地址码一般比同系统中存储单元的地址码短,译码电路较简单;存储器同I/O端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制电路结构相互独立,可以分别设计。它的缺点是:需要专门的I/O指令,这些I/O指令I/O指令寻址方式的优点是:I/O端口的地址码一般比同系统中存储单元的地址码短,译码电路较简单;存储器同I/O端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制电路结构相互独立,可以分别设计。它的缺点是:需要专门的I/O指令,这些I/O指令 • 一般没有存储器访问指令丰富,所以程序设计的灵活性较差。 德 能 日 新
图5-1 I/O指令寻址 德 能 日 新
2、存储器映像的I/O端口寻址 • 存储器映像的I/O端口寻址的硬件结构及地址空间分配如图5-2所示。这种寻址方式的特点是:存储器和I/O端口共用一个地址空间;I/O端口读、写命令通过MEMR和MEMW来实现,所有访问存储器的指令都可用于I/O端口,包括存储器的算术逻辑运算指令。 德 能 日 新
存储器映像的I/O端口寻址方式的优点是:任何对存储器数据进行操作的指令都可用于I/O端口的数据操作,不需要专门的I/O指令,系统编程比较灵活;I/O端口的地址空间是一部分内存空间,使可大可小,外设的数目几乎不受限制。它的缺点是:I/O端口占用了一部分内存空间,使内存空间减少;访问I/O端口同访问内存一样,由于访问内存的地址长,指令的机器码也长,执行时间显然增加。简单外设接口框图如图5-2所示。存储器映像的I/O端口寻址方式的优点是:任何对存储器数据进行操作的指令都可用于I/O端口的数据操作,不需要专门的I/O指令,系统编程比较灵活;I/O端口的地址空间是一部分内存空间,使可大可小,外设的数目几乎不受限制。它的缺点是:I/O端口占用了一部分内存空间,使内存空间减少;访问I/O端口同访问内存一样,由于访问内存的地址长,指令的机器码也长,执行时间显然增加。简单外设接口框图如图5-2所示。 德 能 日 新
图5-2存储器映像的I/O端口寻址 德 能 日 新
5.1.2 CPU与外设间的数据传送方式 • 数据传送过程中的关键问题:数据传送的 • 控制方式。 • 控制方式有:程序控制方式、DMA(直接存储 • 器存取)方式和I/O处理机方式。 • 1、程序控制的输入/输出方式 • 特点:是以CPU为中心,由CPU控制,通过预 • 先编制好的输入或输出程序实现数据的传送。 • 这种传送方式的数据传送速度较低,传送时要 • 经过CPU内部的寄存器,同时数据的输入/输出 • 的响应也较慢。 德 能 日 新
(1)无条件传送方式 • 前提条件:假设输入接口数据已经准备好, • 或者输出设备是空闲的,此时CPU无需查询 • 状态,可直接用IN和OUT指令完成与接口之 • 间的数据传送。 • 采用无条件传送方式的接口电路如图5-3 • 所示。 • 优点:无条件传送是最简便的传送方式,它 • 所需的硬件和软件都较少。 德 能 日 新
图5-3 无条件传送方式接口电路 德 能 日 新
(2)查询传送方式 • 引入:当CPU与外设工作不同步时,很难确保CPU在执行输入操作时,外设一定是“准备好”的;而在执行输出操作时,外设一定是“空闲”的。为保证数据传送的正确进行,可采用查询传送方式。 • 前提:输入数据之前,CPU要查询输入数据是否准备好;输出数据之前,CPU要查询输出设备是否空闲。只有确认外设已经具备了传送条件后,才能用IN和OUT指令完成数据传送。 • 与无条件传送方式相比,采用查询方式的接口电路要复杂些,因为它要提供CPU查询的电路。 德 能 日 新
① 查询方式输入。图5-4所示为查询式输入的接口电路,该电路有两个端口寄存器,即状态口寄存器和数据口寄存器。 • 图5-5所示为查询式输入数据的程序流程图。 • 查询输入的程序段如下: • SCAN:IN AL,状态口地址 • TEST AL,80H • JZ SCAN • IN AL,数据口地址 德 能 日 新
图5-4 查询式输入的接口电路 德 能 日 新
图5-5为查询式输入数据的程序流程图 德 能 日 新
② 查询式输出。图5-6所示为查询式输出接口 • 电路,它的状态口和数据口合用一地址。 • 查询输出的程序段如下:(如图:5-7所 • 示:) • SCAN:IN AL,状态口地址 ;取状态信息 • TEST AL,01H ;测忙闲标志 • JNZ SCAN ;忙,转移 • MOV AL,某数 • OUT 数据口地址,AL ;空闲,输出数据 德 能 日 新
图5-6为查询式输出接口电路 德 能 日 新
图5-7为查询式输出数据的程序流程图 德 能 日 新
2、中断控制的输入/输出方式 • 特点:也称中断传送方式,即当外设的输入数据 • 准备好或接收数据的锁存器为空时,主动向 • CPU发出中断请求,使CPU中断原来执行的程 • 序(主程序),转去执行为外设服务的输入或输 • 出操作,服务完毕,CPU再继续执行原来的程 • 序。 • 优点:中断传送方式中,CPU和外设(甚至多个外 • 设)可同时工作,从而大大提高了CPU的效率和控制 • 程序执行的实时性。 • 中断传送时的接口电路如图5-8所示。它有两个端 • 口,即数据口和中断控制口,它们合用一个地址。 德 能 日 新
图5-8 中断传送时的接口电路 德 能 日 新
3、直接存储器存取传送方式 • 引入:在中断传送方式中,是通过CPU执行程序 • 来实现数据传送的,故实际传送一个字节仍需要 • 几十到几百微秒。这对于高速I/O设备以及成组交 • 换数据的情况例如磁盘与内存之间的信息交), • 速度就显得太慢了。为此,设想采用硬件实现在 • 外设与内存之间直接的数据传送,而不通过 • CPU,这样,数据传送速度的上限就取决于存储 • 器的工作速度。这种方式称为直接存储器存取 • (Direct Memory Access,简称DMA)。 德 能 日 新
5.2 中断的基本概念 • 当CPU与外设交换信息时,若用查询的方式,则CPU就要浪费很多时间去等待外设。这样就存在一个快速的CPU与慢速的外设之间的矛盾,这也是计算机在发展过程中遇到的严重问题之。为解决这个问题,一方面要提高外设的工作速度;另一方面发展了中断的概念。 德 能 日 新
实现了中断的好处: • (1)同步操作 • (2)实现实时处理 • (3)故障处理 • 5.2.1 中断过程 • 中断技术是计算机的一种重要技术,中断技术源泉于输入、输出,它是计算机内部管理的一种重要手段。它的作用之一是使异步于主机的外部设备与主机并行工作,从而提高整个系统的工作效率。 德 能 日 新
当某个事件发生时,为了对该事件进行处理,CPU中止现行程序的执行,转去执行处理该事件的程序(俗称中断处理程序或中断服务程序),待中断服务程序执行完毕,再返回断点继续执行原来的程序,这个过程称为中断。其过程如图5-9所示。当某个事件发生时,为了对该事件进行处理,CPU中止现行程序的执行,转去执行处理该事件的程序(俗称中断处理程序或中断服务程序),待中断服务程序执行完毕,再返回断点继续执行原来的程序,这个过程称为中断。其过程如图5-9所示。 德 能 日 新
图5-9中断执行过程 德 能 日 新
当CPU转入中断处理程序时,首先应保留中断时的断点地址K+1和CPU寄存器状态(即保护现场)。一旦数据交换完毕,必须恢复现场,再返回到断点地址K+1,继续执行原程序。中断处理程序的大致流程如图5-10所示。当CPU转入中断处理程序时,首先应保留中断时的断点地址K+1和CPU寄存器状态(即保护现场)。一旦数据交换完毕,必须恢复现场,再返回到断点地址K+1,继续执行原程序。中断处理程序的大致流程如图5-10所示。 德 能 日 新
图5-10 中断处理流程 德 能 日 新
5.2.2 中断识别及优先级管理 • 当CPU响应外部设备的中断请求后,必须识别出是哪一台外设请求中断,然后再转入对应于该设备的中断服务程序。CPU识别请求中断设备的过程称为中断源识别。利用程序来查询设备的请求中断状态,从而确认出应该服务的设备号,并转入相应设备号的中断服务程序,这种方法称为软件查询技术识别中断源。实际的系统中,是有多个中断源的,但是,由于CPU引脚的限制,往往就只有一条中断请求线。于是,当有多个中断源同时请求时,CPU就要识别出是哪些中断源有中断请求,辨别和比较它们的优先权(Priority),先响应优先权级别最高的中断申请。另外,当CPU正在处理中断时,也要能响应更高级的中断申请,而屏蔽掉同级或较低级的中断申请。 德 能 日 新
5.3 中断系统 • 1.中断系统的功能 • 为了满足上述各种情况下的中断要求, • 中断系统应具有如下功能: • (1)实现中断及返回 • (2)能实现优先权排队 • (3)高级中断源能中断低级的中断处理 德 能 日 新
2.CPU响应中断的条件 • (1)设置中断请求触发器 • (2)设置中断屏蔽触发器 • (3)中断是开放的 • (4)必须在现行指令结束后 • 如图5-11所示。 德 能 日 新
3.CPU对中断的响应 • 当满足上述条件后,CPU就响应中断,转 • 入中断周期,CPU做以下几种事: • (1)关中断 • (2)保留断点 • (3)保护现场 • (4)给出中断入口,转入相应的中断服务程序 • (5)恢复现场 • (6)开中断与返回 • 上述过程可用图5-12的流程图表示 德 能 日 新
执行一条指令 机器周期的最后一个T状态? 取下一条指令 指令结束? 有中断请求 指令结束 取下一条指令 禁止中断 有INTR? 保留现场 开中断 处理中断 置INTR F/F 撤销中断请求 处理中断 恢复现场 开中断 返回 图5-12 中断响应、服务及返回流程图 图5-11 中断时序流程图 德 能 日 新
5.3.1 中断源的分类 • 引起中断的原因,或能发出中断申请的来源,称为中断源。通常中断源有以下几种: • (1)一般的输入、输出设备 • (2)数据通道中断源 • (3)实时时钟 • (4)故障源 • (5)为调试程序而设置的中断源 德 能 日 新
5.3.2 中断向量及中断向量表 • 8088有一个简便的而又多功能的中断系统。上述的任何一种中断,CPU响应以后,都是要保护现场(主要是标志位)和保护断点(现行的码段寄存器CS和指令指针IP),然后转入各自的中断服务程序。在8088中各种中断如何转入各自的中断服务程序呢? 德 能 日 新
8088在内存的前1K字节(地址00000H~003FFH)建立了一个中断向量表,可以容纳256个中断向量(或256个中断类型),每个中断向量占用4个字节。在这四个字节中,包含着这个中断向量(或这种中断类型)的服务程序的入口地址——前两个字节为服务程序的IP,后两个字节为服务程序的CS。如图5-13所示。 德 能 日 新
图5-13 中断向量表 德 能 日 新
其中前5个中断向量(或中断类型)由Intel专用,系统又保留了若干个中断向量,余下的就可以由用户用,可作为外部中断源的向量。其中前5个中断向量(或中断类型)由Intel专用,系统又保留了若干个中断向量,余下的就可以由用户用,可作为外部中断源的向量。 • 外部中断源,只要在第二个中断响应周期,向数据总线送出一个字节的中断类型号,即可转至相应的中断向量。 德 能 日 新
5.3.3 中断优先权 • 1.用软件确定中断优先权 • 要判别和确定各个中断源的中断优先权可以用软件和硬件两种方法。 • 软件采用查询技术。当CPU响应中断后,就用软件查询以确定是哪些外设申请中为,并判断它们的优先权。 德 能 日 新
把8个外设的中断请求触发器组合起来,作为一个端口,并赋以设备号,如图5-14所示。把各个外设的中断请求信号相“或”后,作为INTR信号,故任一外设有中断请求,都可向CPU送出INTR信号。当CPU响应中断后,把中断寄存器的状态,作为一个外设读入CPU,逐位检测它们的状态,若有中断请求就转到相应的服务程序的入口,其流程如图5-15所示。把8个外设的中断请求触发器组合起来,作为一个端口,并赋以设备号,如图5-14所示。把各个外设的中断请求信号相“或”后,作为INTR信号,故任一外设有中断请求,都可向CPU送出INTR信号。当CPU响应中断后,把中断寄存器的状态,作为一个外设读入CPU,逐位检测它们的状态,若有中断请求就转到相应的服务程序的入口,其流程如图5-15所示。 德 能 日 新
图5-14 用软件查询方式的接口电路 德 能 日 新
图5-15 软件查询程序流程图 德 能 日 新
询问程序有两种安排方式: • (1)屏蔽法 • IN AL,[20H] ;输入中断请求触发器的状态 • TEST AL,80H ;检查最高位(电源故障)是否有请 • ;求 • JNE PWF ;有,则转至电源故障处理程序 • TEST AL 40H ;否,检查磁盘是否有请求 • JNE DISS ;有,转至磁盘服务程序 • TEST AL 20H ;否,检查磁带是否有请求 • JNE MT ;有;转至磁带服务程序 • ┇ 德 能 日 新
(2)移位法 • XOR AL,AL • IN AL,[20H] • RCL AL,1 • JC PWF • RCL AL,1 • JC DISS • ┇ 德 能 日 新
查询方法的优点是: • 1>询问的次序,即是优先权的次序。显然, • 最先询问的,优先权的组别最高。 • 2>省硬件。不需要有判断与确定优先权的硬 • 件排队电路。 • 但随之而来的缺点是:由询问转至相应 • 的服务程序的入口的时间长,尤其是在中断 • 源较多的情况下。 德 能 日 新
2.硬件优先权排队电路 • (1)中断优先权编码电路 • 用硬件编码器和比较器的优先权排队电路,如图5-16所示。 • 若有8个中断源,当任一个有中断请求时,通过“或”门,即可有一个中断请求信号产生,但它能否送至CPU的中断请求线,还要受比较器的控制(若优先权失效信号为低电平,则与门2关闭)。 • 8条中断输入线的任一条,经过编码器可以产生三位二进制优先权编码A2A1A0,优先权最低的线的编码为000。而且若有多个输入线同时输入,则编码器只输出优先权最高的编码。 德 能 日 新
正在进行中断处理的外设的优先权编码,通过CPU的数据总线,送至优先权寄存器,然后输出编码B2B1B0至比较器,以上过程是由软件实现的。正在进行中断处理的外设的优先权编码,通过CPU的数据总线,送至优先权寄存器,然后输出编码B2B1B0至比较器,以上过程是由软件实现的。 • 比较器比较编码A2A1A0与B2B1B0的大小,若A<B,则“A>B”端输出低电平,封锁与门1,就不向CPU发出新的中断申请(即当CPU正在处理中断时,当有同组或低组的中断源申请中断时,优先权排队线路就屏蔽它们的请求);只有当A>B时,比较器输出端才为高电平,打开与门1,将中断请求信号送至CPU的INTR输入端,CPU就中断正在进行的中断处理程序,转去响应更高级的中断。 德 能 日 新
若CPU不在进行中断处理时(即在执行主程序),则优先权失效信号为高电平,当有任一中断源请求中断时,都能通过与门2,发出INTR信号。这样的优先权电路,如何能做到转入优先权最高的外设的服务程序的入口呢?当外设的个数<8时,则它们公用一个产生中断矢量的电路,它有三位由比较器的编码A2A1A0供给,就能做到不同的编码转入不同的入口地址。若CPU不在进行中断处理时(即在执行主程序),则优先权失效信号为高电平,当有任一中断源请求中断时,都能通过与门2,发出INTR信号。这样的优先权电路,如何能做到转入优先权最高的外设的服务程序的入口呢?当外设的个数<8时,则它们公用一个产生中断矢量的电路,它有三位由比较器的编码A2A1A0供给,就能做到不同的编码转入不同的入口地址。 德 能 日 新
图5-16 编码器和比较器的优先权排队电路 德 能 日 新
(2)雏菊花环式(链式)优先权排队电路 • 另一种常用的硬件排队电路,如图5-17所示。 图5-17链式优先权排队电路 德 能 日 新
5.3.4 软件中断(内部中断) • 8088有两类中断:软件中断——由指令 • 的执行所引起的;硬件中断——由外部(主 • 要是外设)的请求所引起的。 • 8088可以有几种产生内部中断的情况: • (1)DIV或IDIV指令 • (2)INT指令 • (3)INTO指令 • (4)单步执行 德 能 日 新
5.3.5 硬件中断(外部中断) • 8088有两条外部中断请求线:NMI-Nor • Maskable Interrupt(非屏蔽中断)和INTR • (可屏蔽中断)。 • (1)可屏蔽中断 • (2)非屏蔽中断 德 能 日 新