1.一种面向功耗温度的动静态相结合的NoC映射方法,所述NoC是由通讯节点及计算节点组成的片上网络,映射是将应用特征图上的各个任务映射到所述NoC的计算节点上;假设所述片上网络共有N=X×Y×Z个通讯节点,所述通讯节点的序号为0,1,…,k,…,N-1,其中,k表示第k个通讯节点的序号,X表示所述NoC的行数,Y表示所述NoC的列数,Z表示所述NoC的层数,0≤k≤N-1,其特征是,所述NoC映射方法是按如下步骤进行:
步骤1、通过面向功耗温度的离散萤火虫算法建立映射库:
步骤1.1、建立NoC温度模式:
根据N个通讯节点的最高温度所在的节点位置的所有情况建立NoC温度模式,则共有N种NoC温度模式,记所述N种NoC温度模式的序号为0,1,…,k,…,N-1,第k种NoC温度模式表示第k个通讯节点的温度最高的映射方案;
步骤1.2、利用式(1)建立所述NoC总功耗P的计算模型:
P=EbitC (1)
式(1)中,Ebit为所述NoC上单位数据的通信能耗,C为所述NoC上的通信总量;并有:
式(2)中,bi,j表示第i个任务与第j个任务之间的通信量;hi,j表示映射后第i个任务与第j个任务之间的曼哈顿距离;M表示所述应用特征图上的任务总数;2≤M≤N;
步骤1.3、利用式(3)建立所述NoC温度矩阵T的计算模型:
式(3)中,Tk为第k个通讯节点的温度;为所述NoC的热导矩阵,Gl,k为第l个通讯节点对第k个通讯节点的热导;A-1为所述热导矩阵A的逆矩阵;Pmatrix为所述NoC上所有节点的功耗矩阵;并有:Pk为第k个通讯节点的功耗;并有:
Gl,k=K×Sl,k/dl,k (4)
式(4)中,Sl,k为所述NoC上第l个通讯节点与第k个通讯节点的接触面积,K为硅热导率;dl,k为所述第l个通讯节点与第k个通讯节点的质心距离;
Pk=ERbitBk (5)
式(5)中,Bk为所述NoC上第k个通讯节点的通信带宽;ERbit为所述NoC上单位数据通信产生的能耗,并有:
ERbit=ESbit+EBbit+EWbit (6)
式(6)中,ESbit为所述NoC上单位数据通信产生的路由器内部连线功耗,EBbit为所述NoC上单位数据通信产生的缓存能耗,EWbit为所述NoC上单位数据通信产生的路由器内部连线功耗;
步骤1.4、利用式(7)建立在第k种NoC温度模式下的目标函数fk:
fk=λ1×P+λ2×max{T0,...TN-1}+λ3×Tk (7)
式(7)中,max{T0,...TN-1}表示最大节点温度;λ1、λ2、λ3为加权因子,λ1、λ2、λ3∈[0,1],且λ1+λ2+λ3=1;
步骤1.5、利用离散萤火虫算法对第k种NoC温度模式下的目标函数fk,寻找最优映射方案Mapk,从而获得N个最优映射方案{Map0,Map1,…,Mapk,…,MapN-1};由所述N个最优映射方案{Map0,Map1,…,Mapk,…,MapN-1}建立静态映射库;
步骤2、将所述静态映射库作为文本文件存入主机中;
步骤3、主机向NoC发送初始映射方案:
所述主机将任意选择的一个最优映射方案作为所述NoC的初始映射方案下载至所述NoC中;
步骤4、NoC配置映射方案:
所述NoC根据所述初始映射方案,配置所述NoC中的各个计算节点,从而完成任务映射;
步骤5、所述NoC实时监测每个通讯节点的通信量,并将进行记录;
步骤6、NoC定时向主机发送每个节点通信量:
所述NoC设置定时发送时间,在到达定时发送时间后,所述NoC将监测到的各个通讯节点上的通信量上传至主机;
步骤7、所述主机调用所述NoC温度矩阵T的计算模型获得每个通讯节点温度:
步骤8、所述主机根据最大温度节点位置匹配温度模式,调用映射库中相应映射方案:
对每个通讯节点的温度进行比较,得出最大温度所在的通讯节点序号,并从所述静态映射库中调用最大温度所在的通讯节点序号所对应的NoC温度模式作为相应通讯节点的新映射方案;
步骤9、所述主机调用所述新映射方案,并向所述NoC进行发送;
步骤10、所述NoC根据所述新映射方案配置所述NoC中的各个计算节点;从而完成新任务的映射;并返回步骤5。