DMA传输原理ppt

合集下载

dma传输基本原理

dma传输基本原理

dma传输基本原理DMA(Direct Memory Access)传输是一种计算机系统中常用的数据传输方式。

它通过绕过CPU,直接在外设和主存之间进行数据传输,提高了数据传输效率,减轻了CPU的负担。

DMA传输的基本原理是,在外设和主存之间建立一条专用的数据通路,通过DMA控制器来管理数据传输。

在传统的IO方式中,数据的传输需要通过CPU进行中转,即CPU从外设读取数据,然后再将数据写入主存。

这种方式效率较低,且占用了CPU的大量时间和资源。

而在DMA传输中,数据传输的过程可以分为三个步骤:首先,外设将数据传输请求发送给DMA控制器;然后,DMA控制器将请求转发给主存,并通过总线控制器将数据从外设读取到DMA缓冲区;最后,DMA控制器将数据从DMA缓冲区写入主存,或者从主存读取数据写入外设。

在这个过程中,CPU的作用主要是对DMA控制器进行初始化和设置,以及在数据传输完成后进行处理。

具体来说,CPU需要设置DMA控制器的起始地址、目的地址、传输长度等参数,然后启动DMA传输。

传输过程中,CPU可以自由进行其他任务,而不需要关注数据传输的具体细节。

使用DMA传输的好处有很多。

首先,它可以大大提高数据传输的效率。

由于数据传输直接在外设和主存之间进行,无需经过CPU的中转,减少了数据传输的延迟。

其次,DMA传输可以减轻CPU的负担,释放出更多的计算资源。

在大量数据传输的场景下,使用DMA传输可以提高系统的整体性能。

除了提高数据传输效率和减轻CPU负担外,DMA传输还具有其他一些特点。

首先,DMA传输是一种异步的传输方式,即外设和主存之间的数据传输可以独立于CPU的运行。

这意味着,在DMA传输过程中,CPU可以同时执行其他任务,提高了系统的并发性。

其次,DMA传输可以支持不同类型的外设,包括硬盘、网卡、显卡等。

这使得系统具有更好的扩展性和兼容性。

然而,DMA传输也存在一些限制和问题。

首先,DMA传输需要占用一部分内存空间作为DMA缓冲区,这会降低可用内存的大小。

DMA技术

DMA技术

地址增量
D5=1 地址加1 =0 地址减1
注意:
询问传送:
每传送一个字节之后,要检测(询问)DREQ是否有 效,若无效,则“挂起”但不释放总线,若有效,继 续传送直至字节计数器为0。 单一方式: 通道启动一次,只传送一个数据,传送完就 释放系统总线交还CPU,并且: 当前地址寄存器+1(-1) 当前字节计数器+1(-1) 成组(块)传送: 启动一次可把整个数据块传送完,并且,当前字 节计数器减到0,产生EOP_信号,释放总线。
注意:
系统允许多个DREQ信号,同时有效,即可以几个I/O同时 提出申请。但同一个时间,只能有一个DACK信号有效。
(3)总线请求和应答: HRQ和HLDA
(4)读写控制: IOR-
IOW- MEMR- MEMW;
(5) 地址线:A0- A7 A3~A0:地址总线低4位,双向。当CPU控制总线时,它们是 地址输入线。CPU用这4条地址线对DMA控制器的内部寄存器进 行寻址,完成对DMA控制器的编程。当8237A控制总线时,由 这4条线输出要访问的存储单元的最低4位地址。 A7~A4: 地址线,输出,只用于在DMA传送时,输出要访问的 存储单元的低8位地址中的高4位。 (6) 双向数据线:DB0-7,既是数据线,又是16位地址线的高8位。
6.2 DMA控制器
一. DMAC在系统中的工作状态: 主动态(主控器): 接管并取得总线控制权,取代CPU而成为 系统的主控者。 被动态(受控器): 未取得总线控制时,受CPU的控制。
DMAC I/O R/W RAM DMA CPU
3. 传送顺序
I/O ①DREQ DMA ②HRQ CPU ③HLDA DMA ④DACK I/O
DMA传送的基本原理图

DMA传输原理

DMA传输原理

15
+5V HOLD HLDA CLK 使微处理器地址锁存信号无效 1 EN 锁存缓冲器 STB 连接数据总线 M/IO A8~A15 HRQ HLDA CLK AEN ADSTB 方式寄存器 DB0~7 基本地址寄存器 基本字节计数器 CS A4~A7 A0~A3 1 2 通道0 DREQ0 DACK0 DREQ1 DACK1 DREQ2 DACK2 DREQ3 DACK3 EOP 16 当前地址寄存器 当前字节计数器 地 控制寄存器 状态寄存器 暂存寄存器 公 共 部 份 电源 IOR IOW MEMR MEMW READY 1:请求触发器 2:屏蔽触发器
24
6.2.3 8237A的对外连接信号
8237A作为从模块时的引脚信号(1)
RESET—复位输入端,高电平有效。复位时,屏蔽寄存器 被置1,其他寄存器均清0。 CS# ——片选输入端,低电平有效,由A4~A15译码得到。 为低电平时,8237A被选中,CPU可以对8237A进 行读写(进行预置或读取工作状态)。 A3~A0—最低的4位地址线,双向信号引脚。DMA控制器 作为从模块时,A3~A0作为输入端,用来选择 DMAC内部的16个端口地址。
在DMA传送之前,8237A从DB0~DB7把存储器地址 的A8~A15送入这个锁存器。
在DMA周期里,锁存器将锁存的地址送往系统地址 总线的A8~A15,同时从A0~A7引脚发送地址的低八位。
23
5. 页面地址寄存器(外接)
8237A控制了地址总线的16位,所以最多只能连续传 送64K字节的数据。 为了控制8086系统20位的物理地址,需要外接一个四位 的“页面地址寄存器”(PC机地址:83H) 页面地址寄存器的值由CPU写入 8237A发送低16位地址时,高四位的地址从页面地址寄 存器发往地址总线的A16~A19

8第八章 DMA 8237控制器

8第八章 DMA 8237控制器

0 0 0 0
0 1 0 1
A0~A7 A8~A15 A0~A7 A8~A15 W0~W7 W8~W15 W0~W7
写 读
0 0 0 0
1 1 0 0
0 0 1 1
0 0 0 0
0 0 0 0
1 1 1 1
1 1 1 1
0 1 0 1
W8~W15
第八章
DMA技术
8237通道寄存器寻址
通 道

寄存器 操作

CS IOR IOW A3 A2 A1 A0
内部先/ 后触发 器
数据总线
基本地 址寄存 器

2
当前地 址寄存 器
基本字 节计数 器 当前字 节计数 器

0 0 0 0 0 0 0 0
1 1 0 0 1 1 0 0
第八章
DMA技术
4.8237A各寄存器对应的端口地址(戴P268 )
表8-1 操作命令与有关信号的对应关系
CS
0 0 0
A3 A2 A1 A0
1 1 1 0 0 0 0 0 0 0 0 1
IOR IOW
0 1 1 1 0 0


读状态寄存器 写控制寄存器 写DMA请求标志寄存器
0
0 0
1
1 1
0
0 1
8237A在传送时有四种工作模式
① 单字节传送模式(戴P262 ) ② 块传送方式(戴P262 ) ③ 请求传送模式(戴P262)④级连传输模式 (戴P262)
在这种传送模式下,8237A可以进行连续的数据传送。当出现以下三种 情况之一时停止传送: a.字节计数器减到0,产生DMA传输结束信号,在线上输出一个有效脉冲。 b.由外界送来一个有效的信号 EOP 。 c.外界的DREQ信号变为无效(外设来的数据已送完)。

DMA传输原理..

DMA传输原理..
11
(3)请求传输方式
• 申请一次总线可以连续进行多个数据的传输。
• 每传输1个字节后,8237A都对外设接口的请求信号 进行测试:
DREQ端无效,暂停传输;
DREQ有效,接着进行下一个数据的传输。
• 允许数据不连续,按照外设的最高速度进行数据传输, 使用比较灵活。
12
(4)级联传输方式
• 几个8237A进行级联,一片8237A用作主片,其余用 作从片,构成主从式DMA系统。 • 从片收到外设接口的DMA请求信号后,向DMA控制器 主片申请,再由主片向CPU申请。 • 一片主片最多可以连接四片从片。这样,五片8237A 构成的二级DMA系统,可以得到16个DMA通道。 • 级联时,主片通过软件在方式寄存器中设置为级联 传输方式。从片设置成上面的三种方式之一。
第 6章
6.1 DMA传输原理
DMA传输
6.2 DMA控制器8237A
6.3 8237A的编程使用
1
直接存储器传送
(Direct Memory Access—DMA) 将外设的数据不经过CPU直接送入内存储器, 或者,从内存储器不经过CPU直接送往外部设备
M
CPU
I/O
一次DMA传送只需要执行一个DMA周期(相当于 一个总线读/写周期),因而能够满足高速外设数 据传输的需要。
6
2. DMA传输过程
• 总线请求:DMAC向CPU申请使用总线
• 总线控制转移:CPU同意DMAC管理总线
• 数据传输:外设接口和存储器之间传输数据
• 修改地址和计数器:为下一次传输做准备
• 结束处理:DMAC放弃对总线的控制权
• 以上的过程完全由硬件电路实现,速度很快。
• 用DMA方式进行一次数据传输所经历的时间称为 “DMA周期”,大体上相当于一次总线读写周期的时 间。

DMA工作原理

DMA工作原理

DMA工作原理一、引言DMA(Direct Memory Access,直接内存访问)是一种计算机技术,它允许外部设备(如硬盘、网络适配器等)直接访问主存储器,而不需要通过中央处理器(CPU)的干预。

DMA的工作原理是通过使用专门的硬件控制器来管理数据传输过程,提高系统性能和效率。

二、DMA的基本原理DMA的基本原理是将数据传输的任务从CPU转移到专门的DMA控制器上。

DMA控制器与CPU并行工作,可以同时进行数据传输操作,而不会占用CPU的时间。

DMA控制器有自己的寄存器和逻辑电路,可以直接访问主存储器。

具体的DMA工作流程如下:1. 外部设备向DMA控制器发送请求,要求进行数据传输。

2. DMA控制器接收到请求后,通过总线控制信号将CPU置于空暇状态,并向外部设备发送确认信号。

3. DMA控制器与外部设备建立数据传输通道,通过总线直接访问主存储器,读取或者写入数据。

4. 数据传输完成后,DMA控制器向外部设备发送传输完成信号,并将CPU从空暇状态恢复为工作状态。

5. CPU检测到DMA控制器发送的传输完成信号后,可以进行后续的数据处理操作。

三、DMA的优势和应用领域1. 提高系统性能:由于DMA可以独立于CPU进行数据传输,可以减少CPU的负载,提高系统的响应速度和整体性能。

2. 节省CPU时间:DMA可以在CPU空暇时进行数据传输,不会占用CPU的时间,使CPU能够更多地处理其他任务。

3. 支持高速数据传输:DMA控制器可以通过高速总线(如PCI Express)进行数据传输,支持高速设备和大数据量的传输。

4. 广泛应用于存储设备:DMA常用于硬盘、固态硬盘(SSD)等存储设备的数据读写操作,可以提高数据传输速度和效率。

5. 网络数据传输:DMA也广泛应用于网络适配器,可以实现高速网络数据的接收和发送。

四、DMA的实现方式DMA的实现方式可以分为三种:单通道DMA、多通道DMA和循环DMA。

计算机组成原理dma

计算机组成原理dma

计算机组成原理dmaDMA(Direct Memory Access,直接内存访问)是计算机组成中的一种技术,通过它,外部设备可以直接与主存进行数据传输,而无需经过中央处理器(CPU)的介入。

DMA技术的引入大大提高了计算机系统的性能和效率。

在传统的I/O数据传输方式中,CPU需要负责控制数据的传输过程,即CPU从外部设备读取或写入数据,并将数据转移到主存中。

这种方式会占用CPU的大量时间和资源,限制了计算机系统的整体性能。

而引入DMA技术后,外设可以直接将数据传输到主存中,或从主存中读取数据,而无需CPU的直接参与。

DMA技术的基本原理是,通过在计算机系统中添加一个DMA控制器,它可以独立地控制数据的传输过程。

当外设需要进行数据传输时,它会向DMA控制器发送请求,并提供存储器地址、传输数据大小等信息。

DMA控制器接收到请求后,会与主存进行通信,直接将数据传输到指定的存储器地址中。

通过使用DMA技术,可以显著减少CPU的负载,提高数据传输的速度和效率。

DMA技术在许多应用中都得到了广泛的应用,例如网络通信、磁盘读写、音视频处理等领域。

除了提高性能和效率之外,DMA技术还有其他一些优点。

首先,它可以提高系统的可靠性和稳定性,因为数据传输过程中不需要CPU的介入,减少了出错的可能性。

其次,DMA技术可以节省CPU的能耗,因为数据传输过程中CPU可以进入低功耗状态。

最后,DMA技术可以提供更好的实时性能,特别是在需要快速响应的应用中。

然而,DMA技术也存在一些限制和挑战。

首先,由于DMA控制器需要占用一定的系统资源,因此系统中只能同时支持有限数量的DMA传输。

其次,DMA传输需要与主存进行通信,可能会引起总线竞争和冲突,需要进行合理的调度和管理。

此外,由于DMA传输是由硬件直接控制的,因此对于某些特定应用,可能需要额外的软件支持来进行配置和管理。

总的来说,DMA技术是计算机系统中重要的组成部分,通过它可以提高系统的性能和效率。

dma工作原理

dma工作原理

dma工作原理
DMA (Direct Memory Access) 是一种数据传输机制,能够在减少CPU负载的同时,实现高速度和高效率的数据传输。

DMA 的工作原理如下:
1. CPU下达传输指令:当CPU需要将数据从一个设备(如硬盘、网络适配器)传输到内存,或从内存传输到设备时,它向DMA控制器下达传输指令。

传输指令包含源地址和目的地址等信息。

2. DMA控制器初始化:DMA控制器接收到传输指令后,首先会进行初始化。

它将检查传输指令中的源地址和目的地址,然后检查数据传输的方向,以及需要执行的其他操作(如数据复制或清零)。

3. DMA访问总线:DMA控制器获得后,它会请求访问系统总线。

在成功获得总线之后,DMA控制器便可以直接与内存进行数据传输,而不需要经过CPU。

4. 传输数据:DMA控制器通过直接操作内存地址,将源设备或内存中的数据传输到目标设备或内存中。

它使用内存地址寄存器来跟踪数据传输的进度,以及传输的字节数。

5. 中断通知:当数据传输完成后,DMA控制器通过向CPU发送中断信号来通知它。

CPU可以通过检查中断请求来知道DMA传输的完成状态。

通过使用DMA,数据传输的工作由DMA控制器来完成,而不是由CPU来执行。

这样一来,CPU就可以在数据传输期间执行其他任务,提高了系统的整体性能。

而且,由于DMA控制器直接与内存进行交互,传输速度更快。

总而言之,DMA 通过提供一种高效的数据传输机制,有助于提高系统的吞吐量和响应能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 级联时,主片通过软件在方式寄存器中设置为级联 传输方式。从片设置成上面的三种方式之一。
13
3. 8237A的传输类型
(1)DMA写传输(I/O→存储器) (2)DMA读传输(存储器→I/O) (3)DMA检验
(完成校验过程,测试DMA控制器的状态)。 (4)存储器到存储器传输
14
6.2.2 8237A的内部结构和外部连接
进行DMA传输时,CPU暂停对系统总线的 控制,DMAC取得了对总线的控制权,这时的 DMAC称为总线主模块。
6
பைடு நூலகம்
2. DMA传输过程
• 总线请求:DMAC向CPU申请使用总线 • 总线控制转移:CPU同意DMAC管理总线 • 数据传输:外设接口和存储器之间传输数据 • 修改地址和计数器:为下一次传输做准备 • 结束处理:DMAC放弃对总线的控制权
基本字节计数器
电源
公 共 部 份
IOR IOW MEMR MEMW READY
1 2 通道0 当前地址寄存器 当前字节计数器
CS
通道1
A4~A7
通道2
A0~A3
A0~A3
通道3
1:请求触发器 2:屏蔽触发器
DREQ0 DACK0
DREQ1 DACK1
DREQ2 DACK2 DREQ3 DACK3 EOP16
• 以上的过程完全由硬件电路实现,速度很快。
• 用DMA方式进行一次数据传输所经历的时间称为
“DMA周期”,大体上相当于一次总线读写周期的时
间。
7
[例]:用DMA方式将串行通信口接收到的200字节 的数据存入以BUFFER为首地址内存区域
对DMAC进行预置:向DMAC写入内存首地址,传输字 节数(200),传输方向(外设接口→内存),控制命令 (允许DMA传输)等;
3. 8086系统中的DMA信号
•最小模式
CPU通过HOLD接收DMA控制器的总线请求; 在HLDA引脚上发出对总线请求的允许信号。
•最大模式
通过RQ/GT0和RQ/GT1引脚接收DMA控制器的 总线请求,发送对总线请求的允许信号。
RQ/GT0引脚有较高的优先权。
9
6.2 DMA控制器8237A
这种方式可以获得最高的数据传输速度。如果一次传输的数 据较多,对系统工作可能产生一定的影响。
11
(3)请求传输方式
• 申请一次总线可以连续进行多个数据的传输。 • 每传输1个字节后,8237A都对外设接口的请求信号
进行测试:
DREQ端无效,暂停传输; DREQ有效,接着进行下一个数据的传输。
• 允许数据不连续,按照外设的最高速度进行数据传输, 使用比较灵活。
控制命令等;
• 状态寄存器:存放DMAC当前的状态,包括有无
DMA请求,是否结束等。
4
图6-1
5
DMAC在系统中有二种不同的作用:
• 总线从模块:
CPU对DMAC进行预置操作,也就是向 DMAC写入内存传送区的首地址、传送字节数和 控制字时,DMAC相当于一个外设接口,称为总 线从模块。
• 总线主模块:
12
(4)级联传输方式
• 几个8237A进行级联,一片8237A用作主片,其余用 作从片,构成主从式DMA系统。
• 从片收到外设接口的DMA请求信号后,向DMA控制器 主片申请,再由主片向CPU申请。
• 一片主片最多可以连接四片从片。这样,五片8237A 构成的二级DMA系统,可以得到16个DMA通道。
1. DMA通道
8237A有四个独立的通道(CH0一CH3)
每个通道:
• 16位地址寄存器; • 16位字节计数器; • 8位方式寄存器; • 1位的DMA请求触发器; • 1位的屏蔽触发器。 • 四个通道公用一个控制寄存器和一个状态寄存器。
对串行通信接口进行初始化,设置串行通信的参数,允 许串行输入等;
串口每输入一个数据,自动进行DMA传输;
最后一个数据传输结束后,DMAC发出传输结束信号 EOP。CPU可以通过查询知道传输已经结束,也可以利 用EOP信号申请中断,在中断服务程序里进行结束处理。
DMA方式传输200字节过程为:1次对DMAC初始化, 1次对串口初始化, 200次DMA周期,1次结束处理。 8
第6章 DMA传输
6.1 DMA传输原理 6.2 DMA控制器8237A 6.3 8237A的编程使用
1
直接存储器传送
(Direct Memory Access—DMA)
将外设的数据不经过CPU直接送入内存储器, 或者,从内存储器不经过CPU直接送往外部设备
M
CPU
I/O
一次DMA传送只需要执行一个DMA周期(相当于
8237A的内部结构分成二部分:
四个DMA通道和一个公共控制部分
15
+5V
HOLD HLDA
CLK 使微处理器地址锁存信号无效
1 锁存缓冲器 EN
STB 连接数据总线
M/IO


A8~A15


A4~A7
HRQ HLDA CLK
AEN
地 控制寄存器 状态寄存器 暂存寄存器
ADSTB
DB0~7
方式寄存器 基本地址寄存器
1. 8237A芯片的主要特点
有4个完全独立的DMA通道,可分别进行编程控制。 每个通道的DMA请求均可分别允许和禁止,并对各通道进行
优先级排队。 数据块最大为64KB,每传送一个字节后地址自动加1或减1。 DMA请求可以由外部输入,也可以由软件设置。 可以用级联的方法扩展DMA通道数。 可以进行从存储器到存储器的数据传输,用于对存储区域进
行初始化。
10
2. 8237A的工作方式
(1)单字节传输方式
8237A每申请一次总线,进行1个字节传输,然后释放系 统总线,一次DMA传输结束。
CPU可以在每个DMA周期结束后控制总线,进行数据传输, 所以不会对系统的运行产生大的影响。
(2)块传输方式
DMA控制器获得总线控制权后,可以连续进入多个DMA周 期,进行多个字节的传输(最多64K字节)。
一个总线读/写周期),因而能够满足高速外设数 据传输的需要。
2
6.1 DMA传输原理
1. DMA控制器
使用DMA方式传输时,需要一个专门的器件 来协调外设接口和内存储器的数据传输,这个 专门的器件称为DMA控制器,简称DMAC。
3
DMAC内部的寄存器:
• 地址寄存器:存放DMA传输时存储单元地址; • 字节计数器:存放DMA传输的字节数; • 控制寄存器:存放由CPU设定的DMA传输方式,
相关文档
最新文档