[0083] (7)式和(8)式中的Ki和Kj分别为比平均负载大和比平均负载小的负载量,目的在于把(2)式和(3)式两不等式变成等式形式。如果重载节点上的负载量很大,迁出一个△Load后其依然为重载节点,则这次迁移过后其根据自身的监测模块监测到本地节点依然为重载节点时,依然会把本地节点的节点号发送到主控节点的重载节点列表中去,所以只要每次监测到其为重载节点则就会一直迁移,直到其变成适载节点为止。同理,对于轻载节点,若迁进一个△Load后其依然为轻载节点,则这次迁移过后其根据自身的检测模块监测到本地节点依然为轻载节点时依然会把本地节点的节点号发送到主控节点的轻载节点列表中去,所以只要每次监测到其为轻载节点则就会一直迁移,直到其变成适载节点为止。所以在此我们设每一次从重载节点i往轻载节点j只迁移△Load;
[0084] 则负载△Load在重载节点i上执行完所需要的时间为
[0085] ti=t执行i+t等待i,
[0086] 其中,所述的t执行i为节点i单独执行负载△Load所需时间;
[0087] t等待i为节点i单独执行负载Ki所需时间,也即执行负载△Load之前其所需要等待的时间;
[0088] 在轻载节点j上执行完所需要的时间为
[0089] tj=t执行j+t等待j;
[0090] t执行j为节点j单独执行负载△Load所需时间,t等待j为j号轻载节点单独执行负载Kj-△Load所需时间,也即执行负载△Load之前其所需要等待的时间。
[0091] 设t迁移ij为负载△Load从重载节点i迁移到轻载节点j的迁移时间开销。则如果满足下述(9)式,则意味着迁移之后比迁移之前在时间开销上减少了。
[0092] ti>t迁移ij+tj (9)
[0093] 把ti和tj表达式带入(9)中得:
[0094] t执行i+t等待i>t迁移ij+t执行j+t等待j (10)
[0095] 由于是同构多核系统,所以每一个核(节点)的运算速度一样。因此,对于执行相同的负载△Load,其执行时间也相等,即t执行i=t执行j。所以(10)式化简得:
[0096] t等待i>t迁移ij+t等待j (11)
[0097] 设每个核的执行速度为v,则有:
[0098]
[0099]
[0100] 通过(12)式和(13)式可以计算出t等待i和t等待j,接下来只要能够通过某种方式求的t迁移ij,则就可以确定△Load。
[0101] t迁移ij不仅跟通信网络(链路和路由器)有关,还与通信距离有关。通信距离由节点之间的曼哈顿距离表示。此处定义数据走过一个路由器和一条链路为一步长通信距离。设一单位数据通过一链路所需时间为tlink,通过一路由器所需时间为trouter。不考虑网络拥塞情况,并且tlink和trouter可以由系统信息统计分析得到。所以单位数据的一步长通信距离时间开销为:
[0102] thop=trouter+tlink (14)
[0103] 设m为任务迁移的源节点i到目的节点j的步长数,则从重载节点i迁移△Load负载到轻载节点j的迁移时间开销为:
[0104] t迁移ij=m×△Load×thop=m×△Load×(trouter+tlink) (15)[0105] 把(12)、(13)和(15)代入(11)中得:
[0106]
[0107] 由(16)式可以得出:
[0108]
[0109] 由(7)式和(8)式可得:
[0110] Ki-Kj=(Loadi-△Load)-(Loadj+△Load)
[0111] =Loadi-Loadj-2△Load (18)
[0112] 将(18)代入(17)中可得:
[0113]
[0114] 至此就求得了△Load的取值条件,只要满足(19)式的△Load就能保证任务迁移之后系统运行的时间比迁移之前少,并且不会出现任务迁移颠簸。
[0115] 具体实施方式二:结合图3,本实施方式中一种基于NoC多核同构系统的负载判断方法的任务迁移方法,按下述方法实现:
[0116] 步骤一、获取重载节点列表、轻载节点列表
[0117] 根据负载判断方法得到NoC多核同构系统中主控节点的重载节点列表、轻载节点列表;
[0118] 步骤二、节点列表中节点个数分析和获得权重矩阵
[0119] a、对步骤一中得到的重载节点列表和轻载节点列表中所含有的节点的个数进行判断,根据重载节点列表中重载节点的个数和轻载节点列表中轻载节点的个数的比较可以分为三种情况:
[0120] ①、重载节点列表中节点的个数大于轻载节点列表中节点的个数;
[0121] ②、重载节点列表中节点的个数等于轻载节点列表中节点的个数;
[0122] ③、重载节点列表中节点的个数小于轻载节点列表中节点的个数;
[0123] ⑴、若主控节点的查询模块对节点列表中节点个数分析的情况为①时,则将重载节点列表中的节点和轻载节点列表中的节点整体交换,即将原轻载节点列表中的轻载节点作为分析后得到的重载节点列表中的重载节点,将原重载节点列表中的重载节点作为分析后得到的轻载节点列表中的轻载节点;
[0124] ⑵、若主控节点的查询模块对节点列表中节点个数分析的情况为②或③,则重载节点列表中的重载节点直接作为分析后得到的重载节点列表中的重载节点,轻载节点列表中的轻载节点直接作为分析后得到的轻载节点列表中的轻载节点;
[0125] b、依据NoC多核同构系统中从节点运行的任务的相关性,得到权重矩阵;
[0126] 步骤b中所述的任务的相关性是指不同从节点上任务之间数据通信频繁程度,所述的数据通信频繁程度越强,权重矩阵中的权重值越大;其中,所述的数据通信频繁程度越强,权重矩阵中的权重值越大;当数据通信频繁程度为0时,即不存在数据通信,则权重值为1,当数据通信频繁程度不为0时,即存在数据通信则权重值都大于1;
[0127] 步骤三、获得候选轻载节点矩阵和步长矩阵
[0128] 对步骤二得到的重载节点列表中的每一个重载节点求其n步长区域,n从1开始,直到满足终止条件为止,得到候选轻载节点矩阵和步长矩阵;
[0129] 其中,所述的终止条件为:重载节点列表中每一个重载节点在其n步长区域内都至少有一个与之对应的候选轻载节点,若存在多个重载节点只有一个候选轻载节点与之对应的情况,则必须保证此候选轻载节点被其重载节点所独有;
[0130] 所述的候选轻载节点矩阵的大小为row×column;所述的步长矩阵的大小为row×column;所述的row为步骤二中分析后得到的重载节点列表中重载节点的个数,所述的column为步骤二中分析后得到的轻载节点列表中轻载节点的个数;
[0131] 步骤四、获取加权后的步长矩阵
[0132] 采用步骤二得到的权重矩阵通过点乘的方式给步骤三得到的步长矩阵加权,得到加权后的步长矩阵;
[0133] 其中,所述的加权后的步长矩阵的矩阵大小为row×column;所述的row为步骤二中分析后得到的重载节点列表中重载节点的个数,所述的column为步骤二中分析后得到的轻载节点列表中轻载节点的个数;
[0134] 所述的加权后的步长矩阵的第i行存储的是步骤二得到的重载节点列表中节点号为i的重载节点到与之对应的每个候选轻载节点加权后的步长;
[0135] 步骤五、计算得到迁移通信距离最小化的配对组合
[0136] 由步骤三得到的候选轻载节点矩阵可得到候选轻载节点组合,在依据步骤四得到的加权后的步长矩阵可得到与候选轻载节点组合相对应的加权后的步长组合,在通过加权后的步长组合可得到任务迁移通信距离的总步长,从得到的所有任务的任务迁移的总步长中选取步长数最小的任务迁移的总步长,从而可以得到轻载节点组合,进而得到迁移通信距离最小化的重载节点和轻载节点的配对组合;
[0137] 步骤六、任务迁移
[0138] NoC多核同构系统依据步骤五得到的迁移通信距离最小化的重载节点和轻载节点的配对组合进行任务迁移,即完成基于NoC多核同构系统的负载判断方法的任务迁移方法。
[0139] 本实施方式中的NoC多核同构系统模型,如图1所示。从图1中可以看出此系统模型节点之间采用的是主从模式,一个节点作为管理节点即图中的主控节点,其他节点作为运算节点也即从节点。整个NoC多核同构系统由主控节点和从节点两大部分组成。主控节点中由轻载节点列表、重载节点列表、查询模块和迁移模块组成。重载节点列表和轻载节点列表记录着整个系统节点的负载情况,若某一节点为重载节点,则就把其编号也即节点号发送给主控节点,存于重载节点列表中,若某一节点为轻载节点,则就把其编号发送给主控节点,存于轻载节点列表中,适载节点不发送;当查询模块查询到重载节点列表和轻载节点列表同时不为空时,则反馈信息给迁移模块,由迁移模块进行任务迁移计算,得出在此重载节点和轻载节点的情况下最优迁移配对关系进行任务迁移。最后把已经进行过迁移的重载节点和轻载节点从相应的列表中删除。
[0140] 从节点由负载监测模块、工作任务表和迁移任务表三部分组成。负载监测模块负责监测本地节点的负载信息,当根据负载判断方法监测到本地节点负载过重时就把负载过重部分的任务存于迁移任务表中并且把本地节点的节点号发送给主控节点,然后存于主控节点重载节点列表中,而工作任务表存储将在本地节点上执行的任务;当监测到本地节点负载过轻时就把本地节点的节点号发送给主控节点,然后存于主控节点轻载节点列表中。
[0141] 当轻载节点列表和重载节点列表都得到后,然后运用本实施例提出一种基于NoC多核同构系统的负载判断方法的任务迁移方法就可以为重载节点从整个系统角度找出通信开销最小的目的轻载节点。接着,把得到的具有最小通信开销的配对组合发给每一个从节点。最后,从节点就可以依据这些配对组合进行任务迁移。
[0142] 本实施方式中步骤三中终止条件的意义在于:在保证最小通信开销配对存在的条件下使得计算量最少。
[0143] 本实施例中把分析后得到的重载节点列表中的节点统称为重载节点,把轻载节点列表中的节点统称为轻载节点。
[0144] 具体实施方式三:本实施方式与具体实施方式二的不同之处是,步骤一中所述的负载判断方法为迁移的任务量△Load满足下式,即可进行节点上的任务迁移:
[0145]
[0146] 其中,△Load是从节点号为i的重载节点迁移到节点号为j的轻载节点的迁移的任务量;
[0147] Loadi是节点号为i的重载节点上的负载量;
[0148] Loadj是节点号为j的轻载节点上的负载量;
[0149] m是节点号为i的重载节点和节点号为j的轻载节点之间的步长总数;
[0150] v是系统中核的运算速度;
[0151] trouter是单位数据通过路由器的平均时间;
[0152] tlink是单位数据通过数据链路的平均时间。
[0153] 本实施方式中△Load的单位为KB,Loadi的单位为KB,Loadj的单位为KB,v的单位为KB/s,trouter的单位为s,tlink的单位为s。其他与具体实施方式二相同。
[0154] 具体实施方式四:本实施方式与具体实施方式二或三的不同之处是,步骤二b中所述的权重矩阵的矩阵大小为row×column;其中,所述的row为步骤二中分析后得到的重载节点列表中重载节点的个数,所述的column为步骤二中分析后得到的轻载节点列表中轻载节点的个数。其他与具体实施方式二或三相同。
[0155] 具体实施方式五:本实施方式与具体实施方式二至四之一的不同之处是,步骤三中所述的步长区域的计算:计算步骤二分析后得到的重载节点列表中每个节点的n步长区域,方法如下:
[0156] 选取节点号为i的重载节点,则节点号为i的重载节点的一步长节点号为i±1和i±N,而节点号为i±1和i±N的节点形成了节点号为i的重载节点的一步长区域;
[0157] 节点号为i的重载节点的二步长节点号为一步长区域中的一步长节点号±1和一步长节点号±N,而节点号为一步长节点号±1和一步长节点号±N的节点形成了节点号为i的重载节点的二步长区域;
[0158] 依次类推,节点号为i的重载节点的n步长区域由n-1步长区域中n-1步长节点号±1和n-1步长节点号±N的节点形成;
[0159] 其中,步骤三中所述的n≥2;
[0160] N是网络规模为M×N的片上多核同构系统的列数,M是网络规模为M×N片上多核同构系统的行数。
[0161] 在本实施方式中:
[0162] a、当节点号为i的重载节点处于网络规模为M×N片上多核同构系统的网络左边界上时,此时节点号为i的重载节点的步长区域由存在的节点组成,所述的存在的节点的节点号为i+1,i±N;
[0163] b、当节点号为i的重载节点处于网络规模为M×N片上多核同构系统的网络右边界上时,此时节点号为i的重载节点的步长区域由存在的节点组成,所述的存在的节点的节点号为i-1,i±N;
[0164] c、当节点号为i的重载节点处于网络规模为M×N片上多核同构系统的网络上边界上时,此时节点号为i的重载节点的步长区域由存在的节点组成,所述的存在的节点的节点号为i±1,i+N;
[0165] d、当节点号为i的重载节点处于网络规模为M×N片上多核同构系统的网络下边界上时,此时节点号为i的重载节点的步长区域由存在的节点组成,所述的存在的节点的节点号为i±1,i-N;
[0166] e、当节点号为i的重载节点处于网络规模为M×N片上多核同构系统的网络左边界的上顶点时,此时节点号为i的重载节点的步长区域由存在的节点组成,所述的存在的节点的节点号为i+1,i+N;
[0167] f、当节点号为i的重载节点处于网络规模为M×N片上多核同构系统的网络左边界的下顶点时,此时节点号为i的重载节点的步长区域由存在的节点组成,所述的存在的节点的节点号为i+1,i-N;
[0168] g、当节点号为i的重载节点处于网络规模为M×N片上多核同构系统的网络右边界的上顶点时,此时节点号为i的重载节点的步长区域由存在的节点组成,所述的存在的节点的节点号为i-1,i+N;
[0169] h、当节点号为i的重载节点处于网络规模为M×N片上多核同构系统的网络右边界的下顶点时,此时节点号为i的重载节点的步长区域由存在的节点组成,所述的存在的节点的节点号为i-1,i-N。其他与具体实施方式二至四之一相同。
[0170] 具体实施方式六:本实施方式与具体实施方式二至五之一的不同之处是,步骤三中所述的候选轻载节点矩阵的第i行用以存储步骤二中分析后得到的重载节点列表中节点号为i的重载节点,在满足终止条件时,与之对应的所有候选轻载节点的节点号。其他与具体实施方式二至五之一相同。
[0171] 具体实施方式七:本实施方式与具体实施方式二至六之一的不同之处是,步骤二中分析后得到的重载节点列表中重载节点在其n步长区域中包含的轻载节点组成;其中,所述的轻载节点为步骤二中所述的分析后得到的轻载节点列表中的轻载节点。其他与具体实施方式二至六之一相同。
[0172] 具体实施方式八:本实施方式与具体实施方式二至七之一的不同之处是,步骤三中所述的步长矩阵的第i行第j列用以存储步骤二中得到的重载节点列表中节点号为i的重载节点到与候选轻载节点矩阵中第i行第j列的轻载节点的步长数。其他与具体实施方式二至七之一相同。