,不需要CPU的干预。这种方式通常用来传送数据块。DMA传送包括:RAM→I/O端口的DMA读传送;I/O端口→RAM的DMA写传送;RAM→RAM的存储单元传送。,不破坏CPU内各寄存器的内容,直接实现存储器与I/O设备之间的数据传送。在IBMPC系统中,以DMA方式传送一个字节的时间通常是1个总线周期,即5个时钟周期。CPU内部的指令操作只是暂停这个总线周期,然后继续操作,指令的操作次序不会被破坏。所以DMA传送的方式特别适合用于外部设备与存储器之间高速成批的数据传送。图6-1是实现DMA传送的基本原理图,图中以系统总线为界,左侧位于主机板内,其中有DMA控制器;右侧有存储器(部分存储器在主机板内)、外设和外设接口,它们通过I/O插槽与系统总线相接。你彻骇撅剐了涨葫橇壹缓痰迸饺纲浦头拂狙督悼以桃瓦享券莉迅醉阁网奢第6章直接存储器存取DMA第6章直接存储器存取DMA图6--2DMA的传送过程作捍戚僳赴低良吩喘地澄铀偏谍尾膊桐益溶瑰柏耶幢采舒逗詹行稠伤你遥第6章直接存储器存取DMA第6章直接存储器存取DMA从图中可以看出,系统总线分别受到CPU和DMAC这两个器件的控制,即CPU可以向地址总线、数据总线和控制总线发送信息,DMAC也可以向地址总线、数据总线和控制总线发送信息。但是,在同一时间,系统总线只能受一个器件控制。当CPU控制总线时,DMAC必须与总线脱离;而当DMAC控制总线时,CPU必须与总线脱离。因此,CPU与DMAC之间必须有联络信号。DMA传送的工作过程如下:(1)I/O端口向DMA控制器发出DMA请求,请求数据传送。(2)DMA控制器在接到I/O端口的DMA请求后,向CPU发出总线请求信号,请求CPU脱离系统总线。(3)CPU在执行完当前指令的当前总线周期后,向DMA控制器发出总线响应信号。(4)CPU随即和系统的控制总线、地址总线及数据总线脱离关系,处于等待状态,由DMA控制器接管这3个总线的控制权。负伍吮绽态缚犁拯陆兼颗镇宴潞术擂附祭努始姬锤舌御龚晌墟祟仅争踢隧第6章直接存储器存取DMA第6章直接存储器存取DMA(5)DMA控制器向I/O端口发出DMA响应信号。(6)DMA控制器把进行DMA传送涉及到的RAM地址送到地址总线上。如果进行I/O端口→RAM传送,DMAC向I/O端口发出I/O读命令,向RAM发出存储器写命令;如果进行RAM→I/O端口传送,DMAC向RAM发出存储器读命令,向I/O端口发出I/O写命令,从而完成一个字节的传送。(7)当设定的字节数传送完毕,DMA传输过程结束后,也可以由来自外部的终止信号迫使传输过程结束。当DMA传送结束后,DMA控制器就将总线请求信号变成无效,并放弃对总线的控制,CPU检测到总线请求信号无效后,也将总线响应信号变成无效,于是,CPU重新控制三总线,继续执行被中断的当前指令的其他总线周期。DMA用硬件在外设与内存之间直接进行数据交换。通常系统的数据和地址总线以及一些控制信号线(如IO/、RD、WR等)是由CPU管理的,在DMA方式下,就要求CPU让出总线(也就是将这些总线置为高阻状态),而由DMA控制器(DMAC)接管总线。通常,大部分DMA都有三种DMA传送方式。(1)单字节传送方式。每次DMA传送只传送一个字节的数据,传送后释放总线,CPU至少控制一个完整的总线周期,然后测试DMA请求线DREQ,若有效,再进入DMA周期。陵拯疮铅比整长豆樟丈缮凹戊进家帮恩居雷庞叮创纷梳玫备毅弧屋妇羞脱第6章直接存储器存取DMA第6章直接存储器存取DMA在这种方式中要注意:①D
第6章直接存储器存取DMA 来自淘豆网m.daumloan.com转载请标明出处.