DMA控制器微型计算机技术.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《DMA控制器微型计算机技术.pptx》由会员分享,可在线阅读,更多相关《DMA控制器微型计算机技术.pptx(88页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、8.1 DMA控制器的一般结构和概要一、DMA概述 为了提高数据传送的速率,人们提出了直接存储器存取(DMA)的数据传送控制方式,即在一定时间段内,由DMA控制器取代CPU,获得总线控制权,来实现内存与外设或者内存的不同区域之间大量数据的快速传送。第1页/共88页二、DMADMA数据传送的工作过程外设向DMAC发出DMA传送请求。DMAC通过连接到CPU的HOLD信号向CPU提出DMA请求。CPU在完成当前总线操作后会立即对DMA请求做出响应。CPU的响应包括两个方面:n一方面,CPU将控制总线、数据总线和地址总线浮空,即放弃对这些总线的控制权;n另一方面,CPU将有效的HLDA信号加到DMA
2、C上,用此来通知DMAC,CPU已经放弃了总线的控制权。第2页/共88页二、DMADMA数据传送的工作过程(续)待CPU将总线浮空,即放弃了总线控制权后,由DMAC接管系统总线的控制权,并向外设送出DMA的应答信号。由DMAC送出地址信号和控制信号,实现外设与内存或内存不同区域之间大量数据的快速传送。DMAC将规定的数据字节传送完之后,通过向CPU发HOLD信号,撤消对CPU的DMA请求。CPU收到此信号,一方面使HLDA无效,另一方面又重新开始控制总线,实现正常取指令、分析指令、执行指令的操作。第3页/共88页需要注意的是,在内存与外设之间进行DMA传送期间,DMAC控制器只是输出地址及控制
3、信号,而数据传送是直接在内存和外设端口之间进行的,并不经过DMAC;对于内存不同区域之间的DMA传送,则应先用一个DMA存储器读周期将数据从内存的源区域读出,存入到DMAC的内部数据暂存器中,再利用一个DMA存储器写周期将该数据写到内存的目的区域中去。二、DMADMA数据传送的工作过程(续)第4页/共88页8.2 DMA控制器8237A的原理控制寄存器状态寄存器模式寄存器当前地址寄存器当前字节寄存器基本地址寄存器基本字节寄存器通道0通道1通道2通道3请求触发器屏蔽触发器第5页/共88页一、DMA控制器8237A的编程结构含有4个相互独立的通道,每个通道有独立的地址寄存器和字节数寄存器,而控制寄
4、存器、状态寄存器为四个通道所共用。每个DMA通道具有不同的优先权每个DMA通道可以分别允许和禁止每个DMA通道有4种工作方式,分别为:单字节传送、数据块传送、请求传送、级连方式。通道中地址寄存器的长度为16位,一次传送的最大长度可达64KB多个8237A芯片可以级连,扩展通道数第6页/共88页二、8237A的内部组成和结构第7页/共88页1四个独立的DMA通道 n每个通道都有一个16位的基地址寄存器,一个16位的基字节数计数器,一个16位的当前地址寄存器和一个16位的当前字节数计数器及一个8位的方式寄存器,方式寄存器接收并保存来自于CPU的方式控制字,使本通道能够工作于不同的方式下;第8页/共
5、88页2定时及控制逻辑电路 n对在DMA请求服务之前,CPU编程对给定的命令字和方式控制字进行译码,以确定DMA的工作方式,并控制产生所需要的定时信号;第9页/共88页3优先级编码逻辑 n对通道进行优先级编码,确定在同时接收到不同通道的DMA请求时,能够确定相应的先后次序。通道的优先级可以通过编程确定为是固定的或者是旋转的。第10页/共88页4 4共用寄存器 n除了每个通道中的寄存器之外,整个芯片还有一些共用的的寄存器:1个16位的地址暂存寄存器1个16位的字节数暂存寄存器1个8位的状态寄存器1个8位的命令寄存器1个8位的暂存寄存器,1个4位的屏蔽寄存器1个4位的请求寄存器第11页/共88页寄
6、存器名长 度(Bit)数量寄存器名长 度(Bit)数量基地址寄存器基字节数寄存器当前地址寄存器当前字节数寄存器地址暂存寄存器字节数暂存寄存器161616161616444411状态寄存器命令寄存器暂存寄存器方式寄存器屏蔽寄存器请求寄存器8886441114118237的内部寄存器 第12页/共88页5 582378237的三态缓冲器 n8237的数据引线,地址引线都有三态缓冲器,因而可以接也可以释放总线。第13页/共88页三、8237的外部结构 n8237是具有40个引脚的双列直插式集成电路芯片首先分类展开外部引脚首先分类展开外部引脚第14页/共88页1.请求与响应信号DREQ0DREQ3:D
7、MA通道请求。当外设需要请求DMA服务时,将DREQ信号置成有效电平,并要保持到产生响应信号。对应于四个独立的通道,DREQ的有效电平可以通过编程来加以确定,优先级可以固定,也可以旋转。HRQ:总线请求。8237A输出有效的HRQ高电平,向CPU申请使用系统总线。HLDA:总线响应。8237A接受来自CPU的响应信号HLDA,取得了总线的控制权。DACK0DACK3:DMA通道响应。8237A使请求服务的通道产生相应的DMA响应信号。第15页/共88页2.DMA传送控制信号A0A7:地址线。输出低8位存储器地址。DB0DB7:数据线。输出高8位存储器地址;存贮器与存贮器的传送期间,用于数据传送
8、。ADSTB:地址选通。DMA传送开始时,输出高有效,把在DB0DB7上输出的高8位地址锁存在外部锁存器中。AEN:地址允许。输出高有效,将锁存的高8位地址送入系统总线,与芯片此时输出的低8位地址组成16位存储器地址。第16页/共88页2.DMA传送控制信号(续)MEMR:存储器读。有效将数据从存储器读出MEMW:存储器写。有效将数据写入存储器IOR:I/O读。有效将数据从外设读出IOW:I/O写。有效将数据写入外设READY:准备好。DMA传送的S3下降沿检测到为低时,插入等待状态Sw,直到READY为高才进入第4个时钟周期S4。EOP:过程结束。DMA传送过程结束,输出一个低有效脉冲。外部
9、输入低脉冲信号,则终结DMA传送。第17页/共88页3.处理器接口信号CS:片选。低有效时,微处理器与8237A通过数据线通信,主要完成对8237A的编程。IOR:I/O读。读取8237A内部寄存器低电平有效的双向三态信号引脚。在空闲周期,它是一条输入控制信号,CPU利用这个信号读取8237内部状态寄存器的内容;而在DMA传送时,它是读端口控制信号输出引脚,与相配合,使数据由外设传送到内存。IOW:I/O写。写入8237A内部寄存器。低电平有效的双向三态信号引脚,其功能与相对应。第18页/共88页3.处理器接口信号(续1)nDB0DB7:8条双向数据线。用于8237A与微处理器进行数据交换。在
10、CPU控制系统总线时,可以通过DB0DB7对8237编程或读出8237的内部状态寄存器的内容;在DMA操作期间,由DB0DB7输出高8位地址信号A8A15,并利用ADSTB信号锁存该地址信号。在进行内存不同区域之间的DMA传送时,除了送出A8A15地址信号外,还分时输入从存储器源区域读出的数据,送入8237的暂存寄存器中,等到存储器写周期时,再将这些数据通过这8个引脚,由8237的暂存寄存器送到系统数据总线上,然后写入到规定的存储单元中去。第19页/共88页3.处理器接口信号(续2)nA3A0:4条双向三态的低位地址信号引脚。在空闲周期,接收来自于CPU的四位地址信号,用以寻址8237内部的不
11、同的寄存器(组);在DMA传送时,输出要访问的存储单元或者I/O端口地址的低4位。nA7A4:4条三态地址信号输出引脚。在DMA传送时,输出要访问的存储单元或者I/O端口地址的中4位。第20页/共88页3.处理器接口信号(续3)nCLK:时钟信号输入引脚,对于标准的8237,其输入时钟频率为3MHz,对于8237-2,其输入时钟频率可达5MHz。nRESET:复位信号,输入引脚,用来清除8237中的命令、状态请求和临时寄存器,且使字节指针触发器复位并置位屏蔽触发器的所有位(即使所有通道工作在屏蔽状态),在复位之后,8237工作于空闲周期SI。第21页/共88页四、8237A的两种工作状态作为从
12、模块工作时(空闲周期):当CPU把数据送到8237A的寄存器或者从8237A的寄存器取出时,8237如同接口一样作为总线的从模块工作,受CPU控制的工作状态。这时,8237A接收16位地址,用较高的12位地址产生片选信号,用底4位地址来选择内部寄存器。第22页/共88页四、8237A的两种工作状态(续)n作为主模块工作时(有效周期):当8237A作为主模块工作时,它会往总线上提供要访问的内存地址,地址的低8位放在A7A0,而地址的高8位放在D7D0。作为主模块工作时,8237A还必须输出必要 的 读 写 信 号,IOR、IOW、MEMR、MEMW。第23页/共88页8237A引脚的两种作用与与
13、CPU连接连接(从模块)的引脚(从模块)的引脚与外设连接与外设连接(主模块)的引脚(主模块)的引脚CLK、RESETA0A3、CS*、DB0DB7IOR*、IOW*HRQ、HLDAAEN、ADSTB、READY、EOP*A0A7、DB0DB7IOR*、IOW*、MEMR*、MEMW*DREQ0DREQ3、DACK0DACK3第24页/共88页五、五、8237的工作周期的工作周期 空闲周期当8237的任一通道都无DMA请求时,则其处于空闲周期或称为SI状态,空闲周期由一系列的时钟周期组成,在空闲周期中的每一个时钟周期,8237只做两项工作:8237A采样CS片选信号,该信号有效,CPU就要对82
14、37A进行读/写操作8237A还采样通道的请求输入信号DREQ,该信号有效,就进入有效周期进入有效周期进入有效周期第25页/共88页8237A采样到外设有DMA请求,就脱离空闲周期进入有效周期8237A作为系统的主控芯片,控制DMA传送操作DMA传送借用系统总线完成,其控制信号以及工作时序类似CPU总线周期进入进入DMADMA传送时序传送时序五、五、8237的工作周期的工作周期 有效周期第26页/共88页DMA传送时序DB0DB7DACKADSTBHRQDREQCLKS1S0S0SiSiS3S2S4S3S2SiSiS4HLDAAENA0A7MEMR(IOR)IOW(MEMW)S1状态输出16位
15、存储器地址AEN输出高电平,表示DMA传送S2状态输出DMA响应信号和控制信号DMA读:MEMR*和IOW*有效DMA写:IOR*和MEMW*有效S3和Sw状态检测数据传送是否能够完成,决定是否插入等待状态SwS4状态完成数据传送第27页/共88页六、8237A的工作方式DMA传送方式 单字节传送方式 数据块传送方式 请求传送方式 级连方式DMA传送类型 DMA读 DMA写 DMA检验存储器到存储器的传送第28页/共88页1.DMA传送单字节方式每次DMA传送时仅传送一个字节传送一个字节之后,当前字节数寄存器减1,当前地址寄存器加1或减1,HRQ变为无效每传送完这一个字节,8237A释放系统总
16、线,DMAC就将总线控制权交回CPU。若传送后使字节数从0减到FFFFH,则终结DMA传送或重新初始化特点:一次传送一个字节,效率略低DMA传送之间CPU有机会重新获取总线控制权第29页/共88页1.DMA传送数据块方式在这种传送方式下,DMAC一旦获得总线控制权,便开始连续传送数据。每传送一个字节,自动修改当前地址及当前字节数寄存器的内容,直到字节数寄存器从0减到FFFFH终止计数,或由外部输入EOP有效信号终结DMA传送,将总线控制权交给CPU。一次所传送数据块的最大长度可达64KB,数据块传送结束后可自动初始化。DREQ只需维持有效到DACK有效特点:一次请求传送一个数据块,效率高整个D
17、MA传送期间CPU长时间无法控制总线(无法响应其他DMA请求、无法处理中断等)第30页/共88页1.DMA传送请求方式DREQ信号有效就连续传送数据DREQ信号无效,DMA传送被暂时中止,8237A释放总线,CPU可继续操作DMA通道的地址和字节数的中间值仍被保持DREQ信号再次有效,DMA传送就继续进行如果字节数寄存器从0减到FFFFH,或者由外部送来一个EOP有效的信号,将终止计数特点:DMA操作可由外设利用DREQ信号控制传送的过程第31页/共88页1.DMA传送级连方式用于通过多个8237A级连以扩展通道第二级的HRQ和HLDA信号连到第一级某个通道的DREQ和DACK上第二级芯片的优
18、先权等级与所连通道的优先权相对应第一级只起优先权网络的作用,实际的操作由第二级芯片完成还可由第二级扩展到第三级等第32页/共88页1.DMA传送级连方式第33页/共88页2.DMA传输类型DMA读把数据由存储器传送到外设由MEMR有效从存储器读出数据,由IOW有效把这一数据写入外设DMA写把外设输入的数据写入存储器由IOR有效从外设输入数据,由MEMW有效把这一数据写入存储器。DMA检验空操作8237A不进行任何检验外设可以进行DMA校验存储器和I/O控制线保持无效,不进行传送第34页/共88页3.存储器到存储器的传送固定使用通道0和通道1通道0的地址寄存器存源区地址通道1的地址寄存器存目的区
19、地址,通道1的字节数寄存器存传送的字节数传送由设置通道0的软件请求启动每传送一字节需用8个时钟周期前4个时钟周期用通道0地址寄存器的地址从源区读数据送入8237A的临时寄存器后4个时钟周期用通道1地址寄存器的地址把临时寄存器中的数据写入目的区第35页/共88页4.DMA通道的优先权方式固定优先权方式优先权固定通道0优先权最高,通道1其次,通道2再次,通道3最低循环优先权方式优先权循环变化最近一次服务的通道在下次循环中变成最低优先权,其他通道依次轮流相应的优先权DMADMA传送不存在嵌套传送不存在嵌套第36页/共88页5.自动初始化方式每当DMA过程结束信号EOP产生时(不论是内部终止计数还是外
20、部输入该信号)用基地址寄存器和基字节数寄存器的内容,使相应的现行寄存器恢复为初始值,包括恢复屏蔽位、允许DMA请求这样就作好了下一次DMA传送的准备第37页/共88页1什么叫DMA传送方式?试说明DMA方式传送数据的主要步骤。2试比较DMA传输、查询式传输及中断方式传输之间的优缺点和适用场合?3DMA控制器芯片Intel8237有哪几种工作方式?各有什么特点?4Intel8237支持哪几种DMA传输类型?习题与思考第38页/共88页8.5 8237A的寄存器8237A共有10种内部寄存器,对它们的操作有时需要配合3个软件命令8237A的“软件命令”不需要通过数据总线写入控制字直接由地址和控制信
21、号译码实现全部都用地址全部都用地址A A0 0A A3 3区分区分第39页/共88页1基地址寄存器n用以存放16位地址,只可写入而不能读出。n在编程时,它与当前地址寄存器被同时写入某一起始地址,可用作内存区域的首地址或末地址。n在8237进行DMA数据传送的工作过程中,其内容不发生变化,只是在自动预置时,其内容可被重新写到当前地址寄存器中去。第40页/共88页2基字节数寄存器n用以存放相应通道需要传送数据的字节数,只可写入而不能读出。n在编程时它与当前字节数寄存器被同时写入要传送数据的字节数。n在8237进行DMA数据传送的工作过程中,其内容保持不变,只是在自动预置时,其内容可以被重新写到当前
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DMA 控制器 微型计算机 技术
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内