什么是DMA?

全部回答2
默认 最新
  • direct memory access(存储器直接访问)。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过cpu,也不需要cpu干预。整个数据传输操作在一个称为"dma控制器"的控制下进行的。cpu除了在数据传输开始和结束时做一点处理外,在传输过程中cpu可以进行其他的工作。这样,在大部分时间里,cpu和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。 dma的概念:dma是在专门的硬件( dma)控制下,实现高速外设和主存储器之间自动成批交换数据尽量减少cpu干预的输入/输出操作方式。通常有两种方式: ◎独占总线方式 ◎周期挪用方式 (2)dma的组成: ◎主存地址寄存器 ◎数据数量计数器 ◎dma的控制/状态逻辑 ◎dma请求触发器 ◎数据缓冲寄存器 ◎中断机构 (3)dma的传送数据的过程:由三个阶段组成 ◎传送前的预处理:由cpu完成以下步骤 向dma卡送入设备识别信号,启动设备,测试设备运行状态,送入内存地址初值,传送数据个数, dma的功能控制信号。 ◎数据传送:在dma卡控制下自动完成 ◎传送结束处理 dma 卡上应包括通用接口卡的全部组成部分,并多出如下内容: 主存地址寄存器,传送字数计数器,dma控制逻辑,dma请求,dma响应,dma工作方式,dma优先级及排队逻辑等 一次完整的dma传送过程: dma 预处理,cpu向dma送命令,如dma方式,主存地址,传送的字数等,之后cpu执行原来的程序 dma 控制在 i/o 设备与主存间交换数据: 准备一个数据, 向cpu发dma请求,取得总线控制权,进行数据传送,修改卡上主存地址,修改字数计数器内且检查其值是否为零,不为零则继续传送,若已为零,则向 cpu发中断请求. dma技术的弊端: 因为dma允许外设直接访问内存,从而形成对总线的独占。 这在实时性强的硬实时系统的嵌入式开发中将会造成中断延时过长。这在军事等系统中是不允许的。
    0 点赞
  • ?且恢挚焖俅?褪?莸幕?啤J?荽?菘梢源邮逝淇ǖ侥诖妫?幽诖娴绞逝淇ɑ虼右欢文诖娴搅硪欢文诖妗?MA技术的重要性在于,利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。在DMA传送开始的短暂时间内,基本上有两个处理器为它工作,一个执行程序代码,一个传送数据。利用DMA传送数据的另一个好处是,数据直接在源地址和目的地址之间传送,不需要中间媒介。如果通过CPU把一个字节从适配卡传送至内存,需要两步操作。首先,CPU把这个字节从适配卡读到内部寄存器中,然后再从寄存器传送到内存的适当地址。DMA控制器将这些操作简化为一步,它操作总线上的控制信号,使写字节一次完成。这样大大提高了计算机运行速度和工作效率。计算机发展到今天,DMA已不再用于内存到内存的数据传送,因为CPU速度非常快,做这件事,比用DMA控制还要快,但要在适配卡和内存之间传送数据,仍然是非DMA莫属。要从适配卡到内存传送数据,DMA同时触发从适配卡读数据总线(即I/O读操作)和向内存写数据的总线。激活I/O读操作就是让适配卡把一个数据单位(通常是一个字节或一个字)放到PC数据总线上,因为此时内存写总线也被激活,数据就被同时从PC总线上拷贝到内存中。对于每一次写操作,DMA控制器都控制地址总线,通知应将数据写到哪段内存中去。DMA控制数据从内存传送到适配卡的方法与上面类似。对每一个要传送的单位数据,DMA控制器激活读内存和I/O写操作的总线。内存地址被放到地址总线上,像从适配卡到内存传送数据一样,以数据总线为通道,数据从源地址直接传送到目的地址。DMA从DMA请求线(DREQ)上接收DMA请求,正像中断控制器从中断请求线(IRQ)上接收中断请求一样。一个典型的从适配卡到内存的数据传送是这样进行的,首先,对DMA控制器编程,写入数据要到达的内存地址和要传送的字节数。适配器可以开始传送数据时,它将激活DREQ线,与DMA控制器连通。DMA控制器在与CPU取得总线控制权后,输出内存地址,发送控制信号,使得一个字节或一个字从适配器读出并写入相应内存中,然后更新内存地址,指向下一个字节(或字)要写入的地址,重复上面的操作,直至数据传送完毕。对控制器进行不同编程,就可以实现单字节传送(即每传送一个字节都要求一个DREQ信号)或块数据传送(即全部数据传送只需要一个DREQ信号)。如果你要往计算机中插一块适配卡,而且适配卡使用DMA,通常安装程序会让你选择一个DMA通道,设定DIP开关或跳线,来为相应适配器设置DMA通道。尽管从理论上讲,只要不是同时使用DREQ线,不同的适配卡可以共享这条线的,但是按常规,我们最好为每个适配卡单独安排一个DMA通道,这样就可以保证不会发生DMA冲突。附表是DMA的缺省分配情况。通道 功能通道 功能 O 空闲 4 用于级联DMA控制器 1 空闲 5 空闲 2 软盘 6空闲3 空闲 7空闲从中可以看出,DMA通道2和4已被占用,在大多数微机上,通道1、3、5、6和7可由你任意分配。我们平时最好对自己的计算机上DMA通道的分配情况记录下来,以免我们向计算机增加新硬件时出现两个适配卡共用一个通道,导致冲突。
    0 点赞

没有更多内容了

返回顶部
产品求购 求购