DMA方式的工作过程DMA方式的工作原理

2021-03-07 17:03:53 字数 5525 阅读 7809

1楼:匿名用户

实现dma传送的基本操作如下:

1、外设可通过dma控制器向cpu发出dma请求;

2、cpu响应dma请求,系统转变为dma工作方式,并把总线控制权交给dma控制器;

3、由dma控制器发送存储器地址,并决定传送数据块的长度;

4、执行dma传送;

5、dma操作结束,并把总线控制权交还cpu。

扩展资料

dma方式下,为了控制外设和主存直接交换数据,需要有专门的数据传送控制电路,通常把这样的控制逻辑称为dma控制器。整个过程分以下三个阶段:

(1)dma控制器初始化

首先,对dma控制器和设备接口中的参数寄存器进行初始化,以设定主存首地址、传送数据个数、传送方向(读出/写入)、设备地址(如磁头号、磁道号、起始扇区号)等,这些初始化工作由cpu执行指令完成。初始化工作的最后是向外设接口发送启动读或写的命令。

(2)dma传送

外设接口接受到cpu送来的启动命令后,就开始控制设备进行读或写操作,当外设准备好数据以后,外设接口就会向dma控制器发送相应的“dma请求”信号。

dma控制器接受到该信号后,就会向cpu发送“总线请求”信号,要求cpu释放总线,请求由dma控制器控制总线以进行外设和主存之间的数据交换。cpu总是在一个总线事务结束后让出总线。

dma控制器每传送一个数据,就使数据个数计数器减1。当该计数器为0时,表示传送过程结束。此结束信号被送到外设接口,引起外设接口向cpu发送一个“dma传送结束”中断请求。

(3)dma结束处理。当cpu接收到“dam传送结束”中断请求后,就调出相应的中断服务程序进行dma结束处理。

2楼:匿名用户

(1)外设可通过dma控制器向cpu发出dma请求:

(2)cpu响应dma请求,系统转变为dma工作方式,并把总线控制权交给dma控制器;

(3)由dma控制器发送存储器地址,并决定传送数据块的长度;

(4)执行dma传送;

(5)dma操作结束,并把总线控制权交还cpu。

工作原理:

一个设备接口试图通过总线直接向另一个设备发送数据(一般是大批量的数据),它会先向cpu发送dma请求信号。外设通过dma的一种专门接口电路――dma控制器(dmac),向cpu提出接管总线控制权的总线请求,cpu收到该信号后,在当前的总线周期结束后,会按dma信号的优先级和提出dma请求的先后顺序响应dma信号。cpu对某个设备接口响应dma请求时,会让出总线控制权。

于是在dma控制器的管理下,外设和存储器直接进行数据交换,而不需cpu干预。数据传送完毕后,设备接口会向cpu发送dma结束信号,交还总线控制权。

用途:dma方式主要适用于一些高速的i/o设备。这些设备传输字节或字的速度非常快。

对于这类高速i/o设备,如果用输入输出指令或采用中断的方法来传输字节信息,会大量占用cpu的时间,同时也容易造成数据的丢失。而dma方式能使i/o设备直接和存储器进行成批数据的快速传送。

dma控制器或接口一般包括四个寄存器:状态控制寄存器、数据寄存器、地址寄存器和字节计数器。

这些寄存器在信息传送之前需要进行初始化设置。即在输入输出程序中用汇编语言指令对各个寄存器写入初始化控制字。

3楼:流年

预处理阶段

测试设备状态;向dma控制器的设备地址寄存器中送入设备号,并启动设备;向主存地址计数器中送入欲交换数据的主存起始地址;向字计数器中送入欲交换的数据个数 。

外部设备准备好发送的数据(输入)或上次接收的数据已处理完毕(输出)时,将通知dma控制器发出dma请求,申请主存总线。

数据传送

输入操作

①.首先从外部设备读入一个字(设每字16位)到dma数据缓冲寄存器iodr中(如果设备是面向字节的,一次读入一个字节,需要将两个字节装配成一个字)。

②.外部设备发选通脉冲,使dma控制器中的dma请求标志触发器置“1”。

③.dma控制器向cpu发出总线请求信号(hold)。

④.cpu在完成了现行机器周期后,即响应dma请求,发出总线允许信号(hlda),并由dma控制器发出dma响应信号,使dma请求标记触发器复位。此时,由dma控制器接管系统总线。

⑤.将dma控制器中主存地址寄存器中的主存地址送地址总线,

⑥.将dma数据缓冲寄存器中的内容送数据总线。

⑦.在读/写控制信号线上发出写命令。

⑧.将dma地址寄存器的内容加1,从而得到下一个地址,字计数器减1。

⑨.判断字计数器的值是否为“0”。若不为“0”,说明数据块没有传送完毕,返回⑤,传送下一个数据;若为“0”,说明数据块已经传送完毕,则向cpu申请中断处理。

输出操作

①.当dma数据缓冲寄存器已将输出数据送至i/o设备后,表示数据缓冲寄存器为“空”;

②.外部设备发选通脉冲,使dma控制器中的dma请求标志触发器置“1”;

③.dma控制器向cpu发出总线请求信号(hold);

④.cpu在完成了现行机器周期后,即响应dma请求,发出总线允许信号(hlda),并由dma控制器发出dma响应信号,使dma请求标记触发器复位。此时,由dma控制器接管系统总线;

⑤.将dma控制器中主存地址寄存器中的主存地址送地址总线,在读/写控制信号线上发出读命令;

⑥.主存将相应地址单元的内容通过数据总线读入到dma数据缓冲寄存器中;

⑦.将dma数据缓冲寄存器的内容送到输出设备;

⑧.将dma地址寄存器的内容加1,从而得到下一个地址,字计数器减1;

⑨.判断字计数器的值是否为“0”。若不为“0”,说明数据块没有传送完毕,返回到⑤,传送下一个数据;若为“0”,说明数据块已经传送完毕,则向cpu申请中断处理。

传送后处理

校验送入主存的数据是否正确。

决定是否继续用dma传送其他数据块。

测试在传送过程中是否发生错误。

dma方式的工作原理

4楼:华清远见

dma 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 cpu 的大量 中断 负载。否则,cpu 需要从** 把每一片段的资料复制到暂存器,然后把他们再次写回到新的地方。在这个时间中,cpu 对于其他的工作来说就无法使用。

dma 传输重要地将一个内存区从一个装置复制到另外一个。当 cpu 初始化这个传输动作,传输动作本身是由 dma 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。

像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。dma 传输对于高效能嵌入式系统算法和网络是很重要的。

pio模式下硬盘和内存之间的数据传输是由cpu来控制的;而在dma模式下,cpu只须向dma控制器下达指令,让dma控制器来处理数据的传送,数据传送完毕再把信息反馈给cpu,这样就很大程度上减轻了cpu资源占有率。dma模式与pio模式的区别就在于,dma模式不过分依赖cpu,可以大大节省系统资源,二者在传输速度上的差异并不十分明显。dma模式又可以分为single-word dma(单字节dma)和multi-word dma(多字节dma)两种,其中所能达到的最大传输速率也只有16.

6mb/s。

dma 传送方式的优先级高于程序中断,两者的区别主要表现在对cpu的干扰程度不同。程序中断请求不但使cpu停下来,而且要cpu执行中断服务程序为中断请求服务,这个请求包括了对断点和现场的处理以及cpu与外设的传送,所以cpu付出了很多的代价;dma请求仅仅使cpu暂停一下,不需要对断点和现场的处理,并且是由dma控制外设与主存之间的数据传送,无需cpu的干预,dma只是借用了一点cpu的时间而已。还有一个区别就是,cpu对这两个请求的响应时间不同,对程序中断请求一般都在执行完一条指令的时钟周期末尾响应,而对dma的请求,由于考虑它的高效性,cpu在每条指令执行的各个阶段之中都可以让给dma使用,是立即响应。

 dma主要由硬件来实现,此时高速外设和内存之间进行数据交换不通过cpu的控制,而是利用系统总线。dma方式是i/o系统与主机交换数据的主要方式之一,另外还有程序查询方式和中断方式。

5楼:匿名用户

一个设备接口试图通过总线直接向

另一个设备发送数据(一般是大批量的数据),它会先向cpu发送dma请求信号。外设通过dma的一种专门接口电路――dma控制器(dmac),向cpu提出接管总线控制权的总线请求,cpu收到该信号后,在当前的总线周期结束后,会按dma信号的优先级和提出dma请求的先后顺序响应dma信号。cpu对某个设备接口响应dma请求时,会让出总线控制权。

于是在dma控制器的管理下,外设和存储器直接进行数据交换,而不需cpu干预。数据传送完毕后,设备接口会向cpu发送dma结束信号,交还总线控制权。

实现dma传送的基本操作如下:

(1)外设可通过dma控制器向cpu发出dma请求:

(2)cpu响应dma请求,系统转变为dma工作方式,并把总线控制权交给dma控制器;

(3)由dma控制器发送存储器地址,并决定传送数据块的长度;

(4)执行dma传送;

(5)dma操作结束,并把总线控制权交还cpu。

用途:dma方式主要适用于一些高速的i/o设备。这些设备传输字节或字的速度非常快。

对于这类高速i/o设备,如果用输入输出指令或采用中断的方法来传输字节信息,会大量占用cpu的时间,同时也容易造成数据的丢失。而dma方式能使i/o设备直接和存储器进行成批数据的快速传送。

6楼:

一个设备接口试图通过总线直接向另一个设备发送数据(一般是大批量的数据),它会先向cpu发送dma请求信号。外设通过dma的一种专门接口电路――dma控制器(dmac),向cpu提出接管总线控制权的总线请求,cpu收到该信号后,在当前的总线周期结束后,会按dma信号的优先级和提出dma请求的先后顺序响应dma信号。cpu对某个设备接口响应dma请求时,会让出总线控制权。

于是在dma控制器的管理下,外设和存储器直接进行数据交换,而不需cpu干预。数据传送完毕后,设备接口会向cpu发送dma结束信号,交还总线控制权。

dma方式的主要优点是速度快。

由 于cpu根本不参加传送操作,因此就省去了cpu取指令、取数、送数等操作。在数据传送过程中,没有保存现场、恢复现场之类的工作。内存地址修改、传送字 个数的计数等等,也不是由软件实现,而是用硬件线路直接实现的。

所以dma方式能满足高速i/o设备的要求,也有利于cpu效率的发挥。 实现dma传送的基本操作如下:

1、外设可通过dma控制器向cpu发出dma请求;

2、cpu响应dma请求,系统转变为dma工作方式,并把总线控制权交给dma控制器;

3、由dma控制器发送存储器地址,并决定传送数据块的长度;

4、执行dma传送;

5、dma操作结束,并把总线控制权交还cpu。 dma方式主要适用于一些高速的i/o设备。这些设备传输字节或字的速度非常快。

对于这类高速i/o设备,如果用输入输出指令或采用中断的方法来传输字节信息,会大量占用cpu的时间,同时也容易造成数据的丢失。而dma方式能使i/o设备直接和存储器进行成批数据的快速传送。

dma控制器或接口一般包括四个寄存器:

1:状态控制寄存器、

2:数据寄存器、

3:地址寄存器、

4:字节计数器。

这些寄存器在信息传送之前需要进行初始化设置。即在输入输出程序中用汇编语言指令对各个寄存器写入初始化控制字。

抽背式汽轮机的工作原理是什么,抽背式汽轮机的工作原理

1楼 柒月黑瞳 抽汽背压式汽轮机是从汽轮机的中间级抽取部分蒸汽,供需要较高压力等级的热用户,同时保持一定背压的排汽,供需要较低压力等级的热用户使用的汽轮机。这种机组的经济性与背压式机组相似,设计工况下的经济性较好,但对负荷变化的适应性差。 性能特点 1 适用于各种进汽参数 抽汽参数。 2 广泛用于自...

背压式汽轮机的工作原理,背压式汽轮机的结构与工作原理?

1楼 背压式是以大气压力为标准的,排汽压力高于大气压 其与凝汽式本质区别是背压较高,所以排汽比容相对同等级机组较小,末级叶片相对较短,汽缸等通流部件相较偏小。 一般来说,排汽有其他用途,比如供热。 2楼 江淮一楠 背压式汽轮机的排汽压力高 蒸汽的焓降较小 与排汽压力很低的凝汽式汽轮机相比,发出同样的...

背压式汽轮机的结构与工作原理,背压式汽轮机有什么工作原理?

1楼 匿名用户 汽轮机的工作原理是 进入汽轮机的具有一定压力和温度的蒸汽,流过由喷嘴 静叶片和动叶片组成的蒸汽通道时,蒸汽发生膨胀,从而获得很高的速度,高速流动的蒸汽冲动汽轮机的动叶片,使它带动汽轮机转子按一定的速度均匀转动。 按热力学过程不同汽轮机可以分为 凝汽式 排气压力低于大气压力 背压式 排...