直接存储器存取.pptx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 直接 存储器 存取
- 资源描述:
-
第六章 直接存储器存取DMA 6.1.1 DMA的传送原理的传送原理 DMA方式用硬件实现存储器与存储器之间或存储器与I/O设备之间直接进行高速数据传送,不需要CPU的干预。这种方式通常用来传送数据块。DMA传送包括:RAMI/O端口的DMA读传送;I/O端口 RAM的DMA写传送;RAMRAM的存储单元传送。6.1 DMA的工作原理及工作过程的工作原理及工作过程 第六章 直接存储器存取DMA DMA传送的基本特点是不经过CPU,不破坏CPU内各寄存器的内容,直接实现存储器与I/O设备之间的数据传送。在IBM PC系统中,以DMA方式传送一个字节的时间通常是1个总线周期,即5个时钟周期。CPU内部的指令操作只是暂停这个总线周期,然后继续操作,指令的操作次序不会被破坏。所以DMA传送的方式特别适合用于外部设备与存储器之间高速成批的数据传送。图6-1是实现DMA传送的基本原理图,图中以系统总线为界,左侧位于主机板内,其中有DMA控制器;右侧有存储器(部分存储器在主机板内)、外设和外设接口,它们通过I/O插槽与系统总线相接。第六章 直接存储器存取DMA 图6-1 DMA传送的基本原理图 第六章 直接存储器存取DMA 6.1.2 DMA的工作过程的工作过程 图 6-2 DMA的传送过程 第六章 直接存储器存取DMA 从图中可以看出,系统总线分别受到CPU和DMAC这两个器件的控制,即CPU可以向地址总线、数据总线和控制总线发送信息,DMAC也可以向地址总线、数据总线和控制总线发送信息。但是,在同一时间,系统总线只能受一个器件控制。当CPU控制总线时,DMAC必须与总线脱离;而当DMAC控制总线时,CPU必须与总线脱离。因此,CPU与DMAC之间必须有联络信号。第六章 直接存储器存取DMA 1.DMA的传送过程的传送过程 DMA传送的工作过程如下:(1)I/O端口向DMA控制器发出DMA请求,请求数据传送。(2)DMA控制器在接到I/O端口的DMA请求后,向CPU发出总线请求信号,请求CPU脱离系统总线。(3)CPU在执行完当前指令的当前总线周期后,向DMA控制器发出总线响应信号。(4)CPU随即和系统的控制总线、地址总线及数据总线脱离关系,处于等待状态,由DMA控制器接管这3个总线的控制权。第六章 直接存储器存取DMA (5)DMA控制器向I/O端口发出DMA响应信号。(6)DMA控制器把进行DMA传送涉及到的RAM地址送到地址总线上。如果进行I/O端口RAM传送,DMAC向I/O端口发出I/O读命令,向RAM发出存储器写命令;如果进行RAMI/O端口传送,DMAC向RAM发出存储器读命令,向I/O端口发出I/O写命令,从而完成一个字节的传送。(7)当设定的字节数传送完毕,DMA传输过程结束后,也可以由来自外部的终止信号迫使传输过程结束。当DMA传送结束后,DMA控制器就将总线请求信号变成无效,并放弃对总线的控制,CPU检测到总线请求信号无效后,也将总线响应信号变成无效,于是,CPU重新控制三总线,继续执行被中断的当前指令的其他总线周期。第六章 直接存储器存取DMA 2.DMA的传送方式的传送方式 DMA用硬件在外设与内存之间直接进行数据交换。通常系统的数据和地址总线以及一些控制信号线(如IO/、RD、WR等)是由CPU管理的,在DMA方式下,就要求 CPU让出总线(也就是将这些总线置为高阻状态),而由DMA控制器(DMAC)接管总线。通常,大部分DMA都有三种DMA传送方式。(1)单字节传送方式。每次DMA传送只传送一个字节的数据,传送后释放总线,CPU至少控制一个完整的总线周期,然后测试DMA请求线DREQ,若有效,再进入DMA周期。第六章 直接存储器存取DMA 在这种方式中要注意:DMA响应信号DACK有效前,DREQ必须保持有效。若DREQ在传送过程中一直保持有效,则在两次传送之间必须释放总线。(2)成组传送方式。一个DMA请求可以传送一组信息。在DMAC初始化时,由编程决定这一组信息的字节数,只要在DACK有效之前DREQ保持有效即可。一旦DACK有效,不管DREQ是否有效,DMAC一直不放弃总线控制权,直到整个数组传送完。(3)请求传送方式。请求传送方式又称查询传送方式。该方式的传送类似成组传送方式,但每传送一个字节后,DMAC就检测DREQ:若无效,则挂起;若有效,则继续DMA传送,直到外加信号强制DMAC中止操作。第六章 直接存储器存取DMA 3.DMA 的特点的特点 DMA具有下列特点:(1)它使主存既可被CPU访问,又可被外设直接访问。(2)当传送数据块时,主存地址的确定、传送数据的计数控制等都用硬件电路直接实现。(3)主存中要开设专用缓冲区,及时供给和接收外设的数据。(4)DMA传送速度快,可使CPU和外设并行工作,提高了系统的效率。(5)DMA在开始前和结束后要通过程序和中断方式进行预处理和后处理。第六章 直接存储器存取DMA 6.2 DMA控制器及控制器及8237DMA控制器控制器 6.2.1 8237A的外部引脚的外部引脚 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的介入。第六章 直接存储器存取DMA 8237A的基本功能如下:的基本功能如下:(1)一个芯片中有4个独立的DMA通道。(2)每一个通道的DMA请求都可以被允许或禁止。(3)每个通道的DMA请求有不同的优先级,既可以是固定优先级,也可以是循环优先级。(4)每个通道一次传送的最大字节数为64 KB。(5)8237A提供4种传送方式:单字节传送方式、数据传送方式、请求传送方式和级联传送方式。第六章 直接存储器存取DMA 图 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 (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 (3)控制逻辑。在DMA周期内,控制逻辑通过产生相应的控制信号和16位要存取的内存单元地址来控制DMA的操作步骤。初始化时,通过对方式寄存器进行编程,使控制逻辑可以对各个通道的操作进行控制。第六章 直接存储器存取DMA 图6-4 8237A引脚图第六章 直接存储器存取DMA 各个信号说明如下:CLK:时钟输入端,通常接到8234时钟发生器的输出引脚,用来控制8237A内部操作定时和DMA传送时的数据传送速率。8237A的时钟频率为3 MHz,8237A-5的时钟频率为5 MHz,后者是8237A的改进型,工作速度比较高,但工作原理及使用方法与8237A相同。CS:片选输入端,低电平有效。第六章 直接存储器存取DMA RESET:复位输入端,高电平有效。当RESET有效时,屏蔽寄存器被置1(4个通道均禁止DMA请求),其他寄存器均清0,8237A处于空闲周期,所有控制线都处于高阻状态,并禁止4个通道的DMA操作。复位后必须重新初始化;否则8237A不能进入DMA操作。READY:“准备就绪”信号输入端,高电平有效。当所选择的存储器或I/O端的速度比较慢,需要延长传输时间时,使READY端处于低电平,8237A就会自动地在存储器读和存储器写周期中插入等待周期。当传输完成时,READY端变为高电平,以表示存储器或I/O设备准备就绪。第六章 直接存储器存取DMA ADSTB:地址选通输出信号,高电平有效。当此信号有效时,8237A当前地址寄存器的高8位经数据总线DB7DB0锁存到外部地址锁存器中。AEN:地址允许输出信号,高电平有效。AEN把外部地址锁存器中锁存的高8位地址输出到地址总线上,与芯片直接输出的低8位地址一起共同构成内存单元的低16位地址。MEMR:存储器读信号,低电平有效,输出,只用于DMA传送。在DMA读周期期间,用于从所寻址的存储器单元中读出数据。MEMW:存储器写信号,低电平有效,输出,只用于DMA传送。在DMA写周期期间,用于将数据写入所寻址的存储器单元中。第六章 直接存储器存取DMA IOR:I/O读信号,低电平有效,双向。当CPU控制总线时,它是输入信号,CPU读8237A内部寄存器;当8237A控制总线时,它是输出信号,与MEMW相配合,控制数据由I/O端口传送至存储器。IOW:I/O写信号,低电平有效,双向。当CPU控制总线时,它是输入信号,CPU写8237A内部寄存器(初始化)。当8237A控制总线时,它是输出信号,与MEMR相配合,把数据从存储器传送至I/O端口。第六章 直接存储器存取DMA EOP:DMA传送过程结束信号,低电平有效,双向。当DMA控制的任一通道计数结束时,会从EOP引脚输出一个低电平,表示DMA传输结束。而当外部向DMA控制输入EOP信号时,DMA传送过程将被强迫结束,无论是从外部终止DMA过程,还是内部计数结束引起DMA过程终止,都会使DMA控制器的内部寄存器复位。DREQ0DREQ3:DMA请求输入信号,有效电平可由编程设定。这4条DMA请求线是外设为取得DMA服务而送到各个通道的请求信号。在固定优先级的情况下,DREQ0的优先级最高,DREQ3的优先级最低。在优先级循环方式下,某通道的DMA请求被响应后,随即降为最低级。8237A用DACK 信号作为对DREQ的响应,因此在相应的DACK 信号有效之前,DREQ信号必须维持有效。第六章 直接存储器存取DMA DACK0DACK3:DMA对各个通道请求的响应信号,输出的有效电平可由编程设定。8237A接收到通道请求后,向CPU发出DMA请求信号HRQ,当8237A获得CPU送来的总线允许信号HLDA后,便产生DACK信号,送到相应的I/O端口,表示DMA控制器响应外设的DMA请求,从而进入DMA服务过程。HRQ:8237A输出给CPU的总线请求信号,高电平有效。当外设的I/O端口要求DMA传送时,向DMA控制器发送DREQ信号,如果相应的通道屏蔽位为0,即DMA请求未被屏蔽,则DMA控制器的HRQ端输出为有效电平,从而向CPU发出总线请求。第六章 直接存储器存取DMA HLDA:总线响应信号,高电平有效,是CPU对HRQ信号的应答信号。当CPU接收到HRQ信号后,在当前总线周期结束之后让出总线,并使HLDA信号有效。A3A0:地址总线低4位,双向。当CPU控制总线时,它们是地址输入线。CPU用这4条地址线对DMA控制器的内部寄存器进行寻址,完成对DMA控制器的编程。当8237A控制总线时,由这4条线输出要访问的存储单元的最低4位地址。A7A4:地址线,输出,只用于在DMA传送时,输出要访问的存储单元的低8位地址中的高4位。第六章 直接存储器存取DMA DB7DB0:8位双向数据线,与系统数据总线相连。在CPU控制总线时,CPU可以通过I/O读命令从DMA控制器中读取内部寄存器的内容,送到DB7DB0,以了解8237A的工作情况。也可以通过I/O写命令对DMA控制器的内部寄存器进行编程。在DMA控制器控制总线时,DB7DB0输出要访问的存储单元的高8位地址(A15A8),并通过ADSTB锁存到外部地址锁存器中,和A7A0输出的低8位地址一起构成16位地址。第六章 直接存储器存取DMA 8237A仅支持64 KB寻址,为了访问超过64 KB范围的其他地址空间,系统中增设了页面寄存器。在PC/XT微机系统中,每一通道的页面寄存器是4位寄存器。当一个DMA操作周期开始时,相应的页面寄存器内容就放到系统地址总线A19A16上,和8237A送出的16位低地址一起,构成20位物理地址。第六章 直接存储器存取DMA 6.2.2 8237A的工作方式的工作方式 DMA控制器8237A依靠它的可编程特性可以实现对多种DMA传送方式的控制。用程序的方法置入控制字(或称命令字)可以设置和改变DMA传送方式。置入控制寄存器的控制字控制着与整个DMA控制器有关的工作方式。置入各通道内方式寄存器的控制器的控制字控制着本通道的工作方式。8237A在DMA传送时有4种工作方式。第六章 直接存储器存取DMA 1 单字节传送方式单字节传送方式 单字节传送方式是编程为一次只传送一个字节,数据传送后字节计数器减量,地址要相应修改(增量或减量取决于编程),HRQ变为无效,释放系统总线。若传送使字节数减为零,TC产生或者终结DMA传送,或重新初始化。在这种方式下,DREQ 信号必须保持有效,直至DACK 信号变为有效,但是若DREQ有效的时间覆盖了单字节传送所需要的时间,则8237A在传送完成一个字节后,先释放总线,然后再产生下一个DREQ,完成下一个字节的传送。在8080/8086系统中,这样的方法在两次DMA传送之间,CPU至少执行一个机器周期。第六章 直接存储器存取DMA 2 成组传送方式成组传送方式 在成组传送方式下,8237A DREQ启动后,开始连续地传送数据,直至字节计数器减到零,产生TC,或者由外部输入有效的EOP信号来终结DMA传送。在这种方式下,DREQ 信号需要维持到数据块传送完成或终结操作。第六章 直接存储器存取DMA 3 请求传送方式请求传送方式 在请求传送方式下,8237A可以进行连续的数据传送。当出现以下三种情况之一时停止传送。字节数计数减到零,产生TC;由外界送来一个有效的EOP信号;外界的DREQ信号变为无效。当由于第三种情况停止传送时,8237A释放总线,CPU可以继续操作,而8327A的地址和字节数的中间值可以保持在相应通道的现行地址和字节数寄存器中,只要外设准备好了要传送的新的数据,当DREQ再次有效就可以继续传送。第六章 直接存储器存取DMA 4 级联方式级联方式 级联方式用于通过级联以扩展通道。第二级的HRQ和HLDA信号连到第一级的DREQ和DACK上,如图6-5所示。第二级各个片子的优先权等级与所连的通道相对应。在这种工作情况下,第一级只起优先权网络的作用,除了由某一个二级的请求向CPU输出HRQ信号外,并不输出任何其他信号,实际的操作是由第二级的片子完成的,若有需要,还可以由第二级扩展到第三级等等。第六章 直接存储器存取DMA 第六章 直接存储器存取DMA 在前三种工作方式下,DMA传送有三种类型:DMA读、写和校验。DMA读传送是把数据由存储器传送至外设,操作时由MEMR有效从存储器读出数据,由IOW有效把数据传送给外设。DMA写传送是把由外设输入的数据写至存储器中,操作时由IOR信号有效从外设输入数据,由MEMW有效把数据写入内存。校验操作是一种空操作,8237A本身并不进行任何校验,而只是像DMA读传送或DMA写传送一样产生时序和地址信号,但是存储器和I/O控制线保持无效,所以并不进行传送,而外设可以利用这样的时序进行校验。第六章 直接存储器存取DMA 存储器到存储器传送。8237A可以通过编程指定这种工作方式,这时就要用到两个通道,通道 0的地址寄存器编程为源区地址;通道 1的地址寄存器编程为目的地址。字节数寄存器编程为传送的字节数,传送由设置一个通道0的软件DREQ启动。8237A按正常方式向CPU 发出DMA请求信号HRQ,待CPU 用HLDA信号响应后传送就可以开始,每传送一个字节要用8个时钟周期,4个时钟周期以通道0为地址,从源区读数据送入8237A的临时寄存器;另4个时钟周期以通道1为地址把临时寄存器中的数据写入目的区,每传送一个字节,源地址和目的地址都要修改,字节数减1。传送一直进行到通道1的字节数计数器减到零,产生TC,引起在EOP端输出一个脉冲,结束DMA传送。第六章 直接存储器存取DMA 6.2.3 8237A的内部寄存器的内部寄存器 表表6-1 8237A内部寄存器内部寄存器 第六章 直接存储器存取DMA 1.控制寄存器控制寄存器 图6-6 控制寄存器格式 第六章 直接存储器存取DMA (1)D0:规定8237A是否工作在存储器传送方式。8237A约定:当进行存储器之间的数据传送时,由通道0提供源地址,通道1提供目的地址并进行字节计数。每传送一个字节需要两个总线周期,第1个总线周期先将源地址单元的数据读入8237A的暂存器,第2个总线周期再将暂存器的内容放到数据总线上,然后在写信号的控制下,写入目的地址单元。第六章 直接存储器存取DMA (2)D1:在存储器向存储器传送时,起控制作用。(3)D2:用来启动和停止8237A的工作。(4)D3:8237A可以有两种工作时序,一种是正常时序,一种是压缩时序。如果系统各部分速度比较高,便可以工作于压缩时序,这样可以提高DMA数据的传输速率。第六章 直接存储器存取DMA (5)D4:选择各通道DMA请求的优先级。当D4=0时为固定优先级,即通道0优先级最高,通道3的优先级最低;当D41时为循环优先级,即在每次DMA服务之后,各个通道的优先级都发生变化。比如,某次传输前的优先级次序为2301,那么在通道2进行一次传输之后,优先级次序成为3012。如果这时通道3没有DMA请求,而通道0有DMA请求,那么,在通道0完成DMA传输后,优先级次序成为1230。DMA的优先级排列顺序只是用来决定同时请求DMA服务的通道的响应次序,而任何一个通道一旦进入DMA服务后,其他通道必须等到该通道的服务结束后,才可以进行DMA服务。第六章 直接存储器存取DMA (6)D5:若D5=1,则选择扩展的写信号(IOW/MEMW比正常时序提前一个状态周期)。(7)D6,D7:确定DREQ和DACK的有效电平极性。对这两位如何设置,取决于I/O端口对DREQ信号和DACK信号的极性要求。控制字是4个通道必须共同遵循的原则。在PC系列机中,当BIOS初始化时,已将控制寄存器设定为00H,即禁止存储器到存储器的传送,允许读/写操作,使用正常时序,固定优先级,不扩展写信号,DREQ高电平有效,DACK低电平有效。第六章 直接存储器存取DMA 2.方式寄存器方式寄存器 8237A的每个通道都有一个方式寄存器,4个通道的方式寄存器共用一个端口地址,方式选择命令的格式如图6-7所示。方式字的最低两位进行通道选择,写入命令字之后,8237A将根据D1和D0的编码把方式寄存器的D7D2位送到相应通道的方式寄存器中,从而确定该通道的传送方式和数据传送类型。8237A各通道的方式寄存器是6位的,CPU不可寻址。第六章 直接存储器存取DMA 图6-7 方式寄存器格式 第六章 直接存储器存取DMA (1)DMA传送方式。8237A提供4种传送方式,每个通道可以用其中之一进行工作。单字节传送方式。每次DMA操作只传送一个字节的数据,然后自动地把总线控制权交给CPU,让CPU占用至少一个总线周期。若又有DMA请求信号,8237A重新向CPU发出总线请求,等获得总线控制权后,再传送下一个字节数据。数据块传送方式。进入DMA操作后,连续传送数据直到整个数据块全部传送完毕。第六章 直接存储器存取DMA 请求传送方式。该方式与数据块传送方式类似,只是在每传送一个字节后,8237A都对DMA请求信号DREQ进行测试。若检测到端变为无效电平,则马上暂停传输,但测试过程仍然进行,当DREQ又变为有效电平时,就在原来的基础上继续进行传输,直到传送结束。级联传输方式。为了实现DMA系统扩展,几个8237A可以进行级联。第六章 直接存储器存取DMA (2)DMA数据传送的类型。方式选择命令字的D3位和D2位确定数据传送的类型,即写传送、读传送和校验传送。写传送是将数据从I/O端口读出并写入存储单元。读传送是将数据从存储单元读出并写入I/O端口。校验传送是一种虚拟传送,8237A本身并不进行数据传送,而只是像DMA读传送或DMA写传送那样产生时序和地址信号,但存储器和I/O端口的读/写控制信号无效。校验传送一般在器件测试时使用。当D4位为1时,通道有“自动重装功能”。D5位控制“当前地址寄存器”的工作方式,规定地址是增量修改还是减量修改。第六章 直接存储器存取DMA 3.地址寄存器地址寄存器 每个通道有一个16位的基地址寄存器和一个16位的当前地址寄存器。基地址寄存器存放本通道DMA传输时所涉及到的存储区首地址或末地址,这个初始值是在初始化编程时写入的,同时也被写入当前地址寄存器。当进行DMA传送时,由当前地址寄存器向地址总线提供本次DMA传送时的内存地址(低16位)。当前地址寄存器的值在每次DMA传输后自动加1或减1,为传送下一个字节作好准备。在整个DMA传送期间,基地址寄存器的内容保持不变。当通道初始化选择“自动重装”功能时,一旦全部字节传送完毕,基地址寄存器的内容自动重新装入当前地址寄存器。第六章 直接存储器存取DMA 4.字节寄存器字节寄存器 每个通道有一个16位的基本字节寄存器和一个16位的当前字节寄存器,基本字节寄存器存放本通道DMA传输时字节数的初值。8237A规定:初值比实际传输的字节数少1。初值是在初始化编程时写入的,同时,初值也被写入当前字节寄存器。在DMA传送时,每传送一个字节,当前字节寄存器自动减1,当初值由0减到FFFFH时,产生计数结束信号,EOP端输出有效电平。当通道初始化选择“自动重装”功能时,一旦全部字节传送完毕,基本字节寄存器的内容自动重新装入当前字节寄存器。基本字节寄存器预置初值后将保持不变,也不能被CPU读出,而当前字节寄存器中的内容可以随时由CPU读出。第六章 直接存储器存取DMA 5.状态寄存器状态寄存器 状态寄存器的格式如图6-8所示。状态寄存器的高4位表示当前4 个通道是否有DMA请求,低4位指出4个通道的DMA传送是否结束,供CPU查询。它与控制器共用一个端口地址。图6-8 状态寄存器的格式 第六章 直接存储器存取DMA 6.请求寄存器和屏蔽寄存器请求寄存器和屏蔽寄存器 请求寄存器和屏蔽寄存器是4个通道公用的寄存器,使用时应写入请求命令和屏蔽命令字,其格式如图6-9所示。8237A根据请求寄存器的D2D0位,将相应通道的请求触发器置“1”,使用通道提出“软件DMA请求”。8237A根据屏蔽寄存器的D2D0位,将相应通道的屏蔽触发器置“1”(或清“0”)。当一个通道的屏蔽触发器置1后,它将屏蔽来自引脚DREQ的硬件DMA请求,同时,也屏蔽来自请求寄存器的软件DMA请求。因此,在对通道初始化之前,应使屏蔽触发器置“1”,而在初始化之后,应使屏蔽触发器清“0”。第六章 直接存储器存取DMA 图 6-9 请求寄存器和屏蔽寄存器 第六章 直接存储器存取DMA 7.多通道屏蔽寄存器多通道屏蔽寄存器 8237A允许使用一个屏蔽字一次完成对4个通道的屏蔽置,格式如图6-10所示。其中,D0D3对应于通道03的屏蔽触发器,若某一位为1,则对应通道的屏蔽触发器置1。第六章 直接存储器存取DMA 图 6-10 多通道屏蔽寄存器 第六章 直接存储器存取DMA 无论是RESET复位还是软件复位,屏蔽寄存器均被置1,DMA请求被禁止。另外,如果一个通道没有设置自动重装功能,那么,一旦DMA传送结束,EOP信号有效,会自动置1屏蔽触发器。因此,在对DMA通道进行初始化时必须清除屏蔽触发器。其方法为:对端口DMA+0EH进行一次写操作,即可清除4个通道的屏蔽触发器。第六章 直接存储器存取DMA 8.先先/后触发器后触发器 8237A只有8根数据线,而基地址寄存器和基本字节寄存器都是16位,在预置初值时需要分两次进行,每次写入一个字节。先/后触发器是为初值的写入顺序而设置的,在使用先/后触发器时,先将其清“0”,然后按先低位,后高位的顺序写字节。第六章 直接存储器存取DMA 9.暂存寄存器暂存寄存器 暂存寄存器为4通道共用的8位寄存器。在DMA控制器实现存储器到存储器的传送方式时,它暂存中间数据,CPU可以读取暂存寄存器中的内容,其值为最后一次传送的数据。第六章 直接存储器存取DMA 6.3 8237A的初始化编程的初始化编程 6.3.1 8237A的寻址及连接的寻址及连接 8237A内部共占用16个I/O端口地址,由地址码的A3A0控制,恰好对应00001111的16种组合。表6-2给出了端口地址的分配关系。第六章 直接存储器存取DMA 第六章 直接存储器存取DMA 需要说明以下两点:(1)地址0H7H(00000111)分配给4个通道的地址初值寄存器和地址计数器、字节数值寄存器和字节计数器。每个寄存器都是16位,无论是写入还是读出都需要两次。内部逻辑中有个字节指向触发器F接成计数方式工作。若F触发器为0,则读、写时指向低位字节;若F为1,则读、写时指向高位字节。每次读、写后F改变状态。表6-2还指出,对地址0CH(1100)执行输出指令(AL寄存器可为任意值),将使F触发器初始化为0。第六章 直接存储器存取DMA (2)16个I/O端口地址中,除分配给内部编址寄存器的外,还有几个用于形成软件命令。这些命令是:对8237A总清等效于外接RESET信号,占用地址1101;对请求寄存器清零,占用地址1110;还有已经提到的对字节指向触发器F的清零。这3种命令都是用输出指令实施的。指令中AL寄存器的内容不起作用,可为任意值。第六章 直接存储器存取DMA 6.3.2 8237A的初始化的初始化 8237A的初始化编程:(1)命令字写入控制寄存器。在初始化时必须设置寄存器,以确定其工作时序、优先级方式、DREQ和DACK的有效电平及是否允许工作等。在PC系列机中,当BIOS初始化时,已将通道的控制寄存器设定为00H,禁止存储器到存储器的传送,允许读、写传送,正常时序,固定优先级,不扩展写信号,DREQ高电平有效,DACK低电平有效。因此在PC微机系统中,如果借用DMA CH1进行DMA传送,则在初始化编程时,不应再向控制寄存器写入新的命令字。第六章 直接存储器存取DMA (2)屏蔽字写入屏蔽寄存器。当某通道正在进行初始化编程时,接收到DMA请求,可能本初始化结束,8237A就开始进行DMA传送,从而导致出错。因此,初始化编程时,必须先屏蔽未初始化的通道,在初始化结束后再解除对该通道的屏蔽。(3)方式字写入方式寄存寄器。规定通道传送类型及工作方式。(4)置0先/后触发器。对端口地址DMA+0CH执行一条输出指令,从而产生一个写命令,即可置0先/后触发器,为初始化基地址寄存器和基本字节寄存器作准备。第六章 直接存储器存取DMA (5)写入基地址和基本字节寄存器。把DMA操作所涉及到的存储区首地址或末地址写入地址寄存器,把要传送的字节数减1,写入基本字节寄存器。这几个寄存器都是16位的,因此写入要分两次进行;先写低8位,后写高8位。(6)解除屏蔽。初始化空间通道的屏蔽寄存器写入D2D00的命令,将相应通道的屏蔽触发器置0,准备响应DMA请求。(7)写入请求寄存器。如果采用软件DMA请求,在完成通道初始化之后,在程序的适当位置向请求寄存器写入D2D0=1命令,即可使相应通道进行DMA传送。第六章 直接存储器存取DMA 6.4 DMA的应用举例的应用举例 18237A在在IBM PC/AT系统中的应用系统中的应用 286微机系统使用两片8237A级联,如图6-11所示。它提供了7个DMA通道,通道03支持8位数据传送,通道57支持16位数据传送。PC/AT有专门的动态RAM刷新电路,硬盘驱动器,通道4作为两个DMA控制器的级联,其余均保留备用。PC/AT DMAC寄存器I/O端口地址如表6-3所示。第六章 直接存储器存取DMA 第六章 直接存储器存取DMA 图6-11 IBM PC/AT的DMA控制电路第六章 直接存储器存取DMA 图6-12 扩大8327A寻址范围示意图 第六章 直接存储器存取DMA 在进行DMA读/写传送之前,程序要把DMA传送所涉及到的RAM单元的高8位物理地址写入到相关通道的页面寄存器中,把RAM单元低16位物理地址写入到相关通道的基本地址寄存器中,把DMA传送的实际字节数减1,写入到相关通道的基本字节寄存器中,从而做好初始化准备。一旦I/O端口有DMA请求,并且DMAC控制系统三总线之后,由相关通道的DMA应答信号控制把页面寄存器的内容送到地址总线高8位,由DMAC把相关通道的低16位地址经过外部地址锁存和驱动送到低16位地址总线上,选择某一存储单元。在PC/AT系统中,页面寄存器采用的三态输出存储器映像器74612来实现。在高档微机中,DMAC和相关页面寄存器都被兼容的多功能芯片所取代。页面寄存器的I/O端口地址见表6-4。第六章 直接存储器存取DMA 第六章 直接存储器存取DMA 2.编程举例编程举例 若要利用通道0,由外设(磁盘)输入32 KB的一个数据块,传送至内存8000H开始的区域(增量传送),采用块传送的方式,传送完不自动初始化,外设的DREQ和DACK都为高电平有效。要编程,首先要确定端口地址。地址的低4位用以区分8237A的内部寄存器,高4位地址A7A4经译码后连至片选端CS,假定选中时高4位为5。第六章 直接存储器存取DMA(1)方式控制字。方式控制字。第六章 直接存储器存取DMA(2)屏蔽控制字。屏蔽控制字。第六章 直接存储器存取DMA (3)命令字。命令字。第六章 直接存储器存取DMA 初始化程序如下:OUT 5DH,AL ;输出主清除命令MOV AL,00H OUT 50H,AL ;输出基和现行地址的低8位MOV AL,80HOUT 50H,AL ;输出基和现行地址的高8位MOV AL,00HOUT 51H,ALMOV AL,80HOUT 51H,AL ;给基和现行字节数赋值MOV AL,84HOUT 5BH,AL ;输出工作方式字MOV AL,00HOUT 5AH,AL ;输出屏蔽控制字MOV AL,0A0HOUT (58H),AL ;输出命令字展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




直接存储器存取.pptx



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4556830.html