- 1、本文档共115页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 互连及输入输出组织
DMA方式结构 DMA方式下的系统逻辑结构 DMA控制器的功能 DMA数据传送过程由DMA接口的控制逻辑完成,所以DMA 接口也称DMA控制器。其功能为: (1) 请求。能接收外设发来的“DMA请求”信号,并能向CPU发“总线请求”信号。 (2) 响应。当CPU发出“总线响应”信号响应请求后,能接管对总线的控制。 (3) 修改主存地址。能在地址线上给出主存地址,并自动修改主存地址。 (4) 识别传送方向。能识别传送方向以在控制线上给出正确的读写控制信息。 (5) 确定传送数据个数。 (6) 能发出DMA结束信号。引起一次DMA中断,进行数据校验等一些后处理。 DMA控制器的操作步骤 DMA操作步骤 (1) DMA控制器的预置(初始化)----软件实现 准备内存 设置参数 启动外设 (2) DMA数据传送----硬件实现 DMA请求:选通-〉DMA请求-〉总线请求 DMA响应:总线响应(CPU让出总线)-〉DMA响应 DMA传送:DMA控制总线进行数据传送 (3) DMA结束处理----软件实现 根据计数值为“0”,发出DMA结束信号去接口控制产生 DMA中断请求信号,转入中断服务程序,做一些数据校 验等后处理工作。 SKIP DMA控制器的初始化 DMA控制器的预置(初始化) 准备内存区 * 输入:在内存设置好缓冲区 * 输出:先在内存准备好数据 设置传送参数 执行I/O指令,测试外设状态,对DMA控制器设置各种参数: * 内存首址=〉地址寄存器 * 字计数值=〉字计数器 * 传送方向=〉控制寄存器 * 设备地址=〉设备地址寄存器 启动外设,然后执行其他程序 BACK DMA传输过程 DMA的结构 DMA传输过程 当外设准备好数据,或准备好接收数据时,发“选通”信号,使数据送数据缓冲寄存器,同时DMA请求触发器置“1”。 DMA请求触发器向控制/状态端口发“Ready”信号,同时向DMA控制器发“DMA请求”信号。 DMA控制器向CPU发“总线请求”信号。 CPU完成现行机器周期后,响应DMA请求,发出“总线响应”信号。DMA控制器接受到该信号后,发出“DMA响应”信号,使DMA请求触发器复位。此时,CPU浮动它的总线,让出总线控制权,由DMA控制器控制总线。 DMA控制器给出内存地址,并在其读/写线上发出“读”或“写”命令,随后在数据总线上给出数据。 根据读写命令,将数据总线上的数据写入存储器中,或写入数据端口,并进行主存地址增量,计数值减1, 若采用“CPU停止法”,则循环第6步,直到计数值为“0”。 若采用“周期挪用法”,则释放总线(下次数据传送时再按过程(1)到(6)进行)。 BACK DMA方式和中断方式的区别 DMA方式下数据传送由硬件(DMA控制器)完成;中断方式下,数据传送由软件(CPU执行中断服务程序)完成。 DMA请求的是对存储器访问,也即对总线控制权的请求,没有中止现行程序的必要;而中断请求要处理器转去执行中断服务程序,因此要中止现行程序,保存断点、现场等。 中断除了能完成外设和主机的数据交换,还能处理异常事件;而DMA方式下不能处理异常事件。 中断响应在一个指令周期结束后;而DMA响应是在一个总线周期后。 DMA方式用于高速设备;而中断方式用于低、慢速设备。 DMA方式下,外设与CPU并行度高;而中断方式下,外设与CPU并行度低。(体现在数据传送时的并行性) 例:中断、DMA方式下CPU的开销 设处理器按500MHz的速度执行,硬盘控制器中有一个16B的数据缓存器,磁盘传输速率为4MB/Sec,在磁盘传输数据过程中,要求没有任何数据被错过,并假定CPU访存和DMA访存没有冲突 (1)若用中断驱动I/O,每次传送的开销(包括用于中断响应和处理的时间)是500个时钟周期。如果硬盘仅用5%的时间进行传送,那么处理器用在硬盘I/O操作上所花的时间百分比(主机占用率)为多少? (2)若用DMA方式,处理器花1000个时钟进行DMA传送的初始化设置,并且在DMA完成后的中断处理需要500个时钟。如果每次DMA传送8000B的数据块,那么当硬盘进行传送的时间占100%(即:硬盘一直进行读写,并传输数据)时,处理器用在硬盘I/O操作上的时间百分比(主机占用率)为多少? 想象一下:假定大仓库门口有一个箱子,可放16个零件。要将大仓库中的一批零件运到小仓库中,可以有几种方法? 中断方式:每装满一个箱子就喊车床上的技工来运到车间,再从车间运到小仓库 DMA方式:车床技工停下来告诉搬运工说,一次要8000个零件放到小仓库固定的地方,然后回到车床工作;搬运工开始分两组工作,一组从大仓库
文档评论(0)