




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第4章DMA技术,主要内容:1、DMA传送的特点2、DMA传送的过程3、DMA传送的方式4、DMA控制器5、DMA系统6、DMA传送的应用重点内容:DMA方式的有关概念及应用,2,第4章DMA技术,一、DMA方式(directmemoryaccess),直接存储器存取DMA是指计算机的外设与存储器之间或存储器与存储器间直接进行数据交换的一种方式。在这种方式下,DMA控制器拥有总线控制权,操纵数据在存储器与外设间直接传送,不需要CPU执行指令。,、DMA传送,DMA读传送,DMA写传送,存储单元传送,I/ORAM,RAMI/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位地址A7A0构成内存单元地址的偏移量。,AEN:地址允许输出信号允许8237将高8位地址输出至地址总线,同时使与CPU相连的地址锁存器无效,禁止CPU使用地址总线,AEN为低电平时,8237被禁止,CPU占用总线。,HRQ:总线请求输出信号当8237的任一个未屏蔽通道接收到DREQ请求时,8237向CPU输出HRQ信号,请求CPU出让总线的控制权。,CLK:时钟脉冲输入信号用以控制8237内部操作及数据传输率。,DREQ0DREQ3:DMA请求信号通道30分别对应DREQ3DREQ0,当外设请求DMA服务时,由I/O接口向8237发出DREQ请求信号,直到收到DMA响应信号DACK后,信号才撤消,在优先级固定方式下,DREQ0最高。,RESET:复位输入信号复位后8237处于空闲状态,清零内部各寄存器,并置位屏蔽触发器。,DACK0DACK3:DMA响应信号是8237对DREQ信号的响应,当8237接收到DMA响应信号后,开始DMA传送。,D0D7:8位数据总线CPU读取状态寄存器、现行地址寄存器、字节数计数器的内容并可向8237写入控制命令进行初化编程;在DMA传送期间输出当前地址寄存器中的地址与A7A0组成16位地址。,A0A3:地址线为输入信号时,用于8237内部寄存器寻址使用。为输出信号时,与A7A4构成内存地址单元的低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将命令字写入命令口的程序段为:MOVAL,00HOUT08H,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个通道的屏蔽触发器。MOVDX,DMA+0EHMOVAL,0OUTDX,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.5DMA系统,一、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,基/当前地址寄存器基/当前字节计数器,00H01H,C0HC2H,1,基/当前地址寄存器基/当前字节计数器,02H03H,C4HC6H,2,基/当前地址寄存器基/当前字节计数器,04H05H,C8HCAH,3,基/当前地址寄存器基/当前字节计数器,06H07H,CCHCEH,读状态寄存器/写控制寄存器写请求寄存器写单个通道屏蔽寄存器写方式字寄存器写清除先/后触发器读暂存寄存器/写总清除写清除屏蔽寄存器写4个通道屏蔽寄存器,08H09H0AH0BH0CH0DH0EH0FH,D0HD2HD4HD6HD8HDAHDCHCEH,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、05H0AH端口,使通道1的屏蔽触发器置1。2、方式命令字0BH端口,设置通道1的读/写方式。3、00CH端口,使端口1的先/后触发器置0,为基地址和基字节寄存器写入初始值规定先写低8位后写高8位的写入顺序。4、计算存储单元的20位物理地址。5、将物理地址的高4位83H端口,存入通道1的页面寄存器,低8位通道1的基本地址寄存器,中8位通道1基本地址寄存器。6、计数初值的低8位通道1的基字节寄存器,高8位通道1的基字节寄存器。7、01H0AH端口,解除通道1的屏蔽,准备响应DMA请求。若采用软件DMA请求,完成上述初始化后,在程序的适当位置。8、将05H09H端口,使通道1的请求触发器置1,通道1可产生软件DMA请求。,33,第4章DMA技术,写出8237A操作命令与各信号间的对应关系,读状态寄存器,写命令寄存器,写请求寄存器,写屏蔽寄存器某一位,写模式寄存器,清除置0/1触发器,读暂存寄存器,主清除(软件复位),清除屏蔽寄存器,写屏蔽寄存器所有位,34,第4章DMA技术,练习:下面是用0通道从磁盘输入32KB的数据块,传送到内存08000H开始的区域(增量传送),采用块传送方式,传送不自动预置,外设的DREQ和DACK均为高电平有效。8237A端口地址00H0FH,初始化程序如下,请写出每次写入到端口寄存器数据的含义。,35,第4章DMA技术,MOVAL,04HOUT0AH,ALMOVAL,84HOUT0BH,ALMOVAL,00HOUT0CH,ALMOVAL,00HOUT00H,ALMOVAL,80HOUT00H,ALMOVAL,00HOUT01H,ALMOVAL,80HOUT01H,ALMOVAL,00OUT0AH,ALMOVAL,80HOUT08H,AL,;写模式控制字(块传送,地址增量、不;传送,不自动预置,;通道0屏蔽触发器置1,;通道0的先/后触发器置0,;写入0通道基地址和当前地址寄存器低8位,;写入0通道基地址和当前地址寄存器高8位,;写入0通道基字节和当前字节寄存器低8位,;写入0通道基字节和当前字节寄存器高8位,;写屏蔽寄存器(清除通道0的屏蔽),;写入命令寄存器(DREQ、DACK为高电平、固定优先级),36,第4章DMA技术,例:DMA读/写传送
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鱼类生殖内分泌干扰机制-洞察及研究
- 2.1《立在地球边上放号》教学设计统编版高一语文必修上册
- 4.3相似多边形教学设计北师大版数学九年级上册
- 湖南天壹名校联盟2025年下学期高三9月联考物理(含答案)
- 2024-2025学年高中历史 专题二 商鞅变法 二 秦国的崛起(2)教学说课稿 人民版选修1
- 2025年中级电工技师证取证考试题库及答案
- 贵州国企招聘2025贵州盐业(集团)遵义有限责任公司招聘15人考试历年参考题附答案详解
- 绵阳市五八机器人科技有限责任公司外部公开招聘工作人员(2025年第三批次)笔试参考题库附带答案详解
- 湖南中南黄金冶炼有限公司2025届招聘考试历年参考题附答案详解
- 浙江国企招聘2025宁波市名山建设发展集团有限公司招聘4人笔试参考题库附带答案详解
- 机关档案管理工作培训课件
- 生物武器伤害及其防护课件
- 简约大气商业计划书项目融资模板
- 内经选读上古天真论课件
- GJB9001C标准内审员考试自测题试题含答案
- 一、长方体和正方体表面涂色的
- GB∕T 36667-2018 船舶和海上技术 船舶系泊和拖带设备舷内带缆桩(钢板型)
- 猪肉采购服务方案(完整版)
- kinetix6200和6500模块化多轴伺服驱动器用户手册
- 【图文】GB8624-2012建筑材料及制品燃烧性能分级(精)
- “日本经济”课程教学大纲
评论
0/150
提交评论