版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 输入/输出系统v计算机的基本功能之一是能够与其他的外部设备交换信息。但是由于这些设备具有各自不同的组成结构和工作原理,因此,与中央处理机的连接方式也各不相同。输入输出系统又简称为I/O系统,其功能是完成计算机与外部设备的联系。它和整机的速度、处理能力、实用性、兼容性等各种系统性能都有非常密切的关系。随着计算机应用范围的不断扩大,I/O系统的地位显得越来越重要。用户主要是通过外部设备和主机交互信息的,因此,了解常用的外部设备的工作原理十分必要。uI/O系统的任务和功能u计算机的I/O方式本章要点:本章要点: v计算机的输入输出系统(I/O系统)由I/O接口、I/O管理部件以及有关的I/O
2、软件组成,其主要作用是实现计算机系统的输入输出功能。I/O系统具体要解决的问题是:怎样在主机和外部设备之间建立一个高效、可靠的信息传输“通路”;如何对外设进行编址,使CPU方便地寻找到要访问的外设;I/O接口、管理部件如何协调完成主机和外部设备之间的数据交换等等。v9.1 I/O9.1 I/O系统系统v输入输出系统的发展大致可分为四个阶段。v1早期阶段v早期的I/O设备种类较少,I/O设备与主机交换信息都必须通过CPU。工作模式如图9-1所示。9.1.1 I/O系统概述系统概述内存内存CPUCPUI/O图9-1 I/O通过CPU与主机交换信息v这种交换方式延续了相当长的时间。当时的I/O系统具
3、有以下几个特点:每个I/O设备都必须配有一套独立的逻辑电路与CPU相连,用来实现I/O设备与主机交换信息,因此线路十分零散、庞杂;输入输出过程是穿插在CPU执行程序期间进行的,当I/O设备与主机交换信息时,CPU不得不停止各种运算,因此,I/O设备与CPU是按串行方式工作的,极大的浪费了CPU的时间;每个I/O设备的逻辑控制电路与CPU的控制器紧密构成一个不可分割的整体,它们彼此依赖,相互牵连,因此,想要增加、删除或者更换I/O设备就非常困难。v在这个阶段中,计算机系统硬件价格十分昂贵,机器速度不高,配置的I/O设备不多,主机与I/O设备交换的信息量也不大,计算机应用的普及程度还比较低。v2接
4、口模块和DMA阶段v在这个阶段,I/O设备通过接口模块与主机连接,计算机系统采用了总线结构,工作模式如图9-2所示。主机I/O接口外部设备1外部设备2外部设备nI/O接口I/O接口I/O总线图图9-2 外部设备通过外部设备通过I/O接口和主机交换信息接口和主机交换信息 v 通常在接口中都设有数据通路和控制通路。数据经过接口既起到缓冲作用,又可完成串 并变换或并 串变换。控制通路用以传送CPU向I/O设备发出的各种控制命令,或者使CPU接受来自I/O设备的反馈信号。许多接口还能满足中断请求处理的要求,使得I/O设备与CPU可按并行方式工作,大大地提高了CPU的工作效率。采用接口技术还可以使多台I
5、/O设备分时占用总线,使得多台I/O设备互相之间也可实现并行工作方式,有利于整机工作效率的提高。v虽然这个阶段实现了CPU和I/O设备并行工作,但是在主机与I/O设备交换信息时,CPU要中断现行程序,即CPU与I/O设备还不能做到绝对的并行工作。v为了进一步提高CPU的工作效率,又出现了DMA(Direct Memory Access)技术,其特点是I/O设备与主存之间有一条直接数据通路,I/O设备可以与主存直接交换信息,而不需要打断CPU的工作,故其资源利用率得到了进一步的提高。v在小型和微型计算机中,采用DMA方式可实现高速外设与主机成组数据的交换,但在大、中型计算机中,外设配置繁多,数据
6、传送频繁,若仍采用DMA方式会出现一系列问题。如果每台外设都配置专用的DMA接口,不仅增加了硬件成本,而且为了解决众多DMA同时访问主存的冲突问题,使控制变得十分复杂。CPU需要对众多的DMA进行管理,同样会占用CPU的工作时间,而且因频繁地进入周期挪用阶段,也会直接影响CPU的整体工作效率。3 3具有通道结构的阶段v因此在大、中型计算机系统中,采用了I/O通道的方式来进行数据交换。v图9-3表示了具有通道结构的计算机系统。CPU内存内存I/O通通道道图图9-3 I/O通过通道与主机交换信息通过通道与主机交换信息v通道是用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件,可视为一
7、种具有特殊功能的处理器。通道有专用的通道指令,它能独立地执行用通道指令所编写的输入输出程序,但它不是一个完全独立的处理器,它受CPU的I/O指令启动、停止或改变其工作状态,是从属于CPU的一个专用处理器。依赖通道管理的I/O设备在与主机交换信息时,CPU不直接参与管理,故CPU的资源利用率更高。v4具有I/O处理机的阶段v输入输出系统发展到第四阶段是具有I/O处理机的阶段。I/O处理机又叫做外围处理机(Peripheral Processor Unit,PPU),它基本独立于主机工作,不仅可完成I/O通道要完成的I/O控制,还可完成码制变换、格式处理、数据块检错、纠错等操作。具有I/O处理机的
8、输入输出系统与CPU工作的并行性更高。这说明I/O系统对主机来说,具有更大的独立性。9.1.2 I/O系统组成系统组成I/O接接口口设 备 控 制 器I/O设备CPU主 存主 存图图9-4 I/O系统的组成系统的组成v外部设备能够利用光、电、磁及机械传动等手段,把信息转换为二进制代码的形式。v设备控制器能将设备生成的各种形式的二进制代码转换成电信号,并根据输入信号的要求对设备进行控制。设备控制器是设备与计算机连接的部件,是外部设备的一个组成部分。vI/O接口负责交换主机和I/O设备的状态信息,使主机与I/O设备的速度相匹配,实现主机与I/O设备之间的数据交换,并且实现数据格式的变换。vI/O接
9、口可以分为两类:串行接口和并行接口。串行接口与I/O设备之间,按顺序逐位传送信息;接口与主机之间,按字或字节并行传送数据,数据格式的变换在接口内部完成。并行接口与I/O设备之间,或者与主机之间都是按字或字节并行传送数据。显然,并行接口传输效率高。目前计算机的I/O接口正向标准化、通用化和系列化方向发展。v 思考: 在系统总线和I/O设备中间为什么要使用I/O接口电路?v由于各种外设的工作速度相差很大,有些设备工作速度相当高,如当前硬盘的内部传输率达17.5-66MB/s,而有些外设却由于机械和其他因素所致速度相当低,如键盘是用于人工输入数据的,通常速度为几十毫秒输入一个字节。因此,CPU何时从
10、输入设备读取数据以及何时往输出设备写入数据,就成为较复杂的定时问题。9.2 计算机计算机I/O方式方式v计算机主机与外设之间的数据传送方式随着计算机技术的发展经历了从简单到复杂、从低级到高级、从集中管理到分散管理的演变过程。按照I/O管理组织、I/O接口与外设并行工作的程序方式, 概括起来,可将数据传送方式分为:程序查询方式、中断方式、DMA方式。v程序查询方式是主机与外设间进行信息交换的最简单方式,程序查询方式的核心问题在于需要不断地查询I/O设备是否准备就绪。v由CPU执行一段输入输出程序来实现主机与外设之间数据传送的方式叫做程序直接控制方式。根据外设的不同性质,这种传送方式又可分为无条件
11、传送和程序查询方式两种。9.2.1 程序查询方式程序查询方式v在无条件传送方式中,I/O端口总是准备好接收主机的输出数据,或总是准备好向主机输入数据,因而CPU无须查询外设的工作状态,而默认外设始终处于准备就绪状态。在CPU认为需要时,随时可直接利用I/O指令访问相应的I/O端口,实现与外设之间的数据交换。这种方式的优点是软、硬件结构都很简单,但要求时序配合精确,一般的外设难以满足要求。所以,只能用于简单开关量的输入输出控制中,稍复杂一点的外设都不采用此种方式。v许多外设的工作状态是很难事先预知的,比如何时按键,打印机是否能接收新的打印输出信息等。当CPU与外设工作不同步时,很难确保CPU在执
12、行输入操作时,外设一定是“准备好”的;而在执行输出操作时,外设一定是“缓冲器空”的。为了保证数据传送的正确进行,就要求CPU在程序中查询外设的工作状态。如果外设尚未准备就绪,CPU就循环等待,只有当外设已做好准备,CPU才能执行I/O指令进行数据传送,这就是程序查询方式。v程序查询方式的工作过程大致为:v(1)预置传送参数。在传送数据之前,由CPU执行一段初始化程序,预置传送参数。传送参数包括存取数据的主存缓冲区首地址和传送数据的个数。v(2)向外设接口发出命令字。当CPU选中某台外设时,执行输出指令向外设接口发出命令字启动外设,为接收数据或发送数据做应有的操作准备。v(3)从外设接口取回状态
13、字。CPU执行输入指令,从外设接口中取回状态字并进行测试,判断数据传送是否可以进行。v(4)查询外设状态标志。CPU不断查询状态标志,如果外设没有准备就绪,CPU就反复进行查询,一直到这个外设准备就绪,并发出“外设准备就绪”信号为止。v(5)传送数据。只有当外设准备好时,才能实现主机与外设间的一次数据传送。输入时,CPU执行输入指令,从外设接口的数据缓冲寄存器中接收数据;输出时,CPU执行输出指令,将数据写入外设接口的数据缓冲寄存器中。v(6)修改传送参数。每进行一次数据传送之后必须要修改传送参数,其中包括主存缓冲区地址加l,传送个数计数器减1。v(7)判断传送是否结束。如果传送个数计数器不为
14、0,则转第(3)步,继续传送,直到传送个数计数器为0,表示传送结束。v程序查询方式的工作流程如图9-5所示,其程序查询的核心部分在图中用虚线框框出,真正传送数据的操作由输入或输出指令完成。v程序查询方式使CPU处于忙等的状态,不利于CPU资源的充分利用,所以人们提出中断方式。预置传送参数预置传送参数启动外设启动外设外设准备外设准备就绪就绪?传送一次数据传送一次数据修改传送参数修改传送参数传 送 完传 送 完否否?取外设状态取外设状态结束YYNN图图9-5 程序查询方式流程程序查询方式流程v在程序查询方式中使CPU循环等待,造成了CPU资源的浪费。中断传送方式很好地解决了这个问题,在外设没有做好
15、数据传送准备时,CPU可以运行与传送数据无关的其他指令,外设做好传送准备后,主动向CPU提出申请,若CPU响应这一申请,则暂停正在运行的程序,转去执行数据输入/输出操作的指令,数据传送完毕后返回,CPU继续执行原来运行的程序,这样使得外设与CPU可以并行工作,提高了系统的效率。如今,中断已经是现代计算机普遍采用的一项技术。9.2.2 中断方式中断方式v中断是指在计算机中,打断CPU正在执行的程序,而转去执行相应的中断服务程序,在中断服务程序执行完毕后,再返回到原程序继续执行的过程。实现中断的硬件和软件所组成的系统,就叫中断系统。计算机正是依靠中断系统实现了分时处理、故障处理、实时处理等实际问题
16、。1 1中断的相关概念中断的相关概念v中断系统的组成包括:微处理器内有中断的相关硬件电路,用来接收中断请求、响应请求、保护现场、转向中断服务程序、处理完毕返回等;外围有与该处理器匹配的中断控制器即中断接口,实现管理多个中断源,完成优先级裁决,中断源屏蔽等功能;此外还包括依据处理器、控制器的结构编写的中断处理程序,系统初始化程序等实现中断管理的软件。v中断系统的功能包括:中断源的识别、多个中断源请求时,软件可禁止与允许每个请求,优先级的确定、中断现场的保存、对中断请求的分析和处理、中断返回等。v中断是由中断源产生的,一台计算机可以有多个中断源,中断源向中断系统发出请求中断的申请,多数具有随机性,
17、计算机为记录中断源的来源,对应每个中断源有一个具有存储功能的中断请求触发器(INTR),当某一个中断源有中断请求时,它对应的中断请求触发器置“1”状态,表示向CPU发出了中断请求信号。在中断接口电路中,多个中断触发器构成中断寄存器,其内容称为中断字,记录中断源的来源。vCPU在处理一些紧要事件时不允许中断,因为这类事件执行过程中一旦被中断,将会引起严重后果,为避免中断请求信号的干扰,设置了开中断/关中断触发器INH,当INH置“0”时,中断源的中断请求信号被允许进入排队,称为“开中断” ;当INH置“1”时,所有中断源发出的中断请求被禁止,称为“关中断”。v当多个中断源同时向CPU发出中断请求
18、时,CPU首先处理哪个中断源的请求呢?为了不发生矛盾,而且处理及时,计算机将所有中断源的请求按轻重缓急排序,0级、1级、2级 n级排队依次处理,保证紧迫程度最高的中断源的中断请求排在最前,最快得到CPU的处理。这种中断处理过程中的优先级别,叫做中断优先权。例如:PC机的中断优先权由高到低的顺序是:除法错误中断,INT0,INTnNMI(非屏蔽中断)INTR(外设中断)单步中断。2 2中断优先权与中断屏蔽中断优先权与中断屏蔽v如何判别设备中断的优先权要由中断判优来完成,中断排队的目的是为了判优,中断判优的方法有软件判优法和硬件判优法。软件判优是用程序来判别优先级,优先级高的先查询,优先级低的后查
19、询,而通过修改程序可以调整设备的优先级。 v如图9-6所示,CPU接到中断请求信号,就执行查询程序,顺序检测中断请求寄存器的状态,在识别中断源的过程中,优先级顺序已经按查询顺序排好,若要改变优先级可以通过改变程序查询顺序来完成。1#中断服务中断服务2#中断服务中断服务3#中断服务中断服务1#设备设备?2#设备设备?3#设备设备?YYYNNN 图9-6 软件判优法 v硬件判优是靠硬件电路实现的,一旦电路设计好,优先级就不能更改,成本较高,但速度快,根据中断请求信号的传送方式不同,常见的硬件排队电路有:独立请求线的优先排队电路、公共请求线的优先排队电路。公共请求线的排队电路如图9-7所示。CPU1
20、#设 备 接设 备 接口口2#设 备 接设 备 接口口n#设备接设备接口口中 断 请 求中 断 请 求ARQI/O数据总线数据总线SYNPOL图图9-7 串行顺序链串行顺序链识别法识别法v 多重中断 v多重中断是指在处理某一中断过程中,又有比该中断优先级高的中断请求,于是CPU中断原中断服务程序的执行,而又转去执行新的中断服务程序。这种多重中断的执行形成了中断嵌套,如图9-8所示。 K1 K1+1 K2 K2+1 K3 K3+1 原主程序 1#中断 服务程序 2#中断 服务程序 3#中断 服务程序 返回 返回 返回 响应 1#请求 2#请求 响应 3#请求 响应 K1+1 PSW1 K2+1
21、PSW2 K3+1 PSW3 堆栈 图图9-8 多重中断多重中断v中断屏蔽v当多个中断源发出中断请求时,CPU只能响应一个中断,中断屏蔽可实现部分中断的封锁。每个中断源在配有一个中断请求触发器的同时,配有一个中断屏蔽触发器(MASK),它们成对出现,当MASK置1时,该中断源的请求被屏蔽,中断请求不能进入中断排队逻辑,进行判优;当MASK置0时,该中断请求被允许,经过中断排队判优后,最终送往CPU。v多个中断屏蔽触发器组成了中断屏蔽寄存器,其内容被称为屏蔽字。我们可以通过软件编程改变屏蔽寄存器的某一位,使其置1,从而实现对某个中断源的屏蔽控制。此外,硬件的中断排队电路所决定的中断响应次序是固定
22、的,但通过中断屏蔽位的控制,决定某级中断请求能否进入中断排队器,可以改变中断响应次序。v需要注意的是,这里的中断屏蔽作用是,是否让中断源的请求进入排队逻辑,最终让CPU接到请求信号,而在CPU内部中断逻辑中,有一个同样起中断屏蔽作用的开/关中断触发器,它的作用是,是否允许CPU接受中断请求、响应中断。v对中断请求的整个处理过程是由硬件和软件结合起来形成的一套中断请求机构实施的,一般包括5个步骤,如图9-9所示。3 3中断响应与中断处理中断响应与中断处理中断源发出中断中断源发出中断请求请求中断判优中断判优中断响应中断响应中断处理中断处理中断返回中断返回图图9-9 中断过程中断过程v中断源向CPU
23、发出中断请求需要有两个条件:第一,外设本身准备工作完毕;第二,系统允许外设发中断请求,即CPU处于开中断状态。v中断请求信号经过中断判优后,将优先权最高级别的中断请求送往CPU,CPU收到后,向中断源发出响应信号,并做出相应的响应动作。我们把发生中断时,CPU暂停执行当前的程序,而转去处理中断,CPU对中断请求做出反应的过程,称为中断响应。v中断响应后进入中断处理阶段,即中央处理机执行中断服务程序。在中断服务程序的末尾有一条中断返回指令,实现中断完成后恢复现场,即将中断响应时保存过的程序指令计数器PC、程序状态字寄存器PSW以及某些通用寄存器的内容重新取回,CPU返回原程序。v中断方式很好的解
24、决了程序查询方式的忙等问题,但如果中断程序在执行过程中外部设备和主存之间需要进行大量的数据传输,CPU仍需为外部设备和主存中转这些数据,中转数据传输完毕后才可以执行中断返回。为了可以使外部设备和主存之间直接传递数据,而不需要CPU的参与,从而节约CPU资源,人们又进一步提出DMA方式。vDMA方式即直接存储器访问(Direct Memory Access)方式,是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式的数据传送直接依靠硬件(DMA控制器)来实现,不需要执行任何程序。v无论程序查询还是程序中断方式,主要的工作都是由CPU执行程序完成的,这需要花费时间,因此不能实现高速外设
25、与主机的信息交换。9.2.3 DMA方式方式vDMA方式是在外设和主存之间开辟一条“直接数据通道”,在不需要CPU干预也不需要软件介入的情况下在两者之间进行的高速数据传送方式。在DMA传送方式中,对数据传送过程进行控制的硬件称为DMA控制器。当外设需要进行数据传送时,通过DMA控制器向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送。vDMA和中断的有很多不同,中断方式是程序切换,需要保护和恢复现场;而DMA方式除了开始和结尾时,不占用CPU的任何资源;对中断请求的响应时间只能发生在每条指令执行完毕时;而对DMA请求的响应时间可以发生在每个机器周期结束
26、时,如图8-10所示;中断传送过程需要CPU的干预,而DMA传送过程不需要CPU的干预,所以数据传输速率非常高,适合于高速外设的成组数据传送;DMA请求的优先级高于中断请求;中断方式具有对异常事件的处理能力,而DMA方式仅局限于完成传送数据块的I/O操作。取指令取指令取源操作数取源操作数取目的操作数取目的操作数执行执行DMA断点断点图图9-10 两种请求的响应时刻比较两种请求的响应时刻比较vDMA方式一般应用于主存与高速外设间的简单数据传送。高速外设如磁盘、磁带、光盘等辅助存储器以及其他带有局部存储器的外设、通信设备等。v对磁盘的读写是以数据块为单位进行的,一旦找到数据块起始位置,就将连续地读
27、写。找到数据块起始位置的时间是随机的,相应地,接口何时具备数据传送条件也是随机的。由于磁盘读写速度较快,在连续读写过程中不允许CPU花费过多的时间,因此,从磁盘中读出数据或往磁盘中写人数据时,一般采用DMA方式传送,即直接将数据由主存经数据总线输出到磁盘接口,然后写入盘片;或将数据由盘片读出到磁盘接口,然后经数据总线写入主存。v当计算机系统通过通信设备与外部通信时,常以数据块为单位进行批量传送。开始通信后,常以较快的数据传输速率连续传送,因此,适于采用DMA方式。在不通信时,CPU可以照常执行程序;在通信过程中仅需占用系统总线,系统开销很少。v在大批量数据采集系统中,也可以采用DMA方式。v许
28、多计算机系统中选用动态存储器DRAM,并用异步方式安排刷新周期。刷新请求的提出,对主机来说是随机的。DRAM的刷新操作可视为存储器内部的数据批量传送,因此,也可采用DMA方式实现,将每次刷新请求当成DMA请求。CPU在刷新周期中让出系统总线,按行地址(刷新地址)访问主存,实现各芯片中的一行刷新。利用系统的DMA机制实现动态刷新,简化了专门的动态刷新逻辑,提高了主存的利用率。vDMA传送是直接依靠硬件实现的,可用于快速的数据直传。也正是由于这一点,DMA方式本身不能处理较复杂的事件。因此,在某些场合常综合应用DMA方式与程序中断方式,二者互为补充。vDMA接口相对于查询式接口和中断式接口来说比较
29、复杂,习惯上将DMA方式的接口电路称为DMA控制器。在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用。而当DMA传送结束后,将恢复CPU的一切权力并开始执行其操作。由此可见,DMA控制器必须具有控制系统总线的能力,即能够像CPU一样输出地址信号,接收或发出控制信号,输入或输出数据信号。vDMA控制器在外设与主存之间直接传送数据期间,完全代替CPU进行工作。v图9-11给出了一个简单的DMA控制器框图,它由以下几部分组成v(1)主存地址计数器:用来存放待交换数据的主存地址。该计数器的初始值为主存缓冲区的首地址,当DMA传送时,每传送一个数
30、据,将地址计数器加“1”,从而以增量方式给出主存中要交换的一批数据的地址,直至这批数据传送完毕为止。v(2)传送长度计数器:用来记录传送数据块的长度。其初始值为传送数据的总字数或总字节数,每传送一个字或一个字节,计数器自动减“1”,当其内容为0时表示数据已全部传送完毕。也有些DMA控制器中,初始时将字数或字节数求补之后送计数器,每传送一个字或一个字节,计数器加“1”,当计数器溢出时,表示数据传送完毕。v(3)数据缓冲寄存器:用来暂存每次传送的数据。输人时,数据由外设(如磁盘)先送往数据缓冲寄存器,再通过数据总线送到主存。反之,输出时,数据由主存通过数据总线送到数据缓冲寄存器,然后再送到外设。v
31、(4)DMA请求触发器:每当外设准备好数据后给出一个控制信号,使DMA请求触发器置位。v(5)控制状态逻辑:它由控制和时序电路以及状态标志等组成,用于指定传送方向,修改传送参数DMA请求信号和CPU响应信号进行协调和同步。v(6)中断机构:当一个数据块传送完毕后触发中断机构,向CPU提出中断请求,CPU将进行DMA传送的结尾处理。主存主存CPU中断机构中断机构设备选择设备选择设备设备控制控制/状态逻辑状态逻辑D M A 请请求触发器求触发器主存地址计数主存地址计数器器传送长度计数传送长度计数器器数据缓冲寄存数据缓冲寄存器器HRQHLDADMAC控制线控制线中断请求中断请求溢出信号溢出信号数据线
32、数据线地址线地址线+1系统总线系统总线图图9-11 简单的简单的DMA控制器控制器vDMA控制器必须有以下总线:v地址总线:在DMA方式下,呈输出状态,可对主存进行地址选择;在CPU方式下,呈输入状态可对DMA控制器中的有关寄存器进行寻址。v数据总线:在DMA方式下,用它进行数据传送,在CPU方式下,可对DMA控制器的有关寄存器进行编程。v控制数据传送方式的信号线:当数据从外设写入主存时,存储器写信号和外设读信号同时有效;而当数据从主存读出送外设时,存储器读信号和外设写信号将同时有效。vDMA控制器与外设之间的联络信号线:DMA请求信号DREQ(输入)是外设向DMA控制器提出DMA操作的申请信
33、号;DMA响应信号DACK(输出)是DMA控制器向提出DMA请求的外设表示的应答信号。vDMA控制器与CPU之间的联络信号线:总线请求HRQ(输出)是DMA控制器向CPU请求让出总线的信号;总线响应信号HLDA(输人)是CPU向DMA控制器表示响应总线请求的信号。 vDMA控制器利用这些总线与CPU、主存及外设之间进行连接。图9-12给出了DMA控制器与CPU、主存及外设之间的连接框图。在进行DMA操作之前应先对DMA控制器编程。比如,确定传送数据的主存起始地址、要传送的字节数以及传送方式,是由外设将数据写入主存还是从主存将数据读出送外设。主存CPUDMA控制器外设HRQHLDADREQDAC
34、K数据线地址总线数据总线图9-12 DMA控制器的连接MEMRMEMWv下面以外设将一个数据块写入主存的操作为例,简述DMA控制器的操作过程。v(1)由外设向DMA控制器发出请求信号DREQ。v(2)DMA控制器向CPU发出总线请求信号HRQ。v(3)CPU向DMA控制器发出总线响应信号HLDA,此时,DMA控制器获取了总线的控制权。v(4)DMA控制器向外设发出DMA响应信号DACK,表示DMA控制器已控制了总线,允许外设与主存交换数据。v(5)DMA控制器按主存地址计数器的内容发出地址信号作为主存地址的选择,同时主存地址计数器的内容加1。v(6)DMA控制器发出信号到外设,将外设数据读入总
35、线,同时发出信号,将数据总线的数据写入地址总线选中的主存单元。v(7)传送长度计数器减1。v(8)判断字节计数器是否减到0,如果字节计数器不为0,跳转到步骤(5),如果字节计数器为0,数据块的DMA方式传送工作完成。这时,DMA控制器的HRQ降为低电平,总线控制权交还CPU。vDMA控制器与CPU通常采用三种方法使用主存,即CPU停止访问主存法、存储器分时法和周期挪用法。vCPU停止访问主存法是最简单的DMA方法。这种方法是用DMA请求信号迫使CPU让出总线控制权。CPU在现行机器周期执行完成之后,使其数据、地址总线处于三态,并输出总线批准信号。每次DMA请求获得批准,DMA控制器获得总线控制
36、权以后,连续占用若干个存取周期(总线周期)进行成组连续的数据传送,直至批量传送结束,DMA控制器才把总线控制权交回CPU。在DMA操作期间,CPU处于保持状态,停止访问主存,仅能进行一些与总线无关的内部操作。图9-13(a)是这种传送方法的时间图。这种方法只适用于高速外设的成组传送。v当外设的数据传输率接近于主存工作速度时,或CPU除了等待DMA传送结束而并无其它工作可做(例如单用户状态下的个人计算机)时,常采用这种方法。这样可以减少系统总线控制权的交换次数,有利于提高输入输出的速度。v采用存储器分时法时,把原来的一个存取周期分成两个时间片,一片分给CPU,一片分给DMA,使CPU和DMA交替
37、地访问主存。 v这种方法无须申请和归还总线,使总线控制权的转移几乎无需浪费时间,因此DMA传送的效率很高,同时CPU不停止现行程序的运行,也不进入保持状态,在很短的时间内便进行了DMA传送;但这种方法需要主存在原来的存取周期内为两个部件服务,如果要维持CPU的访存速度不变,就要求主存的工作速度提高一倍。另外,由于大多数外设的速度都不能与CPU相匹配,所以供DMA使用的时间片可能成为空操作,将会造成一些不必要的浪费。图9-13(b)是这种方法的时间图。 v周期挪用法是前两种方法的折衷。当外设没有DMA请求时,CPU按程序要求访问主存。一旦外设有DMA请求并获得CPU批准后,CPU让出一个周期的总
38、线控制权,由DMA控制器控制系统总线,挪用一个存取周期进行一次数据传送,传送一个字节或一个字。然后,DMA控制器将总线控制权交回CPU,CPU继续进行自己的操作,等待下一个DMA请求的到来。重复上述过程,直至数据块传送完毕。如果在同一时刻,发生CPU与DMA的访存冲突,那么优先保证DMA工作,而CPU等待一个存取周期;若DMA传送期间CPU无须访存,则周期挪用对CPU执行程序无任何影响。如图9-13(c)所示。DMA不工作不工作DMA不工作不工作CPU控制并使用主控制并使用主存存DMA控制并使用主控制并使用主存存主存工作时间主存工作时间CPU控制并使用主控制并使用主存存DMA控制并使用主控制并
39、使用主存存主存工作时间主存工作时间CPU控制并使用主控制并使用主存存DMA控制并使用主控制并使用主存存主存工作时间主存工作时间(a)(b)(c)图图9-13 DMA传传送方法送方法v当主存工作速度高出外设较多时,采用周期挪用法可以提高主存的利用率,且对CPU的影响较小,因此,高速主机系统常采用这种方法。根据主存的存取周期与磁盘的数据传输率,可以计算出主存操作时间的分配情况:有多少时间需用于DMA传送(被挪用),有多少时间可用于CPU访存。这在一定程度上反映了系统的处理效率。vDMA的传送过程可分为三个阶段:DMA传送前的预处理、数据传送和传送后的结束处理。v在DMA传送之前必须要做准备工作,即初始化。这是由CPU来完成的。CPU首先执行几条I/O指令,用于测试外设的状态、向DMA控制器的有关寄存器置初值、设置传送方向和启动该外部设备等。v 在这些工作完成之后,CPU继续执行原来的程序,在外设准备好发送的数据(输入)或接收的数据已处理完毕(输出)时,外
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械机电一体化课程设计
- 机械原理滑块课程设计
- 陕西省周至县高中数学 第一章 统计 1.2 抽样方法教案2 北师大版必修3
- 三年级道德与法治下册 第一单元 我和我的同伴 1.4 同学相伴教学设计 新人教版
- 机械加工工艺课程设计
- 低空经济发展瓶颈与政策推动分析报告
- 新疆精河县七年级生物上册 2.2.1 细胞通过分裂产生新细胞教案 (新版)新人教版
- 三年级品德与社会下册 学画平面图教案 冀教版
- 安徽省合肥市长丰县七年级生物下册 4.2.3《合理营养与食品安全》教案2 (新版)新人教版
- 机械创新设计 课程设计
- 提高冠脉介入手术术前准备的合格率
- 新时代教师专业发展的路径与策略研究
- 2023年医养结合工作情况汇报范文(4篇)
- 煤矿瓦斯超限分析及预防措施
- 压力容器风险评估报告样板
- 涂层工安全操作规程
- 含砷硫化铜精矿的氧化焙烧
- 维修电工高级实操题库
- 风电场安全性评价
- 《羲之雅好服食养性》2021年湖北随州中考文言文阅读真题(含答案与翻译)
- 2023年全国统一高考英语试卷(甲卷)及答案解析
评论
0/150
提交评论