ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

I/O设备——DMA方式

2022-04-02 07:00:15  阅读:706  来源: 互联网

标签:DMA 传送 方式 主存 总线 数据 CPU 设备


DMA方式:设备需要进行数据传送时,通过DMA控制器(DMA接口)向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送。
主存和DMA接口之间有一条数据通露,因此主存和设备交换信息时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场,因此工作速度比程序屮断方式的工作速度高。这一特点特别适合于高速I/O或辅存与主存之间的信息交换。因为高速IO设备若每次申请与主机交换信息时,都要等待CPU做出中断响应后再进行,很可能因此使数据丢失。值得注意的是,若出现高速IO设备(通过DMA接口)和CPU同时访问主存,CPU必须将总线(如地址线、数据线)占有权让给DMA接口使用,即DMA采用周期窃取的方式占用一个存取周期。

主要功能有:
传送前:
1.接受外设发出的DMA请求,并向CPU发出总线请求。
2.CPU响应此总线请求,发出总线响应信号,接管总制权,进入DMA操作周期。
传送时:
3.确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
4.规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
传送后:
5.向CPU报告DMA操作的结束。

组成:
1.主存地址计数器AR:存放要交换数据的主存地址
2.传送长度计数器WC:记录传送数据的长度,计数溢出时,数据即传送完毕,自动发中断请求信号。
3.数据缓冲寄存器:暂存每次传送的数据
4.DMA请求触发器:每当设备准备好数据后给出一个控制信号,使DMA请求触发器置位。
5.控制/状态逻辑:由控制和时序电路及状态标志组成,用于指定传送万向,修改传送参数,并对DMA请求信号和CPU响应信号进行协调和同步
6.中断机构:当一个数据块传送完毕后触发中断机构,向CPU提出中断请求。
注:在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用。而当DMA传送结束后,将恢复CPU的一切权利并开始执行其操作。

DMA方式中CPU的工作:
1.预处理:
主存起始地址→AR
I/O设备地址→DAR
传送数据个数→WC
启动I/O设备
2.数据传送:
继续执行主程序同时完成一批数据的传送
3.后处理:
中断服务程序做DMA结束处理

DMA的数据传送阶段:
1.预处理:DMA请求
2.数据传送:主存起始地址送总线;数据送I/O设备(或主存);修改主存地址;修改字计数器
3.后处理:向CPU申请程序中断

以数据输人为例,具体操作如下。
1.当设备准备好一个字时,发出选通信号,将该字读到DMA的数据缓冲寄存器(BR)中,表示数据缓冲寄存器“满"
2.与此同时设备向DMA接囗发请求(DREQ)。
3.DMA接囗向CPU申请总线控制权(HRQ)。
4.CPU发回HLDA信号,表示允许将总线控制权交给DMA接囗。
5.将DMA主存地址寄存器中的主存地址送地址总线,并命令存储器写。
6.通知设备已被授予一个DMA周期(DACK),并为交换下一个字做准备。
7.将DMA数据缓冲寄存器的内容送数据总线。
8.主存将数据总线上的信息写至地址总线指定的存储单元中。
9.修改主存地址和字计数值。
10.判断数据块是否传送结束,若未结,则继续传送;若已结,(字计数器溢出),则向CPU申请程序中断,标志数据块传送结束。

若为输出数据,则应完成以下操作:
1.当DMA数据缓冲寄存器已将输出数据送至IO设备后,表示数据缓冲寄存器已“空"
2.设备向DMA接冂发请求(DREQ)。
3.DMA接口向CPU申请总线控制权(HRQ)。
4.CPU发回HLDA信号表示允许将总线控制权交给DMA接口使用。
5.将DMA主存地址寄存器中的主存地址送地址总线,并命令存储器读。
6.通知设备已被授予一个DMA周期(DACK),并为交换下一个字做准备。
7.主存将相应地址单元的内容过数据总线读入到DMA的数据缓冲寄存器中。
8.将DMA数据缓冲寄存器的内容送到输出设备
9.修改主存地址和字数值。
10.判断数据块是否已传送完毕,若未完毕,继续传送;若已传送完毕,则向CPU申请程序中断。

DMA的传送方式:
主存和DMA控制器之间有一条数据通路,因此主存和设备之间交换信息时,不通过CPU。但当设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方法使用主存。
1.停止CPU访问主存:控制简单,CPU处于不工作状态或保持状态,未充分发挥CPU对主存的利用率
2.DMA与CPU交替访存:一个CPU周期分为两个周期,分别共二者使用,不需要总线使用权的申请、建立和归还过程,硬件逻辑更为复杂
3.周期窃取(存储周期):DMA访问主存有三种可能:
CPU此时不访存(不冲突)
CPU正在访存(存取周期结束让出总线)
CPU与DMA同时请求访存(I/0访存优先)

DMA特点:
主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,IO与主机并行工作,程序和传送并行工作。
DMA方式具有下列特点:
1.它使主存与CPU的固定联系脱钩,主存既可被CPU问,又可被外设访问。
2.在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
3.主存中要开辟专用缓冲区,及时供给和接收外设的数据。
4.DMA传送速度快,CPU和外设并行工作,提高了系统效率。
5.DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。











标签:DMA,传送,方式,主存,总线,数据,CPU,设备
来源: https://www.cnblogs.com/LXZYZDCZL/p/16089977.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有