配色: 字号:
第 9 章 IO系统组织
2022-09-18 | 阅:  转:  |  分享 
  
第9章I/O系统组织本章学习内容I/O系统的功能接口的功能中断的基本概念DMA的基本概念通道的基本概念9.1I/O系统概述I/
O系统即输入/输出系统,是计算机系统中实现主机与外界数据交换的软、硬件系统。I/O系统的基本功能:①为数据传输操作选择输入/输出
设备。②控制被选的输入/输出设备与主机之间的信息交换。9.1.1I/O系统需解决的主要问题I/O系统主要用于解决主机与外部设
备间的数据交换的问题,使外设与主机能够协调一致地工作。(1)使处理机与外设在数据处理的速度上能够相互匹配。解决方法:缓冲技术
(2)使处理机与外设能够并行工作,以提高整个计算机系统的工作效率。解决方法:减少处理机对外设的直接控制,甚至处理机不再干预对外设
的控制,而交由专门的硬件装置去实现对外部设备的管理与监督。9.1.2I/O系统的组成典型计算机系统中I/O系统的组成:系统总线
、I/O设备接口控制器、I/O设备、相关控制软件。虽然系统总线作为公共信息通路,通常起到连接处理机、主存储器和外设的作用,但实际
上外设并不能直接连接到系统总线上,需要通过扩展总线以及I/O接口控制器来实现I/O设备与主机两者之间的连接。现代计算机系统中I/O
系统的组成:扩展总线、I/O设备接口控制器、I/O设备、相关控制软件。扩展总线及I/O接口控制器的作用:①分流CPU和内存之间
以及外设和内存之间的数据流现代计算机系统的主机与外设工作速度相差很大,需要分流CPU和内存之间以及外设和内存之间的数据流,因此需要
引入扩展总线。②便于系统实现标准化、模块化。系统总线(也包括扩展总线)中的控制总线通常定义为通用或标准的信号,而具体的I/O设
备设置的是专用的控制信号,因此需要I/O接口控制器进行信号的转换。I/O设备控制接口的发展趋势在现代计算机系统中,许多I/O设备
的控制器中(比如磁盘控制器、激光打印机)往往会采用专用的微处理器对有关设备进行控制,使用相应的设备控制程序。因此传统的单纯由硬件电
路实现的I/O设备控制接口,逐渐演变为由软、硬件相互配合的I/O设备控制接口。9.1.3主机与外设间的连接方式与组织管理主
机与外设的连接方式大致可分为:总线方式通道方式I/O处理机方式(IOP方式)1.总线型连接方式CPU通过系统总线与主存、I/O接
口控制器相连接,通过I/O接口控制器实现对外设的控制。总线型连接方式的优点:系统模块化程度较高,I/O接口扩充方便。总线型连接方式
的缺点:系统中部件之间的信息交换,均依赖于总线,总线成为系统中的速度瓶颈,因而不适于系统需配备有大量外设的场合。有些种类的I/O接
口控制器可以控制多台I/O设备,如多用户卡。这种方式称之为现代星型I/O设备的连接方式。总线多用户接口适配器终端…终端2.通道控制
连接方式通道控制方式由通道控制器执行专门的通道程序,通过I/O总线控制接口与外设。通道控制连接方式主要用于连接外设数量多,外设类型
多,外设速度差异大的大型主机系统。通道控制器通道控制器是专门负责I/O操作的控制器,它执行由专门的通道指令编制并存放在内存之中的通
道程序实现对外设的控制。通道控制连接方式下,由通道控制器控制实现主存与外设之间的直接数据交换,CPU不再负责具体的I/O控制,实
现了处理机与通道控制器和外设的并行工作。通道的四级连接方式通道控制器的一端与系统总线相连,另一端控制I/O总线;设备控制器及其所控
制的设备连接到I/O总线上,构成了主机、通道、I/O接口(设备控制器)和外设的四级连接方式。3.I/O处理机控制连接方式I/O处理
机(IOP)具有比I/O通道更强独立性的专用CPU。IOP有自己的指令系统,可编程控制,适应性强、通用性好。其程序的执行可与CP
U并行,可使CPU彻底摆脱对I/O的控制任务。IOP可大可小,大的如在巨型机系统中,IOP可为一台通用的小型机或中型计算机,称为前
端处理机;小的则为一块大规模集成电路芯片,如Intel公司为其微处理器(CPU)8086配套的IOP—8089。主机与I/O处理机
之间可以通过高带宽总线或高速专用互联网络实现互联。9.1.4I/O信息传送的控制方式I/O数据传送控制方式也称I/O信息交换方
式。I/O数据传送控制方式与主机和外设之间的连接方式有很大的关系,各种方式有不同的适用对象和应用场合,需要相应的硬件来加以支撑。
按I/O控制的组织方式和外设与主机并行工作程度以及数据传送的控制方式,对I/O数据传送控制分类如下:直接程序控制方式程序中断
方式DMA方式通道方式I/O处理机方式适合于小微型机由程序控制的数据传送适合慢速外设适合快速外设由专有硬件控制的数据传送采
用辅助硬件实现快、慢设备均适用适合于大、中型机(1)由程序控制的数据传送这种控制方式是指在主机和设备之间的I/O数据传送,需要通过
处理机执行具体的I/O指令来完成。即由处理机执行所谓的I/O程序,实现对整个I/O数据传送过程的全程监督与管理。程序控制方式一般在
总线型连接方式中采用。由程序控制的数据传送可进一步分为直接程序控制方式和程序中断传送方式。(2)由专有硬件控制的数据传送这种控制
方式需要在系统中设置专门用于控制I/O数据传输的硬件装置,处理机只要启动这些装置,就会在它们的控制下完成I/O数据传输,因此具体的
I/O数据传输过程无需处理机的控制。由专有硬件控制的数据传送可具体分为:直接存储器存取(DMA)方式通道控制方式I/O处理机控制方
式9.2I/O接口接口:通常指设备(硬件)之间的界面。I/O接口:主机(系统总线)与外设或其它外部系统之间的接口逻辑。当主机与外设
相连时,必须要有相应的接口逻辑部件来解决两者之间的操作同步与协调、工作速度的匹配以及数据格式的转换等问题。在现代计算机中,为实现设
备间通讯,需要相应的软硬件技术支持,即接口技术。软件之间交接的部分称为软件接口。硬件与软件相互作用,所涉及到的软件与硬件逻辑,称为
软硬接口。I/O接口也称为输入输出控制器或I/O模块。9.2.1I/O接口的基本功能1.实现数据的传送、缓冲、隔离和锁存。主
机与外设之间传输的数据信息包括数字量、模拟量、开关量。数据输入:指外设的数据信息通过外设与接口之间的数据线进入接口,再经由接
口送到系统的数据总线。数据输出:指系统的数据信息经过系统数据总线进入接口,再通过接口送到外设。在接口电路中,需要设置一个或几个数据
缓冲寄存器(数据锁存器),提供主机与外设之间的数据通路以及数据的缓冲,控制实现主机与外设之间数据传输速度上的匹配。2.实现信号形
式和数据格式转换。(1)模拟信号/数字信号之间的转换。(2)ASCII编码与二进制编码之间的转换。(3)串行数据与并行数
据格式之间的转换。(4)电平转换。3.控制主机与外设之间的通信联络主机与外设之间的通信联络控制包括命令译码、状态字的生成、同步
控制、设备选择以及中断控制等等。(1)控制命令信息在外设的工作过程中,CPU需要通过控制信息控制外设的工作,如对外设的启动和停止
等。主机发给外设的控制命令通常采用命令编码字的格式,而实现对外设控制的物理信号有时需要采用电流、电压等模拟量的形式,因此接口电路需
要对主机送来的命令字译码并形成外设所需的信号形式。⑵状态信息状态信息就是反映当前外设所处的工作状态的信息。在与外设进行数据信息的
交换时,CPU需要通过状态信息了解外设的工作状态。通常外设用准备好(READY)信号来表明是否准备就绪;用忙(BUSY)信号表示是
否处于空闲状态。若外设回送给接口的状态是采用模拟形式的信号,接口就需要对这些信号进行编码形成状态字,以便主机通过读取状态字来了解命
令的执行情况。(3)同步信号当主机或外设将数据发送到接口后,接口需要给出数据已经“就绪”的信号通知对方可以取走数据进行处理,即需
要有同步信号实现同步控制。(4)设备选择信号设备选择信号用于指示选中的设备。它通常作为数据选通信号被送到三态门电路的控制端上使三
态门电路脱离高阻状态,以便选中的设备可以参与数据交换。因此,每个设备接口中都有一个专门的设备选择电路。(5)中断及DMA控制逻辑
如果系统中采用中断方式控制主机与外设之间的信息交换,接口中则应有中断控制逻辑。该逻辑负责实现中断请求信号的产生与记录、中断的屏蔽、
中断优先级的排队以及生成、发送中断向量码(用来标识中断源及中断类型)等。如果系统中采用的DMA方式控制主机与外设之间的信息交换,
则接口中就应有DMA控制逻辑。该逻辑负责发送DMA请求、实现DMA优先级的比较、系统总线的申请以及系统总线的接管与释放等。4.寻
址寻址就是识别设备地址,选择指定的设备和I/O端口。在一个计算机系统中,通常会连接多个外设,为了对I/O设备进行选择,必须给每个设
备分配一个或多个地址码,也称为设备号或设备码。I/O信息的传送在计算机系统中,数据信息、状态信息和控制信息各不相同,应该分别传送。
为了便于处理,将状态信息、控制信息也广义地看成数据信息,通过数据总线来传送。为了区别这三种信息,在接口线路中将它们分别送入不同的
寄存器。CPU同外设之间的信息传送实质上是对相应的寄存器进行“读”或“写”操作。端口(Port或I/O端口):接口中可以由CPU进
行读或写的寄存器。I/O端口的寻址方式外设是接在相应的I/O接口上的,因此主机对设备的寻址实质上就是对I/O接口中寄存器的寻址,
设备号或设备码实际上就是该设备控制器上某个寄存器的地址,也称为端口地址。对I/O设备的寻址实质上就是对I/O端口的寻址。(1)I/
O端口独立编址将I/O端口与存储器单元分别独立进行编址,CPU访问外设时,需使用专门的I/O指令,并需要有与接口电路联系的单独的控
制信号。也称为I/O端口寻址输入输出方式。0000H存储器000HI/O端口FFFFHFFFHIBMPC中I/O地址的分配输入/
输出设备占用地址数地址(16进制)硬盘控制器16320~32F软盘控制器83F0~3F7彩色图形显示适配器16
3D0~3DF异步通讯控制器83F8~3FFI/O端口独立编址方式的优点:①I/O端口具有独立的地址空间,不占用内存空
间。②I/O指令中的地址字段的长度较短,可以节省指令存储空间和指令执行时间。③由于访问存储器和访问I/O端口使用不同的指令,因
此编制的程序比较清晰易读。I/O端口独立编址方式的缺点:I/O操作指令的种类通常没有存储器操作指令丰富,设计程序时不够方便。(2)
I/O端口与主存统一编址将一个I/O端口作为存储器中的一个单元对待,每一个I/O端口占用一个存储器单元地址。编址时将I/O端口与
存储器单元一起进行编址。又称为存储器对应的输入输出方式或存储器映象编址方式。I/O端口与主存统一编址内存I/O端口内存I/O端口与
主存统一编址方式的优点:①CPU可使用所有存储器操作指令对I/O端口中数据进行操作,十分灵活和方便。②不需要用专门的指令及控制
信号区分是存储器还是I/O操作。使得系统相对简单。I/O端口与主存统一编址方式存在的问题:①I/O端口占用了内存单元的部分地址空
间,使内存容量减小。②由于在程序中不易分清指令访问的是存储器还是I/O端口,所以采用这种方式编制的程序不易阅读。9.2.2I
/O接口的分类1.并行接口与串行接口并行接口:接口与设备之间的信息传送是将一个字或一个字节的所有位同时并行地进行传送的。串行接口
:接口与设备之间的信息传送是逐位串行进行的。主机串行接口外设TxDDn-1~0RxD主机并行接口外设Dn-1~0I/On-1~02
.同步接口与异步接口同步接口:一般与同步总线相连,接口与总线采用统一时钟信号,无论CPU与I/O设备,还是存储器与I/O设备交换信
息,都与总线同步时钟脉冲同步。异步接口:与异步总线相连,接口与系统总线之间采用异步应答方式。3.直接程序控制、程序中断和直接存储器
存取接口直接程序控制接口:采用直接程序控制方式进行信息交换的接口。程序中断接口:主机与外设以程序中断方式进行信息交换控制的接口。直
接存储器存取接口:以直接存储器存取(DMA)方式控制信息传送的接口。接口的基本组成⑴设备选择电路用于接收总线传来的地址信息,经
译码后,决定选择哪个设备或I/O接口内部的部件。⑵数据缓冲寄存器(数据端口)用于存放主机与外设之间要传递的数据信息。⑶命令寄存
器(控制端口)用于存放主机向外设发送的控制命令。⑷状态寄存器(状态端口)用于存放外设或接口的工作状态。⑸其它有关部件如中断控制
逻辑、DMA控制逻辑以及各类特殊部件。9.3程序控制方式程序控制方式的特点:数据传输操作通过在处理机上执行的I/O指令来实现。
程序控制方式下数据传输的过程:⑴输入数据①CPU执行I/O输入指令,启动输入操作总线周期,将I/O接口数据缓冲寄存器中的数据取
到CPU中的累加器中。②CPU执行写存储器指令,启动写存储器总线周期,将累加器中存放的输入数据写到内存某个单元中。⑵输出数据①
CPU执行读存储器指令,启动读存储器总线周期,将内存某个单元中存放的待输出数据取到CPU的累加器中。②CPU执行I/O输出指令
,启动输出操作总线周期,将累加器中存放的待输出数据写到设备接口的数据缓冲寄存器中。★在程序控制方式下,内存与外设交换一个数据需要使
用两次总线,即需要执行一个访问存储单元的总线周期和一个访问I/O的总线周期。9.3.1直接程序控制方式直接程序控制方式完全
通过程序来控制主机与外设之间信息传送。通常是在用户程序中安排一段由I/O指令和其它指令组成的I/O程序,通过执行I/O程序实现对外
设的直接控制。1.直接数据传送方式CPU在控制与外设之间的数据传送之前,不需了解外设的工作状态,也不需考虑同步问题,即可直接
执行I/O指令,实现数据传送。在采用直接数据传送方式进行数据传输的接口中,不需设置状态寄存器及相关逻辑。直接数据传送方式也称为无条
件传送方式,是I/O数据传送控制最简单的一种,多用于I/O操作时间固定且已知的情况下。2.程序查询数据传送控制方式CPU在进行
输入/输出操作之前,先查询外设的状态,只有当外设准备就绪时,才进行数据传送。也称为条件传送方式。当有关操作的时间未知或不定时,往往
采用程序查询方式进行同步控制。在程序查询方式中,为了提供程序查询依据,通常需要设置状态寄存器,占用一个或多个I/O端口地址。程序查
询方式I/O程序的操作步骤例:程序查询式输入接口直接程序控制方式适用于下述场合:①CPU速度不高②CPU工作效率问题不是很重要
③需要调试或诊断I/O接口及设备的时候直接程序控制方式的缺点:①CPU与外围设备无法并行工作,CPU效率很低。②无法发现和处
理异常情况,不能响应来自外部的随机请求。9.3.2程序中断传送方式程序中断方式简称为中断方式,它是目前几乎所有计算机系统都具
备的一种重要工作机制。中断不仅用在输入输出过程控制中,而且在多道程序、分时操作、实时处理、人机联系、故障处理、程序的监视与跟踪、目
态程序和操作系统的联系以及多处理机系统中各机间联系方面都起着十分重要的作用。1.中断的基本概念1)中断问题的提出程序查询数据传送
方式影响了CPU的利用率,希望在主机与I/O外设交换数据的过程中,CPU无需等待也不必去查询I/O设备的状态,而去执行其他任务。中
断中断是指处理机暂时中止执行现行程序而转去执行处理更加紧迫事件的服务程序,待处理完毕后,再自动返回执行原来的程序的过程。相对于在C
PU上运行的程序,中断具有随机性(不可预测性)、异步性和不可再现性。①中断过程实质上是一种程序切换过程,因此必须处理好保存旧现场
、建立新现场的问题;②中断具有随机性,因此必须及时检测中断请求信号,以便能及时处理中断。③某个程序的某次执行可能被中断过多次,
而同一程序的另一次执行可能一次中断也没有遇到过,即中断不具备重复性。这是因为每次运行这个程序的计算环境不可能是百分百相同,这里计算
环境包括在内存中等待运行程序的种类、数量及外部因素(比如网络用户数量和用户种类)等等。2)中断机构的建立中断机构是指在一个计算机系
统中,为解决中断问题而制定的一整套软/硬机制、策略和方法。设计、实现中断机构的主要要素:(1)中断源的设置。定义当系统中出现了哪
些情形将会引发中断;(2)中断的分类与分级。决定如何对中断源分类,以及对各类中断应该赋予什么级别的优先级;(3)中断信号的建立
与传送。即如何记录中断请求以及如何将中断请求发送给CPU;(4)实现优先级比较的方式方法;(5)CPU响应中断的条件和时机,以
及CPU在响应中断时要做的工作;(6)CPU识别各个中断的方法,以及如何找到处理相应中断的中断处理程序;(7)是否允许正在执行
的中断处理程序被其他高级别的中断请求打断,即系统是否允许中断嵌套。3)中断系统的设计及实现要求(1)保证中断请求信号的建立及保
持的准确性,保证中断在未被响应时,中断请求信号不能被随便丢失;(2)保证中断响应的及时性,各类中断都能及时得到响应,不应出现某些
中断由于某种原因长时间得不到响应;(3)防止在处理某个中断过程中,又去响应同样的中断;(4)保证中断处理过程的正确性,在中断处
理过程结束后能够正确返回被中断的程序使之继续执行;(5)高级中断能打断低级中断的处理过程,允许中断嵌套;(6)中断优先级的设置
应具备方便性及灵活性,允许动态改变一个中断的优先级别。2.中断源的设置中断源是指能引起中断事件的原因。在一个计算机系统中设置什么
样的中断源,取决于这个计算机系统希望利用中断这种手段来解决什么样的问题。执行主程序继续执行主程序继续执行主程序响应中断中断返回响应
中断中断返回CPU启动打印机传送数据传送数据准备打印打印发中断请求发中断请求打印机空闲启动接收数据接收数据(1)解决主机与外设的
速度匹配问题,实现CPU与I/O设备并行工作。(2)实现人—机联系(3)单步调试程序(4)实现实时控制(5)及时处理异常情
况,提高机器的可靠性(6)实现应用程序和操作系统的联系。(7)实现多道程序运行(8)实现多处理机系统中各处理机间的联系(8)
实现多台设备并行工作中断源的出现①在硬件装置上,如I/O设备接口控制器。此时中断由在硬件装置上发生的事件所引起。②隐藏在指令
中,如自陷指令或中断指令。③CPU内部某个状态寄存器,如浮点数计算溢出标志寄存器。②③两类中断源所引发的中断,都是在CPU执行
某条指令时由某种特殊情况而引起的,此时中断产生在CPU内部,而不像设备中断那样产生于CPU外部。3.中断源的分类硬件中断软件中断
外部中断内部中断。外部中断中断源在CPU外部,如设备中断、存储器故障中断、电源故障中断等等。设备中断具有随机性(不可预测性)、异步
性和不可再现性。故障中断具有可再现性,比如两次分别对内存故障单元的访问都会引发存储器故障中断。内部中断中断的原因由CPU当前执行的
指令所引起,即中断源在CPU内部。内部中断具有可预测性和再现性。如溢出中断,只要程序和数据不做任何改动而两次执行同样的程序都会发生
溢出中断。实际上内部中断(或软件中断)是广泛意义上的中断,因为这些中断已不具备随机性(不可预测性)、异步性和不可再现性,但是处理这
类中断的方法与处理设备中断的方法相同。在有些计算机系统中,为了和传统意义上的中断(Interruption)相区别,将内部中断称为
例外或异常(Exception)。中断处理的过程⑴中断请求中断源以硬件信号形式通过中断控制线路向CPU提出中断请求。⑵中断判
优及响应根据中断优先权进行判断,择优予以响应。⑶保护现场保护主程序的运行现状,如PC值、PSW、寄存器和内存中的重要数据。⑷中
断服务按中断源的工作要求,进行各类特定的数据传送或控制处理。中断服务程序:完成中断服务的程序。⑸恢复现场为了正确返回原程序,需要
进行恢复现场的工作,即将前面保存的寄存器的内容送回原寄存器。⑹中断返回返回被中断的程序,继续执行。硬件故障强迫中断软件故障内中
断自愿中断:程序中预先安排的中断外设请求中断外中断控制台中断中断的分类⑴按中断来源分⑵按中断服务程序入口的获取方式分向量中断
:由中断系统硬件,直接向主机提供被响应中断的中断向量地址。非向量中断:通过软件查询方式识别中断源,转入相应的中断服务程序入
口地址。⑶按是否可屏蔽分可屏蔽中断:CPU可以禁止响应的外部中断。不可屏蔽中断:CPU必须响应的外部中断。4.中断请求
信号的建立与传送1)中断请求信号的建立与中断屏蔽中断请求信号的建立,基于中断源有请求中断的需要。例如,当外设已“准备就绪”或“完成
一次操作”,可以用这类状态信号作为中断请求信号建立的原始信号,使中断请求触发器的状态置“1”,表明已有中断请求。设备中通常有三种
状态:空闲、就绪、忙Busy=0Ready=0空闲启动清除清除准备好忙就绪Busy=0Ready=1产生中断请求Busy=1Rea
dy=0再启动外设发出请求中断信号的条件①外设准备就绪(Ready=1)②外设的中断请求没有被屏蔽中断屏蔽中断请求信号是否能够
传送给CPU,要看当时占有CPU执行程序的优先级。如程序的优先级高于或等于当前中断请求的优先级,则不应将中断请求信号传给CPU,即
需进行中断屏蔽。如占有CPU进程的优先级低于请求中断的优先级,则不应屏蔽这个中断,而使CPU能够响应这个中断。中断屏蔽:中断源的中
断请求不能向CPU发出。可以根据需要对中断请求信号予以屏蔽。①先屏蔽方式:在中断请求触发器IRQ的D端进行屏蔽。②后屏蔽方式:
在中断请求触发器IRQ的输出端进行屏蔽。③集中屏蔽方式:即在公共接口逻辑中设置一个中断控制器,内含一个屏蔽字寄存器,CPU将屏蔽
字送入其中。在各中断源的接口不另设屏蔽触发器。将各个请求信号汇集到中断控制器,并与屏蔽字比较,若未被屏蔽,则中断控制器送出一个公共
的中断请求信号INT,送往CPU。IRQIRQ1QIRQCPDQIRQCP
D&TDTDTMTMTD:状态信号,TD=1,需要请求中断TM:中断屏蔽信号,TM=1,屏蔽中断请求中断控制器IR
Q0中断屏蔽寄存器中断请求信号INT……IRQ7集中屏蔽方式2)中断请求信号的传送一台计算机系统中有多个中断源,可能产生多个中断请
求信号,因此需要解决多个中断请求信号如何传送给CPU的问题。⑴独立请求线方式(多线单级结构)各中断源单独设置自己的中断请求线,多
根请求线直接送往CPU。当CPU接到中断请求信号后,立即知道请求源是谁,并予以相应的处理。这种方法有利于实现向量中断,因为可以通过
编码电路形成向量地址。但因为CPU所能连接的中断请求线数目有限,所以中断源数目难以扩充。独立请求线方式(2)公共请求线方式(单线
多级结构)各中断源的请求信号通过三态门汇集到一根公共请求线,CPU只需接收一根中断请求线的请求信号。或在CPU外部设置一个中断控制
电路,该电路负责将所有中断源所发出的中断请求汇集起来,通过或门向CPU请求中断。这种方法节省引脚,但CPU响应中断后,还需要通过一
定逻辑来识别是哪个中断源发出的中断请求,所以响应速度略慢。公共请求线方式(3)独立请求线与公共请求线兼有方式将要求快速响应的中断
请求,采取独立请求线方式,以便快速识别。将其余响应速度允许相对低些的中断请求,汇集为一根公共请求线。有些微处理器由于引脚数有限,就
采取这种模式。5.中断判优有关概念中断排队:中断系统设计人员对中断请求的响应次序作出安排。中断判优:系统运行过程中,当有多个中断
源同时请求中断时,根据中断排队事先规定的次序判断中断请求的响应优先次序。中断优先级(中断优先权):根据中断源中断任务的紧迫程度,给
各中断请求安排的响应次序。中断排队的原则①内部中断优先于外部中断②故障中断优先于设备请求中断③非屏蔽中断优先于可屏蔽中断④
输入操作的中断请求优先于输出操作的中断请求⑤数据有效时间短的中断优先于数据有效时间长的中断具体设计时,中断优先级可以是固定的,也
可以是动态变化的。可以采用硬件或进行中断排队和判优。1)CPU现行程序与中断请求间的判优CPU是否响应中断请求,要看当时占有C
PU进程的程序的优先级。如程序的优先级高于或等于当前中断请求的优先级,则CPU可以不响应这个中断,或说CPU不允许被中断、中断被禁
止。如占有CPU进程的优先级低于请求中断的优先级,则不应禁止这个中断,而使CPU能够响应这个中断,或说CPU允许中断。中断禁止:在
一定条件下,CPU不允许响应中断。中断允许:在一定条件下,CPU允许响应中断。CPU现行程序与中断请求的判优方法⑴通过设置CPU
内部的“中断允许”状态进行判优在CPU内部设置“允许中断”触发器IEN,指令系统提供开中断与关中断功能。开中断操作使TIEN=
1,关中断使TIEN=0。如果CPU处于关中断状态,则表示所有外部中断请求要求的服务都没有现行程序的任务重要,CPU不响应外部中
断请求。如果CPU处于开中断状态,则可以响应外部中断请求。⑵在现行程序的程序状态字(PSW)中设置现行程序的优先级若中断请求的优
先级高于现行程序的优先级,则予以响应。CPU内部有一个优先级比较逻辑,对PSW中给定的优先级与中断请求的优先级进行比较,决定是否需
要暂停现行程序去响应中断请求。操作系统可以根据实际情况动态地对PSW中的优先级进行调整。例:某计算机内部程序与外部中断请求优先级和
PSW的规定为:处理机0级765PSW内部优先级外部请求0级处理机1级外部请求1级处理机7级外部请求7级2)中断请求之间
的判优(1)软件查询响应中断请求后,先转入中断查询程序,按优先顺序依次询问各中断源是否提出请求。如果是,则转入相应的服务处理程序
。如果没有,则继续往下查询。查询的顺序体现了优先级别的高低,改变查询顺序也就修改了优先级。在硬件上,每一个中断源都附带一个标志,用
于代表相应的中断源是否请求中断。CPU用测试指令按一定优先次序检查这些标志,即可确定中断源是否发出中断请求。软件查询方法适用于低速
和中速设备,多用于公共请求线方式。优点:中断条件标志的优先级可用程序任意改变,灵活性好。缺点:设备多时响应速度太慢。(2)并
行优先排队逻辑采用硬件并行优先排队逻辑对具有独立中断请求线的中断请求进行判优。并行排优逻辑适于具有多请求线的系统,速度较快,硬件代
价较高。(3)链式优先排队逻辑各个中断源提出的中断请求都送到公共中断请求信号线上,形成公用的中断请求信号INT送往CPU。响应
请求时,CPU向I/O设备发出一个公用的中断应答信号(INTA),利用硬件优先链电路判断中断优先级,判优结果可用不同的设备码或中断
源类型码来表示。链式优先排队逻辑多用于采用公共请求线的系统。INTR2INTR4INTR1INTR3中断排队输入中断排队输出INT
IINTOINTR1INTR2INTR3INTR4中断回答INTA543送CPU2100CH0FH12H0EH(4)二维结构的
优先排队设CPU可以接受n+1根中断请求线,每根请求线的优先级称作主优先级,在CPU内部有一个相应的判优电路,以首先响应优先级
最高的请求。如果程序状态字中有CPU现行程序的优先级编码,这个判优电路同时担负CPU与请求之间的判优问题。将有关外设分成n+1
组,每组的请求汇集到同一根请求线上,占有同一个主优先级。在一个小组内,各设备又作进一步的优先级划分,称为次优先级。通常在小组内采取
菊花链式的优先链结构。二维结构的优先排队(5)采用中断控制器集成芯片的优先逻辑在微型计算机中,广泛使用中断控制器集成芯片,如In
tel8259A。中断控制器将中断请求信号的寄存、汇集、屏蔽、排优、编码等逻辑,集成在一块芯片之中。可编程中断控制器Intel
8259A5.中断响应CPU接到中断请求信号后,若满足响应中断的条件,即暂停现行程序的执行,而转入中断处理,将这一过程称为中断
响应。1)CPU响应中断应具备的条件:(1)有中断源请求中断。(2)CPU允许响应中断,即处于开中断状态。(3)现行指令不是
停机指令(4)一条指令执行结束。一般情况下,CPU响应中断的时间是在一条指令执行结束。但某些特殊的中断,例如指令执行过程中,取数
时所需数据不在主存,这时不及时处理,指令就无法执行下去,这就要求在指令执行过程中响应中断。中断响应流程取指令执行指令Y停机指令停机
NY电源故障NYN中断请求中断处理2)中断响应过程中应完成的操作(1)关中断以便在保存现场过程中不允许响应新的中断请求,确保现
场保存的正确性。(2)保存断点地址和程序状态字(3)转入中断服务程序入口,以便执行相应的中断服务程序,完成中断处理任务中断响应周期
的操作流程中的操作不是在程序中安排的,而是直接由硬件完成的。通常把这种操作称为执行中断隐指令。中断隐指令操作流程7.中断服务程序
入口地址的获取方式1)非向量中断CPU在响应中断时只产生一个固定的地址,该地址是中断查询程序的入口地址,这样CPU可以转去执行查询
程序,通过软件查询确定被优先批准的中断源,然后执行相应的中断服务程序。①软件查询方法CPU响应中断请求后,先转入中断查询程序,按
优先顺序依次识别中断源,并转入相应的中断服务程序入口。例:某机器各接口将中断请求存放在状态端口的状态字寄存器STR中,CPU响应中
断请求后,转入查询程序。3INTRSTR=1ReadyINAL,STRATESTAL,08HJNZA入口IN
AL,STRBTESTAL,08HJNZB入口┇②通过硬件排队与编码电路获得优先级最高的中断源的设备码,并转入
相应的相应的中断服务程序入口。例:响应中断后,执行程序:INTAAC;发中断回答信号INTA,将设备码读入累加器AC中JM
PAC+100H;转入(AC)+100H处执行2)向量中断中断向量:所有中断源对应的中断服务程序的入口地址及其程序状态字PS
W的有序集合。中断向量存放在特定的存储区中,有些计算机没有完整的程序状态字,则中断向量仅指中断服务程序入口地址。中断向量表:存放中
断向量的表。所有的中断服务程序入口地址(或包括服务程序的状态字)组织成一个一维的表格,存放在一段连续的存储区中。中断向量地址:访问
中断向量表的地址码,即读取中断向量所需的地址,也称为中断指针。中断向量表中断向量地址1入口地址1程序状态字1中断向量地址2入口地址
2程序状态字2︰︰中断向量地址n入口地址n程序状态字n中断向量向量中断:将各个中断服务程序的入口地址(或包括状态字)组织成中断向量
表;响应中断时,由硬件直接产生对应于中断源的向量地址;据此访问中断向量表,从中读取服务程序入口地址,由此转向中断服务程序。向量中断
的响应工作一般在中断周期中由硬件直接实现。向量中断的特点:能够根据中断请求信号快速、直接地转向对应的中断服务程序。现代计算机基本上
都具有向量中断功能。向量中断的工作过程⑴中断源提出中断请求。⑵若CPU允许中断,则发出中断回答信号。⑶优先级编码电路形成优先
级最高的中断请求的中断向量地址存入中断向量地址寄存器VAR。⑷保护断点和现场,PC、PSW入栈。⑸根据中断向量地址,将对应的中
断服务程序入口地址和PSW送入PC和PSR。⑹转入中断服务程序,进行中断服务。⑺中断返回,将保存的PC和PSW弹回PC和PSR
。主存0级入口0级PSW1级入口1级PSW┇7级入口7级PSW⑤VAR③⑥中断服务⑥中断服务堆栈PSWPC××INTR0CPU
优先级编码电路INTR1INTRPC①④PSRINTR7INTA②⑦8.多重中断与中断屏蔽1)多重中断(中断嵌套)CPU在处理
某一级中断过程中.又遇到了新的中断请求,CPU暂停原中断的处理,而转入处理新的中断,待处理完毕,再恢复原来中断的处理,这种中断称为
多重中断,也称中断嵌套。2)多重中断的处理原则⑴若新的中断的优先级高于原来中断的优先级,则响应新的中断请求;⑵若新的中断优先
级同于或低于原来中断的优先级,则不予响应,必须待原来中断处理完,再响应新的中断。中断嵌套主程序服务程序1服务程序2N1:M1:响应
1响应2K:L:K+1:L+1:中断返回中断返回3)实现多重中断处理的方法采用中断屏蔽技术。中断屏蔽:当产生中断请求后,用程序有
选择地封锁部分中断,而允许其余部分中断仍得到响应。4)中断屏蔽的实现方法为每一个可屏蔽的中断源设一个中断屏蔽触发器来屏蔽该中断源
的中断请求。为了实现多重中断的处理原则,当CPU响应某个中断请求后,送出一个新的屏蔽字,屏蔽同级和低级中断,只允许响应更高级中断。
例某计算机的中断系统有五级中断,优先次序为1>2>3>4>5若CPU在执行正常程序时,有下列事件发生:(1)中断1,2,4
提出请求;(2)在处理中断4过程中,又有中断3提出请求;(3)在处理中断3时,又出现1,5中断请求。请画出CPU对所有事件
的处理过程图。1,2,4中断源用户程序中断服务程序12345
31,5time5)中断屏蔽技术用于调整中断优先级利用硬件排队判优所分配的优先级是固定的,但有时需要动态地修改优先次序。例如,
有些设备的优先级低,经常得不到响应的机会,在适当的时段中就需让它升级,使各设备得到的响应机会均衡、合理一些。中断升级:在一段时间内
,利用屏蔽技术将原来优先级高的设备暂时屏蔽,而使优先级低的设备的优先级相对提高。过一段时间再调整屏蔽字,或者复原,或者按一定规律修
改屏蔽字,以适应程序的需要。例:优先级顺序为1>2>3>4>5时的屏蔽码优先级顺序修改为1>4>3>2>5时的屏蔽码9.
中断服务(中断处理)取得中断服务程序的入口地址后,CPU开始执行中断服务程序,完成规定的中断处理任务。中断服务程序一般由起始、主体
、结尾三部分组成。1)起始部分①判明中断原因,识别中断源,对于不同中断源转入不同的服务程序。对于向量中断,直接由硬件判明中断
源并给出中断向量地址,转入相应中断服务程序。对于非向量中断,需通过执行一段程序判明中断源,转入相应中断服务程序。②设置屏蔽字,
封锁同级与低级中断。③保存中断现场除了PSW外,还要保存一些在执行中断服务程序过程中可能被改变的寄存器的内容。④开中断以便在本
次中断处理过程中,允许响应更高级的中断请求。这是因为在中断响应时,为避免影响保护现场,进行了关中断操作。2)主体部分执行具体的为
中断源服务的程序。3)结尾部分①关中断,以便在恢复现场过程中不允许响应新的中断。②恢复中断现场,将原来保存的寄存器内容送回原寄存
器。③清中断请求信号,表示本次中断处理结束。④清屏蔽字,开放同级与低级中断。⑤开中断,以便响应新的中断请求。⑥恢复PSW、PC,返
回被中断的程序。例:在单级中断系统中,中断服务程序执行顺序是()I、保护现场II、开中断III、关中断?IV、保存断点
V、中断事件处理VI、恢复现场VII、中断返回I、II、V、III、VI、II、VII例:输出设备的程序中断过程①CPU设
置内存存储区域的首地址和需要进行数据传输的字节数。②设置中断向量③发送设备地址,启动被选设备④外设准备好,发送中断请求,并被
响应⑤执行中断服务程序⑥中断返回10.中断响应的及时性中断延迟时间CPU执行中断响应隐指令的开销。即中断源提出中断申请后到中
断处理程序的第一条指令开始执行之间的时间。影响延迟时间的因素⑴指令的执行时间如果指令系统中有执行时间较长的指令,则需要考虑提供
在指令执行过程中也可以对外部中断请求予以响应的能力。⑵程序执行环境的转换开销即保护断点、现场和恢复断点、现场时CPU的开销。可以
在CPU内部采用多组寄存器“窗口”,使得环境转换得以加快。⑶中断服务程序入口地址的确定方式可采用固定地址对应的方法,即某个中断源
的中断服务程序的第一条指令,放在固定的内存单元中,这样CPU在响应这个中断时,可直接转入中断服务程序。可考虑将中断向量表安排在CP
U内部的Cache中,以加快入口地址的确定时间。中断处理程序的处理时间中断处理程序最好安排在Cache中,以便加快中断处理的速度
。例:某计算机的CPU的主频为500MHz,所连接的某外设的最大数据传输率是20KBps,该外设接口中有一个16位的数据缓冲器,
相应的中断服务程序的执行时间为500个时钟周期。请回答:⑴是否可以用中断方式进行该外设的输入输出?若能,在该设备持续工作期间,CP
U用于控制该设备进行I/O操作的时间占整个CPU时间的百分比大约是多少?⑵若该设备的最大数据传输率改为20MBps,是否可以用中断
方式进行该外设的输入输出?解:该外设接口中有一个16位的数据缓冲器,若采用中断方式进行I/O操作,可以每16位(即2个字节)进行
一次中断请求,因此,中断请求的时间间隔为:2B/20KBps×106=100μs中断服务程序的执行时间为:500/500MHz×1
06=1μs中断响应时间相对于中断服务程序的执行时间来讲时间很短,故整个中断响应加中断服务的时间约为1μs多一点,远远小于中断请求
的时间间隔。因此可以用中断方式进行该外设的输入输出。采用中断方式控制该设备进行I/O操作的时间占整个CPU时间的百分比大约为1/1
00=1%若该设备的最大数据传输率是20MBps,则中断请求的时间间隔为:2B/20MBps×106=1μs而整个中断响应加中断服
务的时间约为1μs多一点,即一次中断处理未完,新的请求就会来到,所以,不可以用中断方式控制该设备进行I/O操作。中断处理的全过程①
中断请求;②择优响应;③保护现场;④中断服务;⑤恢复现场;⑥中断返回;在中断处理的过程中,有些是由硬件完成的,有些是由
软件完成的,因此中断是一种软、硬件结合的技术手段。不同的机器,软、硬件功能分配的比例有所不同。9.4直接存储器访问方式直接存储
器访问方式(DirectMemoryAccess)简称DMA方式。DMA方式:以主存为中心,采用硬件手段在主存与I/O设备之间
建立直接的数据传送通路,由DMA控制器(DMAC)取得总线控制权,控制主存与I/O设备之间的数据传送,在传送过程中不需要CPU的程
序干预的数据传送控制方式。DMA方式主要用于高速外设按照连续地址直接访问存储器。DMA方式CPU程序控制主存接口设备DMA控制DM
A控制器9.4.1DMA方式的特点与应用场合1.DMA方式的特点⑴以响应随机请求的方式,实现主存与I/O设备间的快速数据
传送。⑵采用DMA方式控制数据传送时,仅需占用系统总线,不切换程序,不存在保存断点、保护现场、恢复现场、恢复断点等操作。因此DM
A传送的插入不影响CPU的程序执行状态,除了访问主存的冲突外,CPU可以继续执行自己的程序,提高了CPU的利用率。⑶DMA方式只
能处理简单的数据传送,难以识别与处理复杂的情况。2.DMA方式的应用DMA方式一般应用于主存与高速I/O设备间的简单数据传送
(高速I/O设备如磁盘、磁带、光盘等外存储器),以及其它带有局部存储器的外围设备、通信设备等。如:⑴磁盘与主存的成块数据传送⑵
通信设备的批量数据传送⑶动态存储器的刷新⑷大批量数据采集系统DMA传送是直接依靠硬件实现的,可用于快速的数据直传。但DMA方式
本身不能处理复杂事态。因此,在某些场合常综合应用DMA方式与程序中断方式,二者互为补充。典型的例子是磁盘调用,磁盘读写采用DMA方
式进行数据传送,而对寻道是否正确的判别处理、批量传送结束后的善后处理,则采用程序中断方式。9.4.2DMA的传送方式1.C
PU停机方式用CPU停机方式实现DMA传送时,CPU停止工作,让出对总线的控制权,而由DMAC接管总线,进行数据传送。数据传送结束
后,再将总线交还给CPU。CPU停机方式的特点优点:控制简单,比较容易实现,是最常用、最简单的一种DMA实现方式,大部分DMAC都
采用这种方式。缺点:由于在采用这种方式进行的DMA传送期间,使CPU处于空闲等待状态,降低了CPU的利用率,并且可能会影响到某些实
时性很强的操作,如中断响应和对动态RAM的刷新等。2.周期挪用(周期窃取)方式当I/O设备无DMA传送请求时,CPU正常访问主存
。当I/O设备需要使用总线传送数据时,产生DMA请求,DMAC把总线请求发给CPU。①若CPU本身无使用总线的要求,CPU就把总
线交给DMAC,由DMAC控制I/O设备使用总线②如果此时CPU也要使用总线,则CPU自身进入一个或几个“空闲总线周期”状态,即
CPU让出一个或几个总线周期给DMAC(也称DMAC“挪用”一个总线周期),DMAC利用此总线周期控制传送一个数据字后,再把总线交
还给CPU,以便CPU可以继续执行总线操作。周期挪用采用周期挪用方式时,外设要求DMA传送的三种情况:⑴外设要求DMA传送时,
CPU不需访问主存(如CPU正在执行乘法指令,由于乘法指令执行时间较长,此时CPU不需访问主存),故外设访存与CPU不发生冲突。⑵
外设要求DMA传送时,CPU正在访存,此时必须等CPU存取周期结束后,CPU才能让出总线控制权。⑶外设要求访存时,CPU也要求
访存,这就出现了访存冲突。此时要求外设访存优先于CPU访存。因为外设不立即访存就可能丢失数据,这时DMAC要窃取一、二个存取周期,
使CPU延缓一、二个存取周期再访存。周期挪用方式的优点与CPU暂停访存的方式相比,周期挪用方式既实现了I/O传送,又较好地发挥了主
存与CPU的效率,是一种广泛采用的方法。周期挪用方式的缺点每传送一个数据,DMA都要产生访问请求,待到CPU响应后才能传送,因此判
优操作及总线切换操作非常频繁,其花费的时间开销较大。往往在传输一个数据块时,需要DMA控制器多次申请使用总线,这影响了DMA的数据
传输速度。周期挪用方式适用于I/O设备接口控制器中数据缓冲器容量不大的场合,例如在接口控制器中仅设置一个数据寄存器的情形,对具有较
大容量数据缓冲存储器的高速外设来说是不合适的。3.DMA与CPU交替访问内存方式将一个CPU周期分为两个分周期,与DMA分别
使用。其中一个专供DMA访存,另一个专供CPU访存。这种方式不需要总线使用权的申请建立和归还过程,总线使用权是通过不同的周期分别控
制的。在这种工作方式下,CPU既不停止主程序的运行也不进入等待状态,在CPU不知不觉中完成了DMA的数据传送,故又有“透明的DMA
”方式之称,当然周期扩展方式会使CPU的处理速度减慢,其相应的硬件逻辑也变得更为复杂。9.4.3DMA的硬件组织在目前的计算机系
统中,通常专门设置了DMA控制器,并且较多采取DMA控制器与DMA接口相分离的方式。1.DMA控制器(DMAC)DMAC负责申
请、接管总线的控制权、发送地址和操作命令以及控制DMA传送过程的起始与终止。DMA控制器独立于具体I/O设备,可以为各个设备通用。
DMAC的功能①接收外设的DMA请求,向CPU发出总线请求信号。请求CPU让出总线。②当CPU发出DMA响应信号之后,接管
对总线的控制,进入DMA方式。③对存储器寻址,输出和修改地址信息。④向存储器和外设发出相应的读/写控制信号。⑤控制传送的字节
数,判断DMA传送是否结束。⑥在DMA传送结束以后,向CPU发出结束DMA请求信号,释放总线,使CPU恢复对总线的控制,继续正常
工作。2.DMA接口用于实现与设备的连接和数据缓冲,反映设备的特定要求。DMA接口的功能①根据寻址信息访问I/O设备②将数据
从设备读入数据缓冲寄存器,或将数据缓冲寄存器中的数据写入设备。③在需要进行DMA传送时,向DMAC提出DMA请求。获得批准后,接
口将数据缓冲寄存器中存放的数据经数据总线写入主存单元或将主存单元存放的内容写入接口中的数据缓冲寄存器。DMA接口中一般包含数据缓冲
寄存器、I/O设备寻址部件、DMA请求逻辑等。9.4.4DMA控制器的组成1.DMAC的基本组成为了实现DMAC的功能,DM
AC内部除需要有接受和发送DMA请求和响应信号的能力外,还应具有地址寄存和计数功能,以便控制对存储器的寻址;具有传输量计数器,能够
对传送的数据个数进行计数。DMAC的基本组成(1)主存地址寄存器MAR用于存放主存中需要交换数据的地址。在DMA传送前,须通过程
序将数据在主存中的首地址送到主存地址寄存器。在DMA传送过程中,每交换一次数据,将地址寄存器内容加/减1,指向下一单元,直到一批数
据传送完毕为止。(2)传输量计数器WC用于记录传送数据的总字数。传输量计数器一般采用补码表示要传送的数据量。在DMA传送过程中
,每传送一个字(或字节),计数器自动加1,当WC内容溢出时,表示数据已全部传送完毕,DMAC发出DMA传送结束信号。(3)数据缓
冲寄存器DBR用于暂存每次传送的数据。通常DMA接口与主存之间采用字传送,而DMA与设备之间可能是字节或位传送。因此DMA接口中还
可能包括有装配或拆卸字信息的硬件逻辑,如数据移位缓冲寄存器、字节计数器等。有的系统采用外设控制器上的数据缓冲器与内存单元之间通过数
据总线直传的方法,这样就可以不用数据缓冲寄存器。(4)设备地址寄存器DAR存放I/O设备的设备码或表示设备信息存储区的寻址信息
。如磁盘数据所在的区号、盘面号和柱面号。具体内容取决于设备的数据格式和地址的编址方式。(5)控制/状态寄存器CSR存放有关控制
和状态信息,如传送方式、读/写状态、传送完毕与否等。也可使用多个寄存器,分别存放控制字和状态字。(6)DMA控制逻辑DMA控制逻
辑负责完成DMA的预处理(初始化各类寄存器)、接收设备控制器送来的DMA请求信号、向设备控制器回答DMA允许(应答)信号、向系统申
请总线以及控制总线实现DMA传输控制等工作。(7)DMA中断控制逻辑DMA中断控制逻辑负责在DMA操作完成后向CPU发出中断请求
,申请CPU对DMA操作进行后处理或进行下一次DMA传送的预处理。注意:DMA传送过程中的中断与I/O中断的技术相同,但中断的目
的不同。I/O中断是为了数据的输入或输出,DMA传送过程中的中断是为了报告一批数据传送结束。它们是I/O系统中不同的中断事件。(8
)数据线、地址线和控制信号线DMA控制器中设置了与主机和I/O设备两个方向的数据线、地址线和控制信号线以及有关收发与驱动电路。
9.4.5DMA控制方式下的数据传送过程1.DMA预处理在DMAC开始工作之前,CPU必须给它预置的信息:①控制寄存器
写入DMA操作命令。给DMA控制逻辑指明数据传送方向是输入(主存写)还是输出(主存读)。②向DMA设备地址寄存器送入设备号,并启
动设备。③向DMA主存地址寄存器送入交换数据的主存起始地址。④向传输量计数器送入交换数据的个数。预处理工作由CPU执行几条输入
输出指令完成,称为初始化工作。初始化工作完成后,CPU继续执行原来的程序。当外部设备准备好发送的数据(输入)或上次接受的数据已经处
理完毕(输出)时,它便通过DMA接口向CPU提出占用总线的申请,若有多个DMA同时申请,则按轻重缓急由硬件排队判优逻辑决定优先等级
。待设备得到主存总线的控制权后,数据的传送便由该DMAC进行管理。2.数据交换操作DMAC获得总线后,即可按规定的传送方式,进行
数据的输入或输出操作,直到将所有数据传输完毕,DMAC将总线交还给CPU。需要时还向CPU发出中断请求。3.DMA后处理CPU响
应中断后,为DMA传送作结束处理工作。①校验送入主存的数据是否正确②决定是否继续用DMA方式传送,还是结束传送③测试在传送过
程中是否发生了错误④判断传送工作是否正常结束例:DMA数据输入过程(DMA写)①从设备读入一个字到DMA的数据缓冲寄存器BR中
,表示数据缓冲寄存器“满”;②外设向DMAC发请求(DREQ);③DMAC向CPU申请总线控制权(HRQ);④CPU发回H
LDA信号,表示允许将总线控制权交给DMAC;⑤将DMA主存地址寄存器中的主存地址送地址总线;⑥通知设备已被授予一个DMA周期
(DACK),并为交换下一个字做准备;⑦将DMA数据缓冲寄存器的内容送数据总线;⑧向存储器发写命令:⑨修改主存地址和字计数值
;⑩判断数据块是否传送结束,若未结束,则继续传送;若已结束,(字计数器计数为0),则向CPU申请程序中断,标志数据块传送结束。例
:DMA数据输出过程(DMA读)①当DMA数据缓冲寄存器已将输出数据送至I/O设备后,表示数据缓冲寄存器已“空”;②外设向DM
AC发请求(DREQ);③DMAC向CPU申请总线控制权(HRQ);④CPU发回HLDA信号,表示允许将总线控制权交给DMAC
使用;⑤将DMA主存地址寄存器中的主存地址送地址总线,并发存储器读命令;⑥通知设备已被授予一个DMA周期(DACK),并为交换
下一个字做准备:⑦主存将相应地址单元的内容通过数据总线读入到DMA的数据缓冲寄存器中;⑧将DMA数据缓冲寄存器的内容送到输出设
备;⑨修改主存地址和字计数值:⑩判断数据块是否已传送完毕,若未完,继续传送;若已送完,则向CPU申请程序中断。例:某磁盘采用D
MA方式与主机交换信息,其数据传输率为2MB/s。设DMA预处理需要1000个时钟周期,DMA传送完成后的中断处理需要500个时钟
周期,DMA平均传输的数据块的大小为4KB。设处理机工作的时钟频率为50MHz,请计算磁盘工作时DMA操作时间占用CPU工作时间的
比率(设不考虑DMA操作与CPU争用主存产生的影响)。解:DMA处理3个工作时段中,需要CPU参与的是预处理时段和传送完成后的中断
处理时段,一次DMA传送需要一次预处理和一次中断后处理。要达到2MB/s的数据传输率,磁盘每秒需要执行的DMA次数为:2MB/4K
B=500次每次DMA操作所需要的CPU时间为:1000+500=1500时钟周期主频为50MHz的CPU每秒的时钟周期数为:50
×106个时钟周期则磁盘工作时DMA操作时间占用CPU工作时间的比率为:500×(1000+500)/50×106=0.75/
50=1.5%DMA方式与程序中断的比较程序中断DMA方式以CPU为中心,采用软硬结合,以软件为主的方式,控制设备与主机之间的数据
传送。以主存为中心,采用硬件手段,控制设备与主存间直接进行数据传送。因为需要程序切换,所以需要保护与恢复现场。由DMA控制器直接控
制数据传送。在数据传送期间,不需要CPU干预,不需保护与恢复现场。适合于慢速外设。适合于快速外设。必须在一条指令执行结束后才能响应
。在一个访存周期结束后即可响应。可实现多种处理功能仅用于数据传送总结直接程序控制(查询式传送):外设与主机工作完全串行。程序中断:
外设与主机工作大部分并行。DMA方式:外设与主机工作几乎完全并行,系统开销很小。随着I/O系统的日益复杂,仅靠中断和DMA方式已不
能满足要求。因为程序中断的系统开销较大;DMAC可带的设备少,功能简单,且系统中多个DMAC容易造成访存冲突,所以又出现了通道和I
/O处理机方式,从而可以更好地控制I/O系统的工作。9.5I/O通道方式1.概述I/O通道是一种能够执行有限I/O指令,
并且能够被多台外围设备共享的小型DMA专用处理机。在计算机系统中,通道作为一个独立的I/O控制部件,能执行有限的I/O通道指令,代
替CPU管理和控制外设。通道使主机与I/O设备之间能够达到更高的并行程度。I/O通道的任务控制、管理输入/输出操作,为I/O设备提
供传送数据的通道。I/O通道的特点⑴I/O通道有自己的指令系统,能够独立执行用通道命令编写的输入输出控制程序,产生相应的控制信
号控制设备的工作。⑵I/O通道可根据需要控制多种不同的设备。⑶每个I/O通道可以连接多个外部设备,每个外设对应一个子通道。⑷
I/O通道通过系统中的数据通路与设备的控制器进行通信。I/O通道与DMA方式的异同⑴相同点I/O通道与DMA方式都是在主存与I/
O设备之间建立数据通路,用控制器控制数据的直接传送。⑵不同点DMA方式通过硬件控制主存与设备之间的信息传送。I/O通道通过执行
通道程序控制主存与设备之间的信息传送。DMA方式只能控制少量的同类设备,只能传送数据。I/O通道可控制多种不同的设备,除传送数据
外,还可以接口的初始化、故障诊断与处理等工作。I/O通道与程序中断方式的异同⑴相同点I/O通道与程序中断方式都是通过执行程序去管
理I/O操作,因而灵活性较强,都可以通过扩展程序的功能来扩展处理能力。⑵不同点程序中断方式在数据传输时需要占用CPU的时间;I/
O通道在被CPU启动后,基本可以取代CPU去管理I/O操作,使CPU可以从大部分I/O管理中解脱出来。带有I/O通道的I/O系统结
构主机—通道—设备控制器—设备四级连接方式。⑴CPU的任务执行I/O指令。启动/关闭通道与设备。处理来自通道的中断,如数据传输
中断、故障中断等。通道的管理的任务由操作系统完成。⑵I/O通道的任务①接受CPU发来的I/O指令,与指定的设备连接,访问指定的
设备。②执行CPU为通道组织的通道程序。从通道缓冲区中读取通道指令,经译码分析,向指定的设备控制器或设备发出各种操作控制命令。③
组织和控制数据在内存与外设之间的信息传送操作。根据需要提供数据缓存空间以及数据存入内存或从内存中读取的地址;提供外设的有关地址;
控制传送的数据量;指定传送工作结束时要进行的操作,根据对传送数据的计数判断数据传送工作是否结束。④在数据传输过程中完成必要的格式
变换,例如,把字拆卸为字节,或者把字节装配成字等。⑤读取和接收外设的状态信息,检查外围设备的工作状态是正常还是故障,形成通道状
态信息,并根据需要将设备的状态信息送往主存指定单元保存。⑥向CPU发出I/O中断请求。对来自外设及通道的中断请求按优先次序进行排
队后报告CPU。通道使用通道指令控制设备进行数据传送操作,并以通道状态字的形式接收设备控制器提供的外部设备的状态。⑶设备控制器的
任务①从通道接受通道指令,控制外部设备完成指定的操作。如控制外设的启/停,向设备发出各种非标准的控制信号等。②向通道提供外部设
备的状态。如设备的忙、闲、出错信息等。③将各种外部设备的不同信号转换成通道能够识别的标准信号。④控制辅助操作。如磁带的进带、倒
带等操作。2.通道的类型根据多台外设共享通道的不同情况,可将通道分为三种类型。1)字节多路通道字节多路通道是一种简单的共享通道,
可以依靠通道与CPU之间的高速数据通路分时地为多台设备服务。在字节多路通道中,一个通道含有多个子通道,使用公共的控制部分。每个子通
道连接一个设备控制器,一个设备控制器可连接多台设备,设备可以采用字节交叉模式分时交替地使用通道进行数据传送。字节交叉模式:连接在通
道上的各个设备轮流占用一个很短的时间片传输一个字节。字节多路通道要求每种设备分时占用通道一个很短的时间段,不同的设备在各自分得的时
间段内与通道建立传输连接,实现数据的传送。字节多路通道的结构字节多路通道的信息传送方式A8A7A6A5A4A3通道控制B8B7B
6B5B4B3C2B2A2C1B1A1C8C7C6C5C4C3Ai、Bi、Ci分别为传送的字节信息2)选择通道选择通道只有一套完
整的硬件,以独占的方式工作,逐个轮流地为物理上连接的几台高速外设服务。选择通道在一段时间内单独为一台外设服务,但在不同的时间内可以
选择不同的设备。选择通道一旦选中某一设备,通道就进入“忙”状态直到该设备的数据传输工作全部结束为止。选择通道传送的数据宽度是可变的
,它为一台外设传送完数据后才转去处理其他外设。选择通道的结构选择通道的信息传送方式A1A2A3…An通道C1…CnB1…BnA
1…AnB1B2B3…BnC1C2C3…CnA1…An、B1…Bn、C1…Cn分别为成组数据3)数组多路通道数组多路通道将
字节多路通道和选择通道的特性结合起来。一个通道可带有多个子通道,各子通道以成组交叉模式轮流使用通道。成组交叉模式:利用通道传送完一
组数据(数据块)后让出通道。数组多路通道适用于以数组为单位的高速外设。数组多路通道选择一个高速设备后,先向其发出一个寻找的命令,然
后在这个设备寻找期间可以为其他设备服务。在设备寻找完成后再与其真正建立数据连接,并一直维持到一个数据块传输完毕。数组多路通道的数据
宽度是定长的,它既保留了选择通道高速传输的优点,又充分利用了控制型操作的时间间隔为其他设备服务,使通道的功能得到有效发挥,因此数组
多路通道在实际系统中得到较为广泛的应用。数组多路通道的信息传送方式A1…AkAk+1…An通道A1…AkB1…BkC1
…CkAk+1…A2kBk+1…B2kCk+1…C2kB1…BkBk+1…BnC1…CkCk+1…CnA1…A
k、B1…Bk、C1…Ck分别为数据块字节多路通道和数组多路通道的异同:相同点:都是多路通道,在一段时间内可以交替地执行多个
设备的通道程序。不同点:①数组多路通道允许多个设备同时工作,但只允许一个设备进行传输型操作,其他设备只能进行控制型操作。字节多路
通道不仅允许多个设备同时操作,而且允许它们同时进行传输型操作。②数组多路通道与设备之间的数据传送的基本单位是数据块,通道必须为一
个设备传送完一个数据块以后才能为别的设备传送数据块。字节多路通道与设备之间的数据传送基本单位是字节。通道为一个设备传送一个字节之后
,又可以为另一个设备传送一个字节,因此各设备与通道之间的数据传送是以字节为单位交替进行的。3.I/O指令、I/O通道指令与I/
O通道程序I/O指令I/O指令是计算机系统给用户使用的指令系统的一部分。由CPU负责解释执行。采用通道控制器后,I/O指令不再直接控制I/O数据的具体传送,一般只用于负责启、停I/O通道,查询通道及I/O设备状态,控制I/O通道进行某些操作等。I/O通道指令I/O通道指令又称为I/O通道控制字(CCW)。CCW是用于编制I/O通道程序的指令,专供I/O通道解释执行,以实现I/O数据传输等I/O操作。I/O通道程序用CCW编制成有关的I/O通道程序,在CPU的命令下启动通道程序实现有关I/O操作,完成I/O通道对I/O设备的具体控制。在早期的I/O通道实现中,I/O通道程序存放在主机的主存中,即I/O通道与CPU共用主存。目前,计算机系统中通常为I/O通道配置了局部存储器。这样可以减少CPU与I/O通道之间的冲突,进一步提高CPU与I/O通道工作的并行度。4.通道的组成结构通道的主要硬件包括寄存器部分和控制部分。⑴寄存器部分数据缓冲寄存器(DBR)、主存地址计数器、传输量计数器(WCNT)、通道命令字寄存器(CCWR)、通道地址寄存器(CAR),通道状态字寄存器(CSWR)。⑵控制部分包括数据装配和拆卸控制、数据传送控制、地址分配控制、分时控制等控制逻辑。5.通道的工作过程在具有通道的计算机中,用户程序通常通过调用通道程序来完成数据输入输出的过程。其中CPU执行用户程序和管理程序,通道处理机执行通道程序。在编制通道程序时,应根据I/O设备的需要在主存中开辟相应的输入/输出缓冲区,一般采取多缓冲区技术。1)在用户程序中使用广义指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道。广义指令由一条访管指令和若干个参数组成。访管指令的地址码部分实际上就是这条访管指令要调用的管理程序入口地址。⑴当用户程序执行到要求进行I/O操作的访管指令时,产生自愿访管中断请求。CPU响应这个中断请求后,转向管理程序入口。⑵管理程序根据广义指令提供的参数包括设备号、交换长度和主存起始地址等信息来编制通道程序。编制好的通道程序放在主存中与这个通道相对应的通道程序缓冲区中。⑶管理程序把通道程序的入口地址置入主存储器中的通道地址单元(例如,IBM4300约定为77号单元)。⑷在管理程序的最后,用一条启动I/O设备指令SIO启动通道开始工作。2)通道进入设备选择阶段⑴根据启动I/O指令中给出的通道和设备信息,选择通道和设备。⑵如果指定的通道和子通道是在线且空闲的,就从主存中取出通道地址字CAW,按照CAW给出的通道程序起始地址从主存的通道缓冲区中取出第一条通道指令。⑶选择指定的设备控制器和设备。判断被选择的设备是否在线(接通且空闲)。如果判断被选择的设备接通且空闲,就向它发启动命令。设备被启动后,如果启动正常,就将向通道发回“启动正常”回答信号,表示这台设备已经接受并执行了启动命令,完成设备的启动过程。⑷通道开始执行通道程序,进入信息传送阶段,同时管理程序返回用户程序继续执行。3)信息传送阶段⑴通道执行通道程序,控制主存—通道—设备之间的信息传送,直至完成指定的I/O工作。⑵当通道执行完通道程序的最后一条通道指令“断开通道”时,通道的数据传输工作就全部结束,进入通道信息传送结束阶段。⑶通道程序执行完后,向用户程序发出中断请求,进行数据传送结束的处理。4)通道信息传送结束阶段⑴执行完“断开通道”指令后,通道向CPU发中断请求。CPU响应中断请求后,再次进入操作系统,调用管理程序对I/O中断请求进行处理。如果是正常结束,则管理程序进行必要的登记等工作后关闭通道,等待下一次通道传输。如果是故障、错误等异常情况,则进行异常处理。⑵CPU返回用户程序继续执行。在通道与设备之间的数据传送过程中的设备选择工作①如果一个通道只管理一台高速设备,完成一次数据传送过程只需要做一次设备选择工作。②如果在同一个通道中有多台设备同时工作则要反复重新选择设备,即找出当前要传送数据的是哪一台设备。对于低速设备,每传送完一字节就要重新选择设备;对于高速设备,通常每传送完一个数据块后需要重新选择设备。采用通道方式后,每完成一次I/O工作,CPU只需要两次调用管理程序,大大减少了对用户程序的打扰。同时当系统中有多个通道同时工作时,CPU可以与多种不同类型、不同工作速度的外围设备充分地并行工作。
献花(0)
+1
(本文系太好学原创)