任务分配方法、任务分配装置及片上网络.pdf

上传人:Y0****01 文档编号:624751 上传时间:2018-02-26 格式:PDF 页数:24 大小:7.57MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310177172.1

申请日:

2013.05.14

公开号:

CN104156267A

公开日:

2014.11.19

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/50申请日:20130514|||公开

IPC分类号:

G06F9/50

主分类号:

G06F9/50

申请人:

华为技术有限公司; 中国科学院计算技术研究所

发明人:

路航; 韩银和; 付斌章; 李晓维

地址:

518129 广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

北京同立钧成知识产权代理有限公司 11205

代理人:

刘芳

PDF下载: PDF下载
内容摘要

本发明实施例提供一种任务分配方法、任务分配装置及片上网络,该方法包括:确定待处理任务所包含的线程数量,在多核处理器构成的片上网络中确定连续的、与线程数量相等数量的多个空闲处理器核对应的片上路由器构成的连续区域。若此区域为非矩形区域,则确定由此区域扩展的矩形区域,若扩展的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将待处理任务的多个线程分配给区域中的空闲处理器核。本发明实施例提供的任务分配方法,借助已分配任务的边界路由器将非矩形区域扩展成规则的矩形区域,由于在任务分配时结合了区域形状的灵活性并采用XY路由,从而避免硬件开销大、网络吞吐量低、系统利用率低等问题。

权利要求书

1.  一种任务分配方法,其特征在于:
确定待处理任务所包含的线程数量;
在多核处理器构成的片上网络中确定连续的、与所述线程数量相等数量的多个空闲处理器核,其中,每一个所述空闲处理器核连接一个片上路由器;
若确定出的与所述空闲处理器核连接的所述片上路由器构成的区域是非矩形区域,则在所述片上网络中搜索并确定由所述非矩形区域扩展的矩形区域;
若所述扩展的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将所述待处理任务的线程分配给所述空闲处理器核,其中,每一个所述空闲处理器核分配一个线程。

2.
  根据权利要求1所述的方法,其特征在于,所述由所述非矩形区域扩展而成的矩形区域为所述片上网络中包含所述非矩形区域的最小矩形区域。

3.
  根据权利要求1或2所述的方法,其特征在于,所述在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核之后,所述方法还包括:
若确定出的所述空闲处理器核的片上路由器构成的区域是矩形区域,则将所述待处理任务的线程分别分配给所述空闲处理器核,其中,每一个处理器核分配一个线程。

4.
  根据权利要求1~3任一项所述的方法,其特征在于,所述片上网络中包括呈行列排列的多个处理器核;
相应的,所述在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核,包括:
在所述多核处理器构成的片上网络中确定初始空闲处理器核;
以所述初始空闲处理器核为起始点,在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核。

5.
  根据权利要求4所述的方法,其特征在于,若确定出的所述空闲处理器核的片上路由器构成的区域是非矩形区域,则所述搜索并确定由所述非矩形区域扩展而成的矩形区域,包括:
沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依 次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;
若沿所述同行的相邻片上路由器依次确定的连续的第一空闲区域中的处理器核的数量与所述线程数量不匹配,则沿与所述初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使所述第一空闲区域中的处理器核的数量和所述第二空闲区域中的处理器核的数量之和与所述线程数量相等。

6.
  根据权利要求4所述的方法,其特征在于,若确定出的所述空闲处理器核的片上路由器构成的区域是非矩形区域,则所述搜索并确定由所述非矩形区域扩展而成的矩形区域,包括:
沿与所述初始空闲处理器核连接的片上路由器同列的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;
若沿所述同列的相邻片上路由器依次确定的连续的第三空闲区域中的处理器核数量与所述线程数量不匹配,则沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定连续的第四空闲区域,以使所述第三空闲区域中的处理器核的数量和所述第四空闲区域中的处理器核的数量之和与所述线程数量相等。

7.
  根据权利要求1~6任一项所述的方法,其特征在于,所述若所述矩形区域内与非空闲处理器核连接的每一片上路由器的预测流量未超过预设门限值,则在将所述待处理任务中所包含的线程分别分配给所述空闲处理器核之前,所述方法还包括:
根据所述矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测所述矩形区域内与非空闲处理器核连接的片上路由器的流量得到所述预测流量。

8.
  一种任务分配装置,其特征在于,包括:
第一确定模块,用于确定待处理任务所包含的线程数量;
第二确定模块,用于在多核处理器构成的片上网络中确定连续的、与所述线程数量相等数量的多个空闲处理器核,其中,每一个所述空闲处理器核连接一个片上路由器;
第三确定模块,用于若所述第二确定模块确定出的与所述空闲处理器核连接的所述片上路由器构成的区域是非矩形区域时,在所述片上网络中搜索 并确定由所述非矩形区域扩展的矩形区域;
分配模块,用于若所述第三确定模块确定出的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将所述待处理任务的线程分配给所述空闲处理器核,其中,每一个所述空闲处理器核分配一个线程。

9.
  根据权利要求8所述的任务分配装置,其特征在于,所述第三确定模块,具体用于:
确定由所述非矩形区域扩展而成的矩形区域为所述片上网络中包含所述非矩形区域的最小矩形区域。

10.
  根据权利要求8或9所述的任务分配装置,其特征在于,所述分配模块,还用于:
若所述第二确定模块确定出的与所述多个空闲处理器核连接的片上路由器构成矩形区域,则将所述待处理任务的线程分别分配给所述空闲处理器核,其中,每一个处理器核分配一个线程。

11.
  根据权利要求8~10任一项所述的任务分配装置,其特征在于,所述第二确定模块,具体用于:
在所述多核处理器构成的片上网络中确定初始空闲处理器核,所述片上网络中包括呈行列排列的多个处理器核;
以所述初始空闲处理器核为起始点,在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核。

12.
  根据权利要求11所述的任务分配装置,其特征在于,所述第二确定模块,具体用于沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;
若沿所述同行的相邻片上路由器依次确定的连续的第一空闲区域中的处理器核的数量与所述线程数量不匹配,则沿与所述初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使所述第一空闲区域中的处理器核的数量和所述第二空闲区域中的处理器核的数量之和与所述线程数量相等。

13.
  根据权利要求11所述的任务分配装置,其特征在于,所述第二确定 模块,具体用于:
沿与所述初始空闲处理器核连接的片上路由器同列的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;
若沿所述同列的相邻片上路由器依次确定的连续的第三空闲区域中的处理器核数量与所述线程数量不匹配,则沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定连续的第四空闲区域,以使所述第三空闲区域中的处理器核的数量和所述第四空闲区域中的处理器核的数量之和与所述线程数量相等。

14.
  根据权利要求8-13任一项所述的任务分配装置,其特征在于,所述任务分配装置还包括:
预测模块,用于根据所述矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测所述矩形区域内与非空闲处理器核连接的片上路由器的流量得到所述预测流量。

15.
  一种片上网络,包括多个处理器核、片上路由器和互连线,其特征在于,还包括如权利要求8~14任一所述的任务分配装置。

说明书

任务分配方法、任务分配装置及片上网络
技术领域
本发明实施例涉及片上多核网络技术,尤其涉及一种任务分配方法、任务分配装置及片上网络。
背景技术
随着超大规模集成电路(Very Large Scale Integrated Circuits,以下简称VLSI)的集成程度越来越高,同一个芯片上集成的片上处理单元,如存储单元、信号处理单元等越来越多,每一片上处理单元相当于一个处理器核,多个处理器核构成多核处理器或众核处理器。片上网络(Network-on-Chip,以下简称NoC)是实现多核处理器中不同处理器核之间数据传输的主要手段。随着处理器核数量的不断增多,一个任务的多个线程、多个任务同时运行在同一个处理器核上的情况越来越普遍,若将不同任务各自的线程随机的分配给某些处理器核,则在NoC中,运行同一个任务的不同线程的处理器核之间的通信会受到其他任务的数据流的影响,无法保证(Quality of Service,以下简称QoS),系统性能降低。为了避免NoC中随机分配任务而引起的的任务之间数据流的相互干扰,通常采用子网划分的方法,即将属于同一个任务的数据流限制在NoC的某一特定区域中。
现有技术中,对NoC中每个片上路由器建立路由表,路由表确定数据包从源片上路由器到目标片上路由器的路由机制。在进行子网划分时,依靠内部的路由算法保证一个任务的数据流下一跳到达的片上路由器是分配给同一任务的片上路由器,路由算法可适用于任意拓扑,相对复杂,硬件开销大,不规则的子网形状容易产生流量拥塞。图1为现有技术中基于路由算法的任务分配方法示意图。如图1所示,若任务五中其他片上路由器都需要和Dest通信,则需要经过同一条链路,可能导致链路拥塞,影响网络吞吐量。
发明内容
本发明实施例提供一种任务分配方法、任务分配装置及片上网络,用于解决现有技术中基于路由算法的任务分配方法硬件开销大、网络吞吐量低等问题。
第一个方面,本发明实施例提供一种任务分配方法,包括:
确定待处理任务所包含的线程数量;
在多核处理器构成的片上网络中确定连续的、与所述线程数量相等数量的多个空闲处理器核,其中,每一个所述空闲处理器核连接一个片上路由器;
若确定出的与所述空闲处理器核连接的所述片上路由器构成的区域是非矩形区域,则在所述片上网络中搜索并确定由所述非矩形区域扩展的矩形区域;
若所述扩展的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将所述待处理任务的线程分配给所述空闲处理器核,其中,每一个所述空闲处理器核分配一个线程。
在第一个方面的第一种可能的实现方式中,所述由所述非矩形区域扩展而成的矩形区域为所述片上网络中包含所述非矩形区域的最小矩形区域。
结合第一个方面或第一个方面的第一种可能的实现方式,在第一个方面的第二种可能的实现方式中,所述在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核之后,所述方法还包括:
若确定出的所述空闲处理器核的片上路由器构成的区域是矩形区域,则将所述待处理任务的线程分别分配给所述空闲处理器核,其中,每一个处理器核分配一个线程。
结合第一个方面、第一个方面的第一种或第二种可能实现方式中的任一种可能的实现方式,在第三种可能的实现方式中,所述片上网络中包括呈行列排列的多个处理器核;
相应的,所述在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核,包括:
在所述多核处理器构成的片上网络中确定初始空闲处理器核;
以所述初始空闲处理器核为起始点,在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核。
结合第一个方面的第三种可能的实现方式,在第一个方面的第四种可能的实现方式中,若确定出的所述空闲处理器核的片上路由器构成的区域是非矩形区域,则所述搜索并确定由所述非矩形区域扩展而成的矩形区域,包括:
沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;
若沿所述同行的相邻片上路由器依次确定的连续的第一空闲区域中的处理器核的数量与所述线程数量不匹配,则沿与所述初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使所述第一空闲区域中的处理器核的数量和所述第二空闲区域中的处理器核的数量之和与所述线程数量相等。
结合第一个方面的第三种可能的实现方式,在第一个方面的第五种可能的实现方式中,若确定出的所述空闲处理器核的片上路由器构成的区域是非矩形区域,则所述搜索并确定由所述非矩形区域扩展而成的矩形区域,包括:
沿与所述初始空闲处理器核连接的片上路由器同列的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;
若沿所述同列的相邻片上路由器依次确定的连续的第三空闲区域中的处理器核数量与所述线程数量不匹配,则沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定连续的第四空闲区域,以使所述第三空闲区域中的处理器核的数量和所述第四空闲区域中的处理器核的数量之和与所述线程数量相等。
结合第一个方面、第一个方面的第一种至第五种可能的实现方式中的任一种可能的实现方式,在第一个方面的第六种可能的实现方式中所述若所述矩形区域内与非空闲处理器核连接的每一片上路由器的预测流量未超过预设门限值,则在将所述待处理任务中所包含的线程分别分配给所述空闲处理器核之前,所述方法还包括:
根据所述矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测所述矩形区域内与非空闲处理器核连接的片上路由器的流量得到所述预测流量。
第二个方面,本发明实施例提供一种任务分配装置,包括:
第一确定模块,用于确定待处理任务所包含的线程数量;
第二确定模块,用于在多核处理器构成的片上网络中确定连续的、与所述线程数量相等数量的多个空闲处理器核,其中,每一个所述空闲处理器核连接一个片上路由器;
第三确定模块,用于若所述第二确定模块确定出与所述空闲处理器核连接的所述片上路由器构成的区域是非矩形区域时,在所述片上网络中搜索并确定由所述非矩形区域扩展的矩形区域;
分配模块,用于若所述第三确定模块确定出的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将所述待处理任务的线程分配给所述空闲处理器核,其中,每一个所述空闲处理器核分配一个线程。
在第二个方面的第一种可能的实现方式中,所述第三确定模块,具体用于:
确定由所述非矩形区域扩展而成的矩形区域为所述片上网络中包含所述非矩形区域的最小矩形区域。
结合第二个方面以及第二个方面的第一种可能的实现方式,在第二个方面的第二种可能的实现方式中,所述分配模块,还用于:
若所述第二确定模块确定出的与所述多个空闲处理器核连接的片上路由器构成矩形区域,则将所述待处理任务的线程分别分配给所述空闲处理器核,其中,每一个处理器核分配一个线程。
结合第二个方面、第二个方面的第一种或第二种可能的实现方式中的任一种可能的实现方式,在第二个方面的第三种可能的实现方式中,所述第二确定模块,具体用于:
在所述多核处理器构成的片上网络中确定初始空闲处理器核,所述片上网络中包括呈行列排列的多个处理器核;
以所述初始空闲处理器核为起始点,在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核。
结合第二个方面的第三种可能的实现方式,在第二个方面的第四种可能的实现方式中,所述第二确定模块,具体用于沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;
若沿所述同行的相邻片上路由器依次确定的连续的第一空闲区域中的处理器核的数量与所述线程数量不匹配,则沿与所述初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使所述第一空闲区域中的处理器核的数量和所述第二空闲区域中的处理器核的数量之和与所述线程数量相等。
结合第二个方面的第三种可能的实现方式,在第二个方面的第五种可能的实现方式中,所述第二确定模块,具体用于:
沿与所述初始空闲处理器核连接的片上路由器同列的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;
若沿所述同列的相邻片上路由器依次确定的连续的第三空闲区域中的处理器核数量与所述线程数量不匹配,则沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定连续的第四空闲区域,以使所述第三空闲区域中的处理器核的数量和所述第四空闲区域中的处理器核的数量之和与所述线程数量相等。
结合第二个方面、第二个方面的第一种至第五种可能的实现方式中的任一种可能的实现方式,在第二个方面的第六种可能的实现方式中,所述任务分配装置还包括:
预测模块,用于根据所述矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测所述矩形区域内与非空闲处理器核连接的片上路由器的流量得到所述预测流量。
第三个方面,本发明实施例还提供一种片上网络,包括多个处理器核、片上路由器和互连线,以及如上任一所述的任务分配装置。
本发明实施例提供的任务分配方法、任务分配装置及片上网络,通过确定待处理任务所包含的线程数量,在片上网络中确定出与所需线程数量匹配的多个空闲处理器核构成的非矩形区域,借助该非矩形区域相邻的边界片上路由器,使其与该非矩形区域内的空闲处理器核连接的片上路由器构成规则的矩形区域,然后判断矩形区域内与非空闲处理器核连接的片上路由器,即边界片上路由器的流量是否超过预设的门限值,若未超过,则将待处理任务分配给空闲区域的处理器核。本发明实施例提供的任务分配方法,在片上网络中闲置的处理器核资源等于或多于待处理任务所需的处理器核的时候,若 没有规则的矩形区域分配该待处理的任务,则借助边界路由器将非矩形区域构成规则的矩形区域并分配该待处理的任务,该矩形区域内,不需要采用路由表确定数据包从源片上路由器到目标片上路由器的路由机制,而是采用XY路由的方式传递数据包,避免网络拥塞、提高网络吞吐量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中基于路由子网的任务分配方法示意图;
图2为本发明任务分配方法实施例一的流程图;
图3为本发明任务分配方法实施例二片上网络的示意图;
图4A为本发明任务分配方法实施例三片上网络的示意图;
图4B为图4A中重新搜索矩形区域的示意图;
图5A为采用随机均匀流量模型分析本发明任务分配方法与基于路由子网的任务分配方法的示意图;
图5B为采用位比较流量模型分析本发明任务分配方法与基于路由子网的任务分配方法的示意图;
图5C为采用龙卷风流量模型分析本发明任务分配方法与基于路由子网的任务分配方法的示意图;
图6为本发明任务分配装置实施例一的结构示意图;
图7为本发明任务分配装置实施例二的结构示意图;
图8为本发明任务分配装置实施例三的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获 得的所有其他实施例,都属于本发明保护的范围。
图2为本发明任务分配方法实施例一的流程图。本实施例的执行主体为任务分配装置,其可集成在多核处理器构成的片上网络中,该装置可以例如可以是片上网络中任意处理器等。本实施例适用于片上网络中空闲的处理器核资源等于或多于待处理任务所需的处理器核的场景,具体的,本实施例包括如下步骤:
101:确定待处理任务所包含的线程数量。
任务分配装置确定待处理任务所包含的线程数量。一般来说,一个任务所包含的线程数量与处理该任务所需的处理器核的数量是一一对应的。例如,若一个任务包含9个线程,则需要9个处理器核处理该任务。
102:在多核处理器构成的片上网络中确定连续的、与线程数量相等数量的多个空闲处理器核,其中,每一个空闲处理器连接一个片上路由器。
片上网络具有支持同时访问、可靠性高及可重用性高等特点,由多个处理器核、片上路由器和互连线(通道)组成。其中,互连线包括片上路由器和处理器核之间的内部互连线、片上路由器之间的外部互连线,每个处理器核与一个片上路由器相连,各个片上路由器互连成一个网状结构(Mesh Topology,以下简称mesh)。本步骤中,在确定出待处理任务所包含的线程数量后,根据线程数量,任务分配装置在多核处理器构成以及片上网络中确定连续的、与该线程数量相等数量的多个空闲处理器核以及对应的片上路由器。
103:若确定出的与空闲处理器连接的片上路由器构成的区域非矩形区域,则在片上网络中搜索并确定由非矩形区域扩展的矩形区域。
当任务分配装置确定出的连续的、与线程数量相等数量的多个空闲处理器核后,若与该些空闲处理器核连接的片上路由器构成的区域是矩形区域,则直接将待处理任务中所包含的线程分配给空闲处理器核,每个处理器核分配一个线程;否则,若与该些空闲处理器核连接的片上路由器构成的区域是非矩形区域,则搜索并确定由非矩形区域扩展的矩形区域,此区域为片上网络中包含非矩形区域的最小矩形区域。例如,一个NoC为5×5的mesh结构,待处理的任务包含的线程数量为5个,若确定出的连续的空闲处理器核为同一列或同一行的5个处理器核,则将该待处理的任务所包含的5个线程分配给这5个连续的空闲处理器核,每个处理器核分配一个线程;若确定出的连 续的空闲处理器核数量为5个,但是与该5个处理器核连接的片上路由器构成的区域为非矩形区域,即构成的区域为不规则形状的区域,则任务分配装置确定包含该非矩形区域的矩形区域,即将已经分配任务的非空闲的处理器核与该非矩形区域内的空闲处理器核组成规则的矩形区域。具体的,以该5个处理器核由第一行的前3个和第二行的前2个组成为例,将第二行的第三个处理器核连接的片上路由器作为边界片上路由器,任务分配装置确定该5个处理器核连接的片上路由器与该边界片上路由器构成的矩形区域。
需要说明的是,上述仅是以该5个处理器核由第一行的前3个和第二行的前2个组成为例对本发明进行详细阐述,然而,本发明并不以此为限制,在其他可能的实施方式中,连续的空闲处理器核可以有不同的组合,与该处理器核连接的片上路由器构成的非矩形区域也有多种可能的形式,如L型、E型、F型、工字型、I型等,对应的,包含该非矩形区域的矩形区域也有多种可能的形式。
104:若扩展的矩形区域内与非空闲处理器连接的每一个片上路由器的流量未超过预设门限值,则将待处理任务的线程分配给空闲处理器,每一空闲处理器核分配一个线程。
该矩形区域内,不需要采用路由表确定数据包从源片上路由器到目标片上路由器的路由机制,而是采用XY路由的方式传递数据包,即在确定出源片上路由器和目的片上路由器后,从源片上路由器开始,数据包先横向的传递至与目的片上路由器所在的列相交的中间片上路由器,再竖向的传递至目的片上路由器;或者,先竖向的传递至与目的片上路由器所在的行相交的中间片上路由器,再横向的传递至目的片上路由器。
在确定出包括非矩形区域的矩形区域后,任务分配装置根据矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测矩形区域内与非空闲处理器核连接的该片上路由器的流量得到预测流量,判断预测流量是否超过预设的门限值,若预测流量未超过预设门限值,则将待处理任务中所包含的线程分别分配给空闲处理器核。
本发明实施例提供的任务分配方法,通过确定待处理任务所包含的线程数量,在片上网络中确定出与所需线程数量相等数量的多个空闲处理器核构成的非矩形区域,借助与该非矩形区域相邻区域的边界路由器,使其与该非 矩形区域内的片上路由器构成规则的矩形区域,然后判断矩形区域内与非空闲处理器核连接的片上路由器,即边界片上路由器的流量是否超过预设的门限值,若未超过,则将待处理任务分配给空闲区域的处理器核。本发明实施例提供的任务分配方法,在片上网络中空闲的处理器核资源等于或多于待处理任务所需的处理器核的时候,若没有规则的矩形区域分配该待处理的任务,则借助边界路由器将非矩形区域扩展成规则的矩形区域并分配该待处理的任务线程,该矩形区域内,不需要采用路由表确定数据包从源片上路由器到目标片上路由器的路由机制,而是采用XY路由的方式传递数据包,避免了其它任务分配方法硬件开销大、网络吞吐量低、系统利用率低的问题。
由上述可知,NoC由片上路由器和互连线(通道)组成,每个处理器核与一个片上路由器相连,而一个任务所包含的线程数量与处理该任务所需的处理器核的数量是一一对应的。因此,待处理任务所包含的线程数量、待处理任务所需的处理器核数量以及所需处理器核连接的片上路由器的数量是相等的,处理器核与片上路由器的状态一致:同时处于空闲状态或被分配任务状态,搜索到空闲的片上路由器,即搜索到空闲的处理器核。为使本发明实施例更加清楚,以下各个视图所示的片上网络中仅示出片上路由器。
一般来说,片上网络中包括呈行列排列的多个处理器核,如5×5的片上网络,包括5行5列共25个处理器核与25个片上路由器。此时,确定连续的、与线程数量匹配的多个空闲处理器核时,可以按行搜索空闲的处理器核或按照列搜索的方式搜索空闲的处理器核。以按照行搜索为例,具体的,可以在在多核处理器构成的片上网络中确定初始空闲处理器核,沿与初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定是否存在连续的、与线程数量匹配的多个空闲处理器核;若沿同行的相邻片上路由器依次确定的连续的第一空闲区域中所包含的处理器核的数量与线程数量不匹配,则沿与初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使第一空闲区域所包含的处理器核的数量和第二空闲区域所包含的处理器核的数量之和与线程数量匹配。下面,通过几个具体的在片上网络分配任务的实施例对本发明进行详细阐述。
图3为本发明任务分配方法实施例二片上网络的示意图。如图3所示,本实施例中,NoC为5×5的NoC,多个处理器核呈行列排列,任务队列中 有待处理任务一(4),表示任务一包含4个线程,需要分配4个处理器核处理该任务。随机的确定与片上路由器R1.1连接的处理器核为初始空闲处理器核,沿与R1.1连接的片上路由器同行的相邻片上路由器依次确定连续的4个空闲的片上路由器,即确定出R1.1、R1.2、R1.3、R1.4共4个片上路由器,该4个片上路由器构成第一空闲区域,为一个规则的矩形区域,则直接将任务一包含的4个线程分配给R1.1、R1.2、R1.3、R1.4所在的矩形区域内的处理器核。
图4A为本发明任务分配方法实施例三片上网络的示意图。如图4A所示,本实施例中,NoC为5×5的NoC,多个处理器核呈行列排列,表示高负载片上路由器,表示低负载片上路由器,□表示空闲片上路由器,亦即,R1.1~R1.3、R2.1~R2.4以及R3.1~R3.4为高负载片上路由器,Rs0.1~Rs0.6为低负载片上路由器,其余的为空闲路由器。具体的,判断片上路由器负载高低的方式可根据需求设定,例如,某个片上路由器承载的流量大于预设的门限值时,则判断其为高负载片上路由器。
本实施例中,任务队列中有待处理任务二(5),表示任务二包含5个线程,需要分配5个处理器核处理该任务。随机的确定与片上路由器R5.0连接的处理器核为初始空闲处理器核,从R5.0开始搜索连续的、空闲的片上路由器并判断是否可以构成矩形区域,在按照行或按照列遍历各种可能的情况后,还未找到符合条件的规则的矩形区域,则继续按照行或按照列的搜索方式搜索。具体的,若按照行搜索的方式,则从R5.0开始搜索第一空闲区域,即沿着R5.0所在的第一行搜索到包含R5.0、R5.1、R5.2、R5.3共4个空闲的片上路由器的第一空闲区域,与任务的线程数量不匹配,也就是说,第一空闲区域中所包含的处理器核的数量不满足任务所需的处理器核数,此时,从R5.0所在的列继续搜索第二空闲区域,当第二空闲区域内的处理器核的数量和第一空闲区域内所包含的处理器核的数量之和等于5,即第二空闲区域中搜索到R5.4后,空闲片上路由器的个数与线程数量相等,且R5.0~R5.4、Rs0.1、Rs0.2及高负载的片上路由器R1.1构成一个规则的矩形区域。
在上述通过第一空闲区域和第二空闲区域确定出一个规则的矩形区域后,接下来,判断矩形区域内与非空闲处理器核连接的片上路由器的流量是否超过预设门限值。具体的,可以根据矩形区域内与非空闲处理器核连接的 片上路由器的历史流量信息,预测矩形区域内与非空闲处理器核连接的片上路由器的流量。本实施例中,需要判断Rs0.1、Rs0.2及高负载的片上路由器R1.1上的流量是否超过预设门限值。以R1.1为例,若将任务二分配给第一空闲区域和第二空闲区域确定出的规则的矩形区域后,R1.1原来承载的流量,如图中粗黑箭头①所示,与被分配任务二后增加的流量,如图中粗黑箭头②所示,若两者之和未超过预设的门限值,则认为R1.1可以共享,进而判断出可以将任务二分配给该矩形区域所包含的处理器核,如图中虚线框所示,此时,数据包在该矩形区域内,采用XY路由的方式传递数据包。例如若R5.2为源片上路由器,目的片上路由器为R5.4,此时,采用XY路由,可以将数据包从R5.2开始,经过R5.2、R5.1、R5.0传递至R5.4,也可以从R5.2开始,经过Rs0.2、Rs0.1传递至R5.4;否则,若将任务二分配给第一空闲区域和第二空闲区域确定出的规则的矩形区域使得R1.1原来承载的流量与被分配任务二后增加的流量超过预设的门限值,则认为R1.1不可以共享,进而判断出不可以将任务二分配给该矩形区域所包含的处理器核。
上述判断片上路由器所承载的流量后,假设该3个片上路由器中至少其中之一所承载的流量超过预设的门限值,假设R1.1所承载的流量超过预设的门限值。此时,从R5.0开始,重新按照行或按照列的搜索方式搜索。具体的,如图4B所示,图4B为图4A中重新搜索矩形区域的示意图。
若按照列搜索的方式,则从R5.0开始搜索第三空闲区域,即沿着R5.0所在的第一列搜索到包含R5.0、R5.4、R5.5共三个空闲的片上路由器的第三空闲区域,与任务的线程数量不匹配,也就是说,第三空闲区域中所包含的处理器核的数量不满足任务所需的处理器核,此时,从R5.0所在的行继续搜索第四空闲区域,当第四空闲区域内的处理器核的数量和第三空闲区域内所包含的处理器核的数量之和等于5,即第四空闲区域中搜索到R5.1、R5.2之后,空闲片上路由器的个数与线程数量相等,且R5.0、R5.4、R5.5、R5.1、R5.2、与第二行、第三行的四个低负载的片上路由器Rs0.1、Rs0.2、Rs0.3、Rs0.4构成一个规则的矩形区域。此时,判断若将任务二分配给第三空闲区域和第四空闲区域确定出的规则的矩形区域后,共享的Rs0.1、Rs0.2、Rs0.3、Rs0.4原来承载的流量与被分配任务二后增加的流量未超过预设的门限值,若该四个共享片上路由器的流量都未超过预设的门限值,则将任务二分配给该 矩形区域所包含的处理器核,如图4B中虚线框所示;否则,若其中之一所承载的流量超过预设的门限值,则表示不能将任务二分配给该矩形区域,需要重新搜索处理器核。
上述实施例中,若所有的不规则区域都无法通过流量预测,则将任务二刚在等待队列中等待下一次任务调度。如在其他任务处理完毕后释放出更多的处理器核后重新搜索任务需要的处理器核。
需要说明的是,上述实施例中,第一空闲区域、第二空闲区域、第三空闲区域、第四空闲区域可以为规则的矩形区域,也可以是不规则的矩形区域,例如以图4A为例,若Rs0.1也为空闲的片上路由器时,则从R5.0开始搜索到的连续的、空闲的片上路由器包括R5.0、R5.1、5.2、R5.4及Rs0.1;若Rs0.2为空闲的片上路由器,R5.4、Rs0.1、R1.1为非空闲片上路由器时,则从R5.0开始搜索到的连续的、空闲片上路由器包括R5.0、R5.1、R5.2、Rs0.2、R5.3。
为了清楚对比本发明的任务分配方法与现有技术中基于路由子网的任务分配方法的有益效果,下面,采用不用的流量模型分析本发明的技术方案与现有的技术方案。
图5A为采用随机均匀流量模型分析本发明任务分配方法与基于路由子网的任务分配方法的示意图。如图5A所示,随机均匀流量模型(Uniform)中,横坐标为注入率,可以理解为片上网络的处理器核的利用率;纵坐标为延时时长;代表本发明注入率与延时时长的对应曲线;代表基于路由子网的任务分配方法中注入率与延时时长的对应曲线。
由图5A所示,在注入率为0~6×10-3时,整个片上网络的处理器核的利用率不高,此时,本发明的技术方案与现有的技术方案的的延时时长基本相等。但是,随着处理器核的利用率越来越高,同一个延时时长对应的本发明的技术方案与现有的技术方案的差别就越大,基于路由子网的任务分配方法中,注入率越大,延时时长相应的越大,表示片上网络的性能越差,即延迟明显升高,网络吞吐量低,而本发明任务分配方法中,注入率越大,延时时长相对增加缓慢,表示片上网络的性能高,即延迟升高不明显,网络吞吐量高。
图5B为采用位比较流量模型分析本发明任务分配方法与基于路由子网的任务分配方法的示意图。同理,如图5A,图5B所示位比较流量(Bitcomp) 流量模型中,横坐标为注入率,可以理解为片上网络的处理器核的利用率;纵坐标为延时时长;代表本发明注入率与延时时长的对应曲线;代表基于路由子网的任务分配方法中注入率与延时时长的对应曲线。在注入率为大于2×10-3时,即可明显表现出本发明的有益效果。
图5C为采用龙卷风流量模型分析本发明任务分配方法与基于路由子网的任务分配方法的示意图。同理,如图5A,图5C所示龙卷风(Tornado)流量模型中,横坐标为注入率,可以理解为片上网络的处理器核的利用率;纵坐标为延时时长;代表本发明注入率与延时时长的对应曲线;代表基于路由子网的任务分配方法中注入率与延时时长的对应曲线。在注入率大于4×10-3时,即可明显表现出本发明的有益效果。
另外,为了清楚对比本发明的任务分配方法与现有技术中基于矩形子网划分的任务分配方法的有益效果,下面,用系统利用率的表格来对比本发明路由器共享与现有技术中基于子网划分方法的有益效果。
表1

网络负载0.50.60.70.80.91矩形子网划分0.4780330.5729790.6566760.6934220.7013110·707254路由器共享0.4653740.5420730.6266710.7051020.76b0110·8i0507

表1为网络负载率为0.5~1的情况下,矩形子网划分方法下系统利用率和本发明路由器共享方法下系统利用率的一个对照表。其中,网络负载率0.5~1表示需要的处理器核与系统实际能提供的处理器核的比值,例如,表1中第列表示:当需要的处理器核与系统实际能提供的处理器核的比值为0.5时,系统处于不饱和状态,此时基于矩形子网划分方法的系统利用率为0.478033,而基于本发明路由器共享的方法中,系统利用率为0.465374,两者之间差别较小。然而,随着网络负载的不断增大,当网络负载率为0.9时,系统逐渐饱和,基于矩形子网划分方法的系统利用率为0.701311,而基于本发明路由器共享的方法中,系统利用率为0.766011;最终,当网络负载达到100%,即系统饱和时,基于矩形子网划分方法的系统利用率为0.707254,而基于本发明路由器共享的方法中,系统利用率为0.810507,两者相差将近10%。
需要说明的是,上述各个实施例中,均是随机将片上网络的某一空闲处理器核作为初始空闲处理器核,需要重新搜索处理器核的时候都从该初始空闲处理器核开始搜索,然而,本发明并不以此为限制,在其他可能的实施方 式中,也可以根据预设的规则选取初始空闲处理器核,每次搜索时,初始空闲处理器核也可以不同。另外,当片上网络中空闲、连续的处理器核所在的非矩形区域多于一个的时候,可以随机确定某一个区域内的某个处理器核作为初始闲置处理器核。
图6为本发明任务分配装置实施例一的结构示意图。如图6所示,本实施例提供的任务分配装置具体可以实现本发明任意实施例提供的应用于任务分配装置的方法的各个步骤,具体实现过程在此不再赘述。本实施例提供的任务分配装置具体包括:
第一确定模块11,用于确定待处理任务所包含的线程数量;
第二确定模块12,用于在多核处理器构成的片上网络中确定连续的、与线程数量相等数量的多个空闲处理器核,其中,每一个空闲处理器核连接一个片上路由器;
第三确定模块13,用于第二确定模块12确定的出与空闲处理器核连接的片上路由器构成的区域是非矩形区域时,在片上网络中搜索并确定由非矩形区域扩展的矩形区域;
分配模块14,用于若第三确定模块确定出的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将待处理任务的线程分配给空闲处理器核,其中,每一个空闲处理器核分配一个线程。
本发明实施例提供的任务分配装置,通过第一确定模块确定待处理任务所包含的线程数量,第二确定模块在片上网络中确定出与所需线程数量相等数量的多个空闲处理器核构成的非矩形区域,借助该非矩形区域相邻的边界片上路由器,使其与该非矩形区域内的空闲处理器核连接的片上路由器构成规则的矩形区域,然后由第三确定模块判断矩形区域内与非空闲处理器核连接的片上路由器,即边界片上路由器的流量是否超过预设的门限值,若未超过,则由分配模块将待处理任务分配给空闲区域的处理器核。本发明实施例提供的任务分配方法,在片上网络中闲置的处理器核资源等于或多于待处理任务所需的处理器核的时候,若没有规则的矩形区域分配该待处理的任务,则借助边界路由器将非矩形区域构成规则的矩形区域并分配该待处理的任务,该矩形区域内,不需要采用路由表确定数据包从源片上路由器到目标片上路由器的路由机制,而是采用XY路由的方式传递数据包,节省硬件避免 了基于路由子网的任务分配方法硬件开销大、网络吞吐量低、系统利用率低的问题。
进一步的,第三确定模块13,具体用于:
确定由非矩形区域扩展而成的矩形区域为片上网络中包含非矩形区域的最小矩形区域。
进一步的,分配模块14,还用于:
若第二确定模块12确定出的与多个空闲处理器核连接的片上路由器构成矩形区域,则将待处理任务的线程分别分配给空闲处理器核,其中,每一个处理器核分配一个线程。
进一步的,第二确定模块12,具体用于:
在多核处理器构成的片上网络中确定初始空闲处理器核,片上网络中包括呈行列排列的多个处理器核;
以初始空闲处理器核为起始点,在多核处理器构成的片上网络中确定连续的、与线程数量匹配的多个空闲处理器核。
进一步的,第二确定模块12,具体用于:沿与初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定是否存在连续的、与线程数量匹配的多个空闲处理器核;
若沿同行的相邻片上路由器依次确定的连续的第一空闲区域中的处理器核的数量与线程数量不匹配,则沿与初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使第一空闲区域中的处理器核的数量和第二空闲区域中的处理器核的数量之和与线程数量相等。
进一步的,第二确定模块12,具体用于:沿与初始空闲处理器核连接的片上路由器同列的相邻片上路由器依次确定是否存在连续的、与线程数量匹配的多个空闲处理器核;
若沿同列的相邻片上路由器依次确定的连续的第三空闲区域中的处理器核数量与线程数量不匹配,则沿与初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定连续的第四空闲区域,以使第三空闲区域中的处理器核的数量和第四空闲区域中的处理器核的数量之和与线程数量相等。
图7为本发明任务分配装置实施例二的结构示意图。如图7所示,本实施例提供的任务分配装置在图6所示装置的基础上,进一步的,还可以包括:
预测模块15,用于根据矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测矩形区域内与非空闲处理器核连接的片上路由器的流量得到预测流量。
图8为本发明任务分配装置实施例三的结构示意图。如图8所示,本实施例的任务分配装置800可以包括处理器81和存储器82。任务分配装置800还可以包括发射器83、接收器84。发射器83和接收器84可以和处理器81相连。其中,存储器82存储执行指令,当任务分配装置800运行时,处理器81与存储器82之间通信,处理器81调用存储器82中的执行指令,用于执行以下操作:
任务分配装置800确定待处理任务所包含的线程数量;
在多核处理器构成的片上网络中确定连续的、与线程数量相等数量的多个空闲处理器核,其中,每一个空闲处理器核连接一个片上路由器;
若确定出的与空闲处理器核连接的片上路由器构成的区域是非矩形区域,则在片上网络中搜索并确定由非矩形区域扩展的矩形区域;
若扩展的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将待处理任务的线程分配给空闲处理器核,其中,每一个空闲处理器核分配一个线程。
可选的,由非矩形区域扩展而成的矩形区域为片上网络中包含非矩形区域的最小矩形区域。
可选的,在多核处理器构成的片上网络中确定连续的、与线程数量匹配的多个空闲处理器核之后,方法还包括:
若确定出的空闲处理器核的片上路由器构成的区域是矩形区域,则将待处理任务的线程分别分配给空闲处理器核,其中,每一个处理器核分配一个线程。
可选的,片上网络中包括呈行列排列的多个处理器核;
相应的,在多核处理器构成的片上网络中确定连续的、与线程数量匹配的多个空闲处理器核,包括:
在多核处理器构成的片上网络中确定初始空闲处理器核;
以初始空闲处理器核为起始点,在多核处理器构成的片上网络中确定连续的、与线程数量匹配的多个空闲处理器核。
可选的,若确定出的空闲处理器核的片上路由器构成的区域是非矩形区域,则搜索并确定由非矩形区域扩展而成的矩形区域,包括:
沿与初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定是否存在连续的、与线程数量匹配的多个空闲处理器核;
若沿同行的相邻片上路由器依次确定的连续的第一空闲区域中的处理器核的数量与线程数量不匹配,则沿与初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使第一空闲区域中的处理器核的数量和第二空闲区域中的处理器核的数量之和与线程数量相等。
可选的,若确定出的空闲处理器核的片上路由器构成的区域是非矩形区域,则搜索并确定由非矩形区域扩展而成的矩形区域,包括:
沿与初始空闲处理器核连接的片上路由器同列的相邻片上路由器依次确定是否存在连续的、与线程数量匹配的多个空闲处理器核;
若沿同列的相邻片上路由器依次确定的连续的第三空闲区域中的处理器核数量与线程数量不匹配,则沿与初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定连续的第四空闲区域,以使第三空闲区域中的处理器核的数量和第四空闲区域中的处理器核的数量之和与线程数量相等。
可选的,若矩形区域内与非空闲处理器核连接的每一片上路由器的预测流量未超过预设门限值,则在将待处理任务中所包含的线程分别分配给空闲处理器核之前,方法还包括:
根据矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测矩形区域内与非空闲处理器核连接的片上路由器的流量得到预测流量。
基于上述的任务分配方法和任务分配装置,本发明实施例还提供一种片上网络,包括多个处理器核、片上路由器和互连线以及如图6或图7所示的任一任务分配装置,其对应的,可执行图2~图4A中任一方法实施例的技术方案,此处不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

任务分配方法、任务分配装置及片上网络.pdf_第1页
第1页 / 共24页
任务分配方法、任务分配装置及片上网络.pdf_第2页
第2页 / 共24页
任务分配方法、任务分配装置及片上网络.pdf_第3页
第3页 / 共24页
点击查看更多>>
资源描述

《任务分配方法、任务分配装置及片上网络.pdf》由会员分享,可在线阅读,更多相关《任务分配方法、任务分配装置及片上网络.pdf(24页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104156267A43申请公布日20141119CN104156267A21申请号201310177172122申请日20130514G06F9/5020060171申请人华为技术有限公司地址518129广东省深圳市龙岗区坂田华为总部办公楼申请人中国科学院计算技术研究所72发明人路航韩银和付斌章李晓维74专利代理机构北京同立钧成知识产权代理有限公司11205代理人刘芳54发明名称任务分配方法、任务分配装置及片上网络57摘要本发明实施例提供一种任务分配方法、任务分配装置及片上网络,该方法包括确定待处理任务所包含的线程数量,在多核处理器构成的片上网络中确定连续的、与线程数量相等。

2、数量的多个空闲处理器核对应的片上路由器构成的连续区域。若此区域为非矩形区域,则确定由此区域扩展的矩形区域,若扩展的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将待处理任务的多个线程分配给区域中的空闲处理器核。本发明实施例提供的任务分配方法,借助已分配任务的边界路由器将非矩形区域扩展成规则的矩形区域,由于在任务分配时结合了区域形状的灵活性并采用XY路由,从而避免硬件开销大、网络吞吐量低、系统利用率低等问题。51INTCL权利要求书3页说明书12页附图8页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书12页附图8页10申请公布号CN10415。

3、6267ACN104156267A1/3页21一种任务分配方法,其特征在于确定待处理任务所包含的线程数量;在多核处理器构成的片上网络中确定连续的、与所述线程数量相等数量的多个空闲处理器核,其中,每一个所述空闲处理器核连接一个片上路由器;若确定出的与所述空闲处理器核连接的所述片上路由器构成的区域是非矩形区域,则在所述片上网络中搜索并确定由所述非矩形区域扩展的矩形区域;若所述扩展的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将所述待处理任务的线程分配给所述空闲处理器核,其中,每一个所述空闲处理器核分配一个线程。2根据权利要求1所述的方法,其特征在于,所述由所述非矩。

4、形区域扩展而成的矩形区域为所述片上网络中包含所述非矩形区域的最小矩形区域。3根据权利要求1或2所述的方法,其特征在于,所述在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核之后,所述方法还包括若确定出的所述空闲处理器核的片上路由器构成的区域是矩形区域,则将所述待处理任务的线程分别分配给所述空闲处理器核,其中,每一个处理器核分配一个线程。4根据权利要求13任一项所述的方法,其特征在于,所述片上网络中包括呈行列排列的多个处理器核;相应的,所述在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核,包括在所述多核处理器构成的片上网络中确定初始空闲处理器。

5、核;以所述初始空闲处理器核为起始点,在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核。5根据权利要求4所述的方法,其特征在于,若确定出的所述空闲处理器核的片上路由器构成的区域是非矩形区域,则所述搜索并确定由所述非矩形区域扩展而成的矩形区域,包括沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;若沿所述同行的相邻片上路由器依次确定的连续的第一空闲区域中的处理器核的数量与所述线程数量不匹配,则沿与所述初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使所述第一空闲区域中。

6、的处理器核的数量和所述第二空闲区域中的处理器核的数量之和与所述线程数量相等。6根据权利要求4所述的方法,其特征在于,若确定出的所述空闲处理器核的片上路由器构成的区域是非矩形区域,则所述搜索并确定由所述非矩形区域扩展而成的矩形区域,包括沿与所述初始空闲处理器核连接的片上路由器同列的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;若沿所述同列的相邻片上路由器依次确定的连续的第三空闲区域中的处理器核数量与所述线程数量不匹配,则沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定连续的第四空闲区域,以使所述第三空闲区域中的处理器核的数量和所述权利要求书CN1。

7、04156267A2/3页3第四空闲区域中的处理器核的数量之和与所述线程数量相等。7根据权利要求16任一项所述的方法,其特征在于,所述若所述矩形区域内与非空闲处理器核连接的每一片上路由器的预测流量未超过预设门限值,则在将所述待处理任务中所包含的线程分别分配给所述空闲处理器核之前,所述方法还包括根据所述矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测所述矩形区域内与非空闲处理器核连接的片上路由器的流量得到所述预测流量。8一种任务分配装置,其特征在于,包括第一确定模块,用于确定待处理任务所包含的线程数量;第二确定模块,用于在多核处理器构成的片上网络中确定连续的、与所述线程数量相等数量。

8、的多个空闲处理器核,其中,每一个所述空闲处理器核连接一个片上路由器;第三确定模块,用于若所述第二确定模块确定出的与所述空闲处理器核连接的所述片上路由器构成的区域是非矩形区域时,在所述片上网络中搜索并确定由所述非矩形区域扩展的矩形区域;分配模块,用于若所述第三确定模块确定出的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将所述待处理任务的线程分配给所述空闲处理器核,其中,每一个所述空闲处理器核分配一个线程。9根据权利要求8所述的任务分配装置,其特征在于,所述第三确定模块,具体用于确定由所述非矩形区域扩展而成的矩形区域为所述片上网络中包含所述非矩形区域的最小矩形区域。

9、。10根据权利要求8或9所述的任务分配装置,其特征在于,所述分配模块,还用于若所述第二确定模块确定出的与所述多个空闲处理器核连接的片上路由器构成矩形区域,则将所述待处理任务的线程分别分配给所述空闲处理器核,其中,每一个处理器核分配一个线程。11根据权利要求810任一项所述的任务分配装置,其特征在于,所述第二确定模块,具体用于在所述多核处理器构成的片上网络中确定初始空闲处理器核,所述片上网络中包括呈行列排列的多个处理器核;以所述初始空闲处理器核为起始点,在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核。12根据权利要求11所述的任务分配装置,其特征在于,所述第二确定模。

10、块,具体用于沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;若沿所述同行的相邻片上路由器依次确定的连续的第一空闲区域中的处理器核的数量与所述线程数量不匹配,则沿与所述初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使所述第一空闲区域中的处理器核的数量和所述第二空闲区域中的处理器核的数量之和与所述线程数量相等。13根据权利要求11所述的任务分配装置,其特征在于,所述第二确定模块,具体用于沿与所述初始空闲处理器核连接的片上路由器同列的相邻片上路由器依次确定是否权利要求书CN104156267A。

11、3/3页4存在连续的、与所述线程数量匹配的多个空闲处理器核;若沿所述同列的相邻片上路由器依次确定的连续的第三空闲区域中的处理器核数量与所述线程数量不匹配,则沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定连续的第四空闲区域,以使所述第三空闲区域中的处理器核的数量和所述第四空闲区域中的处理器核的数量之和与所述线程数量相等。14根据权利要求813任一项所述的任务分配装置,其特征在于,所述任务分配装置还包括预测模块,用于根据所述矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测所述矩形区域内与非空闲处理器核连接的片上路由器的流量得到所述预测流量。15一种片上网络,包括。

12、多个处理器核、片上路由器和互连线,其特征在于,还包括如权利要求814任一所述的任务分配装置。权利要求书CN104156267A1/12页5任务分配方法、任务分配装置及片上网络技术领域0001本发明实施例涉及片上多核网络技术,尤其涉及一种任务分配方法、任务分配装置及片上网络。背景技术0002随着超大规模集成电路(VERYLARGESCALEINTEGRATEDCIRCUITS,以下简称VLSI)的集成程度越来越高,同一个芯片上集成的片上处理单元,如存储单元、信号处理单元等越来越多,每一片上处理单元相当于一个处理器核,多个处理器核构成多核处理器或众核处理器。片上网络(NETWORKONCHIP,以。

13、下简称NOC)是实现多核处理器中不同处理器核之间数据传输的主要手段。随着处理器核数量的不断增多,一个任务的多个线程、多个任务同时运行在同一个处理器核上的情况越来越普遍,若将不同任务各自的线程随机的分配给某些处理器核,则在NOC中,运行同一个任务的不同线程的处理器核之间的通信会受到其他任务的数据流的影响,无法保证(QUALITYOFSERVICE,以下简称QOS),系统性能降低。为了避免NOC中随机分配任务而引起的的任务之间数据流的相互干扰,通常采用子网划分的方法,即将属于同一个任务的数据流限制在NOC的某一特定区域中。0003现有技术中,对NOC中每个片上路由器建立路由表,路由表确定数据包从源。

14、片上路由器到目标片上路由器的路由机制。在进行子网划分时,依靠内部的路由算法保证一个任务的数据流下一跳到达的片上路由器是分配给同一任务的片上路由器,路由算法可适用于任意拓扑,相对复杂,硬件开销大,不规则的子网形状容易产生流量拥塞。图1为现有技术中基于路由算法的任务分配方法示意图。如图1所示,若任务五中其他片上路由器都需要和DEST通信,则需要经过同一条链路,可能导致链路拥塞,影响网络吞吐量。发明内容0004本发明实施例提供一种任务分配方法、任务分配装置及片上网络,用于解决现有技术中基于路由算法的任务分配方法硬件开销大、网络吞吐量低等问题。0005第一个方面,本发明实施例提供一种任务分配方法,包括。

15、0006确定待处理任务所包含的线程数量;0007在多核处理器构成的片上网络中确定连续的、与所述线程数量相等数量的多个空闲处理器核,其中,每一个所述空闲处理器核连接一个片上路由器;0008若确定出的与所述空闲处理器核连接的所述片上路由器构成的区域是非矩形区域,则在所述片上网络中搜索并确定由所述非矩形区域扩展的矩形区域;0009若所述扩展的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将所述待处理任务的线程分配给所述空闲处理器核,其中,每一个所述空闲处理器核分配一个线程。0010在第一个方面的第一种可能的实现方式中,所述由所述非矩形区域扩展而成的矩形区域为所述片上网。

16、络中包含所述非矩形区域的最小矩形区域。说明书CN104156267A2/12页60011结合第一个方面或第一个方面的第一种可能的实现方式,在第一个方面的第二种可能的实现方式中,所述在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核之后,所述方法还包括0012若确定出的所述空闲处理器核的片上路由器构成的区域是矩形区域,则将所述待处理任务的线程分别分配给所述空闲处理器核,其中,每一个处理器核分配一个线程。0013结合第一个方面、第一个方面的第一种或第二种可能实现方式中的任一种可能的实现方式,在第三种可能的实现方式中,所述片上网络中包括呈行列排列的多个处理器核;0014相应。

17、的,所述在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核,包括0015在所述多核处理器构成的片上网络中确定初始空闲处理器核;0016以所述初始空闲处理器核为起始点,在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核。0017结合第一个方面的第三种可能的实现方式,在第一个方面的第四种可能的实现方式中,若确定出的所述空闲处理器核的片上路由器构成的区域是非矩形区域,则所述搜索并确定由所述非矩形区域扩展而成的矩形区域,包括0018沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核。

18、;0019若沿所述同行的相邻片上路由器依次确定的连续的第一空闲区域中的处理器核的数量与所述线程数量不匹配,则沿与所述初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使所述第一空闲区域中的处理器核的数量和所述第二空闲区域中的处理器核的数量之和与所述线程数量相等。0020结合第一个方面的第三种可能的实现方式,在第一个方面的第五种可能的实现方式中,若确定出的所述空闲处理器核的片上路由器构成的区域是非矩形区域,则所述搜索并确定由所述非矩形区域扩展而成的矩形区域,包括0021沿与所述初始空闲处理器核连接的片上路由器同列的相邻片上路由器依次确定是否存在连续的、与所述线程数量。

19、匹配的多个空闲处理器核;0022若沿所述同列的相邻片上路由器依次确定的连续的第三空闲区域中的处理器核数量与所述线程数量不匹配,则沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定连续的第四空闲区域,以使所述第三空闲区域中的处理器核的数量和所述第四空闲区域中的处理器核的数量之和与所述线程数量相等。0023结合第一个方面、第一个方面的第一种至第五种可能的实现方式中的任一种可能的实现方式,在第一个方面的第六种可能的实现方式中所述若所述矩形区域内与非空闲处理器核连接的每一片上路由器的预测流量未超过预设门限值,则在将所述待处理任务中所包含的线程分别分配给所述空闲处理器核之前,所述方法还。

20、包括0024根据所述矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测所述矩形区域内与非空闲处理器核连接的片上路由器的流量得到所述预测流量。0025第二个方面,本发明实施例提供一种任务分配装置,包括0026第一确定模块,用于确定待处理任务所包含的线程数量;说明书CN104156267A3/12页70027第二确定模块,用于在多核处理器构成的片上网络中确定连续的、与所述线程数量相等数量的多个空闲处理器核,其中,每一个所述空闲处理器核连接一个片上路由器;0028第三确定模块,用于若所述第二确定模块确定出与所述空闲处理器核连接的所述片上路由器构成的区域是非矩形区域时,在所述片上网络中搜索。

21、并确定由所述非矩形区域扩展的矩形区域;0029分配模块,用于若所述第三确定模块确定出的矩形区域内与非空闲处理器核连接的每一个片上路由器的预测流量未超过预设门限值,则将所述待处理任务的线程分配给所述空闲处理器核,其中,每一个所述空闲处理器核分配一个线程。0030在第二个方面的第一种可能的实现方式中,所述第三确定模块,具体用于0031确定由所述非矩形区域扩展而成的矩形区域为所述片上网络中包含所述非矩形区域的最小矩形区域。0032结合第二个方面以及第二个方面的第一种可能的实现方式,在第二个方面的第二种可能的实现方式中,所述分配模块,还用于0033若所述第二确定模块确定出的与所述多个空闲处理器核连接的。

22、片上路由器构成矩形区域,则将所述待处理任务的线程分别分配给所述空闲处理器核,其中,每一个处理器核分配一个线程。0034结合第二个方面、第二个方面的第一种或第二种可能的实现方式中的任一种可能的实现方式,在第二个方面的第三种可能的实现方式中,所述第二确定模块,具体用于0035在所述多核处理器构成的片上网络中确定初始空闲处理器核,所述片上网络中包括呈行列排列的多个处理器核;0036以所述初始空闲处理器核为起始点,在多核处理器构成的片上网络中确定连续的、与所述线程数量匹配的多个空闲处理器核。0037结合第二个方面的第三种可能的实现方式,在第二个方面的第四种可能的实现方式中,所述第二确定模块,具体用于沿。

23、与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定是否存在连续的、与所述线程数量匹配的多个空闲处理器核;0038若沿所述同行的相邻片上路由器依次确定的连续的第一空闲区域中的处理器核的数量与所述线程数量不匹配,则沿与所述初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使所述第一空闲区域中的处理器核的数量和所述第二空闲区域中的处理器核的数量之和与所述线程数量相等。0039结合第二个方面的第三种可能的实现方式,在第二个方面的第五种可能的实现方式中,所述第二确定模块,具体用于0040沿与所述初始空闲处理器核连接的片上路由器同列的相邻片上路由器依次确定是否。

24、存在连续的、与所述线程数量匹配的多个空闲处理器核;0041若沿所述同列的相邻片上路由器依次确定的连续的第三空闲区域中的处理器核数量与所述线程数量不匹配,则沿与所述初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定连续的第四空闲区域,以使所述第三空闲区域中的处理器核的数量和所述第四空闲区域中的处理器核的数量之和与所述线程数量相等。0042结合第二个方面、第二个方面的第一种至第五种可能的实现方式中的任一种可能的实现方式,在第二个方面的第六种可能的实现方式中,所述任务分配装置还包括说明书CN104156267A4/12页80043预测模块,用于根据所述矩形区域内与非空闲处理器核连接的片上路。

25、由器的历史流量信息,预测所述矩形区域内与非空闲处理器核连接的片上路由器的流量得到所述预测流量。0044第三个方面,本发明实施例还提供一种片上网络,包括多个处理器核、片上路由器和互连线,以及如上任一所述的任务分配装置。0045本发明实施例提供的任务分配方法、任务分配装置及片上网络,通过确定待处理任务所包含的线程数量,在片上网络中确定出与所需线程数量匹配的多个空闲处理器核构成的非矩形区域,借助该非矩形区域相邻的边界片上路由器,使其与该非矩形区域内的空闲处理器核连接的片上路由器构成规则的矩形区域,然后判断矩形区域内与非空闲处理器核连接的片上路由器,即边界片上路由器的流量是否超过预设的门限值,若未超过。

26、,则将待处理任务分配给空闲区域的处理器核。本发明实施例提供的任务分配方法,在片上网络中闲置的处理器核资源等于或多于待处理任务所需的处理器核的时候,若没有规则的矩形区域分配该待处理的任务,则借助边界路由器将非矩形区域构成规则的矩形区域并分配该待处理的任务,该矩形区域内,不需要采用路由表确定数据包从源片上路由器到目标片上路由器的路由机制,而是采用XY路由的方式传递数据包,避免网络拥塞、提高网络吞吐量。附图说明0046为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人。

27、员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。0047图1为现有技术中基于路由子网的任务分配方法示意图;0048图2为本发明任务分配方法实施例一的流程图;0049图3为本发明任务分配方法实施例二片上网络的示意图;0050图4A为本发明任务分配方法实施例三片上网络的示意图;0051图4B为图4A中重新搜索矩形区域的示意图;0052图5A为采用随机均匀流量模型分析本发明任务分配方法与基于路由子网的任务分配方法的示意图;0053图5B为采用位比较流量模型分析本发明任务分配方法与基于路由子网的任务分配方法的示意图;0054图5C为采用龙卷风流量模型分析本发明任务分配方法与基于。

28、路由子网的任务分配方法的示意图;0055图6为本发明任务分配装置实施例一的结构示意图;0056图7为本发明任务分配装置实施例二的结构示意图;0057图8为本发明任务分配装置实施例三的结构示意图。具体实施方式0058为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是说明书CN104156267A5/12页9本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0059图2为本发明任务分配方法实施例一。

29、的流程图。本实施例的执行主体为任务分配装置,其可集成在多核处理器构成的片上网络中,该装置可以例如可以是片上网络中任意处理器等。本实施例适用于片上网络中空闲的处理器核资源等于或多于待处理任务所需的处理器核的场景,具体的,本实施例包括如下步骤0060101确定待处理任务所包含的线程数量。0061任务分配装置确定待处理任务所包含的线程数量。一般来说,一个任务所包含的线程数量与处理该任务所需的处理器核的数量是一一对应的。例如,若一个任务包含9个线程,则需要9个处理器核处理该任务。0062102在多核处理器构成的片上网络中确定连续的、与线程数量相等数量的多个空闲处理器核,其中,每一个空闲处理器连接一个片。

30、上路由器。0063片上网络具有支持同时访问、可靠性高及可重用性高等特点,由多个处理器核、片上路由器和互连线(通道)组成。其中,互连线包括片上路由器和处理器核之间的内部互连线、片上路由器之间的外部互连线,每个处理器核与一个片上路由器相连,各个片上路由器互连成一个网状结构(MESHTOPOLOGY,以下简称MESH)。本步骤中,在确定出待处理任务所包含的线程数量后,根据线程数量,任务分配装置在多核处理器构成以及片上网络中确定连续的、与该线程数量相等数量的多个空闲处理器核以及对应的片上路由器。0064103若确定出的与空闲处理器连接的片上路由器构成的区域非矩形区域,则在片上网络中搜索并确定由非矩形区。

31、域扩展的矩形区域。0065当任务分配装置确定出的连续的、与线程数量相等数量的多个空闲处理器核后,若与该些空闲处理器核连接的片上路由器构成的区域是矩形区域,则直接将待处理任务中所包含的线程分配给空闲处理器核,每个处理器核分配一个线程;否则,若与该些空闲处理器核连接的片上路由器构成的区域是非矩形区域,则搜索并确定由非矩形区域扩展的矩形区域,此区域为片上网络中包含非矩形区域的最小矩形区域。例如,一个NOC为55的MESH结构,待处理的任务包含的线程数量为5个,若确定出的连续的空闲处理器核为同一列或同一行的5个处理器核,则将该待处理的任务所包含的5个线程分配给这5个连续的空闲处理器核,每个处理器核分配。

32、一个线程;若确定出的连续的空闲处理器核数量为5个,但是与该5个处理器核连接的片上路由器构成的区域为非矩形区域,即构成的区域为不规则形状的区域,则任务分配装置确定包含该非矩形区域的矩形区域,即将已经分配任务的非空闲的处理器核与该非矩形区域内的空闲处理器核组成规则的矩形区域。具体的,以该5个处理器核由第一行的前3个和第二行的前2个组成为例,将第二行的第三个处理器核连接的片上路由器作为边界片上路由器,任务分配装置确定该5个处理器核连接的片上路由器与该边界片上路由器构成的矩形区域。0066需要说明的是,上述仅是以该5个处理器核由第一行的前3个和第二行的前2个组成为例对本发明进行详细阐述,然而,本发明并。

33、不以此为限制,在其他可能的实施方式中,连续的空闲处理器核可以有不同的组合,与该处理器核连接的片上路由器构成的非矩形区域也有多种可能的形式,如L型、E型、F型、工字型、I型等,对应的,包含该非矩形区域的矩形区域也有多种可能的形式。说明书CN104156267A6/12页100067104若扩展的矩形区域内与非空闲处理器连接的每一个片上路由器的流量未超过预设门限值,则将待处理任务的线程分配给空闲处理器,每一空闲处理器核分配一个线程。0068该矩形区域内,不需要采用路由表确定数据包从源片上路由器到目标片上路由器的路由机制,而是采用XY路由的方式传递数据包,即在确定出源片上路由器和目的片上路由器后,从。

34、源片上路由器开始,数据包先横向的传递至与目的片上路由器所在的列相交的中间片上路由器,再竖向的传递至目的片上路由器;或者,先竖向的传递至与目的片上路由器所在的行相交的中间片上路由器,再横向的传递至目的片上路由器。0069在确定出包括非矩形区域的矩形区域后,任务分配装置根据矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测矩形区域内与非空闲处理器核连接的该片上路由器的流量得到预测流量,判断预测流量是否超过预设的门限值,若预测流量未超过预设门限值,则将待处理任务中所包含的线程分别分配给空闲处理器核。0070本发明实施例提供的任务分配方法,通过确定待处理任务所包含的线程数量,在片上网络中确。

35、定出与所需线程数量相等数量的多个空闲处理器核构成的非矩形区域,借助与该非矩形区域相邻区域的边界路由器,使其与该非矩形区域内的片上路由器构成规则的矩形区域,然后判断矩形区域内与非空闲处理器核连接的片上路由器,即边界片上路由器的流量是否超过预设的门限值,若未超过,则将待处理任务分配给空闲区域的处理器核。本发明实施例提供的任务分配方法,在片上网络中空闲的处理器核资源等于或多于待处理任务所需的处理器核的时候,若没有规则的矩形区域分配该待处理的任务,则借助边界路由器将非矩形区域扩展成规则的矩形区域并分配该待处理的任务线程,该矩形区域内,不需要采用路由表确定数据包从源片上路由器到目标片上路由器的路由机制,。

36、而是采用XY路由的方式传递数据包,避免了其它任务分配方法硬件开销大、网络吞吐量低、系统利用率低的问题。0071由上述可知,NOC由片上路由器和互连线(通道)组成,每个处理器核与一个片上路由器相连,而一个任务所包含的线程数量与处理该任务所需的处理器核的数量是一一对应的。因此,待处理任务所包含的线程数量、待处理任务所需的处理器核数量以及所需处理器核连接的片上路由器的数量是相等的,处理器核与片上路由器的状态一致同时处于空闲状态或被分配任务状态,搜索到空闲的片上路由器,即搜索到空闲的处理器核。为使本发明实施例更加清楚,以下各个视图所示的片上网络中仅示出片上路由器。0072一般来说,片上网络中包括呈行列。

37、排列的多个处理器核,如55的片上网络,包括5行5列共25个处理器核与25个片上路由器。此时,确定连续的、与线程数量匹配的多个空闲处理器核时,可以按行搜索空闲的处理器核或按照列搜索的方式搜索空闲的处理器核。以按照行搜索为例,具体的,可以在在多核处理器构成的片上网络中确定初始空闲处理器核,沿与初始空闲处理器核连接的片上路由器同行的相邻片上路由器依次确定是否存在连续的、与线程数量匹配的多个空闲处理器核;若沿同行的相邻片上路由器依次确定的连续的第一空闲区域中所包含的处理器核的数量与线程数量不匹配,则沿与初始空闲处理器连接的片上路由器同列的相邻片上路由器依次确定连续的第二空闲区域,以使第一空闲区域所包含。

38、的处理器核的数量和第二空闲区域所包含的处理器核的数量之和与线程数量匹配。下面,通过几个具体的在片上网络分配任务的实施例对本发明进行详细阐述。说明书CN104156267A107/12页110073图3为本发明任务分配方法实施例二片上网络的示意图。如图3所示,本实施例中,NOC为55的NOC,多个处理器核呈行列排列,任务队列中有待处理任务一(4),表示任务一包含4个线程,需要分配4个处理器核处理该任务。随机的确定与片上路由器R11连接的处理器核为初始空闲处理器核,沿与R11连接的片上路由器同行的相邻片上路由器依次确定连续的4个空闲的片上路由器,即确定出R11、R12、R13、R14共4个片上路由。

39、器,该4个片上路由器构成第一空闲区域,为一个规则的矩形区域,则直接将任务一包含的4个线程分配给R11、R12、R13、R14所在的矩形区域内的处理器核。0074图4A为本发明任务分配方法实施例三片上网络的示意图。如图4A所示,本实施例中,NOC为55的NOC,多个处理器核呈行列排列,表示高负载片上路由器,表示低负载片上路由器,表示空闲片上路由器,亦即,R11R13、R21R24以及R31R34为高负载片上路由器,RS01RS06为低负载片上路由器,其余的为空闲路由器。具体的,判断片上路由器负载高低的方式可根据需求设定,例如,某个片上路由器承载的流量大于预设的门限值时,则判断其为高负载片上路由器。

40、。0075本实施例中,任务队列中有待处理任务二(5),表示任务二包含5个线程,需要分配5个处理器核处理该任务。随机的确定与片上路由器R50连接的处理器核为初始空闲处理器核,从R50开始搜索连续的、空闲的片上路由器并判断是否可以构成矩形区域,在按照行或按照列遍历各种可能的情况后,还未找到符合条件的规则的矩形区域,则继续按照行或按照列的搜索方式搜索。具体的,若按照行搜索的方式,则从R50开始搜索第一空闲区域,即沿着R50所在的第一行搜索到包含R50、R51、R52、R53共4个空闲的片上路由器的第一空闲区域,与任务的线程数量不匹配,也就是说,第一空闲区域中所包含的处理器核的数量不满足任务所需的处理。

41、器核数,此时,从R50所在的列继续搜索第二空闲区域,当第二空闲区域内的处理器核的数量和第一空闲区域内所包含的处理器核的数量之和等于5,即第二空闲区域中搜索到R54后,空闲片上路由器的个数与线程数量相等,且R50R54、RS01、RS02及高负载的片上路由器R11构成一个规则的矩形区域。0076在上述通过第一空闲区域和第二空闲区域确定出一个规则的矩形区域后,接下来,判断矩形区域内与非空闲处理器核连接的片上路由器的流量是否超过预设门限值。具体的,可以根据矩形区域内与非空闲处理器核连接的片上路由器的历史流量信息,预测矩形区域内与非空闲处理器核连接的片上路由器的流量。本实施例中,需要判断RS01、RS。

42、02及高负载的片上路由器R11上的流量是否超过预设门限值。以R11为例,若将任务二分配给第一空闲区域和第二空闲区域确定出的规则的矩形区域后,R11原来承载的流量,如图中粗黑箭头所示,与被分配任务二后增加的流量,如图中粗黑箭头所示,若两者之和未超过预设的门限值,则认为R11可以共享,进而判断出可以将任务二分配给该矩形区域所包含的处理器核,如图中虚线框所示,此时,数据包在该矩形区域内,采用XY路由的方式传递数据包。例如若R52为源片上路由器,目的片上路由器为R54,此时,采用XY路由,可以将数据包从R52开始,经过R52、R51、R50传递至R54,也可以从R52开始,经过RS02、RS01传递至。

43、R54;否则,若将任务二分配给第一空闲区域和第二空闲区域确定出的规则的矩形区域使得R11原来承载的流量与被分配任务二后增加的流量超过预设的门限值,则认为R11不可以共享,进而判断出不可以将任务二分配给该矩形区域所包含的处理器核。说明书CN104156267A118/12页120077上述判断片上路由器所承载的流量后,假设该3个片上路由器中至少其中之一所承载的流量超过预设的门限值,假设R11所承载的流量超过预设的门限值。此时,从R50开始,重新按照行或按照列的搜索方式搜索。具体的,如图4B所示,图4B为图4A中重新搜索矩形区域的示意图。0078若按照列搜索的方式,则从R50开始搜索第三空闲区域,。

44、即沿着R50所在的第一列搜索到包含R50、R54、R55共三个空闲的片上路由器的第三空闲区域,与任务的线程数量不匹配,也就是说,第三空闲区域中所包含的处理器核的数量不满足任务所需的处理器核,此时,从R50所在的行继续搜索第四空闲区域,当第四空闲区域内的处理器核的数量和第三空闲区域内所包含的处理器核的数量之和等于5,即第四空闲区域中搜索到R51、R52之后,空闲片上路由器的个数与线程数量相等,且R50、R54、R55、R51、R52、与第二行、第三行的四个低负载的片上路由器RS01、RS02、RS03、RS04构成一个规则的矩形区域。此时,判断若将任务二分配给第三空闲区域和第四空闲区域确定出的规。

45、则的矩形区域后,共享的RS01、RS02、RS03、RS04原来承载的流量与被分配任务二后增加的流量未超过预设的门限值,若该四个共享片上路由器的流量都未超过预设的门限值,则将任务二分配给该矩形区域所包含的处理器核,如图4B中虚线框所示;否则,若其中之一所承载的流量超过预设的门限值,则表示不能将任务二分配给该矩形区域,需要重新搜索处理器核。0079上述实施例中,若所有的不规则区域都无法通过流量预测,则将任务二刚在等待队列中等待下一次任务调度。如在其他任务处理完毕后释放出更多的处理器核后重新搜索任务需要的处理器核。0080需要说明的是,上述实施例中,第一空闲区域、第二空闲区域、第三空闲区域、第四空。

46、闲区域可以为规则的矩形区域,也可以是不规则的矩形区域,例如以图4A为例,若RS01也为空闲的片上路由器时,则从R50开始搜索到的连续的、空闲的片上路由器包括R50、R51、52、R54及RS01;若RS02为空闲的片上路由器,R54、RS01、R11为非空闲片上路由器时,则从R50开始搜索到的连续的、空闲片上路由器包括R50、R51、R52、RS02、R53。0081为了清楚对比本发明的任务分配方法与现有技术中基于路由子网的任务分配方法的有益效果,下面,采用不用的流量模型分析本发明的技术方案与现有的技术方案。0082图5A为采用随机均匀流量模型分析本发明任务分配方法与基于路由子网的任务分配方法。

47、的示意图。如图5A所示,随机均匀流量模型(UNIFORM)中,横坐标为注入率,可以理解为片上网络的处理器核的利用率;纵坐标为延时时长;代表本发明注入率与延时时长的对应曲线;代表基于路由子网的任务分配方法中注入率与延时时长的对应曲线。0083由图5A所示,在注入率为06103时,整个片上网络的处理器核的利用率不高,此时,本发明的技术方案与现有的技术方案的的延时时长基本相等。但是,随着处理器核的利用率越来越高,同一个延时时长对应的本发明的技术方案与现有的技术方案的差别就越大,基于路由子网的任务分配方法中,注入率越大,延时时长相应的越大,表示片上网络的性能越差,即延迟明显升高,网络吞吐量低,而本发明。

48、任务分配方法中,注入率越大,延说明书CN104156267A129/12页13时时长相对增加缓慢,表示片上网络的性能高,即延迟升高不明显,网络吞吐量高。0084图5B为采用位比较流量模型分析本发明任务分配方法与基于路由子网的任务分配方法的示意图。同理,如图5A,图5B所示位比较流量(BITCOMP)流量模型中,横坐标为注入率,可以理解为片上网络的处理器核的利用率;纵坐标为延时时长;代表本发明注入率与延时时长的对应曲线;代表基于路由子网的任务分配方法中注入率与延时时长的对应曲线。在注入率为大于2103时,即可明显表现出本发明的有益效果。0085图5C为采用龙卷风流量模型分析本发明任务分配方法与基。

49、于路由子网的任务分配方法的示意图。同理,如图5A,图5C所示龙卷风(TORNADO)流量模型中,横坐标为注入率,可以理解为片上网络的处理器核的利用率;纵坐标为延时时长;代表本发明注入率与延时时长的对应曲线;代表基于路由子网的任务分配方法中注入率与延时时长的对应曲线。在注入率大于4103时,即可明显表现出本发明的有益效果。0086另外,为了清楚对比本发明的任务分配方法与现有技术中基于矩形子网划分的任务分配方法的有益效果,下面,用系统利用率的表格来对比本发明路由器共享与现有技术中基于子网划分方法的有益效果。0087表10088网络负载05060708091矩形子网划分047803305729790656676069342207013110707254路由器共享0465374054207306266710705102076B01108I05070089表1为网络负载率为051的情况下,矩形子网划分方法下系统利用率和本发明路由器共享方法下系统利用率的一个对照表。其中,网络负载率051表示需要的处理器核与系统实际能提供的处理器核的比值,例如,表1中第列表示当需要的处理器核与系统实际能提供的处理器核的比值为05时,系统处于不饱和状态,此时基于矩形子网划分方法的系统利用率为0478033,而基于本发明路由器共享的方法中,系统利用率为0465374,两者之间差别较小。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1