微机原理6

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

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