微机原理与接口技术——第8章DMA.ppt_第1页
微机原理与接口技术——第8章DMA.ppt_第2页
微机原理与接口技术——第8章DMA.ppt_第3页
微机原理与接口技术——第8章DMA.ppt_第4页
微机原理与接口技术——第8章DMA.ppt_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

1,直接存储器访问技术(DMADirectMemoryAccess),2,直接存储器访问(DMA)技术,基本概念:DirectMemoryAccess。DMA技术与中断技术一样,都是为提高系统的工作效率。采用程序传送数据的工作过程。大量数据的传送过程,提高效率。若通过CPU用程序进行数据传送。每传送一个数据至少要用两条指令。而在整传送过程中,CPU仅起了中间传递工作。,3,采用程序进行块数据移动,movcx,lengBack:moval,simovdi,alIncsiIncdiLoopback,movcx,lengback:inal,dxmovdi,alincdiloopback,4,采用程序进行块数据移动,5,除了专用的计算机系统外,一般的计算机系统要不断更换工作任务,因此经常要与外部设备进行数据交换,特别是与磁盘的数据交换。磁盘数据是按扇区为单位存储的。一次传送至少上百字节。DMA技术就是为加速大量数据传输过程发明的技术。在DMA期间,CPU让出对系统总线的控制权,由DMA控制器负责外部设备与存储器之间的数据传送。,6,磁盘结构,盘面:从横向看,每一存储数据的面,从上到下0,1N。磁道:每一盘面上一个个同心圆,从外到内0,1,M。扇区:直径将盘面分成若干相同块。0,1,P。柱面:从上到下,一系列的同心圆柱。磁头:磁盘的最小存储单位为扇区。,7,DMA方式的工作原理,DMA方式不使用指令(没有程序),而直接用硬件控制数据的传送。DMA传送期间,CPU让出系统总线的控制权,由DMA控制器控制数据传送。即在DMA过程中CPU无事可干。DMA方式数据传送的效率比CPU用程序传送高得多。,8,DMA方式的工作原理,9,DMA工作过程,I/O设备向DMAC发出DMA请求DMAC向CPU发出DMA请求CPU在完成当前指令的当前总线周期后,向DMAC发出响应信号CPU放弃对系统总线的控制,有DMAC接管DMAC向I/O设备发出DMA应答信号开始传送数据完成设定字节数据后,将总线交换给CPU,10,8237DMA控制器,角色1:作为CPU的一个外部(接口)芯片,接受8086/8088的管理1)对8237编程。2)能接受外设的DMA传送请求信号DREQ,并能向外设发出响应信号DACK。3)能向CPU发出总线请求信号HRQ,当CPU发出总线响应信号HLDA后,能接管对系统总线的控制权,并进入DMA方式。,11,8237DMA控制器,角色2:取代CPU用程序控制传送数据的各项功能:4)能对存储器寻址,并能修改地址指针。5)能发出读、写等控制信号,包括存储器访问信号和I/O端口访问信号。6)能决定传送的字节数,并能判断DMA传送是否结束。7)能发出DMA传送结束信号,释放系统总线。使CPU恢复对总线的控制权,12,DMA控制器8237A,在5MHz时钟频率下,其传送速率可达每秒1.6MB。每个8237A芯片有4个独立的DMA通道,即有4个DMA控制器(DMAC)。每个DMA通道具有不同的优先权,都可以分别被允许和禁止。每个通道有4种工作方式,一次传送的最大长度可以达64KB。,13,8237A引脚信号(1),请求和响应信号:DREQ0DREQ3(DMARequest):DMA通道请求信号,当外申请DMA传送时置有效,直到8237响应。信号有效形式可指定。HRQ(HoldRequest):8237向8086/8088的总线请求信号。高电平有效。HLDA(HoldAcknowledge):8086/8088对8237总线请求的响应。高电平有效。DACK0DACK3(DMAAcknowledge):8237对DMA通道请求的响应。有效信号形式可指定。,14,8237A引脚信号(2),控制信号:在DMA传送期间,这组信号控制系统总线,完成数据传送。A7A0(Address)地址总线;DB7DB0(DataBus)数据总线;(高位字节地址复用总线)。ADSTB(AdderssStrobe)地址选通信号;AEN(AddressEnable)地址允许信号;/:储器读/写信号;/:外设读/写信号;:DMA过程结束信号,双向。CLK(clock)时钟信号,8237工作时钟。,15,8237A引脚信号(3),8237与8086/8088CPU的接口信号:当8237A作为CPU外部芯片时,通过下列引脚,接受CPU管理和控制:DB7DB0:双向三态数据总线。(非复用)A3A0地址线:低4位地址总线。8237在系统中占16个地址单元。:片选信号。/:作为CPU外部芯片时的读/写信号。RESET复位,16,8086/8088微处理器,17,18,8237A内部结构,DMA通道寄存器:每个DMA通道都有各自的当前地址寄存器、当前字节数寄存器和基地址寄存器、基字节数寄存器,它们都是16位寄存器。四个通道共用的地址暂存器(16位)和字节计数暂存器(16位)控制和状态寄存器:模式寄存器(4个通道各有一个,6位的寄存器)、命令寄存器(8位)、状态寄存器(8位)、屏蔽寄存器(4位)、请求寄存器(4位)、临时寄存器(8位),19,DMA控制器结构示意图,20,21,8237A的工作时序,8237A有两种工作状态周期。空闲周期:受CPU控制的工作状态。8237A始终处于Si状态。在Si状态,每一个时钟周期都采样通道请求输入线DREQ。当信号有效时,CPU对8237A进行读写操作。有效周期:8237A作为系统总线主控芯片,控制DMA传送操作。有效周期为S0,S1S4周期,以及等待周期Sw。而S1S4为真正的DMA传送周期。,22,不同工作周期8237A引脚使用和定义,23,24,25,8237A的工作过程(1),在没有外设申请时,8237A始终处于Si周期。1、CPU将8237A作为一外部接口芯片,随时可对8237A进行编程,或读8237寄存器状态。随时监测2、检测DREQ,当检测到有DMA请求时,8237进入有效周期,S0状态,向CPU请求,并一直处于S0状态,等待CPU响应(HLDA)。此时CPU仍控制8237A。当HLDA信号有效后,进入DMA传送的S1状态。完整的DMA传送周期由S1、S2、S3、S4四个状态组成。,26,8237A的工作过程(2),S1状态:高地址锁存。地址允许信号AEN有效,8237A开始控制系统总线。数据总线输出高8位地址,A7A0输出低8位地址。ADSTB为外部地址锁存信号,开始有效。S2状态:ADSTB锁存高8位地址,存储单元的低8位地址在A7A0;8237A向外设输出DMA响应信号DACK。S3状态:“读控制”信号有效。数据出现在数据总线上。S4状态:“写控制”信号有效,此时,读、写信号同时有效。S4状态末,“读、写控制”信号均无效,完成外设和存储器之间的一个数据传送。,27,8237A的工作过程(3),若在S4状态结束前不能完成数据的传送,则只需使READY信号线变低,就可以在S3(S2)和S4状态间插入Sw等待状态。直到READY变高,才进入S4。用DMA传送数据,要求存储器区地址是连续的。因此,许多时候地址的高8位不变,只是低8位改变。所以,输出和锁存高8位地址的S1状态不需要,可直接进入S2状态。因此普通时序的DMA传输只要S2、S3和S4三个状态。如果外设的速度足够高,则还可省去S3。因此,压缩DMA传输时序只要S2和S4二个状态。,28,8237A的工作过程(4),这个过程一直继续到把规定字节的数据传送完,终止计数TC(TerminalCounter,即当前字节数寄存器减到零之后,又减1到0FFFFH)。一个完整的DMA传送过程结束,8237A重新进入空闲周期,等待新的DMA请求。DMA传送实现了外设与存储器之间的直接数据传送,传送的数据既不进入8237A内部,也不进入CPU。DMA控制器不提供I/O端口地址(地址线上总是存储器地址),进行DMA传送的外设应负责将数据送到接口或从接口取得数据。,29,8237A的DMA传送数据时序图,30,31,8237工作状态转移,32,8237A传送方式(1),8237A有4种DMA传送方式,并可以实现存储器到存储器的传送。DMA传送方式1:单字节传送。每次DMA传送仅传送一个字节。传送一个字节之后,当前字节数寄存器减l,当前地址寄存器加1(或减1),HRQ变为无效,8237A释放系统总线,将控制权还给CPU;若传输未完成,HRQ很快再次变成有效,重新申请DMA。直到全部数据传送完成。这种传送方式是CPU和DMA控制器轮流控制系统总线,速度慢。优点是CPU可重新获得总线控制权。,33,8237A的工作方式(2),DMA传送方式2:数据块传送方式。在这种方式下,8237A由DREQ启动,当8237A获得总线控制后,连续地传送数据,直到字节数寄存器从0减到0FFFFH,终止计数;或者由外部输入有效的EOP信号,终止DMA传送过程。这种传输方式效率高,一次DMA过程最多可传输64K字节的数据。其缺点是,在整个DMA传送期间CPU无法控制总线。(CPU无法处理中断。),34,8237A的工作方式(3),DMA传送方式3:请求传送方式在这种方式下,DREQ信号有效,8237A连续传送数据;但当DREQ信号无效时,DMA传送被暂时中断,8237A释放总线,CPU得到总线控制权。但DMA传输并未终止,DMA通道的地址和字节数的当前值,仍保持在相应通道的当前地址和当前字节数寄存器中。当外设又准备好进行传送时,只要使DREQ信号再次有效,DMA传送就继续进行下去。当字节数寄存器从0减到FFFFH,或者由外部送来一个有效的EOP信号(无论是正在传输,或处于DMA传送中断状态),都可终止DMA传送过程。其特点是可由外设利用DREQ信号控制DMA操作和传送速率。,35,8237A的工作方式(4),DMA传送方式4:级连方式(cascade)这种方式用于多个8237A级连以扩展通道。第二级的HRQ和HLDA信号连到第一级某个通道的DREQ和DACK上。第二级芯片的优先权等级与所连的通道相对应。在这种情况下,第一级只起优先权网络的作用,除了接受级连8237A来的DREQ信号、向CPU输出HRQ信号外,和接受并向级连的8237A传送CPU的DACK外,并不输出任何其它信号。实际的DMA传送工作由第二级芯片完成。8237A还可进一步级连扩展。,36,8237A级连示意,37,8237A传输类型,8237A分三种传送类型:读、写和校验读:数据从存储器到外设,采用的读写信号为MEMR和IOW。写:数据外设从到存储器,采用的读写信号为IOR和MEMW。校验:是一伪读、写过程。8237A工作如同读和写过程,修改地址、计数值,和产生正常的EOP信号等。但引脚不产生读、写控制信号。它用来进行器件测试。,38,存储器到存储器的传送,将数据块从存储器空间的某一地址段传送到存储器空间的另一地址段过程。固定使用8237A的通道0和通道l。其中,通道0的地址寄存器存源数据地址,通道l的地址寄存器存数据目的地址,通道1的字节数寄存器为要传送的字节数。8237A利用临时寄存器作为被传送数据的暂存寄存器。每传送一个数据要8个状态周期。前4个时钟周期为读数据,根据通道0地址寄存器的地址,读出数据,送入8237A的临时寄存器;后4个时钟周期为写数据,把临时寄存器中的数据写入通道1地址寄存器指向的内存单元。,39,存储器到存储器的传送,存储器-存储器通过设置通道0的软件请求启动。8237A向CPU发出HRQ请求信号,等待HLDA响应后传送开始。每传送一个字节后,源地址和目的地址都要修改,传送字节数减1。直到通道1的字节数寄存器从0减到0FFFFH,终止计数,并在EOP端输出一个脉冲。存储器到存储器的传送过程也可以由外部来的EOP信号中止。存储器到存储器方式,还可以允许源通道的地址寄存器不变,即传到目的寄存器块的是同一地址单元的数据。(块填充)。,40,存储器到存储器的传送时序,41,存储器存储器传送时序,42,DMA通道的优先权方式,每一8237A有4个独立的DMA通道,有两种优先权方式。不论采用哪种优先权方式,在某个通道获得服务后,其它通道无论优先权高低,均必须等待到服务结束。即DMA传送不存在嵌套过程。1)固定优先权方式:4个通道的优先权是固定的,依次通道0优先权最高,通道3最低。2)循环优先权方式:4个通道的优先权是循环变化的最近一次服务的通道,在下次循环中变成最低优先权。,43,自动初始化方式,8237A要能正常传输数据,必须先进行初始化,如传送数据地址、传送字节数等。所谓自动初始化方式是指每当DMA过程结束信号(EOP)产生时(无论是内部由计数终止产生的,还是由外设输入的),都用基地址寄存器和基字节数寄存器的内容,恢复为当前地址寄存器和当前字节数寄存器的初始值,包括恢复屏蔽位、允许DMA请求等。这样就完成了下一次DMA传送的准备工作。,44,8237A的寄存器,8237A共有10种内部寄存器,它们由8237A的地址总线A3A0区分。寄存器名称,字长与数量见下表。,45,46,地址寄存器,当前地址寄存器:保持DMA传送的当前地址值,每次传送后寄存器的值自动加1(或减l)。若8237设置为自动初始化,发出命令同时,将重新置为基地址寄存器保存的值。可以读/写。基地址寄存器:存放与当前地址寄存器相联系的初始值。CPU在写当前地址寄存器时,同时写基地址寄存器。基地址寄存器的值在DMA传输过程中不会修改,并且不能读出。这两个寄存器均为16位,每一通道一个。,47,字节数寄存器,当前字节数寄存器:保持DMA传送的剩余字节数,每次传送后自动减l。当它的值从0变为0FFFFH时,产生命令。若8237置为自动初始化,发出命令同时,将重新置为基字节数寄存器保存的值。如果需要传送N个字节,初始化编程时写入字节数寄存器的值应为N-1。基字节数寄存器:存放与当前字节数寄存器相联系的初始值。DMA传输过程中不会修改,并且不能读出。这两个寄存器均为16位,每一通道一个。,48,高低触发器,8237A的当前地址寄存器和当前字节数寄存器都是16位的,8237A数据总线为8位。8237A内部有一个高低触发器,用于控制读写16位寄存器的高字节或低字节。当触发器为0时,对低字节操作;为1时,对高字节操作。软、硬件复位之后,该触发器被清为零。每当对16位的寄存器进行一次操作(读写8位)后,该触发器自动改变状态。对16位寄存器的读出或写入分两次连续进行。软件命令A3A2A1A0=1100:读,使高/低触发器清零;写,使高/低触发器置1。,49,8237A模式寄存器,设置8237A通道的工作模式;每一个通道都有一个模式寄存器;每个模式寄存器为6位,格式见下图。四个寄存器共用一个外部地址;由模式寄存器最低两位编码区分通道。,50,8237A命令寄存器,每片8237A仅有一个命令寄存器,8位;设置8237A芯片的操作方式,对4个通道同时起作用,复位时清零。,51,8237A命令寄存器,D2=1时,8237A才可以作为DMA控制器工作。D0=1时,允许存储器到存储器的传送方式。通道0的地址寄存器存放源地址。D1=1,则在整个存储器到存储器传送过程中,始终保持同一个源地址,实现将目的存储区域用相同值填充功能。D3=1,压缩时序(2个时钟周期)。D5=1,写信号扩展到S3状态就有效(只有正常时序有效)D6、D7两位分别设置请求信号与响应信号的有效电平。,52,8237A请求寄存器,请求寄存器为一个四位的寄存器,每一通道一触发器。对请求寄存器操作只有最低3位有意义。除了可以通过硬件DREQ信号提出DMA请求外,也可以通过软件发出DMA请求。若是存储器到存储器传送,则必须由软件请求启动通道0。,CPU通过写入请求寄存器。其中D1D0决定写入的通道,D2决定是置位(请求),还是复位。内部TC(终止计数)或外部的信号复位相应位。RESET信号使整个寄存器清除。,53,8237A屏蔽寄存器,与请求寄存器类似,8237A内部对每一通道有一屏蔽寄存器,用于控制外设通过DREQ发出的硬件DMA请求是否能被响应(0为允许)。对它的操作有两种方式,通过不同的地址区别命令:(1)单通道屏蔽字(A3A2A1A01010)只对一个DMA通道屏蔽位进行设置。(2)主屏蔽字(A3A2A1A01111)对4个DMA通道屏蔽位同时进行设置。,54,另有总清屏蔽寄存器命令(A3A2A1A01110),同时清零4个屏蔽位,都允许DMA请求。8237A芯片复位时,4个通道全置于屏蔽状态。如果不是工作在自动初始化方式,当一个通道DMA过程结束,这一通道的屏蔽位置位,必须再次清屏蔽位,才能进行下一次DMA传送。,8237A屏蔽寄存器,55,8237A状态寄存器,保存8237A当前状态,CPU可读取。复位、总清时,清零。低4位:每个通道是否产生TC(terminalcount,为1,表示该通道传送结束),复位、总清时,或每次读操作后,它们被清零。高4位:每个通道的DMA当前请求DMA情况(为1,表示该通道有请求),只要有外部请求,对应位置一,不管该通道是否屏蔽。,56,8237A时寄存器,外设与存储器之间进行DMA传输时,数据只出现在数据总线上,并不进入8237A。存储器到存储器传送方式时,要访问两个存储器单元,系统只有一条地址总线。必须要有一数据临时存储地方。8237内部的临时寄存器用于暂存传送的数据。存储器到存储器传送要两个DMA周期,才能完成一个数据传送。前一个为读,后一个为写。并且每个周期都需要完整的S1S4状态。传送结束时,临时寄存器中保留的是最后一次传送的数据(字节)。复位或总清命令清零临时寄存器。,57,58,8237A软件命令,8237A作为CPU外围芯片时,只有4根地址线A3A0,一般来讲可有16个可写单元和16个可读单元。8237A完全用硬件实现数据传输,传送过程没有程序。8237A有一组特殊的命令,它们不是由数据格式确定,而是由I/O操作和地址编码确定。数据总线无意义.8237A软件命令如下:,59,60,8237A软件命令,主清除命令(A3A2A1A01101)也使高/低触发器清零。同时该软件命令还使命令、状态、请求、临时寄存器清零,使屏蔽寄存器置为全1(即屏蔽状态),使8237A处于空闲周期。8237A当前(基)地址寄存器、当前(基)字节寄存器均为16位。8237数据总线为8位,必须分两次读、写。高/低触发器确定先读高8位,还是低8位。清除为先低后高。当读出(或写入)一字节后,触发器自动翻转。为可靠在读写前先对高/低触发器设置。,61,8237A软件命令,清模式寄存器计数器(A3A2A1A01110):每一通道有一模式寄存器,但只有一个地址可读模式寄存器。在读模式寄存器前先执行本命令(从形式上为读命令),用来初始化8237内部模式计数器(2位),然后逐个读取各通道的模式寄存器,(从0通道起)。清屏蔽寄存器(A3A2A1A01110):总清所有通道屏蔽位。,62,8237A的编程,8327A芯片的初始化编程:只要写入命令寄存器。必要时,可以先输出主清除命令,对8237A进行软件复位,然后写入命令字。DMA通道的DMA传送编程,需要多个写入操作:1)将存储器起始地址写入地址寄存器(如果采用地址减量工作,则是结尾地址)。2)将本次DMA传送的数据个

温馨提示

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

最新文档

评论

0/150

提交评论