1.42k likes | 1.52k Views
第 8 章 输入 / 输出系统. 计算机的基本功能之一是能够与其他的外部设备交换信息。但是由于这些设备具有各自不同的组成结构和工作原理,因此,与中央处理机的连接方式也各不相同。输入输出系统又简称为 I/O 系统,其功能是完成计算机与外部设备的联系。它和整机的速度、处理能力、实用性、兼容性等各种系统性能都有非常密切的关系。随着计算机应用范围的不断扩大, I/O 系统的地位显得越来越重要。用户主要是通过外部设备和主机交互信息的,因此,了解常用的外部设备的工作原理十分必要。. 本章要点:. I/O 系统的任务和功能 计算机的 I/O 方式 计算机的 I/O 设备及其工作原理.
E N D
第8章 输入/输出系统 • 计算机的基本功能之一是能够与其他的外部设备交换信息。但是由于这些设备具有各自不同的组成结构和工作原理,因此,与中央处理机的连接方式也各不相同。输入输出系统又简称为I/O系统,其功能是完成计算机与外部设备的联系。它和整机的速度、处理能力、实用性、兼容性等各种系统性能都有非常密切的关系。随着计算机应用范围的不断扩大,I/O系统的地位显得越来越重要。用户主要是通过外部设备和主机交互信息的,因此,了解常用的外部设备的工作原理十分必要。 计算机组成原理
本章要点: • I/O系统的任务和功能 • 计算机的I/O方式 • 计算机的I/O设备及其工作原理 计算机组成原理
8.1 I/O系统 • 计算机的输入输出系统(I/O系统)由I/O接口、I/O管理部件以及有关的I/O软件组成,其主要作用是实现计算机系统的输入输出功能。I/O系统具体要解决的问题是:怎样在主机和外部设备之间建立一个高效、可靠的信息传输“通路”;如何对外设进行编址,使CPU方便地寻找到要访问的外设;I/O接口、管理部件如何协调完成主机和外部设备之间的数据交换等等。 计算机组成原理
内存 CPU I/O 8.1.1 I/O系统概述 • 输入输出系统的发展大致可分为四个阶段。 • 1.早期阶段 • 早期的I/O设备种类较少,I/O设备与主机交换信息都必须通过CPU。工作模式如图8- 1所示。 图8-1 I/O通过CPU与主机交换信息 计算机组成原理
这种交换方式延续了相当长的时间。当时的I/O系统具有以下几个特点:每个I/O设备都必须配有一套独立的逻辑电路与CPU相连,用来实现I/O设备与主机交换信息,因此线路十分零散、庞杂;输入输出过程是穿插在CPU执行程序期间进行的,当I/O设备与主机交换信息时,CPU不得不停止各种运算,因此,I/O设备与CPU是按串行方式工作的,极大的浪费了CPU的时间;每个I/O设备的逻辑控制电路与CPU的控制器紧密构成一个不可分割的整体,它们彼此依赖,相互牵连,因此,想要增加、删除或者更换I/O设备就非常困难。这种交换方式延续了相当长的时间。当时的I/O系统具有以下几个特点:每个I/O设备都必须配有一套独立的逻辑电路与CPU相连,用来实现I/O设备与主机交换信息,因此线路十分零散、庞杂;输入输出过程是穿插在CPU执行程序期间进行的,当I/O设备与主机交换信息时,CPU不得不停止各种运算,因此,I/O设备与CPU是按串行方式工作的,极大的浪费了CPU的时间;每个I/O设备的逻辑控制电路与CPU的控制器紧密构成一个不可分割的整体,它们彼此依赖,相互牵连,因此,想要增加、删除或者更换I/O设备就非常困难。 计算机组成原理
在这个阶段中,计算机系统硬件价格十分昂贵,机器速度不高,配置的I/O设备不多,主机与I/O设备交换的信息量也不大,计算机应用的普及程度还比较低。在这个阶段中,计算机系统硬件价格十分昂贵,机器速度不高,配置的I/O设备不多,主机与I/O设备交换的信息量也不大,计算机应用的普及程度还比较低。 • 2.接口模块和DMA阶段 • 在这个阶段,I/O设备通过接口模块与主机连接,计算机系统采用了总线结构,工作模式如图8-2所示。 计算机组成原理
主 机 I/O总线 I/O接口 I/O接口 I/O接口 … 外部设备1 外部设备2 外部设备n … 图8-2 外部设备通过I/O接口和主机交换信息 计算机组成原理
通常在接口中都设有数据通路和控制通路。数据经过接口既起到缓冲作用,又可完成串 — 并变换或并 — 串变换。控制通路用以传送CPU向I/O设备发出的各种控制命令,或者使CPU接受来自I/O设备的反馈信号。许多接口还能满足中断请求处理的要求,使得I/O设备与CPU可按并行方式工作,大大地提高了CPU的工作效率。采用接口技术还可以使多台I/O设备分时占用总线,使得多台I/O设备互相之间也可实现并行工作方式,有利于整机工作效率的提高。 计算机组成原理
虽然这个阶段实现了CPU和I/O设备并行工作,但是在主机与I/O设备交换信息时,CPU要中断现行程序,即CPU与I/O设备还不能做到绝对的并行工作。虽然这个阶段实现了CPU和I/O设备并行工作,但是在主机与I/O设备交换信息时,CPU要中断现行程序,即CPU与I/O设备还不能做到绝对的并行工作。 • 为了进一步提高CPU的工作效率,又出现了DMA(Direct Memory Access)技术,其特点是I/O设备与主存之间有一条直接数据通路,I/O设备可以与主存直接交换信息,而不需要打断CPU的工作,故其资源利用率得到了进一步的提高。 计算机组成原理
3.具有通道结构的阶段 • 在小型和微型计算机中,采用DMA方式可实现高速外设与主机成组数据的交换,但在大、中型计算机中,外设配置繁多,数据传送频繁,若仍采用DMA方式会出现一系列问题。如果每台外设都配置专用的DMA接口,不仅增加了硬件成本,而且为了解决众多DMA同时访问主存的冲突问题,使控制变得十分复杂。CPU需要对众多的DMA进行管理,同样会占用CPU的工作时间,而且因频繁地进入周期挪用阶段,也会直接影响CPU的整体工作效率。 计算机组成原理
CPU 内存 通道 I/O • 因此在大、中型计算机系统中,采用了I/O通道的方式来进行数据交换。 • 图8-3表示了具有通道结构的计算机系统。 图8-3 I/O通过通道与主机交换信息 计算机组成原理
通道是用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件,可视为一种具有特殊功能的处理器。通道有专用的通道指令,它能独立地执行用通道指令所编写的输入输出程序,但它不是一个完全独立的处理器,它受CPU的I/O指令启动、停止或改变其工作状态,是从属于CPU的一个专用处理器。依赖通道管理的I/O设备在与主机交换信息时,CPU不直接参与管理,故CPU的资源利用率更高。通道是用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件,可视为一种具有特殊功能的处理器。通道有专用的通道指令,它能独立地执行用通道指令所编写的输入输出程序,但它不是一个完全独立的处理器,它受CPU的I/O指令启动、停止或改变其工作状态,是从属于CPU的一个专用处理器。依赖通道管理的I/O设备在与主机交换信息时,CPU不直接参与管理,故CPU的资源利用率更高。 计算机组成原理
4.具有I/O处理机的阶段 • 输入输出系统发展到第四阶段是具有I/O处理机的阶段。I/O处理机又叫做外围处理机(Peripheral Processor Unit,PPU),它基本独立于主机工作,不仅可完成I/O通道要完成的I/O控制,还可完成码制变换、格式处理、数据块检错、纠错等操作。具有I/O处理机的输入输出系统与CPU工作的并行性更高。这说明I/O系统对主机来说,具有更大的独立性。 计算机组成原理
CPU I/O设备 设备控制器 I/O接口 主存 8.1.2 I/O系统组成 图8-4 I/O系统的组成 计算机组成原理
外部设备能够利用光、电、磁及机械传动等手段,把信息转换为二进制代码的形式。几种常用的基本外部设备将在8.3节中介绍,如显示器,键盘等。外部设备能够利用光、电、磁及机械传动等手段,把信息转换为二进制代码的形式。几种常用的基本外部设备将在8.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接口正向标准化、通用化和系列化方向发展。 • 思考: 在系统总线和I/O设备中间为什么要使用I/O接口电路? 计算机组成原理
8.2 计算机I/O方式 • 由于各种外设的工作速度相差很大,有些设备工作速度相当高,如当前硬盘的内部传输率达17.5~66MB/s,而有些外设却由于机械和其他因素所致速度相当低,如键盘是用于人工输入数据的,通常速度为几十毫秒输入一个字节。因此,CPU何时从输入设备读取数据以及何时往输出设备写入数据,就成为较复杂的定时问题。 计算机组成原理
计算机主机与外设之间的数据传送方式随着计算机技术的发展经历了从简单到复杂、从低级到高级、从集中管理到分散管理的演变过程。按照I/O管理组织、I/O接口与外设并行工作的程序方式, 概括起来,可将数据传送方式分为:程序查询方式、中断方式、DMA方式。 计算机组成原理
8.2.1 程序查询方式 • 程序查询方式是主机与外设间进行信息交换的最简单方式,程序查询方式的核心问题在于需要不断地查询I/O设备是否准备就绪。 • 由CPU执行一段输入输出程序来实现主机与外设之间数据传送的方式叫做程序直接控制方式。根据外设的不同性质,这种传送方式又可分为无条件传送和程序查询方式两种。 计算机组成原理
在无条件传送方式中,I/O端口总是准备好接收主机的输出数据,或总是准备好向主机输人数据,因而CPU无须查询外设的工作状态,而默认外设始终处于准备就绪状态。在CPU认为需要时,随时可直接利用I/O指令访问相应的I/O端口,实现与外设之间的数据交换。这种方式的优点是软、硬件结构都很简单,但要求时序配合精确,一般的外设难以满足要求。所以,只能用于简单开关量的输人输出控制中,稍复杂一点的外设都不采用此种方式。在无条件传送方式中,I/O端口总是准备好接收主机的输出数据,或总是准备好向主机输人数据,因而CPU无须查询外设的工作状态,而默认外设始终处于准备就绪状态。在CPU认为需要时,随时可直接利用I/O指令访问相应的I/O端口,实现与外设之间的数据交换。这种方式的优点是软、硬件结构都很简单,但要求时序配合精确,一般的外设难以满足要求。所以,只能用于简单开关量的输人输出控制中,稍复杂一点的外设都不采用此种方式。 计算机组成原理
许多外设的工作状态是很难事先预知的,比如何时按键,打印机是否能接收新的打印输出信息等。当CPU与外设工作不同步时,很难确保CPU在执行输入操作时,外设一定是“准备好”的;而在执行输出操作时,外设一定是“缓冲器空”的。为了保证数据传送的正确进行,就要求CPU在程序中查询外设的工作状态。如果外设尚未准备就绪,CPU就循环等待,只有当外设已做好准备,CPU才能执行I/O指令进行数据传送,这就是程序查询方式。许多外设的工作状态是很难事先预知的,比如何时按键,打印机是否能接收新的打印输出信息等。当CPU与外设工作不同步时,很难确保CPU在执行输入操作时,外设一定是“准备好”的;而在执行输出操作时,外设一定是“缓冲器空”的。为了保证数据传送的正确进行,就要求CPU在程序中查询外设的工作状态。如果外设尚未准备就绪,CPU就循环等待,只有当外设已做好准备,CPU才能执行I/O指令进行数据传送,这就是程序查询方式。 计算机组成原理
程序查询方式的工作过程大致为: • (1)预置传送参数。在传送数据之前,由CPU执行一段初始化程序,预置传送参数。传送参数包括存取数据的主存缓冲区首地址和传送数据的个数。 • (2)向外设接口发出命令字。当CPU选中某台外设时,执行输出指令向外设接口发出命令字启动外设,为接收数据或发送数据做应有的操作准备。 • (3)从外设接口取回状态字。CPU执行输入指令,从外设接口中取回状态字并进行测试,判断数据传送是否可以进行。 计算机组成原理
(4)查询外设状态标志。CPU不断查询状态标志,如果外设没有准备就绪,CPU就反复进行查询,一直到这个外设准备就绪,并发出“外设准备就绪”信号为止。(4)查询外设状态标志。CPU不断查询状态标志,如果外设没有准备就绪,CPU就反复进行查询,一直到这个外设准备就绪,并发出“外设准备就绪”信号为止。 • (5)传送数据。只有当外设准备好时,才能实现主机与外设间的一次数据传送。输入时,CPU执行输入指令,从外设接口的数据缓冲寄存器中接收数据;输出时,CPU执行输出指令,将数据写入外设接口的数据缓冲寄存器中。 • (6)修改传送参数。每进行一次数据传送之后必须要修改传送参数,其中包括主存缓冲区地址加l,传送个数计数器减1。 计算机组成原理
(7)判断传送是否结束。如果传送个数计数器不为0,则转第(3)步,继续传送,直到传送个数计数器为0,表示传送结束。(7)判断传送是否结束。如果传送个数计数器不为0,则转第(3)步,继续传送,直到传送个数计数器为0,表示传送结束。 • 程序查询方式的工作流程如图8-5所示,其程序查询的核心部分在图中用虚线框框出,真正传送数据的操作由输入或输出指令完成。 • 程序查询方式使CPU处于忙等的状态,不利于CPU资源的充分利用,所以人们提出中断方式。 计算机组成原理
预置传送参数 启动外设 取外设状态 外设准备就绪? N Y 传送一次数据 修改传送参数 Y 传送完否? N 结束 图8-5 程序查询方式流程 计算机组成原理
8.2.2 中断方式 • 在程序查询方式使CPU循环等待,造成了CPU资源的浪费。中断传送方式很好地解决了这个问题,在外设没有做好数据传送准备时,CPU可以运行与传送数据无关的其他指令,外设做好传送准备后,主动向CPU提出申请,若CPU响应这一申请,则暂停正在运行的程序,转去执行数据输入/输出操作的指令,数据传送完毕后返回,CPU继续执行原来运行的程序,这样使得外设与CPU可以并行工作,提高了系统的效率。如今,中断已经是现代计算机普遍采用的—项技术。 计算机组成原理
1.中断的相关概念 • 中断是指在计算机中,打断CPU正在执行的程序,而转去执行相应的中断服务程序,在中断服务程序执行完毕后,再返回到原程序继续执行的过程。实现中断的硬件和软件所组成的系统,就叫中断系统。计算机正是依靠中断系统实现了分时处理、故障处理、实时处理等实际问题。 计算机组成原理
中断系统的组成包括:微处理器内有中断的相关硬件电路,用来接收中断请求、响应请求、保护现场、转向中断服务程序、处理完毕返回等;外围有与该处理器匹配的中断控制器即中断接口,实现管理多个中断源,完成优先级裁决,中断源屏蔽等功能;此外还包括依据处理器、控制器的结构编写的中断处理程序,系统初始化程序等实现中断管理的软件。中断系统的组成包括:微处理器内有中断的相关硬件电路,用来接收中断请求、响应请求、保护现场、转向中断服务程序、处理完毕返回等;外围有与该处理器匹配的中断控制器即中断接口,实现管理多个中断源,完成优先级裁决,中断源屏蔽等功能;此外还包括依据处理器、控制器的结构编写的中断处理程序,系统初始化程序等实现中断管理的软件。 • 中断系统的功能包括:中断源的识别、多个中断源请求时,软件可禁止与允许每个请求,优先级的确定、中断现场的保存、对中断请求的分析和处理、中断返回等。 计算机组成原理
中断是由中断源产生的,一台计算机可以有多个中断源,中断源向中断系统发出请求中断的申请,多数具有随机性,计算机为记录中断源的来源,对应每个中断源有一个具有存储功能的中断请求触发器(INTR),当某一个中断源有中断请求时,它对应的中断请求触发器置“1”状态,表示向CPU发出了中断请求信号。在中断接口电路中,多个中断触发器构成中断寄存器,其内容称为中断字,记录中断源的来源。中断是由中断源产生的,一台计算机可以有多个中断源,中断源向中断系统发出请求中断的申请,多数具有随机性,计算机为记录中断源的来源,对应每个中断源有一个具有存储功能的中断请求触发器(INTR),当某一个中断源有中断请求时,它对应的中断请求触发器置“1”状态,表示向CPU发出了中断请求信号。在中断接口电路中,多个中断触发器构成中断寄存器,其内容称为中断字,记录中断源的来源。 计算机组成原理
CPU在处理一些紧要事件时不允许中断,因为这类事件执行过程中一旦被中断,将会引起严重后果,为避免中断请求信号的干扰,设置了开中断/关中断触发器INH,当INH置“0”时,中断源的中断请求信号被允许进入排队,称为“开中断” ;当INH置“1”时,所有中断源发出的中断请求被禁止,称为“关中断”。 计算机组成原理
2.中断优先权与中断屏蔽 • 当多个中断源同时向CPU发出中断请求时,CPU首先处理哪个中断源的请求呢?为了不发生矛盾,而且处理及时,计算机将所有中断源的请求按轻重缓急排序,0级、1级、2级…… n级排队依次处理,保证紧迫程度最高的中断源的中断请求排在最前,最快得到CPU的处理。这种中断处理过程中的优先级别,叫做中断优先权。例如:PC机的中断优先权由高到低的顺序是:除法错误中断,INT0,INTn→NMI(非屏蔽中断)→INTR(外设中断)→单步中断。 计算机组成原理
如何判别设备中断的优先权要由中断判优来完成,中断排队的目的是为了判优,中断判优的方法有软件判优法和硬件判优法。软件判优是用程序来判别优先级,优先级高的先查询,优先级低的后查询,而通过修改程序可以调整设备的优先级。 • 如图8-6所示,CPU接到中断请求信号,就执行查询程序,顺序检测中断请求寄存器的状态,在识别中断源的过程中,优先级顺序已经按查询顺序排好,若要改变优先级可以通过改变程序查询顺序来完成。 计算机组成原理
1#设备? Y 1#中断服务 N 2#设备? Y 2#中断服务 N 3#设备? Y 3#中断服务 N 图8-6 软件判优法 计算机组成原理
硬件判优是靠硬件电路实现的,一旦电路设计好,优先级就不能更改,成本较高,但速度快,根据中断请求信号的传送方式不同,常见的硬件排队电路有:独立请求线的优先排队电路、公共请求线的优先排队电路。公共请求线的排队电路如图8-7所示。硬件判优是靠硬件电路实现的,一旦电路设计好,优先级就不能更改,成本较高,但速度快,根据中断请求信号的传送方式不同,常见的硬件排队电路有:独立请求线的优先排队电路、公共请求线的优先排队电路。公共请求线的排队电路如图8-7所示。 计算机组成原理
中断请求ARQ CPU POL 1#设备接口 2#设备接口 …… n#设备接口 SYN I/O数据总线 图8-7 串行顺序链识别法 计算机组成原理
(3)多重中断 • 多重中断是指在处理某一中断过程中,又有比该中断优先级高的中断请求,于是CPU中断原中断服务程序的执行,而又转去执行新的中断服务程序。这种多重中断的执行形成了中断嵌套,如图8-8所示。 计算机组成原理
图8-8 多重中断 计算机组成原理
(4)中断屏蔽 • 当多个中断源发出中断请求时,CPU只能响应一个中断,中断屏蔽可实现部分中断的封锁。每个中断源在配有一个中断请求触发器的同时,配有一个中断屏蔽触发器(MASK),它们成对出现,当MASK置1时,该中断源的请求被屏蔽,中断请求不能进入中断排队逻辑,进行判优:当MASK置0时,该中断请求被允许,经过中断排队判优后,最终送往CPU。 计算机组成原理
多个中断屏蔽触发器组成了中断屏蔽寄存器,其内容被称为屏蔽字。我们可以通过软件编程改变屏蔽寄存器的某一位,使其置1,从而实现对某个中断源的屏蔽控制。此外,硬件的中断排队电路所决定的中断响应次序是固定的,但通过中断屏蔽位的控制,决定某级中断请求能否进入中断排队器,可以改变中断响应次序。多个中断屏蔽触发器组成了中断屏蔽寄存器,其内容被称为屏蔽字。我们可以通过软件编程改变屏蔽寄存器的某一位,使其置1,从而实现对某个中断源的屏蔽控制。此外,硬件的中断排队电路所决定的中断响应次序是固定的,但通过中断屏蔽位的控制,决定某级中断请求能否进入中断排队器,可以改变中断响应次序。 • 需要注意的是,这里的中断屏蔽作用是,是否让中断源的请求进入排队逻辑,最终让CPU接到请求信号,而在CPU内部中断逻辑中,有一个同样起中断屏蔽作用的开/关中断触发器,它的作用是,是否允许CPU接受中断请求、响应中断。 计算机组成原理
中断源发出中断请求 中断判优 中断响应 中断处理 中断返回 3.中断响应与中断处理 • 对中断请求的整个处理过程是由硬件和软件结合起来形成的一套中断请求机构实施的,一般包括5个步骤,如图8-9所示。 图8-9 中断过程 计算机组成原理
中断源向CPU发出中断请求需要有两个条件:第一,外设本身准备工作完毕;第二,系统允许外设发中断请求,即CPU处于开中断状态。中断源向CPU发出中断请求需要有两个条件:第一,外设本身准备工作完毕;第二,系统允许外设发中断请求,即CPU处于开中断状态。 • 中断请求信号经过中断判优后,将优先权最高级别的中断请求送往CPU,CPU收到后,向中断源发出响应信号,并做出相应的响应动作。我们把发生中断时,CPU暂停执行当前的程序,而转去处理中断,CPU对中断请求做出反应的过程,称为中断响应。 • 中断响应后进入中断处理阶段,即中央处理机执行中断服务程序。在中断服务程序的末尾有一条中断返回指令,实现中断完成后恢复现场,即将中断响应时保存过的程序指令计数器PC、程序状态字寄存器PSW以及某些通用寄存器的内容重新取回,CPU返回原程序。 计算机组成原理
中断方式很好的解决了程序查询方式的忙等问题,但如果中断程序在执行过程中外部设备和主存之间需要进行大量的数据传输,CPU仍需为外部设备和主存中转这些数据,中转数据传输完毕后才可以执行中断返回。为了可以使外部设备和主存之间直接传递数据,而不需要CPU的参与,从而节约CPU资源,人们又进一步提出DMA方式。中断方式很好的解决了程序查询方式的忙等问题,但如果中断程序在执行过程中外部设备和主存之间需要进行大量的数据传输,CPU仍需为外部设备和主存中转这些数据,中转数据传输完毕后才可以执行中断返回。为了可以使外部设备和主存之间直接传递数据,而不需要CPU的参与,从而节约CPU资源,人们又进一步提出DMA方式。 • 思考: 请思考中断屏蔽在中断过程中的作用。写出打印机完成一次中断的过程。 计算机组成原理
8.2.3 DMA方式 • DMA方式即直接存储器访问(Direct Memory Access)方式,是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式的数据传送直接依靠硬件(DMA控制器)来实现,不需要执行任何程序。 • 无论程序查询还是程序中断方式,主要的工作都是由CPU执行程序完成的,这需要花费时间,因此不能实现高速外设与主机的信息交换。 计算机组成原理
DMA方式是在外设和主存之间开辟一条“直接数据通道”,在不需要CPU干预也不需要软件介入的情况下在两者之间进行的高速数据传送方式。在DMA传送方式中,对数据传送过程进行控制的硬件称为DMA控制器。当外设需要进行数据传送时,通过DMA控制器向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送。DMA方式是在外设和主存之间开辟一条“直接数据通道”,在不需要CPU干预也不需要软件介入的情况下在两者之间进行的高速数据传送方式。在DMA传送方式中,对数据传送过程进行控制的硬件称为DMA控制器。当外设需要进行数据传送时,通过DMA控制器向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送。 计算机组成原理
DMA和中断的有很多不同,中断方式是程序切换,需要保护和恢复现场;而DMA方式除了开始和结尾时,不占用CPU的任何资源;对中断请求的响应时间只能发生在每条指令执行完毕时;而对DMA请求的响应时间可以发生在每个机器周期结束时,如图8-10所示;中断传送过程需要CPU的干预,而DMA传送过程不需要CPU的干预,所以数据传输速率非常高,适合于高速外设的成组数据传送;DMA请求的优先级高于中断请求;中断方式具有对异常事件的处理能力,而DMA方式仅局限于完成传送数据块的I/O操作。DMA和中断的有很多不同,中断方式是程序切换,需要保护和恢复现场;而DMA方式除了开始和结尾时,不占用CPU的任何资源;对中断请求的响应时间只能发生在每条指令执行完毕时;而对DMA请求的响应时间可以发生在每个机器周期结束时,如图8-10所示;中断传送过程需要CPU的干预,而DMA传送过程不需要CPU的干预,所以数据传输速率非常高,适合于高速外设的成组数据传送;DMA请求的优先级高于中断请求;中断方式具有对异常事件的处理能力,而DMA方式仅局限于完成传送数据块的I/O操作。 计算机组成原理
取指令 取源操作数 取目的操作数 执行 DMA断点 图8-10 两种请求的响应时刻比较 计算机组成原理
DMA方式一般应用于主存与高速外设间的简单数据传送。高速外设如磁盘、磁带、光盘等辅助存储器以及其他带有局部存储器的外设、通信设备等。DMA方式一般应用于主存与高速外设间的简单数据传送。高速外设如磁盘、磁带、光盘等辅助存储器以及其他带有局部存储器的外设、通信设备等。 • 对磁盘的读写是以数据块为单位进行的,一旦找到数据块起始位置,就将连续地读写。找到数据块起始位置的时间是随机的,相应地,接口何时具备数据传送条件也是随机的。由于磁盘读写速度较快,在连续读写过程中不允许CPU花费过多的时间,因此,从磁盘中读出数据或往磁盘中写人数据时,一般采用DMA方式传送,即直接将数据由主存经数据总线输出到磁盘接口,然后写入盘片;或将数据由盘片读出到磁盘接口,然后经数据总线写入主存。 计算机组成原理
当计算机系统通过通信设备与外部通信时,常以数据块为单位进行批量传送。开始通信后,常以较快的数据传输速率连续传送,因此,适于采用DMA方式。在不通信时,CPU可以照常执行程序;在通信过程中仅需占用系统总线,系统开销很少。当计算机系统通过通信设备与外部通信时,常以数据块为单位进行批量传送。开始通信后,常以较快的数据传输速率连续传送,因此,适于采用DMA方式。在不通信时,CPU可以照常执行程序;在通信过程中仅需占用系统总线,系统开销很少。 • 在大批量数据采集系统中,也可以采用DMA方式。 计算机组成原理
许多计算机系统中选用动态存储器DRAM,并用异步方式安排刷新周期。刷新请求的提出,对主机来说是随机的。DRAM的刷新操作可视为存储器内部的数据批量传送,因此,也可采用DMA方式实现,将每次刷新请求当成DMA请求。CPU在刷新周期中让出系统总线,按行地址(刷新地址)访问主存,实现各芯片中的一行刷新。利用系统的DMA机制实现动态刷新,简化了专门的动态刷新逻辑,提高了主存的利用率。许多计算机系统中选用动态存储器DRAM,并用异步方式安排刷新周期。刷新请求的提出,对主机来说是随机的。DRAM的刷新操作可视为存储器内部的数据批量传送,因此,也可采用DMA方式实现,将每次刷新请求当成DMA请求。CPU在刷新周期中让出系统总线,按行地址(刷新地址)访问主存,实现各芯片中的一行刷新。利用系统的DMA机制实现动态刷新,简化了专门的动态刷新逻辑,提高了主存的利用率。 计算机组成原理
DMA传送是直接依靠硬件实现的,可用于快速的数据直传。也正是由于这一点,DMA方式本身不能处理较复杂的事件。因此,在某些场合常综合应用DMA方式与程序中断方式,二者互为补充。DMA传送是直接依靠硬件实现的,可用于快速的数据直传。也正是由于这一点,DMA方式本身不能处理较复杂的事件。因此,在某些场合常综合应用DMA方式与程序中断方式,二者互为补充。 • DMA接口相对于查询式接口和中断式接口来说比较复杂,习惯上将DMA方式的接口电路称为DMA控制器。在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用。而当DMA传送结束后,将恢复CPU的一切权力并开始执行其操作。由此可见,DMA控制器必须具有控制系统总线的能力,即能够像CPU一样输出地址信号,接收或发出控制信号,输入或输出数据信号。 计算机组成原理