CN115378762A - 一种总线传输性能动态调度方法及装置 - Google Patents
一种总线传输性能动态调度方法及装置 Download PDFInfo
- Publication number
- CN115378762A CN115378762A CN202211306261.7A CN202211306261A CN115378762A CN 115378762 A CN115378762 A CN 115378762A CN 202211306261 A CN202211306261 A CN 202211306261A CN 115378762 A CN115378762 A CN 115378762A
- Authority
- CN
- China
- Prior art keywords
- priority
- bandwidth
- data
- host
- time
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40143—Bus networks involving priority mechanisms
- H04L12/40163—Bus networks involving priority mechanisms by assigning priority to messages according to a message field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种总线传输性能动态调度方法及装置。该方法包括:对多个机中的每个主机发出的数据包,执行如下第一组步骤:接收数据包,记录数据包的大小;计算实时带宽,比较实时带宽与带宽需求,得到比较结果;根据比较结果,调整优先级;输出数据包和优先级。本发明能根据不同主机(master)带宽的实际利用率情况,动态调节数据传输优先级,从而提高总线传输性能。
Description
技术领域
本发明属于数据处理技术领域,更具体地,涉及一种总线传输性能动态调度方法及装置。
背景技术
如今SoC芯片的规模越来越大,系统总线的设计复杂度也在不断提高,以往通过提高频率来提升总线的性能,这种方法收效甚微。在系统的带宽总量基本固定的情况下,如何动态分配已有的流量,让各个设备都能获得其在当前应用场景下所需要的带宽,就成了很重要的一个工作。现在市面上比较常见的是采用固定优先级或者轮询仲裁的方式来分配系统带宽,这种方法灵活性低而且需要CPU参与干预进行人工调节。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种总线传输性能动态调度方法及装置,能根据不同主机(master)带宽的实际利用率情况,动态调节数据传输优先级,从而提高总线传输性能。
为实现上述目的,按照本发明的一个方面,提供了一种总线传输性能动态调度方法,包括:对多个主机中的每个主机发出的数据包,执行如下第一组步骤:接收数据包,记录数据包的大小;计算实时带宽,比较实时带宽与带宽需求,得到比较结果;根据比较结果,调整优先级;输出数据包和调整后的优先级。
在一些实施方式中,该方法还包括:对多个主机中的每个主机发出的数据包,执行如下第二组步骤:初始化优先级为优先级上限;接收数据包,记录数据包的大小;输出数据包和初始化的优先级。
在一些实施方式中,该方法还包括:接收每个主机的数据包和优先级;对不同主机在同一时刻发出的数据包,根据同一时刻发出的数据包对应的优先级的值,选择一个主机的数据包发送出去。
在一些实施方式中,通过如下方式计算实时带宽:bw= TO/t;其中,bw表示实时带宽,TO表示主机发送成功的数据总量,t表示时间。
在一些实施方式中,该方法还包括:在主机的数据包发送成功时,执行如下第三组步骤:接收确认信号,根据确认信号判断前次数据包发送成功;更新主机发送成功的数据总量,使得更新后的数据总量为更新前的数据总量与前次发送成功的数据包的大小之和。
在一些实施方式中,根据比较结果,调整优先级包括:在实时带宽小于带宽需求、且优先级小于优先级上限时,增大优先级;在实时带宽小于带宽需求、且优先级达到优先级上限时,保持优先级不变;在实时带宽大于带宽需求、且优先级大于优先级下限时,减小优先级;在实时带宽大于带宽需求、且优先级达到优先级下限时,保持优先级不变。
在一些实施方式中,增大优先级包括:使优先级为优先级上限,或者使优先级增大预设步长;减小优先级包括:使优先级为优先级下限,或者使优先级减小预设步长。
在一些实施方式中,该方法还包括:预先设置配置数据;所述配置数据包括带宽需求、优先级上限和优先级下限;或者,所述配置数据包括带宽需求、优先级上限、优先级下限和预设步长;或者,所述配置数据包括时间条件、带宽需求、优先级上限和优先级下限;或者,所述配置数据包括时间条件、带宽需求、优先级上限、优先级下限和预设步长。
在一些实施方式中,对同一主机,设置多组配置数据;该多组配置数据对应同一应用场景,该多组配置数据中的时间条件取值不同。
在一些实施方式中,对同一主机,设置多组配置数据;该多组配置数据包含第一类配置数据和第二类配置数据,第一类配置数据对应第一应用场景,第二类配置数据对应不同于第一应用场景的第二应用场景;第一类配置数据包含多组配置数据,第一类配置数据包含的多组配置数据中的时间条件取值不同。
根据本发明的另一方面,提供了一种带宽控制器,包括:数据拆包模块,用于接收数据包,记录数据包的大小,并输出数据包;计算模块,用于计算实时带宽;比较模块,用于比较实时带宽与带宽需求,得到比较结果;优先级生成模块,用于根据比较结果,调整优先级,并输出优先级。
在一些实施方式中,优先级生成模块还用于初始化优先级为优先级上限;计算模块通过如下方式计算实时带宽:bw= TO/t;其中,bw表示实时带宽,TO表示主机发送成功的数据总量,t表示时间。
在一些实施方式中,数据拆包模块还用于接收确认信号,根据确认信号判断前次数据包发送成功时,更新主机发送成功的数据总量,使得更新后的数据总量为更新前的数据总量与前次发送成功的数据包的大小之和。
在一些实施方式中,上述带宽控制器还包括时钟计数器,时钟计数器用于接收时钟信号,根据时钟信号计算时钟周期的数量cnt,根据时钟周期的数量cnt和时钟周期T,计算得到时间t=cnt*T。
在一些实施方式中,优先级生成模块根据比较结果,调整优先级包括:在实时带宽小于带宽需求、且优先级小于优先级上限时,增大优先级;在实时带宽小于带宽需求、且优先级达到优先级上限时,保持优先级不变;在实时带宽大于带宽需求、且优先级大于优先级下限时,减小优先级;在实时带宽大于带宽需求、且优先级达到优先级下限时,保持优先级不变。
在一些实施方式中,增大优先级包括:使优先级为优先级上限,或者使优先级增大预设步长;减小优先级包括:使优先级为优先级下限,或者使优先级减小预设步长。
根据本发明的又一方面,提供了一种总线传输性能动态调度装置,包括总线仲裁模块和多个上述带宽控制器;总线仲裁模块用于接收多个带宽控制器的数据包和优先级;以及对同一时刻发至多个带宽控制器的多个数据包,根据多个数据包对应的优先级的值,选择其中一个数据包发送出去。
根据本发明的又一方面,提供了一种片上系统,包括多个主机、总线仲裁模块和多个上述带宽控制器;多个主机与多个带宽控制器一一对应;主机用于在时钟信号的触发下,将数据包发送至对应的带宽控制器,带宽控制器用于将数据包和优先级发送至总线仲裁模块,总线仲裁模块用于在多个主机在同一时刻发出多个数据包时,根据多个数据包对应的优先级的值,选择其中一个数据包发送出去。
在一些实施方式中,多个主机中的其中一个主机还用于预先设置配置数据,并将预先设置的配置数据存入多个所述带宽控制器;或者,该片上系统还包括单独的主机,单独的主机用于预先设置配置数据,并将预先设置的配置数据存入多个带宽控制器。
在一些实施方式中,配置数据包括带宽需求、优先级上限和优先级下限;或者,配置数据包括带宽需求、优先级上限、优先级下限和预设步长;或者,配置数据包括时间条件、带宽需求、优先级上限和优先级下限;或者,配置数据包括时间条件、带宽需求、优先级上限、优先级下限和预设步长。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:预设各个主机在不同应用场景下的带宽需求,以及动态调整各个主机在实际带宽不满足和超过带宽需求这两种情况下的传输优先级,例如,通过实时统计各个主机已获得的流量来判断是否达到预设的带宽需求,如未达到则发出具有高优先级信号的数据包,如已达到则发出具有低优先级信号的数据包。本发明不需要在实际应用场景中进行人工干预,例如通过CPU改写数据包的传输优先级,而是通过动态调节,在系统的带宽总量基本固定的高并发场景下,也能够满足各个主机对带宽的需求,有效提升数据传输效率。
附图说明
图1是本发明实施例的片上系统的结构示意图;
图2是本发明实施例的带宽控制器的结构示意图;
图3是本发明实施例的总线传输性能动态调度方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。正如本领域技术人员可以认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
片上系统可以在任意计算设备中集成,包括但不限于个人计算机、移动设备、便携式计算机、服务器、显卡、人工智能计算设备等。如图1所示,在本发明实施例中,SoC包括第一主机、第二主机、第三主机、与第一主机对应的第一带宽控制器、与第二主机对应的第二带宽控制器、与第三主机对应的第三带宽控制器以及总线仲裁模块。其中,第一带宽控制器连接第一主机和总线仲裁模块,第二带宽控制器连接第二主机和总线仲裁模块,第三带宽控制器连接第三主机和总线仲裁模块。
在准备阶段,将第一主机的配置数据cfg1存入第一带宽控制器,将第二主机的配置数据cfg2存入第二带宽控制器,将第三主机的配置数据cfg3存入第三带宽控制器。在一些实施方式中,在第一带宽控制器中设置第一寄存器,在第二带宽控制器中设置第二寄存器,在第三带宽控制器中设置第三寄存器,配置数据cfg1、cfg2和cfg3分别存入第一寄存器、第二寄存器和第三寄存器。
在一些实施方式中,上述将配置数据存入第一至第三带宽控制器的操作由第四主机完成。在一些实施方式中,第四主机为CPU(参见图1)。在一些实施方式中,第四主机为其他具备发出配置信号能力的处理单元,本发明对此不做限制。
在一些实施方式中,上述将配置数据存入第一至第三带宽控制器的操作由第一主机、第二主机和第三主机中的任意一个完成。在一些实施方式中,执行将配置数据存入第一至第三带宽控制器的操作的第一主机、第二主机或者第三主机为CPU或者其他具备发出配置信号能力的处理单元。
在一些实施方式中,第一主机/第二主机/第三主机可以是高速串行计算机扩展总线(Peripheral Component Interconnect express,PCIe)、视频编解码器(video codec,vcodec)、中央处理器(Central Processing Unit,CPU)、神经网络处理器(Neural networkProcessing Unit,NPU)、图像处理器(Graphics Processing Unit,GPU)、音频处理模块(Audio)、显示处理单元(Display Processor,DP)、直接存储器访问(Direct MemoryAccess,DMA)或者高清晰度多媒体接口(High Definition Multimedia Interface,HDMI)。
如图1所示,CPU存入至带宽控制器的配置数据cfg包括带宽需求bw_req、优先级上限qos_high和优先级下限qos_low。具体地,存入至第一带宽控制器的配置数据cfg1包括第一带宽需求bw_req1、第一优先级上限qos_high1和第一优先级下限qos_low1;存入至第二带宽控制器的配置数据cfg2包括第二带宽需求bw_req2、第二优先级上限qos_high2和第二优先级下限qos_low2;存入至第三带宽控制器的配置数据cfg3包括第三带宽需求bw_req3、第三优先级上限qos_high3和第三优先级下限qos_low3。
在一些实施方式中,主机的配置数据cfg为预设值,即,第一主机的配置数据cfg1、第二主机的配置数据cfg2以及第三主机的配置数据cfg3均为预设值。在一些实施方式中,主机的优先级上限qos_high和优先级下限qos_low在0至15间取值。具体地,第一优先级上限qos_high1、第一优先级下限qos_low1、第二优先级上限qos_high2、第二优先级下限qos_low2、第三优先级上限qos_high3和第三优先级下限qos_low3的取值均在0至15范围内。可以理解的是,此些数值仅为示例性的给出,本发明并不以此为限。
在一些实施方式中,不同主机的优先级上限和优先级下限至少有一个不同,以更好地对不同主机的功能和使用场景进行区分。例如,对第一主机和第二主机,在第一优先级上限qos_high1不同于第二优先级上限qos_high2时,第一优先级下限qos_low1可以不同于第二优先级下限qos_low2,第一优先级下限qos_low1也可以与第二优先级下限qos_low2相同;在第一优先级下限qos_low1不同于第二优先级下限qos_low2时,第一优先级上限qos_high1可以不同于第二优先级上限qos_high2,第一优先级上限qos_high1也可以与第二优先级上限qos_high2相同。
此外,第一带宽控制器还存有与第一主机对应的第一优先级qos1,第二带宽控制器还存有与第二主机对应的第二优先级qos2,第三带宽控制器还存有与第三主机对应的第三优先级qos3。
在准备阶段,初始化第一优先级qos1,使第一优先级qos1等于第一优先级上限qos_high1,初始化第二优先级qos2,使第二优先级qos2等于第二优先级上限qos_high2,初始化第三优先级qos3,使第三优先级qos3等于第三优先级上限qos_high3。在一些实施方式中,上述初始化过程分别由第一至第三带宽控制器完成。
在t=0时,主机在时钟信号的触发下发送数据包,对应的带宽控制器在收到来自主机的数据包后,不作比较,直接将数据包和初始化的优先级一起,发送至总线仲裁模块。总线仲裁模块在同一时刻可能会收到来自多个主机的数据包及其对应的优先级,总线仲裁模块根据收到的多个优先级的值,选择其中一个主机的数据包发送至目标对象,该数据包对应的主机传输完成。目标对象在收到数据包后,会返回确认信号ack至总线仲裁模块。
在一些实施方式中,总线仲裁模块将确认信号ack发送至传输完成的主机对应的带宽控制器,该带宽控制器进一步将确认信号ack发送至传输完成的主机。传输完成的主机及其对应的带宽控制器在收到确认信号ack后,知道前次传输完成,对应的带宽控制器更新数据总量。未传输完成的主机及其对应的带宽控制器未收到确认信号ack,对应的带宽控制器不更新数据总量。
带宽控制器再次收到传输完成的主机发来的数据包时,重新计算该主机对应的带宽,并将计算得到的该主机对应的带宽与预设的带宽需求进行比较,根据比较结果更新该主机对应的优先级,并将更新后的优先级与数据包一起发送到总线仲裁模块。
类似地,带宽控制器再次收到未传输完成的主机发来的数据包时,重新计算该主机对应的带宽,并将计算得到的该主机对应的带宽与预设的带宽需求进行比较,根据比较结果更新该主机对应的优先级,并将更新后的优先级与数据包一起发送到总线仲裁模块。
总线仲裁模块在同一时刻可能会收到来自多个主机的数据包及其对应的优先级,总线仲裁模块根据收到的多个优先级的值,选择其中一个主机的数据包发送至目标对象,该数据包对应的主机传输完成。目标对象在收到数据包后,会返回确认信号ack至总线仲裁模块。再重复上述过程。
在一些实施方式中,传输完成的主机更新数据总量TO,使得TO增加传输完成的数据量大小pkg,即TO=TO + pkg。在一些实施方式中,主机带宽bw=TO/t,其中,t表示主机发送数据包时的时间,t=cnt*T,cnt表示时钟周期的数量,T表示时钟周期。
在一些实施方式中,带宽控制器将计算得到的主机对应的带宽与预设的带宽需求进行比较,在主机带宽小于预设的带宽需求、且该主机对应的优先级小于该主机对应的优先级上限时,增大该主机对应的优先级;在主机带宽小于预设的带宽需求、且该主机对应的优先级已达到该主机对应的优先级上限时,保持该主机对应的优先级不变;在主机带宽大于预设的带宽需求、且该主机对应的优先级大于该主机对应的优先级下限时,减小该主机对应的优先级;在主机带宽大于预设的带宽需求、且该主机对应的优先级达到该主机对应的优先级下限时,保持该主机对应的优先级不变。
在一些实施方式中,总线仲裁模块比较收到的多个优先级的值,将值最大的优先级对应的数据包发送至目标对象。在一些实施方式中,目标对象为存储器,总线仲裁模块选择一个主机的数据包发送至存储器,存储器收到数据包后,返回确认信号ack至总线仲裁模块。在一些实施方式中,目标对象存储器为DDR。可以理解的是,本发明对此不做限制。
具体地,如图1所示,t=0时刻,第一主机在时钟信号的触发下,传输第一数据包data_pkg1,第一带宽控制器收到第一数据包data_pkg1后,将第一数据包data_pkg1和第一优先级qos1(此时qos1= qos_high1)一起,发送至总线仲裁模块。与此同时,第二主机传输第二数据包data_pkg2,第二带宽控制器收到第二数据包data_pkg2后,将第二数据包data_pkg2和第二优先级qos2(此时qos2= qos_high2)一起,发送至总线仲裁模块。与此同时,第三主机传输第三数据包data_pkg3,第三带宽控制器收到第三数据包data_pkg3后,将第三数据包data_pkg3和第三优先级qos3(此时qos3= qos_high3)一起,发送至总线仲裁模块。
总线仲裁模块收到数据包data_pkg1、data_pkg2和data_pkg3以及数据包对应的优先级qos1、qos2和qos3,根据优先级qos1、qos2和qos3的值,选择其中一个数据包发送至目标对象,目标对象在收到数据包后,返回确认信号ack至总线仲裁模块。
例如,qos1的值最大,总线仲裁模块选择将第一数据包data_pkg1发送至目标对象,目标对象在收到第一数据包data_pkg1后,返回确认信号ack至总线仲裁模块,总线仲裁模块将确认信号ack发送至第一带宽控制器,第一带宽控制器进一步将确认信号ack发送至第一主机。第一主机和第一带宽控制器在收到确认信号ack后,知道前次传输完成,第一带宽控制器更新第一数据总量TO1,使得第一数据总量TO1=TO1+pkg1。第二主机和第二带宽控制器、以及第三主机和第三带宽控制器均未收到确认信号ack,因此,第二带宽控制器和第三带宽控制器均不更新数据总量。
第一带宽控制器再次收到第一主机发来的第一数据包data_pkg1,重新计算第一主机的带宽bw1=TO1/(cnt*T),将bw1与预设的第一带宽需求bw_req1进行比较,根据比较结果更新qos1,将更新后的qos1与第一数据包data_pkg1一起发送到总线仲裁模块。与此同时,第二带宽控制器再次收到第二主机发来的第二数据包data_pkg2,重新计算第二主机的带宽bw2= TO2/(cnt*T),将bw2与预设的第二带宽需求bw_req2进行比较,根据比较结果更新qos2,将更新后的qos2与第二数据包data_pkg2一起发送到总线仲裁模块。其中,cnt为时钟周期的数量,T为时钟周期。假设此时第三主机未发送数据包。
总线仲裁模块收到数据包data_pkg1和data_pkg2以及数据包对应的优先级qos1和qos2,根据优先级qos1和qos2的值,选择其中一个数据包发送至目标对象,目标对象在收到数据包后,返回确认信号ack至总线仲裁模块。
可以知道,可能的情况是,如果第一主机前面一直发送成功,TO1的值会比较大,相应地bw1的值也会比较大,当bw1大于bw_req1时,会更新qos1,使qos1的值减小,即降低第一主机的优先级。如果第二主机前面一直发送不成功,TO2的值一直不变,由于cnt在增加,相应地bw2的值也会比较小,当bw2小于bw_req2时,会更新qos2,使qos2的值增大,即提高第二主机的优先级。在第一主机的优先级降低至一定程度时,总线仲裁模块就不会再发送第一主机的数据包,防止第一主机占用过多带宽,在第二主机的优先级提高至一定程度时,总线仲裁模块就会发送第二主机的数据包,防止第二主机等待过长时间。
基于上述过程,一个主机在数据发送成功之后,连着下个周期继续发送数据,可能会使其对应的带宽控制器算得的带宽值增加,当带宽值增加到大于预设值时,带宽控制器就会减小该主机对应的优先级qos,以降低该路数据的传输优先级。因此,通过动态调整主机的优先级,使得在高并发的场景下仍能满足各个主机的带宽需求,有效提高数据传输效率。
可以理解的是,data_pkg1、data_pkg2和data_pkg3仅用于区分不同主机发送的数据包,对同一主机而言,其每次发送的数据包可以相同,也可以不同。例如,对第一主机,其多次发送的数据包虽然都用data_pkg1表示,但数据包data_pkg1的具体内容可以不同。
可以理解的是,图1所示的结构仅用作示例,本发明适用于多个主机的情形,例如可以用于只有两个主机的情形,也可以用于大于三个主机的情形,采用本发明的技术方案,通过动态调节各个主机的优先级,在系统的带宽总量基本固定的高并发场景下,也能够有效满足各个主机对带宽的需求。
以时钟频率1G、时钟周期T=1ns、32位数据位宽的系统为例,总线的最大带宽为32Gbps。第一主机为GPU,第二主机为PCIe,第三主机为vcodec。假设一个应用场景下,GPU、PCIe和 vcodec三个主机均需要访问DDR,各自带宽需求分别为bw_req1=12Gbps、bw_req2=12Gbps以及bw_req3=8Gbps。
在t=0时,三个主机的优先级qos1=qos_high1,qos2=qos_high2,qos3=qos_high3,总线仲裁模块收到数据包data_pkg1、data_pkg2和data_pkg3以及数据包对应的优先级qos1、qos2和qos3,根据优先级qos1、qos2和qos3的值,例如选择值最大的qos1对应的GPU的数据包data_pkg1(数据包大小为128b)发送至DDR,DDR收到数据包后,返回确认信号ack至总线仲裁模块。
GPU及其对应的第一带宽控制器收到确认信号ack后,第一带宽控制器更新数据总量TO1=128b。PCIe及其对应的第二带宽控制器以及vcodec及其对应的第三带宽控制器未收到确认信号ack,第二带宽控制器保持数据总量TO2不变,第三带宽控制器保持数据总量TO3不变。
假设在第1个时钟周期,GPU再次发出大小为128b的数据包,第一带宽控制器更新GPU的带宽bw1=128b/1ns=128Gbps,由于128Gbps>bw_req1=12Gbps,第一带宽控制器会减小第一优先级qos1的值,并将数据包和更新后的qos1一起发送至总线仲裁模块。与此同时PCIe,和 vcodec也发出数据包,第二带宽控制器更新PCIe的带宽bw2=0,因此,第二带宽控制器会增大第二优先级qos2,并将第二数据包和更新后的qos2一起发送至总线仲裁模块。第三带宽控制器更新vcodec的带宽bw3=0,因此,第三带宽控制器会增大第三优先级qos3,并将第三数据包和更新后的qos3一起发送至总线仲裁模块。总线仲裁模块根据优先级qos1、qos2和qos3的值,例如选择值最大的qos2对应的第二数据包发送至DDR,DDR收到数据包后,返回确认信号ack至总线仲裁模块。
假设在首次传输数据包完成后,GPU一直没有发出数据包(或者之前发出的数据包都没有被DDR响应),直至在第11个时钟周期,GPU再次发出大小为128b的数据包,第一带宽控制器更新GPU的带宽bw1=128b/11ns=11.63Gbps,由于11.63Gbps<bw_req1=12Gbps,第一带宽控制器会增大第一优先级qos1的值,并将数据包和更新后的qos1一起发送至总线仲裁模块。总线仲裁模块根据优先级qos1、qos2和qos3的值,例如选择值最大的qos1对应的第一数据包发送至DDR,DDR收到数据包后,返回确认信号ack至总线仲裁模块。
因此,通过动态调整数据传输优先级,能够避免总线被某个主机长期占据,以及避免某个主机长期无法传出数据,可以根据实际的使用需要,合理设置主机的带宽需求以及优先级上限和下限,使得总线的带宽资源能在多个主机间合理分配,有效满足多并发场景下各个主机的带宽需求,提升数据传输效率。
在一些实施方式中,一个主机具有多组配置数据,该多组配置数据对应不同的应用场景。具体地,该多组配置数据包含第一类配置数据和第二类配置数据,第一类配置数据由多组配置数据中的M组(M≥1)配置数据构成,对应第一应用场景;第二类配置数据由多组配置数据中的N组(N≥1)配置数据构成,对应不同于第一应用场景的第二应用场景。例如,一个主机对应多个带宽需求值,带宽需求的取值根据具体的应用场景进行设置,与具体的应用场景对应。在一些实施方式中,某个应用场景下,主机的传输优先级越高,该主机对应的带宽需求值越大,即,传输优先级较高的主机相对于其他主机具有更大的带宽需求值。
在一些实施方式中,一个主机具有多组配置数据,该多组配置数据对应同一应用场景。
基于实际的应用场景,以GPU处理图像并通过HDMI接口显示为例,各个主机在不同的时间点对应的带宽需求可能都会改变。在一些实施方式中,对应同一应用场景的多组配置数据中的时间条件取值不同。这部分内容还将在后文作详细说明。
图2是本发明实施例的带宽控制模块的结构示意图。如图2所示,带宽控制模块包括数据拆包模块、时钟计数器、计算模块、比较模块和优先级生成模块。数据拆包模块的输入端构成带宽控制模块的第一输入端,数据拆包模块的第一输出端构成带宽控制模块的第一输出端,数据拆包模块的第二输出端连接计算模块的第一输入端;时钟计数器的输入端构成带宽控制模块的第二输入端,时钟计数器的输出端连接计算模块的第二输入端;计算模块的输出端连接比较模块的第一输入端,比较模块的第二输入端用于接收配置数据中的带宽需求,比较模块的输出端连接优先级生成模块的第一输入端,优先级生成模块的第二输入端用于接收配置数据中的优先级上限和优先级下限,优先级生成模块的输出端构成带宽控制模块的第二输出端。
带宽控制模块还具有第三输入端,用于接收来自总线仲裁模块的确认信号ack;带宽控制模块还具有第三输出端,用于将确认信号ack发送至主机。
具体地,数据拆包模块用于接收主机发来的数据包,记录数据包的大小,并输出数据包;数据拆包模块还用于计算主机发送成功的数据总量;时钟计数器用于接收时钟信号,根据时钟信号计算时钟周期的数量cnt,根据时钟周期的数量cnt和时钟周期T,计算得到时间t=cnt*T;计算模块用于根据主机发送成功的数据总量和时间,计算实时带宽;比较模块用于将实时带宽与预设的带宽需求进行比较,得到比较结果;优先级生成模块用于根据比较模块的比较结果,调整优先级并输出。
在t=0时刻,如果主机在时钟信号的触发下发送数据包,数据拆包模块接收到数据包data_pkg后,记录数据包data_pkg的大小pkg,并将数据包data_pkg输出至总线仲裁模块;时钟计数器输出时间t=0,优先级生成模块生成优先级qos= qos_high,并将优先级qos输出至总线仲裁模块。如果此时有多个主机并发传输数据,总线仲裁模块根据该多个主机的优先级的值,选择将其中一个主机的数据包发送至存储模块。
如果主机在t=0时刻发送的数据包被总线仲裁模块选择输出至存储模块,存储模块返回确认信号ack,确认信号ack被总线仲裁模块传回带宽控制器,一方面,带宽控制器将确认信号ack传输至主机,另一方面,数据拆包模块接收到确认信号ack,根据确认信号ack判断前次数据包发送成功,更新主机发送成功的数据总量TO=pkg。如果主机在t=0时刻发送的数据包未被总线仲裁模块选择输出至存储模块,数据拆包模块保持主机发送成功的数据总量TO=0不变。
如果主机在t=0之后的时刻继续发送数据包,数据拆包模块接收到数据包data_pkg后,一方面记录数据包data_pkg的大小pkg,并将数据包data_pkg输出至总线仲裁模块;另一方面将主机发送成功的数据总量TO发送至计算模块;时钟计数器接收到时钟信号,计算得到时间t=cnt*T,并将时间t发送至计算模块;计算模块计算得到实时带宽bw= TO/t;比较模块将实时带宽bw与带宽需求bw_req进行比较,并将比较结果输出至优先级生成模块;优先级生成模块根据比较模块的比较结果,调整优先级qos的值,并将调整后的优先级qos输出至总线仲裁模块。类似地,如果此时有多个主机并发传输数据,总线仲裁模块根据该多个主机的优先级的值,选择将其中一个主机的数据包发送至存储模块。
在一些实施方式中,输入至带宽控制器的数据包data_pkg包括命令cmd、地址addr、数据data和有效位valid。在一些实施方式中,比较模块在数据包有效时,即数据包中存在有效位valid时,才比较主机的实时带宽与带宽需求。
可以理解的是,时钟计数器并非必须。在一些实施方式中,带宽控制器不包含时钟计数器,计算模块从外界(例如SoC中的其他器件如计时器或者实时时钟(Real TimeClock,RTC))获取时间信息。
在一些实施方式中,输入至带宽控制器的配置数据cfg包括带宽需求bw_req、优先级上限qos_high和优先级下限qos_low。在一些实施方式中,输入至带宽控制器的配置数据cfg包括带宽需求bw_req、优先级上限qos_high、优先级下限qos_low和步长per_chg。在一些实施方式中,输入至带宽控制器的配置数据cfg包括时间条件time_cfg、带宽需求bw_req、优先级上限qos_high和优先级下限qos_low。在一些实施方式中,输入至带宽控制器的配置数据cfg包括时间条件time_cfg、带宽需求bw_req、优先级上限qos_high、优先级下限qos_low和步长per_chg。
在一些实施方式中,优先级生成模块在主机带宽小于预设的带宽需求、且该主机对应的优先级小于该主机对应的优先级上限时,增大该主机对应的优先级;在主机带宽小于预设的带宽需求、且该主机对应的优先级已达到该主机对应的优先级上限时,保持该主机对应的优先级不变;在主机带宽大于预设的带宽需求、且该主机对应的优先级大于该主机对应的优先级下限时,减小该主机对应的优先级;在主机带宽大于预设的带宽需求、且该主机对应的优先级达到该主机对应的优先级下限时,保持该主机对应的优先级不变。
在一些实施方式中,增大主机的优先级为使主机的优先级qos为优先级上限qos_high。在一些实施方式中,增大主机的优先级为使主机的优先级qos增大预设步长per_chg,即,qos=qos + per_chg。在一些实施方式中,减小主机的优先级为使主机的优先级qos为优先级下限qos_low。在一些实施方式中,减小主机的优先级为使主机的优先级qos减小预设步长per_chg,即,qos=qos - per_chg。
在一些实施方式中,对应同一应用场景的多组配置数据的时间条件取值不同。
具体地,在一些实施方式中,时间条件time_cfg有多个,带宽需求bw_req、优先级上限qos_high和优先级下限qos_low构成多个数据组合,该多个数据组合分别与多个时间条件time_cfg一一对应,形成多组配置数据。在一些实施方式中,带宽需求bw_req、优先级上限qos_high和优先级下限qos_low构成的多个数据组合各不相同。在一些实施方式中,带宽需求bw_req、优先级上限qos_high和优先级下限qos_low构成的多个数据组合至少存在不相同的两种数据组合。
在一些实施方式中,时间条件time_cfg有多个,带宽需求bw_req、优先级上限qos_high、优先级下限qos_low和步长per_chg构成多个数据组合,该多个数据组合分别与多个时间条件time_cfg一一对应,形成多组配置数据。在一些实施方式中,带宽需求bw_req、优先级上限qos_high、优先级下限qos_low和步长per_chg构成的多个数据组合各不相同。在一些实施方式中,带宽需求bw_req、优先级上限qos_high、优先级下限qos_low和步长per_chg构成的多个数据组合至少存在不相同的两种数据组合。
例如,在某一应用场景下,设置如下两组配置数据。
配置一:time_cfg=500,bw_req=12Gbps,qos_high=10,qos_low=2,per_chg=2;
配置二:time_cfg=1000,bw_req=8Gbps,qos_high=12,qos_low=4,per_chg=2。
上述配置表示在时钟周期为0-500时使用配置一的数据,在时钟周期为501-1000时使用配置二的数据。通过上述配置,能够避免软件在中途进行切换,减少软件的参与度,实现硬件的自动切换流程。
下面将通过实例对本发明的技术方案进行详细说明。
假设应用场景为在PC里打开一段离线视频,这一操作一共涉及三个主机:第一主机直接存储器访问(Direct Memory Access,DMA),第二主机vcodec,以及第三主机HDMI。DMA用于将数据从硬盘搬进缓存中,vcodec用于对DMA搬运的数据进行视频解码,HDMI用于显示视频解码后的数据,形成视频流,整个过程类似流水线操作,但实际情况会更复杂,这里只做范例讨论。
如果在该过程中不能动态调整各个主机的优先级,可能会出现下面几种情况:①如果DMA的优先级始终最高,在DMA搬运了大量数据之后,vcodec来不及处理,HDMI也来不及实时显示,用户体验上就是视频从打开到播放第一个画面的时间特别长,播放有卡顿。②如果vcodec的优先级始终最高,vcodec处理了大量画面,但HDMI没有足够的带宽去实时显示,用户体验上就是播放过程中有卡顿。③如果HDMI的优先级最高,HDMI要显示的画面vcodec还来不及处理,用户体验上就是可能会播放出一些全黑或者全白的画面,或者是各种失真的画面。因此,为了能顺利打开离线视频,在不同时刻,各个主机的数据传输优先级不能一成不变,而是需要作动态调整。
在刚点开视频的一瞬间,vcodec/HDMI还没有数据,此时DMA需要搬运大量的数据到缓存中,vcodec检测到缓存中的数据足够处理一帧画面的时候立即开始工作,此时DMA还是会持续不断地搬运视频数据(但应该要适当降低优先级了,不然会影响vcodec的解码速度)。当vcodec处理完一帧画面后,HDMI需要立刻在PC机中实时显示图像,此时HDMI的优先级应该更高。此过程不断循环重复。
在上述应用场景中,如果提前配置好带宽控制器,就可以对每个主机,设置多组配置数据,该多组配置数据分别对应不同的时间点。例如,在不同的时间点,对各个主机的带宽需求进行调整,同时还可以通过调整优先级的方式提升用户的实际体验,以获得更快的播放速度以及更流畅的播放画面。
具体地,假设视频大小为1G,DMA、vcodec和HDMI所需要处理的数据大小都是1G,系统总带宽为1G/s,如果不加以限制,从0s视频打开,0s-1s DMA把所有数据搬运到缓存中,1s-2s vcodec开始解码到完成,2s开始再通过HDMI接口播放第一帧画面,这样用户从打开视频到看到第一帧画面需要2s时间。
假设在这个过程中,带宽控制器动态调节各个主机的传输优先级,将DMA、vcodec和HDMI的带宽需求都配置成330Mbps,播放1ms的视频所需数据为0.3M。在0-1ms的时间里,DMA的传输优先级最高,DMA完成0.3M数据的搬运;在1ms-2ms的时间里,DMA继续搬运数据,但与此同时,要适当降低DMA的传输优先级,使vcodec开始解码;在2ms-3ms的时间里,要适当提高HDMI的传输优先级,使得在HDMI播放1ms的画面同时,DMA继续搬运数据,vcodec继续解码;在3ms-4ms甚至后面的时间轴里,HDMI都可以源源不断地输出画面。这样在用户侧的体验就是从打开视频到看到第一帧画面只需要2ms时间,中间的画面也不会出现卡顿。当然,如果是很高清的画面或者是系统带宽不足的情况下,各个主机的带宽需求还需要进行调整。
可以理解的是,以上数据只做模拟,帮助理解这种应用场景,不代表任何真实情况。
如图3所示,本发明实施例的总线传输性能动态调度方法包括:
对多个主机中的每个主机发出的数据包,执行如下第一组步骤:
接收数据包,记录数据包的大小;
计算实时带宽,比较实时带宽与带宽需求,得到比较结果;
根据比较结果,调整优先级;
输出数据包和调整后的优先级。
本发明实施例的总线传输性能动态调度方法还包括:
对多个主机中的每个主机发出的数据包,执行如下第二组步骤:
初始化优先级为优先级上限;
接收数据包,记录数据包的大小;
输出数据包和初始化的优先级。
其中,第二组步骤中的数据包为主机在首个时钟脉冲的触发下发出,即为主机在时间t=0时发出;第一组步骤中的数据包为主机在首个时钟脉冲之后的时钟脉冲的触发下发出,即为主机在时间t>0时发出。
本发明实施例的总线传输性能动态调度方法还包括:
接收每个主机的数据包和优先级;
对不同主机在同一时刻发出的数据包,根据所述同一时刻发出的数据包对应的优先级的值,选择一个主机的数据包发送出去。
在一些实施方式中,通过如下方式计算实时带宽:bw= TO/t;其中,bw表示实时带宽,TO表示主机发送成功的数据总量,t表示时间。
本发明实施例的总线传输性能动态调度方法还包括:
在主机的数据包发送成功时,执行如下第三组步骤:
接收确认信号ack,根据确认信号ack判断前次数据包发送成功;
更新主机发送成功的数据总量TO,使得更新后的TO为更新前的TO与前次发送成功的数据包的大小pkg之和。
在一些实施方式中,根据比较结果,调整优先级包括:
在实时带宽小于带宽需求、且优先级小于优先级上限时,增大优先级;
在实时带宽小于带宽需求、且优先级达到优先级上限时,保持优先级不变;
在实时带宽大于带宽需求、且优先级大于优先级下限时,减小优先级;
在实时带宽大于带宽需求、且优先级达到优先级下限时,保持优先级不变。
在一些实施方式中,增大优先级包括:使优先级为优先级上限,或者使优先级增大步长per_chg;减小优先级包括:使优先级为优先级下限,或者使优先级减小步长per_chg。
本发明实施例的总线传输性能动态调度方法还包括:
预先设置配置数据;
所述配置数据包括带宽需求、优先级上限和优先级下限;
或者,所述配置数据包括带宽需求、优先级上限、优先级下限和步长per_chg;
或者,所述配置数据包括时间条件、带宽需求、优先级上限和优先级下限;
或者,所述配置数据包括时间条件、带宽需求、优先级上限、优先级下限和步长per_chg。
在一些实施方式中,对同一主机,设置多组配置数据;该多组配置数据对应同一应用场景,该多组配置数据中的时间条件取值不同。
在一些实施方式中,对同一主机,设置多组配置数据;该多组配置数据包含第一类配置数据和第二类配置数据,第一类配置数据对应第一应用场景,第二类配置数据对应不同于第一应用场景的第二应用场景;第一类配置数据包含多组配置数据,第一类配置数据包含的多组配置数据中的时间条件取值不同。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个(两个或两个以上)用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (18)
1.一种总线传输性能动态调度方法,其特征在于,包括:
对多个主机中的每个主机发出的数据包,执行如下第一组步骤:
接收数据包,记录数据包的大小;
计算实时带宽,比较实时带宽与带宽需求,得到比较结果;
根据比较结果,调整优先级;
输出数据包和调整后的优先级;
所述优先级为数据传输优先级;
所述根据比较结果,调整优先级包括:
在实时带宽小于带宽需求、且优先级小于优先级上限时,增大优先级;
在实时带宽小于带宽需求、且优先级达到优先级上限时,保持优先级不变;
在实时带宽大于带宽需求、且优先级大于优先级下限时,减小优先级;
在实时带宽大于带宽需求、且优先级达到优先级下限时,保持优先级不变。
2.如权利要求1所述的总线传输性能动态调度方法,其特征在于,还包括:
对多个主机中的每个主机发出的数据包,执行如下第二组步骤:
初始化优先级为优先级上限;
接收数据包,记录数据包的大小;
输出数据包和初始化的优先级。
3.如权利要求1所述的总线传输性能动态调度方法,其特征在于,还包括:
接收每个主机的数据包和优先级;
对不同主机在同一时刻发出的数据包,根据所述同一时刻发出的数据包对应的优先级的值,选择一个主机的数据包发送出去。
4.如权利要求3所述的总线传输性能动态调度方法,其特征在于,
通过如下方式计算实时带宽:bw= TO/t;其中,bw表示实时带宽,TO表示主机发送成功的数据总量,t表示时间。
5.如权利要求4所述的总线传输性能动态调度方法,其特征在于,还包括:
在主机的数据包发送成功时,执行如下第三组步骤:
接收确认信号,根据所述确认信号判断前次数据包发送成功;
更新主机发送成功的所述数据总量,使得更新后的数据总量为更新前的数据总量与前次发送成功的数据包的大小之和。
6.如权利要求1所述的总线传输性能动态调度方法,其特征在于,所述增大优先级包括:使优先级为优先级上限,或者使优先级增大预设步长;所述减小优先级包括:使优先级为优先级下限,或者使优先级减小预设步长。
7.如权利要求1至6中任一项所述的总线传输性能动态调度方法,其特征在于,还包括:
预先设置配置数据;
所述配置数据包括带宽需求、优先级上限和优先级下限;
或者,所述配置数据包括带宽需求、优先级上限、优先级下限和预设步长;
或者,所述配置数据包括时间条件、带宽需求、优先级上限和优先级下限;
或者,所述配置数据包括时间条件、带宽需求、优先级上限、优先级下限和预设步长。
8.如权利要求7所述的总线传输性能动态调度方法,其特征在于,对同一主机,设置多组配置数据;所述多组配置数据对应同一应用场景,所述多组配置数据中的时间条件取值不同。
9.如权利要求7所述的总线传输性能动态调度方法,其特征在于,对同一主机,设置多组配置数据;所述多组配置数据包含第一类配置数据和第二类配置数据,所述第一类配置数据对应第一应用场景,所述第二类配置数据对应不同于第一应用场景的第二应用场景;所述第一类配置数据包含多组配置数据,所述第一类配置数据包含的多组配置数据中的时间条件取值不同。
10.一种带宽控制器,其特征在于,包括:
数据拆包模块,用于接收数据包,记录数据包的大小,并输出数据包;
计算模块,用于计算实时带宽;
比较模块,用于比较实时带宽与带宽需求,得到比较结果;
优先级生成模块,用于根据比较结果,调整优先级,并输出优先级;所述优先级为数据传输优先级;
所述优先级生成模块根据比较结果,调整优先级包括:
在实时带宽小于带宽需求、且优先级小于优先级上限时,增大优先级;
在实时带宽小于带宽需求、且优先级达到优先级上限时,保持优先级不变;
在实时带宽大于带宽需求、且优先级大于优先级下限时,减小优先级;
在实时带宽大于带宽需求、且优先级达到优先级下限时,保持优先级不变。
11.如权利要求10所述的带宽控制器,其特征在于,所述优先级生成模块还用于初始化优先级为优先级上限;所述计算模块通过如下方式计算实时带宽:bw= TO/t;其中,bw表示实时带宽,TO表示主机发送成功的数据总量,t表示时间。
12.如权利要求11所述的带宽控制器,其特征在于,所述数据拆包模块还用于接收确认信号,根据所述确认信号判断前次数据包发送成功时,更新主机发送成功的数据总量,使得更新后的数据总量为更新前的数据总量与前次发送成功的数据包的大小之和。
13.如权利要求11所述的带宽控制器,其特征在于,还包括时钟计数器,所述时钟计数器用于接收时钟信号,根据时钟信号计算时钟周期的数量cnt,根据时钟周期的数量cnt和时钟周期T,计算得到时间t=cnt*T。
14.如权利要求10所述的带宽控制器,其特征在于,所述增大优先级包括:使优先级为优先级上限,或者使优先级增大预设步长;所述减小优先级包括:使优先级为优先级下限,或者使优先级减小预设步长。
15.一种总线传输性能动态调度装置,其特征在于,包括总线仲裁模块和多个如权利要求10至14中任一项所述的带宽控制器;所述总线仲裁模块用于接收多个所述带宽控制器的数据包和优先级;以及对同一时刻发至多个所述带宽控制器的多个数据包,根据所述多个数据包对应的优先级的值,选择其中一个数据包发送出去。
16.一种片上系统,其特征在于,包括多个主机、总线仲裁模块和多个如权利要求10至14中任一项所述的带宽控制器;所述多个主机与多个所述带宽控制器一一对应;所述主机用于在时钟信号的触发下,将数据包发送至对应的带宽控制器,所述带宽控制器用于将数据包和优先级发送至所述总线仲裁模块,所述总线仲裁模块用于在所述多个主机在同一时刻发出多个数据包时,根据所述多个数据包对应的优先级的值,选择其中一个数据包发送出去。
17.如权利要求16所述的片上系统,其特征在于,所述多个主机中的其中一个主机还用于预先设置配置数据,并将预先设置的配置数据存入多个所述带宽控制器;或者,所述片上系统还包括单独的主机,所述单独的主机用于预先设置配置数据,并将预先设置的配置数据存入多个所述带宽控制器。
18.如权利要求17所述的片上系统,其特征在于,所述配置数据包括带宽需求、优先级上限和优先级下限;
或者,所述配置数据包括带宽需求、优先级上限、优先级下限和预设步长;
或者,所述配置数据包括时间条件、带宽需求、优先级上限和优先级下限;
或者,所述配置数据包括时间条件、带宽需求、优先级上限、优先级下限和预设步长。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211306261.7A CN115378762B (zh) | 2022-10-25 | 2022-10-25 | 一种总线传输性能动态调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211306261.7A CN115378762B (zh) | 2022-10-25 | 2022-10-25 | 一种总线传输性能动态调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115378762A true CN115378762A (zh) | 2022-11-22 |
CN115378762B CN115378762B (zh) | 2023-06-20 |
Family
ID=84074273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211306261.7A Active CN115378762B (zh) | 2022-10-25 | 2022-10-25 | 一种总线传输性能动态调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115378762B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1808412A (zh) * | 2005-01-17 | 2006-07-26 | 松下电器产业株式会社 | 总线仲裁方法和半导体装置 |
CN101676890A (zh) * | 2008-08-15 | 2010-03-24 | 北京北大众志微系统科技有限责任公司 | 一种动态调整带宽分配的总线仲裁方法及仲裁器 |
CN103077141A (zh) * | 2012-12-26 | 2013-05-01 | 西安交通大学 | 一种基于amba总线的自适应实时加权优先仲裁方法及仲裁器 |
CN109426623A (zh) * | 2017-08-29 | 2019-03-05 | 深圳市中兴微电子技术有限公司 | 一种读取数据的方法及装置 |
CN110059043A (zh) * | 2017-12-21 | 2019-07-26 | 瑞萨电子株式会社 | 数据处理器及用于控制数据处理器的方法 |
CN110391960A (zh) * | 2018-04-18 | 2019-10-29 | 珠海全志科技股份有限公司 | 总线传输控制装置及方法 |
JP2019200732A (ja) * | 2018-05-18 | 2019-11-21 | キヤノン株式会社 | データ処理装置とデータ処理装置における帯域保証方法、及びプログラム |
CN113515477A (zh) * | 2020-04-09 | 2021-10-19 | 珠海全志科技股份有限公司 | 一种总线网络中优先级动态调整方法、装置和存储介质 |
CN114546910A (zh) * | 2020-11-20 | 2022-05-27 | Oppo广东移动通信有限公司 | 访问控制方法、装置、存储介质及电子装置 |
CN114840270A (zh) * | 2022-05-09 | 2022-08-02 | 珠海全志科技股份有限公司 | 系统总线带宽调整方法、计算机装置及计算机可读存储介质 |
-
2022
- 2022-10-25 CN CN202211306261.7A patent/CN115378762B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1808412A (zh) * | 2005-01-17 | 2006-07-26 | 松下电器产业株式会社 | 总线仲裁方法和半导体装置 |
CN101676890A (zh) * | 2008-08-15 | 2010-03-24 | 北京北大众志微系统科技有限责任公司 | 一种动态调整带宽分配的总线仲裁方法及仲裁器 |
CN103077141A (zh) * | 2012-12-26 | 2013-05-01 | 西安交通大学 | 一种基于amba总线的自适应实时加权优先仲裁方法及仲裁器 |
CN109426623A (zh) * | 2017-08-29 | 2019-03-05 | 深圳市中兴微电子技术有限公司 | 一种读取数据的方法及装置 |
CN110059043A (zh) * | 2017-12-21 | 2019-07-26 | 瑞萨电子株式会社 | 数据处理器及用于控制数据处理器的方法 |
CN110391960A (zh) * | 2018-04-18 | 2019-10-29 | 珠海全志科技股份有限公司 | 总线传输控制装置及方法 |
JP2019200732A (ja) * | 2018-05-18 | 2019-11-21 | キヤノン株式会社 | データ処理装置とデータ処理装置における帯域保証方法、及びプログラム |
CN113515477A (zh) * | 2020-04-09 | 2021-10-19 | 珠海全志科技股份有限公司 | 一种总线网络中优先级动态调整方法、装置和存储介质 |
CN114546910A (zh) * | 2020-11-20 | 2022-05-27 | Oppo广东移动通信有限公司 | 访问控制方法、装置、存储介质及电子装置 |
CN114840270A (zh) * | 2022-05-09 | 2022-08-02 | 珠海全志科技股份有限公司 | 系统总线带宽调整方法、计算机装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115378762B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7526593B2 (en) | Packet combiner for a packetized bus with dynamic holdoff time | |
US9141568B2 (en) | Proportional memory operation throttling | |
KR100841139B1 (ko) | 메모리 액세스 요청들을 관리하는 방법 및 장치 | |
US6105094A (en) | Method and apparatus for allocating exclusive shared resource requests in a computer system | |
CN103970710B (zh) | 自适应服务控制器、片上系统和控制其的方法 | |
US11100604B2 (en) | Multiple application cooperative frame-based GPU scheduling | |
US10909655B2 (en) | Direct memory access for graphics processing unit packet processing | |
US20080228977A1 (en) | Method and Apparatus for Dynamic Hardware Arbitration | |
WO2022121199A1 (zh) | Qspi控制器,图像处理器及闪存访问方法 | |
CN102347902B (zh) | 发送间隔调整方法、装置和网络设备 | |
KR100944892B1 (ko) | 버스 시스템 및 버스 인터페이스 | |
JP2005122372A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
US20200201804A1 (en) | I3c device timing adjustment to accelerate in-band interrupts | |
US10169273B2 (en) | Forced compression of single I2C writes | |
US10684981B2 (en) | Fast termination of multilane single data rate transactions | |
WO2020177252A1 (zh) | 基于pcie协议的dma控制器及dma数据传输方法 | |
CN115378762B (zh) | 一种总线传输性能动态调度方法及装置 | |
JPH09219711A (ja) | 複数チャネルのパケットをatmセルに非同期にセグメント化する方法および装置 | |
CN116074267A (zh) | 一种数据通信系统及SoC芯片 | |
WO2018228493A1 (zh) | 一种数据实时处理及存储装置 | |
JP2004349836A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
CN116170386A (zh) | 出口分组调度 | |
CN101145139A (zh) | 资源管理装置 | |
WO2022170561A1 (zh) | 一种信息传输方法及装置 | |
US9892088B2 (en) | Data processing system and method of controlling access to a shared memory unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |