一种传输数据的方法和设备的制作方法

文档序号:6489560阅读:126来源:国知局
一种传输数据的方法和设备的制作方法
【专利摘要】本发明实施例涉及数据传输领域,特别涉及一种传输数据的方法和设备,用以解决通过round-robin方式实现对各个DMA通道的仲裁,根据仲裁结果对数据进行传输的方法导致数据传输效率比较低,DMA性能比较差的问题。本发明实施例提供的方法包括:针对一个直接内存存取DMA通道,根据该通道的数据对应的传输性能,从多个仲裁单元中确定该通道对应的仲裁单元;确定至少两个仲裁单元对应的通道有数据要传输时,根据所述至少两个仲裁单元的优先级传输数据。本发明实施例实现了先对通道的数据对应的传输性能好的通道对应的数据的进行传输,保持总线畅通,进而提高了数据传输的效率,提高了DMA的性能。
【专利说明】一种传输数据的方法和设备
【技术领域】
[0001]本发明涉及数据传输领域,特别涉及一种传输数据的方法和设备。
【背景技术】
[0002]现有技术中,仲裁单元通过round-robin (轮询)的方式实现对各个DMA (DirectMemory Access,直接内存存取)通道的仲裁。如图1所示,第一硬件模块通过DMA的第一通道向DMA的仲裁单元发送包含传输数据信息的DMA请求(比如,将地址A的数据传输到地址B,数据量为90兆字节),第二硬件模块通过DMA的第二通道向DMA的仲裁单元发送包含传输数据信息的DMA请求(比如,将地址C的数据传输到地址D,数据量为100兆字节)。DMA的仲裁单元实时采用从上到下轮询的方式,从第一通道开始轮询,确定传输第一通道对应的数据,并向bus command generator (总线命令产生器)发送传输第一通道对应的数据的命令,当轮询到第二通道时,确定传输第二通道对应的数据,并向bus command generator发送传输第二通道对应的数据的命令,当轮询到第五通道的时候,若CPU (中央处理器)通过DMA的第三通道向DMA的仲裁单元发送包含传输数据信息的DMA请求,则仲裁单元不会立即响应CPU的DMA请求,而是在下一轮的轮询中,DMA的仲裁单元轮询到第三通道时,会向bus command generator发送传输第三通道的数据的命令。
[0003]针对接收到的来自DMA的仲裁单元的传输第一通道的数据的命令(DMA的仲裁单元第一次向bus command generator发送传输第一通道的数据的命令)后,bus commandgenerator确定源地址、目的地址以及要传输的第一通道对应的数据的大小(针对第一通道,地址A为源地址,地址B为目的地址),并缓存在bus command queue(总线命令队列)中,bus controller (总线控制器)在收到来自bus command queue的传输数据指令后,向数据通路单元发送获取数据指令,指示数据通路单元到源地址中获取数据标识对应的数据,在接收到来自数据通路单元的数据后,将获取的数据写入到目的地址中,其中,bus commandqueue是一个FIFO (先进先出)数据缓存器。
[0004]以上过程中,假设第一通道、第二通道以及第三通道对应的数据传输速率比较小,当数据通路单元达到处理上限时,就会造成总线堵塞,因此当其它硬件模块通过第四通道、第五通道或者第六通道向DMA的仲裁单元发送DMA请求时,DMA的仲裁单元会暂停对DMA请求的处理,导致数据传输效率比较低,DMA性能比较差。
[0005]综上所述,目前DMA的仲裁单元通过round-robin (轮询)的方式实现对各个DMA通道的仲裁,根据仲裁结果对数据进行传输的方法导致数据传输效率比较低,DMA性能比较差。

【发明内容】

[0006]本发明实施例提供的一种传输数据的方法和设备,用以解决现有技术中存在的通过ixnmd-robin方式实现对各个DMA通道的仲裁,根据仲裁结果对数据进行传输的方法导致数据传输效率比较低,DMA性能比较差的问题。[0007]本发明实施例提供的一种传输数据的方法,包括:
[0008]针对一个直接内存存取DMA通道,根据该通道的数据对应的传输性能,从多个仲裁单元中确定该通道对应的仲裁单元;
[0009]确定至少两个仲裁单元对应的通道有数据要传输时,根据所述至少两个仲裁单元的优先级传输数据。
[0010]本发明提供的一种传输数据的设备,包括:
[0011]确定模块,用于针对一个直接内存存取DMA通道,根据该通道的数据对应的传输性能,从多个仲裁单元中确定该通道对应的仲裁单元;
[0012]处理模块,用于确定至少两个仲裁单元对应的通道有数据要传输时,根据所述至少两个仲裁单元的优先级确定进行传输的数据。
[0013]在本发明实施例中,采用多个仲裁单元,针对一个直接内存存取DMA通道,根据该通道的数据对应的传输性能,从多个仲裁单元中确定该通道对应的仲裁单元;确定至少两个仲裁单元对应的通道有数据要传输时,根据所述至少两个仲裁单元的优先级传输数据,由于针对一个通道,该通道的数据对应的传输性能越好,越在先传输该通道对应的数据,从而实现了先对通道的数据对应的传输性能好的通道对应的数据的进行传输,通过这种优先级的应用,保持总线畅通,进而提高了数据传输的效率与DMA的性能。
【专利附图】

【附图说明】
[0014]图1为现有技术中的仲裁结构;
[0015]图2为本发明实施例传输数据的方法流程示意图;
[0016]图3为本发明实施例的仲裁结构;
[0017]图4为本发明实施例传输数据的详细方法流程示意图;
[0018]图5为本发明实施例传输数据的设备结构示意图。
【具体实施方式】
[0019]本发明实施例,采用多个仲裁单元,针对一个直接内存存取DMA通道,根据该通道的数据对应的传输性能,从多个仲裁单元中确定该通道对应的仲裁单元;确定至少两个仲裁单元对应的通道有数据要传输时,根据所述至少两个仲裁单元的优先级传输数据。由于针对一个通道,该通道的数据对应的传输性能越好,越在先传输该通道对应的数据,从而实现了先对通道的数据对应的传输性能好的通道对应的数据的进行传输,通过这种优先级的应用,保持总线畅通,进而提高了数据传输的效率与DMA的性能。
[0020]下面结合说明书附图对本发明实施例作进一步详细描述。
[0021]如图2所示,本发明实施例传输数据的方法包括下列步骤:
[0022]步骤201、针对一个直接内存存取DMA通道,根据该通道的数据对应的传输性能,从多个仲裁单元中确定该通道对应的仲裁单元;
[0023]步骤202、确定至少两个仲裁单元对应的通道有数据要传输时,根据所述至少两个仲裁单元的优先级传输数据。
[0024]较佳地,步骤201中,针对一个直接内存存取DMA通道,传输该通道对应的数据之前还包括:[0025]硬件模块通过该通道向仲裁单元发送DMA请求,请求进行数据传输。
[0026]其中,所有的硬件模块第一次发送DMA请求时,要通过各自的通道向同一个仲裁单元发送DMA请求。
[0027]实施中,硬件模块可以是参与数据传输的任何硬件模块,比如CPU,RAM等,至于具体是哪种硬件模块,可以根据需要进行配置。
[0028]以图3为例,各个硬件模块通过各自对应的通道向仲裁单元I发送DMA请求,请求进行数据传输;
[0029]实施中,第一硬件模块可以通过任意多个通道向仲裁单元I发送DMA请求,比如通过第一通道向仲裁单元I发送DMA请求,可以通过第一通道和第二通道向仲裁单元I发送DMA请求。
[0030]其中,在本发明实施例中,以第一硬件模块、第二硬件模块、第三硬件模块、第四硬件模块和第五硬件模块向仲裁单元I发送DMA请求为例进行介绍,具体地,第一硬件模块、第二硬件模块、第三硬件模块、第四硬件模块和第五硬件模块还可以向其它仲裁单元发送DMA请求,具体向哪个仲裁单元发送DMA请求可以根据需要设定。
[0031]较佳地,仲裁单元可以通过固定优先级或者round-robin方式确定传输哪个通道对应的数据,并发送传输该通道对应的数据的指令,其中,仲裁单元通过固定优先级或者round-robin方式确定传输哪个通道对应的数据是现有技术,仲裁单元通过round-robin方式确定传输哪个通道对应的数据具体参见本发明的【背景技术】,仲裁单元通过固定优先级方式确定传输哪个通道对应的数据具体参见网址htp://wik1.cnk1.com.cn/Hotfford/2373471.htm。
[0032]其中,仲裁单元向该仲裁单元对应的总线命令产生器发送传输该通道对应的数据的指令。
[0033]以图3为例,若在设定时间内,仲裁单元I在收到来自第一硬件模块和来自第二硬件模块的DMA请求,仲裁单元I通过轮询先确定第一通道有数据要传输,确定在先传输第一通道对应的数据,向总线命令产生器I发送传输第一通道对应的数据的指令;仲裁单元I继续进行轮询,确定第二通道有数据要传输,向总线命令产生器I发送传输第二通道对应的数据的指令;仲裁单元I继续进行轮询,确定第三通道没有数据要传输时,第五硬件模块通过第五通道向仲裁单元I发送DMA请求,仲裁单元I不立即处理来自第五硬件模块的DMA请求,而是继续进行轮询,确定第四通道没有数据要传输,继续进行轮询,确定第五通道有数据要传输,向总线命令产生器I发送传输第五通道对应的数据的指令。
[0034]实施中,对已经获得仲裁的通道做上标记,指示仲裁单元根据标记确定是否已经对该通道进行了仲裁,较佳地,可以对获得不同次数仲裁的通道做上不同的标记,指示仲裁单元根据标记确定已经对该通道进行了多少次仲裁。
[0035]其中,标记可以是仲裁单元能够根据标记确定是否已经对该通道进行了仲裁和/或仲裁单元能够根据标记确定已经对该通道进行了多少次仲裁的任何标记,比如数字标记或者字母标记。
[0036]较佳地,根据收到的来自仲裁单元的指令,确定该通道对应的源地址、该通道对应的目的地址以及该通道对应的数据标识。
[0037]其中,可以是仲裁单元对应的总线命令产生器收到来自该仲裁单元的指令。[0038]实施中,该通道对应的源地址中,数据标识对应的数据可以是DMA请求中请求进行传输的数据中的一部分数据。
[0039]以图3为例,若在设定时间内,仲裁单元I在收到来自第一硬件模块和来自第二硬件模块的DMA请求,仲裁单元I通过轮询先确定第一通道有数据要传输,确定在先传输第一通道对应的数据,向总线命令产生器I发送传输第一通道对应的数据的指令,总线命令产生器I在收到来自仲裁单元I的指令,确定第一通道对应的源地址、第一通道对应的目的地址以及第一通道对应的数据标识,用于指示获取源地址中数据标识对应的数据,并将获取的数据传输到目的地址。
[0040]实施中,若第一硬件模块发送DMA请求传输第一通道对应的源地址中的100兆字节的数据,数据标识对应的数据可以是第一通道对应的源地址中的20兆字节的数据,仲裁单元I通过轮询先确定第二通道有数据要传输,确定在先传输第二通道对应的数据,向总线命令产生器I发送传输第二通道对应的数据的指令,总线命令产生器I在收到来自仲裁单元I的指令,确定第二通道对应的源地址、第二通道对应的目的地址以及第二通道对应的数据标识,用于指示获取源地址中数据标识对应的数据,并将获取的数据传输到目的地址。
[0041]较佳地,针对收到的来自仲裁单元的多条指令,确定该通道对应的源地址、该通道对应的目的地址以及该通道对应的数据标识。
[0042]较佳地,针对多个DMA请求,将会收到来自仲裁单元的多条指令,确定多组通道对应的源地址、通道对应的目的地址以及通道对应的数据标识的信息。
[0043]以图3为例,若在设定时间内,仲裁单元I在收到来自第一硬件模块和来自第二硬件模块的DMA请求,仲裁单元I通过轮询先确定第一通道有数据要传输,确定在先传输第一通道对应的数据,向总线命令产生器I发送传输第一通道对应的数据的指令,总线命令产生器I在收到来自仲裁单元I的指令,确定第一通道对应的源地址、第一通道对应的目的地址以及第一通道对应的数据标识;仲裁单元I通过轮询确定第二通道有数据要传输,确定传输第二通道对应的数据,向总线命令产生器I发送传输第二通道对应的数据的指令,总线命令产生器I在收到来自仲裁单元I的指令,确定第二通道对应的源地址、第二通道对应的目的地址以及第二通道对应的数据标识。
[0044]具体实施中,采用总线命令队列存储确定的多组通道对应的源地址、通道对应的目的地址以及通道对应的数据标识的信息。
[0045]其中,总线命令队列可以是任何存储设备,比如FIFO数据缓存器。
[0046]其中,针对一个通道,确定一组通道对应的源地址、通道对应的目的地址以及通道对应的数据标识的信息,即确定一条传输数据指令,总线命令队列采用先入先出的方式向总线控制器发送传输数据指令。
[0047]较佳地,针对一个DMA通道,传输该通道对应的数据包括:
[0048]确定该通道对应的源地址、该通道对应的目的地址以及该通道对应的数据标识;
[0049]获取所述源地址中所述数据标识对应的数据,并将所述数据传输到所述目的地址。
[0050]较佳地,步骤201中,针对一个DMA通道,该通道的数据对应的传输性能为传输该通道对应的数据的传输时间或传输该通道对应的数据的速率。[0051]实施中,由性能确定模块确定该通道的数据对应的传输性能。
[0052]其中,各个通道的数据对应的传输性能可能不同,即针对各个通道,传输通道对应的数据的传输时间可能不同;或
[0053]针对各个通道,传输通道对应的数据的速率可能不同。
[0054]实施例一、性能确定模块确定传输该通道对应的数据的传输时间。
[0055]总线控制器收到传输数据指令后,确定源地址、目的地址以及数据标识,并向数据通路发送获取数据指令,指示数据通路到源地址中获取数据标识对应的数据,并将获取的数据标识对应的数据发送给总线控制器,总线控制器将获取的数据标识对应的数据传输到目的地址。
[0056]其中,传输时间是指总线控制器向数据通路发出获取数据指令到接收到数据通路返回的获取的数据标识对应的数据的时间段。
[0057]较佳地,可以通过设定定时器实现获取传输时间,在总线控制器向数据通路发出获取数据指令时开始开启定时器,在接收到数据通路返回的获取的数据标识对应的数据时关闭定时器。
[0058]实施例二、性能确定模块确定传输该通道对应的数据的速率。
[0059]较佳地,确定传输该通道对应的数据的速率包括:
[0060]S1、确定传输该通道对应的数据的传输时间和传输容量;
[0061]S2、根据所述传输时间和传输容量确定传输该通道对应的数据的速率。
[0062]其中,实施例一中,性能确定模块确定的传输该通道对应的数据的传输时间与步骤SI中确定的传输该通道对应的数据的传输时间相同。
[0063]其中,传输容量是指数据标识对应的数据量的大小。
[0064]步骤S2中,根据所述传输时间和传输容量确定传输该通道对应的数据的速率包括:
[0065]可以将传输容量与传输时间的比值确定为传输该通道对应的数据的速率。
[0066]以图3为例,若总线命令队列向总线控制器发送包含第一通道对应的源地址、第一通道对应的目的地址以及第一通道对应的数据标识的传输数据指令,第一通道对应的源地址为累加器ACC,第一通道对应的目的地址为程序计数器PC,第一通道对应的数据标识Ml对应的数据为延时数据时,则总线控制器向数据通路发出包含ACC和Ml的获取数据指令,并立即向性能确定模块发送开启指令,指示性能确定模块中的定时器启动计时;
[0067]数据通路在收到数据指令后,到ACC中获取Ml对应的数据,并将获取的延时数据发送给总线控制器,总线控制器在接收到来自数据通路的延时数据时,立即向性能确定模块发送关闭指令,指示性能确定模块中的定时器停止计时;
[0068]若性能确定模块根据定时器的计时确定传输时间为IS (秒),根据来自总线控制器的延时数据确定传输容量为10字节B,则将传输容量与传输时间的比值(10/l=10bps字节每秒)确定为传输该通道对应的数据的速率。
[0069]较佳地,将性能确定模块集成到总线控制器中,可以减小传输时间的误差。
[0070]较佳地,步骤201中,根据该通道的数据对应的传输性能,从多个仲裁单元中确定该通道对应的仲裁单元包括:
[0071]Z1、确定该通道的数据对应的传输性能所在的阈值范围;[0072]Z2、根据仲裁单元与阈值范围的对应关系,确定该通道的数据对应的传输性能所在的阈值范围对应的仲裁单元,并将确定所述阈值范围对应的仲裁单元为该通道对应的仲裁单元。
[0073]实施中,由仲裁单元确定模块确定该通道的数据对应的传输性能所在的阈值范围,根据仲裁单元与阈值范围的对应关系,确定该通道的数据对应的传输性能所在的阈值范围对应的仲裁单元,并确定阈值范围对应的仲裁单元为该通道对应的仲裁单元。
[0074]较佳地,在步骤Zl之前还包括:
[0075]仲裁单元确定模块接收来自性能确定模块的该通道的数据对应的传输性能。
[0076]较佳地,在步骤Z2中,仲裁单元与阈值范围的对应关系可以存储在仲裁单元确定模块中,也可以存储在其它存储实体里,当仲裁单元确定模块需要用到仲裁单元与阈值范围的对应关系时,到其它存储实体里调取。
[0077]下面以该通道的数据对应的传输性能为传输该通道对应的数据的速率为例进行介绍,该通道的数据对应的传输性能为传输该通道对应的数据的传输时间的实施情况与本发明实施例该通道的数据对应的传输性能为传输该通道对应的数据的速率的实施情况类似,在此不再赘述。
[0078]确定传输该通道对应的数据的速率所在的阈值范围;
[0079]根据仲裁单元与阈值范围的对应关系,确定传输该通道对应的数据的速率所在的阈值范围对应的仲裁单元,并将确定所述阈值范围对应的仲裁单元为该通道对应的仲裁单元;
[0080]其中,针对该通道的数据对应的传输性能为传输该通道对应的数据的速率,阈值范围为速率的阈值范围;针对该通道的数据对应的传输性能为传输该通道对应的数据的传输时间,阈值范围为传输时间的阈值范围。
[0081]以图3为例,若传输该通道对应的数据的速率为58bps,仲裁单元与阈值范围的对应关系为:若传输通道对应的数据的速率小于50bps,则对应仲裁单元3 ;若传输通道对应的数据的速率在50bps?90bps,则对应仲裁单元2 ;若传输通道对应的数据的速率大于90bps,则对应仲裁单元I ;
[0082]则仲裁单元确定模块确定传输该通道对应的数据的速率所在的阈值范围为50bpiT90bpS,根据仲裁单元与阈值范围的对应关系,确定该通道对应的仲裁单元为仲裁单元2。
[0083]具体实施中,仲裁单元与阈值范围的对应关系可以根据具体的应用场景进行设定。
[0084]其中,针对存在两个仲裁单元的情况,可以通过对传输各个通道对应的数据的速率的加权确定阈值范围。
[0085]以图3为例,若传输第一通道对应的数据的速率为20bps,传输第二通道对应的数据的速率为40bps,传输第三通道对应的数据的速率为60bps,传输第四通道对应的数据的速率为50bps,传输第五通道对应的数据的速率为60bps,则传输各个通道对应的数据的速率的加权值为46bps,则确定仲裁单元与阈值范围的对应关系为:若传输通道对应的数据的速率小于46bps,则对应仲裁单元2 ;若传输通道对应的数据的速率大于46bps,则对应仲裁单元2。[0086]上述是以存在三个仲裁单元为例进行介绍,实施中,总裁单元有多少个可以根据需要而定,仲裁单元设置的个数越多,传输数据的效率越高。
[0087]其中,可以给多个仲裁单元划分优先级,传输该通道对应的数据的速率越大,传输该通道对应的数据对应的仲裁单元的优先级越高;传输该通道对应的数据的传输时间越小,传输该通道对应的数据对应的仲裁单元的优先级越高。
[0088]较佳地,步骤202中,确定至少两个仲裁单元对应的通道有数据要传输之前还包括:
[0089]针对多个仲裁单元的一个仲裁单元,可以通过固定优先级或者round-robin方式确定传输该仲裁单元对应的通道中的哪个通道的数据,还可以通过传输该仲裁单元对应的通道的数据的速率确定传输该仲裁单元对应的通道中的哪个通道的数据。
[0090]以图3为例,若传输第一通道对应的数据的速率为20bps,传输第二通道对应的数据的速率为40bps,传输第三通道对应的数据的速率为65bps,传输第四通道对应的数据的速率为50bps,传输第五通道对应的数据的速率为60bps,第一通道和第二通道对应仲裁单元3,第四通道对应仲裁单元2,第三通道和第五通道对应仲裁单元1,由于仲裁单元3对应的通道中,传输第二通道对应的数据的速率大于传输第一通道对应的数据的速率,则仲裁单元3确定先传输第二通道对应的数据中的部分数据,再传输第一通道对应的数据中的部分数据,再传输第二通道对应的数据中的部分数据,如此循环交替进行。
[0091]较佳地,仲裁单元1、总线命令产生器I以及总线命令队列I之间的指令交互与上述提及的仲裁单元、总线命令产生器以及总线命令队列之间的指令交互类似,仲裁单元2、总线命令产生器2以及总线命令队列2之间的指令交互与上述提及的仲裁单元、总线命令产生器以及总线命令队列之间的指令交互类似,仲裁单元3、总线命令产生器3以及总线命令队列3之间的指令交互与上述提及的仲裁单元、总线命令产生器以及总线命令队列之间的指令交互类似,在此不再赘述。
[0092]其中,针对不同优先级的仲裁单元,总线命令队列存储容量也不同,较佳地,仲裁单元优先级越高,总线命令队列存储容量越大,数据传输效率越高。
[0093]较佳地,步骤202中,确定至少两个仲裁单元对应的通道有数据要传输包括有多种方式,比如在设定时间段内接收到至少两个仲裁单元对应的传输数据指令后,确定至少两个仲裁单元对应的通道有数据要传输,或者在设定时间段内收到的来自至少两个仲裁单元的传输指令,确定至少两个仲裁单元对应的通道有数据要传输。
[0094]方式一、在设定时间段内接收到至少两个仲裁单元对应的传输数据指令后,确定至少两个仲裁单元对应的通道有数据要传输;
[0095]其中,每个仲裁单元对应的传输数据指令不同。
[0096]其中,设定时间段可以是任何时间段,比如Ims (毫秒),IOOus (微秒),可以根据需
要设定。
[0097]当设定时间段的值为O时,即在同时接收到至少两个仲裁单元对应的传输数据指令后,确定至少两个仲裁单元对应的通道有数据要传输的情况同样适用于本发明。
[0098]较佳地,所述传输数据指令包括源地址、目的地址以及数据标识;每个仲裁单元对应的传输数据指令不同包括下列中的一种或多种:
[0099]一、每个仲裁单元对应的传输数据指令中的源地址不同;[0100]以图3为例,若第一通道对应仲裁单元I,第二通道对应仲裁单元2,第一通道对应的源地址为R0M,第一通道对应的数据标识为Al,第二通道对应的源地址为PC,第二通道对应的数据标识为A2,第一通道和第二通道对应的目的地址均为ACC,则仲裁单元I对应的传输数据指令包括R0M、ACC以及Al,仲裁单元2对应的传输数据指令包括PC、ACC以及A2,在设定时间内,总线控制器收到来自仲裁单元I对应的传输数据指令以及仲裁单元2对应的传输数据指令,则确定至少两个仲裁单元对应的通道有数据要传输;其中,每个仲裁单元对应的传输数据指令中的源地址不同。
[0101]二、每个仲裁单元对应的传输数据指令中的目的地址不同;
[0102]以图3为例,若第一通道对应仲裁单元1,第二通道对应仲裁单元2,第一通道和第二通道对应的源地址为PC,第一通道对应的数据标识为Al,第一通道对应的目的地址为ROM,第二通道对应的目的地址为ACC,第二通道对应的数据标识为Al,则仲裁单元I对应的传输数据指令包括PC、ROM以及Al,仲裁单元2对应的传输数据指令包括PC、ACC以及Al,在设定时间内,总线控制器收到来自仲裁单元I对应的传输数据指令以及仲裁单元2对应的传输数据指令,则确定至少两个仲裁单元对应的通道有数据要传输;其中,每个仲裁单元对应的传输数据指令中的目的地址不同。
[0103]三、每个仲裁单元对应的传输数据指令中的数据标识不同。
[0104]以图3为例,若第一通道对应仲裁单元1,第二通道对应仲裁单元2,第一通道和第二通道对应的源地址为PC,第一通道和第二通道对应的对应的目的地址为R0M,第一通道对应的数据标识为Al,第二通道对应的数据标识为A2,则仲裁单元I对应的传输数据指令包括PC、ROM以及Al,仲裁单元2对应的传输数据指令包括PC、ROM以及A2,在设定时间内,总线控制器收到来自仲裁单元I对应的传输数据指令以及仲裁单元2对应的传输数据指令,则确定至少两个仲裁单元对应的通道有数据要传输;其中,每个仲裁单元对应的传输数据指令中的数据标识不同。
[0105]方式二、在设定时间段内收到的来自至少两个仲裁单元的传输指令,确定至少两个仲裁单元对应的通道有数据要传输。
[0106]其中,设定时间段可以是任何时间段,比如Ims (毫秒),IOOus (微秒),可以根据需
要设定。
[0107]当设定时间段的值为O时,即在同时接收到至少两个仲裁单元对应的传输数据指令后,确定至少两个仲裁单元对应的通道有数据要传输的情况同样适用于本发明。
[0108]其中,仲裁单元发送传输指令,用于通知总线控制器该仲裁单元对应的通道有数据要进行传输。
[0109]较佳地,根据所述至少两个仲裁单元的优先级传输数据包括:
[0110]先处理优先级高的仲裁单元对应的传输数据指令,即先传输优先级高的仲裁单元对应的通道的数据。
[0111]其中,仲裁单元的优先级越高,传输仲裁单元对应的通道的数据的速率越大。
[0112]其中,如果在设定时间段内收到来自一个仲裁单元的传输指令,则无需判断该仲裁单元的优先级,直接传输该仲裁单元对应的通道的数据。
[0113]其中,仲裁单元的优先级可以有总线控制器进行存储,也可以由其它存储实体进行存储,当需要用到仲裁单元的优先级时,总线控制器到其它存储实体调取。[0114]本发明实施例是以存在三个仲裁单元,五个DMA通道为例进行说明,需要说明的是,本发明实施例并不局限于三个仲裁单元,五个DMA通道,针对不同的应用需求,其他情况也适用本发明实施例,针对其他情况的实施方式与本发明实施例的实施方式类似,在此不再赘述。
[0115]如图4所示,本发明实施例传输数据的详细方法包括下列步骤:
[0116]步骤401、第一硬件模块通过第一通道向仲裁单元I发送DMA请求,请求将数据M从地址A传输到地址B ;第三硬件模块通过第三通道向仲裁单元I发送DMA请求,请求将数据N从地址C传输到地址D ;第四硬件模块通过第四通道向仲裁单元I发送DMA请求,请求将数据O从地址E传输到地址F ;
[0117]其中,所有的硬件模块第一次发送DMA请求时,要通过各自的通道向同一个仲裁单元发送DMA请求。
[0118]实施中,所有的硬件模块同时向哪个仲裁单元发送DMA请求可以根据需要设定,比如同时向仲裁单元I发送DMA请求。
[0119]实施中,第一硬件模块可以通过第一通道向仲裁单元I发送DMA请求,请求将数据M从地址A传输到地址B ;第一硬件模块也可以通过第一通道向仲裁单元I发送DMA请求,请求将数据M从地址A传输到地址B ;通过第二通道向仲裁单元I发送DMA请求,请求将数据N从地址A传输到地址B,具体可以根据需要设定。
[0120]步骤402、仲裁单元I在收到来自硬件模块的DMA请求时,通过固定优先级或者round-robin (轮询)方式确定传输哪个通道对应的数据,并向总线命令产生器I发送传输该通道对应的数据的指令,指示总线命令产生器I确定该通道对应的源地址、该通道对应的目的地址以及该通道对应的数据标识;
[0121]其中,仲裁单元I通过固定优先级或者round-robin方式确定传输哪个通道对应的数据的实施方式与图2中仲裁单元通过固定优先级或者round-robin方式确定传输哪个通道对应的数据的实施方式相同,在此不再赘述。
[0122]步骤403、总线命令产生器I根据收到的来自仲裁单元I的指令,确定该通道对应的源地址、该通道对应的目的地址以及该通道对应的数据标识;
[0123]步骤404、针对第一硬件模块、第三硬件模块以及第四硬件模块的DMA请求,仲裁单元I根据固定优先级或者round-robin方式发送三条传输该通道对应的数据的指令,总线命令产生器I确定多组通道对应的源地址、通道对应的目的地址以及通道对应的数据标识;
[0124]步骤405、在确定一组通道对应的源地址、通道对应的目的地址以及通道对应的数据标识后,总线命令产生器I会向总线命令队列I发送确定的一组通道对应的源地址、通道对应的目的地址以及通道对应的数据标识;
[0125]步骤406、总线命令队列I存储接收到的多组通道对应的源地址、通道对应的目的地址以及通道对应的数据标识;
[0126]较佳地,也可以采用其它存储实体存储多组通道对应的源地址、通道对应的目的地址以及通道对应的数据标识。
[0127]步骤407、总线命令队列I采用先入先出的方式将存储的多组通道对应的源地址、通道对应的目的地址以及通道对应的数据标识中的一组确定为一条传输数据指令,并向总线控制器发送;
[0128]其中,传输数据指令包含源地址、目的地址以及数据标识,指示获取源地址中数据标识对应的数据,并传输到目的地址。
[0129]步骤408、总线控制器接收到来自总线命令队列I的传输数据指令后,确定源地址、目的地址以及数据标识,并向数据通路发送包含确定的源地址以及数据标识的获取数据指令;
[0130]步骤409、总线控制器在发出获取数据指令的同时,向性能确定模块发送指令,指示性能确定模块中设定的定时器开始定时;
[0131]步骤410、数据通路到源地址中获取数据标识对应的数据,并将数据发送给总线控制器;
[0132]步骤411、总线控制器在收到来自数据通路的数据的同时,向性能确定模块发送指令,指示性能确定模块中设定的定时器停止定时,并向性能确定模块发送收到的数据的数
据量信息;
[0133]步骤412、总线控制器将收到来自数据通路的数据传输到目的地址;
[0134]步骤413、性能确定模块确定传输该通道对应的数据的传输时间和传输容量,并计算出传输该通道对应的数据的速率;
[0135]步骤414、性能确定模块将计算出的传输该通道对应的数据的速率发送给仲裁单元确定模块;
[0136]步骤415、仲裁单元确定模块确定收到的传输该通道对应的数据的速率所在的阈值范围,根据仲裁单元与阈值范围的对应关系,确定传输该通道对应的数据的速率所在的阈值范围对应的仲裁单元,并确定阈值范围对应的仲裁单元为该通道对应的仲裁单元;
[0137]步骤416、针对每个仲裁单元,仲裁单元根据收到的DMA请求确定该仲裁单元对应的通道有数据要进行传输;
[0138]针对仲裁单元、总线命令产生器以及总线命令队列的交互,参见执行步骤402?步骤 407 ;
[0139]步骤417、总线控制器确定至少两个仲裁单元对应的通道有数据要传输时,根据所述至少两个仲裁单元的优先级传输数据。
[0140]其中,步骤417的实施方式见本发明图2的实施方式。
[0141]基于同一发明构思,本发明实施例中还提供了一种传输数据的设备、接收设备,由于该设备解决问题的原理与本发明实施例的方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
[0142]图5为本发明实施例传输数据的设备结构示意图,如图所示,本发明实施例的传输数据的设备包括:
[0143]确定模块501,用于针对一个直接内存存取DMA通道,根据该通道的数据对应的传输性能,从多个仲裁单元中确定该通道对应的仲裁单元;
[0144]处理模块502,用于确定至少两个仲裁单元对应的通道有数据要传输时,根据所述至少两个仲裁单元的优先级确定进行传输的数据。
[0145]较佳地,针对一个直接内存存取DMA通道,该通道的数据对应的传输性能为传输该通道对应的数据的传输时间或传输该通道对应的数据的速率;[0146]确定模块501,具体用于确定传输该通道对应的数据的传输时间或传输该通道对应的数据的速率。
[0147]较佳地,针对该通道的数据对应的传输性能为传输该通道对应的数据的速率;确定模块501,具体用于确定传输该通道对应的数据的传输时间和传输容量,并根据所述传输时间和传输容量确定该通道的数据对应的传输性能。
[0148]较佳地,确定模块501,具体用于确定该通道的数据对应的传输性能所在的阈值范围,根据仲裁单元与阈值范围的对应关系,确定该通道的数据对应的传输性能所在的阈值范围对应的仲裁单元,并将确定所述阈值范围对应的仲裁单元为该通道对应的仲裁单元。
[0149]较佳地,处理模块502,具体用于在设定时间段内接收到至少两个仲裁单元对应的传输数据指令后,确定至少两个仲裁单元对应的通道有数据要传输,其中,每个仲裁单元对应的传输数据指令不同。
[0150]较佳地,所述传输数据指令包括源地址、目的地址以及数据标识;每个仲裁单元对应的传输数据指令不同包括下列中的一种或多种:每个仲裁单元对应的传输数据指令中的源地址不同;每个仲裁单元对应的传输数据指令中的目的地址不同;每个仲裁单元对应的传输数据指令中的数据标识不同。
[0151]其中,本发明传输数据的设备的实施例中,确定模块501相当于本发明实施例的仲裁结构(见图3)中的仲裁单元确定模块,处理模块502相当于本发明实施例的仲裁结构中的总线控制器;在确定模块501,具体用于确定传输该通道对应的数据的传输时间和传输容量,并根据所述传输时间和传输容量确定该通道的数据对应的传输性能时,确定模块501还相当于本发明实施例的仲裁结构中的性能确定模块。
[0152]较佳地,本发明实施例还包括如图3所示的DMA通道、总线命令产生器以及总线命令队列等,发送DMA请求的硬件模块、DMA通道、总线命令产生器、总线命令队列以及数据通路单元等的实施方式详见本发明图2的实施和本发明图4的实施。
[0153]其中,上述是以存在有限个DMA通道、仲裁单元确定模块、仲裁单元、总线命令产生器、总线命令队列为例进行介绍,实施中,DMA通道、仲裁单元确定模块、仲裁单元、总线命令产生器、总线命令队列的数量可以根据需要而定,然而需要满足:DMA通道、仲裁单元确定模块、仲裁单元、总线命令产生器、总线命令队列的数量相同。
[0154]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0155]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0156]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0157]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0158]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0159]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种传输数据的方法,其特征在于,该方法包括: 针对一个直接内存存取DMA通道,根据该通道的数据对应的传输性能,从多个仲裁单元中确定该通道对应的仲裁单元; 确定至少两个仲裁单元对应的通道有数据要传输时,根据所述至少两个仲裁单元的优先级传输数据。
2.如权利要求1所述的方法,其特征在于,该通道的数据对应的传输性能为传输该通道对应的数据的传输时间或传输该通道对应的数据的速率。
3.如权利要求2所述的方法,其特征在于,该通道的数据对应的传输性能为传输该通道对应的数据的速率,确定该通道的数据对应的传输性能包括: 确定传输该通道对应的数据的传输时间和传输容量; 根据所述传输时间和传输容量确定该通道的数据对应的传输性能。
4.如权利要求1所述的方法,其特征在于,根据该通道的数据对应的传输性能,从多个仲裁单元中确定该通道对应的仲裁单元包括: 确定该通道的数据对应的传输性能所在的阈值范围; 根据仲裁单元与阈值范围的对应关系,确定该通道的数据对应的传输性能所在的阈值范围对应的仲裁单元,并将确定所述阈值范围对应的仲裁单元为该通道对应的仲裁单元。
5.如权利要求1所述的方法,其特征在于,确定至少两个仲裁单元对应的通道有数据要传输包括: 在设定时间段内接收到至少两个仲裁单元对应的传输数据指令后,确定至少两个仲裁单元对应的通道有数据要传输; 其中,每个仲裁单元对应的传输数据指令不同。
6.如权利要求5所述的方法,其特征在于,所述传输数据指令包括源地址、目的地址以及数据标识; 每个仲裁单元对应的传输数据指令不同包括下列中的一种或多种: 每个仲裁单元对应的传输数据指令中的源地址不同; 每个仲裁单元对应的传输数据指令中的目的地址不同; 每个仲裁单元对应的传输数据指令中的数据标识不同。
7.一种传输数据的设备,其特征在于,该设备包括: 确定模块,用于针对一个直接内存存取DMA通道,根据该通道的数据对应的传输性能,从多个仲裁单元中确定该通道对应的仲裁单元; 处理模块,用于确定至少两个仲裁单元对应的通道有数据要传输时,根据所述至少两个仲裁单元的优先级确定进行传输的数据。
8.如权利要求7所述的设备,其特征在于,该通道的数据对应的传输性能为传输该通道对应的数据的传输时间或传输该通道对应的数据的速率; 所述确定模块,具体用于确定传输该通道对应的数据的传输时间或传输该通道对应的数据的速率。
9.如权利要求8所述的设备,其特征在于,该通道的数据对应的传输性能为传输该通道对应的数据的速率; 所述确定模块,具体用于确定传输该通道对应的数据的传输时间和传输容量,并根据所述传输时间和传输容量确定该通道的数据对应的传输性能。
10.如权利要求7所述的设备,其特征在于,所述确定模块,具体用于确定该通道的数据对应的传输性能所在的阈值范围,根据仲裁单元与阈值范围的对应关系,确定该通道的数据对应的传输性能所在的阈值范围对应的仲裁单元,并将确定所述阈值范围对应的仲裁单元为该通道对应的仲裁单元。
11.如权利要求7所述的设备,其特征在于,所述处理模块,具体用于在设定时间段内接收到至少两个仲裁单元对应的传输数据指令后,确定至少两个仲裁单元对应的通道有数据要传输,其中,每个仲裁单元对应的传输数据指令不同。
12.如权利要求11所述的设备,其特征在于,所述传输数据指令包括源地址、目的地址以及数据标识;每个仲裁单元对应的传输数据指令不同包括下列中的一种或多种:每个仲裁单元对应的传输数据指令中的源地址不同;每个仲裁单元对应的传输数据指令中的目的地址不同;每个仲裁单元对应的传输数据指令中的数据标识不同。
【文档编号】G06F13/28GK103678199SQ201210374363
【公开日】2014年3月26日 申请日期:2012年9月26日 优先权日:2012年9月26日
【发明者】廖洲 申请人:深圳市中兴微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1