一种数据传输方法及装置与流程

文档序号:12376102阅读:248来源:国知局
一种数据传输方法及装置与流程

本发明涉及电子技术领域,尤其涉及一种数据传输方法及装置。



背景技术:

数据传输设备(例如:CPU(中文:中央处理器,英文:Central Processing Unit)、低速外设UART(中文:通用异步收发传输器,英文:Universal Asynchronous Receiver/Transmitter)等)可以与总线进行数据交互,从而将一条总线上的数据转发给另一条总线。

一般情况下,总线在为挂在其上的所有数据传输设备分配带宽时,通常会根据预先为这些数据传输设备配置的优先级别由高到低依次进行分配,其中,总线为数据传输设备所配置的优先级别在数据传输过程中不可改变。这样,当总线发生拥堵时,由于总线按照优先级别顺序分配带宽,使得总线在为高等优先级别的数据传输设备分配满足其需求带宽的情况下,总线上剩余的带宽可能不能满足中等优先级别的设备所需求的带宽,使得该中等优先级别的设备获取不到足够的带宽,进而导致该设备通过分配的带宽不能够获取满足需求的数据。



技术实现要素:

本发明的实施例提供的数据传输方法及装置,以解决现有的总线发生拥堵时,数据传输设备带宽获取不足的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,提供一种数据传输方法,应用于数据传输装置,所述装置连接至少两条总线,所述方法包括:

获取预定时间段内第一总线的数据传输速率和第二总线的数据传输速率;

当所述第一的数据传输速率大于所述第二总线的数据传输速率时,向所述第二总线发送指令信息,所述指令信息用于指示所述第二总线提高所述数据传输装置的优先级,并根据提高后的优先级为所述数据传输装置传输数据;所述第一总线的数据传输模式为消耗模式,所述第二总线的数据传输模式为供给模式。

第二方面,提供一种数据传输装置,所述数据传输装置连接至少两条总线,所述装置包括:

获取模块,用于获取预定时间段内第一总线的数据传输速率和第二总线的数据传输速率;

发送模块,用于当所述获取模块获取的所述第一总线的数据传输速率大于所述第二总线的数据传输速率时,向所述第二总线发送指令信息,所述指令信息用于指示所述第二总线提高所述数据传输装置的优先级,并根据提高后的优先级为所述数据传输装置传输数据;所述第一总线的数据传输模式为消耗模式,所述第二总线的数据传输模式为供给模式。

本发明实施例提供的数据传输方法及装置,通过获取预定时间段内与该数据传输装置相连的第一总线的数据传输速率和与该数据传输装置相连的第二总线的数据传输速率,当第一总线的数据传输模式为消耗模式,第二总线的数据传输模式为供给模式,若该第一总线的数据传输速率大于第二总线的数据传输速率时,即当第二总线发生拥堵,无法向该数据传输装置配置该数据传输装置传输数据所需的带宽时,通过向第二总线发送指令信息,来指示该第二总线提高该数据传输装置的优先级,从而优先为该数据传输装置分配带宽。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据传输装置的结构示意图;

图2为本发明实施例提供的一种数据传输方法的方法流程图;

图3为本发明实施例提供的一种第一总线和第二总线的数据传输量的曲线图;

图4为本发明实施例提供的一种第一总线和第二总线的数据传输速率的曲线图;

图5为本发明实施例提供的另一种数据传输装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供的数据传输装置与至少两条总线(例如总线1、总线2)连通,该数据传输装置用于在多条总线间进行数据交互。示例性的,上述的数据传输装置包括但不限于:video DMA(中文:直接内存存取、或直接存储器访问,英文:Direct Memory Access)等数据存储器,也可以为SOC上任何总线的bridge模块。

本发明实施例提供一种数据传输方法,如图2所示,该方法具体包括如下步骤:

101、获取预定时间段内第一总线的数据传输速率和第二总线的数据传输速率。

其中,上述的第一总线与第二总线均即可用于从数据传输装置接收数据,还可用于向数据传输装置发送数据。而上述的预定时间段可以为一个数据传输周期。示例性的,当本发明实施例中的数据传输装置为智能电视的video DMA时,上述的预定时间段可以配置为一幅图片的传输时间,具体的,该传输时间可以为该数据传输装置在检测到场同步信号(该场同步信号用于保持所有信号在同一时间进行传输)开始,到一副图片传输完毕的时间。

需要说明的是,本发明中的第一总线与第二总线用于从数据传输装置接收数据,还可用于向数据传输装置发送数据,仅代表该总线当前的数据传输模式。

示例性的,在本实施例中,在实现步骤101之前,需要预先确定与该数据传输装置互联的每条总线的数据传输模式(即:供给模式或消耗模式),即在步骤101之前,数据传输装置确定总线的数据传输模式的确定流程还可以通过如下步骤来实现:

A1、确定至少两条总线中每条总线与数据传输装置之间的数据传输方向。

A2、根据每条总线与数据传输装置之间的数据传输方向确定每条总线的数据传输模式。

其中,上述的总线的数据传输模式包括供给模式和消耗模式。

具体的,步骤A2包括如下内容:

B1、当数据传输方向为总线到数据传输装置,则确定总线的数据传输模式为供给模式;或者,当数据传输方向为数据传输装置到总线,则确定总线的数据传输模式为消耗模式。

示例性的,当数据传输方向为总线到数据传输装置,表明该总线向数据传输装置发送数据,则确定总线的数据传输模式为供给模式;当数据传输方向为数据传输装置到总线,表明该总线从数据传输装置接收数据,则确定总线的数据传输模式为消耗模式。

示例性的,若该数据传输装置为DMA,且该DMA分别与AXI(中文:扩展接口,英文:Advanced eXtensible Interface)总线和Video IP总线(简称:Vbus总线)连接。具体的,当DMA的数据传输方向(即数据搬移方向)为AXI总线到Vbus总线时,由于DMA对AXI总线产生读操作,从该AXI总线中读取数据,并对Vbus总线产生写操作,将数据写入该Vbus总线,因此,AXI总线的数据传输模式为供给模式、Vbus总线的数据传输模式为消耗模式;当DMA的数据传输方向(即数据搬移方向)为Vbus总线到AXI总线时,由于DMA对Vbus总线产生读操作,从该Vbus总线中读取数据,并对AXI总线产生写操作,将数据写入该AXI总线中,因此,AXI总线为的数据传输模式为消耗模式、Vbus总线的数据传输模式为供给模式。

示例性的,步骤101包括如下内容:

C1、根据预定时间段内的第一总线的数据传输量和预定时间段的时长,确定第一总线在预定时间段内的数据传输速率,并根据预定时间段内的第二总线的数据传输量和预定时间段的时长,确定第二总线在预定时间段内的数据传输速率。

示例性的,步骤C1中的数据传输装置在根据预定时间段内的总线的数据传输量和预定时间段的时长,确定该总线在预定时间段内的数据传输速率时具体包括:数据传输装置根据预定时间段内的总线的数据传输量、预定时间段的时长以及数据传输速率计算公式,确定该总线在预定时间段内的数据传输速率。

其中,上述的传输速率计算公式可以为:

数据传输速率(△T)=(数据传输量(t)-数据传输量(t-△T))/△T;(公式1)

其中,△T用于表示预定时间段,数据传输速率(△T)用于表示在△T时间段内的数据传输速率,t为当前时间点,数据传输量(t)用于表示当前时间点t之前的全部数据传输量,t-△T为当前时间点之前的预定时间段开始的时间点,数据传输量(t-△T)用于表示t-△T对应时间点之前的全部数据传输量。

示例性的,步骤C1中预定时间段内的总线的数据传输量可以直接通过数据传输量统计装置或模块直接统计出来,在此不做限定。

示例性的,如图3所示的第一总线和第二总线的数据传输量的曲线图,横轴代表时间,纵轴代表数据传输量。一般的,第一总线的数据传输量是线性的,而由于SOC的复杂性,第二总线的数据传输量往往是非线性的,因此,在图3中,曲线1用于表示第二总线的数据传输量的曲线,曲线2用于表示第一总线的数据传输量的曲线。曲线1与曲线2的交叉点(即t2时间点与t4时间点对应的点)表示当前时间点第二总线供给的数据传输量与第一总线消耗的数据传输量相等,进一步表明该当前时间点的供求处于平衡状态。

示例性的,若数据传输装置为DMA时,AXI总线在预定时间段的数据传输速率可以用函数axi_rate(t)来表示,Vbus总线的数据传输速率可以用vbus_rate(t)来表示。例如,若采用如公式1所示公式确定数据传输速率,则:

AXI总线在预定时间段内的数据传输速率axi_rate(△T)为:

axi_rate(△T)=(axi_data_amount(t)-axi_data_amount(t-△T))/△T;(公式2)

Vbus总线在预定时间段内的数据传输速率vbus_rate(△T)为:

vbus_rate(△T)=(vbus_data_amount(t)-vbus_data_amount(t-△T))/△T;(公式3)

其中,函数axi_data_amount(t)用于表示AXI总线的数据传输量,函数vbus_data_amount(t)用于表示Vbus总线的数据传输量。

102、当第一总线的数据传输速率大于第二总线的数据传输速率时,向第二总线发送指令信息。

其中,上述的指令信息用于指示第二总线提高数据传输装置的优先级,并根据提高后的优先级为数据传输装置传输数据,该指令信息可以为urgent信号;上述的第一总线的数据传输模式为消耗模式,上述的第二总线的数据传输模式为供给模式。

示例性的,当第一总线的数据传输速率大于第二总线的数据传输速率时,即第二总线供给的数据传输量不满足第一总线需要消耗的数据传输量,供给的数据传输量出现不足,则数据传输装置进入urgent状态,并向第二总线发送指令信息,使得第二总线根据接收到的指令信息提高该数据传输装置的优先级,从而提升供给速率,使得该数据传输装置可以获取到足够的数据传输量。

需要说明的是,当第一总线的数据传输速率小于第二总线的数据传输速率时,即第二总线供给的数据传输量可以满足第二总线需要消耗的数据传输量,则撤销指令信息。当指令信息撤销后,第二总线上的数据传输装置恢复默认的优先级别。这样,总线根据指令信息更新数据传输装置的优先级别,使得数据的使用更加灵活,这样既可以保证自己的数据需求,又不影响其他数据传输装置的获取数据,是一种比较灵活高效的数据传输方法。

例如,以DMA为例,当AXI总线的数据传输模式为供给模式、Vbus总线的数据传输模式为消耗模式,若vbus_rate(t)>axi_rate(t)时,则DMA向AXI总线发送urgent信号,AXI总线提升DMA的优先级,从而增大给DMA发送数据的数据传输速率。

进一步的,为了防止数据浪费,步骤102具体包括如下内容:

D1、当第一总线的数据传输速率大于第二总线的数据传输速率时,若第二总线的数据传输速率呈下降趋势,则向第二总线发送指令信息。

示例性的,由于当第一总线的数据传输速率大于第二总线的数据传输速率时,若第二总线的数据传输速率呈上升趋势,则在短时间后,该第二总线为数据传输装置分配的带宽便能够满足该数据传输装置的传输需求,为了防止第二总线供给的数据传输量出现浪费,当第二总线的数据传输速率呈上升趋势,撤销指令信息,则在第二总线的数据传输速率呈上升趋势时,该数据传输装置恢复原本的优先级,撤销指令信息可以是撤销urgent信号。

示例性的,数据传输装置可统计连续时间段内的数据传输速率,并进行比较,若当前时间段的数据传输速率小于前一时间算的数据传输速率,则可以表示数据传输速率呈上升趋势。

示例性的,以DMA为例,当AXI总线的数据传输模式为供给模式、Vbus总线的数据传输模式为消耗模式时,若vbus_rate(△T)>axi_rate(△T)且axi_rate(△T)<axi_rate(t-△T),则DMA向AXI总线发送urgent信号,使得AXI总线提升DMA的优先级,从而增大给DMA发送数据的数据传输速率。

示例性的,参照图4所示的第一总线与第二总线的数据传输量的曲线图,其中,横轴代表时间,纵轴代表数据传输速率,图4中的曲线3是图3中曲线1(即第二总线供给的数据传输量曲线)对应的数据传输速率曲线,曲线4为图3中曲线2(即第一总线消耗的数据传输量曲线)对应的数据传输速率曲线。参照图4可知,曲线4平行于横轴,表明第一总线的数据传输速率是匀速的,而曲线3对应的第二总线的数据传输速率是非线性的,其中,曲线3下方、横纵上方以及纵轴右方围成的区域面积为第二总线供给的总数据传输量,而曲线4下方、横轴上方以及纵轴右方围成的区域面积为第一总线需要消耗的总数据传输量。

具体的,在0-t1对应的时间段曲线3呈上升趋势;在t1-t2对应的时间段曲线3呈下降趋势;在0-t2对应的时间段曲线3都位于曲线4的上方,因此,曲线3下方和曲线4上方的面积S1表明0-t2对应的时间段内第二总线供给的总数据传输量高于第一总线消耗的总数据传输量的数据传输量,则表明第二总线供给的数据传输量供给充足;在t2-t3对应的时间段曲线3呈下降趋势;在t3-t4对应的时间段曲线3呈上升趋势;在t2-t4对应的时间段,由于曲线3都位于曲线4的下方,因此曲线3上方和曲线4下方的面积S2为t2-t4对应的时间段内第一曲线消耗的总数据传输量多于第二总线供给的总数据传输量的数据传输量。

需要说明的是,虽然在曲线3下穿曲线4(即t2)之后的一定时间段内,由于0-t2时间段内第二总线供给的总数据传输量高于第一总线消耗的总数据传输量的部分,能够补充t2之后的一定时间内的第二总线的供给不足的问题,但是,这个时间很短,为了避免后续第二总线突然出现供给不足的现象,本发明实施例是在第一总线的数据传输速率大于第二总线的数据传输速率,且第二总线的数据传输速率呈下降趋势时,便开始向第二总线发送指令信息,来指示第二总线提高该数据传输装置的优先级。

此外,需要说明的是,当面积S1与S2大小相等时,表示在0-t4对应的时间段内供求平衡。

本发明实施例提供的数据传输的方法,通过获取预定时间段内与该数据传输装置相连的第一总线的数据传输速率和与该数据传输装置相连的第二总线的数据传输速率,当第一总线的数据传输模式为消耗模式,第二总线的数据传输模式为供给模式,若该第一总线的数据传输速率大于第二总线的数据传输速率时,即当第二总线发生拥堵,无法向该数据传输装置配置该数据传输装置传输数据所需的带宽时,通过向第二总线发送指令信息,来指示该第二总线提高该数据传输装置的优先级,从而优先为该数据传输装置分配数据带宽。

本发明实施例提供一种数据传输装置,如图5所示,该数据传输装置连接至少两条总线,该装置2包括:获取模块21和发送模块22,其中:

获取模块21,用于获取预定时间段内第一总线的数据传输速率和第二总线的数据传输速率;

发送模块22,用于当获取模块21获取的第一总线的数据传输速率大于第二总线的数据传输速率时,向第二总线发送指令信息。

其中,该指令信息用于指示第二总线提高数据传输装置的优先级,并根据提高后的优先级为数据传输装置传输数据;上述的第一总线的数据传输模式为消耗模式,上述的第二总线的数据传输模式为供给模式。

可选的,发送模块22具体用于:

当获取模块获取的第一总线的数据传输速率大于第二总线的数据传输速率,且第二总线的数据传输速率呈下降趋势时,向第二总线发送指令信息。

可选的,如图5所示,该装置还包括:确定模块23,其中:

确定模块23,用于确定数据传输装置至少两条总线中每条总线与数据传输装置之间的数据传输方向;

确定模块23,还用于根据每条总线与数据传输装置之间的数据传输方向确定每条总线的数据传输模式;

其中,上述的总线的数据传输模式包括供给模式和消耗模式。

可选的,确定模块23具体用于:

当数据传输方向为总线到数据传输装置,则确定总线的数据传输模式为供给模式;

当数据传输方向为数据传输装置到总线,则确定总线的数据传输模式为消耗模式。

可选的,获取模块21具体用于:

根据预定时间段内的第一总线的数据传输量和预定时间段的时长,确定第一总线在预定时间段内的数据传输速率,并根据预定时间段内的第二总线的数据传输量和预定时间段的时长,确定第二总线在预定时间段内的数据传输速率。

本发明实施例提供的数据传输装置,通过获取预定时间段内与该数据传输装置相连的第一总线的数据传输速率和与该数据传输装置相连的第二总线的数据传输速率,当第一总线的数据传输模式为消耗模式,第二总线的数据传输模式为供给模式,若该第一总线的数据传输速率大于第二总线的数据传输速率时,即当第二总线发生拥堵,无法向该数据传输装置配置该数据传输装置传输数据所需的带宽时,通过向第二总线发送指令信息,来指示该第二总线提高该数据传输装置的优先级,从而优先为该数据传输装置分配带宽。

需要说明的是,在具体实现过程中,上述如图2所示的方法流程中各步骤均可以通过硬件形式的处理器执行存储器中存储的软件形式的计算机执行指令实现,为避免重复,此处不再赘述。而上述装置所执行的动作所对应的程序均可以以软件形式存储于该装置的存储器中,以便于处理器调用执行以上各个模块对应的操作。

上文中的存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);还可以包括上述种类的存储器的组合。

上文所提供的装置中的处理器可以是一个处理器,也可以是多个处理元件的统称。例如,处理器可以为中央处理器(central processing unit,CPU;也可以为其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等;还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1