计算机组成原理-第9章-输入输出系统课件_第1页
计算机组成原理-第9章-输入输出系统课件_第2页
计算机组成原理-第9章-输入输出系统课件_第3页
计算机组成原理-第9章-输入输出系统课件_第4页
计算机组成原理-第9章-输入输出系统课件_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章输入输出系统

1计算机组成原理9.1概述对于一个计算机整机系统而言,除了CPU和存储器系统之外,第三个关键性的系统就是输入输出系统(Input/OutputSystem,简称I/O系统),该系统的功能是:1.为得到高效可靠的数据传输,选择输入输出设备。2.在选定的输入输出设备和CPU(或内存)之间进行数据交换。由于种类繁多、功能结构各异的I/O设备(也称为外部设备),在与主机的连接方法和信息交换方法上各不相同,因此I/O系统是计算机系统中最具有多样性和复杂性的子系统。为了发挥主机性能,提高主机效率和得到高效可靠的信息传递,组织合理的I/O系统,配备先进的I/O技术及接口部件是非常必要的。本章将以I/O设备与主机的交换方式为主线介绍I/O组织。2计算机组成原理9.1.1I/O系统的组成I/O系统由I/O软件和I/O硬件两部分组成。1.I/O软件I/O软件的主要任务是:将用户编制的程序(或数据)输入主机;将运算结果输送给用户;实现I/O系统与主机的协调工作。2.I/O硬件I/O硬件的组成是多种多样的,一般由接口和I/O设备(也称为外部设备)组成。3计算机组成原理9.1.2I/O设备与主机的联系方式1.I/O设备与主机的连接方式I/O设备与主机是通过一组总线与接口连接的。接口由标准逻辑和非标准逻辑两部分组成。通过标准逻辑挂在总线上,通过非标准逻辑部分与各种不同设备连接,以满足对不同设备的控制要求。在单机系统中常采用的总线结构有:单总线结构和双总线结构。4计算机组成原理(1)单总线结构计算机若把总线控制逻辑做在主机内,主机可当作一个独立设备挂在总线上,这就形成单总线结构机器,如图9-1所示。在单总线结构机器中,CPU、主存及全部I/O设备都挂在总线上。他们之间的通信都是以相同形式通过单总线进行的;对每个发送的信息,规定其信息类型和接受信息的部件,以协调信息的传送。必须经过选择判优以确保每一时刻只有两个设备在进行通信;还需要对信息传送定时,防止信息的丢失和判断本次传送是否有效,这需要设置总线控制线路。总线控制线路包括总线判优逻辑、总线仲裁逻辑、驱动器和中断逻辑等部件。由于连到总线上的各部件是互相独立的,因此当系统扩充、更换和维修时,从总线上摘下各个部件而不影响主机的工作。5计算机组成原理图9-1单总线结构6计算机组成原理这种连接方法的缺点是:所有设备共享同一总线这唯一的通信资源;同一时刻不允许多于两台设备进行通信,所以总线信息吞吐量影响了信息交换速度,特别是高速大容量存储设备加在单总线上时,会使总线负荷太重,这对提高系统效率和充分利用系统不利。为解决这个问题,在主存与这类设备之间加入DMA总线,如图9-2所示。上面这两种连接方法仍只适用于微、小型机器,为了解决I/O设备、CPU与主存之间的传送速率差的问题,在大中型机中将I/O总线和系统总线分开。7计算机组成原理图9-2具有DMA总线的单总线结构8计算机组成原理(2)双总线结构将I/O总线和系统总线分开形成双总线结构。这种连接方法使CPU从管理和控制I/O系统的重担下解放出来,把管理设备的任务交给通道或IOP(输入输出处理机)。实现了不同速率的数据传送分开管理,从而提高系统效率,如图9-3所示:9计算机组成原理图9-3双总线结构10计算机组成原理2.I/O的编址方式通常将I/O设备赋予设备码,每个设备的地址码可视为地址码,对于I/O地址码的编址可采用统一编址和独立编址两种方式。(1)统一编址统一编址就是将I/O地址看作是存储器地址的一部分,即将I/O地址放入存储器地址空间中。对I/O设备的访问与对存储器的访问,采用的指令相同。(2)独立编址独立编址是将I/O地址与存储器地址分开,对所有I/O设备的访问与对存储器访问采用的指令不同,I/O设备的访问采用专用的指令。11计算机组成原理9.1.3I/O设备与主机间的信息交换方式主机与外部设备(简称外设)之间的信息交换控制,在不同系统结构中有不同的方式。一般有以下几种。1.程序直接控制方式(ProgramDirectControl)程序直接控制方式通过由I/O指令所编的程序,来控制主机与外设之间的信息传送。其过程简述如下:先由主机通过启动指令启动外设工作,启动后主机用测试指令不断查询外设工作是否完成,一旦外设工作完成,就可进行数据传送。这种方法控制简单,但是主机和外设是串行工作。当外设速度很慢时,主机大量时间被消耗在测试等待中,使主机不能充分发挥效率。12计算机组成原理2.程序中断控制方式(ProgramInterruptControl)在程序中断控制方式中,当主机在启动外设后不需要等待查询,而是继续执行程序。当外设工作完成后便向CPU发中断请求。CPU接到中断请求后在响应条件满足时可以响应,并由CPU执行中断服务程序以完成外设和主机之间的一次信息传送,完成传送后主机又继续执行主程序。程序中断控制方式可以使CPU和外设进行并行工作,而且可使多台外设同时工作,使CPU效率大大提高。但程序中断传送使CPU增加了额外开销时间,所以适用于外设工作速度不太高的设备与主机之间的信息传送。而对高速设备再采用程序中断控制将会造成数据丢失。13计算机组成原理3.直接存储器存取方式(DirectMemoryAccess,DMA)直接存储器存取是在外设和主存之间开辟一条直接数据通道。当高速设备的数据传送准备好后,由专门的DMA控制器来替代CPU实现传送控制。CPU除了数据块开始传送和结束传送时需要进行适当处理外,在数据块传送过程中无须CPU干预,每传送一个数据只需要占用一个主存周期,这样数据传送的速度上限就由主存工作速度决定。但DMA控制器只对少量同类设备进行控制,由于中、大型机由于外设种类很多,若用DMA方式来控制,会造成硬件接口多、不经济,而且会造成访存冲突,从而降低了系统效率。因此DMA在中、大型机中,被发展为输入输出通道或输入输出处理机。14计算机组成原理4.I/O通道控制方式(I/OChannelControl)“通道”不是一般概念的I/O通路,它是一个专用的名称。通道能独立地执行用通道命令编写的输入输出控制程序,所产生的相应的控制信号送给由它管辖的设备控制器,继而完成复杂的输入输出过程。通道是一种通用性和综合性都较强的输入输出方式,它代表了现代计算机组织向功能分布向发展的初始发展阶段,形成了如图9-4的结构。I/O通道具有自己的指令系统,并能实现指令所控制的操作,所以I/O通道已具备处理机的功能。但它仅仅是面向外部设备的控制和数据的传送,其指令系统也仅仅是几条简单的与I/O操作有关的命令。它要在CPU的I/O指令指挥下启动、停止或改变工作状态。在I/O处理过程中,有一些操作,如码制转换、数据块的错误检测与校正,仍由CPU来完成。因此,I/O通道不同于一个完全独立的处理机,它只是从属与CPU的一个专用I/O处理器。它的进一步发展引入了专用的输入输出处理机。15计算机组成原理图9-4输入输出系统的结构(具有CH通道或I/O处理机)16计算机组成原理5.外部处理机方式(PeripheralProcessorUnit-PPU)输入输出处理机通常称作外部处理机。这种外部处理机的结构更接近一般处理机,甚至是一般小型通用计算机。它可完成I/O通道所要完成的I/O控制,还可完成码制变换、格式处理、数据块的检错和纠错等操作。它可具有相应的运算处理部件、缓冲部件,还可形成I/O程序所必须的程序转移手段。有了外部处理机,不但可简化设备控制器,而且可用它作为维护、诊断、通信控制、系统工程情况显示和人机联系的工具。外部处理机基本上独立于主机工作。在多数系统中,设置多台外部处理机,分别承担I/O控制、通信、维护、诊断等任务。有了外部处理机后,使计算机系统结构有了质的飞跃,由功能集中式发展为功能分散的分布式系统。该系统的结构与图9-4类似,但要将图中CH改为I/O处理机。17计算机组成原理9.2I/O接口接口泛指设备部件之间的交换部分。主机(系统总线)与外部设备或其它外部系统之间的接口逻辑,称为输入/输出接口,简写为I/O接口。接口在它所连接的两个部件之间起着转换器的作用。18计算机组成原理9.2.1I/O接口的功能I/O接口一般位于系统总线与外部设备之间,系统总线通常是标准而通用的,它符合某种总线标准,并不局限于特定的设备。1.寻址接口逻辑接收总线送来的寻址信息,经过译码,选择多台外部设备中的某一台以及该设备接口中的某个有关的寄存器。2.实现数据缓冲在接口电路中,一般设置一个或多个数据缓冲寄存器,以补偿各设备之间的速度差,起到速度匹配的作用。19计算机组成原理3.实现数据格式变换、电平变换等预处理接口与系统总线之间一般采取并行传送;接口与外设之间,由于各设备的特性不同,可能采取并行传送,也可能采取串行传送。因此接口完成串行与并行数据格式之间的转换。设备使用的电源与系统总线使用的电源有可能不同,例如主机使用+5伏电源,而某个外设采用-12伏电源,即信号电平存在着差异。若使采用不同电源的设备之间能够进行信息传送,那么接口应能完成信号电平的转换。20计算机组成原理4.实现控制逻辑CPU与I/O设备之间的通信控制,是主机通过总线向接口传送命令信息,接口予以解释,并产生相应的操作命令发送给设备。接口所连接的设备及接口本身的有关信息,通过总线回送给CPU。当采用中断方式控制信息的传送时,则接口中应有相应的中断逻辑。如中断请求信号的产生、中断屏蔽、优先级排队、接收中断批准信号、产生相应的编码等,其中的部分逻辑可集中在公共接口逻辑中。当采用DMA方式控制信息传送时,接口中应有相应的DMA逻辑。21计算机组成原理5.检错I/O接口经常负责检错,随后将错误信息报告给CPU。一类错误是设备机构和电路故障(例如,纸张阻塞、坏磁道);另一类错误是:当信息从设备向I/O接口传送时,数据位发生变化。对于传输中的错误经常用一些检验码进行检测,常用的检验方法是奇偶检验。22计算机组成原理9.2.2I/O接口的分类1.按数据传送格式分(1)串行接口串行接口与输入输出设备之间采用串行方式传送数据,而接口与系统总线之间是以并行方式传送数据,因此,串行接口要完成数据格式的串行与并行之间的变换。串行接口用于串行工作设备或计算机网络的远程终端设备与计算机的连接。(2)并行接口并行接口与系统总线以及接口与外设之间都是以并行方式传送信息。并行接口用于并行工作设备,而且传送距离较短。23计算机组成原理2.按总线上数据传送的通讯方式分(按时序控制方式分)(1)同步接口同步接口与同步总线连接,接口与系统总线间的信息传送由统一的时序信号控制。(2)异步接口异步接口与异步总线相连,接口与系统总线间的信息传送采用异步应答的控制方式。3.按信息传送的控制方式分(1)中断接口如果主机与外设之间的信息传送采用程序中断方式控制,则接口中需有相应的中断系统所需的逻辑,这样的接口称为中断接口,也称为程序中断接口。(2)DMA接口如果主机与高速外设之间信息传送采用DMA方式控制,则接口中需有相应的DMA逻辑,这样的接口称为DMA接口。24计算机组成原理4.按通用性分(1)通用接口通用接口可供多种外设使用,例如Intel8255、8212。(2)专用接口专用接口是为某类外设或某种用途专门设计的,例如Intel8279可编程键盘/显示器接口、Intel8279可编程CRT控制器接口。25计算机组成原理9.2.3I/O接口的基本组成一般接口由以下部分组成:1.各类寄存器的集合(控制/状态寄存器CSR、数据寄存器DR、地址寄存器DAR等)。通常在接口中至少要设有数据输入缓冲寄存器IDBR和数据输出缓冲寄存器ODBR。2.各种控制线路包括:设备选择、设备地址译码线路、同步或异步控制、中断控制及I/O控制等。3.数据格式转换线路(并与串的转换)。4.主机与接口、接口与I/O设备两个方向的信号连接线。26计算机组成原理图9-5给出了常用的I/O接口框图。I/O接口通过一组信号线(例如,系统总线)将设备与计算机或其他设备相连,将设备传送给主机的数据或主机传送给设备的数据缓存在一个或几个数据寄存器中,几个状态寄存器提供当前的状态信息,状态寄存器也能用作控制寄存器接收来自CPU的详细的控制信息。接口内的逻辑通过一组控制线与CPU连接,CPU使用这些控制线发送命令给I/O接口,控制线中的一部分也可被I/O接口使用(例如,用于仲裁和状态信号)。接口也能识别和产生与它控制的设备相关的地址,如果一个接口控制一个设备,那么就有唯一的一个地址,如果一个接口控制一组设备,那么就有唯一的一组地址。I/O接口还包含了与它控制的每个设备进行连接的逻辑。27计算机组成原理图9-5I/O接口框图28计算机组成原理9.2.4I/O接口举例为计算机而设计一些标准接口,这些接口就构成了标准的应用接口环境,这些环境不依赖于计算机,它们允许制造商设计与标准接口兼容的设备,而不是设计成与一个特殊的计算机扩展总线兼容的设备。标准接口常用的形式是卡,卡插在一个特殊的计算机的扩展总线上,并且为用户提供了一个标准的界面。1.打印机接口2.串行口——RS2323.小型计算机系统接口4.P1394串行总线5.USB通用串行总线29计算机组成原理USB(UniversalSerialBUS)通用串行总线是一种新型外设接口标准。它是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。不过直到近期,它才得到广泛地应用。从1994年11月11日发表了USBV0.7版本以后,USB版本经历了多年的发展,到现在已经发展为2.0版本,成为目前电脑中的标准扩展接口。目前主板中主要是采用USB1.1和

USB2.0,各USB版本间能很好的兼容。USB用一个4针插头作为标准插头,采用菊花链形式可以把所有的外设连接起来,最多可以连接127个外部设备,并且不会损失带宽。USB需要主机硬件、操作系统和外设三个方面的支持才能工作。目前的主板一般都采用支持USB功能的控制芯片组,主板上也安装有USB接口插座,而且除了背板的插座之外,主板上还预留有USB插针,可以通过连线接到机箱前面作为前置USB接口以方便使用。而且USB接口还可以通过专门的USB连机线实现双机互连,并可以通过Hub扩展出更多的接口。30计算机组成原理USB具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps),使用方便,支持热插拔,连接灵活,独立供电等优点,可以连接鼠标、键盘、打印机、扫描仪、摄像头、闪存盘、MP3机、手机、数码相机、移动硬盘、外置光软驱、USB网卡、ADSLModem、CableModem等,几乎所有的外部设备。USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。USB接口支持设备的即插即用和热插拔功能。USB接口可用于连接多达127种外设,如鼠标、调制解调器和键盘等。USB自从1996年推出后,已成功替代串口和并口,并成为当今个人电脑和大量智能设备的必配的接口之一。31计算机组成原理9.3程序直接控制方式程序直接控制方式是主机与外设之间进行数据交换的最简单、最基本的控制方法,是CPU直接利用I/O指令编程,实现数据的输入输出。如果有关的操作时间固定且已知,可以直接执行输入指令或输出指令,例如从某设备的缓冲区中读取数据,或向缓冲区输出数据。如果有关操作时间来未知或不定,例如打印机初始化操作或打印时机电操作,则往往采用查询,等待和再传送的方式。即在启动外设后,主机不断通过I/O指令查询设备状态是否准备好,是否完成上一次操作。若尚未准备好或尚未完成,CPU将继续查询、等待,直到设备准备好或完成一次操作为止,CPU将通过I/O指令进行数据I/O传送。在外部设备工作期间,CPU只执行与I/O有关的操作。即查询、等待、传送,这种方式又称为程序查询方式。图9-11、图9-12分别给出了单个设备、多个设备查询流程示意图。图9-13给出了程序查询方式的程序流程图。32计算机组成原理图9-11单个设备的查询流程示意图33计算机组成原理图9-12多个设备的查询流程示意图34计算机组成原理图9-13程序查询方式的程序流程图35计算机组成原理9.4程序中断控制方式中断指CPU中止现行程序的执行,转而执行另一个更紧迫事件的程序,一旦处理完成,自动返回原来被中断的程序。中断技术的出现,大大增强了计算机功能。它提供了一种以响应外部异常事件而改变状态流程的有效手段。它支持了多重程序的运行及多个用户同时共享整个计算机资源,充分发挥了计算机的高速处理和实时处理能力,以及自动处理机内故障的能力。所以它是计算机发展史上的一个重大里程碑,现代计算机中都具有中断功能和相应的中断系统,它是各类计算机不可缺少的部分。36计算机组成原理一、中断的基本概念(一)中断问题的提出在计算机发展进程中,CPU的速度提高得很快,而外部设备的速度由于受机电结构的限制至今仍是毫秒和微妙级,两者速度相差悬殊。如某机运算速度是100万次/秒,CPU执行一条指令约需

,而某外设输入一个数据要1ms。若采用程序直接控制传送方式时,CPU绝大部分时间是做探询测试等待设备工作完成,由于CPU和外设速度相差1千倍,所以在主机进行I/O传输时,整个计算机传输速度下降到外设速度,CPU效率下降了90%,其原因是CPU与某外设交换信息时,就把CPU的控制权交给了该设备,而CPU只能做测试等待,直到外设工作完成。也就是说,CPU和外设是串行工作,如图9-14所示。CPU的大部分工作时间被白白消耗在测试等待中。假若CPU在启动外设工作后,设备释放对CPU的控制权使CPU继续工作,当外设工作完成后向CPU发中断请求信号,若CPU响应中断,则停止正在执行的程序,转中断服务程序为该设备服务,这样就能实现CPU和外设并行工作,使CPU的效率充分发挥,如图9-15所示。采用中断技术后,在CPU控制下多台外设可与主机同时进行工作。37计算机组成原理图9-14CPU和外设串行工作38计算机组成原理图9-15中断控制下CPU和外设并行工作39计算机组成原理(二)中断源和中断类型中断源是引起中断的事件及发生中断请求的来源。中断的类型可以按照中断的处理方法,中断源种类和是否提供向量地址等分类。1、按中断处理方法分类(1)程序中断主机响应中断请求后,通过执行一段程序来处理有关事项,称程序中断,简称中断。程序中断一般适合于中、慢速I/O设备的数据传送,以及要求复杂处理的场合。(2)简单中断(也称存储器直接访问方式)主机响应中断后,不需要执行服务程序,而是让出一个或几个主存周期,使I/O设备和主存直接交换数据。因为简单中断不需要借用CPU设备,因而不破坏CPU现场,所以不需要做保护现场操作,一般用于高速I/O设备和主机的数据传送。40计算机组成原理2、按中断源分类(1)强迫中断它是随机产生的中断,现行程序事先未知,当中断出现后由中断系统强行中止现行程序。产生强迫中断的中断源有四方面:①内中断是由硬件故障及程序故障引起的中断。由于中断源来自处理机内部所以称为内中断。由硬件故障引起的中断,如电源掉电、存储器奇偶错、寻址错、超时错等;由运算异常引起的,如零除、上溢、下溢;由程序故障所引起中断,如执行非法指令、页面失效等。②外中断是由系统配置的外部设备引起的中断。如慢速设备的缓冲寄存器准备好接收和发送数据后,要求CPU参与I/O操作,各种定时器中断、外部信号中断等,由于中断源来自CPU以外,所以称为外中断。③正在执行着的现行程序所引起的中断。如现行程序要求系统分配给新的硬件资源(如磁盘、打印机等),因此向系统提出中断请求,并等待资源的获得,这种中断属于资源管理范围。④处理机之间的中断。在计算机网络范围内,处理机之间数据状态的传送所引起的中断。(2)自愿中断(程序自中断)它不是随机产生的中断,而是事先在程序某处设置断点,并借用中断处理方式保护现场,引出一段服务程序。41计算机组成原理3、按中断源是否提供向量地址分类(1)向量中断CPU响应中断后,由中断机构自动地将向量地址通知处理机,由向量地址指明中断向量位置,并实现向量切换,不必经过处理程序来查询中断源的中断功能,称为向量中断。中断过程是由一个程序切换到另一个程序的过程。在程序切换时,需要保护好旧的PC和PSW,更换新的PC和PSW。新的PC即为服务程序入口地址,PSW是新服务程序的程序状态字,通常称PC和PSW为中断向量。在向量中断机器主存中开辟了一个区域用来存放各中断源的中断向量。如PDP-11机器中,把内存低地址区0-4KB空间用来存放中断向量。把存放中断向量单元的首地址称为向量地址。例电源掉电中断源的中断向量分别存放在000004单元和000006单元中,把它的首地址000004称为向量地址。(2)非向量中断非向量中断是不能直接提供中断服务程序入口地址,而要采用软件查询措施最后找到服务程序入口地址,然后再转入相应中断服务程序。42计算机组成原理(三)多重中断与单级中断1、单级中断在执行中断服务程序的过程中,如果只能为本次中断服务,不允许打断该服务程序,只有在服务程序完成后,才能响应新的请求,这种情况称为单级中断。2、多重中断如在一次服务程序执行中,允许优先级高的中断源中断级别低的中断服务程序,在保存断点和现场后,转去响应优先级更高的中断请求,并执行新的中断服务程序。图9-16为多重中断。中断过程和子程序调用表面上相同,但实质上是不同的。调用子程序由主程序安排,何时发生转子程序是事先确定的,并利用转子程序指令来实现。而中断过程是随机发生的,不能由主程序提前安排。43计算机组成原理图9-16多重中断44计算机组成原理(四)中断功能1、引入中断系统后,可使CPU和I/O设备并行工作,从而大大提高了CPU的工作效率。2、利用中断来处理故障,提高了机器的可靠性。在计算机工作时,当运行程序发生故障或硬件发生故障时,机器中断系统可以中断正在处理的程序而自动进入故障处理程序。避免了某些偶然事故引起的计算错误或停机。提高了机器的可靠性。3、利用中断进行实时处理。实时处理是指在某个事件或现象出现的实际时间内及时地进行处理,而不是积压起来再进行批处理。例如某个计算机过程控制系统中,在生产过程中采集到随机出现的压力过大、温度过高等信息后,必须及时地输入计算机中,并以最快速度立即响应而不允许延迟。4、利用中断进行人机对话。执行某些程序时,需要操作人员由控制台、打字机或某种终端设备提供信息,进行控制。可以利用中断将信息提供给主机,以实现人机对话。5、实现多道程序的运行。多道程序切换运行,需要借助于中断系统。多道程序运行时,对每道程序分配一个固定时间片,利用时钟定时发中断请求,进行程序切换。45计算机组成原理(五)中断过程中断过程由中断请求、中断响应、中断处理和返回组成。以上过程是由计算机中的中断系统实现的。它保证处理机从当前程序运行状态环境平滑地转到中断服务环境,而且再平滑地返回。运行环境是指处理机执行程序时,现行的各寄存器、PC、PSW的即时值。中断系统是计算机实现中断功能的软、硬件总称。在CPU—侧配置了中断机构,在设备一侧配置了中断控制接口,在软件上设计了相应的中断服务程序。46计算机组成原理二、中断请求(一)中断请求的提出由中断源向处理机发出的中断请求,称为中断申请。中断源发中断请求要满足以下两个条件。1、外设工作已经完成(即外设工作处于结束状态)。如纸带输入机走完一行纸,并把孔码数据读到接口的数据寄存器中,此时才能向处理机发中断请求。2、该外设的中断没有被系统屏蔽。系统为了某种目的,常常允许一些设备可以发中断请示,而禁止另一些设备发出中断请求。因此用程序方式有选择地封锁部分中断,而允许其余部分中断仍得到响应,称为中断屏蔽。为达到中断屏蔽的目的,在接口中要设置屏蔽码触发器MR。当MR被置1时,表示系统禁止设备的中断请求,而MR置0时,表示允许设备的中断请求。当某设备的中断被屏蔽时,即使外设本身工作完成,也不能发中断请求。47计算机组成原理在中断系统中,所有屏蔽触发器的集合称为屏蔽寄存器,屏蔽寄存器的内容称为屏蔽码。屏蔽码可用屏蔽指令MSKO来传送,根据需要可预先设好屏蔽码,在程序安排下执行MSKO指令,将屏蔽码置于MR中,以达到控制设备中断请示的目的。为了随机接收异步设备中断请求,而又能保持与系统的同步,接口中还设置了请求中断触发器,当设备的完成信号将接口中的完成触发器置1,而MR为0时,在系统时钟控制下,将请求中断触发器IRR置为1,把申请信号记录下来,并由它向CPU发中断请求信号。多位中断请求触发器构成一个中断请求寄存器,基中每一位对应一个中断请求源,中断请求寄存器的内容称为中断字或中断码。CPU在进行中断处理时,根据中断字和中断位确定中断源,以便用相应服务程序来处理。48计算机组成原理(二)中断请求的传送和中断的优先排队当输入输出设备提出中断请求时,CPU是否响应?当有两种以上设备提出中断请求时,CPU首先响应哪个设备的请求呢?这些问题是设计中断系统必须解决的问题。1、中断源的优先权在设计中断系统时,要将全部中断源根据中断性质和处理的轻重缓急确定优先级别,并赋予一定优先权。在各种类型的中断请求中,一般按以下顺序安排优先权:首先是故障引起的中断最优先,其次是简单中断及I/O程序中断。在I/O程序中断中,又根据各自重要性划分成几种优先级别。一般高速外设优先级高于低速外设的优先级。输入设备的优先级高于输出设备优先级。当中断源很多时,可把所有中断按不同类别分为若干级,称为中断级。先按中断级确定主优先级次序。然后在同一优先级内再确定各个中断源的次优先级。为了确定CPU的现行程序与I/O设备之间的优先级,可由指令给出CPU状态字,设置优先级字段,即赋予正在执行程序以某种优先级。49计算机组成原理2、几种排队判优方法中断系统的排队判优方法与中断系统结构有关,即与中断请求线的传送方法有关。(1)单线请求软件查询判优在单线请求的机器中,所有设备的中断请求通过OC门连到一根公用的中断请求线IRQ(InterruptRequest)上。在这种情况下,CPU在接到中断请求信号后,必须判明中断请求是由哪一个设备发送来的,即识别中断源。它可以用程序查询中断源。而中断源的排队判优问题可以根据查询的先后顺序来确定优先级,若改变查询顺序就可以修改优先级。图9-17是具有公共请求线的中断请求传送方案。图9-18是用软件查询中断源流程图。从图9-18中显然可以看出0#设备优先级最高,其次是1#、2#、……n#设备。软件查询在有些机器中可以用I/O指令依次查询,在确认了有请求的中断设备后,转入相应服务程序,也有些机器用取回中断寄存器内容(中断字)按优先级次序逐位判定。若某位中断请求标志为1,就转去执行该I/O的中断服务程序。软件查询方法对中断源的判优和识别不需要增加硬设备,而且能灵活修改设备的优先级别。但查询、判优依靠软件实现,增加了CPU响应中断的时间。50计算机组成原理图9-17具有公共请求线的中断请求传送方案51计算机组成原理图9-18软件查询中断源52计算机组成原理(2)单线请求菊花键判优在这种机器中,各设备的中断请求仍共用一根请求线来传送。但当CPU接到中断请求后,设备的优先级不是用查询程序依排队次序来决定,而是用硬件排队线路来代替软件排队。即用硬接线逻辑将设备扣连在中断响应线INACK(InterruptAcknowledge)上,使优先级最高的设备离CPU最近(指电气连接上),依次下降优先级,这样一条链称为菊花链。响应信号先传到链头,若优先级最高设备没有提出中断请求,则响应信号沿菊花链下传,直到某个提出中断的设备截获响应信号后,响应信号就不再往下传,该设备把自己的设备码或地址送到地址总线上。CPU接到设备码后,转相应的服务程序。在这种结构中借助软件少,因此CPU响应速度快,但增加了菊花链优先权电路,使中断响应信号必须经过若干门延迟才能到达优先级最低的设备。而且在此结构中,优先级别被电路固死,因而不灵活。图9-19为单线请求菊花链判优。53计算机组成原理图9-19单线请求菊花链判优54计算机组成原理(3)多线请求判优在这种机器结构中,每一个设备分配一个优先级,每一个设备都通过各自的中断请求线,将中断请求信号传送到CPU,在CPU内设置有判优逻辑,接收各中断信号。而且给每一个设备设一根中断响应线传送中断响应信号。当几个设备同时请求中断时,经判优逻辑选择,选出优先级最高的设备,并形成中断向量送CPU,CPU立即为优先级高的设备服务。由于请求中断的设备可立即被识别,所以它的响应速度最快。图9-20为多线请求判优。55计算机组成原理图9-20多线请求判优56计算机组成原理(4)多线请求菊花链判优如果系统中连接设备较多,即设备数超过了系统的优先级数时,把几个设备归到同一个优先级上,把同一优先级的I/O设备挂在同一根公共请求上,在不同请求上I/O设备中断优先级不同。把不同申请线上的优先级称主优先级,而把同一线上不同设备的优先级称次优先级。这就形成了多线请求菊花链判优结构。在这种结构中,每一个主优先级设置一根中断响应线,在CPU中进行主优先级判优,而在接口中进行次优先级判优,各次优先级经判优后,形成自己的向量地址,并通过数据线送CPU,图9-21为多线请求菊花链判优。57计算机组成原理图9-21多线请求菊花链判优58计算机组成原理三、中断响应I/O设备提出中断请求后,CPU中止现行程序的执行,转去为某个设备服务的过程,称为中断响应。(一)中断响应的条件1、中断源有中断请求。如外设要求与主机交换数据时需要请求中断。2、CPU允许接受中断请求。当有中断源请求时,由于某种条件的存在,CPU不能中止现程序的执行,称为禁止中断。为达到禁止中断的目的,可在CPU内部设一个中断允许触发器CIEN。当CIEN=1时,表示CPU处于开放状态,即允许中断;当CIEN=0时,表示CPU处于关闭状态,即不响应任何中断请求。CIEN触发器可以通过开中断或关中断指令来置位或复位,以此来确定CPU的现行程序是否可以被中断。59计算机组成原理CPU响应中断标志可用图9-22来表示,当CIEN=1时,又有中断请求信号IRQ。当响应条件满足时,CPU脉冲将

IRQ信号打入CIEN,使CIEN处于禁止中断状态。此后不再响应另外中断,使CPU做内部整理工作。在多线多级请求中断结构中,为了确定CPU现行程序与I/O设备中断请求之间的优先级,可在CPU的状态字中设置优先级字段。它赋予正在执行程序以某种优先级别,这种优先级别通过指令来设置或修改。I/O设备中断请求的优先级和现行程序中断优先级可通过硬件连接的二维结构来判定谁的优先级更高。以决定现行程序是否需要响应中断请求。若I/O请求优先级高于现行程序的优先级,则CPU就响应I/O请求,否则将不予响应。3、CPU响应中断的时间。当满足中断响应条件时,CPU应等到一条指令执行完毕,并且当前执行的不是停机指令,又没有优先权更高的请求(如电源失效或DMA请求),则CPU进入中断周期状态,进行中断响应。60计算机组成原理(二)中断响应的几种方案1、单线请求中断查询的响应在单线请求的中断结构里,中断响应即为CPU进入到中断周期状态,在该状态下由CPU执行一条中断隐指令。这条隐指令由硬件在中断响应时产生,而不在程序中出现。中断隐指令主要完成以下三个操作。(1)关闭中断允许触发器。即将CIEN置为0,CPU响应中断后首先要做保护旧现场工作,因此不让处理机响应新的中断请求,否则有可能破坏原程序现场,以至无法恢复运行环境。(2)保护断点(PC)值,执行0#←(PC)。将主存的0号单元辟为特殊单元,专门用于存放中断响应时的PC现行值。而此时PC值指向下一条指令地址,又称断点地址。(3)执行JMP@1操作。1号单元内存放公共服务程入口地址,入口地址引导处理机去执行公共服务程序。61计算机组成原理执行隐指令的机器状态称为中断周期状态。CPU响应中断后,下一步识别出首先服务的中断对象,在单线请求多重查询的结构中,查询程序被安排在中断服务程序的前部,即为公共服务程序段。查询程序根据查询顺序先后来确定优先级,因此改变查询的先后次序就可以改变优先级。图9-23是单线请求中断查询方案。在这种响应方案中只需要一根中断请求线,不需要任何专用硬件,节省了硬件开销,但增加了查询时间,损害了系统的响应性。改进方法是将程序查询中断源的工作由硬件来实现。62计算机组成原理图9-23单线请求中断查询方案63计算机组成原理2、单线请求菊花链响应单线请求菊花链响应方案中,CPU响应中断请求后,进入中断周期状态。在中断周期状态下CPU执行中断隐指令,并切换到中断服务程序,其过程与中断查询的响应方案相同。所不同的是,中断服务程序首先执行一条中断查询指令“INTAR0”,查询由中断查询指令启动,通过接口中硬件连接电路来查出优先级最高的设备。图9-24示出了单线请求菊花链响应硬件连线。在此方案中,每一个接口内设有二个“与非”门,用来传送中断响应信号。在执行“INTAR0”时,CPU通过中断响应线INACK发查询信号“POL”。“POL”作为中断链的输入信号“INTI”(低电平有效)经中断链传送。图中INTR1、INTR2……依次为各设备的中断请求信号。并假定1#设备的优先级>2#设备的优先级>3#设备的优先级。INTS1,INTS2……依次为各设备的排队选中信号。INTA为中断允许信号,INTA信号由CPU执行INTA指令时发出。假若系统中没有优先级更高级别的请求(如DMA请求)时,此时

INTI=0,则门1输出为高电平,使INTS1=1,即1#设备被选中。假设1#设备本身并无中断请求,即1#设备的INTR1=0时,则使INTR1=1,“与非”门2输出为低电平。表示中断响应信号被中断链传送下去,并作为2#设备的INTI信号。若同样2#,3#设备均无中断请求,则中断响应信号一直被中断链传递到优先级最低的设备,并被此设备截获。64计算机组成原理若上面的情况变为1#设备有中断请求信号,即INTR1=1,则INTR1=0,此时“与非”门2输出为高电平,则使以后各级的INTS均为低电平,不能被选中,也就是中断响应信号被1#设备所截获。1#设备截获了INTI信号后,通过下面的设备码发送电路将设备码发送到数据总线上,被送到CPU的R0寄存器中,供CPU识别。CPU根据该地址码转向此设备的服务程序。INTA有很高的硬件响应速度,其缺点是中断源优先级被硬件线路固死,使中断系统不灵活,而且对多重中断没有提供硬件支持。并使CPU的响应时间中增加了中断链的链路延迟时间。65计算机组成原理图9-24单线请求菊花链响应66计算机组成原理四、向量中断多线请求结构是对单线结构的改进,最大变化是有能力处理每一个中断源独立发出的中断请求。(一)多线请求并行排队的向量中断在多线请求的中断机构中,为了提高CPU响应的速度,均采用向量中断的响应方法。在硬件线路上,由串行排队改为并行排队。在向量中断中,每一个中断源都给出一个中断向量和向量地址。当CPU响应中断后,由中断机构自动地将向量地址通知CPU,由向量地址指明向量的位置并实现向量的切换,而不必经过处理程序查询中断源的中断,这种响应称向量中断响应。由于CPU每次只能为一个中断请求服务,因此同样也存在优先级排队问题。在多线单级请求结构中,将各级设备向量地址形成线路和优先权排队线路集合在一起,组成向量中断优先级编码器VIPE(VecterInterruptPriorityEncoder)。向量中断优先级编码器是单线请求走向多线请求结构、串行排队(链式)变为并行排队的关键性线路。下面以8级中断为例说明硬件并行排队的基本概念。假定8级中断请求为I0~I7,并规定0级优先级最高,1级次之,7级为最低。表9-5为8级中断屏蔽码和向量地址,其中屏蔽码定义:0为允许中断,1为屏蔽中断。67计算机组成原理表9-58级中断屏蔽码和向量地址中断请求屏蔽码向量地址VA01234567VA0VA1VA2I0I1I2I3I4I5I6I7111111110111111100111111000111110000111100000111000000110000000100000101001110010111011168计算机组成原理图9-25为向量地址形成电路。图中第1列为屏蔽码寄存器MR,屏蔽码可由MSKO指令置入;第2列为中断请求寄存器IRR,D0~D7为各设备的完成信号;第3列“与门”的输出是各级中断请求信号的输出,并将其加入到并行排队器;第4列是多线并行优先权排队线路,它不同于菊花链排队线路,不需要执行中断查询指令,即没有查询操作,对所有中断请求级的选择时间是相等的,没有链路的门延迟时间;第5列由三个“或门”组成8~3编码器,输出为向量地址VA0、VA1、VA2。图中虚线框内称为向量中断优先权编码器VIPE。所有中断向量集合组成一张向量表,向量表建立在主存中。向量地址可用主存地址MAR表示,这时所形成的VA0、VA1、VA2三位变量嵌在MAR中。如果向量表是连续表,而且存放在内存从0号单元开始的内存区,则VA0、VA1、VA2就作为MAR的低位MAR0、MAR1、MAR2。若向量表在内存是离散分布,则向量地址嵌入主存地址的中间部分。由图可知向量地址又是各级中断源的优先级,这样设计既简单又合逻辑。下面举例说明向量地址的形成。69计算机组成原理图9-25向量地址VA形成电路70计算机组成原理若处理机给出的屏蔽码为11000011,在某一个时刻t,只有D1、D3、D4三个设备的完成信号同时到达,它们的向量地址应该是什么呢?分析:因为各设备的向量地址又是中断源的优先级,D1、D3、D4这三个设备的优先级应该是1>3>4。屏蔽码为11000011,它屏蔽了0#、1#、6#、7#设备的中断申请,但对2#、3#、4#设备的中断是开放的。对1#、3#、4#设备来说,1#设备中断申请应被屏蔽,3#、4#设备既满足了外设工作已完成的条件,而且设备未被屏蔽,所以可有中断请求参与排队。又因3#设备优先级大于4#设备,所以经排队线路应产生3#设备的向量地址011(因向量地址等于优先权),可由VIPE电路中看到它的输出向量地址确为011。71计算机组成原理(二)向量中断的执行过程图9-26为向量中断的执行过程。它表示在多线请求向量中断结构中,具有优先级为6级的中断源中断优先级为7级的执行过程。图中主机一侧包括CPU、VIPE、中断向量表和堆栈,设备一侧包括外部设备和中断源等,接口未画出。向量中断过程如下:1、当设备有中断源请求时,通过中断请求线IRQ向CPU提出申请;2、CPU响应后,由中断响应线INACK回答中断向量优先权编码器VIPE;3、由VIPE形成优先级最高的向量地址VA,通知CPU;4、CPU执行中断隐指令,隐指令可完成保护旧现场,在本例中将PSW7和PC7压入堆栈。5、同时建立新现场,用PSW6和PC6填写CPU内的PSW和PC,至使CPU脱离原程序,执行新的中断服务程序。72计算机组成原理图9-26向量中断的执行过程73计算机组成原理程序的切换可归结为中断向量的切换。向量中断的程序切换由CPU在响应过程中,执行隐指令来实现。这条隐指令的功能相当执行四条传送指令。其中两条保护旧现场,两条建立新现场。由于机器中设置堆栈,保护旧现场操作可用栈操作来完成。MOVPSW,-(SP)

;PSW进线MOVPC,-(SP)

;PC进栈MOVVA,PC ;(VA)→

PCMOVVA+2,PSW ;(VA+2)→

PSW中断隐指令执行后,PC中存放着优先权最高的外设中断服务程序的入口地址。从而使CPU运行中断服务程序。与单线查询方式相比,CPU省去了转到公共服务程序或执行中断查询指令来确定中断源过程。因为向量中断系统没有延误环节,所以实时响应性高。堆栈应用于多重中断嵌套,使返回过程十分简便灵活。被中断程序的向量不断压入堆栈,返回时,在服务程序末尾编入一条从中断返回指令RTI即可。RTI相当于执行两条堆栈弹出操作:MOV(SP)+,PC ;恢复断点地址MOV(SP)+,PSW ;恢复PSW堆栈与向量中断结合,极大地改善了中断系统的性能。74计算机组成原理五、中断服务处理CPU在中断响应后转入中断服务程序,进入中断服务处理。不同计算机对中断处理各不相同,但对多数机器而言,中断处理过程如图9-27所示。中断服务程序是程序员根据中断机构、中断系统、中断源性质或服务特点编制的程序。典型的中断服务程序应包括三个程序段。75计算机组成原理图9-27中断服务子程序

76计算机组成原理(一)先行段的主要功能1、判断引起中断的设备对于非向量中断方式,此段要查询中断源,向量中断则不需要查询。2、保护现场及屏蔽字此时的现场指各工作寄存器的内容(断点地址和程序状态字在中断周期中进行保护)。现行程序和各中断服务程序都设有屏蔽字,它可能对某些中断请求开放,对另一些中断请求则屏蔽,以表示本程序与其它中断的关系,所以要加以保护,设置新屏蔽字。开放中断,在完成保护旧现场及屏蔽字并建立新屏蔽字后,打开中断。此后可以响应更高级的中断请求,如果本程序不允许再次中断,则可以不开中断。(二)中断服务程序本体中断服务程序是根据中断源性质、特点编写的。它可以是一个很简单的程序,如执行输入输出指令,也可能是一段很长的程序。77计算机组成原理(三)恢复段的主要功能1、关闭中断,防止恢复现场过程被别的中断打扰而丢失信息;2、恢复本次中断现场和屏蔽字;3、清除中断请求,表示本次中断处理完毕;4、打开中断;5、返回被中断的程序,从断点继续往下执行。注意:在单线请求结构中,开放中断指令与返回指令在硬件上要在一起完成,以避免出现不能返回到断点地址的失误,向量中断不存在此问题。78计算机组成原理六、中断系统的响应性硬件中断机构和软件服务程序,以及包括接口中的中断线路称为中断系统。中断处理过程可划分为三个阶段;先行处理、服务处理和恢复处理,如图9-28所示。79计算机组成原理图9-28中断过程三阶段80计算机组成原理1、先行处理阶段包括响应、查询和保护三个步骤。响应指执行隐指令的时间。它决定于中断机构和隐指令要完成的操作。查询是确定对优先级最高的中断请求设备的识别,可由软件查询和硬件排队线路决定,串行和并行排队所需时间不同。保护是将程序用的寄存器内容转移到安全地方。2、服务处理阶段是对中断设备的要求进行处理,服务处理时间长短与中断源的性质有关。3、恢复处理阶段仅包括恢复工作寄存器的内容,返回可用返回指令来实现。81计算机组成原理压缩先行处理和恢复处理的时间对提高中断响应性至关重要,因为系统频繁的中断,要占用大量的处理时间(称额外开销)。为提高系统效率,希望尽量压缩额外开销。对先行处理阶段的时间压缩主要是压缩查询时间。从上一节讨论中可清楚看到,采用多线请求向量中断技术后,可以不需要查询时间,即在执行中断隐指令后,可转入现场保护。现场保护的传统方法是执行存储指令或进栈指令。为压缩保护现场时间可采取下列几种改进方法。1、部分保护。只保护几个在中断处理程序中需要使用的寄存器,这就可以缩短不必要的转存时间。2、设置功能强的“通用寄存器转储”指令。执行该指令后可将部分或全部寄存器内容转储到指定单元。3、采用多套通用寄存器。每个中断源均指定一套通用寄存器。4、设计功能强的中断指令。一般说,恢复处理是先行处理的逆过程,可采取同先行处理相同的技术。82计算机组成原理七、多重中断及中断优先权的动态分配多重中断是指,当CPU正在执行某个中断服务程序期间,且CPU处于开中断状态,则允许优先级高的中断源中断级别低的中断服务程序,在保存断点和现场后转去响应优先级更高的中断请求,并执行新的中断服务程序。中断系统中的优先权包含着响应优先和处理优先权。响应优先指多个中断请求同时提出时,由硬件排队线路决定CPU响应中断请求的次序。处理优先权指CPU执行服务程序过程中,优先执行哪个中断服务程序的次序。83计算机组成原理中断级的响应次序由硬件排队线路决定。一旦设计完成,系统的响应优先级别就决定了,但缺乏改变优先级别的灵活性。在有优先级中断屏蔽码控制的条件下,可以在不改变系统排队线路的条件下,由系统软件根据需要,改变多重中断的处理次序,使其和中断响应次序不同。因为中断屏蔽码是由软件赋值,改变屏蔽码可以改变各设备之间中断处理次序。所以屏蔽可看成中断处理过程中的软排队器。从中断服务程序结构中看,中断服务程序可以在具体处理前被中断。所以中断处理次序可以不同于中断响应次序。这就反映了中断系统软硬件结合带来的灵活性。下面举例说明屏蔽在多重中断情况下所起的作用。假设某机中断系统有4级响应优先权,响应级由高到低为1→2→3→4,每级对应1个屏蔽码。表9-6列出中断响应优先级与屏蔽级一致情况下的屏蔽码。84计算机组成原理表9-6中断响应优先级与屏蔽级一致时的屏蔽码程序级别屏蔽码1234备注第一级第二级第三级第四级11110111001100010为开放1为屏蔽85计算机组成原理在以上条件下,可描述多重中断CPU运动的轨迹。由图9-29可知,横向表示时间,记号①为1号设备中断请求信号在时间轴上出现的时刻。在CPU执行主程序过程中的某一时刻,①②④三个设备同时出现请求信号,按排队线路,CPU应首先响应1级请求,执行1级的服务程序并保护现场和旧屏蔽字后,将1级程序的屏蔽码置入各接口屏蔽寄存器,它将屏蔽掉2、4级的中断请求,执行完`1级服务程序后,恢复原屏蔽码,返回主程序后,再响应②、④请求,与上述分析过程相同。当第二组中断请求出现时,由于③请求先出现,系统响应3级请求,并执行服务程序。当3级程序屏蔽码置入屏蔽寄存器后,由于它对1级中断是开放的,所以产生①请求时,则系统被1级中断,当执行完1服务程序返回3级时,又有②请求出现,因为3级对2级开放,所以再被2级中断,这就形成嵌套中断。86计算机组成原理图9-29响应次序与处理次序一致时的CPU运动轨迹87计算机组成原理在不改变硬件排队响应次序条件下,欲改变中断处理次序为1—4—3—2,则改变屏蔽码如表9-7表所示。在同样中断请求情况下,CPU运动轨迹如图9-30所示。当第一组三个请求①、④、②同时到来时,首先响应1级请求,当返回主程序后,④和②请求同时产生,由硬件排队线路决定先响应2级请求,但当2级屏蔽码置入屏蔽寄存器后,由于2级对4级是开放的,且屏蔽它本身,当2级服务程序执行到开中断指令后就被4级中断;当4级中断服务程序执行完后返回到2级程序,并执行完2级服务程序后返回主程序。由此可知,它改变了硬排队所决定的响应次序。当第二组中断请求出现时,③申请先出现,故应首先响应3级中断,并执行中断程序,因3级对1级开放,所以当①请求出现时,1级中断了3级。1级服务程序执行完后返回3级。在执行3级服务程序过程中,②请求出现,由于3级对2级屏蔽,所以当3级执行完返回主程序后才响应2级请求并执行,执行完后返回主程序。屏蔽技术为用户提供了用程序控制中断系统的手段,它动态地调度多重中断优先处理顺序,为中断系统带来灵活性。88计算机组成原理表9-7中断处理次序为1→4→3→2的屏蔽码程序级别屏蔽码1234第一级第二级第三级第四级111101000110011189计算机组成原理图9-30响应次序与处理次序不一致时的CPU运动轨迹90计算机组成原理9.5DMA(存储器直接存取)方式

一、程序直接控制与程序中断控制数据传送的不足高速大容量存储器和主存储器之间交换信息时,若采用程序直接控制传送或程序中断控制传送的方式,则会有如下问题发生。1、采用程序直接传送,每传送一个字节(字)要执行若干条指令,并占用多个存储周期。在传送完一个字节后,要判断一批数据是否传送完成。若没有完成,要重新启动外设工作。而一般高速设备具有独立的时钟控制,从启动到整个数据传送结束都是在独立的时钟控制下完成的,不可能在传送完一个字符后停止,因此这种高速同步操作的设备与程序直接控制传送不相容。此外若外设工作速度低于主存周期时,主机效率受到限制。91计算机组成原理2、采用中断控制数据传送可以提高主机效率,但若用于高速外设和主机交换信息,会使主机处于频繁的中断与返回过程中,从而加重了与中断有关的额外负担(即保护旧现场,恢复新现场),这样便降低了CPU的性能,还有有发生丢失数据的可能。例如磁盘平均速度为10万字符/秒,即用10us传送一个字符,CPU指令周期为2us,若中断服务程序为10条指令,交换一次数据CPU需要20us。其结果显然是,CPU第一个数据还没有取走,而第二个数据便将第一个数据冲掉,致使数据丢失。所以对高速I/O设备,用程序中断传送控制方式也是不合适的。综上所述,高速度、大容量存储设备和主存之间的数据传送需要有更为有效的技术。采用直接存储器访问方式(DMA方式)较为适合。92计算机组成原理二、直接存储器访问(DMA)DMA数据传送方式是在I/O设备与存储器之间由硬件组成的直接数据通路,用于高速外设按照连接地址直接访问主存储器的成块数据传送。图9-31为具有DMA数据通道结构框图。数据传送是在DMA控制器的控制下进行的。由DMA给出当前正在传送的数据字的主存地址,并统计传送数据的个数,以确定一组数据的传送是否已结束。在主存中开辟连续地址的专用缓冲器,用来提供或接受传送的数据。在数据传送前和结束后,要通过程序或中断方式对缓冲器和DMA控制器进行预处理和后处理。93计算机组成原理图9-31DMA数据通道结构框图94计算机组成原理三、DMA的特点DMA和前两种I/O控制方式有如下基本区别:1、DMA控制器建立了外部设备和内存之间直接交换的数据通道,大大减轻了总线负荷。2、数据传送过程是由DMA控制器来实现控制的。DMA控制能像CPU一样访问主存。因此DMA方式是以存储器为中心,而程序直接传送、程序中断传送都是以CPU为中心,利用软硬件手段来控制数据传送。当DMA和CPU同时要求访问内存时,常赋予DMA以较高的优先级。3、主存需开辟专用缓冲区,及时供给和接收数据。DMA数据传送开始前,需由主程序为DMA传送作准备,使DMA初始化;在DMA传送结束后,再通过中断方式进行结束处理。4、为了解决CPU和DMA同时访问主存发生的冲突,DMA传送常采用周期挪用(StealingCycle)。周期挪用是在CPU执行指令周期中冻结一个存储周期,被DMA设备挪用,进行一次数据读写操作。一旦高速设备提出与主存交换信息时,在一个存储周期结束后,立即窃取下一个储存周期,这样就不必等待CPU响应,而且被窃取周期内CPU仍可执行内部操作,因此可使CPU和外设的并行操作程度更高,只有CPU的指令周期连续占满存储周期时,DMA才会引起CPU性能的下降。95计算机组成原理四、DMA三种工作方式1、CPU暂停方式主机响应DMA请求后,让出存储总线,直到一组数据传送完毕后,DMA控制器才把总线控制权交还给CPU。采用这种工作方式的I/O设备,在其接口中一般设置有小容量存储器。I/O设备先与小容量存储器交换数据,然后由小容量存储器与主机交换数据,这样可减少DMA传送占用存储总线的时间,也即减少CPU暂停工作时间。2、CPU周期窃取方式DMA控制器与主存储器之间传送一个数据,占用(窃取)一个CPU周期,即CPU暂停工作一个周期,然后继续执行程序。3、直接访问存储器工作方式这是标准的DMA工作方式,如传送数据时CPU正好不占用存储总线,则对CPU不产生任何影响。如DMA和CPU同时需要访问存储总线,则DMA的优先级高于CPU。在DMA传送数据过程中,不能占用或破坏

CPU硬件资源或工作状态,否则将影响CPU的程序执行。96计算机组成原理五、DMA控制器的组成DMA控制器(接口)的结构框图如图9-32所示。图9-32DMA接口97计算机组成原理1、寄存器组(1)DMA地址寄存器DMAR该寄存器初始值为主存缓冲区的首地址。主存缓冲区地址是连续的,I/O设备访存时,由该首地址开始。该寄存器具有自动加1功能,能不断提供存储器数据区的地址。(2)外部设备地址寄存器DAR该寄存器存放I/O设备的设备码或表示设备信息存储区的寻址信息,如磁盘数据所在的区号,盘面号和柱面号等。具体内容由I/O设备的数据格式及地址编址方式决定。(3)字数计数器WCR该寄存器初始值为要传送数据的总字数,每传递一个字(或字节)计数器自动减1。当WCR减为零时,表示数据已全部传送完毕,结束传输。98计算机组成原理(4)控制与状态寄存器CSR它是在DMA传送时存放DMA控制字或状态字的寄存器,其格式为:其中1~3为方式控制位。有的接口中使用两个寄存器,分别存放控制字和状态字。(5)数据缓冲寄存器DBR它是用来暂存I/O设备与主存之间传递的数据,与主机之间并行传送,并具有字节拼装能力。它可以是移位寄存器,接受外设串行传送数据并拼成字节或字。99计算机组成原理2、中断控制逻辑DMA通道由CPU程序准备和启动。一旦启动后,数据传送过程完全由DMA接口实现;当DMA传送结束后,由DMA接口中的中断控制逻辑向CPU发中断申请,要求处理机做结束处理工作。如读出盘驱动器的状态字,判断是否出错,若出错则进行出错处理。3、DMA请求触发器CDMAREQ在批量交换数据传输过程中,每一个数据的交换都要向CPU发一次DMA请求,接口中设置DMA触发器CDMAREQ。一次周期挪用结束,在CPU一侧,DMA控制器清除CDMAREQ;在设备一侧,当设备读/写操作完成后,则以完成信号回答接口,且使CDMAREQ置1,表示下次DMA请求开始。4、传输线传输线是DMA接口与主机和DMA接口与I/O设备两个方向的数据线、地址线和控制信号线。100计算机组成原理六、DMA操作过程DMA的数据传送过程可分为三个阶段:DMA传送前的预处理(即CPU用主程序为DMA传送作准备)、数据传送及传送后处理。如图9-33所示。图9-33DMA传送过程101计算机组成原理1、DMA传送前的预处理为了实现外部设备和主存之间数据直接成批的交换,必然把有关数据来源、去向和传送数据的总数等信息事先通知DMA接口。所以在传送前先由CPU用测试指令测试设备状态,以判断是否可以调用该设备。若可以调用该设备,则用以下几条输入输出指令实现。MOV设备地址,DAR;设备地址→DAR MOV主存数据区首址,DMAR;主存数据区首址→DMARMOV数据字数,WCR;数据字数→WCR MOV控制字,DSR;启动设备在完成这些工作之后,CPU继续执行原程序,从此CPU与高速设备重叠运行。DMA接口被启动后,便代替CPU管理I/O设备进行数据传送。102计算机组成原理2、DMA的数据传送下面以数据输入操作为例,介绍DMA的数据传送过程。(1)由主程序启动设备后,从I/O设备存储介质上读入一个字到DMA数据缓冲寄存器的DBR中。此时设备控制器以“完成”信号置CDMAREQ=1,表明设备已完成一个数据传送工作,并向CPU发出DMA请求,申请存储周期。此时若有几个DMA接口同时发DMA请求,则按优先级由硬件排队线路来决定首先响应哪一个DMA请求。(2)CPU响应DMA请求并在CPU的一个存储周期结束后,DMA立即占用下一个存储周期(DMA周期)进行写操作,此时CPU现场冻结。图9-34为DMA运动轨迹。当DMA周期结束后开始热启动。103计算机组成原理图9-34DMA运动轨迹104计算机组成原理在DMA周期中CPU把存储器的控制权移交给DMA接口,DMA接口与主存储器直接沟通,并执行以下三个操作:MAR←DMAR;将存储器数据区首址送MARMDR←DBR;将数据缓冲寄存器数据送MDRWRITE;发送写存储器命令当DMA周期结束后以清除信号送DMA接口。105计算机组成原理(3)清除信号在DMA接口中执行三个操作:WCR←(WCR)+1;WCR为补码计数器DMAR←(DMAR)+1;指向存储器数据区的下一个地址CDMAREQ←0;表示本次DMA结束(4)高速设备只需要启动一次,以后连续不断读出,即循环上面(1)、(2)、(3)操作,完成所要传送的全部字符。(5)数据全部读出并交换完毕后,DMA接口发DMA中断请求。中断请求条件是WCR·R·I=1。WCR=1,即全部字数交换完毕,R=1外设工作完成,I=1系统允许中断。3、DMA的结束处理CPU响应中断后,则停止原程序执行,转去执行中断服务程序,做一些DMA结束处理工作,如对送入主存数据的检验,测试在传送过程中是否发生错误等。106计算机组成原理七、DMA与中断的区别1、中断方式是程序的切换,即通过CPU执行一段中断服务程序来交换一个数据。因此CPU硬件资源被所有程序共享,在切换过程中破坏原程序的状态,每次切换都要以额外开销(保护旧现场和恢复旧现场)执行中断服务程序。DMA方式仅挪用一个存储周期:若在此周期中,CPU执行与主存有关的操作,则只需要冻结此存储周期,在DMA结束后可马上热启动,CPU可继续执行原程序;若在此周期中,CPU执行与主存无关的操作,此时CPU可继续执行程序,这使CPU操作与DMA操作高度重叠。DMA操作只需在启动和结束阶段由CPU执行一段程序外,在整个数据传送期间不占用CPU硬件资源。107计算机组成原理2、中断方式只能在一条指令结束后CPU才能响应中断请求。而在DMA方式中,CPU可以在指令周期中任何一个周期结束时DMA请求。图9-35为中断与DMA的不同插入点。3、DMA方式使CPU与DMA的并行性比中断方式高。4、DMA方式的优先权比中断方式高。中断具有对异常或复杂事件的处理功能,而DMA方式只适用于对数据传送的控制。5、DMA方式只对少量同类设备进行控制,适于在微小型机中使用。系统较大时,外部设备很多,多个DM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论