CN113296957A - 一种用于动态分配片上网络带宽的方法及装置 - Google Patents

一种用于动态分配片上网络带宽的方法及装置 Download PDF

Info

Publication number
CN113296957A
CN113296957A CN202110676326.6A CN202110676326A CN113296957A CN 113296957 A CN113296957 A CN 113296957A CN 202110676326 A CN202110676326 A CN 202110676326A CN 113296957 A CN113296957 A CN 113296957A
Authority
CN
China
Prior art keywords
task
sub
bandwidth
tasks
priority
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
Application number
CN202110676326.6A
Other languages
English (en)
Other versions
CN113296957B (zh
Inventor
欧焱
范志华
吴欣欣
李文明
叶笑春
范东睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN202110676326.6A priority Critical patent/CN113296957B/zh
Publication of CN113296957A publication Critical patent/CN113296957A/zh
Application granted granted Critical
Publication of CN113296957B publication Critical patent/CN113296957B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种用于动态分配片上网络带宽的方法及装置,该方法获取用户自定义配置的配置文件;根据配置文件将片上网络带宽划分为多个不同优先级的子带宽以及对片上网络上传输的任务进行优先级划分;为各优先级的子带宽分别维护与之对应的任务队列,将相应优先级的任务预分配到与之相同优先级的任务队列;基于轮询机制在每个时间片查询各个任务队列中的可用时间片以及判断相应任务的实时性需求能否满足,若不能满足,则根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽,本发明可以在片上网络中充分利用带宽,更好地满足片上网络带宽中复杂的任务传输需求。

Description

一种用于动态分配片上网络带宽的方法及装置
技术领域
本发明涉及计算机体系结构领域,具体来说涉及片上网络的带宽分配技术领域,更具体地说,涉及一种用于动态分配片上网络带宽的方法及装置。
背景技术
早期的计算机系统是基于单个处理器的顺序处理机器。程序员编写串行执行的代码,让其在处理器上串行执行,甚至每一条指令的执行也是串行的(取指令、取操作数、执行操作、存储结果)。为提高计算机处理的速度,并行处理技术得到了迅猛的发展,计算机系统不再局限于单处理器和单数据流,出现了多处理器系统,各种各样的并行结构得到了应用。
在多处理器系统中,片上网络带宽成了限制计算机系统运算能力提升的重要因素。芯片内各功能部件之间通过总线进行数据传输,受成本与工艺的制约,总线带宽不能无线扩大,那么如何高效利用有限的带宽,为每个处理器提供充足的数据,从而充分发挥多处理器系统的性能,成为一个研究的热点问题,具有重要的工程与研究价值。
当前,用于分配片上网络带宽的现有技术主要有以下几类:
第一类技术是通过不同的算法或者方法对每个任务增加一个优先级标签,然后根据任务的优先级由高到低依次获得带宽,进行数据传输。此类技术存在的缺点有:首先,优先级较低的任务可能会长时间无法获得带宽,导致处理该任务的处理器处于长时间等待状态;其次,该类方法属于静态带宽调度方法,在多处理器系统中,很难满足复杂的任务传输需求,比如可能因为一个处理器的长时间占用带宽传输导致其他处理器等待的情况,不具有灵活性;再者,对任务进行优先级划分以及调度需要占用处理器资源。
第二类技术是对第一类技术的进一步优化,解决了带宽在某一时刻只由一个任务占用的不足,该类方法允许同一时刻可由多个任务同时占用带宽。此类问题的不足在于:首先,此类技术仍属于软件层面的优化,求解最优化问题,速度慢且占用运算资源;其次,多处理器系统中任务具有多样性和复杂性,用软件层面进行调度会存在灵活性差、响应时间长的缺点;再者,在低优先级任务较多时,低优先级的任务还会存在长时间等待的问题,不能充分利用闲置的其他优先级的带宽。
发明人在进行多处理器系统带宽分配研究时,发现现有技术中低优先级的任务无法获得带宽,现有技术的另一个不足是某个任务可能长时间占用带宽,导致其他任务对应的处理器不能及时获得所需任务数据,长时间处于等待状态。因此有必要对现有技术进行改进,以充分利用片上网络带宽,满足多处理器系统的任务传输需求。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种用于动态分配片上网络带宽的方法及装置。
本发明的目的是通过以下技术方案实现的:
根据本发明的第一方面,提供一种用于动态分配片上网络带宽的方法,可以包括:获取用户自定义配置的配置文件,所述配置文件包括对片上网络带宽的优先级划分信息、任务的优先级划分信息;根据配置文件将片上网络带宽划分为多个不同优先级的子带宽以及对片上网络上传输的任务进行优先级划分;为各优先级的子带宽分别维护与之对应的任务队列,将相应优先级的任务预分配到与之相同优先级的任务队列;基于轮询机制在每个时间片查询各个任务队列中的可用时间片以及判断相应任务的实时性需求能否满足,若不能满足,则根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽。
在本发明的一些实施例中,所述根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽的步骤可以包括:在其他优先级的子带宽空闲时,优先将所述相应任务分配到其他优先级的子带宽对应的任务队列。
在本发明的一些实施例中,在有多个子带宽空闲时,优先将所述相应任务重组到空闲的多个子带宽中较低优先级的子带宽对应的任务队列。
在本发明的一些实施例中,所述根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽的步骤可以包括:在没有空闲的子带宽但有子带宽对应的任务队列存在的可用时间片足以满足相应任务的实时性需求时,将所述相应任务插入到所述任务队列中的可用时间片。
在本发明的一些实施例中,有多个子带宽对应的任务队列存在的可用时间片均足以满足相应任务的实时性需求时,将所述相应任务插入到多个子带宽中较低优先级的子带宽对应的任务队列的可用时间片。
在本发明的一些实施例中,所述根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽的步骤可以包括:在单个子带宽对应的任务队列的可用时间片不能满足相应任务的实时性需求,但共用多个子带宽对应的任务队列存在的可用时间片能够满足相应任务的实时性需求时,将所述相应任务拆分为多个子任务插入到多个任务队列中的可用时间片。
在本发明的一些实施例中,所述根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽的步骤可以包括:在相应任务拆分为多个子任务插入到多个任务队列中的可用时间片后,如果在轮询过程中发现其任意子任务的实时性需求得不到满足,则将其剩余子任务合并到可满足其实时性需求的较高优先级的子带宽对应的任务队列。
在本发明的一些实施例中,所述方法可以用于FPGA芯片或者ASIC芯片中为传输至多处理器的任务分配片上网络带宽,所述方法用FPGA芯片或者ASIC芯片中的硬件逻辑实现。
根据本发明的第二方面,提供一种用于动态分配片上网络带宽的装置,包括:配置文件模块,用于获取用户自定义配置的配置文件,所述配置文件包括对片上网络带宽的优先级划分信息、相应任务的优先级划分信息;匹配模块,用于根据配置文件将片上网络带宽划分为多个不同优先级的子带宽以及对片上网络上传输的任务进行优先级划分;任务队列模块,用于为各优先级的子带宽分别维护与之对应的任务队列,将相应优先级的任务预分配到与之相同优先级的任务队列;重组模块,用于基于轮询机制在每个时间片查询各个任务队列中的可用时间片以及判断相应任务的实时性需求能否满足,若不能满足,则根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽。
在本发明的一些实施例中,该装置由FPGA芯片或者ASIC芯片实现,在芯片上配置用于为传输至多处理器的任务分配片上网络带宽的硬件逻辑,所述硬件逻辑包括所述配置文件模块、所述匹配模块、所述任务队列模块以及所述重组模块。
与现有技术相比,本发明的优点在于:
本发明获取用户自定义配置的配置文件,配置文件中存储有用户对片上网络带宽的优先级划分信息、相应任务的优先级划分信息;根据配置文件将片上网络带宽划分为多个不同优先级的子带宽以及对片上网络上传输的任务进行优先级划分;为各优先级的子带宽分别维护与之对应的任务队列,将相应优先级的任务预分配到与之相同优先级的任务队列;基于轮询机制在每个时间片查询各个任务队列中的可用时间片以及判断相应任务的实时性需求能否满足,若不能满足,则根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽。根据本发明,在各个任务队列的任务的实时性能够得到满足时,则可以按照预定的任务与子带宽的对应方式进行任务传输,否则,可以根据需要进行任务重组,跨优先级利用其他子带宽进行任务传输,从而在片上网络中充分利用带宽,更好地满足片上网络带宽中复杂的任务传输需求。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为根据本发明实施例的用于动态分配片上网络带宽的方法的流程示意图;
图2为根据本发明实施例的用于动态分配片上网络带宽的方法的一个示例流程示意图;
图3为根据本发明实施例的用于动态分配片上网络带宽的方法的一个示例的子步骤流程示意图;
图4为根据本发明实施例的用于动态分配片上网络带宽的方法的一个示例的任务队列的示意图;
图5为根据本发明实施例的用于动态分配片上网络带宽的方法的一个示例的任务队列重组后的示意图;
图6为根据本发明实施例的用于动态分配片上网络带宽的装置的模块示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如在背景技术部分提到的,在多处理器系统中,现有的片上带宽分配技术很难满足复杂的任务传输需求,因此,本发明对片上网络带宽的分配技术进行改进。本发明获取用户自定义配置的配置文件,配置文件中存储有用户对片上网络带宽的优先级划分信息、相应任务的优先级划分信息;根据配置文件将片上网络带宽划分为多个不同优先级的子带宽以及对片上网络上传输的任务进行优先级划分;为各优先级的子带宽分别维护与之对应的任务队列,将相应优先级的任务预分配到与之相同优先级的任务队列;基于轮询机制在每个时间片查询各个任务队列中的可用时间片以及判断相应任务的实时性需求能否满足,若不能满足,则根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽。根据本发明,在各个任务队列的任务的实时性能够得到满足时,则可以按照预定的任务与子带宽的对应方式进行任务传输,否则,可以根据需要进行任务重组,跨优先级利用其他子带宽进行任务传输,从而在片上网络中充分利用带宽,更好地满足片上网络带宽中复杂的任务传输需求。
本发明提供一种用于动态分配片上网络带宽的方法,包括步骤S1、S2、S3、S4。为了更好地理解本发明,下面结合具体的实施例针对每一个步骤分别进行详细说明。
步骤S1:获取用户自定义配置的配置文件,所述配置文件包括对片上网络带宽的优先级划分信息、任务的优先级划分信息。
根据本发明的一个实施例,向用户提供配置接口,包括配置界面,该配置界面中包括对片上网络带宽以及任务的优先级进行划分的操作界面。用户可以对片上网络带宽进行优先级划分,可以包括将片上网络带宽划分为多个子带宽以及确定各个子带宽的优先级。比如:带宽共有M GB/s,将带宽划分为m级,其中,mi表示优先级为第i级的子带宽,用户定义为该子带宽为wi GB/s。不同的子带宽的大小可以配置为相同大小或者不同大小。用户还可以对使用片上网络带宽的任务进行优先级划分。比如:任务的优先级共有N级,为每个任务增加优先级标签n,其中0<n≤N。根据本发明的一个实施例,n越小表示优先级越高,越容易获得带宽。用户完成配置后,可以保存配置,生成配置文件。
步骤S2:根据配置文件将片上网络带宽划分为多个不同优先级的子带宽以及对片上网络上传输的任务进行优先级划分。
步骤S3:为各优先级的子带宽分别维护与之对应的任务队列,将相应优先级的任务预分配到与之相同优先级的任务队列
根据本发明的一个实施例,假设将带宽划分为m级,则存在m个子带宽,需维护m个任务队列。相同优先级的任务可共享相同带宽,不同的任务优先级占用的带宽可以不一样。根据本发明的一个实施例,通过对带宽进行优先级划分,并为不同优先级的带宽维护相应的任务队列,可以解决现有技术中低优先级的任务无法获得带宽的问题。
步骤S4:基于轮询机制在每个时间片查询各个任务队列中的可用时间片以及判断相应任务的实时性需求能否满足,若不能满足,则根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽。
根据本发明的一个实施例,可以采用消息处理的方式进行带宽的使用。在确定一个任务的实时性需求能否满足时,可以根据任务量和该任务所处的子带宽的大小进行计算,判断传输时延是否满足要求,若传输时延高于所需时延,则视为实时性需求不能得到满足。此时,可以考虑利用其它优先级的子带宽降低传输时延。优选的,在其他优先级的子带宽空闲时,优先将所述相应任务分配到其他优先级的子带宽对应的任务队列。子带宽空闲可以是指相应子带宽对应的任务队列中没有任何任务。不论是高优先级的子带宽空闲,还是较低优先级的子带宽空闲,均可以将当前可能延迟的任务重组到这些空闲的子带宽上。例如,假设共有5级的子带宽,当前第5级的子带宽对应的任务队列中,有一个任务的实时性需求不能得到满足,而第4级的子带宽对应的任务队列中没有任务(空闲),则将该任务跨优先级重组到第4级的子带宽上。该实施例的技术方案至少能够实现以下有益技术效果:本发明通过为每个任务分配时间片,通过轮询的方式进行动态带宽分配,可以跨优先级充分利用空闲子带宽协助其他任务队列传输可能要延迟的任务,从而减少多处理器系统中部分处理器处于长时间等待状态的可能性。
如果存在多个子带宽空闲,为了更好地保障高优先级的任务的实时性需求,根据本发明的一个实施例,在有多个子带宽空闲时,优先将所述相应任务重组到空闲的多个子带宽中较低优先级的子带宽对应的任务队列。
如果没有空闲的子带宽,但由于任务是分时间片传输的,可以利用其它子带宽的空闲的时间片。根据本发明的一个实施例,根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽的步骤还包括:在没有空闲的子带宽但有子带宽对应的任务队列存在的可用时间片足以满足相应任务的实时性需求时,将所述相应任务插入到所述任务队列中的可用时间片。该实施例的技术方案至少能够实现以下有益技术效果:可以更好地利用其它子带宽的可用时间片进行任务重组,更充分地利用片上网络带宽。
如果存在多个子带宽均具有可用时间片,为了更好地保障高优先级的任务的实时性需求,根据本发明的一个实施例,有多个子带宽对应的任务队列存在的可用时间片均足以满足相应任务的实时性需求时,将所述相应任务插入到多个子带宽中较低优先级的子带宽对应的任务队列的可用时间片。
在一些情况下,单个任务可能出现传输延迟,但该任务较大,可能单个子带宽具有的空闲时间片不足以满足其实时性需求。根据本发明的一个实施例,根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽的步骤还包括:在单个子带宽对应的任务队列的可用时间片不能满足相应任务的实时性需求,但共用多个子带宽对应的任务队列存在的可用时间片能够满足相应任务的实时性需求时,将所述相应任务拆分为多个子任务插入到多个任务队列中的可用时间片。例如,假设当前的5级子带宽中,当前分配到第4级的子带宽的一个8GB的任务可能出现延迟,而当前只有第2、3、4级的子带宽各有1个可用时间片,每个时间片可传4GB的数据,单个子带宽不能满足该任务的实时性需求,而且假设第4级的子带宽的可用时间片靠后,不能保障任务的实时性需求,此情形下,则将该任务拆分为2个子任务,分别分配到第2、3级的子带宽相应的可用时间片中。
在一些情况下,可能对单个任务拆分后,在后续时间片发现仍可能不能满足实时性需求,此时不宜将该任务再以拆分的状态进行重组,因为有可能重组后任务的子任务中的一个如果仍不能及时送达,相应处理器仍不能获的完整的任务数据,不能进行计算。根据本发明的一个实施例,根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽的步骤还包括:在相应任务拆分为多个子任务插入到多个任务队列中的可用时间片后,如果在轮询过程中发现其任意子任务的实时性需求得不到满足,则将其剩余子任务合并到可满足其实时性需求的较高优先级的子带宽对应的任务队列。例如,假设当前第3、4优先级的子带宽可满足合并后的剩余子任务的实时性需求,则将剩余子任务合并到第3优先级的子带宽对应的任务队列。该实施例的技术方案至少能够实现以下有益技术效果:在任务拆分后,若任务的实时性需求仍不能得到满足,优先利用较高优先级的子带宽的可用时间片保障拆分后的任务的实时性需求,从而减少多处理器系统中相应处理器的等待时间。
参见图2、图3,根据本发明的一个示例,示出了根据本发明方法进行带宽分配的一个示意性过程。
在步骤T1中,用户对使用片上网络带宽的任务进行优先级的划分以及标识各个任务的任务量。例如,用户对使用带宽的任务进行任务量的计算和标识,并对每个任务进行优先级的划分。标识的任务量是指任务的数据量大小,可以用于计算任务的传输时间。在本示例中,假设在初始时刻有10个任务需要进行传输,分别定义为task[1]-task[10],并且每个任务的数据传输量分别为task[i]=iGB,其中i为task序号,即task[1]需要传输1GB的数据,task[2]需要传输2GB数据,以此类推。接下来,用户定义10个task的优先级,此处定义共有5个优先级,分别为0-4,其中0级为最高级,表示优先级为0级的task越容易获得带宽。假设定义优先级为0的任务有task[1]-task[2],优先级为2的任务有task[3]-task[6],优先级为3的任务有task[7],优先级为4的任务有的task[8]-task[10]。无优先级为1的任务。
在步骤T2中,用户对片上网络带宽进行优先级划分。在本示例中,假设总线带宽为20GB/s,划分为5个优先级,分别为0-4,其中0为最高优先级,与任务优先级相对应,为了方便理解,本实施例对带宽进行平均划分,每个优先级划分4GB的宽度,0-4GB位宽为0优先级,4-8GB的位宽为1优先级,以此类推。应当理解,对片上网络宽度进行划分时,可以不必每个子带宽的大小相同。
在步骤T3中,利用不同优先级的子带宽将相应优先级的任务传输到相应的处理器,对任务队列中的任务进行重组优化。该步骤可采用消息处理方法进行片上网络带宽的使用,步骤T3的示意性的子步骤如下:
在步骤T31中,将任务和相应的子带宽根据优先级进行初步匹配。在本示例中,假设优先级为0的task[1]和task[2]与优先级为0的0-4GB位宽的子带宽匹配,优先级为2的task[3]-task[6]与优先级为2的8-12GB位宽的子带宽匹配,以此类推。若一个优先级的子带宽仅被一个任务占用的话,任务队列中全部为该任务的消息。还可以将相同优先级的子带宽进行分组,不同的组设置不同的任务队列。
在步骤T32中,将上步骤中匹配的任务所需传输的数据从存储送到不同优先级的子带宽对应的任务队列中。此时任务队列中的数据如图4所示,总线带宽(对应于片上网络带宽)被分配为0-4优先级对应的子带宽。Taski对应Task[i],i即示例中采用的任务编号,Taski-j表示任务Task[i]的第j个子任务,例如,Task1_1表示任务Task[1]的第1个子任务。一些任务由于大于相应子带宽的大小,一个时间片不能完成传输,则会被分为多个子任务传输。例如,假设Task[8]有8GB的任务量,子带宽的大小为4GB/s,则分为两个子任务Task8_1和Task8_2,其他的不再赘述。
在步骤T33中,判断是否有需要传输任务的时间片,若是,转至步骤T34,若否,传输结束。带宽的使用采用时间片,每个子带宽在一个时间片只传输一个任务的数据。本发明采用时间片执行方式,此时有需要传传输任务的时间片,假设时间片的长度为1s。
在步骤T34中,不同的任务队列利用片上总线开始进行数据传输。
在步骤T35中,重组模块对多个任务队列中的任务进行重组优化以跨优先级利用子带宽满足任务的实时性需求。每一个任务都有实时性的需求,任务队列中加入了新的任务之后,或者在前任务的实际传输时延与计算的理论时延不一致,可能会出现任务不能及时响应的问题,此时重组模块将该任务队列上的任务进行重组,以使任务能够被及时响应。从而能够充分占用带宽,若带宽无法满足所有任务的实时性要求,则优先在任务队列中插入优先级高的任务消息。在每个时间片,重组模块进行重组优化判断;假设此时第1优先级的子带宽并未使用,但第2、3、4优先级带宽的任务队列中数据较多,由于在任务的实时性不能得到满足的情况下,本发明允许低优先级的任务可占用高优先级的子带宽。假设此时task[5]的实时性需求不能得到满足,而第1优先级的子带宽空闲,所以重组模块将task[5]调度到第1优先级的子带宽对应的任务队列。假设此时第4优先级任务队列中的任务的实时性需求可以得到满足,因此不会对其任务进行调度;第一个时间片结束之后,经过重组模块优化后的任务队列如图5所示。
在步骤T36中,判断是否有新任务,若是,转至步骤T33,若否,转至步骤T37。若传输的时候有新的任务进来,则将其传输的消息插入到任务队列当中,实现带宽的分时复用。此时假设有新的任务task[11](未在图中示出),此任务的任务量为11GB且优先级为4,则进入4优先级的任务队列,采用轮询机制,进入下一个时间片,重复上述过程进行传输与重组优化,在下一个时间片中,假设第4优先级的子带宽中任务task[11]的实时性需求不能得到满足,则对第4优先级的子带宽的任务队列进行调度优化,将task[11]重组到第1优先级的子带宽对应的任务队列,从而实现动态分配。或者,假设新的任务task[11]送到第4优先级的子带宽对应的任务队列时,还有其他的新的任务送到第0、1、2、3优先级的子带宽对应的任务队列,在下一个时间片中,假设第4优先级的子带宽中任务task[11]的实时性需求不能得到满足,而其他子带宽均未空闲,但第2、3优先级的子带宽具有可用时间片,能够满足任务task[11]的实时性需求,则将足任务task[11]调度到第3优先级的子带宽对应的任务队列,从而实现重组,充分利用带宽。
在步骤T37中,判断所有任务队列是否为空,若是,传输结束,若否,转至步骤T33。
参见图6,本发明还提供一种用于动态分配片上网络带宽的装置,该装置由FPGA芯片或者ASIC芯片实现,在芯片上配置用于为传输至多处理器的任务分配片上网络带宽的硬件逻辑,所述硬件逻辑可以包括:配置文件模块1,用于获取用户自定义配置的配置文件,所述配置文件包括对片上网络带宽的优先级划分信息、相应任务的优先级划分信息;匹配模块2,用于根据配置文件将片上网络带宽划分为多个不同优先级的子带宽以及对片上网络上传输的任务进行优先级划分;任务队列模块3,用于为各优先级的子带宽分别维护与之对应的任务队列,将相应优先级的任务预分配到与之相同优先级的任务队列;重组模块4,用于基于轮询机制在每个时间片查询各个任务队列中的可用时间片以及判断相应任务的实时性需求能否满足,若不能满足,则根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽。多处理器是指包括多个PE的处理器阵列。例如,该装置由FPGA芯片实现,通过FPGA芯片的逻辑配置模块在片上配置用于为传输至PE的任务分配片上网络带宽的硬件逻辑。本发明通过逻辑硬件实现动态带宽分配,不占用运算资源、响应速度快。优选的,重组模块被配置为可以实时向用户报告是否能按时响应任务时间,供编程人员调度开发。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种用于动态分配片上网络带宽的方法,其特征在于,包括:
获取用户自定义配置的配置文件,所述配置文件包括对片上网络带宽的优先级划分信息、任务的优先级划分信息;
根据配置文件将片上网络带宽划分为多个不同优先级的子带宽以及对片上网络上传输的任务进行优先级划分;
为各优先级的子带宽分别维护与之对应的任务队列,将相应优先级的任务预分配到与之相同优先级的任务队列;
基于轮询机制在每个时间片查询各个任务队列中的可用时间片以及判断相应任务的实时性需求能否满足,若不能满足,则根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽。
2.根据权利要求1所述的方法,其特征在于,所述根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽的步骤包括:
在其他优先级的子带宽空闲时,优先将所述相应任务分配到其他优先级的子带宽对应的任务队列。
3.根据权利要求2所述的方法,其特征在于,在有多个子带宽空闲时,优先将所述相应任务重组到空闲的多个子带宽中较低优先级的子带宽对应的任务队列。
4.根据权利要求3所述的方法,其特征在于,所述根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽的步骤还包括:
在没有空闲的子带宽但有子带宽对应的任务队列存在的可用时间片足以满足相应任务的实时性需求时,将所述相应任务插入到所述任务队列中的可用时间片。
5.根据权利要求4所述的方法,其特征在于,有多个子带宽对应的任务队列存在的可用时间片均足以满足相应任务的实时性需求时,将所述相应任务插入到多个子带宽中较低优先级的子带宽对应的任务队列的可用时间片。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽的步骤还包括:
在单个子带宽对应的任务队列的可用时间片不能满足相应任务的实时性需求,但共用多个子带宽对应的任务队列存在的可用时间片能够满足相应任务的实时性需求时,将所述相应任务拆分为多个子任务插入到多个任务队列中的可用时间片。
7.根据权利要求6所述的方法,其特征在于,所述根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽的步骤还包括:
在相应任务拆分为多个子任务插入到多个任务队列中的可用时间片后,如果在轮询过程中发现其任意子任务的实时性需求得不到满足,则将其剩余子任务合并到可满足其实时性需求的较高优先级的子带宽对应的任务队列。
8.根据权利要求1至5任一项所述的方法,其特征在于,所述方法用于FPGA芯片或者ASIC芯片中为传输至多处理器的任务分配片上网络带宽,并且所述方法用FPGA芯片或者ASIC芯片中的硬件逻辑实现。
9.一种用于动态分配片上网络带宽的装置,其特征在于,包括:
配置文件模块,用于获取用户自定义配置的配置文件,所述配置文件包括对片上网络带宽的优先级划分信息、相应任务的优先级划分信息;
匹配模块,用于根据配置文件将片上网络带宽划分为多个不同优先级的子带宽以及对片上网络上传输的任务进行优先级划分;
任务队列模块,用于为各优先级的子带宽分别维护与之对应的任务队列,将相应优先级的任务预分配到与之相同优先级的任务队列;
重组模块,用于基于轮询机制在每个时间片查询各个任务队列中的可用时间片以及判断相应任务的实时性需求能否满足,若不能满足,则根据所述可用时间片对任务队列中的任务进行重组以跨优先级利用子带宽。
10.根据权利要求9所述的装置,其特征在于,该装置由FPGA芯片或者ASIC芯片实现,在芯片上配置用于为传输至多处理器的任务分配片上网络带宽的硬件逻辑,所述硬件逻辑包括所述配置文件模块、所述匹配模块、所述任务队列模块以及所述重组模块。
CN202110676326.6A 2021-06-18 2021-06-18 一种用于动态分配片上网络带宽的方法及装置 Active CN113296957B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110676326.6A CN113296957B (zh) 2021-06-18 2021-06-18 一种用于动态分配片上网络带宽的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110676326.6A CN113296957B (zh) 2021-06-18 2021-06-18 一种用于动态分配片上网络带宽的方法及装置

Publications (2)

Publication Number Publication Date
CN113296957A true CN113296957A (zh) 2021-08-24
CN113296957B CN113296957B (zh) 2024-03-05

Family

ID=77328689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110676326.6A Active CN113296957B (zh) 2021-06-18 2021-06-18 一种用于动态分配片上网络带宽的方法及装置

Country Status (1)

Country Link
CN (1) CN113296957B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024067080A1 (zh) * 2022-09-30 2024-04-04 华为技术有限公司 带宽调整方法、装置及智能驾驶设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104079501A (zh) * 2014-06-05 2014-10-01 深圳市邦彦信息技术有限公司 一种基于多优先级的队列调度方法
CN107480078A (zh) * 2017-08-29 2017-12-15 建荣半导体(深圳)有限公司 一种总线带宽分配方法、装置及芯片
CN111082955A (zh) * 2018-10-22 2020-04-28 中兴通讯股份有限公司 一种网络切片的方法、计算机设备及存储介质
CN112311695A (zh) * 2020-10-21 2021-02-02 中国科学院计算技术研究所 一种片上带宽动态分配方法及系统
CN112416851A (zh) * 2020-11-30 2021-02-26 中国人民解放军国防科技大学 一种可扩展的多核片上共享存储器
CN112968845A (zh) * 2021-01-29 2021-06-15 新华三信息安全技术有限公司 一种带宽管理方法、装置、设备及机器可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104079501A (zh) * 2014-06-05 2014-10-01 深圳市邦彦信息技术有限公司 一种基于多优先级的队列调度方法
CN107480078A (zh) * 2017-08-29 2017-12-15 建荣半导体(深圳)有限公司 一种总线带宽分配方法、装置及芯片
CN111082955A (zh) * 2018-10-22 2020-04-28 中兴通讯股份有限公司 一种网络切片的方法、计算机设备及存储介质
CN112311695A (zh) * 2020-10-21 2021-02-02 中国科学院计算技术研究所 一种片上带宽动态分配方法及系统
CN112416851A (zh) * 2020-11-30 2021-02-26 中国人民解放军国防科技大学 一种可扩展的多核片上共享存储器
CN112968845A (zh) * 2021-01-29 2021-06-15 新华三信息安全技术有限公司 一种带宽管理方法、装置、设备及机器可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024067080A1 (zh) * 2022-09-30 2024-04-04 华为技术有限公司 带宽调整方法、装置及智能驾驶设备

Also Published As

Publication number Publication date
CN113296957B (zh) 2024-03-05

Similar Documents

Publication Publication Date Title
US10223165B2 (en) Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment
CN107038069B (zh) Hadoop平台下动态标签匹配DLMS调度方法
US6633897B1 (en) Method and system for scheduling threads within a multiprocessor data processing system using an affinity scheduler
RU2427029C2 (ru) Способ и устройство формирования очереди потоков
US8155134B2 (en) System-on-chip communication manager
US8108571B1 (en) Multithreaded DMA controller
WO2017070900A1 (zh) 多核数字信号处理系统中处理任务的方法和装置
CN109697122B (zh) 任务处理方法、设备及计算机存储介质
US11347546B2 (en) Task scheduling method and device, and computer storage medium
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
JP2003256221A (ja) 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ
KR20050020942A (ko) 연속 매체 우선순위 인식 저장장치 스케줄러
CN111897637B (zh) 作业调度方法、装置、主机及存储介质
CN109445565B (zh) 一种基于流多处理器内核独占和预留的gpu服务质量保障方法
CN111679900B (zh) 任务处理方法和装置
CN112905342A (zh) 资源调度方法、装置、设备及计算机可读存储介质
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
CN115167996A (zh) 调度方法及装置、芯片、电子设备及存储介质
CN114265679A (zh) 数据处理方法、装置和服务器
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
CN113296957B (zh) 一种用于动态分配片上网络带宽的方法及装置
US20150134882A1 (en) Method and system for using templates to communicate with non-volatile memory
CN110175078B (zh) 业务处理方法及装置
EP4254184A1 (en) Processing engine mapping for time-space partitioned processing systems
US9760969B2 (en) Graphic processing system and method thereof

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