1、2019/3/11,2011 第7版,1,第 9 章 I/O系统组织,2019/3/11,2,本章学习内容,I/O系统的功能 接口的功能 中断的基本概念 DMA的基本概念 通道的基本概念,2019/3/11,3,9.1 I/O系统概述,I/O系统的基本功能 为数据传输操作选择输入/输出设备。 控制被选的输入/输出设备与主机之间的信息交换。,2019/3/11,4,I/O系统需解决的主要问题,解决主机与外部设备间的信息通讯问题,提供主机与外设间的信息通路,使外围设备与主机能够协调一致地工作。 使处理机与外部设备在数据处理的速度上能够相互匹配。 解决方法:缓冲技术 使处理机与外部设备能够并行工作,
2、以提高整个计算机系统的工作效率。 解决方法:减少处理机对外部设备的直接控制,乃至处理机不再干预外部设备的控制,而交由专门的硬件装置去实现对外部设备的管理与监督。,2019/3/11,5,9.1.2 I/O系统的组成,典型计算机系统中I/O系统的组成: 系统总线、I/O设备接口控制器、I/O设备、相关控制软件。,2019/3/11,6,现代计算机系统中I/O系统的组成: 扩展总线、I/O设备接口控制器、I/O设备、相关控制软件。,2019/3/11,7,扩展总线及I/O接口控制器的作用: 分流CPU和内存之间以及外设和内存之间的数据流 现代计算机系统的主机与外设工作速度相差很大,需要分流CPU和
3、内存之间以及外设和内存之间的数据流,因此需要引入扩展总线。 便于系统实现标准化、模块化。 系统总线(也包括扩展总线)中的控制总线通常定义为通用或标准的信号,而具体的I/O设备设置的是专用的控制信号,因此需要I/O接口控制器进行信号的转换。,2019/3/11,8,I/O设备控制接口的发展趋势 在现代计算机系统中,许多I/O设备的控制器中(比如磁盘控制器、激光打印机)往往会采用专用的微处理器对有关设备进行控制,使用相应的设备控制程序。 因此传统的单纯由硬件电路实现的I/O设备控制接口,逐渐演变为由软、硬件相互配合的I/O设备控制接口。,2019/3/11,9,9.1.3 主机与外设间的连接方式与
4、组织管理,主机与外围设备的连接方式大致可分为: 总线方式 通道方式 I/O处理机方式(IOP方式),2019/3/11,10,1总线型连接方式,CPU通过系统总线与主存储器,I/O控制器,I/O接口电路相连接,通过I/O接口电路进一步实现对外设的控制。 系统总线包括地址总线,数据总线和控制总线,分别用于传送地址信号,数据信号和控制信号(如读/写信号、中断申请及应答信号等)。,2019/3/11,11,2019/3/11,12,总线型连接方式的优点: 系统模块化程度较高,I/O接口扩充方便。 总线型连接方式的缺点: 系统中部件之间的信息交换,均依赖于总线,总线成为系统中的速度瓶颈,因而不适于系统
5、需配备有大量外设的场合。实际设备中,一种I/O接口适配器也可以控制多台I/O设备,如多用户卡。一块多用户I/O适配器,可以控制多台终端的工作,这种方式称之为现代星型I/O设备的连接方式。,2019/3/11,13,多用户接口适配器,终端,终端,总线,2019/3/11,14,2通道控制连接方式,通道控制方式 由通道控制器执行专门的通道程序,通过I/O总线控制接口与外设。 通道控制连接方式主要用于连接外设数量多,外设类型多,外设速度差异大的大型主机系统。,2019/3/11,15,2019/3/11,16,通道控制器是专门负责I/O操作的控制器,它执行一种专门的通道程序,可与CPU并行工作。 通
6、道控制器通过执行通道程序或采用DMA方式实现存储器与外部设备之间的直接数据传输,减少CPU对I/O处理工作的控制。,通道控制器,2019/3/11,17,从连接角度看,主机一般通过单独的数据通路分别连接数目有限的通道,各通道再通过I/O总线连接I/O接口,再与外设连接。 通道的四级连接方式: 主机 通道 I/O接口(设备控制器) 外设,2019/3/11,18,通道的四级连接方式,2019/3/11,19,3I/O处理机控制连接方式(IOP方式),I/O处理机(IOP) 一种具有比I/O通道更强独立性的专用CPU。 IOP有自己的指令系统,可编程控制,适应性强、通用性好。其程序的执行可与CPU
7、并行,可使CPU彻底摆脱对I/O的控制处理。 IOP可大可小,大的如在巨型机系统中,IOP可为一台通用的小型机或中型计算机,称为前端处理机;小的则为一块大规模集成电路芯片,如Intel公司为其微处理器(CPU)8086配套的IOP8089。,2019/3/11,20,9.1.4 I/O信息传送的控制方式,I/O数据传送控制方式也称I/O信息交换方式。 I/O数据传送控制方式与主机和外设之间的连接方式有很大的关系,各种方式有不同的适用对象和应用场合,需要相应的硬件来支持。,2019/3/11,21,按I/O控制组织的演变顺序和外设与主机并行工作程度以及数据传送的控制方式,对I/O数据传送控制分类
8、如下:直接程序控制方式:程序中断方式:DMA方式:通道方式I/O处理机方式,由专有硬件控制的数据传送,由程序控制的数据传送,采用辅助硬件实现,适合快速外设,快、慢设备均适用 适合于大、中型机,适合慢速外设,适合于小微型机,2019/3/11,22,(1)由程序控制的数据传送,这种控制方式是指在主机和设备之间的I/O数据传送,需要通过处理机执行具体的I/O指令来完成。即由处理机执行所谓的I/O程序,实现对整个I/O数据传送过程的全程监督与管理。程序控制方式一般在总线型连接方式中采用。由程序控制的数据传送可进一步分为直接程序控制方式和程序中断传送方式。,2019/3/11,23,(2)由专有硬件控
9、制的数据传送,这种控制方式需要在系统中设置专门用于控制I/O数据传输的硬件装置,处理机只要启动这些装置,就会在它们的控制下完成I/O数据传输,因此具体的I/O数据传输过程无需处理机的控制。 由专有硬件控制的数据传送可具体分为: 直接存储器存取(DMA)方式 通道控制方式 I/O处理机控制方式,2019/3/11,24,9.2 I/O接口,接口:通常指设备(硬件)之间的界面。 I/O接口:主机(系统总线)与外部设备或其它外部系统之间的接口逻辑。,2019/3/11,25,9.2.1 I/O接口的基本功能, 实现数据的传送、缓冲、隔离和锁存。 实现信号形式和数据格式转换。 控制主机与外设之间的通信
10、联络,实现控制命令和状态信息的交换,保证时序协调。 寻址,即识别设备地址,选择指定的设备和I/O端口。,2019/3/11,26,CPU和外设之间传送的信息, 数据信息 数字量 数字量是指用二进制码形式提供的信息,如用二进制形式表示的数据、以ASCII码形式表示的字符等。通常有8位、16位和32位数据。 模拟量 模拟量是指连续变化的物理量,如温度、湿度、位移、压力、流量等。计算机无法直接接收和处理模拟量,要经过A/D变换将模拟量变成数字量,才能送入计算机;同样,计算机输出的数字量要经过D/A变换将数字量变成模拟量,才能送入使用模拟量的外设。,2019/3/11,27, 开关量 开关量有两个状态
11、:如开关的闭合和断开、设备的启动和停止等,可以“0”和“1” 表示。,2019/3/11,28, 状态信息 状态信息就是反映当前外设所处的工作状态的信息。 在与外设进行数据信息的交换时,CPU需要通过状态信息了解外设的工作状态。通常外设用准备好(READY)信号来表明是否准备就绪;用忙(BUSY)信号表示是否处于空闲状态。例如,当输入设备准备好向系统输入的数据信息时,就用READY信号通知CPU读入数据;输出设备只有处于空闲状态(不忙)时,才可以接收CPU送来的信息。 外设的状态信息通过接口送往CPU。,2019/3/11,29, 控制信息 在外设的工作过程中,CPU需要通过控制信息控制外设的
12、工作,如对外设的启动和停止等。不同外设所需的控制信息各不相同,因此CPU需要通过接口将控制信息传送给外设。,2019/3/11,30,I/O信息的传送,数据信息、状态信息和控制信息各不相同,应该分别传送。 为了便于处理,将状态信息、控制信息也广义地看成数据信息,通过数据总线来传送。为了区别这三种信息,在接口线路中将它们分别送入不同的寄存器( I/O端口)。 CPU同外设之间的信息传送实质上是对相应的寄存器进行“读”或“写”操作。 端口(Port或I/O端口):接口中可以由CPU进行读或写的寄存器。,2019/3/11,31,I/O端口的寻址方式,对I/O设备的寻址实质上就是对I/O端口的寻址。
13、 I/O端口与主存统一编址 将一个I/O端口作为存储器中的一个单元对待,每一个I/O端口占用一个存储器单元地址。编址时将I/O端口与存储器单元一起进行编址。 又称为存储器对应的输入输出方式或存储器映象编址方式。,2019/3/11,32,I/O端口与主存统一编址,2019/3/11,33,I/O端口与主存统一编址方式的优点: CPU可使用所有存储器操作指令对I/O端口中数据进行操作,十分灵活和方便。 不需要用专门的指令及控制信号区分是存储器还是I/O操作。使得系统相对简单。 I/O端口与主存统一编址方式存在的缺点: I/O端口占用了内存单元的部分地址空间,使内存容量减小。 由于在程序中不易分清
14、指令访问的是存储器还是I/O端口,所以采用这种方式编制的程序不易阅读。,2019/3/11,34, I/O端口独立编址 将I/O端口与存储器单元分别独立进行编址,CPU访问外设时,需使用专门的I/O指令,并需要有与接口电路联系的单独的控制信号。 也称为I/O端口寻址输入输出方式。,存储器,I/O端口,FFFFH,0000H,FFFH,000H,2019/3/11,35,IBMPC中I/O地址的分配,2019/3/11,36,I/O端口独立编址方式的优点: I/O端口具有独立的地址空间,不占用内存空间。 I/O指令中的地址字段的长度较短,可以节省指令存储空间和指令执行时间。 由于访问存储器和访问
15、I/O端口使用不同的指令,因此编制的程序比较清晰易读。 I/O端口独立编址方式的缺点: I/O操作指令的种类通常没有存储器操作指令丰富,设计程序时不够方便。,2019/3/11,37,9.2.2 接口的基本组成,2019/3/11,38, 设备选择电路 用于接收总线传来的地址信息,经译码后,决定选择哪个设备或I/O接口内部的部件。 数据缓冲寄存器(数据端口) 用于存放主机与外设之间要传递的数据信息。 命令寄存器(控制端口) 用于存放主机向外设发送的控制命令。 状态寄存器(状态端口) 用于存放外设或接口的工作状态。 其它有关部件 如中断控制逻辑、DMA控制逻辑以及各类特殊部件。,2019/3/1
16、1,39,9.2.3 I/O 接口的分类,1. 按数据传送格式分 串行接口:接口与设备之间的信息传送是逐位串行进行的。 并行接口:接口与设备之间的信息传送是将一个字或一个字节的所有位同时并行地进行传送的。,2019/3/11,40,2019/3/11,41,主机,串行接口,外设,TxD,RxD,Dn10,主机,并行接口,外设,Dn10,I/On10,2019/3/11,42,2. 按时序的控制方式分 同步接口:一般与同步总线相连,接口与总线采用统一时钟信号,无论CPU与I/O设备,还是存储器与I/O设备交换信息,都与总线同步时钟脉冲同步。 异步接口:与异步总线相连,接口与系统总线之间采用异步应
17、答方式。,2019/3/11,43,3. 按信息传送交换的控制方式分 程序控制I/O接口:采用直接程序控制方式进行信息交换的接口。 程序中断I/O接口:主机与外设以程序中断方式进行信息交换控制的接口。 直接存储器存取I/O接口:以直接存储器存取(DMA)方式控制信息传送的接口。,2019/3/11,44,程序控制方式的特点: 数据传输操作通过在处理机上执行的I/O指令来实现。 程序控制方式下数据传输的过程: 输入数据 CPU执行I/O输入指令,启动输入操作总线周期,将I/O接口数据缓冲寄存器中的数据取到CPU中的累加器中。 CPU执行写存储器指令,启动写存储器总线周期,将累加器中存放的输入数据
18、写到内存某个单元中。,9.3 程序控制方式,2019/3/11,45, 输出数据 CPU执行读存储器指令,启动读存储器总线周期,将内存某个单元中存放的待输出数据取到CPU的累加器中。 CPU执行I/O输出指令,启动输出操作总线周期,将累加器中存放的待输出数据写到设备接口的数据缓冲寄存器中。在程序控制方式下,内存与外设交换一个数据需要使用两次总线,即需要执行一个访问存储单元的总线周期和一个访问I/O的总线周期。,2019/3/11,46,9.3.1 直接程序控制方式,直接程序控制方式完全通过程序来控制主机与外设之间信息传送。 通常是在用户程序中安排一段由I/O指令和其它指令组成的I/O程序,通过
19、执行I/O程序实现对外设的直接控制。,2019/3/11,47,1. 直接数据传送方式,CPU在控制与外设之间的数据传送之前,不需了解外设的工作状态,也不需考虑同步问题,即可直接执行I/0指令,实现数据传送。 在采用直接数据传送方式进行数据传输的接口中,不需设置状态寄存器及相关逻辑。 直接数据传送方式也称为无条件传送方式,是I/O数据传送控制最简单的一种,多用于I/0操作时间固定且已知的情况下。,2019/3/11,48,n e x t : mov dx,8000h ; D X指向数据端口in al,dx ;从输入端口读开关状态not al ;反相out dx,al ;送输出端口显示call
20、delay ;调子程序延时jmp next ;重复,2019/3/11,49,2. 程序查询数据传送控制方式,CPU在进行输入/输出操作之前,先查询外设的状态,只有当外设准备就绪时,才进行数据传送。也称为条件传送方式。 当有关操作的时间未知或不定时,往往采用程序查询方式进行同步控制。,2019/3/11,50,程序查询方式I/0程序的操作步骤,2019/3/11,51,mov dx,8000h ; D X指向状态端口 status: in al,dx ;读状态端口test al,01h ;测试标志位D0jz status ; D 0,未就绪,继续查询0inc dx ; D1,就绪,DX改指向数
21、据端口0in al,dx ;从数据端口输入数据,2019/3/11,52,在程序查询方式中,为了提供程序查询依据,通常需要设置状态寄存器,占用一个I/O端口地址。,2019/3/11,53,直接程序控制方式适用于下述场合: CPU速度不高 CPU工作效率问题不是很重要 需要调试或诊断I/O接口及设备的时候直接程序控制方式的缺点: CPU与外围设备无法并行工作,CPU效率很低。 无法发现和处理异常情况,不能响应来自外部的随机请求。,2019/3/11,54,9.3.2 程序中断传送方式,程序中断方式简称为中断方式,它是目前几乎所有计算机系统都具备的一种重要工作机制。 中断不仅用在输入输出过程控制
22、中,而且在多道程序、分时操作、实时处理、人机联系、故障处理、程序的监视与跟踪、目态程序和操作系统的联系以及多处理机系统中各机间联系方面都起着十分重要的作用。,2019/3/11,55,9.3.2.1 中断的基本概念,1中断 中断是指处理机暂时中止执行现行程序而转去执行处理更加紧迫事件的服务程序,待处理完毕后,再自动返回执行原来的程序的过程。 相对于在CPU上运行的程序,中断具有随机性(不可预测性)、异步性和不可再现性。,2019/3/11,56,2实现中断应考虑的问题 保护现场 中断过程实质上是一种程序切换过程,因此必须处理好保存旧现场、建立新现场的问题。 及时获得中断请求信号 中断具有随机性
23、(程序自愿中断除外)。因此必须及时检测中断请求信号,以便及时处理。,2019/3/11,57,3中断的作用,(1) 解决主机与外设的速度匹配问题,实现CPU与I/O设备并行工作。,2019/3/11,58,(2) 及时处理异常情况,提高机器的可靠性。 (3) 便于实现人机联系 (4) 便于实现多道程序运行 (5) 便于实现多台设备并行工作 (6) 便于实现实时控制 (7) 便于实现目态程序和操作系统的联系 (8) 便于实现多处理机系统中各处理机间的联系,2019/3/11,59,4中断处理的过程,2019/3/11,60,中断源以硬件信号形式通过中断控制线路向CPU提出中断请求。 中断源:引起
24、中断事件的原因。 中断源可以是外部的硬件设备,如键盘、打印机等输入/输出设备和各种控制设备;也可以是软件指令,如中断指令;还可能是由各种故障和出错引起的中断,如计算溢出等。, 中断请求,2019/3/11,61, 中断判优及响应 根据中断优先权进行判断,择优予以响应。 保护现场 保护主程序的运行现状,如PC值、PSW、寄存器和内存中的重要数据。 中断服务 按中断源的工作要求,执行相应的中断服务程序,进行特定的数据传送或控制处理。,2019/3/11,62, 恢复现场 为了正确返回原程序,需要进行恢复现场的工作,即将前面保存的寄存器的内容送回原寄存器。 中断返回 返回被中断的程序 ,继续执行。,
25、2019/3/11,63,5中断的分类, 按中断源来分,2019/3/11,64, 按中断服务程序入口的获取方式分向量中断:由中断系统硬件,直接向主机提供被响应 中断的中断向量地址。非向量中断:通过软件查询方式识别中断源,转 入相应的中断服务程序入口地址。 按是否可屏蔽分可屏蔽中断:CPU可以禁止响应的外部中断。 不可屏蔽中断:CPU必须响应的外部中断。,2019/3/11,65,6.中断系统的设计要求, 保证中断请求信号的建立及保持的准确性,保证中断在未被响应时,中断请求信号不能随便被丢失。 保证各类中断都能及时得到响应,不应出现某些中断由于某种原因长时间得不到响应的情况。 必须防止在处理某
26、个中断过程中,又去响应同样的中断 。 保证中断处理过程的正确性,在中断处理过程结束后能够正确返回被中断的程序使之继续执行。,2019/3/11,66, 高级中断应能中断低级中断的处理,即要允许中断嵌套。 中断优先级的设置应具备方便性及灵活性,允许动态改变一个中断的优先级别。,2019/3/11,67,9.3.2.2 中断请求信号的建立与传送,1中断请求信号的建立与中断屏蔽 中断请求信号的建立,基于中断源有请求中断的需要。 例如,当外设已“准备就绪”或“完成一次操作”,可以用这类状态信号作为中断请求信号建立的原始信号,使中断请求触发器的状态置“1” ,表明已有中断请求。 设备中通常有三种状态:空
27、闲、就绪、忙,2019/3/11,68,空闲,忙,就绪,Busy0 Ready0,Busy0 Ready1 产生中断请求,Busy1 Ready0,启动,清除,准备好,再启动,清除,2019/3/11,69,外设发出请求中断信号的条件, 外设准备就绪(Ready1) 外设的中断请求没有被屏蔽,2019/3/11,70,中断请求信号是否能够传送给CPU,要看中断源是否被屏蔽。,中断屏蔽,2019/3/11,71,中断屏蔽:中断源的中断请求不能向CPU发出。 可以根据需要对中断请求信号予以屏蔽。 先屏蔽方式:在中断请求触发器IRQ的D端进行屏蔽。 后屏蔽方式:在中断请求触发器IRQ的输出端进行屏蔽
28、。 集中屏蔽方式:即在公共接口逻辑中设置一个中断控制器,内含一个屏蔽字寄存器,CPU将屏蔽字送入其中。在各中断源的接口不另设屏蔽触发器。将各个请求信号汇集到中断控制器,并与屏蔽字比较,若未被屏蔽,则中断控制器送出一个公共的中断请求信号INT,送往CPU。,2019/3/11,72,TD:状态信号,TD1,需要请求中断 TM:中断屏蔽信号,TM1,屏蔽中断请求,2019/3/11,73,8259A的内部结构和引脚,2019/3/11,74,2中断请求信号的传送,一台计算机系统中有多个中断源,可能产生多个中断请求信号,因此需要解决多个中断请求信号如何传送给CPU的问题。 独立请求线方式(多线单级结
29、构) 各中断源单独设置自己的中断请求线,多根请求线直接送往CPU。当CPU接到中断请求信号后,立即知道请求源是谁,并予以相应的处理。 这种方法有利于实现向量中断,因为可以通过编码电路形成向量地址。但因为CPU所能连接的中断请求线数目有限,所以中断源数目难以扩充。,2019/3/11,75,独立请求线方式,CPU,INTR0,INTR1,INTRn1,2019/3/11,76, 公共请求线方式(单线多级结构),各中断源的请求信号通过三态门汇集到一根公共请求线,CPU只需接收一根中断请求线的请求信号。 这种方法节省引脚,但CPU响应中断后,还需要通过一定逻辑来识别是哪个中断源发出的中断请求,所以响
30、应速度慢一些。,CPU,INTR0,INTR1,INTRn1,I/O,I/O,I/O,INT,2019/3/11,77, 两维结构(多线多级结构),CPU设置数根中断请求输入线,它们体现不同的优先级别,称为主优先级。再将主优先级相同的中断请求源汇集到同一公共请求线上。 这种方法综合了前两种模式的优点,既可以在主优先级层次迅速判明中断源,又能随意扩充中断源数目。,2019/3/11,78,两维结构,CPU,INTR0,INTR1,I/O,INT0,INTRk1,I/O,I/O,INTR0,INTR1,I/O,INTRn1,I/O,I/O,INTn1,INTR0,INTR1,I/O,INT1,IN
31、TRl1,I/O,I/O,2019/3/11,79, 独立请求线与公共请求线兼有方式,将要求快速响应的中断请求,采取独立请求线方式,以便快速识别。将其余响应速度允许相对低些的中断请求,汇集为一根公共请求线。 有些微处理器由于引脚数有限,就采取这种模式。,CPU,INTR,INTR,INTR,I/O,I/O,I/O,I/O,I/O,INTR0,INTR1,INTRm1,2019/3/11,80,9.3.2.3 中断排队与判优,1. 有关概念 中断排队:中断系统设计人员对中断请求的响应次序作出安排。 中断判优:系统运行过程中,当有多个中断源同时请求中断时,根据中断排队事先规定的次序判断中断请求的响
32、应优先次序。 中断优先级(中断优先权):根据中断源中断任务的紧迫程度,给各中断请求安排的响应次序。,2019/3/11,81,中断排队的原则, 内部中断优先于外部中断 故障中断优先于设备请求中断 非屏蔽中断优先于可屏蔽中断 输入操作的中断请求优先于输出操作的中断请求 数据有效时间短的中断优先于数据有效时间长的中断 具体设计时,中断优先级可以是固定的,也可以是动态变化的。可以采用硬件或软件进行中断排队和判优。,2019/3/11,82,2CPU与中断请求间的判优,CPU是否响应中断请求,要看当时占有CPU的程序的优先级。 如程序的优先级高于或等于当前中断请求的优先级,则CPU可以不响应这个中断,
33、或说CPU不允许被中断、中断被禁止。 如占有CPU的程序优先级低于请求中断的优先级,则不应禁止这个中断,而使CPU能够响应这个中断,或说CPU允许中断。 中断禁止:在一定条件下,CPU不允许响应中断。 中断允许:在一定条件下,CPU允许响应中断。,2019/3/11,83,CPU现行程序与中断请求的判优方法, 通过设置CPU内部的“中断允许”状态进行判优 在CPU内部设置 “允许中断”触发器IEN(或在PSR中设置相应位 P231),指令系统提供开中断与关中断功能(特权指令)。 开中断操作使 TIEN1,关中断使 TIEN0。 如果CPU处于关中断状态,则表示所有外部中断请求要求的服务都没有现
34、行程序的任务重要,CPU不响应外部中断请求。 如果CPU处于开中断状态,则可以响应外部中断请求。,2019/3/11,84,2019/3/11,85, 在现行程序的程序状态字(PSW)中设置现行程序的优先级 若中断请求的优先级高于现行程序的优先级,则予以响应。 CPU内部有一个优先级比较逻辑,对PSW中给定的优先级与中断请求的优先级进行比较,决定是否需要暂停现行程序去响应中断请求。操作系统可以根据实际情况动态地对PSW中的优先级进行调整。,2019/3/11,86,例:某计算机内部程序与外部中断请求优先级和PSW的规定为:,处理机0级,处理机1级,处理机7级,外部请求0级,外部请求1级,外部请
35、求7级,2019/3/11,87,2中断请求之间的排队与判优,(1) 软件查询 响应中断请求后,先转入中断查询程序,按优先顺序依次询问各中断源是否提出请求。如果是,则转入相应的服务处理程序。如果没有,则继续往下查询。查询的顺序体现了优先级别的高低,改变查询顺序也就修改了优先级。 在硬件上,每一个中断源都附带一个标志,用于代表相应的中断源是否请求中断。CPU用测试指令按一定优先次序检查这些标志,即可确定中断源是否发出中断请求。,2019/3/11,88,2019/3/11,89,软件查询方法适用于低速和中速设备,多用于公共请求线方式。 优点:中断条件标志的优先级可用程序任意改变,灵活性好。 缺点
36、:设备多时,响应速度太慢。,2019/3/11,90,(2) 并行优先排队逻辑,采用硬件并行优先排队逻辑对具有独立中断请求线的中断请求进行判优。 并行排优逻辑适于具有多请求线的系统,速度较快,硬件代价较高。,2019/3/11,91,2019/3/11,92,采用硬件优先链电路判断中断优先级,判优结果可用不同的设备码或用中断源类型码来表示。 链式优先排队逻辑多用于采用公共请求线的系统。,(3) 链式优先排队逻辑,2019/3/11,93,INTI,中断排队输入,INTO,中断排队输出,INTA,中断回答,INTR1,INTR2,INTR3,INTR4,4,5,3,2,1,0,送CPU,0CH,
37、0FH,12H,0EH,2019/3/11,94,设CPU可以接受 n1 根中断请求线,每根请求线的优先级称作主优先级,在CPU内部有一个相应的判优电路,以首先响应优先级最高的请求。如果程序状态字中有CPU现行程序的优先级编码,这个判优电路同时担负CPU与请求之间的判优问题。 将有关外设分成 n1 组,每组的请求汇集到同一根请求线上,占有同一个主优先级。在一个小组内,各设备又作进一步的优先级划分,称为次优先级。通常在小组内采取菊花链式的优先链结构。,(4) 二维结构的优先排队,2019/3/11,95,二维结构的优先排队,2019/3/11,96,(5)采用中断控制器集成芯片的优先逻辑,在微型
38、计算机中,广泛使用中断控制器集成芯片,如Intel 8259A。中断控制器将中断请求信号的寄存、汇集、屏蔽、排优、编码等逻辑,集成在一块芯片之中。,2019/3/11,97,可编程中断控制器 Intel 8259A,2019/3/11,98,9.3.2.4 中断响应,CPU接到中断请求信号后,若满足响应中断的条件,即暂停现行程序的执行,而转入中断处理,将这一过程称为中断响应。 1.CPU响应中断应具备的条件: (1) 有中断源请求中断。 (2) CPU允许响应中断,即处于开中断状态。 (3) 现行指令不是停机指令 (4) 一条指令执行结束。,2019/3/11,99,一般情况下,CPU响应中断
39、的时间是在一条指令执行结束。但某些特殊的中断,例如指令执行过程中,取数时所需数据不在主存,这时不及时处理,指令就无法执行下去,这就要求在指令执行过程中响应中断。,2019/3/11,100,中断响应流程,取指令,停机,停机指令,执行指令,电源故障,Y,N,中断请求,N,中断处理,Y,Y,N,2019/3/11,101,2. 中断响应过程中应完成的操作,(1)关中断 以便在保存现场过程中不允许响应新的中断请求,确保现场保存的正确性。 (2)保存断点地址和程序状态字 (3)转入中断服务程序入口,以便执行相应的中断服务程序,完成中断处理任务 中断响应周期的操作流程中的操作不是在程序中安排的,而是直接
40、由硬件完成的。通常把这种操作称为执行中断隐指令。,2019/3/11,102,第六章模型机中断周期操作流程,2019/3/11,103,9.3.2.5 中断服务程序入口地址的获取方式,1. 软件查询方法 CPU响应中断请求后,先转入中断查询程序,按优先顺序依次识别中断源,并转入相应的中断服务程序入口。 例:某机器各接口将中断请求存放在状态端口的状态字寄存器STR中,CPU响应中断请求后,转入查询程序。,1 Ready,STR,2019/3/11,104,IN AL, STRATEST AL, 08HJNZ A入口IN AL, STRBTEST AL, 08HJNZ B入口,2019/3/11,
41、105,2. 通过硬件排队与编码电路获得优先级最高的中断源的设备码,并转入相应的中断服务程序入口。,例:响应中断后,执行程序:INTA AC ;发中断回答信号INTA,将设 备码读入累加器AC中JMP AC100H ;转入(AC)100H处执行,1、2两种方法也称为非向量中断,2019/3/11,106,3.向量中断,中断向量:每个中断源对应的中断服务程序的入口地址及其程序状态字PSW。 中断向量存放在特定的存储区中,有些计算机没有完整的程序状态字,则中断向量仅指中断服务程序入口地址。 中断向量表:存放中断向量的表。 所有的中断服务程序入口地址(或包括服务程序的状态字)组织成一个一维的表格,存
42、放在一段连续的存储区中。 中断向量地址:访问中断向量表的地址码,即读取中断向量所需的地址,也称为中断指针。,2019/3/11,107,中断向量表,中断向量,2019/3/11,108,向量中断:将各个中断服务程序的入口地址(或包括状态字)组织成中断向量表;响应中断时,由硬件直接产生对应于中断源的向量地址;据此访问中断向量表,从中读取中断服务程序入口地址,由此转向中断服务程序。 向量中断的响应工作一般在中断周期中由硬件直接实现。 向量中断的特点: 能够根据中断请求信号快速、直接地转向对应的中断服务程序。 现代计算机基本上都具有向量中断功能。,2019/3/11,109,IBM PC机的中断向量
43、表,2019/3/11,110,向量中断的工作过程, 中断源提出中断请求。 若CPU允许中断,则发出中断回答信号。 优先级编码电路形成优先级最高的中断请求的中断向量地址存入中断向量地址寄存器VAR。 保护断点和现场,PC、PSW入栈。 根据中断向量地址,将对应的中断服务程序入口地址和PSW送入PC和PSR。 转入中断服务程序,进行中断服务。 中断返回,将保存的PC和PSW弹回PC和PSR。,2019/3/11,111,VAR,INTR0,INTR1,INTR7,优先级 编码电路,PC,PSR,CPU,INTR,INTA, 中断服务, 中断服务,2019/3/11,112,9.3.2.6 多重中
44、断与中断屏蔽,1. 多重中断(中断嵌套) CPU在处理某一级中断过程中又遇到了新的中断请求,CPU暂停原中断的处理,而转入处理新的中断,待处理完毕,再恢复原来中断的处理,这种中断称为多重中断,也称中断嵌套。 2. 多重中断的处理原则 若新的中断的优先级高于原来中断的优先级,则响应新的中断请求; 若新的中断优先级同于或低于原来中断的优先级,则不予响应,必须待原来中断处理完,返回原程序后,再响应新的中断。,2019/3/11,113,中断嵌套,主程序,K:,K1:,服务程序1,服务程序2,N1:,M1:,L:,L1:,中断返回,中断返回,响应1,响应2,2019/3/11,114,3. 实现多重中
45、断处理的方法 采用中断屏蔽技术。 中断屏蔽:当产生中断请求后,用程序有选择地封锁部分中断,而允许其余部分中断仍得到响应。 4. 中断屏蔽的实现方法 为每一个可屏蔽的中断源设一个中断屏蔽触发器来屏蔽该中断源的中断请求。 为了实现多重中断的处理原则,当CPU响应某个中断请求后,送出一个新的屏蔽字,屏蔽同级和低级中断,只允许响应更高级中断。,2019/3/11,115,可编程中断控制器 Intel 8259A,2019/3/11,116,例,某计算机的中断系统有五级中断,优先次序为12345 若CPU在执行正常程序时,有下列事件发生:(1) 中断1,2,4 提出请求;(2) 在处理中断4过程中,又有
46、中断3提出请求;(3) 在处理中断3时,又出现1,5中断请求。 请画出CPU对所有事件的处理过程图。,2019/3/11,117,中断源 用户程序 中断服务程序,1 2 3 4 5,time,3,1,5,2019/3/11,118,5. 中断屏蔽技术用于调整中断优先级 利用硬件排队判优所分配的优先级是固定的,但有时需要动态地修改优先次序。例如,有些设备的优先级低,经常得不到响应的机会,在适当的时段中就需让它升级,使各设备得到的响应机会均衡、合理一些。 中断升级:在一段时间内,利用屏蔽技术将原来优先级高的设备暂时屏蔽,而使优先级低的设备的优先级相对提高。过一段时间再调整屏蔽字,或者复原,或者按一
47、定规律修改屏蔽字,以适应程序的需要。,2019/3/11,119,例:优先级顺序为 12345 时的屏蔽码,2019/3/11,120,优先级顺序修改为 14325 时的屏蔽码,2019/3/11,121,作业,P410 9.8 9.9,2019/3/11,122,9.3.2.7 中断服务(中断处理),取得中断服务程序的入口地址后,CPU开始执行中断服务程序,完成规定的中断处理任务。 中断服务程序一般由起始、主体、结尾三部分组成。,2019/3/11,123,1. 起始部分, 判明中断原因,识别中断源,对于不同中断源转入不同的服务程序。对于向量中断,直接由硬件判明中断源并给出中断向量地址,转入
48、相应中断服务程序。对于非向量中断,需通过执行一段程序判明中断源,转入相应中断服务程序。 设置屏蔽字,封锁同级与低级中断。,2019/3/11,124, 保存中断现场 除了PSW外,还要保存一些在执行中断服务程序过程中可能被改变的寄存器的内容。 开中断 以便在本次中断处理过程中,允许响应更高级的中断请求。 这是因为在中断响应时,为避免影响保护现场,进行了关中断操作。,2019/3/11,125,2.主体部分,执行具体的为中断源服务的程序。,2019/3/11,126,3. 结尾部分,关中断,以便在恢复现场过程中不允许响应新的中断。 恢复中断现场,将原来保存的寄存器内容送回原寄存器。 清中断请求信号,表示本次中断处理结束。 清屏蔽字,开放同级与低级中断。 开中断,以便响应新的中断请求。 恢复PSW、PC,返回被中断的程序。,