一种静态的关键路径优先的片上网络路由优化方法

文档序号:7780554阅读:154来源:国知局
一种静态的关键路径优先的片上网络路由优化方法
【专利摘要】本发明公开了一种静态的关键路径优先的片上网络路由优化方法。其技术方案是:先使用多线程分析工具对多线程任务进行路径分析,得到多线程任务的执行流;再对多线程任务的执行流进行分析,根据所有线程执行流之间的关系,找到多线程任务的执行流中最长的执行流,该最长的执行流即为关键路径;然后对于处于关键路径上的消息,标记为关键消息;在片上路由器进行消息转发时,如果发现消息缓冲器中存在关键消息,则优先转发关键消息;如果消息缓冲器中没有关键消息,则转发一般的消息。本发明提高了关键路径的执行效率,减少整个多线程任务的执行时间。
【专利说明】一种静态的关键路径优先的片上网络路由优化方法
【技术领域】
[0001]本发明涉及片上网络路由优化【技术领域】,特别是涉及一种静态的关键路径优先的片上网络路由优化方法。
【背景技术】
[0002]根据摩尔定律,微处理器的速度以及单片集成度每18个月就会翻一番。半导体工业在近几十年的发展中一直在追随着摩尔定律的节奏,微处理器的频率也不断攀升。随着通用处理器的主频突破4GHz,人们发现单一提升主频的做法已经不能再有效地提高性能,反而却带来了功耗的急剧上涨,高频率的道路逐渐走到了尽头。
[0003]于是对于计算机处理器的研究开始转向多处理核心的方向。早期的对称多处理器(SMP, Symmetric Mult1-Processor)多是采用在同一计算机上汇集一组CPU的方式,它们之间共享内存子系统以及总线结构。之后由于纳米级制造工艺的引入,SMP开始转变为单芯片多处理器(Chip Multiprocessor, CMP),即在同一芯片上集成多个处理核心,形成了现在我们所说的多核处理器。多核处理器之间直接共享缓存以及总线结构,大大地降低了线延迟,显著提高了通讯效率。
[0004]多核处理器的各处理核执行的程序之间有时需要进行数据共享与同步,因此其硬件结构必须支持核间通信。高效的通信机制是多核处理器高性能的重要保障。目前片上高效通信机制通常有两种:基于共享总线的cache结构,基于片上网络的互连结构。基于共享总线的cache结构是指每个处理核拥有共享的二级或三级cache,用于保存比较常用的数据,并通过总线进行通信。这种系统的优点是结构简单,通信速度快;缺点是可扩展性差。
[0005]共享总线显然无法满足大规模系统的需要。把互连网络用于片上系统设计,解决片上组件之间的通讯问题,这就是片上网络。片上网络(NoC,Network On Chip)技术以其支持同时访问、可靠性高、可重用性高等特点被认为是更加理想的大规模CMP互连技术。片上网络克服了总线结构可扩展性差的缺点,为10亿晶体管时代提供了一种可行的片上系统通讯机制。片上网络除了可以连接更多的IP组件,与总线结构相比,还有可重用性等特点。
[0006]在片上系统设计中,可重用性是一个重要的设计原则。可重用性设计可以节省设计成本,提高设计的可靠性,缩短产品的上市周期。在基于总线的片上系统设计中,各个IP组件是重用的,但通讯结构却无法重用。每个设计都需要重新设计通讯结构。在片上网络中,除了各个组件是可重用的,片上通讯结构以及片上的通讯服务也是可重用的。设计新的系统时,在原有的系统上添加路由器和新的功能部件就可以了,以前的设计得到了重用,大大加快了设计的进度。同时,片上网络还具有低功耗的特点,它采用全局异步和局部同步设计,端到端的通讯方式,只有参与通讯的组件是激活的,避免了总线结构中采用广播方式进行通讯所造成的系统的功耗浪费,因此大大降低了系统的功耗。
[0007]在片上网络中,由于处理器核的数量多,采用了片上路由器来进行数据的转发,并以相应的路由方法来提高路由的效率。在一般的路由方法中,往往是将片上网络上的效率放在第一位。尽管随着片上网络的不断发展,效率、功耗等都在成为考虑的要素,更多的是考虑片上网络其网络的属性,但未从多线程任务执行流的角度来分析关键路径,并进行相关的优化。

【发明内容】

[0008]本发明旨在克服现有技术缺陷,目的在于提供一种能缩短多线程任务的执行时间的静态的关键路径优先的片上网络路由优化方法。
[0009]为实现上述目的,本发明采用的技术方案的具体步骤是:
步骤一、对多线程任务进行路径分析
使用多线程分析工具对多线程任务进行路径分析,得到多线程任务的执行流。
[0010]步骤二、获取多线程任务中的关键路径
如果所有执行流中均未发生暂停的执行流,则最长的未发生暂停的执行流即为关键路径。
[0011]如果存在一个或多个发生了暂停的执行流,则关键路径的获取方法是:
对于具有n个线程的多线程任务,n个线程对应n个执行流,对应的唤醒时刻为t0,tl,…,tp,其中:t0〈tl〈“*〈tp ;在唤醒时刻to,对n个线程执行流进行比较,选择未发生暂停的最长执行流作为多线程任务关键路径的开始执行流;在唤醒时刻tl,t2,…,tp,选择未发生暂停的最长执行流作为多线程任务关键路径的执行流,从而确定整个多线程任务的关键路径。
[0012]步骤三、标记关键消息
对于处于关键路径上的消息,标记为关键消息。
[0013]步骤四、关键消息优先的路由
在片上路由器进行消息转发时,如果消息缓冲器中存在有关键消息,则优先转发关键消息;如果消息缓冲器中未存在有关键消息,则转发一般的消息。
[0014]所述多线程分析工具为Parallel Studio或为Visual Studio。
[0015]本发明与现有技术相比,具有如下有益效果:
本发明是一种静态的关键路径优先的片上网络路由优化方法,其主要功能是对多线程任务进行静态的分析,获取多线程执行流,从而获取关键路径;通过对关键消息进行标记,在片上网络路由器进行转发时,优先转发关键消息。故具有如下两个特点:
(I)高效性。本发明通过分析多线程执行流获得关键路径,标记了关键消息,片上路由器对关键消息的优先转发,能够尽可能的缩短关键路径的执行时间,从而缩短整个多线程任务的运行时间。
[0016](2)实用性。本方法以离线方式进行多线程任务的分析,尽可能地减少运行时的计算任务,避免了在线计算对整个多线程任务产生的影响,从而具有更强的实用性。
【专利附图】

【附图说明】
[0017]图1是本发明的一种优化过程的示意框图;
图2是本发明的一种多线程任务执行流的示意图。【具体实施方式】
[0018]下面结合附图和【具体实施方式】对本发明作进一步的描述,并非对其保护范围的限制。
[0019]实施例1
一种静态的关键路径优先的片上网络路由优化方法。如图1所示,所述片上网络路由优化方法的具体步骤是:
步骤一、对多线程任务进行路径分析
利用多线程分析工具对多线程任务进行路径分析,得到多线程任务的执行流。
[0020]对于片上网络来说,处理器核的数量大,故采用网络连线的方式来连接多个处理器核。对于运行在片上网络上的任务,采用并行化处理。并行化处理的方式是以多线程方式,即任务被并行化,形成多线程任务。对于一个多线程任务,执行流为所述多线程任务所拥有的所有线程的执行时间。对于一个线程Ti来说,当线程Ti结束时,相应的执行流则终止;当线程Ti处于等待状态时,相应的执行流暂停;当多个线程同时执行时,系统中则有两个或两个以上的执行流。完成多线程任务的路径,即为多线程任务中的执行流。通过多线程分析工具,例如Parallel Studio或Visual Studio工具,可以对多线程任务的执行流进行分析,从而得到多线程任务的路径。
[0021]对具有三个线程的多线程任务,分析结果如图2所示:在多线程任务开始后,有三条执行流。由于需要等待来自线程I的唤醒消息,线程2和线程3在对应的时刻5和时刻20暂停。在时刻20,线程I唤醒线程2 ;在时刻35,线程I唤醒线程3。在时刻40,线程2由于需要等待来自线程3的唤醒消息而暂停;直到时刻75,线程3唤醒线程2。最终,线程I在时刻45终止,线程2在时 刻100终止,而线程3在时刻90终止。
[0022]步骤二、获取多线程任务中的关键路径
对多线程任务的执行流进行分析,根据所有线程执行流之间的关系,找到多线程任务的执行流中最长的执行流,该最长的执行流即为关键路径。
[0023]如果所有执行流中均未发生暂停的执行流,则最长的未发生暂停的执行流即为关键路径。
[0024]如果存在一个或多个发生了暂停的执行流,则关键路径的获取采用如下方法:
对于具有n个线程的多线程任务,n个线程对应n个执行流,对应的唤醒时刻为t0,tl,…,tp;其中:tO〈tl〈*“〈tp。在唤醒时刻t0,对n个线程执行流进行比较,选择未发生暂停的最长执行流作为多线程任务关键路径的开始执行流;在唤醒时刻tl,t2,…,tp,选择未发生暂停的最长执行流作为多线程任务关键路径的执行流。从而确定整个多线程任务的关键路径。
[0025]对于图2中的多线程任务,线程1、线程2和线程3同时开始各自对应的执行流,由于线程2的执行流和线程3的执行流分别在对应的时刻5和时刻20暂停,因此选择线程I的执行流为关键路径的开始。在第30时刻,线程I唤醒线程3,而线程I的执行流在时刻45即终止,其关键路径从线程I的执行流转到线程3的执行流;在时刻75,关键路径转至线程2的执行流,于时刻100结束。
[0026]从图2可以看出,关键路径的长短决定了多线程任务的执行时间。如果由于来自线程I的唤醒消息在片上网络中被阻塞,线程3的执行流的唤醒就会被延迟,关键路径的执行时间延长,整个多线程任务的执行之间也会被延长。
[0027]步骤三、标记关键消息
对于处于关键路径上的消息,标记为关键消息。
[0028]对于多线程任务的关键路径,在关键路径上共有m次在不同线程的执行流之间的关键路径的转移,从线程Ti的执行流到线程Tj的执行流的转移记为Trans (Ti,Tj),对应的唤醒消息记为Mij,所有的唤醒消息的集合记为M。
[0029]对于图2中的关键路径,第一次在三个线程的执行流之间的关键路径的转移,是从线程I的执行流转移到线程3的执行流,记为Trans(Tl,T3),唤醒消息为M13 ;第二次在三个线程的执行流之间的关键路径的转移,是从线程3的执行流转移到线程2的执行流,记为Trans (T3,T2),唤醒消息为M32。
[0030]步骤四、关键消息优先的路由
在片上路由器进行消息转发时,对消息缓冲器中的消息进行判断,如果消息缓冲器中存在有关键消息,则优先转发关键消息;如果消息缓冲器中未存在有关键消息,则转发一般的消息。
[0031]本【具体实施方式】是一种静态的关键路径优先的片上网络路由优化方法,其主要功能是对多线程任务进行静态的分析,获取多线程执行流,从而获取关键路径;通过对关键消息进行标记,在片上网络路由器进行转发时,优先转发关键消息。故具有如下两个特点:
(I)高效性。本【具体实施方式】通过分析多线程执行流获得关键路径,标记了关键消息,片上路由器对关键消息的优先转发,能够尽可能的缩短关键路径的执行时间,从而缩短整个多线程任务的运行时间。
[0032](2)实用性。本方法以离线方式进行多线程任务的分析,尽可能地减少运行时的计算任务,避免了在线计算对整个多线程任务产生的影响,从而具有更强的实用性。
【权利要求】
1.一种静态的关键路径优先的片上网络路由优化方法,其特征在于所述方法的具体步骤是: 步骤一、对多线程任务进行路径分析 使用多线程分析工具对多线程任务进行路径分析,得到多线程任务的执行流; 步骤二、获取多线程任务中的关键路径 如果所有执行流中均未发生暂停的执行流,则最长的未发生暂停的执行流即为关键路径; 如果存在一个或多个发生了暂停的执行流,则关键路径的获取方法是: 对于具有n个线程的多线程任务,n个线程对应n个执行流,对应的唤醒时刻为tO,tl,…,tp,其中:tO〈tl〈“*〈tp ;在唤醒时刻tO,对n个线程执行流进行比较,选择未发生暂停的最长执行流作为多线程任务关键路径的开始执行流;在唤醒时刻tl,t2,…,tp,选择未发生暂停的最长执行流作为多线程任务关键路径的执行流,从而确定整个多线程任务的关键路径; 步骤三、标记关键消息 对于处于关键路径上的消息,标记为关键消息; 步骤四、关键消息优先的路由 在片上路由器进行消息转发时,如果消息缓冲器中存在有关键消息,则优先转发关键消息;如果消息缓冲器中未存在有关键消息,则转发一般的消息。
2.根据权利要求1所述静态的关键路径优先的片上网络路由优化方法,其特征在于所述多线程分析工具为Parallel Studio或为Visual Studio。
【文档编号】H04L12/701GK103634207SQ201310686004
【公开日】2014年3月12日 申请日期:2013年12月16日 优先权日:2013年12月16日
【发明者】胡威, 邹代坤, 胡雷, 张凯, 郭宏, 徐景, 张若凡, 李伟强, 江若成, 谭练 申请人:武汉科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1