一种二维网格片上网络的任务映射方法

文档序号:6464521阅读:124来源:国知局

专利名称::一种二维网格片上网络的任务映射方法
技术领域
:本发明涉及一种多核处理器的使用方法,是一种二维网格(2-DMesh)结构片上网络(Network-on-Chip,NoC)的任务映射方法。
背景技术
:随着半导体与集成电路技术的发展,片上系统(System-on-Chip,SoC)的集成度越来越高,单个芯片上可以集成数百个诸如微处理器、存储器、1/0接口的IP核。另一方面,嵌入式电子产品的功能越来越复杂,单处理器片上系统已无法满足嵌入式系统日益增长的功能和性能需求,多核片上系统(Multi-ProcessorSoC,MPSoC)的出现成为必然。而多核片上系统对片上通信提出了更高的要求,片上网络就是为解决纳米时代多核片上系统的全局通信而提出的。片上网络借鉴并行计算和计算机网络的设计思想,在单个硅片上构建一个采用分组交换的微网络,IP核之间通过交换机互连,并使用全局异步局部同步(GlobalAsynchronousLocalSynchronous,GALS)机制,实现多核片上系统中大量处理单元、存储单元等计算模块间的高效通信。片上网络的拓朴结构多种多样,其中二维网格具有结构简单、可扩展性好、便于实现和分析等优点,因而在片上网络领域得到了广泛的应用。随着芯片上晶体管数量发展到10亿数量级,功耗逐渐成为芯片设计的首要制约因素,基于功耗的线程与片上网络多个处理单元之间的映射方法很多,其中JingcaoHu和Marculescu,R在Computer-AidedDesignofIntegratedCircuitsandSystems,IEEETransactionsonVolume24,Issue4,April2005Pages:551-562发表的文献Energy-andperformance-awaremappingforregularNoCarchitectures中,以下简称文献1,阐述了采用分支限界思想的方法,即在获取下一个可行解的过程中,利用上界函数UBC(上界代价)和下界函数LBC(下界代价)提前终止那些不可能获得最优解的过程,从而引导该方法朝着最优解的"分支"前进。但是在该方法执行过程中,每一步都需要计算UBC和LBC,这必然会增加时间复杂度。同时该方法有可能出现多个"最优解",导致最终解的优化程度不高。
发明内容本发明目的克服现有技术中的映射方法执行时间长,最终解的优化程度不能保证的问题,从而提供一种二维网格片上网络的任务映射方法。根据本发明的一个方面,提供了一种二维网格片上网络的任务映射方法,包括下列步骤1)预分配所有线程至二维网格上的预期位置,所述线程包括可以映射至任何位置的普通线程;2)计算每个普通线程与该普通线程的预期位置附近的普通线程或空闲位置交换后的总通信功耗系数的变化量Com_diff,将所述普通线程与使Com—diff取最小的普通线程或空闲位置执行交换,直至所述所有普通线程与其预期位置附近的普通线程或空闲位置交换均使Com_diff大于或等于0;3)根据所述所有线程的位置输出映射文件。其中,所述步骤1)包括11)按照每个普通线程的通信量的大小顺序将所述普通线程列入一个队列;12)将所述队列中的第一个普通线程分配至所述二维网格的中心位置;13)根据已经分配的线程的预期位置计算待分配的普通线程预期位置。其中,所述所有线程还包括需要映射至特定位置的特殊线程。其中,所述步骤1)包括11,)将所述特殊线程列入一个队列;12,)按照每个普通线程的通信量的大小顺序将所述普通线程加入所述队列;13)根据已经分配的线程预期位置计算待分配的普通线程预期位置。其中,所述步骤13)依据如下公式根据已经分配的线程预期位置计算待分配的普通线程预期位置<formula>formulaseeoriginaldocumentpage5</formula><formula>formulaseeoriginaldocumentpage6</formula>其中Com"表示线程i、k之间的数据通信总量,X,和力分别表示线程k的x轴和y轴坐标,x,和x分别表示线程i的x轴和y轴坐标。其中,所述步骤2)包括21)将所述队列中的所有普通线程构成循环队列,任取其中一个普通线程;22)假设所述普通线程属于未映射线程,计算所述普通线程与其预期位置附近的普通线程或空闲位置交换后的总通信功耗系数的变化量Com—diff,将所述普通线程与使Com一diff取最小的普通线程或空闲位置执行交换;23)重复步骤22)直至所述所有普通线程与其预期位置附近的普通线程或空闲位置交换均^使Com—diff大于或等于0。其中,所述预期位置附近的普通线程或空闲位置是与预期位置的距离小于预定阈值的普通线程或空闲位置。其中,所述与预期位置的距离是曼哈顿距离。本发明提供一种功耗优先的片上网络映射方法,其不断调整每个线程的最优位置,使得最终解的优化程度达到最高。同时在本发明中,用户可以自行设定一个阈值,以便在方法执行时间和最终解的优化程度上作权衡,当选取较小阈值时,该方法每次循环时仅需比较几个关键点的数值,从而大幅降低了时间复杂度。并且本发明考虑并解决了部分映射的情形,即在一个NoC系统中某些线程是必须映射至特定PU上的特殊情形。图1是一个2-DMesh结构的NoC示意图2是本发明二维网格片上网络的任务映射方法实施例的流程图;图3是H.264Decoder表中数据在S=0,d=1时利用本发明任务映射方法生成的一映射结果;图4是H.264Decoder表中数据在S=1,d=2时利用本发明任务映射方法生成的另一映射结果。具体实施例方式下面结合附图对本发明的具体实施方式作进一步详细的说明。图1示出了一个4x3的2-DMesh结构的NoC的具体实施例,其中S表示交换单元,LR表示本地资源,Adapt表示适配器,PU表示处理单元,(0,0)、(0,1)、(0,2).....(3,2)表示线程映射的位置坐标(jc,少)。假设在2-DMesh中i号线程的映射位置为(x,.,x),j号线程的映射位置为(~,力)。本实施例中采用曼哈顿距离/^=^-、|+|^-力l表示线程i与线程j通信时数据的跳跃距离;本领域人员可以理解,不脱离本发明思想,也可以采用其它距离。则从线程i到线程j传输1比特数据的通信功耗为其中,五^,表示每个交换单元接收和转发1比特数据的功耗,五^表示相邻两个处理单元间传输1比特数据的线路功耗,令£^/五^=6,则有+(2)则整个系统总的通信功耗是r-i7MI=SS(c"+c"鹏+D""+,""(3)其中,T表示线程的总个数,C".表示线程i到线程j的数据流量。记Com,》.-C^.+C^表示线程i、j之间的数据通信总量,则有r-ir-i'=0/='+1(4)本发明出发点在于优化系统的通信功耗系数,从而确定使系统功耗最小的线程与片上网络多个处理单元之间的映射关系。由公式(4)可知,系统的通信功耗系数为所有线程分为两类,包括可以映射至任何位置的普通线程,和需要映射至特定位置的特殊线程。在系统中,特殊线程可能存在也可能不存在,在映射过程中只要将其映射到其特定位置即可。对于任一普通线程i,希望其映射到使上述的系统的通信功耗系数最小的位置,通过下述方式实现计算普通线程i与其预期位置附近线程(特殊线程除外)或空闲位置交换后的总通信功耗系数的变化量,将普通线程i与使得变化量最小且小于0的线程或空闲位置执行交换。线程i与其它线程和空闲位置交换后的总通信功耗系数的变化量计算如下线程i与其他所有线程的通信功耗之和的系数是"o(6)线程j与其他所有线程的通信功耗之和的系数是<formula>formulaseeoriginaldocumentpage8</formula>"(7)线程i、j交换映射位置后,线程i及线程j与其他所有线程的通信功耗之和的系数分别是<formula>formulaseeoriginaldocumentpage8</formula>,(9)因此,线程i、j交换位置后,系统总通信功耗系数的变化量为<formula>formulaseeoriginaldocumentpage8</formula>(10)若线程i与某一空闲位置(s,t)交换,即,线程i映射到空闲位置(s,t),而线程i原来所在位置变为空闲位置,则交换后线程i与其他所有线程的通信功耗之和的系数为<formula>formulaseeoriginaldocumentpage8</formula>(11)因此,线程i与空闲位置(S,t)交换后,系统总通信功耗系数的变化量为-.<formula>formulaseeoriginaldocumentpage8</formula>(12)设集合Q包含所有已映射的线程,那么待映射线程i的预期位置()在本实施例中以公式(13)计算得出,其中公式(13)中符号L」表示对符号内函数四舍五入取整,本领域内4支术人员可以理解,还可以通过其它方式计算。<formula>formulaseeoriginaldocumentpage9</formula>(13)根据上述理论计算,本发明的具体实施方式如下假设某一任务中,特殊线程数目为S,普通线程数目为T-S。将所有特殊线程列入一个排序队列,将所有普通线程也加入-该队列中,优选地普通线程可以根据该线程与队列中其它线程的通信量的大小顺序加入该队列。取一对通信量最大的线程,其中至少包含一个尚未加入队列的普通线程。若两个线程均未在队列中,则将这两个线程均附到队列末尾,他们的先后顺序取决于这两个线程与队列中其他线程的最大通信量,值大者在前;若其中一个已在队列中,则将另一个线程加在排序队列末尾。然后取下一对通信量最大的线程继续执行本操作直至所有线程都在队列中。最后将这T个线程按其在队列中的顺序编号为0~T-1。如果任务中特殊线程数目为0,则第一对线程在队列中的顺序是任意的。以H.264解码器为例,其涉及12个模块(任务),要求映射到4x4的一个2DMesh的处理器阵列中,这些模块之间的通信流量如表1所示。表1H.264解码器中模块间通信流量表<table>tableseeoriginaldocumentpage9</column></row><table><table>tableseeoriginaldocumentpage10</column></row><table>假设S-l,IP5为特殊线程,那么最初排序队列为{0>5}。取一对通信量最大的线程IP2和IP11,它们均不在队列中,由于IP2与队列中线程IP5之间的通信量大于IP11与IP5之间的通信量,故IP2优先加入队尾。因此新的排序队列为{IP5,IP2,IP11}。下一对通信量最大的线程是IP1和IP11,由于IP11已在队列中,故把IP1加入队尾即可。因此新的排序队列为{IP5,IP2,IP11,IP1},同理把IPO也加入队尾,则队列变为(IP5,IP2,IP11,IP1,IP0}。下一对信量最大的线程是IP3和IP4,它们均不在队列中,由于IP3与队列中线程通信量的最大值(与IP1的通信量)大于IP4与队列中各线程的通信量,故IP3优先加入队尾。因此新的排序队列为{IP5,IP2,IPll,IP1,IPO,IP3,IP4}。依此类推,所有线程均加入队列后,队列为{IP5,IP2,IPll,IP1,IPO,IP3,IP4,IP6,IP8,IP7,IP4,IP10}。最后按此队列顺序给这12个线程编号为0~11。根据上述公式计算使得系统的通信功耗系数最小的映射,具体步骤如下Step1:初始化二维数组A[M][N],令所有元素置为-1,表示该位置'一闲,其中M是片上网络二维网格的行数,N是二维网格的列数。若S二O,工则分配0号线程至中心位置M—12iV—1否则分配所有特殊线程到特定处理单元的对应位置,利用公式(13)计算下一线程的预期位置,取与该预期位置曼哈顿距离最短的未分配位置分配该线程,然后分配下一个线程,直至所有线程分配完毕。对于i号线程分配至(a,b)位置,令A[a][b]M,x[i]=a,y[i]=b。Step2:令unextimes=0,将排序队列中的所有T-S个普通线程构成循环队列,取此循环队列中的第一个线程。在本实施例中,以链表作为队列的具体实现。Step3:假设该线程不属于Q,利用公式(13)计算该线程的预期位置,利用公式(10)和公式(12)计算A中以该位置为中心曼哈顿距离小于等于阈值d的各个位置(特定位置及不可行位置除外)与该线程原来位置互换后的Comdiff;其中的阈值d可由用户自行设定,决定"比较位置"的菱形区域范围,d值越大菱形区域范围越大,但不得大于max(M,N),优选取值为l或2,该阈值影响整个方法的复杂度和最终解的优化程度。比较各个Com—diff,取值最小的Com_diff并记录其所对应的位置(x,y)。若Com—dif^-0,转Step4,否则转Step6。Step4:unextimes++,若unextimes=T—S,專争Step7,否则转Step5。Step5:取下一个线程,转Step3。Step6:令unextimes=0,若A[x,y^-1,将该线程分配至[x,y]位置,并将原来位置置为-l;否则将该线程与[x,y]上的线程交换位置。转Step5。Step7:根据每个线程的位置输出映射文件,结束。仍以上述H.264解码器为例,假设没有特定线程需要固定到某个特定处理单元上,设定d-l,本方法执行的结果为IPIO映射至(O,0),IP9映射至(0,2),IP7映射至(0,3),IP2映射至(1,0),IP11映射至(1,1),IPl映射至(l,2),IP3映射至(1,3),IP5映射至(2,0),IPO映射至(2,1),IP6映射至(2,2),IP4映射至(2,3),IP8映射至(3,2)。假设线程IP5必须预先映射至(3,1),设定d-2,此时本方法执行的结果为IP10映射至(3,3),IP9映射至(1,3),IP7映射至(0,3),IP2映射至(3,2),IP11映射至(2,2),IP1映射至(1,2),IP3映射至(0,2),IP5映射至(3,1),IP0映射至(2,1),IP6映射至(1,1),IP4映射至(0,1),IP8映射至(1,0)。以两段仅含有盒子和手的影片片断进行编解码操作为具体实例,其将20个线程映射至5x5的NoC中,文献1所述方法与本发明方法功耗和时间比较分别见表2和表3:表2文献1所述方法与本发明方法功耗比较表<table>tableseeoriginaldocumentpage11</column></row><table>表2和表3内数据表明,本发明的方法计算的最优解比文献1所述的最优解功耗更小;且当d-l时,求解时间更短。应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。权利要求1.一种二维网格片上网络的任务映射方法,包括下列步骤1)预分配所有线程至二维网格上的预期位置,所述线程包括可以映射至任何位置的普通线程;2)计算每个普通线程与该普通线程的预期位置附近的普通线程或空闲位置交换后的总通信功耗系数的变化量Com_diff,将所述普通线程与使Com_diff取最小的普通线程或空闲位置执行交换,直至所述所有普通线程与其预期位置附近的普通线程或空闲位置交换均使Com_diff大于或等于0;3)根据所述所有线程的位置输出映射文件。2.根据权利要求1所述的方法,其特征在于,所述步骤l)包括11)按照每个普通线程的通信量的大小顺序将所述普通线程列入一个队列;12)将所述队列中的第一个普通线程分配至所述二维网格的中心位置;13)根据已经分配的线程的预期位置计算待分配的普通线程预期位置。3.根据权利要求1所述的方法,其特征在于,所述所有线程还包括需要映射至特定位置的特殊线程。4.根据权利要求3所述的方法,其特征在于,所述步骤l)包括11,)将所述特殊线程列入一个队列;12,)按照每个普通线程的通信量的大小顺序将所述普通线程加入所述队列;13)根据已经分配的线程预期位置计算待分配的普通线程预期位置。5.根据权利要求2或4所述的方法,其特征在于,所述步骤13)依据如下公式根据已经分配的线程预期位置计算待分配的普通线程预期位置:<formula>formulaseeoriginaldocumentpage2</formula>,其中Cow^表示线程i、k之间的数据通信总量,^和^分别表示线程k的x轴和y轴坐标,x,和乂分别表示线程i的x轴和y轴坐标。6.根据权利要求2或4所述的方法,其特征在于,所述步骤2)包括21)将所述队列中的所有普通线程构成循环队列,任取其中一个普通线程;22)假设所述普通线程属于未映射线程,计算所述普通线程与其预期位置附近的普通线程或空闲位置交换后的总通信功耗系数的变化量Com一diff,将所述普通线程与使Com一diff取最小的普通线程或空闲位置执行交换;23)重复步骤22)直至所述所有普通线程与其预期位置附近的普通线程或空闲位置交换均使Com—diff大于或等于0。7.根据权利要求1所述的方法,其特征在于,所述预期位置附近的普通线程或空闲位置与预期位置的距离小于预定阈值。8.根据权利要求6所述的方法,其特征在于,所述与预期位置的距离根据曼哈顿距离计算。全文摘要本发明公开了一种二维网格片上网络的任务映射方法,包括下列步骤1)预分配所有线程至二维网格上的预期位置,所述线程包括可以映射至任何位置的普通线程;2)计算每个普通线程与该普通线程的预期位置附近的普通线程或空闲位置交换后的总通信功耗系数的变化量Com_diff,将所述普通线程与使Com_diff取最小的普通线程或空闲位置执行交换,直至所述所有普通线程与其预期位置附近的普通线程或空闲位置交换均使Com_diff大于或等于0;3)根据所述所有线程的位置输出映射文件。本发明优化程度高;用户可自行调整参数来控制时间复杂度,且解决了部分映射问题。文档编号G06F15/177GK101625673SQ20081011624公开日2010年1月13日申请日期2008年7月7日优先权日2008年7月7日发明者菲任,祥刘,张金龙,曦陈,毅黄申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1