DMA 控制器介绍_第1页
DMA 控制器介绍_第2页
DMA 控制器介绍_第3页
DMA 控制器介绍_第4页
DMA 控制器介绍_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DMATrainning 2007 8 15 一 基本概念1 DirectMemoryAccess 直接存儲器存取 这是指一种高速的数据传输操作 允许在外部设备和存儲器之间直接读写数据 既不通过CPU 也不需要CPU干预 整个数据传输操作在一个称为 DMA控制器 的控制下进行的 CPU除了在数据传输开始和结束时做一点处理外 在传输过程中CPU可以进行其他的工作 这样 在大部分时间里 CPU和输入输出都处于并行操作 因此 使整个计算机系统的效率大大提高 DMA技術中 數據的傳送是在DMA控制器 DMAC 的控制下進行的 2 DMAC傳送數據的三個階段 a 传送前的预处理b 数据传送c 传送结束处理3 DMAC有兩種工作狀態 主動工作狀態 有效周期 和被動工作狀態 空閑周期 4 DMA控制器對總線的占用方式有a 獨占方式b 周期挪用方式 三 基本的DMA控制器1 DMA控制器的基本组成一个DMA控制器 实际上是采用DMA方式的外围设备与系统总线之间的接口电路 这个接口电路是在中断接口的基础上再加DMA机构组成 习惯上将DMA方式的接口电路称为DMA控制器 下页图示出了一个最简单的DMA控制器组成示意图 一个最简单的DMA控制器由以下逻辑部件组成 1 内存地址计数器用于存放内存中要交换的数据的地址 在DMA传送前 须通过程序将数据在内存中的起始位置 首地址 送到内存地址计数器 而当DMA传送时 每交换一次数据 将地址计数器加 1 从而以增量方式给出内存中要交换的一批数据的地址 2 字计数器用于记录传送数据块的长度 多少字数 其内容也是在数据传送之前由程序预置 交换的字数通常以补码形式表示 在DMA传送时 每传送一个字 字计数器就加 1 当计数器溢出即最高位产生进位时 表示这批数据传送完毕 于是引起DMA控制器向CPU发中断信号 3 数据缓冲寄存器用于暂存每次传送的数据 一个字 当输入时 由设备 如磁盘 送往数据缓冲寄存器 再由缓冲寄存器通过数据总线送到内存 反之 输出时 由内存通过数据总线送到数据缓冲寄存器 然后再送到设备 4 DMA请求 标志每当设备准备好一个数据字后给出一个控制信号 使 DMA请求 标志置 1 该标志置位后向 控制 状态 逻辑发出DMA请求 后者又向CPU发出总线使用权的请求 HOLD CPU响应此请求后发回响应信号HLDA 控制 状态 逻辑接收此信号后发出DMA响应信号 使 DMA请求 标志复位 为交换下一个字做好准备 5 控制 状态 逻辑由控制和时序电路以及状态标志等组成 用于修改内存地址计数器和字计数器 指定传送类型 输入或输出 并对 DMA请求 信号和CPU响应信号进行协调和同步 6 中断机构当字计数器溢出时 為0時 意味着一组数据交换完毕 由溢出信号触发中断机构 向CPU提出中断报告 这里的中断与上一节介绍的I O中断所采用的技术相同 但中断的目的不同 前面是为了数据的输入或输出 而这里是为了报告一组数据传送结束 因此它们是I O系统中不同的中断事件 2 DMA数据传送过程 DMA的数据块传送过程可分为三个阶段 传送前预处理 正式传送 传送后处理 预处理由CPU执行几条输入输出指令 测试设备状态 向DMA控制器的设备地址寄存器中送入设备号并启动设备 向内存地址计数器中送入起始地址 向字计数器中送入交换的数据字个数 在这些工作完成后 CPU继续执行原来的主程序 正式传送当外设准备好发送数据 输入 或接受数据 输出 时 它发出DMA请求 由DMA控制器向CPU发出总线使用权的请求 HOLD 下页图示出了停止CPU访内方式的DMA传送数据的流程图 当外围设备发出DMA请求时 CPU在本机器周期执行结束后响应该请求 并使CPU的总线驱动器处于第二态 高阻状态 之后 CPU与系统总线相脱离 而DMA控制器接管数据总线与地址总线的控制 并向内存提供地址 于是 在内存和外围设备之间进行数据交换 每交换一个字 则地址计数器和字计数器加 l 当计数值到达零时 DMA操作结束 DMA控制器向CPU提出中断报告 DMA的数据传送是以数据块为基本单位进行的 因此 每次DMA控制器占用总线后 无论是数据输入操作 还是输出操作 都是通过循环来实现的 当进行输入操作时 外围设备的数据 一次一个字或一个字节 传向内存 当进行输出操作时 内存的数据传向外围设备 后处理一旦DMA的中断请求得到响应 CPU停止主程序的执行 转去执行中断服务程序做一些DMA的结束处理工作 这些工作包括校验送入内存的数据是否正确 决定继续用DMA方式传送下去 还是结束传送 测试在传送过程中是否发生了错误等等 基本DMA控制器与系统的连接方式 1 公用的DMA请求方式 2 独立的DMA请求方式 这与中断方式类似 四 选择型和多路型DMA控制器前面介绍的是最简单的DMA控制器 一个控制器只控制一个I O设备 实际中经常采用的是选择型DMA控制器和多路型DMA控制器 它们已经被做成集成电路片子 1 选择型DMA控制器下页图是选择型DMA控制器的逻辑框图 它在物理上可以连接多个设备 而在逻辑上只允许接 个设备 换句话说 在某一段时间内只能为一个设备服务 选择型DMA控制器工作原理与前面的简单DMA控制器基本相同 除了前面讲到的基本逻辑部件外 还有一个设备号寄存器 数据传送是以数据块为单位进行的 在每个数据块传送之前的预置阶段 除了用程序中I O指令给出数据块的传送个数 起始地址 操作命令外 还要给出所选择的设备号 从预置开始 一直到这个数据块传送结束 DMA控制器只为所选设备服务 下 次预置再根据I O指令指出的设备号 为另 选择的设备服务 显然 选择型DMA控制器相当于一个逻辑开关 根据I O指令来控制此开关与某个设备连接 选择型DMA控制器只增加少量硬件达到了为多个外围设备服务的目的 它特别适合数据传输串很高以至接近内存存取速度的设备 在很快地传送完一个数据块后 控制器又可为其他设备服务 2 多路型DMA控制器选择型DMA控制器不适用于慢速设备 但是多路型DMA控制器却适合于同时为多个慢速外围设备服务 下页图 a 是链式多路型DMA控制器 而 b 是独立请求方式多路型DMA控制器 多路型DMA不仅在物理上可以连接多个外围设备 而且在逻辑上也允许这些外围设备同时一工作 各设备以字节交叉方式通过DMA控制器进行数据传送 当某个外围设备请求DMA服务时 操作过程如下 1 DMA控制器接到设备发出的DMA请求时 将请求转送到CPU 2 CPU在适当的时刻响应DMA请求 若CPU不需要占用总线则继续执行指令 若CPU需要占用总线 则CPU进入等待状态 3 DMA控制器接到CPU的响应信号后 进行以下工作 对现有DMA请求中优先权最高的请求给予DMA响应 选择相应的地址寄存器的内容驱动地址总线 根据所选设备操作寄存器的内容 向总线发读 写信号 外围设备向数据总线传送数据 或从数据总线接收数据 每个字节传送完毕后 DMA控制器使相应的地址寄存器和长度寄存器加 1 或减 1 以上是一个DMA请求的过程 在一批数据传送过程中 要多次重复上述过程 直到外围设备表示一个数据块已传送完毕 或该设备的长度控制器判定传送长度已满 例 如圖所示为8237DMA的組成示意圖根據圖中所示 请簡單分析其與外設 如軟盘 工作過程原理 解 CPU和外設 如軟盘 控制器之间的接口电路包括DMA控制和总线控制两部分 DMA地址寄存器存放被寻址的主存首地址 字节计数寄存器存放本次DMA传送的字节数 操作方式寄存器中包含工作方式 读 写 校验 等信息 状态寄存器 DMA传输前 CPU对8237进行初始化 将数据在主存中的起始地址 数据字节个数 工作方式等参数送入8237相应的寄存器中 然后才允许外設控制器向8237发出DMA传输请求信号DRQ 8237接收到 DRQ信号后 立即发HRQ信号给总数控制线路 请求总线控制权 CPU在识别到HRQ信号 完成当前总线周期后 发出HLDA响应信号 并放弃总线控制权 此时8237向软盘控制器发出DACK回答信号 通知软盘控制器开始DMA传输 并发出读 写控制信号 MEMR MEMW IOR IOW 以便软盘控制器从主存被寻址的单元读取一个字节或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论