CN104079439A - 一种基于离散萤火虫算法的片上网络映射方法 - Google Patents

一种基于离散萤火虫算法的片上网络映射方法 Download PDF

Info

Publication number
CN104079439A
CN104079439A CN201410346056.2A CN201410346056A CN104079439A CN 104079439 A CN104079439 A CN 104079439A CN 201410346056 A CN201410346056 A CN 201410346056A CN 104079439 A CN104079439 A CN 104079439A
Authority
CN
China
Prior art keywords
firefly
individual
communication node
kernel
chip
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
CN201410346056.2A
Other languages
English (en)
Other versions
CN104079439B (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.)
Huangshan Development Investment Group Co.,Ltd.
Original Assignee
Hefei University of Technology
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 Hefei University of Technology filed Critical Hefei University of Technology
Priority to CN201410346056.2A priority Critical patent/CN104079439B/zh
Publication of CN104079439A publication Critical patent/CN104079439A/zh
Application granted granted Critical
Publication of CN104079439B publication Critical patent/CN104079439B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于离散萤火虫算法的片上网络映射方法,其特征包括以下步骤:步骤1.参数定义;步骤2.初始化萤火虫个体集合及参数;步骤3.检查迭代终止条件,若满足迭代终止条件,则执行步骤9,否则执行步骤4;步骤4.获取第G次迭代时的最优萤火虫及全局最优萤火虫;步骤5.判断萤火虫个体的移动条件;步骤6.遍历萤火虫个体集合,并按照步骤5判断所有萤火虫个体的移动条件,遍历完成则执行步骤8;步骤7.更新萤火虫个体;步骤8.更新第G次迭代时的最优萤火虫;步骤9.获得最优映射方案。本发明能缩短优化时间,提高求解精度,获得更优映射结果。

Description

一种基于离散萤火虫算法的片上网络映射方法
技术领域
本发明属于网络通信技术领域,尤其涉及一种基于离散萤火虫算法的片上网络映射方法。
背景技术
随着半导体芯片制造工艺水平的不断发展,半导体晶圆的面积不断增大,集成电路的特征尺寸越来越小,集成电路上的晶体管资源越来越多。单个芯片上集成晶体管数目的增加,使得多个芯片组成的系统朝着单芯片的片上系统(System-on-Chip)方向发展。目前,大多数的SoC上的各个功能部件、处理器核之间的互联都是基于总线结构,但是随着人们对芯片功能需求的提高,SoC集成组件也越来越多,传统的总线结构在可拓展性、可重用通信效率、时钟同步上开始出现劣势,这些都将成为减小系统功耗、减少面积、提高通信速度的瓶颈。因此将计算机的局域网网络结构思想移植到芯片设计上来,采用片上路由解决数据间的交流通信,从而提出了片上网络(Network-on-Chip,NoC)的概念。NoC由资源节点和通讯节点组成。NoC将逐渐成为未来集成电路的发展方向。
IP核是指产品应用于专用集成电路(ASIC)或者可编辑逻辑器件(FPGA)的逻辑块或数据块,将一些在数字电路中常用但比较复杂的功能块设计成可修改参数的模块,让其他用户可以直接调用这些模块。
映射过程是指在已知NoC体系拓扑结构和IP核间通信量的基础上,按某种方法将各IP核分配到NoC的各资源节点上,以实现特定应用与NoC体系结构相互对应的过程,映射结果的优劣则通过比较目标函数而得出的。
用数学方式描述映射过程:
定义1:用应用特征图来表示特定应用:
应用特征图Df(Vf,Ef),为有向非循环加权图,图中顶点Vfi∈Vf,表示执行第i个任务的IP核;有向弧Efi,fj∈Ef,表示顶点Vfi与Vfj之间的通讯关系,其权重vfi,fj表示顶点Vfi与Vfj之间的通讯量,bfi,fj则表示顶点Vfi与Vfj之间的通信带宽要求;
定义2:NoC体系结构的表示方法
给定NoC结构特征图Archf(Rf,Chf)为有向图。图中顶点ri∈Rf,表示NoC中的第i个通讯节点ri;有向弧Chi,j∈Chf表示从通讯节点ri到通讯节点rj的链路;表示通讯节点ri到通讯节点rj的能提供的最大通信带宽。
映射则为一个Df(Vf,Ef)->Archf(R,Ch)函数,将应用特征图Df(Vf,Ef)中的每一个顶点Vfi∈Vf映射到NoC结构特征图Archf(R,Ch)中的每一个通讯节点顶点ri∈R上,即{map(r1),map(r2),...,map(ri),...,map(rT-1)}表示映射方案,并满足如下约束:
1、特征应用图Df(Vf,Ef)中的顶点总数不大于NoC结构特征图Archf(R,Ch)中的通讯节点总数;
2、带宽需求:
3、IP核与通讯节点一一对应。
在NoC系统设计中,片上网络映射问题成为首要的问题,好的映射可以改善整体系统的延迟、功耗等各方面的性能。而映射问题属于非确定多项式(NP)问题,其所搜空间随着网络尺寸的增长呈阶乘递增,因此寻找一种算法能在合理的时间内得到一个最优的结构是设计者面临的一个难题。
现有技术中,发表于2014年2月的IEEE Transactions on very large scale integration systems国际会议第300-312页的“Application Mapping Onto Mesh-Based Network-On-Chip UsingDiscrete Particle Swarm Optimization”论文,提出一种基于离散粒子群算法(DPSO)的映射方法,通过多次迭代该文所提出的基本粒子群算法或通过确定性产生初始样本的一部分,来实现离散粒子群算法。此方法的不足之处在于,对于粒子群算法(PSO),在PSO算法的位置更新公式中并没有加入随机因子,因此容易使优化结果陷入局部最优,无法获取全局最优解;在确定性产生初始样本的一部分过程中,限制了该算法的探索空间,可能会导致无法获得全局最优解。
发明内容
本发明为克服现有技术的不足之处,提出了一种基于离散萤火虫算法的片上网络映射方法,旨在缩短优化时间,提高求解精度,获得更优映射结果。
本发明为达到上述目的所采用的技术方案是:
本发明一种基于离散萤火虫算法的片上网络映射方法,所述片上网络是由资源节点和通讯节点组成,其特点是按如下步骤进行:
步骤1、参数定义:
定义所述片上网络的拓扑结构为R,且R={L,M,N},L表示片上网络的行数,M表示片上网络的列数,N表示片上网络的层数,L>0,M>0,N>0;以所述拓扑结构R的任一顶点为原点o,以所述拓扑结构R的行方向为x轴,列方向为y轴,层方向为z轴,建立笛卡尔直角坐标系o-xyz;
令IP核c表征为所述片上网络的资源节点,则IP核集合为C={c0,c1,…,ca,…,cA-1},A表示IP核总数,A≤L×M×N,ca表示所述片上网络中的第a个IP核,0≤a≤A-1;
定义萤火虫个体集合为X={X1(t1),X2(t2),…,Xk(tk),…,XK(tK)},K表示萤火虫个体总数,1≤k≤K,t表示萤火虫个体的更新次数,t≥0,tk表示第k只萤火虫个体的更新次数,Xk(tk)表示第tk次更新后的第k只萤火虫个体;
定义Pk(tk)为所述第tk次更新后的第k只萤火虫个体Xk(tk)的映射方案,Pk(tk)={map(r0),map(r1),...,map(ri),...,map(rT-1)},r表示所述片上网络中的通讯节点,T为所述片上网络中的通讯节点总数,T=L×M×N,ri表示所述片上网络中的第i个通讯节点,0≤i≤T-1;假设按照所述第k只萤火虫个体Xk(tk)的映射方案Pk(tk)对所述IP核集合C进行映射后,若所述第i个通讯节点ri上未映射有IP核,则定义map(ri)=-1;若所述第i个通讯节点ri上映射有IP核,则定义map(ri)=a,表示映射在第i个通讯节点ri上的IP核为第a个IP核ca
定义所述第k只萤火虫个体Xk(tk)的荧光亮度为Ik(tk);
定义所述第k只萤火虫个体Xk(tk)的映射方案的总通讯量为所述第k只萤火虫个体Xk(tk)的荧光亮度Ik(tk);定义Qk(tk)={R,Pk(tk)}表示所述片上网络的拓扑结构R和所述第k只萤火虫个体Xk(tk)的映射方案Pk(tk)的拼接;则将所述第k只萤火虫个体Xk(tk)表征为Xk(tk)={Qk(tk),Ik(tk)};
定义wk为第k只萤火虫Xk(tk)与其他任意一只萤火虫个体之间计算归一化距离的次数,wk>0;定义为第wk次计算的第k只萤火虫Xk(tk)和其他任一只萤火虫个体Xs(ts)之间的归一化距离,1≤s≤K,且s≠k;
定义光强吸收因子为γ,γ∈[0,1]、迭代次数为G、最大迭代次数为GMax、最大随机步长为α、最大吸引度为β0
步骤2、初始化萤火虫个体集合及参数:
步骤2.1、随机产生映射方案Pk(tk),获得所述片上网络中映射有IP核的通讯节点的坐标;
步骤2.2、利用式(1)获得荧光亮度Ik(tk):
I k ( t k ) = Σ i = 1 L × M × N Σ j = 1 L × M × N v i , j × h i , j - - - ( 1 )
式(1)中,vi,j表示映射有IP核的第i个通讯节点ri与映射有IP核的第j个通讯节点rj之间的通讯量;hi,j表示映射有IP核的第i个通讯节点ri与映射有IP核的第j个通讯节点rj之间的跳数,令映射有IP核的第i个通讯节点ri的坐标为(ix,iy,iz),映射有IP核的第j个通讯节点rj的坐标为(jx,jy,jz),则hi,j=|ix-jx|+|iy-jy|+|iz-jz|;
步骤2.3、按照步骤2.1和步骤2.2,初始化萤火虫个体集合中的每一个萤火虫个体;
步骤2.4、初始化迭代次数G=0,输入光强吸收因子γ,γ∈[0,1]、最大迭代次数GMax=gmax、最大随机步长α=step,最大吸引度β0=1,更新次数tk=0,计算归一化距离的次数wk=1;
步骤3、令迭代终止条件为G≥GMax,若满足所述迭代终止条件,则执行步骤9,否则执行步骤4;
步骤4、获取第G次迭代时的最优萤火虫Xmin(G)及全局最优萤火虫Xgmin(G):
遍历所述萤火虫个体集合并比较任意两只萤火虫个体的荧光亮度,寻找荧光亮度最小的萤火虫个体记为第G次迭代时的最优萤火虫Xmin(G);当G=0时,全局最优萤火虫Xgmin(G)=Xmin(G),当G≠0时,若Xgmin(G)>Xmin(G),则更新全局最优萤火虫Xgmin(G)=Xmin(G),否则全局最优萤火虫Xgmin(G)保持不变;
步骤5、判断第k只萤火虫个体Xk(tk)的移动条件:
步骤5.1、令s=1,则第t1次更新后的第1只萤火虫个体表示为X1(t1);
步骤5.2、判断s=K是否成立,若成立则执行步骤6,否则执行步骤5.3;
步骤5.3、将wk+1赋值给wk,利用式(2)获得所述第k只萤火虫个体Xk(tk)到第s只萤火虫个体Xs(ts)之间的归一化距离
d uni k , s ( w k ) = d k , s - d min k , s d max k , s - d min k , s - - - ( 2 )
式(2)中,dk,s表示第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数,表示第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数的理论最大值,表示第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数的理论最小值;
步骤5.4、根据式(3)所示的移动条件,判断第k只萤火虫个体Xk(tk)是否向第s只萤火虫个体Xs(ts)移动,若满足所述移动条件,则执行步骤7,否则,将s+1赋值给s,并执行步骤5.2;
1 I k ( t k ) < 1 I s ( t s ) &times; exp ( - &gamma;d uni k , s ( w k ) ) - - - ( 3 )
式(3)中,表示由于第k只萤火虫个体Xk(tk)和第s只萤火虫个体Xs(ts)之间的距离使第s只萤火虫个体Xs(ts)的荧光亮度倒数的衰减;
步骤6、遍历所述萤火虫个体集合,并按照步骤5判断所有萤火虫个体的移动条件,遍历完成则执行步骤8;
步骤7、更新萤火虫个体Xk(tk)
步骤7.1、利用式(4)获得所述第tk次更新后的第k只萤火虫个体Xk(tk)与第s只萤火虫个体Xs(ts)之间的吸引度βk,s(tk):
&beta; k , s ( t k ) = &beta; 0 1 + &gamma; ( d uni k , s ( w k ) ) 2 - - - ( 4 )
步骤7.2、根据第k只萤火虫个体Xk(tk)与第s只萤火虫个体Xs(ts)之间的吸引度βk,s(tk)按照β移动步骤规则发生移动,并将移动后的萤火虫个体Xk(tk)记为Xk(tk)';
步骤7.3、所述移动后的萤火虫个体Xk(tk)'根据所述最大随机步长α按照第一α移动步骤规则再次发生移动,并将更新次数tk+1赋值给tk,从而获得第tk次更新后的第k只萤火虫个体Xk(tk)中的映射方案Pk(tk);
步骤7.4、根据更新后的第k只萤火虫个体Xk(tk)中的Qk(tk)={R,Pk(tk)},利用式(1)获得更新后的第k只萤火虫个体Xk(tk)中的荧光亮度Ik(tk);
步骤7.5、根据所述片上网络的拓扑结构R、所述更新后的第k只萤火虫个体Xk(tk)的映射方案Pk(tk)以及荧光亮度Ik(tk),获得更新后的第k只萤火虫个体Xk(tk),并将s+1赋值给s后,执行步骤5.2;
步骤8、更新第G次迭代时的最优萤火虫Xmin(G):
步骤8.1、第G次迭代的最优萤火虫Xmin(G)按照第二α移动步骤规则发生移动,从而获得更新后的第G次迭代最优萤火虫Xmin(G)'中的映射方案Pmin(G)';
步骤8.2、根据更新后的第G次迭代时的最优萤火虫Xmin(G)'中的片上网络的拓扑结构R和映射方案Pmin(G)',利用式(1)获得第G次迭代时的最优萤火虫Xmin(G)'中的荧光亮度Imin(G)';
步骤8.3、将G+1赋值给G,并执行步骤3;
步骤9、获得最优映射方案:
所述全局最优萤火虫Xgmin(G)的映射方案Pgmin(G)为所述最优映射方案。
本发明基于离散萤火虫的片上网络映射方法的特点也在于,
在所述步骤5.3中,所述第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数dk,s是按如下步骤获得:
步骤a':根据第k只萤火虫个体Xk(tk)的映射方案Pk(tk)将IP核映射到片上网络的各通讯节点上,获得映射之后的原片上网络NoCk,根据第s只萤火虫个体Xs(ts)的映射方案Ps(ts)将IP核映射到片上网络的各通讯节点上,获得映射之后的目标片上网络NoCs;令ri k表示所述原片上网络NoCk的第i个通讯节点,ri s表示所述目标片上网络NoCs的第i个通讯节点,令i=1,则r1 k表示所述原片上网络NoCk的第1个通讯节点,r1 s表示所述目标片上网络NoCs的第1个通讯节点;
步骤b':判断i=K是否成立,若成立,则执行步骤f',否则执行步骤c';
步骤c':判断原片上网络NoCk的第i个通讯节点ri k上映射的IP核和目标片上网络NoCs的第i个通讯节点ri s上映射的IP核是否相等,若相等执行步骤d'、否则执行步骤e';
步骤d':令表示所述原片上网络NoCk的第i个通讯节点ri k与所述目标片上网络NoCs的第i个通讯节点ri s之间的跳数,令并将i+1赋值给i,执行步骤b';
步骤e':遍历所述目标片上网络NoCs的所有通讯节点映射的IP核,直至找到与所述原片上网络NoCk的通讯节点ri k上映射的IP核相同的第j个通讯节点上的IP核,并记录所述第j个通讯节点根据式(5)计算所述原片上网络NoCk上通讯节点ri k与所述目标片上网络NoCs的通讯节点之间的跳数;并执行步骤c';
h i , j k , s = | i x k - j x s | + | i y k - j y s | + | i z k - j z s | - - - ( 5 )
式(5)中,表示原片上网络NoCk的第i个通讯节点ri k的坐标,表示目标片上网络NoCs的第j个通讯节点的坐标;
步骤f':令从而获得所述第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数dk,s
在步骤7.2中,所述β移动步骤规则是按如下步骤进行:
步骤a″、令指针pos指向所述片上网络的第一个通讯节点;
步骤b″、判断pos=K是否成立,若成立,则完成所述β移动步骤,否则执行步骤c″;
步骤c″、判断第k只萤火虫个体Xk(tk)的映射方案Pk(tk)和第s只萤火虫个体Xs(ts)的映射方案Ps(ts)在指针pos所指的通讯节点上的IP核是否相同,若相同,则执行步骤d″;否则,执行步骤e″;
步骤d″、令指针pos指向下一个通讯节点,执行步骤b″;
步骤e″、将第s只萤火虫个体Xs(ts)的映射方案Ps(ts)在指针pos位置上的IP核记为Value[pos],在第k只萤火虫个体Xk(tk)的映射方案Pk(tk)中从第一个通讯节点上的IP核开始搜索,找到与Value[pos]相同IP核的通讯节点,并令指针pos1指向所找到的相同IP核的通讯节点;以吸引度βk,s(tk)为概率将第k只萤火虫个体Xk(tk)的映射方案Pk(tk)中指针pos和指针pos1所指向的通讯节点上的IP核进行交换后,执行步骤d″。
在所述步骤7.3中,所述第一α移动步骤规则是按如下步骤进行:
步骤a″′、令指针pos2指向所述片上网络的第一个通讯节点;
步骤b″′、判断指针pos2=K是否成立,若成立,则执行步骤f″′,否则执行步骤c″′;
步骤c″′、判断第k只萤火虫个体Xk(tk)的映射方案Pk(tk)和第s只萤火虫个体Xs(ts)的映射方案Ps(ts)在指针pos2所指的通讯节点上的IP核序号是否相同,若相同,则执行步骤d″′;否则,执行步骤e″′;
步骤d″′、令指针pos2指向下一个通讯节点,执行步骤b″′;
步骤e″′、将指针pos2所指的通讯节点放入通讯节点集合φ中,并执行步骤b″′;
步骤f″′、在所述通讯节点集合φ中随机选择最大随机步长α个通讯节点,并随机产生交换概率p,以交换概率p将所述α个通讯节点中任意两个通讯节点在第k只萤火虫个体Xk(tk)中的映射方案Pk(tk)上的IP核都进行交换。
在所述步骤8.1中,所述第二α移动步骤规则是按如下步骤进行:
在第G次迭代的最优萤火虫Xmin(G)的映射方案Pmin(G)中随机选最大随机步长α个IP核,并随机产生交换概率q,以交换概率q将所述α个IP核中任意两个IP核都进行交换。
与现有技术相比,本发明的有益技术效果体现在:
1、本发明通过将萤火虫个体定义为包含片上网络的网络拓扑结构、映射方案和映射方案的总通讯量的集合,将萤火虫个体之间的距离定义为归一化后的两个映射方案相差的跳数,将萤火虫个体移动方法定义为IP核间的交换,不仅解决了将萤火虫算法应用在片上网络的映射问题,而且更好的体现了片上网络体系结构中资源节点之间的物理意义,从而发挥了萤火虫算法所具有的求解速度快,求解精度高等特点。
2、本发明通过萤火虫个体自身亮度来吸引亮度较弱的萤火虫个体向自身移动,最亮的萤火虫个体随机移动,在移动过程中萤火虫个体的荧光亮度也会更新,在萤火虫移动条件上采用与衰减后的荧光亮度作比较,克服了粒子群算法中移动目标明确而导致的收敛速度过快的缺点。
3、本发明通过在移动公式中添加了随机因子克服了粒子群算法陷入局部最优的缺点。
4、本发明通过将距离定义为归一化后的两个映射方案相差的跳数,限制了荧光亮度衰减幅度,保证了每次萤火虫个体移动只能向一定范围以内的萤火虫个体进行移动,从而控制收敛速度。
5、本发明在萤火虫移动方法中的β移动步骤中采用了后一次交换条件判断是在前一次交换IP核位置的基础上进行判断的方法,克服了现在PSO算法中一次判断所有所元素是否发生交换再执行的缺点,使IP核的每次交换都更贴近于目标映射方案。
6、本发明通过在萤火虫的移动方法上加入随机步骤α移动步骤,克服了现有技术中粒子群算法陷入局部最优的缺点,扩大探索解空间,可以寻求更优解。
附图说明
图1为本发明VOPD应用特征图;
图2为本发明实施例中第1只萤火虫个体X1(t1)的映射图;
图3为本发明实施例中第1只萤火虫个体X1(t1)向第2只萤火虫个体X2(t2)移动的β步骤示意图;
图4为本发明实施例中第1只萤火虫个体X1(t1)向第2只萤火虫个体X2(t2)移动的第一α步骤示意图;
图5为本发明实施例中最优映射方案Pgmin(G)示意图;
图6为本发明与PSO算法每代最优结果对比图;
图7为本发明中每代最优与全局最优结果对比图;
图8为本发明与PSO算法全局最优结果对比图;
图9为本发明与DPSO算法全局最优结果对比图;
图10为本发明基本流程图。
具体实施方式
片上网络是由资源节点和通讯节点组成,本实施例中,如图10所示,一种基于离散萤火虫算法的片上网络映射方法是按如下步骤进行:
步骤1、参数定义:
定义片上网络的拓扑结构为R,且R={L,M,N},L表示片上网络的行数,M表示片上网络的列数,N表示片上网络的层数,L>0,M>0,N>0,例如一个三维4行4列3层片上网络拓扑结构R={4,4,3};以拓扑结构R的任一顶点为原点o,以拓扑结构R的行方向的行方向为x轴,以拓扑结构R的列方向为y轴,以以拓扑结构R的层方向为z轴,建立笛卡尔直角坐标系o-xyz;
令IP核c表征为片上网络的资源节点,则IP核集合为C={c0,c1,…,ca,…,cA-1},A表示IP核总数,A≤L×M×N,ca表示片上网络中的第a个IP核,0≤a≤A-1;
定义萤火虫个体集合为X={X1(t1),X2(t2),…,Xk(tk),…,XK(tK)},K表示萤火虫个体总数,1≤k≤K,t表示萤火虫个体的更新次数,t≥0,tk表示第k只萤火虫个体的更新次数,Xk(tk)表示第tk次更新后的第k只萤火虫个体;
定义Pk(tk)为第tk次更新后的第k只萤火虫个体Xk(tk)的映射方案,Pk(tk)={map(r0),map(r1),...,map(ri),...,map(rT-1)},r表示片上网络中的通讯节点,T为片上网络中的通讯节点总数,T=L×M×N,ri表示片上网络中的第i个通讯节点,0≤i≤T-1;假设按照第k只萤火虫个体Xk(tk)的映射方案Pk(tk)对IP核集合C进行映射后,若第i个通讯节点ri上未映射有IP核,则定义map(ri)=-1;若第i个通讯节点ri上映射有IP核,则定义map(ri)=a,表示映射在通讯节点ri上的IP核为第a个IP核ca,例如图2所示的映射方案表示为P={7,5,13,10,9,0,2,14,1,3,4,8,12,15,11,6};
定义第k只萤火虫个体Xk(tk)的荧光亮度为Ik(tk);
定义第k只萤火虫个体Xk(tk)的映射方案的总通讯量为第k只萤火虫个体Xk(tk)的荧光亮度Ik(tk);定义Qk(tk)={R,Pk(tk)}表示片上网络的拓扑结构R和第k只萤火虫个体Xk(tk)的映射方案Pk(tk)的拼接;则将第k只萤火虫个体Xk(tk)表征为Xk(tk)={Qk(tk),Ik(tk)};
定义wk为第k只萤火虫Xk(tk)与其他任意一只萤火虫个体之间计算归一化距离的次数,wk>0;定义为第wk次计算的第k只萤火虫Xk(tk)和其他任一只萤火虫个体Xs(ts)之间的归一化距离,1≤s≤K,且s≠k;
定义光强吸收因子为γ,γ∈[0,1]、迭代次数为G、最大迭代次数为GMax、最大随机步长为α、最大吸引度为β0
步骤2、初始化萤火虫个体集合及参数:
步骤2.1、随机产生映射方案Pk(tk),获得片上网络中映射有IP核的通讯节点的坐标;
步骤2.2、利用式(1)获得荧光亮度Ik(tk):
I k ( t k ) = &Sigma; i = 1 L &times; M &times; N &Sigma; j = 1 L &times; M &times; N v i , j &times; h i , j - - - ( 1 )
式(1)中,vi,j表示映射有IP核的第i个通讯节点ri与映射有IP核的第j个通讯节点rj之间的通讯量;hi,j表示映射有IP核的第i个通讯节点ri与映射有IP核的第j个通讯节点rj之间的跳数,令映射有IP核的第i个通讯节点ri的坐标为(ix,iy,iz),映射有IP核的第j个通讯节点rj的坐标为(jx,jy,jz),则hi,j=|ix-jx|+|iy-jy|+|iz-jz|;如图1所示应用特征图第0号IP核到1号IP核之间的通讯量为70,如图2所示映射图映射之后0号IP核到1号IP核之间的条数为2跳,因此0号IP核到1号IP核的通讯量为70×2=140,同理可以计算出图1中任意两个IP核间的通讯量,则图1中任务映射后通讯量之和为11785;
步骤2.3、按照步骤2.1和步骤2.2,初始化萤火虫个体集合中的每一个萤火虫个体;
一个初始化的萤火虫个体集合如表1所示;
表1 初始化萤火虫个体集合
萤火虫个体Xk(tk) {R,Pk(tk)} Ik(tk)
1 { 4 4 1 7 5 13 10 9 0 2 14 1 3 4 8 12 15 11 6} 11785
2 { 4 4 1 4 8 2 1 10 11 9 7 15 5 12 14 3 6 0 13} 8992
3 { 4 4 1 14 1 11 12 10 8 6 4 9 2 3 5 7 15 13 0} 7750
4 {4 4 1 1 9 10 8 7 13 14 12 0 5 2 15 11 6 4 3} 8428
5 {4 4 1 11 15 5 14 9 6 8 13 0 4 3 7 12 1 10 2} 9405
6 { 4 4 1 3 11 8 14 0 6 7 2 4 12 15 5 13 10 9 1} 9110
7 { 4 4 1 12 9 0 15 4 2 14 6 7 10 8 1 3 11 5 13} 11724
8 { 4 4 1 6 11 2 8 7 1 14 0 9 15 5 12 10 13 3 4} 9479
9 { 4 4 1 11 9 15 7 5 6 14 1 10 4 3 8 13 12 2 0} 7843
10 { 4 4 1 1 12 8 15 3 0 5 4 2 7 9 11 14 13 10 6} 7831
11 { 4 4 1 13 1 7 10 8 4 0 3 2 9 5 11 15 12 14 6} 10529
12 { 4 4 1 10 8 7 3 2 9 13 14 4 6 1 0 11 12 5 15} 9809
13 { 4 4 1 10 8 14 2 9 15 0 13 1 4 3 6 12 5 11 7} 11293
14 { 4 4 1 9 13 11 10 15 3 8 0 6 4 12 1 2 14 7 5} 11494
15 { 4 4 1 15 3 1 12 5 6 8 11 2 9 0 10 4 7 13 14} 8928
16 { 4 4 1 11 14 3 10 15 8 7 0 13 5 6 9 4 1 2 12} 8604
17 { 4 4 1 11 12 5 14 2 6 9 3 0 10 8 15 1 4 13 7} 10241
18 { 4 4 1 10 5 9 4 15 14 13 12 3 1 7 0 2 11 6 8} 9270
19 { 4 4 1 9 14 6 15 2 12 4 1 7 10 8 11 13 3 5 0} 10603
20 { 4 4 1 6 13 14 7 15 8 0 12 4 2 3 10 5 1 9 11} 8987
21 { 4 4 1 12 14 2 8 11 1 5 0 6 4 10 15 13 3 7 9} 9248
22 { 4 4 1 7 14 11 5 0 1 12 8 13 3 10 2 6 4 15 9} 12915
23 {4 4 1 10 2 12 15 0 7 11 4 5 9 3 8 14 1 6 13} 9820
24 { 4 4 1 12 8 9 10 3 7 4 13 2 15 11 6 0 1 5 14} 7036
25 { 4 4 1 15 3 6 14 11 13 1 8 5 12 0 10 2 9 7 4} 12239
26 { 4 4 1 10 6 1 3 0 2 9 13 4 5 14 15 11 7 8 12} 9169
27 { 4 4 1 15 14 1 4 9 11 10 13 8 7 6 5 0 12 2 3} 7182
28 { 4 4 1 8 2 7 3 4 1 5 0 15 9 10 14 11 12 13 6} 9631
29 { 4 4 1 2 10 14 11 6 3 9 13 12 4 1 0 8 7 5 15} 10296
30 { 4 4 1 6 14 11 7 4 1 5 10 15 8 0 9 13 2 12 3} 9978
步骤2.4、初始化迭代次数G=0,输入光强吸收因子γ,γ∈[0,1]、最大迭代次数GMax=gmax、最大随机步长α=step,最大吸引度β0=1,更新次数tk=0,计算归一化距离的次数wk=1;
步骤3、令迭代终止条件为G≥GMax,若满足迭代终止条件,则执行步骤9,否则执行步骤4;
步骤4、获取第G次迭代时的最优萤火虫Xmin(G)及全局最优萤火虫Xgmin(G):
遍历萤火虫个体集合并比较任意两只萤火虫个体的荧光亮度,寻找荧光亮度最小的萤火虫个体记为第G次迭代时的最优萤火虫Xmin(G);当G=0时,全局最优萤火虫Xgmin(G)=Xmin(G),当G≠0时,若Xgmin(G)>Xmin(G),则更新全局最优萤火虫Xgmin(G)=Xmin(G),否则全局最优萤火虫Xgmin(G)保持不变;例如遍历表1中所有的萤火虫个体,比较萤火虫个体的荧光亮度,找出荧光亮度最小的萤火虫个体为第24号萤火虫,则此次迭代最优萤火虫个体Xmin(G)=X24(t24);
步骤5、判断第k只萤火虫个体Xk(tk)的移动条件:
步骤5.1、令s=1,则第t1次更新后的第1只萤火虫个体表示为X1(t1);
步骤5.2、判断s=K是否成立,若成立则执行步骤6,否则执行步骤5.3;
步骤5.3、将wk+1赋值给wk,利用式(2)获得第k只萤火虫个体Xk(tk)到第s只萤火虫个体Xs(ts)之间的归一化距离
d uni k , s ( w k ) = d k , s - d min k , s d max k , s - d min k , s - - - ( 2 )
式(2)中,dk,s表示第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数,表示第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数的理论最大值,表示第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数的理论最小值;
其中,第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数dk,s是按如下步骤获得:
步骤a':根据第k只萤火虫个体Xk(tk)的映射方案Pk(tk)将如图1所示的应用特征图上的IP核映射到片上网络的各通讯节点上,获得映射之后的原片上网络NoCk,根据第s只萤火虫个体Xs(ts)的映射方案Ps(ts)将特征应用图上的IP核映射到片上网络的各通讯节点上,获得映射之后的目标片上网络NoCs;例如表1中第1只萤火虫个体X1(t1)的映射NoC1和第2只萤火虫个体X2(t2)的映射NoC2分别用阵列A、B表示,如下:
A 4 &times; 4 = 7 5 13 10 9 0 2 14 1 3 4 8 12 15 11 6 , B 4 &times; 4 = 4 8 2 1 10 11 9 7 15 5 12 14 3 6 0 13
令ri k表示原片上网络NoCk的第i个通讯节点,ri s表示目标片上网络NoCs的第i个通讯节点,令i=1,则r1 k表示原片上网络NoCk的第1个通讯节点,r1 s表示目标片上网络NoCs的第1个通讯节点;
步骤b'判断i=K是否成立,若成立,则执行步骤f',否则执行步骤c';
步骤c':判断原片上网络NoCk的第i个通讯节点ri k上映射的IP核和目标片上网络NoCs的第i个通讯节点ri s上映射的IP核是否相等,若相等执行步骤d'、否则执行步骤e';
步骤d':令表示原片上网络NoCk的第i个通讯节点ri k与目标片上网络NoCs的第i个通讯节点ri s之间的跳数,令并将i+1赋值给i,执行步骤b';
步骤e':遍历目标片上网络NoCs的所有通讯节点映射的IP核,直至找到与原片上网络NoCk的通讯节点ri k上映射的IP核相同的第j个通讯节点上的IP核,并记录第j个通讯节点根据式(5)计算原片上网络NoCk上通讯节点ri k与目标片上网络NoCs的通讯节点之间的跳数;并执行步骤c':
h i , j k , s = | i x k - j x s | + | i y k - j y s | + | i z k - j z s | - - - ( 5 )
式(5)中,表示原片上网络NoCk的第i个通讯节点ri k的坐标,表示目标片上网络NoCs的第j个通讯节点的坐标;例如图1中IP核7在表1的第1只萤火虫个体X1(t1)映射阵列A中坐标为(0,0),在表1中的第2只萤火虫个体X2(t2)映射阵列B中坐标为(1,3),则IP核7在阵列A和阵列B之间的跳数为||0-1|+|0-3||=4;同理可求出其他IP核在阵列A中和阵列B中相差的跳如表2;
表2 阵列A和阵列B中相同IP核的之间的跳数
步骤f':令从而获得的第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数dk,s;例如表1中第1只萤火虫个体X1(t1)与表1中第2只萤火虫个体X2(t2)之间相差跳数为表2中各IP核相差跳数之和46;
而第tk次更新后的第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数的理论最大值理论最小值求解方法如下:
理论最小值
理论最大值求解方法:
将片上网络拓扑结构进行近似平均分区,理论最大值为将每个区的各个元素映射到距离该区最远的角元素上时两者的曼哈顿距离之和;分区方法根据L、M、N的值分为如下情形:
情形①:当N=1时,若L、M为偶数,则按先x轴正向后y轴正向顺序将拓扑结构平均分为共4个区,此时 d max k , s = 4 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M 2 M - 1 ( i + j ) ) ;
情形②:当N=1时,若L为奇数M为偶数,则按先x轴正向后y轴正向顺序将拓扑结构分为共4个区,此时 d max k , s = 2 &times; ( &Sigma; i = L - 1 2 L - 1 &Sigma; j = M 2 M - 1 ( i + j ) ) + 2 &times; ( &Sigma; i = L + 1 2 L - 1 &Sigma; j = M 2 M - 1 ( i + j ) ) , 同理,若L为偶数M为奇数,则 d max k , s = 2 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M - 1 2 M - 1 ( i + j ) ) + 2 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M + 1 2 M - 1 ( i + j ) ) ;
情形③:当N=1时,若L、M为奇数,则按先x轴正向后y轴正向顺序将拓扑结构分为及中心元素共5个区,此时
d max k , s = 2 &times; ( &Sigma; i = L - 1 2 L - 1 &Sigma; j = M + 1 2 M - 1 ( i + j ) ) + 2 &times; ( &Sigma; i = L + 1 2 L - 1 &Sigma; j = M - 1 2 M - 1 ( i + j ) ) + L - 1 2 + M - 1 2 ;
情形④:当N为偶数时,若L、M为偶数,则按先x轴正向后y轴正向最后z轴正向顺序将拓扑结构平均分为共8个区,此时
情形⑤:当N为偶数时,若L为奇数M为偶数,则按先x轴正向后y轴正向最后z轴正向顺序将拓扑结构分为 共8个区,此时 d max k , s = 4 &times; ( &Sigma; i = L - 1 2 L - 1 &Sigma; j = M 2 M - 1 &Sigma; k = N 2 N - 1 ( i + j + k ) ) + 4 &times; ( &Sigma; i = L + 1 2 L - 1 &Sigma; j = M 2 M - 1 &Sigma; k = N 2 N - 1 ( i + j + k ) ) , 同理,若L为偶数M为奇数,则 d max k , s = 4 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M - 1 2 M - 1 &Sigma; k = N 2 N - 1 ( i + j + k ) ) + 4 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M + 1 2 M - 1 &Sigma; k = N 2 N - 1 ( i + j + k ) ) ;
情形⑥:当N为偶数时,若L、M为奇数,则按先x轴正向后y轴正向最后z轴正向顺序将拓扑结构分为 及中心轴区共9个区,再将中心轴区按z轴正向顺序分为共2个区,此时 d max k , s = 4 &times; ( &Sigma; i = L - 1 2 L - 1 &Sigma; j = M + 1 2 M - 1 &Sigma; k = N 2 N - 1 ( i + j + k ) ) + 4 &times; ( &Sigma; i = L + 1 2 L - 1 &Sigma; j = M - 1 2 M - 1 &Sigma; k = N 2 N - 1 ( i + j + k ) ) + 2 &times; ( &Sigma; k = N 2 N - 1 ( L - 1 2 + M - 1 2 + k ) ) ;
情形⑦:当N为奇数且N≠1时,若L、M为偶数,则按先x轴正向后y轴正向最后z轴正向顺序将拓扑结构分为 共8个区,此时 d max k , s = 4 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M 2 M - 1 &Sigma; k = N - 1 2 N - 1 ( i + j + k ) ) + 4 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M 2 M - 1 &Sigma; k = N + 1 2 N - 1 ( i + j + k ) ) ;
情形⑧:当N为奇数且N≠1时,若L为奇数M为偶数,则按先x轴正向后y轴正向最后z轴正向顺序将拓扑结构分为 共8个区,此时 d max k , s = 2 &times; ( &Sigma; i = L - 1 2 L - 1 &Sigma; j = M 2 M - 1 &Sigma; k = N - 1 2 N - 1 ( i + j + k ) ) + 2 &times; ( &Sigma; i = L + 1 2 L - 1 &Sigma; j = M 2 M - 1 &Sigma; k = N + 1 2 N - 1 ( i + j + k ) ) + 2 &times; ( &Sigma; k = L - 1 2 L - 1 &Sigma; j = M 2 M - 1 &Sigma; k = N + 1 2 N - 1 ( i + j + k ) ) 同理,若L为偶数M为奇数,则 d max k , s = 2 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M - 1 2 M - 1 &Sigma; k = N - 1 2 N - 1 ( i + j + k ) ) + 2 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M + 1 2 M - 1 &Sigma; k = N + 1 2 N - 1 ( i + j + k ) ) + 2 &times; ( &Sigma; k = L 2 L - 1 &Sigma; j = M - 1 2 M - 1 &Sigma; k = N + 1 2 N - 1 ( i + j + k ) ) + 2 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M + 1 2 M - 1 &Sigma; k = N - 1 2 N - 1 ( i + j + k ) ) ;
情形⑨:当N为奇数且N≠1时,若L、M为奇数,则按先x轴正向后y轴正向最后z轴正向顺序将拓扑结构分为 及中心轴区共9个区,再将中心轴区按z轴正向顺序分为 共2个区,此时 d max k , s = 2 &times; ( &Sigma; i = L - 1 2 L - 1 &Sigma; j = M + 1 2 M - 1 &Sigma; k = N - 1 2 N - 1 ( i + j + k ) ) + 2 &times; ( &Sigma; i = L + 1 2 L - 1 &Sigma; j = M - 1 2 M - 1 &Sigma; k = N + 1 2 N - 1 ( i + j + k ) ) + 2 &times; ( &Sigma; i = L - 1 2 L - 1 &Sigma; j = M + 1 2 M - 1 &Sigma; k = N + 1 2 N - 1 ( i + j + k ) ) + 2 &times; ( &Sigma; i = L + 1 2 L - 1 &Sigma; j = M - 1 2 M - 1 &Sigma; k = N - 1 2 N - 1 ( i + j + k ) ) + &Sigma; k = N + 1 2 N - 1 ( L - 1 2 + M - 1 2 + k ) + &Sigma; k = N - 1 2 N - 1 ( L - 1 2 + M - 1 2 + k ) ;
例如表1第1只萤火虫个体X1(t1)的拓扑结构R={4,4,1},映射方案P1(t1)用阵列A表示:
A 4 &times; 4 = 7 5 13 10 9 0 2 14 1 3 4 8 12 15 11 6
由于N=1,L、M为偶数,则将第1只萤火虫个体X1(t1)的阵列A平均分为4个区,假设存在第j只萤火虫个体Xj(tj),将第1只萤火虫个体X1(t1)的阵列A每个区各个元素映射到距离该区最远的角元素上,形成第j只萤火虫个体Xj(tj),则第j只萤火虫个体Xj(tj)的映射方案Pj(tj)用阵列J表示为:
J 4 &times; 4 = 4 / 8 / 11 / 6 0 0 1 / 3 / 12 / 15 0 0 0 0 0 0 0 0 13 / 10 / 2 / 14 0 0 7 / 5 / 9 / 0
此时第1只萤火虫个体X1(t1)与第j只萤火虫个体Xj(tj)之间的曼哈顿距离为理论最大值
d max 1,2 = d max 1 , j = 4 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M 2 M - 1 ( i + j ) ) = 4 &times; ( &Sigma; i = 2 i = 3 &Sigma; j = 2 j = 3 ( i + j ) ) = 80
因此表1中第1只萤火虫个体X1(t1)与表1中第2只萤火虫个体X2(t2)之间的归一化距离为:
d uni 1,2 ( w 1 ) = d 1,2 - d mim 1,2 d max 1,2 - d min 1,2 = 46 - 0 80 - 0 =0.575
步骤5.4、根据式(3)所示的移动条件,判断第k只萤火虫个体Xk(tk)是否向第s只萤火虫个体Xs(ts)移动,若满足移动条件,则执行步骤7,否则,将s+1赋值给s,并执行步骤5.2;
1 I k ( t k ) < 1 I s ( t s ) &times; exp ( - &gamma;d uni k , s ( w k ) ) - - - ( 3 )
式(3)中,Is(ts)表示萤火虫个体Xs(ts)的荧光亮度;表示由于萤火虫个体Xk(tk)和萤火虫个体Xs(ts)之间的距离使萤火虫个体Xs(ts)的荧光亮度倒数的衰减,即为在萤火虫个体Xk(tk)处观察到萤火虫个体Xs(ts)的荧光亮度倒数;例如表1中第1只萤火虫个体X1(t1)的总通讯量I1(t1)=11785,表1中第2只萤火虫个体X2(t2)的总通讯量I2(t2)=8992,由于:
1 I 1 ( t 1 ) = 8.4854 e - 5
1 I 2 ( t 2 ) &times; exp ( - &gamma;d uni 1,2 ( w 1 ) ) = 1.1121 e - 4 &times; exp ( - 0.28 &times; 0.572 ) = 9.4672 e - 5
1 I 1 ( t 1 ) < 1 I 2 ( t 2 ) &times; exp ( - &gamma;d uni 1,2 ( w 1 ) )
则第1只萤火虫个体X1(t1)向第2只萤火虫个体X2(t2)移动;
步骤6、遍历萤火虫个体集合,并按照步骤5判断所有萤火虫个体的移动条件,遍历完成则执行步骤8;
步骤7、更新萤火虫个体Xk(tk)
步骤7.1、利用式(4)获得第tk次更新后的第k只萤火虫个体Xk(tk)与第s只萤火虫个体Xs(ts)之间的吸引度βk,s(tk):
&beta; k , s ( t k ) = &beta; 0 1 + &gamma; ( d uni k , s ( w k ) ) 2 - - - ( 4 )
例如,规定β0=1,则表1中第1只萤火虫个体X1(t1)和第2只萤火虫个体X2(t2)的吸引度β1,2(t1)为:
&beta; 1,2 ( t 1 ) = &beta; 0 1 + &gamma; ( d uni 1,2 ( w 1 ) ) 2 = 1 1 + 0.28 &times; 0.575 &times; 0.575 = 0.9153
步骤7.2、根据第k只萤火虫个体Xk(tk)与第s只萤火虫个体Xs(ts)之间的吸引度βk,s(tk)按照β移动步骤规则发生移动,并将移动后的萤火虫个体Xk(tk)记为Xk(tk)';
β移动步骤规则是按如下步骤进行:
步骤a″、令指针pos指向片上网络的第一个通讯节点;
步骤b″、判断pos=K是否成立,若成立,则完成β移动步骤,否则执行步骤c″;
步骤c″、判断第k只萤火虫个体Xk(tk)的映射方案Pk(tk)和第s只萤火虫个体Xs(ts)的映射方案Ps(ts)在指针pos所指的通讯节点上的IP核是否相同,若相同,则执行步骤d″;否则,执行步骤e″;
步骤d″、令指针pos指向下一个通讯节点,执行步骤b″;
步骤e″、将第s只萤火虫个体Xs(ts)的映射方案Ps(ts)在指针pos位置上的IP核记为Value[pos],在第k只萤火虫个体Xk(tk)的映射方案Pk(tk)中从第一个通讯节点上的IP核开始搜索,找到与Value[pos]相同IP核的通讯节点,并令指针pos1指向所找到的相同IP核的通讯节点;以吸引度βk,s(tk)为概率将第k只萤火虫个体Xk(tk)的映射方案Pk(tk)中指针pos和指针pos1所指向的通讯节点上的IP核进行交换后,执行步骤d″。
例如图3所示β移动步骤具体如下:
第1只萤火虫个体X1(t1)的映射序列{7 5 13 10 9 0 2 14 1 3 4 8 12 15 11 6}为原序列,第2只萤火虫个体X2(t2)的映射序列{4 8 2 1 10 11 9 7 15 5 12 14 3 6 0 13}为目标序列,找到第1只萤火虫个体X1(t1)的映射序列和第2只萤火虫个体X2(t2)的映射序列中第一个不相同的通讯节点上的IP核为第0号位置,如图3中空心箭头所示,则pos=0,从此位置开始迭代;迭代过程:在pos=0处,原序列和目标序列不相同,记录目标序列在pos=0位置上的IP核值为Value[0]=4,从原序列映射第0个通讯节点上的IP核开始搜索,找到与Value[0]=4相同的IP核位置,如图3中实心箭头所示,pos1=10,以概率0.9153交换原目标序列中pos=0和pos1=10位置上的两个IP核,满足概率,交换后原序列变为{4 5 13 10 90 2 14 1 3 7 8 12 15 11 6},如图3所示。将pos加1,即空心箭头移向下一个位置如图3所示,比较原序列的下一个IP核与目标序列此位置上的IP核是否相等,执行上述过程。执行若干次该过程直到比较完最后一个IP核则停止迭代。经过β步移动后原序列变为{4 5 2 110 11 0 7 15 9 8 14 3 6 12 13};
步骤7.3、移动后的萤火虫个体Xk(tk)'根据最大随机步长α按照第一α移动步骤规则再次发生移动,将更新次数tk+1赋值给tk,从而获得第tk次更新后的第k只萤火虫个体Xk(tk)中的映射方案Pk(tk);
第一α移动步骤规则是按如下步骤进行:
步骤a″′、令指针pos2指向片上网络的第一个通讯节点;
步骤b″′、判断pos2=K是否成立,若成立,则执行步骤f″′,否则执行步骤c″′;
步骤c″′、判断第k只萤火虫个体Xk(tk)的映射方案Pk(tk)和第s只萤火虫个体Xs(ts)的映射方案Ps(ts)在指针pos2所指的通讯节点上的IP核序号是否相同,若相同,则执行步骤d″′;否则,执行步骤e″′;
步骤d″′、令指针pos2指向下一个通讯节点,执行步骤b″′;
步骤e″′、将指针pos2所指的通讯节点放入通讯节点集合φ中,并执行步骤b″′;
步骤f″′、在通讯节点集合φ中随机选择最大随机步长α个通讯节点,并随机产生交换概率p,以交换概率p将α个通讯节点中任意两个通讯节点在第k只萤火虫个体Xk(tk)中的映射方案Pk(tk)上的IP核都进行交换。
例如图4所示第一α移动步骤具体如下:
将图3中与目标序列IP核不同的原序列IP核的位置(如图4中突出框图所示)保存在通讯节点集合φ中,则通讯节点集合φ为{1,6,9,10,14}。在通讯节点集合φ中随机选取3个IP核为{1,9,10},产生随机概率为0.32,以0.32概率交换原序列中pos=1和pos=9的IP核(没有满足概率不发生),以0.32概率交换原序列中pos=1和pos=10的IP核(满足概率发生),以0.32概率交换原序列中pos=9和pos=10的IP核(没有满足概率不发生)。经过第一α步移动后原序列变为{4 8 2 1 10 11 0 7 15 9 5 14 3 6 12 13}。
步骤7.4、根据更新后的萤火虫个体Xk(tk)中的Qk(tk)={R,Pk(tk)},利用式(1)获得更新后的第k只萤火虫个体Xk(tk)中的荧光亮度Ik(tk);
步骤7.5、根据片上网络的拓扑结构R、更新后的第k只萤火虫个体Xk(tk)的映射方案Pk(tk)以及荧光亮度Ik(tk),获得更新后的第k只萤火虫个体Xk(tk),将s+1赋值给s,并执行步骤5.2;
步骤8、更新第G次迭代时的最优萤火虫Xmin(G):
步骤8.1、第G次迭代的最优萤火虫Xmin(G)按照第二α移动步骤规则发生移动,从而获得更新后的第G次迭代最优萤火虫Xmin(G)'中的映射方案Pmin(G)';
第二α移动步骤规则是按如下步骤进行:
在第G次迭代的最优萤火虫Xmin(G)的映射方案Pmin(G)中随机选最大随机步长α个IP核,并随机产生交换概率q,以交换概率q将α个IP核中任意两个IP核都进行交换;
例如表1中最优萤火虫Xmin(G)=X24(t24)的映射序列为{1 2 8 9 10 3 7 4 13 2 15 11 601 5 14},在此映射序列中随机选择三个位置为<0,3,5>,产生随机概率0.48,以概率0.48让第0个位置上的IP核和第3个位置上的IP核交换,满足概率发生交换,交换之后的映射序列为{10 8 9 12 3 7 4 13 2 15 11 6 0 1 5 14};以概率0.48让第0个位置上的IP核和第5个位置上的IP核交换,不满足概率不发生交换;以概率0.48让第3个位置上的IP核和第5个位置上的IP核交换,满足概率发生交换,交换之后的映射序列为{10 8 9 7 3 12 4 132 15 11 6 0 1 5 14};
步骤8.2、根据更新后的第G次迭代时的最优萤火虫Xmin(G)'中的片上网络的拓扑结构R和映射方案Pmin(G)',利用式(1)获得第G次迭代时的最优萤火虫Xmin(G)'中的荧光亮度Imin(G)';
步骤8.3、将G+1赋值给G,并执行步骤3;
步骤9、获得最优映射方案:
全局最优萤火虫Xgmin(G)的映射方案Pgmin(G)为最优映射方案。
实例1
为验证本发明,将使用本发明解决典型多媒体基准VOPD应用的映射问题。VOPD应用可分为16个任务分别分配到16个核上执行(假设任务被分配到到相同序号的IP核上执行),如图1所示,此时映射问题为如何将这16个IP核分配到一个规模为4×4×1的NoC中。
在应用本发明之前,先将目标函数定义为第k只萤火虫的荧光亮度Ik(tk):
I k ( t k ) = &Sigma; i = 1 L &times; M &times; N &Sigma; j = 1 L &times; M &times; N v i , j &times; h i , j - - - ( 6 )
式(6)中,vi,j为映射有IP核的第i个通讯节点ri与映射有IP核的第j个通讯节点rj之间的通讯量,hi,j为映射有IP核的第i个通讯节点ri(坐标(ix,iy,iz))与映射有IP核的第j个通讯节点rj(坐标(jx,jy,jz))之间的跳数(|ix-jx|+|iy-jy|+|iz-jz|),L×M×N为通信节点总数,所以优化通讯量的目标是将通信任务较重的几个IP核分配到临近的通信节点上,实现通信近邻化。
本发明与发表于2014年2月的IEEE Transactions on very large scale integration systems国际会议第300-312页的“Application Mapping Onto Mesh-Based Network-On-Chip UsingDiscrete Particle Swarm Optimization”论文中所所提出的基于粒子群算法(PSO)的映射方法和基于离散粒子群算法(DPSO)的映射方法作对比。步骤如下:
步骤1:参数定义:
定义萤火虫个体集合X={X1(t1),X2(t2),…,Xk(tk),…,XK(tK)},1≤k≤K;
定义萤火虫个体Xk(tk)={R,Pk(tk),Ik(tk)}:片上网络拓扑结构为R={4,4,1},映射方案为Pk(tk)={map(r0),map(r1),...,map(ri),...,map(rT-1)},荧光亮度为Ik(tk);
定义萤火虫个体Xk(tk)和萤火虫个体Xs(ts)之间的归一化距离
定义光强吸收因子为γ,γ∈[0,1]、迭代次数为G、最大迭代次数为GMax、最大随机步长为α、最大吸引度为β0
步骤2:初始化萤火虫个体集合及参数:
设置本实例的相关参数如表3所示;
表3 本实例的相关参数设置
初始化K=30个萤火虫个体;对于萤火虫个体Xk(tk),随机产生IP核序列作为映射方案Pk(tk)={map(r0),map(r1),...,map(ri),...,map(rT-1)},与片上网络拓扑结构R={4,4,1}拼接,初始化萤火虫个体Xk(tk)的第一部分Qk(tk)={R,Pk(tk)},如表2第二列;根据萤火虫个体Xk(tk)的第一部分Qk(tk)={R,Pk(tk)}及VOPD应用特征图(图1),根据公式(6)计算该映射方案的总通讯量,初始化萤火虫个体Xk(tk)的第二部分Ik(tk),如表2第三列;计算萤火虫个体X1(t1)的总通讯量I1(t1)方法:根据片上网络拓扑结构和随机产生的映射方案可知该应用的IP核的映射方案,如图2所示。图中方块表示通讯节点,圆形表示IP核。由VOPD应用特征图(图1)可知第0号IP核到1号IP核之间的通讯量为70,由萤火虫个体X1(t1)的映射图(图2)可知映射之后0号IP核到1号IP核之间的条数为2跳,所以0号IP核到1号IP核的总通讯量为70×2=140,同理可以计算出图2中任意两个IP间的总通讯量,萤火虫个体X1(t1)的荧光亮度I1(t1)为图2中IP间的总通讯量之和。同理,可以算出每个萤火虫个体的荧光亮度Ik(tk),如表4为初始化的萤火虫个体集合;
表4 初始化萤火虫个体集合
萤火虫个体Xk(tk) {R,Pk(tk)} Ik(tk)
1 { 4 4 1 7 5 13 10 9 0 2 14 1 3 4 8 12 15 11 6} 11785
2 { 4 4 1 4 8 2 1 10 11 9 7 15 5 12 14 3 6 0 13} 8992
3 { 4 4 1 14 1 11 12 10 8 6 4 9 2 3 5 7 15 13 0} 7750
4 {4 4 1 1 9 10 8 7 13 14 12 0 5 2 15 11 6 4 3} 8428
5 {4 4 1 11 15 5 14 9 6 8 13 0 4 3 7 12 1 10 2} 9405
6 { 4 4 1 3 11 8 14 0 6 7 2 4 12 15 5 13 10 9 1} 9110
7 { 4 4 1 12 9 0 15 4 2 14 6 7 10 8 1 3 11 5 13} 11724
8 { 4 4 1 6 11 2 8 7 1 14 0 9 15 5 12 10 13 3 4} 9479
9 { 4 4 1 11 9 15 7 5 6 14 1 10 4 3 8 13 12 2 0} 7843
10 { 4 4 1 1 12 8 15 3 0 5 4 2 7 9 11 14 13 10 6} 7831
11 { 4 4 1 13 1 7 10 8 4 0 3 2 9 5 11 15 12 14 6} 10529
12 { 4 4 1 10 8 7 3 2 9 13 14 4 6 1 0 11 12 5 15} 9809
13 { 4 4 1 10 8 14 2 9 15 0 13 1 4 3 6 12 5 11 7} 11293
14 { 4 4 1 9 13 11 10 15 3 8 0 6 4 12 1 2 14 7 5} 11494
15 { 4 4 1 15 3 1 12 5 6 8 11 2 9 0 10 4 7 13 14} 8928
16 { 4 4 1 11 14 3 10 15 8 7 0 13 5 6 9 4 1 2 12} 8604
17 { 4 4 1 11 12 5 14 2 6 9 3 0 10 8 15 1 4 13 7} 10241
18 { 4 4 1 10 5 9 4 15 14 13 12 3 1 7 0 2 11 6 8} 9270
19 { 4 4 1 9 14 6 15 2 12 4 1 7 10 8 11 13 3 5 0} 10603
20 { 4 4 1 6 13 14 7 15 8 0 12 4 2 3 10 5 1 9 11} 8987
21 { 4 4 1 12 14 2 8 11 1 5 0 6 4 10 15 13 3 7 9} 9248
22 { 4 4 1 7 14 11 5 0 1 12 8 13 3 10 2 6 4 15 9} 12915
23 {4 4 1 10 2 12 15 0 7 11 4 5 9 3 8 14 1 6 13} 9820
24 { 4 4 1 12 8 9 10 3 7 4 13 2 15 11 6 0 1 5 14} 7036
25 { 4 4 1 15 3 6 14 11 13 1 8 5 12 0 10 2 9 7 4} 12239
26 { 4 4 1 10 6 1 3 0 2 9 13 4 5 14 15 11 7 8 12} 9169
27 { 4 4 1 15 14 1 4 9 11 10 13 8 7 6 5 0 12 2 3} 7182
28 { 4 4 1 8 2 7 3 4 1 5 0 15 9 10 14 11 12 13 6} 9631
29 { 4 4 1 2 10 14 11 6 3 9 13 12 4 1 0 8 7 5 15} 10296
30 { 4 4 1 6 14 11 7 4 1 5 10 15 8 0 9 13 2 12 3} 9978
设置迭代次数G=0迭代。
第一代(G=0):
步骤3:令迭代终止条件为G≥GMax,若满足迭代终止条件,则执行步骤9,否则执行步骤4;
G=0,执行步骤4。
步骤4:获取第G次迭代时的最优萤火虫Xmin(G)及全局最优萤火虫Xgmin(G):
遍历表4中所有的萤火虫个体,比较萤火虫个体的荧光亮度,找出荧光亮度最小的萤火虫个体为第24号萤火虫,则此次迭代最优萤火虫个体Xmin(G)=X24(t24),G=0,全局最优萤火虫Xgmin(G)=X24(t24),当G≠0时,若Xgmin(G)>Xmin(G),则更新全局最优萤火虫Xgmin(G)=Xmin(G)。
步骤5:判断第k只萤火虫个体Xk(tk)的移动条件:
步骤5.1:s=1,s≠k;
步骤5.2:s=K则执行步骤6,否则执行步骤5.3;
步骤5.3:计算第k只萤火虫个体Xk(tk)与第s只萤火虫个体Xs(ts)之间的归一化距离,并判断第k只萤火虫个体Xk(tk)是否向第s只萤火虫个体Xs(ts)移动,如果发生移动则执行步骤7,否则s+1赋值给s并执行步骤5.2;
计算1号萤火虫个体X1(t1)到2号萤火虫个体X2(t2)的距离,方法如下:
首先将1号萤火虫个体X1(t1)(表4中第1行)的映射NoC1和2号萤火虫个体X2(t2)(表4中第2行)的映射分别用阵列A、B表示,如下:
A 4 &times; 4 = 7 5 13 10 9 0 2 14 1 3 4 8 12 15 11 6 , B 4 &times; 4 = 4 8 2 1 10 11 9 7 15 5 12 14 3 6 0 13
则1号萤火虫个体X1(t1)和2号萤火虫个体X2(t2)之间的距离为阵列A和阵列B之间相差的跳数,计算方法:
IP核7在第1只萤火虫个体X1(t1)映射阵列A中坐标为(0,0),在第2只萤火虫个体X2(t2)映射阵列B中坐标为(1,3),则IP核7在阵列A和阵列B之间的跳数为||0-1|+|0-3||=4;同理可求出其他IP核在阵列A中和阵列B中相差的跳如表5。
表5 阵列A和阵列B中相同IP核的之间的跳数
阵列A和阵列B中相同元素的跳数之和即为1号萤火虫个体X1(t1)和2号萤火虫个体X2(t2)之间的距离d1,2=46;
将1号萤火虫个体X1(t1)和2号萤火虫个体X2(t2)之间的距离归一化,
理论最小值
理论最大值求解方法:
1号萤火虫个体X1(t1)的拓扑结构R={4,4,1},映射方案P1(t1)用阵列A表示:
A 4 &times; 4 = 7 5 13 10 9 0 2 14 1 3 4 8 12 15 11 6
由于N=1,L、M为偶数,则将1号萤火虫个体X1(t1)的阵列A平均分为4个区,假设存在j号萤火虫个体Xj(tj),将1号萤火虫个体X1(t1)的阵列A每个区各个元素映射到距离该区最远的角元素上,形成j号萤火虫个体Xj(tj),则j号萤火虫个体Xj(tj)的映射方案Pj(tj)用阵列J表示为:
J 4 &times; 4 = 4 / 8 / 11 / 6 0 0 1 / 3 / 12 / 15 0 0 0 0 0 0 0 0 13 / 10 / 2 / 14 0 0 7 / 5 / 9 / 0
此时1号萤火虫个体X1(t1)与j号萤火虫个体Xj(tj)之间的曼哈顿距离为理论最大值
d max 1,2 = d max 1 , j = 4 &times; ( &Sigma; i = L 2 L - 1 &Sigma; j = M 2 M - 1 ( i + j ) ) = 4 &times; ( &Sigma; i = 2 i = 3 &Sigma; j = 2 j = 3 ( i + j ) ) = 80
1号萤火虫个体X1(t1)与2号萤火虫个体X2(t2)之间的归一化距离为:
d uni 1,2 ( w 1 ) = d 1,2 - d mim 1,2 d max 1,2 - d min 1,2 = 46 - 0 80 - 0 =0.575
判断1号萤火虫个体X1(t1)是否向2号萤火虫个体X2(t2)移动的移动条件:
1 I 1 ( t 1 ) < 1 I 2 ( t 2 ) &times; exp ( - &gamma;d uni 1,2 ( w 1 ) )
1号萤火虫个体X1(t1)的总通讯量I1(t1)=11785,2号萤火虫个体X2(t2)的总通讯量I2(t2)=8992,由于:
1 I 1 ( t 1 ) = 8.4854 e - 5
1 I 2 ( t 2 ) &times; exp ( - &gamma;d uni 1,2 ( w 1 ) ) = 1.1121 e - 4 &times; exp ( - 0.28 &times; 0.572 ) = 9.4672 e - 5
1 I 1 ( t 1 ) < 1 I 2 ( t 2 ) &times; exp ( - &gamma;d uni 1,2 ( w 1 ) )
则1号萤火虫个体X1(t1)向2号萤火虫个体X2(t2)移动,执行步骤7。
步骤6:遍历萤火虫个体集合,并按照步骤5判断所有萤火虫个体的移动条件,遍历完成则执行步骤8;
步骤7:更新萤火虫个体Xk(tk)
计算两只萤火虫个体之间的吸引度,根据移动公式移动,更新发生移动的萤火虫个体的荧光亮度,执行步骤5;
根据公式计算1号萤火虫个体X1(t1)和2号萤火虫个体X2(t2)的吸引度β1,2(t1)为
&beta; 1,2 ( t 1 ) = &beta; 0 1 + &gamma; ( d uni 1,2 ( w 1 ) ) 2 = 1 1 + 0.28 &times; 0.575 &times; 0.575 = 0.9153
根据移动公式将1号萤火虫个体X1(t1)向2号萤火虫个体X2(t2)移动,方法如下:
β步移动规则:
1号萤火虫个体X1(t1)的映射序列{7 5 13 10 9 0 2 14 1 3 4 8 12 15 11 6}为原序列,2号萤火虫个体X2(t2)的映射序列{4 8 2 1 10 11 9 7 15 5 12 14 3 6 0 13}为目标序列,找到1号萤火虫个体X1(t1)映射序列和2号萤火虫个体X2(t2)映射序列中第一个不相同的IP核为第0号位置,如图3空心箭头所示,则pos=0,从此位置开始迭代;迭代过程:在pos=0处,原序列和目标序列不相同,记录目标序列在pos=0位置上的IP核值为Value[0]=4,从原映射第0个IP核开始搜索,找到与Value[0]=4相同的IP核位置,如图3中实心箭头所示,pos1=10,以概率0.9153交换原目标序列中pos=0和pos1=10位置上的两个IP核,满足概率,交换后原序列变为{4 5 13 10 9 0 2 14 1 3 7 8 12 15 11 6},如图3所示。将pos加1,即空心箭头移向下一个位置如图3所示,比较原序列的下一个IP核与目标序列此位置上的IP核是否相等,执行上述过程。执行若干次该过程直到比较完最后一个IP核则停止迭代。经过β步移动后原序列变为{4 5 2 1 10 11 0 7 15 9 8 14 3 6 12 13};
第一α步移动规则:
保存与目标序列IP核不同的原序列IP核的位置(如图4中突出框图所示)于通讯节点集合φ中,则通讯节点集合φ为{1,6,9,10,14}。在通讯节点集合φ中随机选取3个IP核为{1,9,10},产生随机概率为0.32,以0.32概率交换原序列中pos=1和pos=9的IP核(没有满足概率不发生),以0.32概率交换原序列中pos=1和pos=10的IP核(满足概率发生),以0.32概率交换原序列中pos=9和pos=10的IP核(没有满足概率不发生)。经过第一α步移动后原序列变为{4 8 2 1 10 11 0 7 15 9 5 14 3 6 12 13};
更新发生移动的1号萤火虫个体X1(t1)的荧光亮度I1(t1);
s+1赋值给s,执行步骤5.2。
步骤8:更新第G次迭代时的最优萤火虫Xmin(G):
第一α步移动规则:
最优萤火虫Xmin(G)=X24(t24)的映射序列为{12 8 9 10 3 7 4 13 2 15 11 6 0 1 5 14},在此映射序列中随机选择三个位置为<0,3,5>,产生随机概率0.48,以概率0.48让第0个上的IP核和第3个位置上的IP核交换,满足概率发生交换,交换之后的映射序列为{10 8 9 123 7 4 13 2 15 11 6 0 1 5 14};以概率0.48让第0个位置上的IP核和第5个位置上的IP核交换,不满足概率不发生交换;以概率0.48让第3个位置上的IP核和第5个位置上的IP核交换,满足概率发生交换,交换之后的映射序列为{10 8 9 7 3 12 4 13 2 15 11 6 0 1 514};
更新发生随机移动之后的萤火虫Xmin(G)的荧光亮度Imin(G);
将G+1赋值给G,执行步骤3。
步骤9:获得最优映射方案:
在步骤9中,得到最优映射方案,最优映射方案为此时全局最优萤火虫Xgmin(G)的映射方案Pgmin(G),全局最优萤火虫Xgmin(G)的亮度Igmin(G)为最优总通讯量。
全局最优萤火虫Xgmin(G)的映射方案Pgmin(G)为:{13 14 0 1 12 11 10 2 9 8 4 3 7 65 15}
全局最优萤火虫Xgmin(G)的亮度Igmin(G)为:4087
所得实验结果如图5所示。
使用PSO算法映射方法实现任务VOPD映射,与本发明实例相同的实验配置(包括样本数,及迭代次数)将VOPD应用映射到4×4×1片上网络中。在此次实验中,采用和本发明实例相同的初始样本。实验结果如图6、7、8所示。图6为本发明与PSO算法每代最优结果对比图,由图中看出PSO算法收敛速度快,但陷入局部最优解,无法跳出局部最优解,而本发明有寻优过程,不断进行探索,从图6中实线的抖动可看出。同时在710代左右时本发明出现全局最优解,在下一代中跳出了全局最优解去寻找更优的解,而对于这点PSO算法无法实现。图7为本发明的每代最优与全局最优结果对比图,此图表现了本发明的寻优过程,不会陷入局部最优解而无法跳出。图8为本发明和PSO算法的全局最优结果对比图,由图8可知本发明取得的全局最优结果好于PSO算法取得的全局最优结果。
与发表于2014年2月的IEEE Transactions on very large scale integration systems国际会议第300-312页的“Application Mapping Onto Mesh-Based Network-On-Chip Using DiscreteParticle Swarm Optimization”论文中采用DPSO算法实现VOPD任务映射的实验结果相比较,实验结果如图9所示,详细数据结果如表6所示。
表6 本发明与DPSO算法的实验结果对比
在总通讯量方面:本发明实验结果优于DPSO算法实验结果:
4119 - 4087 4119 &times; 100 % = 0.777 %
在CPU执行时间方面:本发明实验结果优于DPSO算法实验结果:
3.340 - 1.791 3.340 &times; 100 % = 46.377 %
由此可见,与DPSO相比,无论最终优化结果,还是算法运行速度,本发明优化效果十分明显。
相对于现有技术的缺点和不足,本发明有以下有益效果:根据萤火虫算法的基本流程,重新定义传统萤火虫算法中的参数,定义萤火虫个体为片上网络拓扑结构、映射方案及通讯量的组合,定义两只萤火虫个体的距离为归一化后的两种映射方案相差的跳数,定义荧光亮度为总通讯量,并将移动公式分为两部分:第一部分为由于其他萤火虫个体吸引产生的移动,第二部分为随机移动部分,重新定义吸引度计算公式为与萤火虫个体荧光亮度正比,与两只萤火虫个体间的距离成反比的分数形式,得到适用于解决片上网络映射问题的离散萤火虫算法,与已有片上网络映射算法离散粒子群算法相比,可以缩短优化时间,提高在空间的搜索能力,使映射结果更优。

Claims (5)

1.一种基于离散萤火虫算法的片上网络映射方法,所述片上网络是由资源节点和通讯节点组成,其特征是按如下步骤进行:
步骤1、参数定义:
定义所述片上网络的拓扑结构为R,且R={L,M,N},L表示片上网络的行数,M表示片上网络的列数,N表示片上网络的层数,L>0,M>0,N>0;以所述拓扑结构R的任一顶点为原点o,以所述拓扑结构R的行方向为x轴,列方向为y轴,层方向为z轴,建立笛卡尔直角坐标系o-xyz;
令IP核c表征为所述片上网络的资源节点,则IP核集合为C={c0,c1,…,ca,…,cA-1},A表示IP核总数,A≤L×M×N,ca表示所述片上网络中的第a个IP核,0≤a≤A-1;
定义萤火虫个体集合为X={X1(t1),X2(t2),…,Xk(tk),…,XK(tK)},K表示萤火虫个体总数,1≤k≤K,t表示萤火虫个体的更新次数,t≥0,tk表示第k只萤火虫个体的更新次数,Xk(tk)表示第tk次更新后的第k只萤火虫个体;
定义Pk(tk)为所述第tk次更新后的第k只萤火虫个体Xk(tk)的映射方案,Pk(tk)={map(r0),map(r1),...,map(ri),...,map(rT-1)},r表示所述片上网络中的通讯节点,T为所述片上网络中的通讯节点总数,T=L×M×N,ri表示所述片上网络中的第i个通讯节点,0≤i≤T-1;假设按照所述第k只萤火虫个体Xk(tk)的映射方案Pk(tk)对所述IP核集合C进行映射后,若所述第i个通讯节点ri上未映射有IP核,则定义map(ri)=-1;若所述第i个通讯节点ri上映射有IP核,则定义map(ri)=a,表示映射在第i个通讯节点ri上的IP核为第a个IP核ca
定义所述第k只萤火虫个体Xk(tk)的荧光亮度为Ik(tk);
定义所述第k只萤火虫个体Xk(tk)的映射方案的总通讯量为所述第k只萤火虫个体Xk(tk)的荧光亮度Ik(tk);定义Qk(tk)={R,Pk(tk)}表示所述片上网络的拓扑结构R和所述第k只萤火虫个体Xk(tk)的映射方案Pk(tk)的拼接;则将所述第k只萤火虫个体Xk(tk)表征为Xk(tk)={Qk(tk),Ik(tk)};
定义wk为第k只萤火虫Xk(tk)与其他任意一只萤火虫个体之间计算归一化距离的次数,wk>0;定义为第wk次计算的第k只萤火虫Xk(tk)和其他任一只萤火虫个体Xs(ts)之间的归一化距离,1≤s≤K,且s≠k;
定义光强吸收因子为γ,γ∈[0,1]、迭代次数为G、最大迭代次数为GMax、最大随机步长为α、最大吸引度为β0
步骤2、初始化萤火虫个体集合及参数:
步骤2.1、随机产生映射方案Pk(tk),获得所述片上网络中映射有IP核的通讯节点的坐标;
步骤2.2、利用式(1)获得荧光亮度Ik(tk):
I k ( t k ) = &Sigma; i = 1 L &times; M &times; N &Sigma; j = 1 L &times; M &times; N v i , j &times; h i , j - - - ( 1 )
式(1)中,vi,j表示映射有IP核的第i个通讯节点ri与映射有IP核的第j个通讯节点rj之间的通讯量;hi,j表示映射有IP核的第i个通讯节点ri与映射有IP核的第j个通讯节点rj之间的跳数,令映射有IP核的第i个通讯节点ri的坐标为(ix,iy,iz),映射有IP核的第j个通讯节点rj的坐标为(jx,jy,jz),则hi,j=|ix-jx|+|iy-jy|+|iz-jz|;
步骤2.3、按照步骤2.1和步骤2.2,初始化萤火虫个体集合中的每一个萤火虫个体;
步骤2.4、初始化迭代次数G=0,输入光强吸收因子γ,γ∈[0,1]、最大迭代次数GMax=gmax、最大随机步长α=step,最大吸引度β0=1,更新次数tk=0,计算归一化距离的次数wk=1;
步骤3、令迭代终止条件为G≥GMax,若满足所述迭代终止条件,则执行步骤9,否则执行步骤4;
步骤4、获取第G次迭代时的最优萤火虫Xmin(G)及全局最优萤火虫Xgmin(G):
遍历所述萤火虫个体集合并比较任意两只萤火虫个体的荧光亮度,寻找荧光亮度最小的萤火虫个体记为第G次迭代时的最优萤火虫Xmin(G);当G=0时,全局最优萤火虫Xgmin(G)=Xmin(G),当G≠0时,若Xgmin(G)>Xmin(G),则更新全局最优萤火虫Xgmin(G)=Xmin(G),否则全局最优萤火虫Xgmin(G)保持不变;
步骤5、判断第k只萤火虫个体Xk(tk)的移动条件:
步骤5.1、令s=1,则第t1次更新后的第1只萤火虫个体表示为X1(t1);
步骤5.2、判断s=K是否成立,若成立则执行步骤6,否则执行步骤5.3;
步骤5.3、将wk+1赋值给wk,利用式(2)获得所述第k只萤火虫个体Xk(tk)到第s只萤火虫个体Xs(ts)之间的归一化距离
d uni k , s ( w k ) = d k , s - d min k , s d max k , s - d min k , s - - - ( 2 )
式(2)中,dk,s表示第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数,表示第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数的理论最大值,表示第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数的理论最小值;
步骤5.4、根据式(3)所示的移动条件,判断第k只萤火虫个体Xk(tk)是否向第s只萤火虫个体Xs(ts)移动,若满足所述移动条件,则执行步骤7,否则,将s+1赋值给s,并执行步骤5.2;
1 I k ( t k ) < 1 I s ( t s ) &times; exp ( - &gamma;d uni k , s ( w k ) ) - - - ( 3 )
式(3)中,表示由于第k只萤火虫个体Xk(tk)和第s只萤火虫个体Xs(ts)之间的距离使第s只萤火虫个体Xs(ts)的荧光亮度倒数的衰减;
步骤6、遍历所述萤火虫个体集合,并按照步骤5判断所有萤火虫个体的移动条件,遍历完成则执行步骤8;
步骤7、更新萤火虫个体Xk(tk)
步骤7.1、利用式(4)获得所述第tk次更新后的第k只萤火虫个体Xk(tk)与第s只萤火虫个体Xs(ts)之间的吸引度βk,s(tk):
&beta; k , s ( t k ) = &beta; 0 1 + &gamma; ( d uni k , s ( w k ) ) 2 - - - ( 4 )
步骤7.2、根据第k只萤火虫个体Xk(tk)与第s只萤火虫个体Xs(ts)之间的吸引度βk,s(tk)按照β移动步骤规则发生移动,并将移动后的萤火虫个体Xk(tk)记为Xk(tk)';
步骤7.3、所述移动后的萤火虫个体Xk(tk)'根据所述最大随机步长α按照第一α移动步骤规则再次发生移动,并将更新次数tk+1赋值给tk,从而获得第tk次更新后的第k只萤火虫个体Xk(tk)中的映射方案Pk(tk);
步骤7.4、根据更新后的第k只萤火虫个体Xk(tk)中的Qk(tk)={R,Pk(tk)},利用式(1)获得更新后的第k只萤火虫个体Xk(tk)中的荧光亮度Ik(tk);
步骤7.5、根据所述片上网络的拓扑结构R、所述更新后的第k只萤火虫个体Xk(tk)的映射方案Pk(tk)以及荧光亮度Ik(tk),获得更新后的第k只萤火虫个体Xk(tk),并将s+1赋值给s后,执行步骤5.2;
步骤8、更新第G次迭代时的最优萤火虫Xmin(G):
步骤8.1、第G次迭代的最优萤火虫Xmin(G)按照第二α移动步骤规则发生移动,从而获得更新后的第G次迭代最优萤火虫Xmin(G)'中的映射方案Pmin(G)';
步骤8.2、根据更新后的第G次迭代时的最优萤火虫Xmin(G)'中的片上网络的拓扑结构R和映射方案Pmin(G)',利用式(1)获得第G次迭代时的最优萤火虫Xmin(G)'中的荧光亮度Imin(G)';
步骤8.3、将G+1赋值给G,并执行步骤3;
步骤9、获得最优映射方案:
所述全局最优萤火虫Xgmin(G)的映射方案Pgmin(G)为所述最优映射方案。
2.如权利要求1所述的基于离散萤火虫的片上网络映射方法,其特征在于,在所述步骤5.3中,所述第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数dk,s是按如下步骤获得:
步骤a':根据第k只萤火虫个体Xk(tk)的映射方案Pk(tk)将IP核映射到片上网络的各通讯节点上,获得映射之后的原片上网络NoCk,根据第s只萤火虫个体Xs(ts)的映射方案Ps(ts)将IP核映射到片上网络的各通讯节点上,获得映射之后的目标片上网络NoCs;令ri k表示所述原片上网络NoCk的第i个通讯节点,ri s表示所述目标片上网络NoCs的第i个通讯节点,令i=1,则rl k表示所述原片上网络NoCk的第1个通讯节点,r1 s表示所述目标片上网络NoCs的第1个通讯节点;
步骤b':判断i=K是否成立,若成立,则执行步骤f',否则执行步骤c';
步骤c':判断原片上网络NoCk的第i个通讯节点ri k上映射的IP核和目标片上网络NoCs的第i个通讯节点ri k上映射的IP核是否相等,若相等执行步骤d'、否则执行步骤e';
步骤d':令表示所述原片上网络NoCk的第i个通讯节点ri k与所述目标片上网络NoCs的第i个通讯节点ri s之间的跳数,令并将i+1赋值给i,执行步骤b';
步骤e':遍历所述目标片上网络NoCs的所有通讯节点映射的IP核,直至找到与所述原片上网络NoCk的通讯节点ri k上映射的IP核相同的第j个通讯节点rj s上的IP核,并记录所述第j个通讯节点根据式(5)计算所述原片上网络NoCk上通讯节点ri k与所述目标片上网络NoCs的通讯节点之间的跳数;并执行步骤c';
h i , j k , s = | i x k - j x s | + | i y k - j y s | + | i z k - j z s | - - - ( 5 )
式(5)中,表示原片上网络NoCk的第i个通讯节点ri k的坐标,表示目标片上网络NoCs的第j个通讯节点的坐标;
步骤f':令从而获得所述第k只萤火虫个体Xk(tk)的映射方案Pk(tk)到第s只萤火虫个体Xs(ts)的映射方案Ps(ts)之间相差的跳数dk,s
3.如权利要求1所述的基于离散萤火虫的片上网络映射方法,其特征在于,在步骤7.2中,所述β移动步骤规则是按如下步骤进行:
步骤a″、令指针pos指向所述片上网络的第一个通讯节点;
步骤b″、判断pos=K是否成立,若成立,则完成所述β移动步骤,否则执行步骤c″;
步骤c″、判断第k只萤火虫个体Xk(tk)的映射方案Pk(tk)和第s只萤火虫个体Xs(ts)的映射方案Ps(ts)在指针pos所指的通讯节点上的IP核是否相同,若相同,则执行步骤d″;否则,执行步骤e″;
步骤d″、令指针pos指向下一个通讯节点,执行步骤b″;
步骤e″、将第s只萤火虫个体Xs(ts)的映射方案Ps(ts)在指针pos位置上的IP核记为Value[pos],在第k只萤火虫个体Xk(tk)的映射方案Pk(tk)中从第一个通讯节点上的IP核开始搜索,找到与Value[pos]相同IP核的通讯节点,并令指针pos1指向所找到的相同IP核的通讯节点;以吸引度βk,s(tk)为概率将第k只萤火虫个体Xk(tk)的映射方案Pk(tk)中指针pos和指针pos1所指向的通讯节点上的IP核进行交换后,执行步骤d″。
4.如权利要求1所述的基于离散萤火虫的片上网络映射方法,其特征在于,在所述步骤7.3中,所述第一α移动步骤规则是按如下步骤进行:
步骤a″′、令指针pos2指向所述片上网络的第一个通讯节点;
步骤b″′、判断指针pos2=K是否成立,若成立,则执行步骤f″′,否则执行步骤c″′;
步骤c″′、判断第k只萤火虫个体Xk(tk)的映射方案Pk(tk)和第s只萤火虫个体Xs(ts)的映射方案Ps(ts)在指针pos2所指的通讯节点上的IP核序号是否相同,若相同,则执行步骤d″′;否则,执行步骤e″′;
步骤d″′、令指针pos2指向下一个通讯节点,执行步骤b″′;
步骤e″′、将指针pos2所指的通讯节点放入通讯节点集合φ中,并执行步骤b″′;
步骤f″′、在所述通讯节点集合φ中随机选择最大随机步长α个通讯节点,并随机产生交换概率p,以交换概率p将所述α个通讯节点中任意两个通讯节点在第k只萤火虫个体Xk(tk)中的映射方案Pk(tk)上的IP核都进行交换。
5.如权利要求1所述的基于离散萤火虫的片上网络映射方法,其特征在于,在所述步骤8.1中,所述第二α移动步骤规则是按如下步骤进行:
在第G次迭代的最优萤火虫Xmin(G)的映射方案Pmin(G)中随机选最大随机步长α个IP核,并随机产生交换概率q,以交换概率q将所述α个IP核中任意两个IP核都进行交换。
CN201410346056.2A 2014-07-18 2014-07-18 一种基于离散萤火虫算法的片上网络映射方法 Active CN104079439B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410346056.2A CN104079439B (zh) 2014-07-18 2014-07-18 一种基于离散萤火虫算法的片上网络映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410346056.2A CN104079439B (zh) 2014-07-18 2014-07-18 一种基于离散萤火虫算法的片上网络映射方法

Publications (2)

Publication Number Publication Date
CN104079439A true CN104079439A (zh) 2014-10-01
CN104079439B CN104079439B (zh) 2017-02-22

Family

ID=51600495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410346056.2A Active CN104079439B (zh) 2014-07-18 2014-07-18 一种基于离散萤火虫算法的片上网络映射方法

Country Status (1)

Country Link
CN (1) CN104079439B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106161606A (zh) * 2016-06-27 2016-11-23 合肥工业大学 面向功耗温度的动静态相结合的NoC映射方法
CN108055161A (zh) * 2017-12-28 2018-05-18 新华三技术有限公司 一种组网优化方法及装置
CN110825689A (zh) * 2019-10-31 2020-02-21 新华三半导体技术有限公司 电子芯片的实现方法及电子芯片

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625673A (zh) * 2008-07-07 2010-01-13 中国科学院计算技术研究所 一种二维网格片上网络的任务映射方法
CN102508935A (zh) * 2011-09-22 2012-06-20 南京大学 一种基于蚁群混沌遗传算法的片上网络映射方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625673A (zh) * 2008-07-07 2010-01-13 中国科学院计算技术研究所 一种二维网格片上网络的任务映射方法
CN102508935A (zh) * 2011-09-22 2012-06-20 南京大学 一种基于蚁群混沌遗传算法的片上网络映射方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ZHENGXUE LI,YANG LIU,MINGSONG CHENG: "Solving NoC mapping problem with improved particle swarm algorithm", 《IEEE》 *
葛芬,吴宁: "功耗优化的片上网络协同映射", 《应用科学学报》 *
邓植,顾华玺: "基于拓扑划分的片上网络快速映射算法", 《电子与信息学报》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106161606A (zh) * 2016-06-27 2016-11-23 合肥工业大学 面向功耗温度的动静态相结合的NoC映射方法
CN106161606B (zh) * 2016-06-27 2019-01-29 合肥工业大学 面向功耗温度的动静态相结合的NoC映射方法
CN108055161A (zh) * 2017-12-28 2018-05-18 新华三技术有限公司 一种组网优化方法及装置
CN108055161B (zh) * 2017-12-28 2021-08-24 新华三技术有限公司 一种组网优化方法及装置
CN110825689A (zh) * 2019-10-31 2020-02-21 新华三半导体技术有限公司 电子芯片的实现方法及电子芯片
CN110825689B (zh) * 2019-10-31 2020-08-04 新华三半导体技术有限公司 电子芯片的实现方法及电子芯片

Also Published As

Publication number Publication date
CN104079439B (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
CN108228972B (zh) 确定用于可重配置逻辑器件的至少一个电路的布置的方法
WO2018171715A1 (zh) 适用神经网络处理器的自动化设计方法及系统
CN106919769B (zh) 一种基于多层次方法和赋权超图的层次式fpga布局布线方法
Selassie et al. Divided edge bundling for directional network data
JP2021108184A (ja) 高精度マップの作成方法及び装置
CN102339295B (zh) Sql脚本的结构化元数据生成方法及数据地图生成方法
CN105138526A (zh) 用于为关系型数据库自动生成语义映射的方法和系统
CN103714577B (zh) 一种适用于带纹理模型的三维模型简化方法
Ryu et al. Improved informed RRT* using gridmap skeletonization for mobile robot path planning
US20230042968A1 (en) High-definition map creation method and device, and electronic device
US20200125960A1 (en) Small-world nets for fast neural network training and execution
CN102890703A (zh) 一种网络异质多维标度方法
CN105243237A (zh) 一种装配工艺结构树及其构建方法
CN105808853A (zh) 一种面向工程应用的本体构建管理与本体数据自动获取方法
CN104079439A (zh) 一种基于离散萤火虫算法的片上网络映射方法
CN106202167A (zh) 一种基于结构概要模型的有向标签图自适应索引构建方法
CN109508389B (zh) 一种人员社会关系图谱可视化加速方法
CN110689174A (zh) 基于公共交通的人员路线规划方法及装置
CN117669046A (zh) 一种面向汽车装配工艺智能决策的数据集成方法及系统
CN103885842A (zh) 一种带加速节点的片上网络的优化整体的任务映射方法
WO2023088288A1 (zh) 二部图构建方法、显示方法和装置
CN115587560A (zh) 用于分布式引擎的运行时和存储器高效的属性查询处理
CN109901189A (zh) 利用递归神经网络的三维点云跟踪装置及方法
CN103870930A (zh) 一种面向增量制造资源虚拟化的信息描述方法
CN108009099B (zh) 一种应用于K-Mean聚类算法中的加速方法及其装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201225

Address after: 245000 No.50, Meilin Avenue, Huangshan Economic Development Zone, Huangshan City, Anhui Province

Patentee after: Huangshan Development Investment Group Co.,Ltd.

Address before: Tunxi road in Baohe District of Hefei city of Anhui Province, No. 193 230009

Patentee before: Hefei University of Technology