1 / 63

第五章 中断 5.1 输入输出概述

第五章 中断 5.1 输入输出概述 输入 / 输出设备是计算机系统的重要组成部分,计算机通过它们与外设进行数据交换。微机系统中,各种输入 / 输出设备通过接口与系统相连,并在接口的支持下实现各种方式的数据传送。微型计算机系统中常用的外围设备有:键盘、显示器、磁带机、硬盘驱动器、软盘驱动器、模数转换器、数模转换器、调制解调器以及一些专用设备等。把外围设备同微型计算机连接起来的电路称为外设接口电路,简称外设接口。. 5.1.1 I/O 端口及其寻址方式 CPU 对外设的访问实质上是对外设接口电路 中相应端口的访问 。 I/O 端口的寻址方式有两种,

lamar
Download Presentation

第五章 中断 5.1 输入输出概述

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 中断 • 5.1 输入输出概述 • 输入/输出设备是计算机系统的重要组成部分,计算机通过它们与外设进行数据交换。微机系统中,各种输入/输出设备通过接口与系统相连,并在接口的支持下实现各种方式的数据传送。微型计算机系统中常用的外围设备有:键盘、显示器、磁带机、硬盘驱动器、软盘驱动器、模数转换器、数模转换器、调制解调器以及一些专用设备等。把外围设备同微型计算机连接起来的电路称为外设接口电路,简称外设接口。 德 能 日 新

  2. 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指令。 德 能 日 新

  3. I/O指令寻址方式的优点是:I/O端口的地址码一般比同系统中存储单元的地址码短,译码电路较简单;存储器同I/O端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制电路结构相互独立,可以分别设计。它的缺点是:需要专门的I/O指令,这些I/O指令I/O指令寻址方式的优点是:I/O端口的地址码一般比同系统中存储单元的地址码短,译码电路较简单;存储器同I/O端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制电路结构相互独立,可以分别设计。它的缺点是:需要专门的I/O指令,这些I/O指令 • 一般没有存储器访问指令丰富,所以程序设计的灵活性较差。 德 能 日 新

  4. 图5-1 I/O指令寻址 德 能 日 新

  5. 2、存储器映像的I/O端口寻址 • 存储器映像的I/O端口寻址的硬件结构及地址空间分配如图5-2所示。这种寻址方式的特点是:存储器和I/O端口共用一个地址空间;I/O端口读、写命令通过MEMR和MEMW来实现,所有访问存储器的指令都可用于I/O端口,包括存储器的算术逻辑运算指令。 德 能 日 新

  6. 存储器映像的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所示。 德 能 日 新

  7. 图5-2存储器映像的I/O端口寻址 德 能 日 新

  8. 5.1.2 CPU与外设间的数据传送方式 • 数据传送过程中的关键问题:数据传送的 • 控制方式。 • 控制方式有:程序控制方式、DMA(直接存储 • 器存取)方式和I/O处理机方式。 • 1、程序控制的输入/输出方式 • 特点:是以CPU为中心,由CPU控制,通过预 • 先编制好的输入或输出程序实现数据的传送。 • 这种传送方式的数据传送速度较低,传送时要 • 经过CPU内部的寄存器,同时数据的输入/输出 • 的响应也较慢。 德 能 日 新

  9. (1)无条件传送方式 • 前提条件:假设输入接口数据已经准备好, • 或者输出设备是空闲的,此时CPU无需查询 • 状态,可直接用IN和OUT指令完成与接口之 • 间的数据传送。 • 采用无条件传送方式的接口电路如图5-3 • 所示。 • 优点:无条件传送是最简便的传送方式,它 • 所需的硬件和软件都较少。 德 能 日 新

  10. 图5-3 无条件传送方式接口电路 德 能 日 新

  11. (2)查询传送方式 • 引入:当CPU与外设工作不同步时,很难确保CPU在执行输入操作时,外设一定是“准备好”的;而在执行输出操作时,外设一定是“空闲”的。为保证数据传送的正确进行,可采用查询传送方式。 • 前提:输入数据之前,CPU要查询输入数据是否准备好;输出数据之前,CPU要查询输出设备是否空闲。只有确认外设已经具备了传送条件后,才能用IN和OUT指令完成数据传送。 • 与无条件传送方式相比,采用查询方式的接口电路要复杂些,因为它要提供CPU查询的电路。 德 能 日 新

  12. 查询方式输入。图5-4所示为查询式输入的接口电路,该电路有两个端口寄存器,即状态口寄存器和数据口寄存器。 • 图5-5所示为查询式输入数据的程序流程图。 • 查询输入的程序段如下: • SCAN:IN AL,状态口地址 • TEST AL,80H • JZ SCAN • IN AL,数据口地址 德 能 日 新

  13. 图5-4 查询式输入的接口电路 德 能 日 新

  14. 图5-5为查询式输入数据的程序流程图 德 能 日 新

  15. ② 查询式输出。图5-6所示为查询式输出接口 • 电路,它的状态口和数据口合用一地址。 • 查询输出的程序段如下:(如图:5-7所 • 示:) • SCAN:IN AL,状态口地址 ;取状态信息 • TEST AL,01H ;测忙闲标志 • JNZ SCAN ;忙,转移 • MOV AL,某数 • OUT 数据口地址,AL ;空闲,输出数据 德 能 日 新

  16. 图5-6为查询式输出接口电路 德 能 日 新

  17. 图5-7为查询式输出数据的程序流程图 德 能 日 新

  18. 2、中断控制的输入/输出方式 • 特点:也称中断传送方式,即当外设的输入数据 • 准备好或接收数据的锁存器为空时,主动向 • CPU发出中断请求,使CPU中断原来执行的程 • 序(主程序),转去执行为外设服务的输入或输 • 出操作,服务完毕,CPU再继续执行原来的程 • 序。 • 优点:中断传送方式中,CPU和外设(甚至多个外 • 设)可同时工作,从而大大提高了CPU的效率和控制 • 程序执行的实时性。 • 中断传送时的接口电路如图5-8所示。它有两个端 • 口,即数据口和中断控制口,它们合用一个地址。 德 能 日 新

  19. 图5-8 中断传送时的接口电路 德 能 日 新

  20. 3、直接存储器存取传送方式 • 引入:在中断传送方式中,是通过CPU执行程序 • 来实现数据传送的,故实际传送一个字节仍需要 • 几十到几百微秒。这对于高速I/O设备以及成组交 • 换数据的情况例如磁盘与内存之间的信息交), • 速度就显得太慢了。为此,设想采用硬件实现在 • 外设与内存之间直接的数据传送,而不通过 • CPU,这样,数据传送速度的上限就取决于存储 • 器的工作速度。这种方式称为直接存储器存取 • (Direct Memory Access,简称DMA)。 德 能 日 新

  21. 5.2 中断的基本概念 • 当CPU与外设交换信息时,若用查询的方式,则CPU就要浪费很多时间去等待外设。这样就存在一个快速的CPU与慢速的外设之间的矛盾,这也是计算机在发展过程中遇到的严重问题之。为解决这个问题,一方面要提高外设的工作速度;另一方面发展了中断的概念。 德 能 日 新

  22. 实现了中断的好处: • (1)同步操作 • (2)实现实时处理 • (3)故障处理 • 5.2.1 中断过程 • 中断技术是计算机的一种重要技术,中断技术源泉于输入、输出,它是计算机内部管理的一种重要手段。它的作用之一是使异步于主机的外部设备与主机并行工作,从而提高整个系统的工作效率。 德 能 日 新

  23. 当某个事件发生时,为了对该事件进行处理,CPU中止现行程序的执行,转去执行处理该事件的程序(俗称中断处理程序或中断服务程序),待中断服务程序执行完毕,再返回断点继续执行原来的程序,这个过程称为中断。其过程如图5-9所示。当某个事件发生时,为了对该事件进行处理,CPU中止现行程序的执行,转去执行处理该事件的程序(俗称中断处理程序或中断服务程序),待中断服务程序执行完毕,再返回断点继续执行原来的程序,这个过程称为中断。其过程如图5-9所示。 德 能 日 新

  24. 图5-9中断执行过程 德 能 日 新

  25. 当CPU转入中断处理程序时,首先应保留中断时的断点地址K+1和CPU寄存器状态(即保护现场)。一旦数据交换完毕,必须恢复现场,再返回到断点地址K+1,继续执行原程序。中断处理程序的大致流程如图5-10所示。当CPU转入中断处理程序时,首先应保留中断时的断点地址K+1和CPU寄存器状态(即保护现场)。一旦数据交换完毕,必须恢复现场,再返回到断点地址K+1,继续执行原程序。中断处理程序的大致流程如图5-10所示。 德 能 日 新

  26. 图5-10 中断处理流程 德 能 日 新

  27. 5.2.2 中断识别及优先级管理 • 当CPU响应外部设备的中断请求后,必须识别出是哪一台外设请求中断,然后再转入对应于该设备的中断服务程序。CPU识别请求中断设备的过程称为中断源识别。利用程序来查询设备的请求中断状态,从而确认出应该服务的设备号,并转入相应设备号的中断服务程序,这种方法称为软件查询技术识别中断源。实际的系统中,是有多个中断源的,但是,由于CPU引脚的限制,往往就只有一条中断请求线。于是,当有多个中断源同时请求时,CPU就要识别出是哪些中断源有中断请求,辨别和比较它们的优先权(Priority),先响应优先权级别最高的中断申请。另外,当CPU正在处理中断时,也要能响应更高级的中断申请,而屏蔽掉同级或较低级的中断申请。 德 能 日 新

  28. 5.3 中断系统 • 1.中断系统的功能 • 为了满足上述各种情况下的中断要求, • 中断系统应具有如下功能: • (1)实现中断及返回 • (2)能实现优先权排队 • (3)高级中断源能中断低级的中断处理 德 能 日 新

  29. 2.CPU响应中断的条件 • (1)设置中断请求触发器 • (2)设置中断屏蔽触发器 • (3)中断是开放的 • (4)必须在现行指令结束后 • 如图5-11所示。 德 能 日 新

  30. 3.CPU对中断的响应 • 当满足上述条件后,CPU就响应中断,转 • 入中断周期,CPU做以下几种事: • (1)关中断 • (2)保留断点 • (3)保护现场 • (4)给出中断入口,转入相应的中断服务程序 • (5)恢复现场 • (6)开中断与返回 • 上述过程可用图5-12的流程图表示 德 能 日 新

  31. 执行一条指令 机器周期的最后一个T状态? 取下一条指令 指令结束? 有中断请求 指令结束 取下一条指令 禁止中断 有INTR? 保留现场 开中断 处理中断 置INTR F/F 撤销中断请求 处理中断 恢复现场 开中断 返回 图5-12 中断响应、服务及返回流程图 图5-11 中断时序流程图 德 能 日 新

  32. 5.3.1 中断源的分类 • 引起中断的原因,或能发出中断申请的来源,称为中断源。通常中断源有以下几种: • (1)一般的输入、输出设备 • (2)数据通道中断源 • (3)实时时钟 • (4)故障源 • (5)为调试程序而设置的中断源 德 能 日 新

  33. 5.3.2 中断向量及中断向量表 • 8088有一个简便的而又多功能的中断系统。上述的任何一种中断,CPU响应以后,都是要保护现场(主要是标志位)和保护断点(现行的码段寄存器CS和指令指针IP),然后转入各自的中断服务程序。在8088中各种中断如何转入各自的中断服务程序呢? 德 能 日 新

  34. 8088在内存的前1K字节(地址00000H~003FFH)建立了一个中断向量表,可以容纳256个中断向量(或256个中断类型),每个中断向量占用4个字节。在这四个字节中,包含着这个中断向量(或这种中断类型)的服务程序的入口地址——前两个字节为服务程序的IP,后两个字节为服务程序的CS。如图5-13所示。 德 能 日 新

  35. 图5-13 中断向量表 德 能 日 新

  36. 其中前5个中断向量(或中断类型)由Intel专用,系统又保留了若干个中断向量,余下的就可以由用户用,可作为外部中断源的向量。其中前5个中断向量(或中断类型)由Intel专用,系统又保留了若干个中断向量,余下的就可以由用户用,可作为外部中断源的向量。 • 外部中断源,只要在第二个中断响应周期,向数据总线送出一个字节的中断类型号,即可转至相应的中断向量。 德 能 日 新

  37. 5.3.3 中断优先权 • 1.用软件确定中断优先权 • 要判别和确定各个中断源的中断优先权可以用软件和硬件两种方法。 • 软件采用查询技术。当CPU响应中断后,就用软件查询以确定是哪些外设申请中为,并判断它们的优先权。 德 能 日 新

  38. 把8个外设的中断请求触发器组合起来,作为一个端口,并赋以设备号,如图5-14所示。把各个外设的中断请求信号相“或”后,作为INTR信号,故任一外设有中断请求,都可向CPU送出INTR信号。当CPU响应中断后,把中断寄存器的状态,作为一个外设读入CPU,逐位检测它们的状态,若有中断请求就转到相应的服务程序的入口,其流程如图5-15所示。把8个外设的中断请求触发器组合起来,作为一个端口,并赋以设备号,如图5-14所示。把各个外设的中断请求信号相“或”后,作为INTR信号,故任一外设有中断请求,都可向CPU送出INTR信号。当CPU响应中断后,把中断寄存器的状态,作为一个外设读入CPU,逐位检测它们的状态,若有中断请求就转到相应的服务程序的入口,其流程如图5-15所示。 德 能 日 新

  39. 图5-14 用软件查询方式的接口电路 德 能 日 新

  40. 图5-15 软件查询程序流程图 德 能 日 新

  41. 询问程序有两种安排方式: • (1)屏蔽法 • IN AL,[20H] ;输入中断请求触发器的状态 • TEST AL,80H ;检查最高位(电源故障)是否有请 • ;求 • JNE PWF ;有,则转至电源故障处理程序 • TEST AL 40H ;否,检查磁盘是否有请求 • JNE DISS ;有,转至磁盘服务程序 • TEST AL 20H ;否,检查磁带是否有请求 • JNE MT ;有;转至磁带服务程序 • ┇ 德 能 日 新

  42. (2)移位法 • XOR AL,AL • IN AL,[20H] • RCL AL,1 • JC PWF • RCL AL,1 • JC DISS • ┇ 德 能 日 新

  43. 查询方法的优点是: • 1>询问的次序,即是优先权的次序。显然, • 最先询问的,优先权的组别最高。 • 2>省硬件。不需要有判断与确定优先权的硬 • 件排队电路。 • 但随之而来的缺点是:由询问转至相应 • 的服务程序的入口的时间长,尤其是在中断 • 源较多的情况下。 德 能 日 新

  44. 2.硬件优先权排队电路 • (1)中断优先权编码电路 • 用硬件编码器和比较器的优先权排队电路,如图5-16所示。 • 若有8个中断源,当任一个有中断请求时,通过“或”门,即可有一个中断请求信号产生,但它能否送至CPU的中断请求线,还要受比较器的控制(若优先权失效信号为低电平,则与门2关闭)。 • 8条中断输入线的任一条,经过编码器可以产生三位二进制优先权编码A2A1A0,优先权最低的线的编码为000。而且若有多个输入线同时输入,则编码器只输出优先权最高的编码。 德 能 日 新

  45. 正在进行中断处理的外设的优先权编码,通过CPU的数据总线,送至优先权寄存器,然后输出编码B2B1B0至比较器,以上过程是由软件实现的。正在进行中断处理的外设的优先权编码,通过CPU的数据总线,送至优先权寄存器,然后输出编码B2B1B0至比较器,以上过程是由软件实现的。 • 比较器比较编码A2A1A0与B2B1B0的大小,若A<B,则“A>B”端输出低电平,封锁与门1,就不向CPU发出新的中断申请(即当CPU正在处理中断时,当有同组或低组的中断源申请中断时,优先权排队线路就屏蔽它们的请求);只有当A>B时,比较器输出端才为高电平,打开与门1,将中断请求信号送至CPU的INTR输入端,CPU就中断正在进行的中断处理程序,转去响应更高级的中断。 德 能 日 新

  46. 若CPU不在进行中断处理时(即在执行主程序),则优先权失效信号为高电平,当有任一中断源请求中断时,都能通过与门2,发出INTR信号。这样的优先权电路,如何能做到转入优先权最高的外设的服务程序的入口呢?当外设的个数<8时,则它们公用一个产生中断矢量的电路,它有三位由比较器的编码A2A1A0供给,就能做到不同的编码转入不同的入口地址。若CPU不在进行中断处理时(即在执行主程序),则优先权失效信号为高电平,当有任一中断源请求中断时,都能通过与门2,发出INTR信号。这样的优先权电路,如何能做到转入优先权最高的外设的服务程序的入口呢?当外设的个数<8时,则它们公用一个产生中断矢量的电路,它有三位由比较器的编码A2A1A0供给,就能做到不同的编码转入不同的入口地址。 德 能 日 新

  47. 图5-16 编码器和比较器的优先权排队电路 德 能 日 新

  48. (2)雏菊花环式(链式)优先权排队电路 • 另一种常用的硬件排队电路,如图5-17所示。 图5-17链式优先权排队电路 德 能 日 新

  49. 5.3.4 软件中断(内部中断) • 8088有两类中断:软件中断——由指令 • 的执行所引起的;硬件中断——由外部(主 • 要是外设)的请求所引起的。 • 8088可以有几种产生内部中断的情况: • (1)DIV或IDIV指令 • (2)INT指令 • (3)INTO指令 • (4)单步执行 德 能 日 新

  50. 5.3.5 硬件中断(外部中断) • 8088有两条外部中断请求线:NMI-Nor • Maskable Interrupt(非屏蔽中断)和INTR • (可屏蔽中断)。 • (1)可屏蔽中断 • (2)非屏蔽中断 德 能 日 新

More Related