计算机组成原理_第9章_输入输出系统精选.ppt
文本预览下载声明
四、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的程序执行。 五、DMA控制器的组成 DMA控制器(接口)的结构框图如图9-32所示。 图9-32 DMA接口 1、寄存器组 (1)DMA地址寄存器DMAR 该寄存器初始值为主存缓冲区的首地址。主存缓冲区地址是连续的,I/O设备访存时,由该首地址开始。该寄存器具有自动加1功能,能不断提供存储器数据区的地址。 (2)外部设备地址寄存器DAR 该寄存器存放I/O设备的设备码或表示设备信息存储区的寻址信息,如磁盘数据所在的区号,盘面号和柱面号等。具体内容由I/O设备的数据格式及地址编址方式决定。 (3)字数计数器WCR 该寄存器初始值为要传送数据的总字数,每传递一个字(或字节)计数器自动减1。当WCR减为零时,表示数据已全部传送完毕,结束传输。 (4)控制与状态寄存器CSR 它是在DMA传送时存放DMA控制字或状态字的寄存器,其格式为: 其中1~3为方式控制位。 有的接口中使用两个寄存器,分别存放控制字和状态字。 (5)数据缓冲寄存器DBR 它是用来暂存I/O设备与主存之间传递的数据,与主机之间并行传送,并具有字节拼装能力。它可以是移位寄存器,接受外设串行传送数据并拼成字节或字。 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设备两个方向的数据线、地址线和控制信号线。 六、DMA操作过程 DMA的数据传送过程可分为三个阶段:DMA传送前的预处理(即CPU用主程序为DMA传送作准备)、数据传送及传送后处理。如图9-33所示。 图9-33 DMA传送过程 1、DMA传送前的预处理 为了实现外部设备和主存之间数据直接成批的交换,必然把有关数据来源、去向和传送数据的总数等信息事先通知DMA接口。所以在传送前先由CPU用测试指令测试设备状态,以判断是否可以调用该设备。若可以调用该设备,则用以下几条输入输出指令实现。 MOV 设备地址,DAR;设备地址→DAR MOV 主存数据区首址,DMAR;主存数据区首址→DMAR MOV 数据字数,WCR;数据字数→WCR MOV 控制字,DSR;启动设备 在完成这些工作之后,CPU继续执行原程序,从此CPU与高速设备重叠运行。DMA接口被启动后,便代替CPU管理I/O设备进行数据传送。 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周期结束后开始热启动。 图9-34 DMA运动轨迹 在DMA周期中CPU把存储器的控制权移交给DMA接口,DMA接口与主存储器直接沟通,并执行以下三个操作: MAR←DMAR;将存储器数据区首址送MAR MDR←DBR;将数据缓冲寄
显示全部