CN104536831B - 一种基于多目标优化的多核SoC软件映射方法 - Google Patents
一种基于多目标优化的多核SoC软件映射方法 Download PDFInfo
- Publication number
- CN104536831B CN104536831B CN201510015243.7A CN201510015243A CN104536831B CN 104536831 B CN104536831 B CN 104536831B CN 201510015243 A CN201510015243 A CN 201510015243A CN 104536831 B CN104536831 B CN 104536831B
- Authority
- CN
- China
- Prior art keywords
- msub
- mtd
- mrow
- processor
- represent
- 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.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于多目标优化的多核SoC软件映射方法,其包括以下步骤:(1)、优化多核SoC软件映射的目标;(11)、确定多核SoC软件映射中的决策变量;(12)、确定多核SoC软件映射的约束条件;(13)、确定多核SoC软件映射的目标总函数(14)基于任务和处理器建立二者之间映射开销;(15)建立起通信事件与处理器之间对应的开销矩阵,(2)多核SoC软件映射的多目标演化步骤如下:(21)编码;(22)初始染色体种群生成;(23)约束违例检查;(24)适应度计算;(25)选择;(26)变异;(27)杂交;(28)重复(23)~(27)步骤,直到完成预定的演化代数。
Description
技术领域
本发明属于计算机通信领域,涉及一种基于多目标优化的多核SoC软件映射方法。
背景技术
深亚微米技术的出现,使得整个计算机系统集成到了一个芯片,即系统芯片称为可能。系统芯片SoC(Systerm-on-a-Chip),又称系统级集成电路SLI,是指在单一硅片上集成数字和模拟混合电路,包括嵌入式核、存储器、专用功能模块、I/O接口模块等多种功能的模块,也就是说可以将现有的标准集成电路、专用集成电路、存储器、逻辑电路、模拟电路、PLD等集成到一个芯片。
多核SoC技术成为便携式计算设备的主要计算架构,它提供较强的计算能力、消耗较低的能耗,充分发挥了各计算节点的能力。
随着航天和国防发展的需要,计算机系统面临一些问题:1、计算能力需求日益剧增;2、计算能耗过大。多核SoC技术已经成为下一代航天计算机系统的关键技术。
但是,多核SoC架构的主要特征是异构和并行性。充分发挥多核SoC的计算能力并且降低能耗的关键点在于将应用程序恰当地映射到计算节点上。但是,由于多核SoC架构的复杂性、应用程序自身的演化性,获得一个最优或者次优的映射方案通常非常困难。
发明内容
发明目的:本发明针对上述现有技术存在的问题做出改进,即本发明公开了一种基于多目标优化的多核SoC软件映射方法。其是基于Kahn进程网络的程序并行框架提取技术,针对静态仿射嵌套循环程序,提出一种并行性技术方案。
技术方案:一种基于多目标优化的多核SoC软件映射方法,包括以下步骤:
(1)、优化多核SoC软件映射的目标;
(11)、确定多核SoC软件映射中的决策变量;
(12)、确定多核SoC软件映射的约束条件;
(13)、确定多核SoC软件映射的目标总函数,目标总函数包括第一目标函数、第二目标函数和第三目标函数,
第一目标函数为:
其中:
VA表示映射map的目标平台节点,fp表示对应处理器总处理时间,fm表示内存的总处理时间,表示处理器的所有执行事件所花费的总时间,表示所有通信事件所花费的总时间,在上述公式中,αa表示节点a的计算周期要求,xap表示节点a是否被映射到p;如果a映射到p,那么xap=1,否则为0;cp表示处理器p的处理能力,单位为能处理多少周期,βb表示通道b的通信时间需求,xbm表示通道b是否被映射到m,如果是那么为1,否则为0,a表示卡恩网络的一个节点,Vk是卡恩网络的所有节点的集合,b是一个通道,Bα是与一个节点a相连的通道集合,Ek是卡恩网络的所有通道的集合,m是一个内存区域,Mp是处理器p能够访问的内存的集合,cm表示内存m的处理能力,
第二目标函数为:
其中:
gm=fmwme,
VA表示映射map的目标平台节点,gp表示处理器p的能耗,gm分别内存m的能耗,其中表示处理器p上执行的时间,wpe表示处理器单位执行时间的能耗,表示处理器上通信的时间,wpc表示处理器单位通信时间的能耗,
第三目标函数为:
其中:
P为映射中map中使用的处理器的集合,M为映射map使用的内存的集合,up表示p的成本,um表示m的成本,yp和ym表示是否使用p或者m,
多核SoC软件映射的目标总函数表示为:
minf=(f(map),g(map),c(map)),
其中,f(map)表示映射方案map达到的计算时间目标,g(map)表示映射方案map的能耗目标,c(map)表示映射方案map达到的成本目标,
(14)建立基于任务和处理器建立二者之间映射开销,对于一个任务集合T={t1,t2,…,tn},以及一个平台的处理单元类型集合P={p1,p2…,pm},存在一个运行时间矩阵P,
其中,pij表示任务tj在pi类处理器上的运行时间,
(15)建立起通信事件与处理器之间对应的开销矩阵,对于一个通信事件集合E={e1,e2,…,en},以及一个平台的处理单元类型集合P={p1,p2…,pm},存在一个运行时间矩阵C,
其中,cij表示通信事件ej在pi类处理器上的运行时间,
(2)多核SoC软件映射的多目标演化步骤如下:
(21)编码:
编码的染色体为各处理器Kahn进程网络中的节点和FIFO通道到平台构件之间映射的编号构成的编码,
(22)初始染色体种群生成:
首先,将内存区域按照一定的粒度划分成内存单元,并分别为每个内存单元编码,然后为每个处理器进行编码,
其次,对于Kahn进程网络上的每个进程节点,随机地从有效处理器编码集合中选择一个,直到每个进程节点都被分配到一个处理器,
最后,启动修复算法,完成FIFO通道到内存单元的映射,
(23)约束违例检查:
首先,考虑Kahn进程所映射的处理器是否来自于有效处理器集合,如果有违背这个约束条件,那么从有效集合中随机选择一个处理器进行映射,对于FIFO通道,主要检查每个FIFO是否位于同一个处理器,如果是那么将其映射到一个处理器上,如果不是同一个处理器上的FIFO,则随机选择一个内存M,将其映射到M上,
(24)适应度计算:
基于NSGAII算法中的方法,首先采用快速非支配排序确定种群中每一个个体的非支配等级,然后通过局部拥挤距离算法对其进行密度估计,确定个体的局部拥挤距离,
(25)选择:
采用二元约束竞赛选择法,在该选择方法中,从当前种群中随机地挑选两个个体,然后将适应值最好的个体选做父个体,重复执行这个过程,直到个体数目达到预定的种群规模,选出的父个体作为下一代种群,
(26)变异:
突变操作采用独立的位变异方法,即每个个体的随机的一位发生改变,改变的值是随机的,将变异后的染色体转换成为一个映射方案,利用步骤(13)中的目标总函数计算出该映射方案下的三个目标值,
(27)杂交,
(28)重复(23)~(27)步,直到完成预定的演化代数。
作为本发明中一种基于多目标优化的多核SoC软件映射方法的一种优选方案:步骤(11)中确定多核SoC软件映射中的决策变量包括以下步骤:
a、如果Kahn节点a被映射到处理器p上,那么决策变量xap=1,否则为0;
b、如果一个通道b被映射到内存m,那么决策变量xbm=1,否则为0;
c、如果一个通信通道b被映射到一个处理器p,那么决策变量xbp=1,否则为0;
d、如果系统使用了处理器p,那么决策变量yp=1,否则为0;
e、如果系统使用了内存m,那么决策变量ym=1,否则为0。
作为本发明中一种基于多目标优化的多核SoC软件映射方法的一种优选方案:步骤(12)中确定多核SoC软件映射的约束条件为:
每个Kahn节点必须被映射到一个处理器,即对
对于应用模型中的每个通道,必须被映射到一个处理器或者内存,即对于
如果两个相互通信的Kahn节点被映射到同一个处理器,那么这些节点之间的通信通道必须被映射到同一个处理器上,即对于那么
对于内存和处理器的使用,需要满足如下条件:
对于
对于
作为本发明中一种基于多目标优化的多核SoC软件映射方法的一种优选方案:步骤(27)中的杂交包括以下步骤:
a)、对参与杂交的两个父个体随机地选定杂交部分和杂交点,
b)、将第1个父个体杂交部分的内容插入到第2个父个体的杂交点位置之前,生成第1个子个体.杂交是对染色体的Kahn进程组进行操作,即从第1个父个体插入一个Kahn进程组到第2个父个体中,
c)、将第2个父个体的杂交部分插入到第1个父个体的杂交点之前,生成第2个子个体,
将杂交后的染色体转换成为一个映射方案,利用步骤(13)中的目标总函数计算出该映射方案下的三个目标值。
有益效果:本发明公开了一种基于多目标优化的多核SoC软件映射方法,具有以下有益效果:
(1)、探索应用程序与多核SoC硬件之间的最佳搭配方案,使得应用程序开发人员不用过多地考虑软件到硬件的映射,将主要的精力集中在应用逻辑的设计和实现上;
(2)、本发明能够支持应用程序和架构的演化,避免手工映射难以适应应用程序和硬件架构变化带来的重新映射工作量过大问题。
具体实施方式:
下面对本发明的具体实施方式详细说明。
一种基于多目标优化的多核SoC软件映射方法,包括以下步骤:
(1)、优化多核SoC软件映射的目标;
(11)、确定多核SoC软件映射中的决策变量;
(12)、确定多核SoC软件映射的约束条件;
(13)、确定多核SoC软件映射的目标总函数,目标总函数包括第一目标函数、第二目标函数和第三目标函数,
第一目标函数为:
其中:
VA表示映射map的目标平台节点,fp表示对应处理器总处理时间,fm表示内存的总处理时间,表示处理器的所有执行事件所花费的总时间,表示所有通信事件所花费的总时间,在上述公式中,αa表示节点a的计算周期要求,xap表示节点a是否被映射到p;如果a映射到p,那么xap=1,否则为0;cp表示处理器p的处理能力,单位为能处理多少周期,βb表示通道b的通信时间需求,xbm表示通道b是否被映射到m,如果是那么为1,否则为0,a表示卡恩网络的一个节点,Vk是卡恩网络的所有节点的集合,b是一个通道,Bα是与一个节点a相连的通道集合,Ek是卡恩网络的所有通道的集合,m是一个内存区域,Mp是处理器p能够访问的内存的集合,cm表示内存m的处理能力,
第二目标函数为:
其中:
gm=fmwme,
VA表示映射map的目标平台节点,gp表示处理器p的能耗,gm分别内存m的能耗,其中表示处理器p上执行的时间,wpe表示处理器单位执行时间的能耗,表示处理器上通信的时间,wpc表示处理器单位通信时间的能耗,
第三目标函数为:
其中:
P为映射中map中使用的处理器的集合,M为映射map使用的内存的集合,up表示p的成本,um表示m的成本,yp和ym表示是否使用p或者m,
多核SoC软件映射的目标总函数表示为:
min f=(f(map),g(map),c(map)),
其中,f(map)表示映射方案map达到的计算时间目标,g(map)表示映射方案map的能耗目标,c(map)表示映射方案map达到的成本目标,
(14)建立基于任务和处理器建立二者之间映射开销,对于一个任务集合T={t1,t2,…,tn},以及一个平台的处理单元类型集合P={p1,p2…,pm},存在一个运行时间矩阵P,
其中,pij表示任务tj在pi类处理器上的运行时间,
(15)建立起通信事件与处理器之间对应的开销矩阵,对于一个通信事件集合E={e1,e2,…,en},以及一个平台的处理单元类型集合P={p1,p2…,pm},存在一个运行时间矩阵C,
其中,cij表示通信事件ej在pi类处理器上的运行时间,
(2)多核SoC软件映射的多目标演化步骤如下:
(21)编码:
编码的染色体为各处理器Kahn进程网络中的节点和FIFO通道到平台构件之间映射的编号构成的编码,
(22)初始染色体种群生成:
首先,将内存区域按照一定的粒度划分成内存单元,并分别为每个内存单元编码,然后为每个处理器进行编码,
其次,对于Kahn进程网络上的每个进程节点,随机地从有效处理器编码集合中选择一个,直到每个进程节点都被分配到一个处理器,
最后,启动修复算法,完成FIFO通道到内存单元的映射,
(23)约束违例检查:
首先,考虑Kahn进程所映射的处理器是否来自于有效处理器集合,如果有违背这个约束条件,那么从有效集合中随机选择一个处理器进行映射,对于FIFO通道,主要检查每个FIFO是否位于同一个处理器,如果是那么将其映射到一个处理器上,如果不是同一个处理器上的FIFO,则随机选择一个内存M,将其映射到M上,
(24)适应度计算:
基于NSGAII算法中的方法,首先采用快速非支配排序确定种群中每一个个体的非支配等级,然后通过局部拥挤距离算法对其进行密度估计,确定个体的局部拥挤距离,
(25)选择:
采用二元约束竞赛选择法,在该选择方法中,从当前种群中随机地挑选两个个体,然后将适应值最好的个体选做父个体,重复执行这个过程,直到个体数目达到预定的种群规模,选出的父个体作为下一代种群,
(26)变异:
突变操作采用独立的位变异方法,即每个个体的随机的一位发生改变,改变的值是随机的,将变异后的染色体转换成为一个映射方案,利用步骤(13)中的目标总函数计算出该映射方案下的三个目标值,
(27)杂交,
(28)重复步骤(23)~步骤(27),直到完成预定的演化代数。
作为本发明中一种基于多目标优化的多核SoC软件映射方法的一种优选方案:步骤(11)中确定多核SoC软件映射中的决策变量包括以下步骤:
a、如果Kahn节点a被映射到处理器p上,那么决策变量xap=1,否则为0;
b、如果一个通道b被映射到内存m,那么决策变量xbm=1,否则为0;
c、如果一个通信通道b被映射到一个处理器p,那么决策变量xbp=1,否则为0;
d、如果系统使用了处理器p,那么决策变量yp=1,否则为0;
e、如果系统使用了内存m,那么决策变量ym=1,否则为0。
作为本发明中一种基于多目标优化的多核SoC软件映射方法的一种优选方案:步骤(12)中确定多核SoC软件映射的约束条件为:
每个Kahn节点必须被映射到一个处理器,即对
对于应用模型中的每个通道,必须被映射到一个处理器或者内存,即对于
如果两个相互通信的Kahn节点被映射到同一个处理器,那么这些节点之间的通信通道必须被映射到同一个处理器上,即对于那么
对于内存和处理器的使用,需要满足如下条件:
对于
对于
作为本发明中一种基于多目标优化的多核SoC软件映射方法的一种优选方案:步骤(27)中的杂交包括以下步骤:
a)、对参与杂交的两个父个体随机地选定杂交部分和杂交点,
b)、将第1个父个体杂交部分的内容插入到第2个父个体的杂交点位置之前,生成第1个子个体.杂交是对染色体的Kahn进程组进行操作,即从第1个父个体插入一个Kahn进程组到第2个父个体中,
c)、将第2个父个体的杂交部分插入到第1个父个体的杂交点之前,生成第2个子个体,
将杂交后的染色体转换成为一个映射方案,利用步骤(13)中的目标总函数计算出该映射方案下的三个目标值。
本发明中探索应用程序与多核SoC硬件之间的最佳搭配方案,使得应用程序开发人员不用过多地考虑软件到硬件的映射,将主要的精力集中在应用逻辑的设计和实现上。本发明能够支持应用程序和架构的演化,避免手工映射难以适应应用程序和硬件架构变化带来的重新映射工作量过大问题。
上面对本发明的实施方式做了详细说明。但是本发明并不限于上述实施方式,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
Claims (4)
1.一种基于多目标优化的多核SoC软件映射方法,其特征在于,包括以下步骤:
(1)、优化多核SoC软件映射的目标;
(11)、确定多核SoC软件映射中的决策变量;
(12)、确定多核SoC软件映射的约束条件;
(13)、确定多核SoC软件映射的目标总函数,目标总函数包括第一目标函数、第二目标函数和第三目标函数,
第一目标函数为:
<mrow>
<mi>f</mi>
<mrow>
<mo>(</mo>
<mi>m</mi>
<mi>a</mi>
<mi>p</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mi>m</mi>
<mi>i</mi>
<mi>n</mi>
<mrow>
<mo>(</mo>
<munder>
<mrow>
<mi>m</mi>
<mi>a</mi>
<mi>x</mi>
</mrow>
<mrow>
<mi>p</mi>
<mo>&Element;</mo>
<msub>
<mi>V</mi>
<mi>A</mi>
</msub>
</mrow>
</munder>
<msub>
<mi>f</mi>
<mi>p</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
其中:
<mrow>
<msub>
<mi>f</mi>
<mi>p</mi>
</msub>
<mo>=</mo>
<msubsup>
<mi>f</mi>
<mi>p</mi>
<mi>e</mi>
</msubsup>
<mo>+</mo>
<msubsup>
<mi>f</mi>
<mi>p</mi>
<mi>c</mi>
</msubsup>
<mo>,</mo>
</mrow>
<mrow>
<msubsup>
<mi>f</mi>
<mi>p</mi>
<mi>e</mi>
</msubsup>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<msub>
<mi>c</mi>
<mi>p</mi>
</msub>
</mfrac>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>a</mi>
<mo>&Element;</mo>
<msub>
<mi>V</mi>
<mi>K</mi>
</msub>
</mrow>
</munder>
<msub>
<mi>&alpha;</mi>
<mi>a</mi>
</msub>
<msub>
<mi>x</mi>
<mrow>
<mi>a</mi>
<mi>p</mi>
</mrow>
</msub>
<mo>,</mo>
</mrow>
<mrow>
<msubsup>
<mi>f</mi>
<mi>p</mi>
<mi>c</mi>
</msubsup>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<msub>
<mi>c</mi>
<mi>p</mi>
</msub>
</mfrac>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>a</mi>
<mo>&Element;</mo>
<msub>
<mi>V</mi>
<mi>K</mi>
</msub>
</mrow>
</munder>
<msub>
<mi>x</mi>
<mrow>
<mi>a</mi>
<mi>p</mi>
</mrow>
</msub>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>b</mi>
<mo>&Element;</mo>
<msub>
<mi>B</mi>
<mi>&alpha;</mi>
</msub>
<mo>,</mo>
<mi>m</mi>
<mo>&Element;</mo>
<msub>
<mi>M</mi>
<mi>p</mi>
</msub>
</mrow>
</munder>
<msub>
<mi>&beta;</mi>
<mi>b</mi>
</msub>
<msub>
<mi>x</mi>
<mrow>
<mi>b</mi>
<mi>m</mi>
</mrow>
</msub>
<mo>,</mo>
</mrow>
<mrow>
<msub>
<mi>f</mi>
<mi>m</mi>
</msub>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<msub>
<mi>c</mi>
<mi>m</mi>
</msub>
</mfrac>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>b</mi>
<mo>&Element;</mo>
<msub>
<mi>E</mi>
<mi>K</mi>
</msub>
</mrow>
</munder>
<msub>
<mi>&alpha;</mi>
<mi>b</mi>
</msub>
<msub>
<mi>x</mi>
<mrow>
<mi>b</mi>
<mi>m</mi>
</mrow>
</msub>
<mo>,</mo>
</mrow>
VA表示映射map的目标平台节点,fp表示对应处理器总处理时间,fm表示内存的总处理时间,表示处理器的所有执行事件所花费的总时间,表示所有通信事件所花费的总时间;
a表示卡恩网络的一个节点;
αa表示表示节点a的计算周期要求;
cp表示表示处理器p的处理能力;
cm表示内存m的处理能力;
Vk表示卡恩网络的所有节点的集合;
b表示一个通道;
xap表示表示节点a是否被映射到p,如果a映射到p,那么xap=1,否则为0;
Bα表示与一个节点a相连的通道集合;
Mp表示处理器p能够访问的内存的集合;
βb表示通道b的通信时间需求;
xbm表示通道b是否被映射到m,如果是那么为1,否则为0;
Ek表示卡恩网络的所有通道的集合;
第二目标函数为:
<mrow>
<mi>g</mi>
<mrow>
<mo>(</mo>
<mi>m</mi>
<mi>a</mi>
<mi>p</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mi>m</mi>
<mi>i</mi>
<mi>n</mi>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>p</mi>
<mo>&Element;</mo>
<msub>
<mi>V</mi>
<mi>A</mi>
</msub>
</mrow>
</munder>
<msub>
<mi>g</mi>
<mi>p</mi>
</msub>
<mo>,</mo>
</mrow>
其中:
<mrow>
<msub>
<mi>g</mi>
<mi>p</mi>
</msub>
<mo>=</mo>
<msubsup>
<mi>f</mi>
<mi>p</mi>
<mi>e</mi>
</msubsup>
<msub>
<mi>w</mi>
<mrow>
<mi>p</mi>
<mi>e</mi>
</mrow>
</msub>
<mo>+</mo>
<msubsup>
<mi>f</mi>
<mi>p</mi>
<mi>c</mi>
</msubsup>
<msub>
<mi>w</mi>
<mrow>
<mi>p</mi>
<mi>c</mi>
</mrow>
</msub>
<mo>,</mo>
</mrow>
gm=fmwme,
VA表示映射map的目标平台节点,gp表示处理器p的能耗,gm分别内存m的能耗,其中表示处理器p上执行的时间,wpe表示处理器单位执行时间的能耗,表示处理器上通信的时间,wpc表示处理器单位通信时间的能耗;
第三目标函数为:
其中:
P为映射中map中使用的处理器的集合,M为映射map使用的内存的集合,up表示p的成本,um表示m的成本,yp和ym表示是否使用p或者m;
多核SoC软件映射的目标总函数表示为:
min f=(f(map),g(map),c(map)),
其中,f(map)表示映射方案map达到的计算时间目标,g(map)表示映射方案map的能耗目标,c(map)表示映射方案map达到的成本目标,
(14)建立基于任务和处理器建立二者之间映射开销,对于一个任务集合T={t1,t2,…,tn},以及一个平台的处理单元类型集合P={p1,p2…,pm},存在一个运行时间矩阵P,
<mrow>
<mi>P</mi>
<mo>=</mo>
<mfenced open = "{" close = "}">
<mtable>
<mtr>
<mtd>
<msub>
<mi>p</mi>
<mn>11</mn>
</msub>
</mtd>
<mtd>
<msub>
<mi>p</mi>
<mn>12</mn>
</msub>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<msub>
<mi>p</mi>
<mrow>
<mn>1</mn>
<mi>n</mi>
</mrow>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>p</mi>
<mn>21</mn>
</msub>
</mtd>
<mtd>
<msub>
<mi>p</mi>
<mn>22</mn>
</msub>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<msub>
<mi>p</mi>
<mrow>
<mn>2</mn>
<mi>n</mi>
</mrow>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>p</mi>
<mrow>
<mi>m</mi>
<mn>1</mn>
</mrow>
</msub>
</mtd>
<mtd>
<msub>
<mi>p</mi>
<mrow>
<mi>m</mi>
<mn>2</mn>
</mrow>
</msub>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<msub>
<mi>p</mi>
<mrow>
<mi>m</mi>
<mi>n</mi>
</mrow>
</msub>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
其中,pij表示任务tj在pi类处理器上的运行时间,
(15)建立起通信事件与处理器之间对应的开销矩阵,对于一个通信事件集合E={e1,e2,…,en},以及一个平台的处理单元类型集合P={p1,p2…,pm},存在一个运行时间矩阵C,
<mrow>
<mi>C</mi>
<mo>=</mo>
<mfenced open = "{" close = "}">
<mtable>
<mtr>
<mtd>
<msub>
<mi>c</mi>
<mn>11</mn>
</msub>
</mtd>
<mtd>
<msub>
<mi>c</mi>
<mn>12</mn>
</msub>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<msub>
<mi>c</mi>
<mrow>
<mn>1</mn>
<mi>n</mi>
</mrow>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>c</mi>
<mn>21</mn>
</msub>
</mtd>
<mtd>
<msub>
<mi>c</mi>
<mn>22</mn>
</msub>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<msub>
<mi>c</mi>
<mrow>
<mn>2</mn>
<mi>n</mi>
</mrow>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
<mtd>
<mo>.</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>c</mi>
<mrow>
<mi>m</mi>
<mn>1</mn>
</mrow>
</msub>
</mtd>
<mtd>
<msub>
<mi>c</mi>
<mrow>
<mi>m</mi>
<mn>2</mn>
</mrow>
</msub>
</mtd>
<mtd>
<mn>...</mn>
</mtd>
<mtd>
<msub>
<mi>c</mi>
<mrow>
<mi>m</mi>
<mi>n</mi>
</mrow>
</msub>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
其中,cij表示通信事件ej在pi类处理器上的运行时间,
(2)多核SoC软件映射的多目标演化步骤如下:
(21)编码:
编码的染色体为各处理器Kahn进程网络中的节点和FIFO通道到平台构件之间映射的编号构成的编码,
(22)初始染色体种群生成:
首先,将内存区域按照一定的粒度划分成内存单元,并分别为每个内存单元编码,然后为每个处理器进行编码,
其次,对于Kahn进程网络上的每个进程节点,随机地从有效处理器编码集合中选择一个,直到每个进程节点都被分配到一个处理器,
最后,启动修复算法,完成FIFO通道到内存单元的映射,
(23)约束违例检查:
首先,考虑Kahn进程所映射的处理器是否来自于有效处理器集合,如果有违背这个约束条件,那么从有效集合中随机选择一个处理器进行映射,对于FIFO通道,主要检查每个FIFO是否位于同一个处理器,如果是那么将其映射到一个处理器上,如果不是同一个处理器上的FIFO,则随机选择一个内存M,将其映射到M上,
(24)适应度计算:
基于NSGAII算法中的方法,首先采用快速非支配排序确定种群中每一个个体的非支配等级,然后通过局部拥挤距离算法对其进行密度估计,确定个体的局部拥挤距离,
(25)选择:
采用二元约束竞赛选择法,在该选择方法中,从当前种群中随机地挑选两个个体,然后将适应值最好的个体选做父个体,重复执行这个过程,直到个体数目达到预定的种群规模,选出的父个体作为下一代种群,
(26)变异:
突变操作采用独立的位变异方法,即每个个体的随机的一位发生改变,改变的值是随机的,将变异后的染色体转换成为一个映射方案,利用步骤(13)中的目标总函数计算出该映射方案下的三个目标值,
(27)杂交,
(28)重复步骤(23)~步骤(27),直到完成预定的演化代数。
2.如权利要求1所述的一种基于多目标优化的多核SoC软件映射方法,其特征在于,步骤(11)中确定多核SoC软件映射中的决策变量包括以下步骤:
a、如果Kahn节点a被映射到处理器p上,那么决策变量xap=1,否则为0;
b、如果一个通道b被映射到内存m,那么决策变量xbm=1,否则为0;
c、如果一个通信通道b被映射到一个处理器p,那么决策变量xbp=1,否则为0;
d、如果系统使用了处理器p,那么决策变量yp=1,否则为0;
e、如果系统使用了内存m,那么决策变量ym=1,否则为0。
3.如权利要求1所述的一种基于多目标优化的多核SoC软件映射方法,其特征在于,步骤(12)中确定多核SoC软件映射的约束条件为:
每个Kahn节点必须被映射到一个处理器,即对
对于应用模型中的每个通道,必须被映射到一个处理器或者内存,即对于
如果两个相互通信的Kahn节点被映射到同一个处理器,那么这些节点之间的通信通道必须被映射到同一个处理器上,即对于那么
<mrow>
<msub>
<mi>x</mi>
<mrow>
<msub>
<mi>a</mi>
<mi>I</mi>
</msub>
<msub>
<mi>p</mi>
<mi>k</mi>
</msub>
</mrow>
</msub>
<msub>
<mi>x</mi>
<mrow>
<msub>
<mi>a</mi>
<mi>j</mi>
</msub>
<msub>
<mi>p</mi>
<mi>l</mi>
</msub>
</mrow>
</msub>
<mo>&le;</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>m</mi>
<mo>&Element;</mo>
<msub>
<mi>M</mi>
<mrow>
<mi>p</mi>
<mi>k</mi>
</mrow>
</msub>
<mo>&cap;</mo>
<msub>
<mi>M</mi>
<mrow>
<mi>p</mi>
<mi>l</mi>
</mrow>
</msub>
</mrow>
</munder>
<msub>
<mi>x</mi>
<mrow>
<mi>b</mi>
<mi>m</mi>
</mrow>
</msub>
<mo>;</mo>
</mrow>
对于内存和处理器的使用,需要满足如下条件:
对于
对于
4.如权利要求1所述的一种基于多目标优化的多核SoC软件映射方法,其特征在于,步骤(27)中的杂交包括以下步骤:
a)、对参与杂交的两个父个体随机地选定杂交部分和杂交点,
b)、将第1个父个体杂交部分的内容插入到第2个父个体的杂交点位置之前,生成第1个子个体.杂交是对染色体的Kahn进程组进行操作,即从第1个父个体插入一个Kahn进程组到第2个父个体中,
c)、将第2个父个体的杂交部分插入到第1个父个体的杂交点之前,生成第2个子个体,
将杂交后的染色体转换成为一个映射方案,利用步骤(13)中的目标总函数计算出该映射方案下的三个目标值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510015243.7A CN104536831B (zh) | 2015-01-12 | 2015-01-12 | 一种基于多目标优化的多核SoC软件映射方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510015243.7A CN104536831B (zh) | 2015-01-12 | 2015-01-12 | 一种基于多目标优化的多核SoC软件映射方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104536831A CN104536831A (zh) | 2015-04-22 |
CN104536831B true CN104536831B (zh) | 2017-12-08 |
Family
ID=52852362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510015243.7A Active CN104536831B (zh) | 2015-01-12 | 2015-01-12 | 一种基于多目标优化的多核SoC软件映射方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536831B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776039B (zh) * | 2016-12-30 | 2020-04-03 | Oppo广东移动通信有限公司 | 一种数据处理方法及装置 |
CN107729261B (zh) * | 2017-09-28 | 2020-09-11 | 中国人民解放军国防科技大学 | 一种多核/众核处理器中Cache地址映射方法 |
CN109189205B (zh) * | 2018-09-30 | 2021-11-02 | 武汉理工大学 | 一种异构多核嵌入式实时系统能耗优化调度方法 |
CN109753137B (zh) * | 2018-11-20 | 2021-11-26 | 北京航空航天大学 | 基于nsga2的带截止时间约束的处理器功耗感知调度方法 |
CN110489169B (zh) * | 2019-08-06 | 2021-10-19 | 晶晨半导体(上海)股份有限公司 | 一种片上系统的存储器快速启动方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1598751A2 (en) * | 2004-01-12 | 2005-11-23 | Honda Research Institute Europe GmbH | Estimation of distribution algorithm (EDA) |
EP1818862A1 (en) * | 2006-01-24 | 2007-08-15 | Honda Research Institute Europe GmbH | Combining model-based and genetics-based offspring generation for multi-objective optimization using a convergence criterion |
CN101593132A (zh) * | 2009-06-25 | 2009-12-02 | 北京航空航天大学 | 基于线程构造模块的多核并行模拟退火方法 |
CN103885842A (zh) * | 2014-03-19 | 2014-06-25 | 浙江大学 | 一种带加速节点的片上网络的优化整体的任务映射方法 |
CN104252383A (zh) * | 2014-09-16 | 2014-12-31 | 江苏科技大学 | 基于混沌粒子群算法的可重构计算的软硬件任务划分方法 |
-
2015
- 2015-01-12 CN CN201510015243.7A patent/CN104536831B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1598751A2 (en) * | 2004-01-12 | 2005-11-23 | Honda Research Institute Europe GmbH | Estimation of distribution algorithm (EDA) |
EP1818862A1 (en) * | 2006-01-24 | 2007-08-15 | Honda Research Institute Europe GmbH | Combining model-based and genetics-based offspring generation for multi-objective optimization using a convergence criterion |
CN101593132A (zh) * | 2009-06-25 | 2009-12-02 | 北京航空航天大学 | 基于线程构造模块的多核并行模拟退火方法 |
CN103885842A (zh) * | 2014-03-19 | 2014-06-25 | 浙江大学 | 一种带加速节点的片上网络的优化整体的任务映射方法 |
CN104252383A (zh) * | 2014-09-16 | 2014-12-31 | 江苏科技大学 | 基于混沌粒子群算法的可重构计算的软硬件任务划分方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104536831A (zh) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104536831B (zh) | 一种基于多目标优化的多核SoC软件映射方法 | |
CN101973031B (zh) | 云机器人系统及实现方法 | |
CN106201651A (zh) | 神经形态芯片的模拟器 | |
CN106168797B (zh) | 一种模块化获取核电站故障树顶事项失效概率的方法 | |
CN106529670A (zh) | 一种基于权重压缩的神经网络处理器、设计方法、芯片 | |
CN111860828B (zh) | 一种神经网络的训练方法、存储介质和设备 | |
CN106951926A (zh) | 一种混合架构的深度学习系统方法及装置 | |
CN104200045B (zh) | 一种流域大尺度水系分布式水动力模型的并行计算方法 | |
Muppala et al. | Composite performance and availability analysis using a hierarchy of stochastic reward nets | |
CN107632590B (zh) | 一种基于优先级的底事件排序方法 | |
Zhao et al. | Stochastic programming models for general redundancy-optimization problems | |
CN104537178B (zh) | 一种基于Matlab和Netlogo的电力系统联合仿真建模方法 | |
Qi et al. | Stabilization of random Boolean networks | |
CN112948123B (zh) | 一种基于Spark的网格水文模型分布式计算方法 | |
CN106875320A (zh) | 云环境下船舶航行数据的高效可视分析方法 | |
CN113312177B (zh) | 一种基于联邦学习的无线边缘计算系统、优化方法 | |
CN111831354B (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN103677960A (zh) | 一种能耗约束的虚拟机博弈重放置方法 | |
Zhang et al. | Automatic design of deterministic and non-halting membrane systems by tuning syntactical ingredients | |
CN104267936B (zh) | 基于树语义的异步动态下推网络可达性分析方法 | |
CN106201706A (zh) | 一种粒子群服务选择方法和系统 | |
CN111695701B (zh) | 基于联邦学习实现数据集构建处理的系统及其构建生成方法 | |
CN107273970B (zh) | 支持在线学习的卷积神经网络的可重构平台及其构建方法 | |
CN106647411A (zh) | 信息物理融合系统CPS的Agent构造方法及装置 | |
CN103793745B (zh) | 一种分布式粒子群优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100094 No. 28, Yongfeng Road, Beijing, Haidian District Patentee after: Beijing Shenzhou Aerospace Software Technology Co.,Ltd. Address before: 100094 No. 28, Yongfeng Road, Beijing, Haidian District Patentee before: BEIJING SHENZHOU AEROSPACE SOFTWARE TECHNOLOGY Co.,Ltd. |