《DMA控制器》PPT课件

《DMA控制器》PPT课件

ID:39352826

大小:718.10 KB

页数:86页

时间:2019-07-01

《DMA控制器》PPT课件_第1页
《DMA控制器》PPT课件_第2页
《DMA控制器》PPT课件_第3页
《DMA控制器》PPT课件_第4页
《DMA控制器》PPT课件_第5页
资源描述:

《《DMA控制器》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章DMA控制器7.1DMA基本概念7.2DMA占用总线方式7.3DMA控制器8237A7.48237A在PC上的应用7.5DMA读传送实例7.1DMA基本概念DMA的意思是“直接存储器存取”,意指不通过CPU、直接对存储器进行访问,它由专门的硬件装置DMA控制器(DMAC)来完成。除了事先要用指令设置DMAC外,传送是应外设请求、在硬件控制下完成的。所以,它具有极高的传送速率。DMAC对存储器的访问与CPU类似,一般利用系统总线来进行。以读存储器为例,其过程是:DMAC一面向存储器送存储单元地址和读控制信号(),同时又向外设端口送写控制信号(),数据在硬

2、件信号的控制下通过总线由源直接送达目的地。为了支持数据块的传送,DMAC还具有修改地址指针、统计传送次数、判断传送是否结束等多项自动功能。所以,使用DMA方法,可支持外设→存储器、存储器→外设的高速直接传送;变通后,也可支持存储器→存储器、外设→外设的高速直接传送。7.2DMA占用总线方式1.CPU暂时放弃总线控制权方式此类DMA操作,CPU必须暂停任何总线操作,并让出对总线的控制权、直至DMA传送结束或完成一个总线操作周期之后,CPU才能继续控制总线。实现这种方式的方法是DMAC向CPU发出总线请求信号,CPU在完成当前的总线周期操作之后,释放对总线的控制

3、(有关的引脚信号处于高阻状态)并发出总线响应信号。这类DMA又可分为两种情况:周期挪用和数据块传送。如果DMAC控制总线的时间为一个总线周期,则称为周期挪用。对于这种操作方式,每次DMA操作仅传送一个字节(或字)数据。然后DMAC释放对总线的控制;若DMAC控制总线的时间超过一个总线周期,用来完成一组数据(即数据块)的传送,在该组数据传送期间,DMAC一直控制着总线,这种操作方式称为数据块传送。下面以图7-1为例说明这种DMA操作方式的工作过程。假定8086CPU工作于最小模式,且是将存储器中的数据传送给外部设备。在DMA操作之前,DMAC作为系统的一个接口

4、部件,接受CPU送来的操作命令,也即对DMAC的初始化,以规定传输类型(存储器和外设之间)、操作方式(单字节传送)、传送方向、内存的首地址、传送的字节数等。在完成初化编程之后,DMAC就准备好进行DMA操作,传送一个字节数据的过程如下(在图7-1中以圆圈内的序号表示)。图7-1DMA操作过程示意图(1)外设已作好接收数据准备,向DMAC发出请求信号DRQ。(2)DMAC向CPU发出DMA操作请求HRQ,该请求信号送到CPU的HOLD信号引脚。(3)CPU在完成当前的总线周期操作之后(若总线处于空闲状态,则立即做出响应),使数据总线、地址总线及部分控制信号处于

5、三态,并向DMAC发出响应信号HLDA,指示DMAC可以使用总线。(4)DMAC将地址(A19~A0)放入地址总线,该地址用来寻址内存储单元。(5)DMAC向I/O接口发出响应信号DACK,该信号可作为接口接受数据的控制条件,有效时,表示允许接口接受数据;(6)DMAC向存储器发出读控制信号,在该信号的控制下,由A19~A0指定的单元的内容送入数据总线。(7)DMAC向接口发出写控制信号,在该信号及DACK信号的共同作用下,将数据总线上的内容储存到接口中的数据寄存器,并通过接口将数据传送给外设,至此完成了数据传送。(8)DMAC撤销对CPU的请求信号。(9)

6、CPU撤销保持响应信号并恢复对总线的控制。如果数据未传送完,则又从第二步开始重复所述过程。2.暂停CPU时钟脉冲方式这种方式也就是强迫CPU立即停止工作的方式。在进入DMA操作时,把CPU的时钟“暂停”,就能达到停止CPU操作的目的。这种方式的原理如图7-2所示,CPU的时钟脉冲由系统主时钟脉冲通过与门来提供,与门由PAS信号控制。当PAS=1时,向CPU提供时钟脉冲,CPU操作得以进行;当PAS=0时,暂停时钟,CPU便处于“休眠”状态,此时可进行DMA操作。图7-2暂停CPU时钟脉冲方式示意图fSystemPASfSystemPASfCPUfCPU&3.

7、窃取CPU空闲时间方式上述两种DMA总线占用方式共同的特点是,进行DMA操作时均使CPU的正常工作暂时停止。其优点是简单,可以不受限制地传送任意长度的数据块,但会浪费CPU资源。为了充分利用CPU资源,可以采用只有当CPU不使用总线时才进行DMA操作的方法,这样CPU不会因DMA传送而浪费时间。但这种DMA操作只能安排在CPU执行内部操作当中例如取完指令操作码后,CPU要进行指令译码或CPU内部要进行算术/逻辑运算时,CPU均不使用总线,这时DMAC可以接管总线。MC6800CPU有专门的信号用来指示总线是否正在被使用,这就给安排DMA操作带来了很大便利。4

8、.周期扩展方式周期扩展方式是采用专门的时钟发生电路加

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。