下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十六讲DMA机制,河南大学计算机与信息工程学院授课人:金勇,联系电话mail:jy,计算机专业核心课程之一,DMA机制,DMA原理S3C2410DMA控制器DMA实验,2,DMA机制,DMA原理S3C2410DMA控制器DMA实验,3,4,DMA(DirectMemoryAccess)技术是一种高速的数据传输方式,允许在外部设备和存储器之间、存储器与存储器之间等直接传输数据。DMA方式传输特点中断方式下,CPU需要执行多条指令,占用一定的时间;而DMA传送1个字节只占用CPU的1个总线周期。DMA的响应速度比中断快。IO设备发出中断请求后,CPU要执行完当前指令后才
2、给予响应并且要保护现场,而DMA请求是在总线周期执行完后即可响应。对于快速的IO设备,中断方式,其传输速度已无法满足要求。必须采用DMA方式来完成快速IO设备的数据传送的操作。,DMA概述,5,DMA原理,DMA传输将数据从一个地址空间复制到另外一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA传输对于高效能嵌入式系统算法和网络是很重要的。在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。
3、即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。,6,HOLD和HLDA用于DMA方式请求和响应,DMAC(DMA控制器)是DMA传送的核心电路。DMA传送过程一般分为如下四个阶段:请求阶段;响应阶段;数据传输阶段;传输结束阶段。,DMA传送过程,7,DMA传送过程,1)DMA请求CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。,8,DMA传送过程,2)DMA响应DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线
4、裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。,9,DMA传送过程,3)DMA传输DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过程中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。,10,DMA传送过程,4)DMA结束当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。当I/O接口收到结束信号后,一方面停止I/O设备的工作,另一方面向CPU提
5、出中断请求,并执行一段检查本次DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。,11,DMA传送方式,1)停止CPU访问内存当外围设备要求传送一批数据时,由DMA控制器发一个停止信号给CPU,要求CPU放弃对地址总线、数据总线和有关控制总线的使用权DMA控制器获得总线控制权以后,开始进行数据传送在一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU在这种DMA传送过程中,CPU基本处于不工作状态或者保持状态,优点:控制简单,它适用于数据传输率很高的设备进行成组传送。缺点:在DMA控制器访内阶段,内存的效能没有充分发挥,相当一部分内存工作
6、周期是空闲的。这是因为,外围设备传送两个数据之间的间隔一般总是大于内存存储周期,即使高速I/O设备也是如此。,12,DMA传送方式,2)周期挪用:当I/O设备没有DMA请求时,CPU按程序要求访问内存;一旦I/O设备有DMA请求,则由I/O设备挪用一个或几个内存周期。,13,I/O设备要求DMA传送时可能遇到两种情况:(1)此时CPU不需要访内,如CPU正在执行乘法指令。由于乘法指令执行时间较长,此时I/O访内与CPU访内没有冲突,即I/O设备挪用一二个内存周期对CPU执行程序没有任何影响。(2)I/O设备要求访内时CPU也要求访内,这就产生了访内冲突,在这种情况下I/O设备访内优先,因为I/
7、O访内有时间要求,前一个I/O数据必须在下一个访内请求到来之前存取完毕。显然,在这种情况下I/O设备挪用一二个内存周期,意味着CPU延缓了对指令的执行,或者更明确地说,在CPU执行访内指令的过程中插入DMA请求,挪用了一二个内存周期。,DMA传送方式,2)周期挪用:,周期挪用的方法既实现了I/O传送,又较好地发挥了内存和CPU的效率,是一种广泛采用的方法。但是I/O设备每一次周期挪用都有申请总线控制权、建立线控制权和归还总线控制权的过程,所以传送一个字对内存来说要占用一个周期,但对DMA控制器来说一般要25个内存周期(视逻辑线路的延迟而定)。因此,周期挪用的方法适用于I/O设备读写周期大于内存
8、存储周期的情况。,14,DMA传送方式,3)DMA与CPU交替访内如果CPU的工作周期比内存存取周期长很多,此时采用交替访内的方法可以使DMA传送和CPU同时发挥最高的效率。假设CPU工作周期为1.2s,内存存取周期小于0.6s,那么一个CPU周期可分为C1和C2两个分周期,其中C1供DMA控制器访内,C2专供CPU访内。,15,DMA传送方式,3)DMA与CPU交替访内,这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1和C2分时制的。CPU和DMA控制器各自有自己的访内地址寄存器、数据寄存器和读/写信号等控制寄存器。在C1周期中,如果DMA控制器有访内请求,可将地址、数据
9、等信号送到总线上。在C2周期中,如CPU有访内请求,同样传送地址、数据等信号。事实上,对于总线,这是用C1,C2控制的一个多路转换器,这种总线控制权的转移几乎不需要什么时间,所以对DMA传送来讲效率是很高的。这种传送方式又称为“透明的DMA”方式,其来由是这种DMA传送对CPU来说,如同透明的玻璃一般,没有任何感觉或影响。在透明的DMA方式下工作,CPU既不停止主程序的运行,也不进入等待状态,是一种高效率的工作方式。当然,相应的硬件逻辑也就更加复杂。,DMA机制,DMA原理S3C2410DMA控制器DMA实验,16,17,S3C2410芯片的DMA系统拥有4个独立通道的DMA控制器,每个通道的
10、DMA控制器都可以控制处理芯片内部与内部之间、芯片内部与外部之间、芯片外部与外部之间的数据传输。每一个DMA通道都可以处理以下4种情况的DMA操作:1)源设备和目的设备都在内部系统总线上。2)源设备在内部系统总线上,目的设备在外部总线上。3)源设备在外部总线上,目的设备在内部系统总线上。4)源设备和目的设备都在外部总线上。,S3C2410DMA控制器,概述,18,在H/W请求模式(硬件请求模式)下,S3C2410芯片中的4个DMA通道的每一个通道都可以从5个DMA源中选择一个DMA请求源。但在S/W请求模式(软件请求模式)下,DMA请求源就没有任何意义。,S3C2410DMA控制器,DMA请求
11、源,【注】nXDREQ0和nXDREQ1表示两个外部源(外部设备),I2SSDO和I2SSDI分别表示IIS的发送和接收。,19,DMA请求模式:表明一个DMA操作是由谁发起的。S3C2410芯片支持2种DMA请求模式:S/W请求模式H/W请求模式DMA传输模式:描述DMA操作触发后,数据传输的同步。DMA传输模式也有2种:询问模式(demandmode)握手模式(handshakemode)DMA服务模式:描述了传输操作如何结束。单独服务模式整体服务模式,S3C2410DMA控制器,DMA模式,20,S3C2410芯片的DMA操作可以用包含三个状态的有限状态机(finitestatemach
12、ine,FSM)来表述,具体描述如下:状态1(state-1):初始状态,DMA等待DMA请求。若请求到达,进入状态2。此阶段,DMAACK和INTREQ都为0。状态2(state-2):在此状态,DMAACK变为1,计数器的值(CURR_TC)从DCON19:0寄存器加载。注意:DMAACK仍然为1,直到它随后被清0。状态3(state-3):在此状态,对DMA进行原子操作的subFSM(子状态机)被初始化。subFSM(子状态机)从源地址读取数据然后将数据写入目的地址。在此操作中,要考虑数据大小和传输的尺寸,S3C2410DMA控制器,DMA工作过程,21,注意:在单独服务模式下,主状态机
13、的三个状态执行完后,DMA通道就会停止操作,然后等待另一个DMAREQ信号。如果有另一个DMAREQ信号,DMA将重复这样的三个状态。因此,每个基本的DMA传输过程中设置DMAACK信号有效或无效。在整体服务模式中,主状态机一直在状态3等待,直到计数器(CURR_TC)值变成0。所以DMAACK信号在这个传输过程中有效,直到计数器(CURR_TC)为0,DMAACK信号无效。但是不管服务模式如何,只有计数器(CURR_TC)变成0,中断请求信号INTREQ才有效。,S3C2410DMA控制器,DMA工作过程,一个基本的DMA传输操作是指在DMA操作期间执行成对的读写周期。在所有模式下,XnXD
14、REQ信号和XnXDACK信号的启动时间和延迟时间是一致的。如果XnXDREQ信号完成时,恰好遇到一个新的启动时间,它将会被同步2次后再使XnXDACK信号有效。在XnXDACK信号有效之后,DMA请求总线,如果其获得总线控制权,就执行DMA传输操作。在DMA传输操作完成后,XnXDACK被设无效。,S3C2410DMA控制器,基本DMA时序,询问模式和握手模式取决于XnXDREQ信号和XnXDACK信号之间的关系。在询问模式下,若XnXDREQ信号一直有效,前一个基本的DMA传输操作结束后,下一个基本的DMA传输操作会立即开始;若XnXDREQ信号不是一直有效,那么需要等待XnXDREQ信号
15、有效后,再在XnXDACK信号有效后启动一次DMA基本传输操作。在握手模式下,一个基本的DMA传输操作结束后,DMA控制器要判断XnXDREQ信号的状态。如果XnXDREQ无效,DMA控制器在经过2个周期后使XnXDACK无效。否则,就需等待,直到XnXDREQ信号无效。,S3C2410DMA控制器,询问模式/握手模式时序,24,Unit传输/Burst传输时序S3C2410芯片的一个基本DMA传输操作中,所传输的数据大小有2种:Unit传输的1个数据单位和Burst传输的4个数据单位。Unit传输时,一个基本的DMA传输操作完成一次读和一次写。Burst传输时,一个基本DMA传输操作完成四次
16、连续读和四次连续写。,S3C2410DMA控制器,25,外部DMA请求/应答时序有三种类型的外部DMA请求/应答协议(单独服务请求,单独服务握手和整体服务握手模式)。每种模式都定义了像DMA请求和应答信号和这些协议如何相关。,询问模式下单独服务,S3C2410DMA控制器,26,握手模式下整体服务,握手模式下单独服务,27,S3C2410芯片中有4个独立的DMA通道,每个DMA通道均有9个控制寄存器(其中6个用于控制DMA传输,3个用于监视DMA控制器的状态),因此,其DMA控制器共有36个寄存器DMA源起始地址寄存器(DISRCn)DMA源起始控制寄存器(DISRCCn)DMA目的起始地址寄
17、存器(DIDSTn)DMA目的起始控制寄存器(DIDSTCn)DMA控制寄存器(DCONn)DMA屏蔽寄存器(DMASKTRIG)DMA状态寄存器(DSTATn)DMA当前源地址寄存器(DCSRCn)DMA当前目的地址寄存器(DCDSTn),S3C2410DMA寄存器,28,1.传输控制寄存器,用于控制DMA传输操作的寄存器有6个,主要用来控制DMA传输时的:源地址起始值目的地址起始值数据块长度DMA模式等信息。,29,(1)DMA源起始地址寄存器,DMA源起始地址寄存器(DISRCn)共有4个:DISRC0、DISRC1、DISRC2、DISRC3,分别对应4个独立的DMA通道。这4个寄存器
18、地址分别为0 x4B000000、0 x4B000040、0 x4B000080、0 x4B0000C0,复位后的初值为0 x00000000,且都是可读可写的。,30,(2)DMA源起始控制寄存器,DMA源起始控制寄存器(DISRCCn)共有4个:DISRCC0、DISRCC1、DISRCC2、DISRCC3,分别对应4个独立的DMA通道。这4个寄存器地址分别为0 x4B000004、0 x4B000044、0 x4B000084、0 x4B0000C4,复位后的初值为0 x00000000,且都是可读可写的。,31,(3)DMA目的起始地址寄存器,DMA目的起始地址寄存器(DIDSTn)共
19、有4个:DIDST0、DIDST1、DIDST2、DIDST3,分别对应4个独立的DMA通道。这4个寄存器地址分别为0 x4B000008、0 x4B000048、0 x4B000088、0 x4B0000C8,复位后的初值为0 x00000000,且都是可读可写的。,32,(4)DMA目的起始控制寄存器,DMA目的起始控制寄存器(DIDSTCn)共有4个:DIDSTC0、DIDSTC1、DIDSTC2、DIDSTC3,分别对应4个独立的DMA通道。这4个寄存器地址分别为0 x4B00000C、0 x4B00004C、0 x4B00008C、0 x4B0000CC,复位后的初值为0 x0000
20、0000,且都是可读可写的。,33,DIDSTn寄存器的格式,34,(5)DMA控制寄存器,DMA控制寄存器(DCONn)共有4个:DCON0、DCON1、DCON2、DCON3,分别对应4个独立的DMA通道。这4个寄存器地址分别为0 x4B000010、0 x4B000050、0 x4B000090、0 x4B0000D0,复位后的初值为0 x00000000,且都是可读可写的。,35,36,37,(6)DMA屏蔽触发寄存器,DMA屏蔽触发寄存器(DMASKTRIGn)共有4个:DMASKTRIG0、DMASKTRIG1、DMASKTRIG2、DMASKTRIG3,分别对应4个独立的DMA通道。这4个寄存器地址分别为0 x4B000020、0 x4B000060、0 x4B0000A0、0 x4B0000E0复位后的初值为0 x00000000,且都是可读可写的。,38,39,2.状态寄存器,用来记录DMA传输状态的寄存器有3个,可以通过这些寄存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国华润有限公司工作人员招聘考试笔试试题(含答案)
- 2026年技术经纪人职业技能水平评价测试备考
- XX小学2026年春季学期少先队工作规范化建设推进会大队辅导员发言
- XX高中2026年春季学期学生评教结果分析与整改措施
- AI辅助撰写高质量金融科技风险防范研究报告
- 团队会议组织与安排工具高效会议指南
- 技术参数规格变更确认函3篇
- 信息安全维护保证承诺书(8篇)
- 客户服务热线接听规范与问题解决工具
- 产品品质抽检及质量控制框架
- 缺血性肠病课件
- 违纪违法反面典型案例剖析材料汇编3篇
- 黄金冶炼项目可行性研究报告
- 胆囊癌完整版本
- 第15课《十月革命与苏联社会主义建设》中职高一下学期高教版(2023)世界历史全一册
- 十期牛黄清心丸
- 缠论-简单就是美
- JT-T-798-2019路用废胎胶粉橡胶沥青
- 手术室应对特殊感染手术的应急预案
- 2.1科学探究感应电流的方向课件-高二物理(2019选择性)
- (正式版)JBT 14793-2024 内燃机质量评价规范
评论
0/150
提交评论