5.6DMA方式主讲人:刘爽5.6DMA方式•5.6.1DMA方式的特点•5.6.2DMA接口的功能和组成•5.6.3DMA的工作过程•5.6.4DMA接口的类型DMA方式基本概念•DMA方式,DIRECTMEMORYACCESS,也称为成组数据传送方式,有时也称为直接内存操作。5.6.1DMA方式的特点•DMA方式的优点:由于CPU根本不参加传送操作,因此就省去了CPU取指令、取数、送数等操作。在数据传送过程中,没有保存现场、恢复现场之类的工作。内存地址修改、传送字个数的计数等等,也不是由软件实现,而是用硬件线路直接实现的。所以DMA方式能满足高速I/O设备的要求,也有利于CPU效率的发挥。DMA与主存交换数据的方法1、停止CPU访问主存2、周期挪用(周期窃取)3、DMA与CPU交替访问1、停止CPU访问主存当外围设备要求传送一批数据时,由DMA控制器发一个停止信号给CPU,要求CPU放弃对地址总线、数据总线和有关控制总线的使用权。DMA控制器获得总线控制权以后,开始进行数据传送。在一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU。在这种DMA传送过程中,CPU基本处于不工作状态或者说保持状态。优点:控制简单,它适用于数据传输率很高的设备进行成组传送。缺点:在DMA控制器访内阶段,内存的效能没有充分发挥,相当一部分内存工作周期是空闲的。这是因为,外围设备传送两个数据之间的间隔一般总是大于内存存储周期,即使高速I/O设备也是如此。2、周期挪用(周期窃取)•当I/O设备没有DMA请求时,CPU按程序要求访问内存;一旦I/O设备有DMA请求,则由I/O设备挪用一个或几个内存周期。•I/O设备请求DMA传送有三种情况:•1、CPU此时不需要访问主存(I/O设备与CPU无冲突)•2、CPU此时正在访问主存(必须等待存取周期结束,CPU才能将总线控制权让出)•3、I/O设备与CPU都要求访问主存(在CPU执行访问主存指令的过程中插入DMA请求,并挪用了一二个内存周期)优点:既实现了I/O传送,又较好地发挥了内存和CPU的效率,是一种广泛采用的方法。缺点:I/O设备每一次周期挪用都有申请总线控制权、建立总线控制权和归还总线控制权的过程,所以传送一个字对内存来说要占用一个周期,但对DMA控制器来说一般要2—5个内存周期(视逻辑线路的延迟而定)。因此,周期挪用的方法适用于I/O设备读写周期大于内存存储周期的情况。3、DMA与CPU交替访问如果CPU的工作周期比内存存取周期长很多,此时采用交替访内的方法可以使DMA传送和CPU同时发挥最高的效率。优点:不需要总线使用权的申请、建立和归还过程,总线使用权是通过DMA访存和CPU访存分时进行的。CPU既不停止主程序的运行,也不进入等待状态,是一种高效率的工作方式缺点:相应的硬件逻辑更加复杂。5.6.2DMA接口功能和组成•DMA接口的功能:•(1)接收初始化信息(传送方向、主存起始地址、交换数据的个数)——初始化•(2)接收外设DMA请求,判断是否允许传送,向CPU申请总线——传送前•(3)接管总线控制权,发地址,读/写命令——传送期间•(4)给出DMA操作完成的信号,申请中断——传送完5.6.2DMA接口功能和组成•DMA接口的基本组成:•(1)主存地址寄存器AR:存放主存中需要交换数据的地址。•(2)字计数器WC:用于记录传送数据的总字数。•(3)数据缓冲寄存器BR:用于暂存每次传送的数据。•(4)DMA控制逻辑:管理DMA的传送过程。•(5)中断机构:向CPU提出中断请求。•(6)设备地址寄存器DAR:存放I/O设备的设备码或表示设备信息存储区的寻址信息。5.6.3DMA的工作过程•1、DMA的传送过程:预处理、数据传送、后处理。(1)预处理(通过几条输入、输出指令预置一下信息)•通知DMA控制逻辑传送方向(输入/输出主存)•设备地址→DMA的DAR(设备地址寄存器)•主存地址→DMA的AR(主存地址寄存器)•传送字数→DMA的WC(字计数器)(2)数据传送输入BR设备DMA控制逻辑中断逻辑ARWCDARDMA接口主存CPU+1+1DREQ②HRQ③HLDA④地址线⑤DACK⑥①数据线⑦溢出信号中断请求ARWC+1+1BRBRBRBRBR15(3)后处理(由中断服务程序完成)校验送入主存的数是否正确决定是否继续用DMA测试传送过程是否正确,错则转诊断程序5.6.3DMA的工作过程•2、DMA接口与系统的连接方式•具有公共请求线的DMA请求:若干个DMA接口通过一条共用的DMA请求线向CPU申请总线控制权。CPU用链式查询方式通过DMA接口,首先选中的设备获得控制权。DMA接口1DMA接口2DMA接口nCPU…主存DMA响应I/O总线数据线地址线DMA请求•2、DMA接口与系统的连接方式•独立的DMA请求:每一个DMA接口各有一对独立的DMA请求线和DMA响应线,由CPU优先级判别首先响应哪个请求,并给出控制权。DMA接口1DMA接口2DMA接口3CPU主存DMA响应1DMA请求1DMA响应2DMA请求2DMA响应3DMA请求3I/O总线数据线地址线(1)数据传送(2)响应时间(3)处理异常情况(4)中断请求(5)优先级中断方式DMA方式程序硬件指令执行结束存取周期结束能不能低高传送数据后处理195.6.3DMA的工作过程3、中断方式与DMA方式的比较1.选择型在物理上连接多个设备在逻辑上只允许连接一个设备设备地址寄存器控制状态寄存器数据缓冲寄存器主存地址寄存器时序电路字计数器DMA接口CPU主存设备1设备2设备n选择线...系统总线205.6.4DMA接口的类型2.多路型在物理上连接多个设备在逻辑上允许连接多个设备同时工作设备设备设备DMA接口CPU主存…链式设备设备设备DMA接口CPU主存…独立请求式213.多路型DMA接口的工作原理T4T6T7T2为磁盘服务T5T8T3为磁带服务为打印机服务T15μsDMA请求打印机tDMA请求DMA请求DMA请求45μs磁带tDMA请求DMA请求DMA请求DMA请求30μs磁盘t22