《计算机组成原理第七章输入输出系统[四].ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第七章输入输出系统[四].ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第七章 输入 输出系统 7.1 输入输出系统概述 7.3 程序中断方式 7.4 DMA方式 7.2 程序查询方式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)对中断请求的响应时间
2、只能发生在每条指令执行完毕时;而对DMA请求的响应时间可以发生在每个机器周期结束时;取指令取源操作数 取目的操作数 执行图7.24 两种请求的响应时刻比较DMA断点中断断点 2、DMA和中断的区别(3)DMA请求的优先级高于中断请求;(4)程序中断具有实时处理异常事件的能力,而DMA方式仅用于实现外设与主存之间的数据块传送.(5)中断传送过程需要CPU的干预;而DMA方式传送过程不需要CPU的干预,所以数据传送速率高,适合于高速外设的成组数据传送.7.4.2 DMA接口(DMA控制器DMAC)1、DMA控制器的功能(1)接受外设发出的DMA请求,并向CPU发出总线请求;(2)当CPU响应总线请
3、求并发出总线响应信号后,接管对总线的控制,进入DMA操作周期;(3)确定传送数据的主存单元地址及传送长度,并能自动修改主存地址计数器和传送长度计数器;(4)规定数据在主存与外设之间的传送方向,发出读写或其他控制信号,并执行数据传送的操作;(5)向CPU报告DMA操作的结束.7.4.2 DMA接口(DMA控制器DMAC)2、DMA控制器的基本组成(1)寄存器组:四个主要寄存器 主存地址计数器:存放待交换数据的主存地址.其初值为主存缓冲区首地址,当DAM传送时,每传送一个数据,地址计数器加1,直到这批数据传送完为止;字计数器:纪录传送数据块的长度.初始时将待传送的字数或字节数求补后送计数器,每传送
4、一个字或一个字节,计数器加1,当计数器溢出时,表示数据传送完毕;数据缓冲寄存器:暂存放每次传送的数据;外围设备地址寄存器:存放I/O设备的设备码或表示设备信息存储区的寻址信息;7.4.2 DMA接口(DMA控制器)2、DMA控制器的基本组成(2)控制/状态逻辑:由状态标志和控制逻辑电路组成,发出各种控制信号,用于指定传送方向、修改主存地址计数器和字计数器、并对DMA请求信号和CPU响应信号进行协调同步;(3)DMA请求触发器:每当外设准备好数据后给出一个控制信号,使DMA触发器置位;(4)中断机构:当一个数据块传送完毕后触发中断机构,向CPU提出中断请求,CPU将进行DMA传送的结尾处理.一个
5、简单的 DMA控制器如图7.25所示:系统总线内存 CPUMARMDR中断机构控制/状态逻辑内存地址计数器字计数器数据缓冲寄存器 设备选择0 1 DMA请求触发器HOLD(总线请求)HLDA(总线响应)DMA响应DMA请求+1+1溢出信号中断请求地址线数据线设 备数据 7.25 简单的DMA控制器组成框图DMAC返回 2、DMA控制器的数据传送过程 DMA的数据传送过程分为3个阶段:DMA传送前的预处理、数据传送和传送后的结束处理,如图7.26(a)所示.(1)传送前的预处理 需要CPU来完成(软件方式):CPU在对DMA控制器编程,实施必要的初始化操作:测试外设的状态;设置数据的传送方向;设
6、置主存起始地址;设置数据传输个数;向DMA设备地址寄存器送入设备号,并启动外设.2、DMA控制器的数据传送过程 之后,CPU 继续执行原程序,在外设准备好发送的数据(输入)或接收的数据(输出)已经处理完毕,外设向DMA 控制器发出DMA 请求,进入下一阶段-数据传送.(2)数据传送 DMA数据传送流程图示于图7.26(b).下面以外设将一个数据块写入主存的操作为例,简述DMA的数据传送过程(结合图7.25):外设给出一个控制信号使DMA请求触发器置位;DMA请求触发器向控制状态逻辑发DMA请求;DMA控制器向CPU发出总线请求信号HOLD;CPU接到该请求后,在正在执行的指令的当前机器周期结束
7、时响应该请求,并向DMA控制器发发总线响应信号HLDA,表示DMAC已经获得总线控制权;控制状态逻辑将DMA请求触发器置0;DMAC向外设发出DMA响应信号;将外设数据读入数据缓冲寄存器;DMA控制器按照主存地址计数器的内容发出地址信号作为主存地址的选择,数据缓冲寄存器中的内容在DMAC发出的写信号的控制下经数据线写入指定单元;内存地址计数器、字计数器增1;判断字计数器是否溢出,若未溢出,则重复;如溢出,则停止传送,向CPU发结束中断请求.(3)传送后处理 DMA的中断请求得到响应,CPU停止原程序的执行,转去执行中断服务程序,包括:校验送入主存的数据是否正确;若继续交换数据,则对DMA控制器
8、进行初始化;若不需交换数据,则停止外设等.DMA请求DMA响应发送内存地址传送一个字数据检测传送是否结束?向CPU申请程序中断修改地址指针和字计数器是否图7.26 DMA传送数据的流程图传送前预处理数据传送传送后处理CPU继续执行主程序(a)数据传送的三个阶段(b)第二阶段的数据传送过程 7.4.3 DMA传送方式 问题:DMAC和CPU如何分时使用系统总线和主存?1、CPU停止法 当外设要求传送一批数据时,由DMAC 发出一个总线请求信号.DMAC获得总线控制权后,进行数据传送.期间,CPU一直处于保持状态直至整块数据传送完毕.图7.27(a)为该方法的时间图:内存工作时间CPU控制并使用主
9、存DMAC控制并使用主存DMA不工作DMA工作DMA不工作图7.27 DMA传送方法(a)CPU停止法的优点:控制简单,减少系统总线控制权的交换次数;缺点:CPU在较长一段时间内原地踏步,适用于高速成组数据传送,可以减少系统总线控制权的交换次数,有利于提高输入输出的速度.适用于:外设的数据传输率接近主存工作速度(否则内存效能不能充分发挥,例如软盘读一个8位二进制数大约需要32us,而半导体存储器的存取周期远小于1us.)且成组传送.内存工作时间CPU控制并使用主存DMAC控制并使用主存DMA不工作DMA工作DMA不工作图7.27 DMA传送方法(a)2、总线周期分时法DMAC与CPU交替访问主
10、存:把原来的一个存取周期分为两个时间片,一片分给CPU,一片分给DMA.优点:无需经过总线控制权的申请、建立和归还过程.传送效率高,称为“透明的DMA”.缺点:相应硬件逻辑复杂.内存工作时间CPU控制并使用主存DMAC控制并使用主存图7.27 DMA传送方法(b)3、总线周期挪用法 前两种方法的折中:当外设有DMA请求时,由DMAC挪用一 个 主 存 周 期;然 后 DMA立 即 将 总 线 控 制 权 交 还CPU,CPU将继续刚才被暂停的工作并等待下一个DMA请求的到来.重复上述过程直至数据块传送完毕.适用于:主存工作速度高于外设较多时,可提高主存利用率(如“CPU停止法”中的例子).内存
11、工作时间CPU控制并使用主存DMAC控制并使用主存图7.27 DMA传送方法(c)例:某计算机的CPU主频为500MHZ,CPI为5(即每条指令平均需要5个时钟周期).假定某外设的数据传输率为0.5MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间.请回答下列问题,要求给出计算过程.(2)当该外设的数据传输率达到5MB/s时,改用DMA方式传输数据,假定每次DMA传送块大小为5000B,且DMA预处理和后处理的总开销为500个时钟周期,则CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?(假定DM
12、A与CPU之间没有访存冲突)解:外设数据传输率提高到5MB/s时,1秒内需产生的DMA次数:5MB/5000B=1000 CPU用于DMA处理的总开销:1000500=500 000=0.5M个时钟周期 CPU用于外设I/O的时间占整个CPU的时间百分比:0.5M/500M=0.1%例:假定硬盘传输数据以32位的字为单位,传输率为1MB/s,CPU的时钟频率为50MHz.请比较采用以下三种I/O方式实现该硬盘I/O的可能性.(1)程序查询方式:一个查询操作需要100个时钟周期,求CPU为I/O查询所花费的时间比率,假定必须进行足够查询以避免数据丢失.解答:(1)根据题意可知:传输率为:1MB/
13、s=0.25M字/s 需执行中断服务程序0.25M次,花费时钟周期数0.25M100=25M CPU为I/O查询所花费的时间比率为:25M/50M=1/2=50%采用程序查询方式不可取4、假定硬盘传输数据以32位的字为单位,传输率为2MB/s,CPU的时钟频率为50MHz。请比较采用以下三种I/O方式实现该硬盘I/O的可能性。(2)程序中断方式。每次传输的开销(包括中断处理)为100个时钟周期,求CPU为传输数据所花费的时间比例。解:程序中断方式,CPU为I/o查询所花费的时间比率为:100%结论:采用程序中断方式亦不可取。4.假定硬盘传输数据以32位的字为单位,传输率为2MB/s,CPU的时
14、钟频率为50MHz。请比较采用以下三种I/O方式实现该硬盘I/O的可能性。(3)采用DMA方式。假定DMA的启动操作需要1000个时钟周期,DMA完成处理时中断需要500个时钟周期,如果平均传输的数据长度为4KB。问在硬盘工作时处理器将用多少时间比例进行I/O操作,忽略DMA申请使用总线的影响。解答(3):平均传输的数据长度为4KB,传送时间次数为2MB/4KB=500次,而DMA的启动操作需要1000个时钟周期,DMA完成处理时中断需要500个时钟周期,CPU在DMA传送期间花费时钟周期数(1000+500)500=750K(个),CPU为DMA所花费的时间比率为:750K/50M=1.5%结论:适于采用DMA方式