采用直接存储器访问方式进行数据交换的方法

文档序号:7601144阅读:360来源:国知局
专利名称:采用直接存储器访问方式进行数据交换的方法
技术领域
本发明涉及一种数据交换的方法,尤其涉及一种采用直接存储器访问方式进行数据交换的方法。
背景技术
移动终端的发展趋势要求移动终端具有更长的待机时间和更小的体积。更长的待机时间要求移动终端在芯片的设计上满足更低的功耗,软件更精简,效率更高;更小的体积需要移动终端所使用的芯片更加微型化。
移动终端的CPU(Central Processing Unit,中央处理器)采用DMA(DirectMemory Access,直接存储器访问)方式对外设进行写入和读出操作,DMA方式是一种高速的数据传输操作,允许在外设和内存之间直接读写数据,即不通过CPU,只需最小的CPU干预,整个数据传输操作在DMA控制器的控制下进行。CPU除了在数据传输的开始和结束时作一些处理外,在传输过程中CPU可以进行其它的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作的状态。DMA一般有多个彼此独立的通道,允许进行不同的访问控制,可以进行不同内容的DMA传输,DMA可以以CPU时钟的速度进行数据吞吐,具有较高的数据吞吐率。
目前采用DMA方式在外设和内存之间进行数据交换的方法主要有两种,下面分别对其加以描述第一种方法是CPU负责配置和发起DMA传输,CPU对于接收或发送的数据,都要独立分配一块RAM(Random Access Memory,随机存取存储器)空间。内存向外设发送数据时,由CPU准备好RAM中的数据,并启动DMA搬移,由于外设寄存器向外设发送数据的速率相对RAM存取速率较慢,所以在DMA搬移完RAM中的数据后,CPU有足够的时间准备好新的待发送数据。内存接收外设发来的数据时,当RAM中的空间被充满后,由CPU读走数据。由于外设寄存器接收外设数据的速率相对RAM存取数据的速率较慢,所以CPU可以在新的数据到来时就读走老的数据,从而避免了数据的覆盖。
上述技术方案需要占用大量的RAM,这在用于价格和功耗敏感的移动终端设备中是不可忍受的。如果CPU分配的RAM空间较大,系统会在这段RAM数据充满后再进行读取,从而增大了系统的延迟;如果CPU分配的RAM空间较小,则会造成CPU频繁的写入和读出数据,占用了过多的CPU处理时间,造成系统性能的下降。上述技术方案中所采用的是单片的RAM,为了避免数据覆盖,在发送时,CPU必须在最后一个RAM的数据读走之后和新的外设请求到来之前准备好RAM中的新数据;在接收时,CPU必须在新的数据到来时就读走老的数据,从而对CPU的工作速度有一定的要求,增大了系统的功耗。
第二种方法是通过硬件逻辑的方法,使用两块独立的RAM,通过乒乓操作进行不间断的外设和内存之间的数据交换。
图1所示为采用硬件逻辑进行乒乓操作的原理图,“乒乓操作”是一种用于数据流控制的处理方法,其处理流程为CPU将要发送给外设的数据流通过输入数据流选择单元将数据流等时分配到两个数据缓冲模块,数据缓冲模块可以为任何存储模块,比较常用的存储单元为DPRAM(Dual Port RAM,双口RAM)、SPRAM(Single Port RAM,单口RAM)、FIFO(First In First Out,先进先出)缓存器等。在第一个缓冲周期,将输入的数据流缓存到数据缓冲模块1;在第2个缓冲周期,通过输入数据流选择单元的切换,将输入的数据流缓存到数据缓冲模块2,同时将数据缓冲模块1缓存的第1个周期数据通过输出数据流选择单元的选择,送到外设的数据流运算处理模块进行运算处理;在第3个缓冲周期通过输入数据流选择单元的再次切换,将输入的数据流缓存到数据缓冲模块1,同时将数据缓冲模块2缓存的第2个周期的数据通过输出数据流选择单元切换,送到外设的数据流运算处理模块进行运算处理,如此循环。采用这种方法进行数据交换的最大特点是可以降低系统的延时。
上述方法二是采用硬件逻辑来完成,因此无法实现DMA搬移数据大小和配置信息的动态修改,对于移动通信中的某些应用来说,可能每帧的数据量大小并不相同,而硬件逻辑无法适用于这种情况,特别对于某些通用的外设接口来说,接口的数据速率差别很大,而方法二只能提供固定大小的RAM空间供DMA搬移使用,从而降低了系统的效率。

发明内容
本发明的目的在于提供一种采用直接存储器访问方式进行数据交换的方法,以解决现有技术中在进行数据交换时系统的延时和功耗较大、配置信息无法动态修改的问题。
为解决上述问题,本发明提供以下技术方案一种采用直接存储器访问方式进行数据交换的方法,包括步骤A、由处理器确定两块数据存储空间,并将其中一块存储空间的地址写入传输配置字;B、直接存储器访问控制器利用传输配置字指定的存储空间进行数据传送,并在传送完毕后向处理器发出中断信号;C、处理器接收到所述中断信号时,判断所有数据是否传送完毕,如果是则结束,否则,将传输配置字中当前的存储空间地址修改为另一块存储空间地址,转步骤B。
所述步骤C包括以下步骤C1、处理器分析出是哪个直接存储器访问通道触发的中断,根据该通道的状态寄存器的状态判断通道是否传输出错,如是,直接存储器访问通道的传输结束,如不是,转步骤C2;C2、处理器判断当前的传输是否是最后一次传输,如是,传输结束,如不是,将当前的存储空间地址修改为另一块存储空间地址,转步骤B。
所述步骤A中选用的两块存储空间的大小相等,其空间大小由中断发生的时隙间隔和每时隙的数据量所决定,中断发生的时隙间隔为中断服务程序的持续时间与每时隙持续时间的比值后取整。
所述中断服务程序的持续时间tisr需同时满足以下条件a、tisr≤ttrs,其中ttrs为分配到数据传输上的延迟;b、(tisr+tisrrun)*sdata*2≤mdata,其中tisrrun为中断服务程序执行和系统任务的切换时间,sdata为数据的传输速率,mdata为当前系统可以提供给直接存储器访问的RAM空间大小;c、tcputisr=α,]]>其中α∈
,tcpu为处理器的每个时钟周期的时长。
在所述步骤C2中,若当前的传输是从外设到内存的数据接收过程,则根据外设是否触发了超时中断来判断当前的传输是否是最后一次传输;若当前的传输是从内存到外设的数据发送过程,则根据结束标志位信息来判断当前的传输是否是最后一次传输。
由于本发明采用了以上技术方案,故具有以下有益效果本发明由CPU来确定选用的两块RAM空间的大小,可以根据当前CPU和内存的利用率,当前的具体应用的需求和目前系统可供使用的资源,来动态决定资源的分配,能最大发挥系统效率,达到最优的资源配置。
在本发明中通过修改传输配置字可以灵活动态的设置每次DMA传送的配置信息,通过结束标志位的设置可以灵活的停止DMA传输。
本发明采用两块RAM块进行DMA传送,充分的发挥了DMA的效能,较少的占用了CPU的处理时间,使整个系统可以工作在更低的频率下,从而降低了系统的功耗,能够使移动终端具有更长的待机时间。


图1为采用硬件逻辑进行乒乓操作的原理图;图2为本发明采用DMA方式进行数据交换的流程图;图3为本发明在进行数据接收时的示意图;图4为本发明在进行数据接收时的处理流程图;图5为本发明在进行数据发送时的示意图;图6为本发明在进行数据发送时的处理流程图。
具体实施例方式
下面结合说明书附图来说明本发明的具体实施方式

如图2所示,本发明首先通过CPU确定出需要选用的两块RAM块空间,然后将传输配置字写入DMA控制器中,DMA控制器根据CPU写入的传输配置字进行数据传送,传送完毕后,DMA控制器向CPU发出一中断信号,CPU将DMA控制器中的传输配置字中的RAM块地址修改为另一个RAM块地址,根据修改后的传输配置字重新配置DMA通道,进行数据传送,传送完毕后DMA控制器向CPU发出一中断信号;DMA控制器每发出一次中断信号,传输配置字中的RAM块地址就修改一次,直到数据传送完毕。
CPU所选用的两块RAM块的空间大小由中断发生的时隙间隔n和每时隙的数据量所决定。
中断发生的时隙间隔n为中断服务程序的持续时间tisr与每时隙持续时间tslot的比值后取整。也就是每次中断服务程序的持续时间tisr内包括n个时隙的持续时间。
中断服务程序的持续时间tisr需同时满足以下三个条件(1)tisr≤ttrs,其中ttrs为分配到数据传输上的延迟;(2)(tisr+tisrrun)*sdata*2≤mdata,其中tisrrun为中断服务程序执行和系统任务的切换时间,单位时间需要进行传输的数据量即数据的传输速率为sdata,mdata为当前系统可以提供给直接存储器访问的RAM空间大小;
(3)tcputisr=α,]]>其中α∈
,tcpu为CPU的每个时钟周期的时长。
上述式(2)中的乘2表示使用乒乓操作时,要使用两块RAM区,由于搬移的数据速率sdata为固定值,因此所设定的两个RAM区的大小相等。
上述式(3)中的α表示CPU工作时钟与DMA搬移操作发生的时间间隔的比例。一般可选α∈
,DMA的工作频率和CPU的工作频率相同,CPU工作频率为fcpu,则CPU的每时钟周期的时间为tcpu,其中tcpu=1fcpu.]]>下面举例对CPU确定所选用的两块RAM块空间大小的过程进行说明例如在GSM系统中射频端口模数变换后,120ms有26帧,每帧8个时隙,每时隙数据量为156.25Symbol,每Symbol信息用16比特量化,tslot的大小为0.577ms。
假设CPU的工作时钟系统fcpu为100MHz,可提供的RAM区间mdata为100kbit,系统分配的传输延迟ttrs为6ms,tisrrun的时间大约为100us。
数据传输速率sdata为26120*10-3*8*156.25*16=4.3Mb/s]]>根据上述式(1)tisr≤ttrs,可得tisr≤6ms;根据上述式(2)(tisr+tisrrun)*sdata*2≤mdata,可得(tisr+100us)*4.3Mb/s≤100kb,因此经计算可得tisr≤10.6ms;根据上述式(3)tcputisr≤α]]>和α∈
,可得0.01ms/tisr∈
,因此经计算可得tisr∈[1ms,10ms];因此可得出tisr的取值范围为[1ms,6ms],再根据中断发生的时隙间隔n为中断服务程序的持续时间tisr与每时隙持续时间tslot的比值,可得n*0.577ms∈[1ms,6ms],n为整数,从而可得出n的取值范围为[2,10]。
因此可选择当n=8时,即每帧(8个时隙)发起一次DMA搬移。每1个帧存储的数据为8*156.25*16=20kb,由于本发明采用的是两块RAM,因此需要两块数据空间为20Kb的RAM,能够分别满足上述的等式。
下面分别从内存接收数据和内存发送数据两个方面,来分析采用本发明进行数据交换的过程,假设本发明在两个RAM块之间进行“乒乓操作”切换时,“乒”状态时RAM块1可用,“乓”状态时RAM块2可用。
(1)内存接收数据过程图3所示为在内存在进行数据接收时的数据流和控制流,其中实线表示数据流,虚线表示控制流,控制流表示CPU对外设和DMA的配置信息,DMA反馈给CPU的中断信息等,数据流表示DMA把数据从外设搬进内存。
图4所示为本发明在进行数据接收时的处理流程图,其处理过程如下在CPU的控制下,外设将要传送的数据写入到外设的数据寄存器中,CPU将一个DMA传输配置字写入到DMA控制器的内部寄存器,传输配置字中包括源地址、目的地址和数据量控制等信息。传输配置字中的源地址为外设的数据寄存器,目的地址为RAM块1,DMA控制器根据传输配置字中定义的数据量控制DMA通道进行数据传送,所定义的数据量的大小等于RAM块1空间的大小,当数据传送完毕后,DMA控制器向CPU发出一个中断信号,并在相应通道的状态寄存器中反映本次数据传送是否成功。
CPU收到DMA控制器发出的中断信号后,首先分析出是哪个DMA通道触发的中断,然后根据通道状态寄存器的状态来判断当前DMA通道触发的中断是否是传输出错,如果是,则DMA通道的传输结束,并将错误DMA通道的状态信息反馈给上层软件,由上层软件做进一步处理;如果不是,则查看外设是否触发了超时中断,如果有超时中断,则通道的DMA传输会结束,并将正确传输的状态信息反馈给上层软件,由上层软件做进一步处理;如果没有超时中断,则根据该DMA通道的目的地址判断出当前状态为“乒”状态,CPU将RAM块1中数据读出,当读取完数据后,将当前的状态修改为“乓”状态,并重新配置当前的DMA通道,将此DMA通道目的地址设置成RAM块2的地址,开始对RAM块2进行读取。
当有新的数据到达外设的数据寄存器时,DMA通道会再次进行传输,直到本次传输结束。当外设的数据寄存器在设定的时间内没有收到数据时,则触发超时中断处理,此时会将外设的数据寄存器中目前剩下的数据传输完毕,并关闭外设和此DMA通道。
(2)内存发送数据过程图5所示为内存发送数据时的数据流和控制流,其中实线表示数据流,虚线表示控制流。控制流表示CPU对外设和DMA的配置信息,DMA反馈给CPU的中断信息等,数据流表示DMA把数据从内存搬移到外设。
图6所示为本发明在进行数据发送时的处理流程图,其处理过程如下CPU将一个DMA传输配置字写入到DMA控制器的内部寄存器,传输配置字中包括源地址、目的地址和数据量控制等信息,传输配置字中的源地址为RAM块1,目的地址为外设的数据寄存器,DMA控制器根据传输配置字中定义的数据量控制DMA通道进行数据传送,当数据传送完毕后,DMA控制器向CPU发出一个中断信号。
CPU收到DMA控制器触发的中断信号后,分析是DMA的哪个通道触发的中断,然后判断当前通道触发的中断是否是传输出错,如果是,则通道的DMA传输会结束,并将错误通道的状态信息反馈给上层软件,由上层软件做进一步处理;如果不是,则通过查看通道的结束标志位信息来判断当前的DMA传输是否是最后一次传输,如果是最后一次传输,则通道的DMA传输会结束,并将正确传输的状态信息反馈给上层软件,由上层软件做进一步处理;如果不是最后一次传输,则根据该DMA通道的源地址判断出当前状态为“乒”,当前待发送的数据被DMA通道发送完毕后,将当前的状态修改为“乓”状态,并把待发送的数据放到RAM块2中,重新配置DMA通道,将此DMA通道的源地址设置成RAM块2,打开修改后的DMA通道,对RAM块2中的数据进行发送。
标志位信息由CPU设置在内存中,在中断服务程序中每次都先检查一下,在每次的中断服务程序中,CPU会判断当前的传送还需多少次DMA的乒乓搬移,当发现下一次的DMA搬移是最后一次时,CPU将内存中的标志位信息设置成结束标志位,当最后一次DMA搬移完成后,触发了中断,并进入了中断服务程序,随后就根据当前的结束标志位结束了全部的搬移。假设需传送的数据为4×16×16×8比特,每次DMA搬移完成16×16×8比特,则需4次DMA搬移,在第3次搬移结束并触发了中断时,就设置了结束标志位,当第4次搬移结束并触发了中断,在第4次的中断服务程序中,发现结束标志被设置,就不再发起新的搬移,完成了所有的搬移操作。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
1.一种采用直接存储器访问方式进行数据交换的方法,其特征在于包括步骤A、由处理器确定两块数据存储空间,并将其中一块存储空间的地址写入传输配置字;B、直接存储器访问控制器利用传输配置字指定的存储空间进行数据传送,并在传送完毕后向处理器发出中断信号;C、处理器接收到所述中断信号时,判断所有数据是否传送完毕,如果是则结束数据传送,否则,将传输配置字中当前的存储空间地址修改为另一块存储空间地址,转步骤B。
2.根据权利要求1所述的采用直接存储器访问方式进行数据交换的方法,其特征在于所述步骤A中两块存储空间的大小相等。
3.根据权利要求1所述的采用直接存储器访问方式进行数据交换的方法,其特征在于所述步骤C包括以下步骤C1、处理器分析出是哪个直接存储器访问通道触发的中断,根据该通道的状态寄存器的状态判断通道是否传输出错,如是,直接存储器访问通道的传输结束,如不是,转步骤C2;C2、处理器判断当前的传输是否是最后一次传输,如是,传输结束,如不是,将当前的存储空间地址修改为另一块存储空间地址,转步骤B。
4.根据权利要求2所述的采用直接存储器访问方式进行数据交换的方法,其特征在于所述两块存储空间的大小由中断发生的时隙间隔和每时隙的数据量所决定。
5.根据权利要求4所述的采用直接存储器访问方式进行数据交换的方法,其特征在于所述中断发生的时隙间隔为中断服务程序的持续时间与每时隙持续时间的比值后取整。
6.根据权利要求5所述的采用直接存储器访问方式进行数据交换的方法,其特征在于所述中断服务程序的持续时间tisr需同时满足以下条件a、tisr≤ttrs,其中ttrs为分配到数据传输上的延迟;b、(tisr+tisrrun)*sdta*2≤mdata,其中tisrrun为中断服务程序执行和系统任务的切换时间,sdata为数据的传输速率,mdata为当前系统可以提供给直接存储器访问的RAM空间大小;c,tcputisr=α,]]>其中α∈
,tcpu为处理器的每个时钟周期的时长。
7.根据权利要求1或2所述的采用直接存储器访问方式进行数据交换的方法,其特征在于所述传输配置字中包括源地址、目的地址和数据量控制信息。
8.根据权利要求3所述的采用直接存储器访问方式进行数据交换的方法,其特征在于在所述步骤C2中,若当前的传输是从外设到内存的数据接收过程,则根据外设是否触发了超时中断来判断当前的传输是否是最后一次传输。
9.根据权利要求3所述的采用直接存储器访问方式进行数据交换的方法,其特征在于在所述步骤C2中,若当前的传输是从内存到外设的数据发送过程,则根据结束标志位信息来判断当前的传输是否是最后一次传输。
全文摘要
本发明公开了一种采用直接存储器访问方式进行数据交换的方法,以解决现有技术中数据交换时系统的延时和功耗较大、配置信息无法动态修改的问题。该方法通过处理器确定出两块数据存储空间,并将其中一块存储空间的地址写入传输配置字,直接存储器访问控制器利用传输配置字指定的存储空间进行数据传送,并在传送完毕后向处理器发出中断信号,处理器接收到所述中断信号时,判断所有数据是否传送完毕,如果是则结束数据传送,否则,将传输配置字中当前的存储空间地址修改为另一块存储空间地址,进行数据传送。本发明充分的发挥了直接存储器访问控制器的效能,较少的占用了处理器的处理时间,降低了系统的功耗。
文档编号H04Q7/32GK1797378SQ20041010253
公开日2006年7月5日 申请日期2004年12月24日 优先权日2004年12月24日
发明者马涛 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1