《DMA与通道》PPT课件.ppt

上传人:san****019 文档编号:7344470 上传时间:2020-03-20 格式:PPT 页数:41 大小:945.10KB
返回 下载 相关 举报
《DMA与通道》PPT课件.ppt_第1页
第1页 / 共41页
《DMA与通道》PPT课件.ppt_第2页
第2页 / 共41页
《DMA与通道》PPT课件.ppt_第3页
第3页 / 共41页
点击查看更多>>
资源描述
第21讲直接存储器存取 DMA 方式 1DMA的基本概念2DMA传送方式3基本的DMA控制器4DMA和中断的区别 1 DMA的基本概念DMA方式是指直接依靠硬件在主存与I O设备之间进行直接数据传送 传送期间不需要CPU干预 应用大批量数据采集 主存与I O简单高速数据传送 如 磁盘 光盘等 特点DMA只需要占用系统总线 不切换程序 不用处理现场等一系列操作 DMA方式的五个特点 它使主存与CPU的固定联系脱钩 主存既可被CPU访问 又可被外设访问 在数据块传送时 主存地址的确定 传送数据的计数等等都用硬件电路直接实现 主存中要开辟专用缓冲区 及时供给和接收外设的数据 DMA传送速度快 CPU和外设并行工作 提高了系统的效率 DMA在开始前和结束后要通过程序和中断方式进行预处理和后处理 2 常见的DMA数据传送方式 1 CPU暂停方式 成组传送 当外设要求传送一批数据 由DMAC发一个停止信号给CPU CPU放弃对总线的控制权 并停止使用总线访问内存 DMAC获得总线控制权以后 开始在内存和外设之间进行数据传送 在一批数据传送完毕后 DMAC把总线控制权交回给CPU CPU就可以使用总线 控制简单 CPU处于不工作状态 或保持状态 未充分发挥CPU对主存的利用率 优点 缺点 在DMAC访问阶段 因外设传送二个数据之间的间隔一般大于内存的存储周期 因此 许多空闲的存储周期不能被CPU利用 适用场合 数据传输率很高的设备进行成组数据传送 2 周期挪用 周期窃取 单字传送 当外设没有DMA请求 CPU按程序要求访问内存 一旦外设有DMA请求 则由外设挪用一个或几个内存周期 传送完一个数据后立即释放总线 I O设备要求DMA传送会遇到三种情况 一种是此时CPU不需访问主存 如CPU正在执行乘法指令 由于乘法指令执行时间较长 此时CPU不需访问主存 故I O设备访存与CPU不发生冲突 第二种情况是I O设备要求DMA传送时 CPU正在访存 此时必须待存取周期结束时刻 CPU才能将总线占有权让出 第三种情况是I O设备要求访存时 CPU也要求访存 这就出现了访存冲突 此刻 I O访存优先于CPU访存 因为I O不立即访存就可能丢失数据 这时I O要窃取一二个存取周期 意味着CPU在执行访存指令过程中插入了DMA请求 并挪用了一二个存取周期 使CPU延缓了一二个存取周期再访存 周期挪用 或周期窃取 优点 实现了CPU和外设并行工作 较好地发挥了主存和CPU的效率 缺点 外设每次挪用周期都要有申请总线控制权 建立总线控制权 归还总线控制权的过程 虽然传送一个数据只需一个主存周期 但DAMC一般要用2 5主存周期 适用场合 外设读写周期大于内存周期的情况 3 DMA与CPU交替访内如果CPU的工作周期比内存的存取周期长得多 可以将一个CPU周期分为两个分周期 第一个分周期专供DMAC访内 第二个分周期专供CPU访内 从而实现DMAC与CPU交叉访内 优点 DMA传送效率最高 DMA与CPU交替访问 CPU工作周期 所有指令执行过程中的一个基准时间 DMA接口的功能和组成 1 DMA接口的功能利用DMA方式传送数据时 数据的传输过程完全由DMA接口电路控制 DMA接口应具有如下几个功能 1 向CPU申请DMA传送 2 在CPU允许DMA工作时 处理总线控制权的转交 避免因进入DMA工作而影响CPU正常活动或引起总线竞争 3 在DMA期间管理系统总线 控制数据传送 4 确定数据传送的起始地址和数据长度 修正数据传送过程中的数据地址和数据长度 5 在数据块传送结束时 给出DMA操作完成的信号 2 DMA接口组成 1 1 1 主存地址寄存器AR AR用于存放主存中需要交换数据的地址 在DMA传送前 须通过程序将数据在主存中的首地址送到主存地址寄存器 在DMA传送过程中 每交换一次数据 将地址寄存器内容加1 直到一批数据传送完毕为止 2 字计数器WC WC用于记录传送数据的总字数 通常以交换字数的补码值预置 在DMA传送过程中 每传送一个字 字计数器加1 直到计数器为0 即最高位产生进位时 表示该批数据传送完毕 于是DMA接口向CPU发中断请求信号 3 数据缓冲寄存器BR BR用于暂存每次传送的数据 通常DMA接口与主存之间采用字传送 而DMA与设备之间可能是字节或位传送 因此DMA接口中还可能包括有装配或拆卸字信息的硬件逻辑 如数据移位缓冲寄存器 字节计数器等 4 DMA控制逻辑 它用于负责管理DMA的传送过程 由控制电路 时序电路及命令状态控制寄存器等组成 每当设备准备好一个数据字 或一个字传送结束 就向DMA接口提出申请 DREQ DMA控制逻辑便向CPU请求DMA服务 发出总线使用权的请求信号 HRQ 待收到CPU发出的响应信号HLDA后 DMA控制逻辑便开始负责管理DMA传送的全过程 包括对主存地址寄存器和字计数器的修改 识别总线地址 指定传送类型 输入或输出 以及通知设备已经被授予一个DMA周期 DACK 等 5 中断机构 当字计数器溢出 全 0 时 表示一批数据交换完毕 由 溢出信号 通过中断机构向CPU提出中断请求 请求CPU作DMA操作的后处理 必须注意 这里的中断与上一节介绍的I O中断的技术相同 但中断的目的不同 前面是为了数据的输入或输出 而这里是为了报告一批数据传送结束 它们是I O系统中不同的中断事件 6 设备地址寄存器DAR DAR存放I O设备的设备码或表示设备信息存储区的寻址信息 如磁盘数据所在的区号 盘面号和柱面号 具体内容取决于设备的数据格式和地址的编址方式 DMA传送过程 第一步 DMA接口的预置 初始化 由软件实现 数据传送之前 CPU将执行一段初始化程序 完成对DMA接口中各参数寄存器的初始值的设定 主要操作包括 准备内存区若是从外设输入数据 则进行内存缓冲区的申请 并对缓冲区进行初始化 若是输出到外设 则先在内存准备好数据 启动外设 然后CPU继续执行其他程序 设置传送参数执行I O指令 测试外设状态 对DMA接口设置各种参数 内存首址 地址寄存器 字计数值 字计数器 传送方向 控制寄存器 设备地址 设备地址寄存器 第二步 DMA数据传送 由硬件实现 DMA接口数据传送过程如下 当外设准备好数据 从外设取数 或准备好接收数据 向外设送数 时 就发 选通 信号 使数据送数据缓冲寄存器 同时DMA请求触发器置 1 DMA请求触发器向控制 状态端口发 Ready 信号 同时向DMA控制器发 DMA请求 信号 DMA接口接受到 DMA请求 信号后 就向CPU发 总线请求 信号 CPU完成现行机器周期后 响应DMA请求 向DMA接口发出 总线响应 信号 DMA接口接受到该信号后 向外设接口发 DMA响应 信号 使DMA请求触发器复位 CPU浮动它的总线 让出总线控制权 由DMA接口控制总线 DMA接口给出内存地址 并在其读 写线上发出 读 或 写 命令 随后在数据总线上给出数据 根据读写命令 将数据总线上的数据写入存储器中 或写入数据端口 并进行主存地址增量 字计数值减1 若采用 CPU停止法 则循环第6步 直到计数值为 0 若采用 周期挪用法 则释放总线 下次数据传送时再按过程 1 到 6 进行 第三步 DMA结束处理 根据计数值为 0 发出DMA结束信号送接口控制 产生DMA中断请求信号给CPU 当DMA的中断请求得到响应后 CPU停止源程序的执行 转去执行中断服务程序 做一些DMA的结束工作 它包括校验送入主存的数据是否正确 决定是否继续用DMA传送其他数据块 若继续传送 则又要对DMA接口进行初始化 若不需要传送 则停止外设 测试在传送过程中是否发生错误 若出错 则转错误诊断及处理错误程序 DMA接口与系统的连接方式 DMA接口与系统的连接方式有两种 下图为具有公共请求线的DMA请求方式 若干个DMA接口通过一条公用的DMA请求线向CPU申请总线控制权 CPU发出响应信号用链式查询方式通过DMA接口 首先选中的设备获得总线控制权 即可占用总线与主存传送信息 上图是独立的DMA请求方式 每一个DMA接口各有一对独立的DMA请求线和DMA响应线 它由CPU的优先级判别机构裁决首先响应哪个请求 并在响应线上发出响应信号 被获得响应信号的DMA接口使可控制总线与主存传送数据 DMA接口中控制传送的硬件逻辑称为DMA控制器 DMA控制器与接口的连接应考虑以下因素 DMA控制器与接口是相互分离 还是合为一体 数据传送是经DMA控制器 还是经接口直接与存储器相连 系统中有多个DMA控制器时 采用公共DMA请求 还是采用独立DMA请求方式 一个DMA控制器控制多个I O设备时 是采用选择型工作方式 还是采用多路型工作方式 基于以上考虑的几种常见连接模式 1 单通道DMA控制器 一个DMA控制器只连接一台I O设备 并通常将DMA控制器与接口合为一体 传送的数据经由DMA控制器 2 选择型DMA控制器 一个DMA控制器连接 控制 多台I O设备 即 多台I O设备共享一个DMA控制器 一般采用DMA控制器与接口合为一体 传送的数据经由DMA控制器 选择型DMA控制器一般采用成组传送方式 分时为各设备服务 3 多路型DMA控制器 当一个DMA控制器连接 控制 的多台I O设备速度较慢时 让多个外设同时工作 以字或字节方式传送 使多个外设轮流交叉使用系统总线进行DMA传送 即为多路型DMA控制器 多路型DMA控制器一般采用与外设接口分离的连接方式 数据传送不经过DMA控制器 而是直接在内存与接口之间进行传送 DMA控制器只负责接收接口的请求信号 并向CPU提出DMA请求 在收到CPU的响应信号后 通知接口 DMA传送周期开始 DMA控制器与接口的连接关系如下图所示 多路型DMA与选择型DMA并无严格界限 当以单字 或字节 方式传送 各外设交叉占有总线时 为典型的多路型DMA 若按成组方式传送 各设备分时占有总线 即为选择性DMA DMA和中断的区别 1 中断方式是程序切换 需要保护和恢复现场 而DMA方式除了开始和结尾时 不占用CPU的任何资源 2 对中断请求的响应只能发生在每条指令执行完毕时 而对DMA请求的响应可以发生在每个机器周期结束时 3 中断传送过程需要CPU的干预 而DMA传送过程不需要CPU的干预 故数据传送速率非常高 适合于高速外设的成组数据传送 4 DMA请求的优先级高于中断请求 5 中断方式具有对异常事件的处理能力 而DMA方式仅局限于完成传送信息块的I O操作 六 通道控制方式1 基本知识通道是实现I O设备和主存之间直接交换数据的控制器 1 通道与DMAC的区别 DMAC是通过硬件控制逻辑实现对数据传送的控制通道是通过执行通道程序实现对数据传送的控制 DMAC通常只控制一台或少数几台同类设备通道可同时控制许多台同类或不同类的设备 2 通道控制方式的连接 通道承担数据的输入 输出控制 CPU负责数据处理 形成了通道与CPU分时使用内存的情况 大大提高了CPU与通道并行工作能力以及各个通道之间 同一通道控制的各个设备之间的并行工作能力 增减外部设备灵活 通道有自己的通道指令 通道地址 通道程序和通道状态字等 通道程序完全独立于主机之外 在通道内执行 通道的种类 按通道独立于CPU的程度来分 通道分为结合型通道和独立型通道 按数据传送方式来分 通常将通道分为以下三种 字节多路通道 选择通道和成组多路通道 结合型通道在硬件上与CPU做在一起 而独立型通道则硬件上独立于CPU 1 字节多路通道 字节多路通道采用字节交叉传送方式进行数据传送 适合于连接多个低速I O设备 在20K字节 秒以下 设备传送一个字节的时间相应较短 相邻字节之间数据准备时间较长 分时使用通道 轮流传送数据 实现多台I O设备间的并行 以提高通道利用率 字节多路通道由多个子通道构成 每个子通道并行工作 各服务于一个设备控制器 每个子通道中包含 字符缓冲器 状态 控制寄存器以及通道参量 如 字节计数值 内存地址 主存单元的地址指针等 2 选择通道 选择通道用于对高速设备进行控制 在一段时间内选择通道只执行一个设备的通道程序 采用 成组 方式传送 某个设备一旦被选中便独占通道 直到传送完毕才释放通道 所以传输速率高 选择通道可接多台同类设备 其数据宽度是可变的 通道中包含一个参数寄存器 用于记录I O操作所需的通道参量 3 数组多路通道 多台设备以定长数据块为单位分时使用传输通路 轮流传送数据块 这种通道称为成组多路通道 既允许各子通道间并行工作 又以独占方式成组地连续传送数据 因而具有很高的传输率 用于控制多台同类高速设备 2 具有多种通道的计算机系统结构 1 使用多个通道的优点 可以克服因数据流量大而集中于某一通道所造成的拥塞现象 可以实现对不同类型的外设分类管理 2 存储管理部件的主要任务存储管理部件是主存的控制部件 其主要任务是根据事先确定的优先次序 决定下一周期由哪个部件使用存储总线访问主存 3 各部件访问主存的优先次序通道与CPU同时要求访问主存 通道优先于CPU 多个通道同时要求访问主存 选择通道和数组多路通道的优先级高于字节多路通道 4 通道的功能通道的基本功能是执行通道程序 实施外设与主存的数据传送 按I O指令要求启动外设 向CPU报告中断等 接受CPU的I O指令 并按I O指令的要求与指定的外设进行通信 从主存选取属于该通道程序的通道指令 经译码后向设备控制器和外设发送各种命令 实现外设与主存之间的数据传送 提供信息传送通路 装配和拆卸信息 提供数据存入主存的地址和传送数据的计数值 从外设获取设备的状态信息 形成并保存通道本身的状态信息 根据要求把这些信息送到主存的指定单元 供CPU使用 将外设的中断请求和通道本身的中断请求按次序及时通知CPU 5 设备控制器的功能 从通道接受通道指令 控制外部设备完成所要求的操作 向通道反馈外设的状态 将外设的各种不同信号转换为通道能识别的标准信号 6 CPU对通道的管理 CPU对通道的控制通过两种途径 1 执行I O指令 当需要进行I O操作时 CPU按约定的格式准备好命令和数据 编制好通道程序 然后通过执行I O指令来启动通道 通道被启动后 从主存指定单元取出通道程序执行 I O指令是一种特权指令 在用户程序中不能使用 I O指令应给出通道开始工作所需的全部参数 I O指令和CPU的其他指令形式相同 由操作码和地址码组成 操作码表示执行何操作 地址码用来表示通道和设备的编号 CPU启动通道后 通道和外部设备将独立进行工作 2 处理来自通道的中断请求 当通道和外设发生异常或结束处理时 通道采用 中断 方式向处理器报告 通道的功能 通道在一定的硬件基础上利用软件手段实现对I O的控制和传送 更多地免去了CPU的介入 从而使主机和外设的并行工作程度更高 当然 通道并不能完全脱离CPU 它还要受到CPU的管理 而且通道还应该向CPU报告自己的状态 以便CPU决定下一步的处理 通道型I O处理机和外围处理机 通道结构的进一步发展 出现了两种计算机I O系统结构 通道结构的I O处理机 IOP 专用处理机 如网卡 显卡上的处理机 不独立于CPU工作 外围处理机 PPU PPU基本上是独立于主机工作的 它有自己的指令系统 完成算术 逻辑运算 读 写主存储器 与外设交换信息等 有的外围处理机干脆就选用已有的通用机 如双CPU服务器
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!