CN1825292A - 一种直接存储器存取装置及单通道双向数据交互实现方法 - Google Patents
一种直接存储器存取装置及单通道双向数据交互实现方法 Download PDFInfo
- Publication number
- CN1825292A CN1825292A CN 200510008817 CN200510008817A CN1825292A CN 1825292 A CN1825292 A CN 1825292A CN 200510008817 CN200510008817 CN 200510008817 CN 200510008817 A CN200510008817 A CN 200510008817A CN 1825292 A CN1825292 A CN 1825292A
- Authority
- CN
- China
- Prior art keywords
- data
- dma
- address
- source address
- logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
本发明公开了一种直接存储器存取装置,包括总线Slave接口、DMA请求和响应接口、总线Master接口、控制逻辑和寄存器组、通道逻辑和寄存器组、中断请求逻辑,关键是,通道逻辑和寄存器组中每个DMA通道的控制逻辑包括:通道控制逻辑,用于控制第一和第二状态选择单元的状态切换,并控制数据从源地址到DMA通道到目的地址的读入和读出;第一和第二数据缓冲区,存储不同方向读入DMA通道的数据;第一和第二状态选择单元,将来自源地址的数据读入第一或第二数据缓冲区,并将第二或第一数据缓冲区的数据发往目的地址。本发明还公开了一种单通道双向数据交互的实现方法,该装置和方法能使每个DMA通道支持双向数据交互,提高资源利用率和DMA工作效率,且降低DMA芯片的成本。
Description
技术领域
本发明涉及直接存储器存取技术,特别是指一种直接存储器存取装置及其实现单通道双向数据交互的方法。
背景技术
直接存储器存取(DMA,Direct Memory Access)是微机系统中提高数据传输效率的一项重要技术,DMA技术可以实现在存储空间的不同区域之间搬移和交换数据,这种存取访问一般无须CPU的介入,由DMA控制器完成所有的控制。具体来说:在支持DMA方式实现数据传输的系统中,DMA和CPU都挂接在系统总线上,一般情况下,由CPU控制系统总线,DMA只是工作于从属状态的受控模块,而采用DMA方式实现的数据传输就是在一定时间段内,由DMA取代CPU获得系统总线的控制权,将数据块从指定区域取出或保存到指定区域中,DMA完成数据传输后,再将系统总线的控制权交还给CPU,这种情况下,DMA可以以CPU时钟的速度控制进行数据吞吐,具有较高的数据吞吐率。
通常,DMA控制器也可以称为DMA或DMA装置,DMA一般有多个彼此独立的通道,每个通道可以进行不同地访问控制,比如:读取数据或保存数据,每个通道可以进行不同内容的DMA传输。现有DMA的组成结构如图1所示,包括总线Slave接口101、DMA请求和响应接口102、控制逻辑和寄存器组103、通道逻辑和寄存器组104、总线Master接口105以及中断请求逻辑106。其中,微处理控制单元(MCU)通过总线Slave接口101来配置DMA中的控制寄存器,实现对DMA各种工作模式的控制功能;DMA请求和响应接口102主要用来处理内存到外设、外设到内存以及外设到外设的DMA传送请求和应答信号;控制逻辑和寄存器组103由MCU通过总线Slave接口101来配置,实现对DMA各种工作模式的控制功能;通道逻辑和寄存器组104,由MCU通过总线Slave接口101来配置,实现对DMA各个通道参数的设置;总线Master接口105用于实现对挂接在此总线上的内存和外设间数据的DMA搬移;中断请求逻辑106的作用是:当DMA有特殊情况发生时,比如某通道传输结束或失败,由中断请求逻辑106来通知MCU,MCU查询DMA的相关寄存器,实现相应的控制,从而完成DMA与MCU之间信息和数据的交互。
这里,通道逻辑和寄存器组104提供DMA搬移所用的通道,对应DMA的n个通道,每个通道都有一组专用的寄存器和控制逻辑,用来表示通道的传输特性,反应通道的当前状态,控制逻辑的组成结构如图2所示,包括:FIFO201,用于缓冲输入数据,实现通道的FIFO控制功能;通道控制逻辑202,完成对FIFO201、源地址控制逻辑203和目的地址控制逻辑204的控制,具体说就是:对源地址、目的地址的地址属性进行控制,例如:控制采用8或16或32比特位宽的地址访问、一次访问后地址是否增长、读取的数量大小、FIFO的深度设定等功能;源地址控制逻辑203用于从源地址读取数据到DMA通道,信号207表示从源地址读取的数据;目的地址控制逻辑204用于从DMA通道发送数据到目的地址,信号208表示发送到目的地址的数据;通道控制逻辑202通过控制信号205对源地址控制逻辑203进行控制,通过控制信号206对目的地址控制逻辑204进行控制,信号207和信号208均与图1中的总线Master接口105相连。
以外设与内存之间实现DMA传输为例,外设和内存都可以分别作为源地址和目的地址,由DMA实现源地址与目的地址之间的数据搬移。其中,外设到内存的DMA传输如图3a所示,内存到外设的DMA传输如图3b所示。图3a中,外设作为源地址,内存作为目的地址,301a和302a分别表示随机存储器(RAM)中两块大小相等的内存RAM DST0和RAM DST1;图3b中,内存作为源地址,外设作为目的地址,301b和302b分别表示随机存储器(RAM)中两块大小相等的内存RAM SRC0和RAM SRC1;图3a和图3b中,实线表示数据流,点划线表示控制流,DMA303用于实现外设和内存之间的DMA传输,外设304可以是任意的外部设备,CPU305用于配置和控制DMA,实现DMA的信息交互。
为了降低系统延时、节约缓冲区空间,通常采用乒乓方式读取或存放数据,乒乓操作的实现原理如图4所示。图4中,数据缓冲模块可以为任何存储模块,比如:双口RAM(DPRAM,Dual Port RAM)、单口RAM(SPRAM,Single PortRAM)、先进先出(FIFO,First In First Out)缓存器等。在第一个缓冲周期,将输入的数据流缓存到数据缓冲模块1;在第2个缓冲周期,通过输入数据流选择单元的切换,将输入的数据流缓存到数据缓冲模块2,同时将数据缓冲模块1缓存的第1个周期数据通过输出数据流选择单元的选择送到目的地址;在第3个缓冲周期通过输入数据流选择单元的再次切换,将输入的数据流缓存到数据缓冲模块1,同时将数据缓冲模块2缓存的第2个周期的数据通过输出数据流选择单元的选择送到目的地址,如此循环,直到读取或存放完所有数据。
如图3a所示,外设到内存基于乒乓操作的DMA数据搬移包括以下步骤:
a1)第一次DMA搬移时,CPU配置此次DMA搬移的目的地址为301a,源地址为304,并配置好相应的控制参数;然后,DMA通过DMA请求获得系统总线控制权,启动DMA搬移;当DMA搬移完指定的数据时,DMA通过撤消DMA请求放弃系统总线控制权,触发相应的搬移结束中断。
b1)CPU会在中断服务程序中,再次配置下一次DMA搬移的目的地址为302a,源地址为304,以及配置好相应的控制参数;然后,DMA再通过DMA请求获得系统总线控制权,启动新的DMA搬移。与此同时,CPU会来处理301a的数据,并保证在下一次DMA重新向301a搬移时完成处理工作。
c1)重复步骤a1和步骤b1,直到搬移完所需传送的所有数据。
如图3b所示,内存到外设基于乒乓操作的DMA数据搬移包括以下步骤:
a2)第一次DMA搬移时,CPU配置此次DMA搬移的源地址为301b,目的地址为304,并配置好相应的控制参数;然后,DMA通过DMA请求获得系统总线控制权,启动DMA搬移;当DMA搬移完指定的数据时,DMA通过撤消DMA请求放弃系统总线控制权,触发相应的搬移结束中断。
b2)CPU会在中断服务程序中,再次配置下一次DMA搬移的源地址为302b,目的地址为304,以及配置好相应的控制参数;然后,DMA再通过DMA请求获得系统总线控制权,启动新的DMA搬移。与此同时,CPU会来更新301b的数据,并保证在下一次DMA重新使用301b时,新的待搬移数据已准备好。
c2)重复步骤a2和步骤b2,直到搬移完所需传送的所有数据。
从上述外设与内存之间的DMA传输过程可以看出,每个DMA通道同一时刻只能实现数据的单向传输,因此,现有技术方案存在以下缺陷:
1)需要采用两个独立的DMA通道来处理外设的数据收发功能。由于DMA的通道资源有限,这样就限制了DMA所支持的外设资源。如果通过增大DMA通道数的方式来增加DMA所支持的外设,就会引入较多的电路,增大芯片的面积,从而加大芯片的成本。
2)在内存到外设的DMA传输过程中,需要两块相同大小的内存RAMSRC0和RAM SRC1,以乒乓切换方式更新发送数据;在外设到内存的DMA传输过程中,同样需要两块相同大小的内存RAM DST0和RAM DST1,以乒乓切换方式处理最新收到的数据,不能实现内存资源的有效利用。
发明内容
有鉴于此,本发明的主要目的在于提供一种直接存储器存取装置,能使每个DMA通道支持双向数据交互,不仅提高了内存资源的利用率,而且大大降低了DMA芯片的成本。
本发明的另一目的在于提供了一种利用单通道实现双向数据交互的方法,能提高DMA的工作效率以及资源利用率。
为达到上述目的,本发明的技术方案是这样实现的:
一种直接存储器存取DMA装置,包括总线Slave接口、DMA请求和响应接口、总线Master接口、控制逻辑和寄存器组、通道逻辑和寄存器组、中断请求逻辑,所述通道逻辑和寄存器组对应一个以上DMA通道,每个DMA通道包括一组控制寄存器和控制逻辑,所述控制寄存器至少包括一个传输方向的源地址控制寄存器、目的地址控制寄存器、控制参数控制寄存器和配置参数控制寄存器,所述控制逻辑包括源地址控制逻辑和目的地址控制逻辑,关键是,所述控制逻辑还包括:
通道控制逻辑,用于根据读入数据量控制第一和第二状态选择单元的状态切换,并控制数据从源地址到DMA通道到目的地址的读入和读出;
第一和第二数据缓冲区,分别存储从不同源地址读入DMA通道的数据,
第一状态选择单元,根据通道控制逻辑发来的切换控制信号将来自源地址的数据读入第一或第二数据缓冲区;
第二状态选择单元,根据通道控制逻辑发来的切换控制信号选择将第二或第一数据缓冲区的数据发往目的地址。
其中,所述通道控制逻辑包括:
计数器,对总线Master接口产生的传输计数脉冲计数,并将计数结果送至比较器;
比较器,比较所收到的计数结果和设定的传输数据量,并在二者相等时产生脉冲信号送至计数器和切换控制单元;
切换控制单元,收到比较器发来的脉冲信号后产生切换控制信号,同时送至所述第一状态选择单元和反相器;
反相器,将收到的切换控制信号反相后送至所述第二状态选择单元。
上述方案中,所述控制寄存器进一步包括另一传输方向的源地址控制寄存器、目的地址控制寄存器、控制参数控制寄存器和配置参数控制寄存器。所述源地址为外设发送数据的地址,所述目的地址为内存接收数据的地址;或者,所述源地址为内存发送数据的地址,所述目的地址为外设接收数据的地址。所述第一和第二数据缓冲区分别为一块随机存储器。所述第一数据缓冲区和第二数据缓冲区的大小不同。
本发明还公开一种单通道双向数据交互的实现方法,在每个通道的控制逻辑中设置第一和第二数据缓冲区;
a.从第一源地址读入数据到DMA通道的第一数据缓冲区中,同时,从所述DMA通道的第二数据缓冲区中读出数据到第一目的地址;判断从第一源地址读入的数据量是否等于设定的第一传输数据量,如果是,则执行步骤b,否则返回步骤a;
b.从第二源地址读入数据到DMA通道的第二数据缓冲区中,同时,从所述DMA通道的第一数据缓冲区中读出数据到第二目的地址;判断从第二源地址读入的数据量是否等于设定的第二传输数据量,如果是,则执行步骤c,否则返回步骤b;
c.判断第一源地址和第二源地址的数据是否读完,如果是,则结束当前处理流程,否则,返回步骤a;
其中,所述第一源地址为第二目的地址,第一目的地址为第二源地址。
上述方案中,步骤a中进一步包括:判断从所述DMA通道第二数据缓冲区读出的数据是否有效,如果有效,则继续进行判断;如果无效,则丢弃所读出的数据。
本发明所提供的直接存储器存取装置及单通道双向数据交互的实现方法,具有以下的优点和特点:
1)本发明仅对DMA中通道逻辑和寄存器组的每个通道结构进行简单地改动,增加较少的电路,就可通过乒乓方式使DMA的单通道实现外设与内存之间高效的双向数据交互,从而大大提高了DMA的工作效率。
2)本发明的驱动软件设计简单,对于软件设计者而言,由于增加了几个存储另一传输方向地址和参数的控制寄存器,因此,只需增加对几个控制寄存器的配置即可,其它操作均与现有的DMA相同,实现简单、方便。
3)只需使用两块内存空间RAM DST和RAM SRC,分别存放内存接收的数据和待发送的数据,就可以完成以前需要四块相同大小的内存空间所完成的、双向的内存和外设间的数据收发功能,节约了一半的内存空间,从而提高了内存资源的利用率。
附图说明
图1为现有技术中DMA的组成结构示意图;
图2为现有DMA中每个通道控制逻辑的组成结构示意图;
图3a为现有技术中外设到内存DMA传输过程的示意图;
图3b为现有技术中内存到外设DMA传输过程的示意图;
图4为实现乒乓操作的原理图;
图5为本发明DMA中每个通道控制逻辑的组成结构示意图;
图6为图5中新通道控制逻辑的组成结构示意图;
图7为本发明中外设与内存间DMA传输的实现过程示意图。
具体实施方式
本发的核心思想是:对DMA中通道逻辑和寄存器组每个通道的结构进行改进,采用乒乓操作结构替换FIFO控制逻辑,通过乒乓切换实现对不同流向数据的操作,使得DMA每个独立的通道都能同时完成外设与内存之间的数据读出和写入,形成双DMA(DDMA,Duplicated DMA)结构。
为了支持DDMA功能的实现,本发明的DMA是针对现有DMA进行了两点改进:首先,对应每个通道增加一组控制寄存器;其次,改变每个DMA通道控制逻辑的实现结构,并相应修改通道控制逻辑的结构。具体来说:首先,对于每个通道增加四个控制寄存器,分别存储另一传输方向的源地址、目的地址、控制参数和配置参数,包括:DMAxSrcAddrl,用于表示通道x另一传输方向的源地址;DMAxDstAddr1,用于表示通道x另一传输方向的目的地址;DMAxControl1,用于表示通道x另一传输方向的控制参数;DMAxConfig1,用于表示通道x另一传输方向的配置参数。其中,x表示控制寄存器所对应的通道号。
其次,将每个DMA通道的控制逻辑设计为图5所示的实现结构,如图5所示,本发明中每个通道的控制逻辑包括:通道控制逻辑501、状态选择单元502和503、数据缓冲区504和505、以及源地址控制逻辑203和目的地址控制逻辑204。其中,源地址控制逻辑203和目的地址控制逻辑204的组成结构和功能与现有DMA中完全一致,因此,通道控制逻辑仍采用控制信号205和206分别对源地址控制逻辑203和目的地址控制逻辑204进行控制,从源地址读入数据到DMA通道,并将DMA通道的数据发送至目的地址;并且,信号207和208分别表示从源地址读取的数据和发送到目的地址的数据,均与图1中的总线Master接口105相连。不同的是,本发明中的源地址包括外设的发送地址和内存的发送地址,也就是说,输入信号506所来自的发送地址实际上是外设的发送地址或内存的发送地址,相应的,输出信号507所发往的接收地址实际上也是内存的接收地址或外设的接收地址。图5中,通道控制逻辑501通过控制信号512和513分别控制状态选择单元502和503的状态切换,状态选择单元502和503均包括两种状态选择,且状态选择单元502和503所选择的状态不同;状态选择单元502在第一状态下通过信号508将数据存入数据缓冲区504,在第二状态下通过信号510将数据存入数据缓冲区505;状态选择单元503在第一状态下通过信号511从数据缓冲区505读出数据,在第二状态下通过信号509从数据缓冲区504读出数据;状态选择单元502和503可采用2选1的选择电路实现。数据缓冲区504和505用于顺序存储要传输的数据,分别通过信号508和510、509和511选择数据要存入的数据缓冲区以及要读出数据的数据缓冲区;数据缓冲区504和505可分别采用一块RAM来实现。
基于图5所示结构,外设和内存之间进行数据传输的过程是这样:假设先发起外设到内存的数据传输,则通道控制逻辑501通过控制信号512将控制选择单元502的状态设置为第一状态,表示选择数据缓冲区504存储数据,同时将控制选择单元503的状态设置为第二状态,表示选择读取数据缓冲区505中的数据,此时源地址为外设地址,通过506进入的是外设发送的数据。那么,经过源地址控制逻辑的地址翻译,从外设进入DMA通道的数据存入数据缓冲区504,同时,从数据缓冲区505读出数据发送至指定的目的地址。当存入的数据到达设定的数据量时,比如预先设定突发传输数据量的大小Burst size,则通道控制逻辑501通过控制信号512和513控制状态选择单元502和503进行状态切换,将状态选择单元502的状态切换到第二状态,状态选择单元503的状态切换到第一状态,此时源地址是内存地址,通过506进入的是内存发送的数据,那么,经过源地址控制逻辑的地址翻译,从内存进入DMA通道的数据存入数据缓冲区505,同时,外设发送的数据从数据缓冲区504读出发送至内存的指定目的地址。当进入的数据再次到达设定的数据量时,通道控制逻辑501再次通过控制信号512和513控制状态选择单元502和503进行状态切换,同时源地址变换,如此循环操作,直至处理完所有要传输的数据。
要说明的是:在循环操作过程中,实际上是利用数据缓冲区504存储外设到内存的数据,数据缓冲区505存储内存到外设的数据,在每个操作周期中,同时完成一个方向数据的存入和另一个方向数据的读出,数据缓冲区504和数据缓冲区505的大小可以相同也可以不同,如此就实现了单通道的双向数据传输。当然,在第一个操作周期时,由于数据缓冲区505中还未正式存储数据,所以数据缓冲区505中的数据是无效的,需要丢弃。另外,并不限定先发起外设到内存的数据传输,还是先发起内存到外设的数据传输;也不限定每个数据缓冲区所对应的方向,只要一个数据缓冲区为一个方向的数据服务即可。
可以看出,本发明中通道控制逻辑501与现有技术中通道控制逻辑202的功能和结构是不同的,主要是增加了对状态选择单元502和503的控制,其它功能基本不变。通道控制逻辑501对状态选择单元502和503控制的具体实现如图6所示,通道控制逻辑501在现有通道控制逻辑202的基础上增加了计数器601、比较器602、切换控制单元603以及反相器604。图6中,605为来自总线Master接口105的传输计数脉冲,这里使用发送计数,总线Master接口105每发出一个数,就产生一个计数脉冲605给计数器;然后,计数器601将计数结果606发送给比较器602;607为系统设定的一次突发传输的数据大小Burst Size,如果计数结果606的计数值达到了Burst Size,则比较器602产生一个脉冲信号608,该脉冲信号608一方面发送给计数器601,将601清零,另一个方面发送给切换控制单元603,用于实现切换控制;切换控制单元603每收到一个脉冲信号608,就将自身输出的控制信号512反相一次,以实现第一状态和第二状态之间的切换;切换控制单元603所输出的控制信号512直接用于控制状态选择单元502,同时,该控制信号512被送入反相器604,经过反相后产生控制信号513,用于控制状态选择单元503。
基于图5和图6所示DMA通道控制逻辑的工作原理,如图7所示,假设每个DMA通道包括两个方向的数据通路:通路A和通路B,通路A表示外设到内存的DMA搬移,通路B表示内存到外设的DMA搬移;通路A的源地址为304,目的地址为存储空间701,通路B的源地址为存储空间702,目的地址为304;并设定通路A的Burst Size为Burst_A,通路B的Burst Size为Burst_B,一般Burst_A和Burst_B的大小接近。图7中,外设304和CPU305与现有技术相同,DMA703为包含图5和图6所示通道控制逻辑结构的DMA,除了每个DMA通道的结构发生变化,其它组成部分均与现有技术完全相同,点划线为控制信号,实线为外设到内存的数据信号,虚线为内存到外设的数据信号。另外,还要设置两块存储空间,分别用作从外设到内存传输数据时的第一数据缓冲区和从内存到外设传输数据时的第二数据缓冲区。进行DMA传输之前,先由CPU配置好外设和DMA所有的配置参数和控制参数,采用本发明DMA实现外设和内存间DMA传输的过程是这样的:
a3)先发起通路A的DMA搬移,从外设304读入要传输的数据到当前DMA通道的第一数据缓冲区中,并判断当前读入的数据量是否等于Burst_A,当读入的数据量达到一个Burst_A大小时,进行传输切换;
b3)发起通路B的DMA搬移,从存储空间702中读入要传输的数据到当前DMA通道的第二数据缓冲区中,同时,从当前DMA通道的第一数据缓冲区中读出数据到存储空间701,并判断当前读入的数据量是否等于Burst_B,当读入的数据量达到一个Burst_B大小时,再次进行传输切换;
c3)从外设304读入要传输的数据到当前DMA通道的第一数据缓冲区中,同时,从当前DMA通道的第二数据缓冲区读出数据到外设304,并判断当前读入的数据量是否等于Burst_A,当读入的数据量达到一个Burst_A大小时,进行传输切换;
d3)从存储空间702中读入要传输的数据到当前DMA通道的第二数据缓冲区,同时,从当前DMA通道的第一数据缓冲区中读出数据到存储空间701,并判断当前读入的数据量是否等于Burst_B,当读入的数据量达到一个Burst_B大小时,再次进行传输切换;
e3)重复执行步骤c3和d3的数据传输,直到通路A和通路B的数据搬运结束。
当然,在实际应用中,并不限定先发起通路A的DMA搬移,还是先发起通路B的DMA搬移。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (8)
1、一种直接存储器存取DMA装置,包括总线Slave接口、DMA请求和响应接口、总线Master接口、控制逻辑和寄存器组、通道逻辑和寄存器组、中断请求逻辑,所述通道逻辑和寄存器组对应一个以上DMA通道,每个DMA通道包括一组控制寄存器和控制逻辑,所述控制寄存器至少包括一个传输方向的源地址控制寄存器、目的地址控制寄存器、控制参数控制寄存器和配置参数控制寄存器,所述控制逻辑包括源地址控制逻辑和目的地址控制逻辑,其特征在于,所述控制逻辑还包括:
通道控制逻辑,用于根据读入数据量控制第一和第二状态选择单元的状态切换,并控制数据从源地址到DMA通道到目的地址的读入和读出;
第一和第二数据缓冲区,分别存储从不同源地址读入DMA通道的数据;
第一状态选择单元,根据通道控制逻辑发来的切换控制信号将来自源地址的数据读入第一或第二数据缓冲区;
第二状态选择单元,根据通道控制逻辑发来的切换控制信号选择将第二或第一数据缓冲区的数据发往目的地址。
2、根据权利要求1所述的DMA装置,其特征在于,所述通道控制逻辑进一步包括:
计数器,对总线Master接口产生的传输计数脉冲计数,并将计数结果送至比较器;
比较器,比较所收到的计数结果和设定的传输数据量,并在二者相等时产生脉冲信号送至计数器和切换控制单元;
切换控制单元,收到比较器发来的脉冲信号后产生切换控制信号,同时送至所述第一状态选择单元和反相器;
反相器,将收到的切换控制信号反相后送至所述第二状态选择单元。
3、根据权利要求1或2所述的DMA装置,其特征在于,所述控制寄存器进一步包括另一传输方向的源地址控制寄存器、目的地址控制寄存器、控制参数控制寄存器和配置参数控制寄存器。
4、根据权利要求1或2所述的DMA装置,其特征在于,所述源地址为外设发送数据的地址,所述目的地址为内存接收数据的地址;或者,所述源地址为内存发送数据的地址,所述目的地址为外设接收数据的地址。
5、根据权利要求1或2所述的DMA装置,其特征在于,所述第一和第二数据缓冲区分别为一块随机存储器。
6、根据权利要求1或2所述的DMA装置,其特征在于,所述第一数据缓冲区和第二数据缓冲区的大小不同。
7、一种单通道双向数据交互的实现方法,其特征在于,在每个通道的控制逻辑中设置第一和第二数据缓冲区;
a.从第一源地址读入数据到DMA通道的第一数据缓冲区中,同时,从所述DMA通道的第二数据缓冲区中读出数据到第一目的地址;判断从第一源地址读入的数据量是否等于设定的第一传输数据量,如果是,则执行步骤b,否则返回步骤a;
b.从第二源地址读入数据到DMA通道的第二数据缓冲区中,同时,从所述DMA通道的第一数据缓冲区中读出数据到第二目的地址;判断从第二源地址读入的数据量是否等于设定的第二传输数据量,如果是,则执行步骤c,否则返回步骤b;
c.判断第一源地址和第二源地址的数据是否读完,如果是,则结束当前处理流程,否则,返回步骤a;
其中,所述第一源地址为第二目的地址,第一目的地址为第二源地址。
8、根据权利要求7所述的实现方法,其特征在于,步骤a中进一步包括:判断从所述DMA通道第二数据缓冲区读出的数据是否有效,如果有效,则继续进行判断;如果无效,则丢弃所读出的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100088174A CN100354842C (zh) | 2005-02-23 | 2005-02-23 | 一种直接存储器存取装置及单通道双向数据交互实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100088174A CN100354842C (zh) | 2005-02-23 | 2005-02-23 | 一种直接存储器存取装置及单通道双向数据交互实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1825292A true CN1825292A (zh) | 2006-08-30 |
CN100354842C CN100354842C (zh) | 2007-12-12 |
Family
ID=36935977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100088174A Expired - Fee Related CN100354842C (zh) | 2005-02-23 | 2005-02-23 | 一种直接存储器存取装置及单通道双向数据交互实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100354842C (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211328B (zh) * | 2006-12-26 | 2010-12-01 | 英属盖曼群岛商福华先进微电子股份有限公司 | 高性能可编程逻辑系统接口及芯片 |
CN101901200A (zh) * | 2010-08-11 | 2010-12-01 | 烽火通信科技股份有限公司 | 一种基于双AHB Master接口的片上DMA控制器实现方法 |
CN102214151A (zh) * | 2010-04-07 | 2011-10-12 | 精拓科技股份有限公司 | 记忆体存取装置及方法 |
CN102222316A (zh) * | 2011-06-22 | 2011-10-19 | 北京航天自动控制研究所 | 一种基于dma的双缓冲乒乓并行结构图像处理优化方法 |
CN102750244A (zh) * | 2011-04-22 | 2012-10-24 | 安凯(广州)微电子技术有限公司 | 分级缓冲的dma传送装置及传送方法 |
CN103677663A (zh) * | 2012-08-30 | 2014-03-26 | 想象力科技有限公司 | 用于数字信号处理的存储器地址生成 |
CN103678205A (zh) * | 2013-12-30 | 2014-03-26 | 杭州士兰微电子股份有限公司 | 基于dma的实时流数据传送系统及方法 |
CN108563518A (zh) * | 2018-04-08 | 2018-09-21 | 广州视源电子科技股份有限公司 | 主从机通信方法、装置、终端设备及存储介质 |
CN110604869A (zh) * | 2019-08-01 | 2019-12-24 | 北京品驰医疗设备有限公司 | 植入式医疗装置及其刺激信号发生方法和电刺激系统 |
CN111007984A (zh) * | 2019-10-22 | 2020-04-14 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于fpga的raid5存储系统及实现方法 |
CN111104166A (zh) * | 2019-12-13 | 2020-05-05 | 北京新忆科技有限公司 | 寄存器的写入方法和写入装置 |
CN111124953A (zh) * | 2019-12-18 | 2020-05-08 | 海光信息技术有限公司 | 数据交换方法、装置、处理器及计算机系统 |
CN112035899A (zh) * | 2020-08-21 | 2020-12-04 | 郑州信大捷安信息技术股份有限公司 | 一种基于密码卡的数据通信系统及方法 |
CN112526205A (zh) * | 2020-12-03 | 2021-03-19 | 常州同惠电子股份有限公司 | 基于mcu的dma功能控制ad转换器峰值采样方法 |
CN112685344A (zh) * | 2020-12-30 | 2021-04-20 | 合肥市芯海电子科技有限公司 | Dma编程电路及基于dma编程电路的编程方法 |
CN112947857A (zh) * | 2021-02-25 | 2021-06-11 | 山东英信计算机技术有限公司 | 一种数据搬移方法、装置、设备及计算机可读存储介质 |
CN114879584A (zh) * | 2022-07-05 | 2022-08-09 | 成都智明达电子股份有限公司 | 一种基于fpga的dma控制器边界对齐方法及其电路 |
CN116302006A (zh) * | 2023-05-18 | 2023-06-23 | 珠海星云智联科技有限公司 | 模拟器的热升级方法及相关装置 |
CN116627869A (zh) * | 2023-05-31 | 2023-08-22 | 成都赛力斯科技有限公司 | 应用于电子设备的数据传输方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526924B (zh) * | 2009-04-22 | 2010-09-08 | 东南大学 | 一种优化数字信号处理芯片数据访问的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664223A (en) * | 1994-04-05 | 1997-09-02 | International Business Machines Corporation | System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively |
JP2000259553A (ja) * | 1999-03-09 | 2000-09-22 | Sony Corp | データ処理装置 |
CN1151644C (zh) * | 2000-05-25 | 2004-05-26 | 深圳市中兴通讯股份有限公司 | 一种全双工异步串行通信方法及其通信系统 |
KR100449807B1 (ko) * | 2002-12-20 | 2004-09-22 | 한국전자통신연구원 | 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템 |
-
2005
- 2005-02-23 CN CNB2005100088174A patent/CN100354842C/zh not_active Expired - Fee Related
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211328B (zh) * | 2006-12-26 | 2010-12-01 | 英属盖曼群岛商福华先进微电子股份有限公司 | 高性能可编程逻辑系统接口及芯片 |
CN102214151A (zh) * | 2010-04-07 | 2011-10-12 | 精拓科技股份有限公司 | 记忆体存取装置及方法 |
CN101901200B (zh) * | 2010-08-11 | 2012-01-11 | 烽火通信科技股份有限公司 | 一种基于双AHB Master接口的片上DMA控制器实现方法 |
CN101901200A (zh) * | 2010-08-11 | 2010-12-01 | 烽火通信科技股份有限公司 | 一种基于双AHB Master接口的片上DMA控制器实现方法 |
CN102750244B (zh) * | 2011-04-22 | 2015-03-11 | 安凯(广州)微电子技术有限公司 | 分级缓冲的dma传送装置及传送方法 |
CN102750244A (zh) * | 2011-04-22 | 2012-10-24 | 安凯(广州)微电子技术有限公司 | 分级缓冲的dma传送装置及传送方法 |
CN102222316A (zh) * | 2011-06-22 | 2011-10-19 | 北京航天自动控制研究所 | 一种基于dma的双缓冲乒乓并行结构图像处理优化方法 |
CN103677663A (zh) * | 2012-08-30 | 2014-03-26 | 想象力科技有限公司 | 用于数字信号处理的存储器地址生成 |
CN103677663B (zh) * | 2012-08-30 | 2016-09-28 | 想象力科技有限公司 | 用于数字信号处理的存储器地址生成 |
US9529747B2 (en) | 2012-08-30 | 2016-12-27 | Imagination Technologies Limited | Memory address generation for digital signal processing |
US9684592B2 (en) | 2012-08-30 | 2017-06-20 | Imagination Technologies Limited | Memory address generation for digital signal processing |
CN103678205A (zh) * | 2013-12-30 | 2014-03-26 | 杭州士兰微电子股份有限公司 | 基于dma的实时流数据传送系统及方法 |
CN103678205B (zh) * | 2013-12-30 | 2017-01-04 | 杭州士兰微电子股份有限公司 | 基于dma的实时流数据传送系统及方法 |
CN108563518A (zh) * | 2018-04-08 | 2018-09-21 | 广州视源电子科技股份有限公司 | 主从机通信方法、装置、终端设备及存储介质 |
CN110604869A (zh) * | 2019-08-01 | 2019-12-24 | 北京品驰医疗设备有限公司 | 植入式医疗装置及其刺激信号发生方法和电刺激系统 |
CN111007984A (zh) * | 2019-10-22 | 2020-04-14 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于fpga的raid5存储系统及实现方法 |
CN111104166A (zh) * | 2019-12-13 | 2020-05-05 | 北京新忆科技有限公司 | 寄存器的写入方法和写入装置 |
CN111124953A (zh) * | 2019-12-18 | 2020-05-08 | 海光信息技术有限公司 | 数据交换方法、装置、处理器及计算机系统 |
WO2021120714A1 (zh) * | 2019-12-18 | 2021-06-24 | 成都海光微电子技术有限公司 | 数据交换方法、装置、处理器及计算机系统 |
CN112035899B (zh) * | 2020-08-21 | 2022-04-15 | 郑州信大捷安信息技术股份有限公司 | 一种基于密码卡的数据通信系统及方法 |
CN112035899A (zh) * | 2020-08-21 | 2020-12-04 | 郑州信大捷安信息技术股份有限公司 | 一种基于密码卡的数据通信系统及方法 |
CN112526205A (zh) * | 2020-12-03 | 2021-03-19 | 常州同惠电子股份有限公司 | 基于mcu的dma功能控制ad转换器峰值采样方法 |
CN112526205B (zh) * | 2020-12-03 | 2024-06-07 | 常州同惠电子股份有限公司 | 基于mcu的dma功能控制ad转换器峰值采样方法 |
CN112685344A (zh) * | 2020-12-30 | 2021-04-20 | 合肥市芯海电子科技有限公司 | Dma编程电路及基于dma编程电路的编程方法 |
CN112685344B (zh) * | 2020-12-30 | 2024-05-14 | 合肥市芯海电子科技有限公司 | Dma编程电路及基于dma编程电路的编程方法 |
CN112947857A (zh) * | 2021-02-25 | 2021-06-11 | 山东英信计算机技术有限公司 | 一种数据搬移方法、装置、设备及计算机可读存储介质 |
CN114879584A (zh) * | 2022-07-05 | 2022-08-09 | 成都智明达电子股份有限公司 | 一种基于fpga的dma控制器边界对齐方法及其电路 |
CN114879584B (zh) * | 2022-07-05 | 2022-10-28 | 成都智明达电子股份有限公司 | 一种基于fpga的dma控制器边界对齐方法及其电路 |
CN116302006A (zh) * | 2023-05-18 | 2023-06-23 | 珠海星云智联科技有限公司 | 模拟器的热升级方法及相关装置 |
CN116302006B (zh) * | 2023-05-18 | 2023-08-18 | 珠海星云智联科技有限公司 | 模拟器的热升级方法及相关装置 |
CN116627869A (zh) * | 2023-05-31 | 2023-08-22 | 成都赛力斯科技有限公司 | 应用于电子设备的数据传输方法及装置 |
CN116627869B (zh) * | 2023-05-31 | 2024-06-07 | 重庆赛力斯凤凰智创科技有限公司 | 应用于电子设备的数据传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100354842C (zh) | 2007-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1825292A (zh) | 一种直接存储器存取装置及单通道双向数据交互实现方法 | |
EP0870303B1 (en) | High performance universal multi-port internally cached dynamic random access memory system, architecture and method | |
CN110347635B (zh) | 一种基于多层总线的异构多核微处理器 | |
EP1237337B1 (en) | Efficient optimization algorithm in memory utilization for network applications | |
US7996581B2 (en) | DMA engine | |
US6212597B1 (en) | Apparatus for and method of architecturally enhancing the performance of a multi-port internally cached (AMPIC) DRAM array and like | |
WO1997024725A9 (en) | High performance universal multi-port internally cached dynamic random access memory system, architecture and method | |
CN103714024A (zh) | 一种基于SoC FPGA的多串口并行处理架构 | |
US7970960B2 (en) | Direct memory access controller and data transmitting method of direct memory access channel | |
CN1225492A (zh) | 高速半导体存储器件 | |
WO2005071557A2 (en) | A multiple address two channel bus structure | |
CN1043052A (zh) | 通讯转换元件 | |
US10936511B2 (en) | Addressable distributed memory in a programmable logic device | |
CN1797378A (zh) | 采用直接存储器访问方式进行数据交换的方法 | |
CN103713543A (zh) | 一种基于fpga的多串口并行处理架构 | |
JPH0320851A (ja) | データプロセッサ | |
CN101122894A (zh) | 一种异步串行通讯控制器件 | |
CN1831799A (zh) | 一种直接存储器访问控制器及利用其实现数据传送的方法 | |
CN104035913B (zh) | 基于高性能bw100芯片的sar并行处理方法及装置 | |
CN203812025U (zh) | 一种基于SoC FPGA的多串口并行处理架构 | |
CN112463668B (zh) | 一种基于stt-mram的多通道高速数据访存结构 | |
CN1885827A (zh) | 一种报文存储转发的方法及报文存储转发电路 | |
CN100338910C (zh) | 网络信息交换中多端口收发包数统计方法 | |
CN1908983A (zh) | 访问多区存储器中的多维数据块的方法、装置及系统 | |
CN204496486U (zh) | 扩展功能单元及计算设备扩展系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071212 Termination date: 20180223 |
|
CF01 | Termination of patent right due to non-payment of annual fee |