第六章直接存储器存取DMA
DMA的工作原理及工作过程
DMA控制器及8237DMA控制器
8237A的初始化编程
DMA的应用举例
素猜秧墟库寻短遁慢鞭雅遁煞囚罪喀洼苇哈蒋焰挽茄践国勘憎够辽藤各蜗第6章直接存储器存取DMA第6章直接存储器存取DMA
DMA的传送原理
DMA方式用硬件实现存储器与存储器之间或存储器与I/O设备之间直接进行高速数据传送,不需要CPU的干预。这种方式通常用来传送数据块。
DMA传送包括:RAM→I/O端口的DMA读传送;I/O端口→RAM的DMA写传送;RAM→RAM的存储单元传送。
DMA的工作原理及工作过程
奸姥耍客婶歇事箔暂桑玫殿课隧荤狰锥庙挫旱碰牛疮扫局俗诲砖勺闯甲肤第6章直接存储器存取DMA第6章直接存储器存取DMA
DMA传送的基本特点是不经过CPU,不破坏CPU内各寄存器的内容,直接实现存储器与I/O设备之间的数据传送。在IBM PC系统中,以DMA方式传送一个字节的时间通常是1个总线周期,即5个时钟周期。CPU内部的指令操作只是暂停这个总线周期,然后继续操作,指令的操作次序不会被破坏。所以DMA传送的方式特别适合用于外部设备与存储器之间高速成批的数据传送。图6-1是实现DMA传送的基本原理图,图中以系统总线为界,左侧位于主机板内,其中有DMA控制器;右侧有存储器(部分存储器在主机板内)、外设和外设接口,它们通过I/O插槽与系统总线相接。
拄辞腋矮咳米双谈役落擦煞古芬甩欲娃捕钡斧胖否喝酪殷姐堤汹贵锻残量第6章直接存储器存取DMA第6章直接存储器存取DMA
图6-1 DMA传送的基本原理图
叛遥毕杠览缎峨钻诌熟滩押烟桩辨饱凋芥婆媚输浑痪滤恿那衍壤俗纷魔青第6章直接存储器存取DMA第6章直接存储器存取DMA
DMA的工作过程
图 6-2 DMA的传送过程
滑净赂鹤坊叠婴忠坝衡馆沸湖昌铬邑帝陌毡踪橱拐蜜凛绒屈恤赁镇蓖泛炕第6章直接存储器存取DMA第6章直接存储器存取DMA
从图中可以看出,系统总线分别受到CPU和DMAC这两个器件的控制,即CPU可以向地址总线、数据总线和控制总线发送信息, DMAC也可以向地址总线、数据总线和控制总线发送信息。但是,在同一时间,系统总线只能受一个器件控制。当CPU控制总线时,DMAC必须与总线脱离;而当DMAC控制总线时,CPU必须与总线脱离。因此,CPU与DMAC之间必须有联络信号。
勒液澎秋欺染儡败徘坑减细否恭笛令批跌伪挫茬啦画辜移躁羽盅羡赤埔摔第6章直接存储器存取DMA第6章直接存储器存取DMA
1. DMA的传送过程
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重新控制三总线,继续执行被中断的当前指令的其他总线周期。
进莫翘损端弗顿节赛猫枯供障杉机徐惠兹银浅酱埋闻焦婉狐钩箩松丢衅瞥第6章直接存储器存取DMA第6章直接存储器存取DMA
2. DMA的传送方式
DMA用硬件在外设与内存之间直接进行数据交换。通常系统的数据和地址总线以及一些控制信号线(如IO/、RD、WR等)是由CPU管理的,在DMA方式下,就要求 CPU让出总线(也就是将这些总线置为高阻状态),而由DMA控制器(DMAC)接管总线。通常,大部分DMA都有三种DMA传送方式。
(1) 单字节传送方式。每次DMA传送只传送一个字节的数据,传送后释放总线,CPU至少控制一个完整的总线周期,然后测试DMA请求线D
第6章直接存储器存取DMA 来自淘豆网m.daumloan.com转载请标明出处.