- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8.3 DMA方式8.3.1 DMA方式的基本概念
一、DMA方式的定义
(请看P.286):是一种完全由硬件执行I/O交换的工作方式。在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行。DMA方式一般用于高速传送成组数据。
二、DMA方式的特点
优点:速度快;
缺点:硬件线路复杂。
三、DMA控制器的基本操作
(请看P.286):
第一页,共二十四页。
外设发出DMA请求;
CPU响应请求——交出总线控制权;
DMAC对内存寻址,对数据传送个数进行计数,并执行数据传送操作;
向CPU报告DMA操作的结束——交还总线控制权。
四、DMA操作中的软硬件分工软件:负责数据传送前的准备工作,结束后的处理工作;硬件:负责数据传送。
8.3.2 DMA传送方式
——CPU和DMAC访存冲突的裁决方式。
常用的方式有以下三种:
第二页,共二十四页。
一、停止CPU访问内存
外设要求传送一批数据时,由DMAC发请求信号,要求CPU出让总线使用权;之后DMAC独占内存进行批量的数据传送;一批数据传送完毕后,DMAC才把总线控制权交还给CPU。
控制简单,但CPU可能因无法访存而处于暂停状态。——指令Cache和数据Cache的作用。
内存工作
时间
CPU控制并
使用内存
DMA控制
并使用内存
CPU暂停访问内存的示意图
t
第三页,共二十四页。
二、周期挪用(窃取)
CPU按程序访问内存,一旦I/O设备有DMA请求,则由DMAC挪用一个存取周期;也有总线使用权的交换。
周期挪用时的两种情况:内存争用与否;有冲突则DMA优先,但影响CPU效率——
可以用指令预取的办法降低争访的几率。
既实现了I/O传送,又较好地发挥了CPU和内存的效率。请求、响应及总线使用权频繁转换会使效率下降。
内存工作
时间
CPU控制并
使用内存
DMA控制
并使用内存
周期挪用方式的示意图
t
第四页,共二十四页。
三、DMA与CPU交替访问内存
CPU和DMAC轮流(分时)使用总线,没有使用权的申请、出让、归还这一类问题(透明的DMA方式);适用于CPU工作周期比内存存取周期长得多的情况,以便在两次CPU访问内存之间有一段空闲给DMAC使用。
实际是将CPU工作周期一分为二,CPU和DMA各DMA传送和CPU同时发挥最高效率,但控制逻辑复杂。也存在资源浪费。
内存工作
时间
CPU控制并
使用内存
DMA控制
并使用内存
DMA与CPU交替访问的示意图
t
第五页,共二十四页。
例1:解释周期挪用,分析周期挪用可能出现的几种情况。
解答:解释名词。
周期挪用可能会出现三种情况:
(1)I/O设备有DMA请求时,CPU正在进行自身的操作,并不需要访内;
(2)访内冲突——I/O设备的DMA请求优先 ;
(3)I/O设备有DMA请求时,存储器正处于“忙”(R/W)状态——必须等CPU存取结束后才能进行DMA访内。
第六页,共二十四页。
8.3.3 基本的DMA控制器
一、DMA控制器的基本组成——P.289图8.12
1、寄存器组:五个主要寄存器
(1)DMA传送的内存地址寄存器;
(2)数据缓冲寄存器;
(3)DMA传送的数据字数寄存器;
(4)外围设备地址寄存器,存放I/O设备的设备码或表示设备信息存储区的寻址信息;
(5)控制与状态寄存器。
2、中断控制逻辑
3、DMA请求标志触发器
4、传输线
第七页,共二十四页。
①
系统总线
内存
CPU
MAR
MDR
中断机构
控制/状态逻辑
内存地址计数器
字计数器
数据缓冲寄存器
设备选择
0 1
DMA请求
标志
HOLD
HLDA
⑤
⑥
DMA响应
DMA请求
④
⑦
⑧
+1
+1
⑨
溢出信号
⑩
中断请求
地址线
⑧
数据线
设备控制器
设 备
数据
③
③
一个字传送
结束信号
②启动设备
简单的DMA控制器组成框图
第八页,共二十四页。
二、DMA数据传送过程(周期挪用方式)
(参看P.290图8.13)
DMA请求
DMA响应
发送内存地址
传送一个字数据
检测传送
是否结束?
归还总线使用权
修改地址指针和字计数器
是
否
DMA传送数据的流程图
开始
传送前预处理
数据传送
传送后处理
结束
DMA传送
第九页,共二十四页。
1、DMA传送前的预处理
CPU用程序为DMA传送做准备——(中断初始化及)对DMAC的初始化:
(1)设备地址→DAR(设备地址寄存器)
(2)内存中DMA缓冲区首地址→内存地址计数器
(3
原创力文档


文档评论(0)