第8章 微机原理DMA技术与DMA控制器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制总线的主模块要提供系统的地址及控制信号。
DMA控制器与处理器配合可实现系统的DMA功能。
2
2. DMA系统组成及工作过程․ DMA系统组成
地址总线
总线 请求 HOLD HLDA CPU 总线 响应 控制总线 HRQ DMAC HLDA DACK DREQ
DMA 请求 I/O 设备 DMA 响应
33
(4) DMA传送-级连方式
用于通过多个8237A级连以扩展通道 第二级的HRQ和HLDA信号连到第一级某个通 道的DREQ和DACK上 第二级芯片的优先权等级与所连通道的优先权 相对应 第一级只起优先权网络的作用,实际的操作由 第二级芯片完成 还可由第二级扩展到第三级等
34
8237A的级联
36
存储器到存储器的传送
固定使用通道0和通道1 通道0的地址寄存器存源区地址 通道1的地址寄存器存目的区地址,通道1的字节数寄 存器存传送的字节数 传送由设置通道0的软件请求启动 每传送一字节需用8个时钟周期 前4个时钟周期用通道0地址寄存器的地址从源区读 数据送入8237A的临时寄存器 后4个时钟周期用通道1地址寄存器的地址把临时寄 存器中的数据写入目的区
READY:存储器或I/O的就绪信号
23
23
DMA控制器8237
工作方式 1)从模块工作方式: 当CPU将数据送入或取出8237时,DMA完全 象一个普通的I/O接口,此时它工作于从模块。
24
24
DMA控制器8237
2)主模块工作方式:
此时DMA已取代CPU控制系统。它 将提供系统正常工作的地址信息,控 制信息完成DMA方式的数据传送。
DMAC向I/O设备发出 的DMA应答信号
CPU脱离对系统总线的控制, 由DMA百度文库接管对系统总线的控制
9
§8.2 可编程DMA控制器8237A
§8.2.1 8237A的主要特性 1.具有四个独立的 DMA 通道,每个通道都具 有64K的存贮器寻址能力,即一次传送的最大 长度为64K字节。 2 .可实现内存与外设之间的高速大批量数据 传送 ,也可实现内存两个不同区域之间的高 速数据传送。 3.每个通道的 DMA 请求均可分别允许或禁止, 且四个通道的 DMA 请求的优先权可由软件设 置为固定的或循环的。
26
26
由上可见8237工作 于模块方式,可取 代CPU产生地址及 控制信息。
8237A处于DMA方式时,全部地址均用来寻 址存储器 ,无法同时提供 I/O设备的端口地 DMA 控制器 8237 址.为了寻址外部设备,8237A提供DACK信 号,作为对请求DMA方式的外部设备的应答, 并指明该外部设备被认可,可以进行DMA传 送.在整个传输过程中只要DACK信 号,IOR,IOW同时有效,就能完成读外部设 备的I/O读写操作.所以,在DMA方式下,I/O 设备的地址无效.即:以DACK代替了片选和 译码功能.
31
(2) DMA传送-数据块方式
由DREQ启动就连续地传送数据,直到字节数 寄存器从0减到FFFFH终止计数,或由外部输 入有效信号终结DMA传送 DREQ只需维持有效到DACK有效 特点: 一次请求传送一个数据块,效率高 整个DMA传送期间CPU长时间无法控制总线 (无法响应其他DMA请求、无法处理中断等)
数据总线
3
DMAC的基本功能
接收接口往DMA控制器发出DMA请求信号后, DMA控制器能向CPU发出总线请求信号 HOLD(高电平)。
当CPU向DMA发出响应信号HLDA(高电平)以 后,DMA能接管对总线的控制,进入DMA方式。
能向地址总线发出内存地址信息,对其进 行寻址及修改地址指针。
,则强制DMAC内部
21
8237的引脚功能
MEMR/MEMW: 8237发出的存储器读/写信号 IOR/IOW: 8237作为主控时,输出的I/O读/写信号。 8237作为从控时,CPU发出的I/O读/写信号,用于 读/写8237
22
22
8237的引脚功能
ADSTB:地址选通信号
用于启动地址锁存器
10
8237A的主要特性
4 .具有单字节传送、数据块传送、请求传送 和级联传送四种工作方式。 5.可用级联方式扩展DMA通道数目。 6.DMA传送结束信号可由内部计数产生,也 可由外部输入提供。 7.单一的+5V电源,40个引脚双列直插式封 装。 8.采用 5MHz时钟,传送速率可达 1.6M字节 /秒。
地址寄存器2 个16位
每 个 通 道
字节数寄存 器2个16位
基字节数寄存器: ----DMA传送的总字节数。
当前字节数寄存器: ----DMA传送时内容变化,可读。
模式REG, 1个8位 1个DMA请求触发器 1个DMA屏蔽触发器
15
15
控制寄存器, 8位
状态寄存器, 8位
四个通道公用
DMAC 控制传一个字节 Y
DMA请求? N 放总线
块结束否? Y 放总线中断请求
随机请求 DEMAND REQUEST
8
DMA传送的过程
I/O设备向DMAC发出DMA请求
完成设定的字节数据传送, CPU恢复对系统总线的控制
DMAC向CPU发出总线请求
DMAC进行一个字节的传送
CPU在执行完当前指令的当前 的总线周期后,向DMAC发出 总线响应信号
第8章 DMA技术与DMA控制器
§8.1 DMA技术概述 §8.2 可编程DMA控制器8237A §8.3 DMA技术在微机系统中的应用
直接存储器存取
1
§8.1 DMA技术概述
1.DMA(Direct Memory Access)的概念
DMA方式不用处理器干预完成M与I/O间数据传送。 DMA期间系统总线由其它主模块控制(驱动)
那对于 20 位 地 址 线 8237 如 何 处理?
在8086/88系统中,系统的寻址范围是1MB,地址 线有20条,即A0~A19。为了能够在8086/88系统中 使用8237来实现DMA,需要用硬件提供一组4位的 页寄存器。 通道0、1、2、3各有一个4位的页寄存器。在进行 DMA传送之前,这些页寄存器可利用I/O地址来装 入和读出。当进行DMA传送时,DMAC将A0~A15放在 系统总线上,同时页寄存器把A16~A19也放在系统 总线上,形成A0~A19这20位地址信号实现DMA传送。 其地址产生如图所示。
32
(3) DMA传送-请求方式
DREQ信号有效就连续传送数据 DREQ信号无效,DMA传送被暂时中止,8237A释放 总线,CPU可继续操作 DMA通道的地址和字节数的中间值仍被保持 DREQ信号再次有效,DMA传送就继续进行 如果字节数寄存器从0减到FFFFH,或者由外部送来 一个有效的信号,将终止计数 特点: DMA操作可由外设利用DREQ信号控制传送的过程
11
8.采用5MHz时钟,传送速率可达1.6M字节/秒。
8237进行一次DMA传送需要3个时钟周期(不包括插入 的等待周期SW)。时钟周期为200 ns,则一次DMA传 送需要200 ns×3+200 ns=700 ns(1.6 M字节/ 秒)。多加一个200 ns是考虑到人为插入一个SW的 缘故。另外,8237为了提高传输速率,可以在压缩 定时状态下工作。在此状态下,每一个DMA总线周期 仅用两个时钟周期(200 ns×2=400ns )就可实现, 这大大提高了传输速率。
12
§8.2.2 8237A的工作原理
1.8237A的编程结构 编程结构见下页图 内部有大量寄存器,内部寄存器的功能、 端口地址等信息 参见下表.
13
Intel 8237A可编程DMA控制器框图
14
1)8237A组成说明:
8237A有四个独立通道:通道0~通道3。每个通道可独立响 应外部DMA请求,完成DMA传送。 基地址寄存器 ----放DMA传送RAM地址初值 当前地址寄存器: ----DMA传送时内容变化,可读。
Y
N
DMA 放 总 线
放弃总线中断请求
字节传送
6
․DMA传送方式
允许 DMA
DMA请求?
DMAC发BUS请求
CPU 响应 DMA 放弃 BUS
DMAC控制 传一个字节
Y
DMA请求? N
N
块结束否? Y 块传送
放总线中断请求
7
․DMA传送方式
允许 DMA
N
DMA请求? Y DMAC发出BUS请求
CPU响应DMA放弃总线
20
20
8237的引脚功能
•地址允许信号:AEN 8237作为主控时(8237控制总线),输出AEN=1。 8237作为从控时(CPU控制总线),输出AEN=0。 •DMA传输结束信号: (双向)
当DMAC内部任一通道传输结束,8237发出 若由外部给DMAC送入有效的 所有通道结束传输。
21
屏蔽寄存器,8位。
请求标志寄存器, 8位 暂存器, 8位
• 作从模块----接收CPU的信号 和命令字,产生控制,读/写内部 寄存器 • 作主模块----控制总线,产生 控制命令完成DMA传送
定时和控制逻辑
优先级编码电路---优先级裁决
16
16
8237的引脚功能
17
17
8237的引脚功能
•请求/应答信号
外设接口电路向8237的请求信号:DREQ3~DREQ0 8237对外设接口电路的应答信号:DACK3~DACK0 8237向CPU申请总线的信号:HRQ(连至CPU的HOLD) CPU向8237传送的允许使用总线信号:HLDA
HRQ
•CPU •DMA
DREQ
•外设
HLDA
DACK
18
30
DMA传送方式
(1) DMA传送-单字节方式
每次DMA传送时仅传送一个字节 传送一个字节之后,字节数寄存器减1,地址寄存器 加1或减1,HRQ变为无效 8237A释放系统总线,将控制权还给CPU 若传送后使字节数从0减到FFFFH,则终结DMA传送 或重新初始化 特点: 一次传送一个字节,效率略低 DMA传送之间CPU有机会重新获取总线控制权
28
28
DACK3 DACK2 DACK1 DACK0
选择 页寄存器 选择 页寄存器 选择 页寄存器 页寄存器
选择 A19~A16
8237 DMAC
A19~A16
A15~A0 DMA存储器地址
利用页寄存器产生存储器地址
29
29
8237A的工作方式
DMA传送方式 · 单字节传送方式 · 数据块传送方式 · 请求传送方式 · 级连方式 DMA传送类型 · DMA读 · DMA写 · DMA检验 存储器到存储器的传送
第二级 第一级 8237
微处理器
HOLD | HLDA | HRQ HLDA
DREQ 0 | DACK0 |
HRQ
HLDA
|
DREQ 3 | DACK 3
HRQ HLDA 8237
35
DMA传送类型
DMA读——把数据由存储器传送到外设 由MEMR*有效从存储器读出数据,由IOW*有效把 这一数据写入外设 DMA写——把外设输入的数据写入存储器 由IOR*有效从外设输入数据,由MEMW*有效把这 一数据写入存储器。 DMA检验——空操作 8237A不进行任何检验 外设可以进行DMA校验 存储器和I/O控制线保持无效,不进行传送
CPU为主控时,可以通过I/O读命令查询8237的状态 寄存器的内容,或通过I/O写命令对8237的内部寄 存器进行编程,数据传送通过DB7~DB0
8237为主控时, DB7~DB0输出要访问的内存地址的 高8位,并通过ADSTB锁存到外部地址锁存器中,和 A7~A0输出的低8位地址一起构成16位地址
4
DMAC的基本功能
能向存储器或I/O接口发相应的读写控制信号。
能决定传送字节数,并判断DMA传送是否结束。 DMA过程结束,能向CPU发出DMA结束信号, HOLD变低,将总线控制权还给CPU,CPU恢复正 常工作。
5
․DMA传送方式
允许 DMA DMA 请求?
Y
N
DMAC发BUS请求 CPU响应DMA 放弃BUS DMAC控制 传一个字节 块结束否?
18
8237的引脚功能
•地址信号
:CPU初始化8237或读8237状态时所需的 片选信号 A7~A0(输出):8237访问存储器的地址信号 的低8位。 A3~A0(输入):CPU初始化8237或读8237 状态时,用于寻址8237内部寄存器
19
19
8237的引脚功能
•数据信号(双向): DB7~DB0