1、8.3 DMA方式 8.3.1 DMA方式的基本概念,一、DMA方式的定义 (请看P.286):是一种完全由硬件执行I/O交换的工作方式。在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行。DMA方式一般用于高速传送成组数据。 二、DMA方式的特点 优点:速度快; 缺点:硬件线路复杂。 三、DMA控制器的基本操作 (请看P.286):,外设发出DMA请求; CPU响应请求交出总线控制权; DMAC对内存寻址,对数据传送个数进行计数,并执行数据传送操作; 向CPU报告DMA操作的结束交还总线控制权。 四、DMA操作中的软硬件分工 软件:
2、负责数据传送前的准备工作,结束后的处理工作; 硬件:负责数据传送。 8.3.2 DMA传送方式 CPU和DMAC访存冲突的裁决方式。 常用的方式有以下三种:,一、停止CPU访问内存 外设要求传送一批数据时,由DMAC发请求信号,要求CPU出让总线使用权;之后DMAC独占内存进行批量的数据传送;一批数据传送完毕后,DMAC才把总线控制权交还给CPU。 控制简单,但CPU可能因无法访存而处于暂停状态。指令Cache和数据Cache的作用。,内存工作时间,CPU控制并 使用内存,DMA控制 并使用内存,CPU暂停访问内存的示意图,t,二、周期挪用(窃取) CPU按程序访问内存,一旦I/O设备有DMA
3、请求,则由DMAC挪用一个存取周期;也有总线使用权的交换。 周期挪用时的两种情况:内存争用与否;有冲突则DMA优先,但影响CPU效率可以用指令预取的办法降低争访的几率。 既实现了I/O传送,又较好地发挥了CPU和内存的效率。请求、响应及总线使用权频繁转换会使效率下降。,内存工作时间,CPU控制并 使用内存,DMA控制 并使用内存,周期挪用方式的示意图,t,三、DMA与CPU交替访问内存 CPU和DMAC轮流(分时)使用总线,没有使用权的申请、出让、归还这一类问题(透明的DMA方式);适用于CPU工作周期比内存存取周期长得多的情况,以便在两次CPU访问内存之间有一段空闲给DMAC使用。 实际是将
4、CPU工作周期一分为二,CPU和DMA各DMA传送和CPU同时发挥最高效率,但控制逻辑复杂。也存在资源浪费。,内存工作时间,CPU控制并 使用内存,DMA控制 并使用内存,DMA与CPU交替访问的示意图,t,例1:解释周期挪用,分析周期挪用可能出现的几种情况。 解答:解释名词。 周期挪用可能会出现三种情况: (1)I/O设备有DMA请求时,CPU正在进行自身的操作,并不需要访内; (2)访内冲突I/O设备的DMA请求优先 ; (3)I/O设备有DMA请求时,存储器正处于“忙”(R/W)状态必须等CPU存取结束后才能进行DMA访内。,8.3.3 基本的DMA控制器 一、DMA控制器的基本组成P.
5、289图8.12 1、寄存器组:五个主要寄存器(1)DMA传送的内存地址寄存器;(2)数据缓冲寄存器;(3)DMA传送的数据字数寄存器;(4)外围设备地址寄存器,存放I/O设备的设备码或表示设备信息存储区的寻址信息;(5)控制与状态寄存器。 2、中断控制逻辑 3、DMA请求标志触发器 4、传输线,系统总线,内存,CPU,MAR,MDR,中断机构,控制/状态逻辑,内存地址计数器,字计数器,数据缓冲寄存器,设备选择,0 1 DMA请求 标志,HOLD,HLDA,DMA响应,DMA请求,+1,+1,溢出信号,中断请求,地址线,数据线,设备控制器,设 备,数据,一个字传送 结束信号,启动设备,简单的D
6、MA控制器组成框图,二、DMA数据传送过程(周期挪用方式) (参看P.290图8.13),DMA请求,DMA响应,发送内存地址,传送一个字数据,检测传送 是否结束?,归还总线使用权,修改地址指针和字计数器,是,否,DMA传送数据的流程图,开始,传送前预处理,数据传送,传送后处理,结束,DMA传送,1、DMA传送前的预处理 CPU用程序为DMA传送做准备(中断初始化及)对DMAC的初始化:(1)设备地址DAR(设备地址寄存器)(2)内存中DMA缓冲区首地址内存地址计数器(3)传送数据的字数字计数器(4)启动设备 2、DMA数据传送 DMA控制器代替CPU管理I/O设备进行数据传送:(以输入过程为
7、例)(1)输入设备送一个字到DMA控制器的数据缓冲寄存器,同时设备控制器以READY信号置DMA控制器中DMA请求触发器为1;,(2)CPU响应DMA请求并在CPU当前存储周期结束后,由DMA占用下一个存储周期(叫做DMA周期)进行写操作:1) (内存地址计数器)MAR;2)(接口数据缓冲寄存器)MDR;3)发出“写内存”命令;(3)在DMA控制状态逻辑的控制下执行三个操作:,存储 周期,存储器时序,DMA请求,CPU,DMA 周期,热启动,1)(字计数器)+1字计数器; 2)清DMA请求标志触发器; 3) (内存地址计数器)+1内存地址计数器,未传完转2(1)(发生总线使用权转让),否则接下
8、。 (4)传送结束由DMA控制器中的中断机构发DMA中断请求。 3、DMA结束处理 CPU响应DMA的中断请求后,停止原运行程序转去执行DMA中断服务程序以完成DMA结束处理工作。 因此DMA接口应保留中断功能。 由该过程体会周期挪用方式每传一个字的“附加操作”及透明DMA的优点。,有关的书后习题P.303 P.304 第4题、采用DMA方式传送数据时,每传送一个数据就要占用一个( )的时间。 A. 指令周期 B. 机器周期 C. 存储周期 D. 总线周期 第12题、下列陈述中正确的是( )。 A. 在DMA周期内,CPU不能执行程序 B. 中断发生时,CPU首先执行入栈指令将程序计数器内容保
9、护起来 C. DMA传送方式中,DMA控制器每传送一个数据就窃取一个指令周期 D. 输入输出操作的最终目的是要实现CPU与外设之间的信息传输。,P.304 第16题:比较通道、DMA、中断三种基本I/O方式的异同点。 解答(DMA与中断的比较): (1)实现I/O的方法不同; (2)CPU响应中断与响应DMA请求的时机不同(下图); 为什么作如此安排?,指令周期,取指令 机器周期,取源操作数 机器周期,取目的操作 数机器周期,执行周期,DMA响应插入点,中断响应插入点,(3)二者的优先权不同: DMA方式优先权比中断方式高(实现方法); (4)CPU的利用率不同:DMA方式下CPU与设备的并行
10、程度比程序中断方式高; (5)应用不同:DMA只是对数据传送进行控制,而中断具有I/O之外的作用;且,DMA方式的实现也要借助于中断系统的功能DMA传送结束的中断请求。 8.3.4 选择型和多路型DMA控制器 实际使用的DMAC 1、选择型DMA控制器 物理上连接多个设备,而某一时间段内只能为一个设备服务逻辑上连接一个设备。,内 存,CPU,字计数器,内存地址寄存器,数据缓冲寄存器,状态控制寄存器,时序电路,设备地址寄存器,设备1,设备2,设备n, ,系统总线,选 择 线,P.291图8.14 选择型DMA控制器,适合于连接高速设备, 以块方式传输。,2、多路型DMA控制器 (1)不仅物理上可
11、连接多个外设,逻辑上也允许这些外设同时工作 有多少个连接的外设,DMAC内就有多少组寄存器用于存放各自的传送参数(与选择型DMAC硬件对比);带判优逻辑; (2)各设备以字节交叉方式通过DMAC进行数据传送 外设以“周期挪用”方式访问内存; (3)又分为“链式多路DMAC”和“独立请求方式多路DMAC” 图见P.292图8.15。自习。 多路DMAC芯片例图见P.293图8.17。自习。 IBM PC中8237的情况。,多路型DMAC的例题 EX1(书中P.291例3): 图8.16中假设有磁盘、磁带、打印机三个设备同时工作。磁盘以30s的间隔向控制器发DMA请求,磁带以45s的间隔发DMA请
12、求,打印机以120s的间隔发DMA请求。根据传输率,磁盘优先权最高,磁带次之,打印机最低,图中假设DMA控制器每完成一次DMA传送所需的时间是5s。若采用多路型DMA控制器,请画出DMA控制器服务三个设备的工作时空图。,磁盘,磁带,打印机,30 s,30 s,30 s,45s,45s,t,t,t,解答:DMAC的服务时空图如下,DMAC,t,5 s,T1,T2,T3,T4,T5,T6,T7,T8,其中,T1为打印机服务, T2 、T4、 T6、T7 为磁盘服务, T3、 T5、 T8为磁带服务。 Ti=5 s,EX2:书后习题P.304第17题 用多路DMA控制器控制光盘、软盘、打印机三个设备
13、同时工作。光盘以20 s的间隔向控制器发DMA请求,软盘以90 s的间隔向控制器发DMA请求,打印机以180 s的间隔发DMA请求。请画出多路DMA控制器的工作时空图。 设DMAC每完成一次DMA传送需时3 s。 解答:该DMAC工作时空图如下。,t s,光盘,软盘,打印机,20 40 60 80 100 120 140 160 180,3 s,90,EX2的DMA控制器服务时空图,8.4 通道方式8.4.1 通道的功能 一、功能 1、定义:一种具有特定功能的处理器,有自己的指令和程序,专门负责数据I/O的控制与管理。它与CPU分时使用主存,实现CPU内部运算与I/O设备并行工作。 2、结构图
14、以IBM4300系统为例,P.295图8.19。 3、通道的基本功能请看P295。 二、CPU对通道的管理P.296。 三、通道对设备控制器的管理P.296。,8.4.2 通道的类型 一、选择通道 连接多个高速外设以成组方式与主机交换信息,但某段时间只允许一个设备工作。 二、数组多路通道 在选择通道的基础上,当通道处于为A设备服务的非数据传送期(如寻址),可转而为B设备服务。 三、字节多路通道 连接多台低速外设,同时以字节方式与主机交换数据。,P.303 第5题 通道的功能是(1),(2)。按通道的工作方式分,通道有通道、通道和通道三种类型。 (1)接收CPU的I/O指令 (2)控制外设与主存的数据交换 字节多路、选择、数组多路,