- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DMA控制接口
DMA控制接口 * * 教学提示:DMA是直接存储器存取的英文缩写。它为高速I/O设备与读写存储器之间进行批量数据交换提供直接的传输通道。在传输过程中,CPU不再干预,而是由一个硬件逻辑DMA控制器负责管理。但并不是CPU根本与DMA传送方式无关,恰恰相反,在DMA方式的3个阶段(请求、响应及结束)都需要CPU参与,只有传输期间CPU处于等待状态。 教学要求:通过本章的学习,需要进一步巩固DMA数据传送的概念,掌握8237A的编程使用方法,了解8237A在PC机的使用情况。 9.1 DMA控制器8237A 在第6章中,已经介绍过DMA数据传送方式,在本节中,将进一步深化DMA概念,并介绍用于DMA控制器的芯片——8237A。 9.1.1 DMA概述 在外设与计算机之间传输信息(数据),可以用程序控制和中断控制的方法,其基本过程都是由CPU执行指令来完成的。DMA传送是一种让数据在外设和内存之间直接传送的方式,它与前两种方法一起,构成了计算机的3种传送方式。在DMA传送期间,CPU停止工作,把总线控制权让出来,在DMA控制器的管理下,提供给外设和内存使用。 概念:DMA传送方式是不通过CPU、存储器和I/O端口之间直接进行数据传送的数据传送方式。 提出DMA传送的原因在于要解决传送的速度问题。前两种方式每传送一个字节都需要耗用比较长的时间。在外设不断改进的情况下,一些外设产生或获取数据的速度大大加快,如果计算机的传送速度太慢就会使传送出错,或者传送效率降低。例如,常用的几种软盘机,它们的传送速度都在250kb/s以上,而硬磁盘机记录密度比软盘高将近一倍,转动速度提高了10倍,它的数据速度应是软盘的十几倍。如果还用这种办法传送,就不能满足外设的需求了。这样就提出了DMA传送的问题,解决问题的办法是省去传输中间环节,直接在外设和内存间存取。 1. DMA传送的基本过程 DMA控制器可以像CPU那样得到总线控制权,用DMA方式实现外部设备和存储器之间的数据高速传输。为了实现DMA传输,DMA控制器必须将内存地址送到地址总线上,并且能够发送和接收联络信号。 一个DMA控制器通常可以连接一个或几个输入/输出接口,每个接口通过一组连线和DMA控制器相连。习惯上,将DMA控制器中和某个接口有联系的部分称为一个通道。这就是说,一个DMA控制器一般由几个通道组成。 图9.1是一个具有DMA能力的单通道DMA控制器的外部连线图。这里特别要注意的是,DMA控制器DMAC以及需要DMA方式作数据传送的外设是如何连接到系统中去的。外设与系统总线之间只进行数据总线的连接,它工作与否受到DMAC的控制。DMAC的连接比较复杂,一方面它要与外设连接,接受DMA请求和控制外设动作。另外它还要与CPU联系,请求取得总线控制权,最后它还必须与系统总线上各种总线相接,进行总线的控制。为了理解这样连接的必要性,下面说明一种典型的DMA操作过程(如图9.1所示)。 图9.1 DMA控制器外部连线图 1) 外设提出DMA传送请求 由外设或外设控制电路向DMA控制器送出一个电平信号(DREQ),表示请求一次DMA传送。 2) DMA控制器响应请求 DMA控制器接到请求后,经控制电路向CPU提出。保持(HOLD)请求,并等待CPU的回答。如果控制器接有多个DMA设备,它要对各设备和请求进行排队,选择优先级别最高的请求输出,作为向CPU发出的保持请求。 3) CPU响应 CPU在每个时钟上升沿都检测有无HOLD请求,若有此请求,且自身正处在总线空闲周期中,CPU就立即响应保持请求。如果CPU正在执行某个总线周期,那么要到这个总线周期结束后再响应此保持请求。CPU对保持请求在两个动作:一是从HLDA送出一个响应信号,告诉DMA控制器可以开始占用总线;第二个是将CPU与总线相连接的引脚置为高阻态,即释放了总线。 4) DMA控制器的动作 DMA控制器在接收到HLDA回答后,即开始对直接存储器存取的过程控制。它向外设送出DACK作为对外设DMA请求的响应,同时也作为外设的数据选通。它还向系统总线送出控制信号和地址信号,以选择合适的存储单元。在一次DMA结束后,DMA控制器撤除HOLD信号,CPU也消除HLDA,并重新开始对总线的使用。DMA传送的工作过程总结如下: (1) I/O设备向DMAC发出DMA请求。 (2) DMAC向CPU发出总线请求。 (3) CPU在执行完当前指令的当前的总线周期后,向DMAC发出总线响应信号。 (4) CPU脱离对系统总线的控制,由DMAC接管对系统总线的控制。 (5) DMAC向I/O设备发出的DMA应答信号。 (6) DMAC进行一个字节的传送。 (7) 完成设定的字节数据传送,CPU恢复对系统总线的控制。 5) DMA
文档评论(0)