文档介绍:第九章 DMA技术
一、直接存储器存取
二、常用DMAC芯片— Intel 8237
三、IBM PC/XT中的 DMA 控制逻辑
四、应用举例
一、直接存储器存取(Direct Memory Access)
1、DMA方式传送过程
内存与I/O之间;
内存与内存之间;
I/O 与 I/O 之间的数据传送。
DAM方式的特点:
在DMAC的控制下,外设直接和存储器(也可外设与外设,存储器与存储器之间)进行数据传送,而不必经过CPU ,传送速度基本取决于外设与存储器的速度,从而传送效率大大提高。
如磁盘与存储器之间的传输速度每秒高达几兆字节,这是采用中断方式(用CPU执行指令传输数据)所实现不了的。
DMA 可以实现:
CPU
内存
外设
数据通道
数据通道
非DMA方式
(包括程序控制方式和中断方式)
DMA方式
DMAC
内存
外设
数据通道
DMA操作(两步):
(1) DMA操作之前,应先对DMAC编程,把要传送的数据块长度、数据
块在存储器中的起始地址,数据传送方向等信息发送给DMAC;
(2) DMA操作过程包括三个阶段:
DMA请求
DMA响应和数据传送
传送结束
当外设要求以DMA方式为它服务时,发DMA请求信号DREQ到DMAC,
DMAC检查该信号是否被屏蔽及其优先权,如确认该信号有效则向CPU发送总线请求信号HRQ(连到CPU的HOLD)
DMA请求阶段
CPU
DMAC
HRQ
外设
DREQ
地址总线
数据总线
存储器
HOLD
每个总线周期结束时CPU检测HOLD,如为高电平,则响应HOLD请求进入保持状态,使三态总线CPU侧呈高阻状态,并以总线保持响应信号HLDA通知DMAC;
DMAC接管总线,并以DACK信号通知外设,使之成为DMA传送时被选中的设备,同时DMAC给出内存地址以及I/O读写和存储器读写控制信号,在外设和存储器之间完成数据传送
DMA响应和数据传送阶段
CPU
DMAC
HLDA
外设
DACK
存储器
地址总线
数据总线
IOR/IOW
MEMR/MEMW
HOLD
传送结束阶段
传送完成后,DMAC放弃总线,撤消总线请求(HRQ为低),CPU检测到HRQ(HOLD)为低后,撤消HLDA,CPU重新获得总线控制权。
CPU
DMAC
HRQ
外设
EOP
地址总线
数据总线
存储器
HOLD
HLDA
2、DMA控制器(DMAC) 的功能
DMAC:
• DMAC具有独立的控制三大总线来访问存储器和I/O端口的能力,它能
像CPU一样提供数据传送所需的地址信息和读写控制信息;
• DMAC和CPU都挂在系统总线上,当进入DMA方式时,DMAC成为总线主控。
(在总线上,可以控制其他部件的部件称为总线主控或主控(bus master),被控部件称为从控(slave)。任意时刻,总线上只有一个主控。)
中央
处理器
8088
协处
理器
8087
总线
驱动器
总线
控制器
8288
RAM
存储
器
ROM
存储
器
8 级
中断
电路
4
通道
DMA
8 通道
定时/
计数器
喇叭
电路
键盘
接口
8
个
扩
展
插
座
CB
AB
DB
时钟信
号发生
器8284
功能:
接收CPU发出的读写信号——初始化;
接收外设发来的DMA请求;
向CPU发出总线请求信号;
接收CPU发出的总线请求允许信号;
向外设发出DMA请求允许信号;
发出地址信息,能对存储器寻址及修改地址指针;
能发出读/写等控制信号;
能提供数据的传输数量;
能撤销总线请求信号,使CPU恢复正常工作。
控制总线
3、DMAC 的基本组成
模式寄存器:表示DMA的工作模式:单次传送;数据块传送;DMA校验等。
命令寄存器:表示完成存储器与I/O的传送还是其他传送(存储器与存储器
之间);DMA请求信号高电平还是低电平有效等。
请求寄存器:DMAC通常可允许多路DMA请求,请求寄存器寄存各路的
DMA请求。
字节计数器
地址寄存器
模式寄存器
状态寄存器
暂存寄存器
请求寄存器
屏蔽寄存器
命令寄存器
时序与控制电路
判优电路
总线请求
总线请求允许
读
写
地址总线
数据总线
DMA请求
DMA请求允许