计算机组成原理第七章输入输出系统[四]解析.ppt

计算机组成原理第七章输入输出系统[四]解析.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机组成原理第七章输入输出系统[四]解析

7.4 DMA方式 7.4.1 基本概念 1、定义 DMA(Direct Memory Access,直接存储器访问)是一种完全由硬件执行I/O交换的工作方式. 在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,不需要CPU暂停现行程序为设备服务,而直接在内存和I/O设备之间进行. DMA方式一般用于高速传送成组数据. 2、DMA和中断的区别 (1) 中断是程序切换,需要保护和恢复现场;而DMA方式除了开始和结束时,不占用CPU的任何资源; (2) 对中断请求的响应时间只能发生在每条指令执行完毕时;而对DMA请求的响应时间可以发生在每个机器周期结束时; 2、DMA和中断的区别 (3) DMA请求的优先级高于中断请求; (4) 程序中断具有实时处理异常事件的能力,而DMA方式仅用于实现外设与主存之间的数据块传送. (5) 中断传送过程需要CPU的干预;而DMA方式传送过程不需要CPU的干预,所以数据传送速率高,适合于高速外设的成组数据传送. 7.4.2 DMA接口(DMA控制器DMAC) 1、DMA控制器的功能 (1) 接受外设发出的DMA请求,并向CPU发出总线请求; (2) 当CPU响应总线请求并发出总线响应信号后,接管对总线的控制,进入DMA操作周期; (3) 确定传送数据的主存单元地址及传送长度,并能自动修改主存地址计数器和传送长度计数器; (4) 规定数据在主存与外设之间的传送方向,发出读写或其他控制信号,并执行数据传送的操作; (5) 向CPU报告DMA操作的结束. 7.4.2 DMA接口(DMA控制器DMAC) 2、DMA控制器的基本组成 (1)寄存器组:四个主要寄存器 ① 主存地址计数器:存放待交换数据的主存地址.其初值为主存缓冲区首地址,当DAM传送时,每传送一个数据,地址计数器加1,直到这批数据传送完为止; ② 字计数器:纪录传送数据块的长度.初始时将待传送的字数或字节数求补后送计数器,每传送一个字或一个字节,计数器加1,当计数器溢出时,表示数据传送完毕; ③ 数据缓冲寄存器:暂存放每次传送的数据; ④ 外围设备地址寄存器:存放I/O设备的设备码或表示设备信息存储区的寻址信息; 7.4.2 DMA接口(DMA控制器) 2、DMA控制器的基本组成 (2) 控制/状态逻辑:由状态标志和控制逻辑电路组成,发出各种控制信号,用于指定传送方向、修改主存地址计数器和字计数器、并对DMA请求信号和CPU响应信号进行协调同步; (3) DMA请求触发器:每当外设准备好数据后给出一个控制信号,使DMA触发器置位; (4) 中断机构:当一个数据块传送完毕后触发中断机构,向CPU提出中断请求,CPU将进行DMA传送的结尾处理. 一个简单的 DMA控制器如图7.25所示: 2、DMA控制器的数据传送过程 DMA的数据传送过程分为3个阶段:DMA传送前的预处理、数据传送和传送后的结束处理,如图7.26(a)所示. (1) 传送前的预处理 需要CPU来完成(软件方式): CPU在对DMA控制器编程,实施必要的初始化操作: 测试外设的状态; 设置数据的传送方向; 设置主存起始地址; 设置数据传输个数; 向DMA设备地址寄存器送入设备号,并启动外设. 2、DMA控制器的数据传送过程 之后,CPU 继续执行原程序,在外设准备好发送的数据(输入)或接收的数据(输出)已经处理完毕,外设向DMA 控制器发出DMA 请求,进入下一阶段----数据传送. (2) 数据传送 DMA数据传送流程图示于图7.26(b).下面以外设将一个数据块写入主存的操作为例,简述DMA的数据传送过程(结合图7.25): ① 外设给出一个控制信号使DMA请求触发器置位; ② DMA请求触发器向控制/状态逻辑发DMA请求; ③ DMA控制器向CPU发出总线请求信号HOLD; ④ CPU接到该请求后,在正在执行的指令的当前机器周期结束时响应该请求,并向DMA控制器发发总线响应信号HLDA,表示DMAC已经获得总线控制权; ⑤控制/状态逻辑将DMA请求触发器置0; ⑥ DMAC向外设发出DMA响应信号; ⑦ 将外设数据读入数据缓冲寄存器; ⑧ DMA控制器按照主存地址计数器的内容发出地址信号作为主存地址的选择,数据缓冲寄存器中的内容在DMAC发出的写信号的控制下经数据线写入指定单元; ⑨内存地址计数器、字计数器增1; ⑩ 判断字计数器是否溢出,若未溢出,则重复⑦~⑨;如溢出,则停止传送,向CPU发结束中

文档评论(0)

4477704 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档