资源预览内容
第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
第9页 / 共39页
第10页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第4章 DMA技术,主要内容:1、DMA传送的特点 2、DMA传送的过程 3、DMA传送的方式 4、DMA控制器 5、DMA系统 6、DMA传送的应用 重点内容: DMA方式的有关概念及应用,2,第4章 DMA技术,一、DMA方式(direct memory access),直接存储器存取DMA是指计算机的外设与存储器之间或 存储器与存储器间直接进行数据交换的一种方式。 在这种方式下,DMA控制器拥有总线控制权,操纵数据 在存储器与外设间直接传送,不需要CPU执行指令。,、DMA传送,DMA读传送,DMA写传送,存储单元传送,I/O RAM,RAM I/O,RAMRAM,3,第4章 DMA技术,2、DMA传送过程,(1)I/O端口向DMA发出DMA请求DREQ; (2)DMAC向CPU发出总线请求HRQ,请求CPU让出总线控制权; (3)CPU在每个总线周期结束时检测HRQ,响应DMAC的HRQ请求, CPU与总线间成高阻态,向DMAC发回总线响应信号HLDA; (4)DMAC接管总线控制权,DMAC向I/O设备发出DMA响应信号; (5)DMAC把要进行DMA传送涉及RAM地址送地址线,则DMAC向 端口或RAM发R/W命令来完成数据传送。 (6)当传送结束,DMAC将总线请求信号变得无效。,4,第4章 DMA技术,3、DMA传送方式与中断传送方式的区别,(1)传送速度:DMA一个总线周期传送一个字节;中断程序 (2)响应速度:DAM总线周期结束;指令结束 (3)请求方式:外部和内部中断;DMA软件和硬件发出,4、DMA占用总线方式,(1)周期挪用:挪用CPU不访问存储器的机器周期进行DMA 操作。DMA操作不影响CPU的工作,电路复 杂。 (2)周期扩展:采用专门的时钟发生电路加宽 CPU 的时钟周 期,利用 CPU 每个时钟周期的剩余时间进行 DAM操作。降低CPU速度。 (3)CPU停机:在DMA操作期间,CPU 交出总线的控制权, 由DMA控制器接管总完成数据传送。CPU不 能使用总线,只能进行内部操作。,5,第4章 DMA技术,二、8237A的引脚功能和内部结构,1、8237A的基本功能,(3)8237具有4种传送方式:单字节传送方式,数据块传送 方式,请求传送方式和级连传送方式。,(1)每片8237内部有4个独立的通道,每个通道可分别进行 数据传送,一次传送的最大字节数为64KB,能实现存 储器与外设或存储器与存储器两个区域的数据传送。,(2)每个通道的DMA请求可以分别被允许或禁止,具有不 同的优先级, 并且每个通道的优先级可以时固定的, 也可以是循环的。,6,第4章 DMA技术,2、8237A的引脚及功能,READY:准备好信号 表示存储器或外设 已经准备好,用于 DMA 操作时与慢 速存储器或外部设 备同步。,HLDA:总线响应信号 是CPU对HRQ信号 的响应,通知 8237 接管总线的控制权。,ADSTB:地址选通输出信号 在DMA传送期间,此信号用 于将D7D0输出的当前地址 寄存器中高 8 位地址送到外 部地址锁存器,与 8237 芯片 直接输出的低 8 位地址A7 A0构成内存单元地址的偏移 量。,AEN:地址允许输出信号 允许8237将高8位地址输出至 地址总线,同时使与 CPU 相 连的地址锁存器无效, 禁止 CPU 使用地址总线,AEN 为 低电平时, 8237 被禁止, CPU占用总线。,HRQ:总线请求输出信号 当 8237的任一个未屏 蔽通道接收到 DREQ 请求时,8237向CPU 输出HRQ信号,请求 CPU 出让总线的控制 权。,CLK:时钟脉冲输入信号 用以控制8237内部操 作及数据传输率。,DREQ0DREQ3:DMA请求信号 通道 30分别对应 DREQ3 DREQ0, 当外设请求DMA服 务时,由I/O接口向 8237 发出 DREQ 请求信号, 直到收到 DMA 响应信号DACK后, 信 号才撤消,在优先级固定方式 下,DREQ0最高。,RESET:复位输入信号 复位后8237处于空 闲状态,清零内部 各寄存器,并置位 屏蔽触发器。,DACK0DACK3 : DMA响应信号 是8237对DREQ信号的 响应, 当 8237 接收到 DMA 响应信号后, 开 始DMA传送。,D0D7:8位数据总线 CPU读取状态寄存器、现 行地址寄存器、字节数计 数器的内容并可向8237写 入控制命令进行初化编程; 在DMA传送期间输出当前 地址寄存器中的地址与A7 A0组成16位地址。,A0A3 :地址线 为输入信号时,用于8237 内部寄存器寻址使用。 为输出信号时, 与 A7 A4 构成内存地址单元的 低8位地址。,7,第4章 DMA技术,3、8237A的内部结构,基地址寄存器:用来保存DMA传送时本通道所用到的数据段地址 初值,由CPU对8237进行初始化编程时写入的。,当前地址寄存器:用来保存DMA传送过程中现行地址值,初值时该寄存器的 值是与基地址寄存器相同,每次DMA传送后其内容自动增 1或减1。,基字节寄存器:用来保存整个DMA操作过程中要传送数据的字节 数,这个初值由CPU在编程时写入的。,当前字节寄存器:保存当前要传送的字节数,每次DMA传送后内 容减1,在自动预置状态下,EOP有效可自动恢 复起始状态。,方式寄存器:用在CPU对8237初始化编程时设定8237的工作模式、 地址增减、是否自动预置、传输类型及通道选择。,暂存器:在DMA进行RAM传送方式时,它暂存中间数据。,8,第4章 DMA技术,4、8237A的内部逻辑框图,9,第4章 DMA技术,三、8237A的初始化编程,8237工作前由CPU对其进行初始化编程,设定内部寄存器 的值。一是设定通道计数初始值(基地址与当前地址寄存器、 基字节数与当前字节计数寄存器), 二是设置通道功能(设置 工作模式寄存器、设置屏蔽寄存器、设置命令寄存器),、8237A的工作模式,(1)单字节传送模式,每次只传送1个字节。8237每传送一个字节的数据 后, 当前字节计数器减 1 , 当前地址寄存器也要修改 (增1或减1),HRQ无效,释放系统总线, 由CPU接 管总线。若当前字节计数器为 0,则结束 DMA 传送。 否则 8237 会对 DREQ 信号进行检测,当DREQ有效, 立即向CPU发出总线总线请求信号,获总线控制权后, 再传送下一个字节。,10,第4章 DMA技术,(2)块传送模式,8237获得总线控制权后,可以完成一个数据块的传输,直到 当前字节计数器减为 0 , 或由外部接口输入有效的 EOP 信号, 8237才释放总线,将总线控制权交还CPU。,(3)请求传送模式,可连续传输多个字节的数据。当出现当前字节计数器减为0、 外部EOP有效、 外界的DREQ变为无效时, 8237结束传送释放总 线,由 CPU接管总线。若此时当前字节计数器不为 0, 8237 相应 通道将保存当前地址和字节寄存器的中间值, 当 8237 检测到 DREQ后,传送可继续进行。,(4)级连传送模式,通过级连方式扩展数据传输通道。构成主从式DMA系统,主 片的DREQ和DACK分别接从片的HRQ和HLDA, 主片的HRQ和 HLDA连接系统总线。5片8237构成的二级主从式DMA系统中, DMA数据通道可扩展到16个。,11,第4章 DMA技术,(1)模式(方式)寄存器(0BH),、8237A的工作模式,12,第4章 DMA技术,例:PC机软盘读/写操作选择DMA通道 2,单字节传送,地 址加1; 不用自动预置,分别写出读盘和写盘和校验操 作的模式命令字。 写操作:01000110B=46H;读盘(DMA写) 读操作:01001010B=4AH;写盘(DMA读) 校验操作:01000010B=42H;校验盘(DMA校验) 因此,若采用上述方式从软盘上读出的数据存放在内存 区,则方式字为46H,若从内存取出数据写到软盘上, 则方式字为4AH。,13,第4章 DMA技术,(2)控制寄存器(08H),14,第4章 DMA技术,例:PC机8237按如下要求工作,禁止存储器到存储器 传送,正常时序, 滞后写入, 固定优先级,允许 8237 工作, DREQ 和 DACK 均为高电平, 写出 8237的控制字。 命令字为:00000000B=00H 将命令字写入命令口的程序段为: MOV AL,00H OUT 08H,AL,15,第4章 DMA技术,(3)状态寄存器(08H),16,第4章 DMA技术,(4)请求寄存器(09H),DMA请求可由I/O设备发出也可由软件发出。,例:某PC机使用通道进行RAM到RAM间的数据传送,写出CPU 向请求寄存器写入的代码。,17,第4章 DMA技术,(5)单通道屏蔽寄存器(09H),18,第4章 DMA技术,(6)多通道屏蔽寄存器(0FH),19,第4章 DMA技术,(7)地址寄存器00H(基地址和当前地址寄存器):初始时写入,(8)字节寄存器01H(基本字节和当前字节寄存器):初始时写入,(9)清屏蔽寄存器0EH 无论是RESET复位还是软复位,屏蔽寄存器均被置1,DMA 请求被禁止。当DMA传送结束,EOP*有效,会自动置1屏蔽寄存 器。因此初始化时必须清除屏蔽触发器。 方法:对端口DMA+0EH进行一次写操作,可清除4个通道的屏蔽 触发器。 MOV DX , DMA+0EH MOV AL , 0 OUT DX , AL,20,第4章 DMA技术,(11)暂存寄存器(0DH) 4个通道共用的8位寄存器在DMA控制器实现存储 器到存储器的传送方式时,它暂存中间数据,CPU 可 以读取暂存器中的内容,其值为最后一次传送的数据。,(10)先/后触发器(0CH) 为设置基址寄存器的初始值顺序而设置的。 8237A只有8条数据线,而基地址寄存器和基字节 寄存器都是16位,预置初值时需分两次进行,使用先/ 后触发器时,先将其清零, 写入低字节操作后,触发 器变1,再写高字节。,21,第4章 DMA技术,3、8237A的软命令,只需对特定端口(寄存器)进行一次写操作就 可以完成指定操作与写入的数据无关。,(1)清先/后触发器(0CH) (2)总清除命令(0DH)软件复位命令 与硬件reset信号相同,可使控制寄存器、状态 寄存器、 DMA 请求寄存器、暂存器及先/后触 发器清0,使屏蔽寄存器置1。 (3)清屏蔽寄存器命令(0EH),22,第4章 DMA技术,4.5 DMA系统,一、DMA系统组成,DMA系统由DMA控制器8237A和DMA页面地址 寄存器及总线裁决逻辑构成。,23,第4章 DMA技术,24,第4章 DMA技术,二、DMA系统有效地址的生成,当DMAC作为主设备,如何为存储器提供足够的地址信号 线,如何对I/O设备寻址。,1、存储器地址的形成 DMA页面地址寄存器,25,第4章 DMA技术,26,第4章 DMA技术,WRTDMAPGREG = 0(80H9FH),DMAAEN = 0(80H9FH)DACK低电平有效,27,第4章 DMA技术,2、I/O设备寻址,DMA方式传送的I/O 设备,在进行读写数据时, 只要 DACK 信号和RD或 WR 信号同时有效,就能 完成对 I/O 设备端口的读 或写操作,与 I/O 设备的 端口地址无关。,三、PC机的DMA系统,1、单片DMAC的DMA系统,28,第4章 DMA技术,2、双片DMAC的DMA系统,29,第4章 DMA技术,通道号,端口名称,8237A(0),8237A(1),0,基/当前地址寄存器 基/当前字节计数器,00H 01H,C0H C2H,1,基/当前地址寄存器 基/当前字节计数器,02H 03H,C4H C6H,2,基/当前地址寄存器 基/当前字节计数器,04H 05H,C8H CAH,3,基/当前地址寄存器 基/当前字节计数器,06H 0
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号