第6章直接存储器存取DMA

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章 直接存储器存取DMA 2. DMA的传送方式 DMA用硬件在外设与内存之间直接进行数据交换。 通常系
统的数据和地址总线以及一些控制信号线(如IO/、RD、WR等)
是由CPU管理的,在DMA方式下,就要求 CPU让出总线(也就 是将这些总线置为高阻状态),而由DMA控制器(DMAC)接 管总线。通常,大部分DMA都有三种DMA传送方式。 (1) 单字节传送方式。每次DMA传送只传送一个字节的数
MEMR IOW
MEMW
READY 通道0 DR EQ0 当前地址寄存器 当前字节寄存器 DACK0
ADSTB
暂存寄存器 DR EQ1 DACK1 DR EQ2 DACK2 DR EQ3 DACK3
DB7 ~DB0
通道1
通道2
wk.baidu.com
通道3 A 3 ~A 0 A 7 ~A 4
图 6-3 8237A内部结构
第六章 直接存储器存取DMA (1)DMA通道。8237A内部包含4个独立通道,每个通道包 含2个16位的地址寄存器、2个16位的字节数寄存器、2个16位的
AEN:地址允许输出信号,高电平有效。AEN把外部地址锁 存器中锁存的高8位地址输出到地址总线上,与芯片直接输出的 低8位地址一起共同构成内存单元的低16位地址。 MEMR:存储器读信号,低电平有效,输出,只用于DMA 传送。在DMA读周期期间,用于从所寻址的存储器单元中读出 数据。
MEMW:存储器写信号,低电平有效,输出,只用于DMA 传送。在DMA写周期期间,用于将数据写入所寻址的存储器单 元中。
据,传送后释放总线,CPU至少控制一个完整的总线周期,然
后测试DMA请求线DREQ,若有效,再进入DMA周期。
第六章 直接存储器存取DMA 在这种方式中要注意: ① DMA响应信号DACK有效前, DREQ必须保持有效。 ② 若DREQ在传送过程中一直保持有效, 则在两次传送之间 必须释放总线。 (2)成组传送方式。一个DMA请求可以传送一组信息。在 DMAC 初 始 化 时 , 由 编 程 决 定 这 一 组 信 息 的 字 节 数 , 只 要 在 DACK 有 效 之 前 DREQ 保 持 有 效 即 可 。 一 旦 DACK 有 效 , 不 管 DREQ是否有效,DMAC一直不放弃总线控制权, 直到整个数组 传送完。
存储器
图6-1 DMA传送的基本原理图
第六章 直接存储器存取DMA 6.1.2 DMA的工作过程
AB DB CB 总线请求 DREQ CPU DACK 总线响应 DMAC DMA 响应 DMA 请求 I/O
图 6-2 DMA的传送过程
第六章 直接存储器存取DMA 从图中可以看出,系统总线分别受到CPU和DMAC这两个 器件的控制,即CPU可以向地址总线、数据总线和控制总线发
第六章 直接存储器存取DMA
(5) DMA控制器向I/O端口发出DMA响应信号。
(6) DMA控制器把进行DMA传送涉及到的RAM地址送到地 址总线上。如果进行I/O端口→RAM传送,DMAC向I/O端口发 出I/O读命令,向RAM发出存储器写命令;如果进行RAM→I/O 端口传送,DMAC向RAM发出存储器读命令,向I/O端口发出 I/O写命令,从而完成一个字节的传送。 (7) 当设定的字节数传送完毕,DMA传输过程结束后,也可 以由来自外部的终止信号迫使传输过程结束。当DMA传送结束 后,DMA控制器就将总线请求信号变成无效,并放弃对总线的 控制,CPU检测到总线请求信号无效后,也将总线响应信号变 成无效,于是,CPU重新控制三总线,继续执行被中断的当前 指令的其他总线周期 。
第六章 直接存储器存取DMA IOR: I/O读信号,低电平有效,双向。当CPU控制总线时, 它是输入信号,CPU读8237A内部寄存器;当8237A控制总线时,
第六章 直接存储器存取DMA 8237A的基本功能如下: (1) 一个芯片中有4个独立的DMA通道。
(2) 每一个通道的DMA请求都可以被允许或禁止。
(3) 每个通道的DMA请求有不同的优先级, 既可以是固定
优先级, 也可以是循环优先级。
(4) 每个通道一次传送的最大字节数为64 KB。
(3) 主存中要开设专用缓冲区,及时供给和接收外设的数 据。
(4) DMA传送速度快,可使CPU和外设并行工作,提高了 系统的效率。 (5) DMA在开始前和结束后要通过程序和中断方式进行预 处理和后处理。
第六章 直接存储器存取DMA
6.2 DMA控制器及8237DMA控制器
6.2.1 8237A的外部引脚
方式寄存器、 1个DMA请求触发器和1个DMA屏蔽触发器。此
外,4个通道共用1个8位控制器、1个8位状态寄存器、1个8位暂
存器、1个8位屏蔽寄存器和1个8位请求寄存器。
第六章 直接存储器存取DMA
(2)读/写逻辑。当CPU对8237A初始化或对8237A寄存器进
行读操作时,8237A就像I/O端口一样被操作,读/写逻辑接收 IOR或IOW信号。当IOR为低电平时,CPU可以读取8237A内部 寄存器的值;当IOW为低电平时,CPU可以将数据写入8237A的 内部寄存器中。
(1) I/O端口向DMA控制器发出DMA请求, 请求数据传送。
(2) DMA控制器在接到I/O端口的DMA请求后,向CPU发出
总线请求信号,请求CPU脱离系统总线。
(3) CPU在执行完当前指令的当前总线周期后,向DMA控制 器发出总线响应信号。 (4) CPU随即和系统的控制总线、地址总线及数据总线脱离 关系,处于等待状态,由DMA控制器接管这3个总线的控制权。
送信息, DMAC也可以向地址总线、数据总线和控制总线发送
信息。但是,在同一时间,系统总线只能受一个器件控制。当
CPU控制总线时,DMAC必须与总线脱离;而当DMAC控制总
线时,CPU必须与总线脱离。因此,CPU与DMAC之间必须有 联络信号。
第六章 直接存储器存取DMA
1. DMA的传送过程
DMA传送的工作过程如下:
A
第六章 直接存储器存取DMA 各个信号说明如下: CLK:时钟输入端,通常接到8234时钟发生器的输出引脚, 用来控制8237A内部操作定时和DMA传送时的数据传送速率。 8237A的时钟频率为3 MHz, 8237A-5的时钟频率为5 MHz,后
者是8237A的改进型,工作速度比较高,但工作原理及使用方
DMA传送包括:RAM→I/O端口的DMA读传送;I/O端口
→RAM的DMA写传送;RAM→RAM的存储单元传送。
第六章 直接存储器存取DMA
DMA传送的基本特点是不经过CPU,不破坏CPU内各寄存
器的内容,直接实现存储器与I/O设备之间的数据传送。在IBM PC系统中,以DMA方式传送一个字节的时间通常是1个总线周 期,即5个时钟周期。CPU内部的指令操作只是暂停这个总线周 期,然后继续操作,指令的操作次序不会被破坏。所以DMA传
8 23 7A
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
A7 A6 A5 A4
EOP
A3 A2 A1 A0 VCC DB0 DB1 DB2 DB3 DB4 DACK0 DACK1 DB5 DB6 DB7
图 6 4 82 37 引 脚 图
在DMA传送期间,系统由8237A控制总线。此时,8237A分
两次向地址总线上送出要访问的内存单元20位物理地址中的低
16位,8237A输出必要的读/写信号,这些信号分别为I/O读信号
IOR,I/O 写 信 号 IOW , 存 储 器 读 信 号 MEMR 和 存 储 器 写 信 号 MEMW。
第六章 直接存储器存取DMA (3) 控制逻辑。在DMA周期内,控制逻辑通过产生相应 的控制信号和16位要存取的内存单元地址来控制DMA的操作 步骤。初始化时,通过对方式寄存器进行编程,使控制逻辑 可以对各个通道的操作进行控制。
8237A是微机系统中实现DMA功能的大规模集成电路控制
器。 PC/XT使用一片8237A, PC/AT使用两片8237A, 在高档微
机中常使用多功能芯片取代8237A,但多功能芯片中的DMA控
制器与8237A的功能基本相同。
第六章 直接存储器存取DMA 1. 8237A的内部结构和引脚功能 8237A 是 具 有 4 个 独 立 DMA 通 道 的 可 编 程 DMA 控 制 器 (DMAC),它使用单一的+5 V电源、单相时钟和40引脚双列 直插式封装。在实际应用中,8237A必须与一片8位锁存器一起 使用,才能形成一个完整的4 通道DMA控制器。8237A经初始化 后, 可以控制每一个通道在存储器和I/O口之间以最高1.6 M波 特的速率传送最多达64 KB的数据块, 而不需要CPU的介入。
(5) 8237A提供4种传送方式:单字节传送方式、数据传送
方式、请求传送方式和级联传送方式。
第六章 直接存储器存取DMA HOLD HR Q 控制寄存器
HLDA CLK HLDA CLK 请求触发器 AEN 方式寄存器 基地址寄存器 基本字节寄存器 状态寄存器
请求寄存器
IOR
屏蔽寄存器 屏蔽触发器
法与8237A相同。
CS:片选输入端,低电平有效。
第六章 直接存储器存取DMA RESET: 复位输入端,高电平有效。当RESET有效时,屏蔽
寄存器被置1(4个通道均禁止DMA请求),其他寄存器均清0,
8237A处于空闲周期,所有控制线都处于高阻状态,并禁止4个 通道的DMA操作。复位后必须重新初始化;否则8237A不能进 入DMA操作。 READY: “准备就绪”信号输入端,高电平有效。当所选择
第六章 直接存储器存取DMA
第六章 直接存储器存取DMA
6.1 DMA的工作原理及工作过程 6.2 DMA控制器及8237DMA控制器 6.3 8237A的初始化编程 6.4 DMA的应用举例
第六章 直接存储器存取DMA
6.1 DMA的工作原理及工作过程
6.1.1 DMA的传送原理 DMA方式用硬件实现存储器与存储器之间或存储器与I/O设 备之间直接进行高速数据传送,不需要CPU的干预。这种方式 通常用来传送数据块。
第六章 直接存储器存取DMA 1
IOR IOW MEMR MEMW NC READY HLDA ADSTB AEN HRQ
CS CLK RESET DACK2 DACK3 DREQ 3 DREQ 2 DREQ 1 DREQ 0 GND
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
送的方式特别适合用于外部设备与存储器之间高速成批的数据
传送。图6-1是实现DMA传送的基本原理图,图中以系统总线为 界,左侧位于主机板内,其中有DMA控制器;右侧有存储器 (部分存储器在主机板内)、外设和外设接口,它们通过I/O插 槽与系统总线相接。
第六章 直接存储器存取DMA
系统总线 CPU 8 08 8 主机板 总线 逻辑 回 请 答 求 DMA 控制器8 23 7 I/O 接口 I/O 接口
(3)请求传送方式。请求传送方式又称查询传送方式。该方 式的传送类似成组传送方式,但每传送一个字节后,DMAC就检 测DREQ:若无效,则挂起;若有效,则继续DMA传送,直到外 加信号强制DMAC中止操作。
第六章 直接存储器存取DMA
3. DMA 的特点
DMA具有下列特点: (1) 它使主存既可被CPU访问, 又可被外设直接访问。 (2) 当传送数据块时,主存地址的确定、传送数据的计数 控制等都用硬件电路直接实现。
的 存 储 器 或 I/O 端 的 速 度 比 较 慢 , 需 要 延 长 传 输 时 间 时 , 使
READY端处于低电平,8237A就会自动地在存储器读和存储器 写周期中插入等待周期。当传输完成时,READY端变为高电平, 以表示存储器或I/O设备准备就绪。
第六章 直接存储器存取DMA ADSTB: 地址选通输出信号,高电平有效。当此信号有效时, 8237A当前地址寄存器的高8位经数据总线DB7~DB0 锁存到外部 地址锁存器中。
相关文档
最新文档