《DMA技术》PPT课件.ppt_第1页
《DMA技术》PPT课件.ppt_第2页
《DMA技术》PPT课件.ppt_第3页
《DMA技术》PPT课件.ppt_第4页
《DMA技术》PPT课件.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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章 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 07H,CCH CEH,读状态寄存器/写控制寄存器 写请求寄存器 写单个通道屏蔽寄存器 写方式字寄存器 写清除先/后触发器 读暂存寄存器/写总清除 写清除屏蔽寄存器 写4个通道屏蔽寄存器,08H 09H 0AH 0BH 0CH 0DH 0EH 0FH,D0H D2H D4H D6H D8H DAH DCH CEH,30,第4章 DMA技术,3、方式字写入模式寄存器(0BH) 为通道规定传送类型及工作方式。,四、初始化编程的步骤,1、命令字写入控制器(08H) 初始化时通过设置控制寄存器,来确定其工作时 序、优先级方式、 DREQ和DACK的有效电平及是否 允许工作等。,2、屏蔽字写入屏蔽寄存器(0AH、0FH) 当某通道正在进行初始化编程时,必须先屏蔽要 初始化的通道,在初始化结束后再解除该通道的屏蔽。,31,第4章 DMA技术,4、置0先/后触发器0CH) 对口地址DMA+0CH执行一条输出指令,从而产生 一个写命令, 即可置0先/后触发器,为初始化基地址和 基字节寄存器作准备。,5、写入基地址和基字节寄存器(00H、01H) 把DMA操作所涉及到的存储区首地址或末地址写入 基本地址寄存器,要传送的字节数减1,写入基本字节寄 存器。,6、解除屏蔽(0EH) 初始化后向通道的屏蔽寄存器写命令字,置0相应通 道的屏蔽触发器,准备响应DMA请求。,7、写入请求寄存器(09H) 在完成通道初始化后, 向请求寄存器写入命令字, 可用相应的通道进行DMA传送。,32,第4章 DMA技术,PC /AT 机DMAC1通道初始化编程步骤: 1、05H 0AH 端口,使通道1的屏蔽触发器置1。 2、方式命令字 0BH端口,设置通道1的读 / 写方式。 3、 0 0CH端口,使端口1的先 / 后触发器置0,为基地址和基字 节寄存器写入初始值规定先写低8位后写高8位的写入顺序。 4、计算存储单元的20位物理地址。 5、将物理地址的高4位83H 端口,存入通道1的页面寄存器,低 8位通道1的基本地址寄存器,中8位通道1基本地址寄存器。 6、计数初值的低8位通道1的基字节寄存器,高8位通道1的基 字节寄存器。 7、01H 0AH端口,解除通道1的屏蔽,准备响应DMA请求。 若采用软件DMA请求, 完成上述初始化后, 在程序的适当位 置。 8、将05H 09H端口, 使通道1的请求触发器置1, 通道1可产生 软件DMA请求。,33,第4章 DMA技术,写出 8237A操作命令与各信号间的对应关系,读状态寄存器,写命令寄存器,写请求寄存器,写屏蔽寄存器某一位,写模式寄存器,清除置0/1触发器,读暂存寄存器,主清除(软件复位),清除屏蔽寄存器,写屏蔽寄存器所有位,34,第4章 DMA技术,练习:下面是用0通道从磁盘输入32KB的数据块,传送到 内存 08000H 开始的区域(增量传送), 采用块传 送方式,传送不自动预置, 外设的DREQ和DACK 均为高电平有效。8237A端口地址00H0FH,初始 化程序如下,请写出每次写入到端口寄存器数据的 含义。,35,第4章 DMA技术,MOV AL ,04H OUT 0AH , AL MOV AL ,84H OUT 0BH , AL MOV AL , 00H OUT 0CH , AL MOV AL , 00H OUT 00H , AL MOV AL , 80H OUT 00H , AL MOV AL , 00H OUT 01H , AL MOV AL , 80H OUT 01H , AL MOV AL , 00 OUT 0AH , AL MOV AL , 80H OUT 08H , AL,;写模式控制字(块传送,地址增量、不 ;传送,不自动预置,;通道0屏蔽触发器置1,;通道0的先 / 后触发器置0,;写入0通道基地址和当前地址寄存器低8位,;写入0通道基地址和当前地址寄存器高8位,;写入0通道基字节和当前字节寄存器低8位,;写入0通道基字节和当前字节寄存器高8位,;写屏蔽寄存器(清除通道0的屏蔽),;写入命令寄存器(DREQ、DACK为高电 平、固定优先级),36,第4章 DMA技术,例:DMA 读/写传送 利用DMA请求方式,将用户程序数据段的3行测试 电文写入到指定的存储器中,然后再将存储器中的 电文传送到用户程序的数据段缓冲区,最后把缓冲 区中的电文显示中屏幕上, 验证 DMA 读写传送的 结果。电文如下: THE QUICK BROWN FOX JUMPS OVER

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论