一种前瞻失效线程的划分方法

文档序号:6354904阅读:207来源:国知局
专利名称:一种前瞻失效线程的划分方法
技术领域
本发明涉及一种前瞻失效线程的划分方法,属于计算机技术领域。
背景技术
目前,高性能处理器仅仅提高处理器主频和复杂的指令流水线技术已经难以显著 提高其性能,而且这样做还会导致高功耗和散热等棘手问题,因此,单片多核处理器(Chip Multi-Processors, CMP)技术成为提高处理器性能的关键技术之一。虽然CMP技术对并行 执行多线程有很好的效果,但现在大多数程序还都是串行程序,如何将这些串行程序应用 于CMP平台,并让其高效的运行,这些问题一直阻碍着高性能计算的发展。基于线程级前瞻(Thread-Level Speculative, TLS)的并行技术是解决这些问题 的主要途径之一。但是前瞻技术推断得出的结果并不一定总是正确,这表示有一部分线程 必然会前瞻失效,前瞻失效线程的重启可能造成极大的资源开销。

发明内容
本发明的目的在于针对现有技术存在问题,是提供一种前瞻失效线程的划分方 法,该方法能够对前瞻失效线程进行再次划分,消除线程间的数据相关性,减少线程的控制 开销,又能够保持线程间的访存负载平衡,减少线程重启所消耗的资源和时间。为达到上述目的,本发明的构思是将前瞻失效线程划分为更小的颗粒,在进行线 程划分时,兼顾线程的体积、线程间的数据相关性、线程间的缓存负载平衡的制约因素,其 中,线程体积为线程所含的指令数,相对均等的线程体积能够使程序加载运行过程中各个 处理器核在指令执行、访存负载更加均衡,线程的体积足够大能忽略线程的控制开销,有利 于挖掘线程级并行性,发挥多线程结构的优势。根据上述的发明构思,本发明采用下述技术方案
一种前瞻失效线程的划分方法,其特征在于,其具体操作步骤如下
A、检测前瞻失效线程;
B、对确定前瞻失效线程的描述;
C、对确定前瞻失效线程的重启范围的描述;
D、根据前瞻失效线程和前瞻失效线程的重启范围的描述求出各个失效参数的距离和 最大距离,将距离中最大距离作为前瞻失效线程划分基准N ;
E、根据步骤D得到的距离和最大距离对前瞻失效线程进行划分,合并小线程,满足划 分后的线程体积和划分基准N相近;
F、前瞻失效线程划分结束。上述步骤B中所述的对前瞻失效线程的描述,其具体描述如下
Bi、令前瞻失效线程中的任意一个前瞻失效参数^在线程Tm的第k行处第η次引入, 记为Pm (xn) =k,线程Tm的总代码行数记为Lm ;
上述步骤C中所述的对确定前瞻失效线程的重启范围的描述,其具体如下Cl、若前瞻失效线程中有一个失效参数X,则该前瞻失效线程的重启范围为=Pm(X1)到 PmOO,记为PmOO-Pm(X1),其中η为该参数最后一次调用,m为线程号;
C2、若前瞻失效线程中有多个失效参数X,y……z,则前瞻失效线程 的重启范围为该多个失效参数的重启范围的并集,记为(PmOO-Pm(X1)) U ( Pm(Yn)-Pm(Y1)) U ……U ( Pm(Zn)-Pm(Z1));
上述步骤D中所述的根据前瞻失效线程和前瞻失效线程的重启范围的描述方法求出 各个失效参数的距离和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体操作 步骤如下
首先,令前瞻失效处理中任意前瞻失效参数x、y,线程 \、τ2,X e Ti、ye 1~2,乂到7的 距离表示前瞻失效参数X到前瞻失效参数1的代码行数,记为D (X,y),然后,分别求出各个 失效参数的距离和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体如下
D1、若一个前瞻失效线程中包含一个前瞻失效参数,x=y, T1= T2,则χ到y的距离和最 大距离为D (X,y) = P1 (xn) -P1 (Xlri),N=maxD (x, y);
D2、若一个前瞻实效参数包含在多个前瞻失效线程中,x=y,T1 φ Τ2,且存在从一个前瞻
线程T1到另一个前瞻线程T2的路径》,则χ到y沿路径f的距离D I (x, y) = [L1- P1 (xn) ] + [L2-P2(Xn)];若一个前瞻线程T1到另一个前瞻线程路径 为唯一路径,则路径ι的距离和最大距 离为=D(X,y)= Dl (X,y),N=max D (x, y);
D3、若一个前瞻失效线程中包含多个前瞻失效参数,χ本y,Tl= T2,则χ到y的距离和 最大距离,D (X,y) = P1 (xn) -P1 (yn),N=maxD (χ, y)。本发明的一种前瞻失效线程的划分方法与现有技术相比较,具有如下显而易见的 突出实质性特点和显著优点该方法对前瞻失效线程进行再次划分能够消除线程间的数据 相关性,减少线程的控制开销,又能够保持线程间的访存负载平衡,增加了正确线程执行的 重用性、减少了线程重启所消耗的资源和时间。


图1是本发明的一种前瞻失效线程的划分方法的流程图。
具体实施例方式下面结合说明书附图和具体实施方式
对本发明作进一步详细的说明。本实施例所述方案的应用环境是面向多核处理器的前瞻线程并行执行环境,本实 施例不限定所述技术方案应用环境中多核处理器架构和线程划分方式。参照图1,本发明的一种前瞻失效线程的划分方法,其具体步骤如下 步骤101、检测前瞻失效线程;
步骤102、对确定前瞻失效线程进行描述,其描述如下令前瞻失效线程中的任一个前 瞻失效参数y在线程Tm的第k行第η次被引入,该前瞻失效线程中的参数的最后一次被调 用,记为Pm (yn) =k,线程Tm的代码行数记为Lm ;
步骤103、确定前瞻失效线程的重启范围,其描述如下若前瞻失效线程中有一个失效 参数y,则该前瞻失效线程的重启范围为Pffl(Y1)到?111(711),记为?111(711)- 1(71),其中,11为该参数最后一次调用,m为线程号;若前瞻失效线程中有多个失效参数x、y……z,则前瞻失 效线程的重启范围为该多个失效参数的重启范围的并集,记为(Pm(Xn)-Pm(X1)) U ( Pffl(Yn)-Pm(Y1)) U-· U ( Pm(Zn)-Pm(Z1));
步骤104、根据前瞻失效线程和前瞻失效线程的重启范围的描述求出各个失效参数的 距离和最大距离,将最大距离作为前瞻失效线程划分基准N,其具体描述如下
首先,令前瞻失效处理中任意前瞻失效参数x、y,线程T1、T2,X e τι y e τ」χ到y 的距离表示前瞻失效参数X到前瞻失效参数1的代码行数,记为D (X,y),然后,分别求出各 个失效参数的距离和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体如下 步骤1041、若一个前瞻失效线程中包含一个前瞻失效参数,x=y, T1= T2,则χ到y的距 离和最大距离为D (x, y) = P1 (xn) -P1 (Xlri),N=maxD (x, y);
步骤1042、若一个前瞻实效参数包含在多个前瞻失效线程中,x=y, T1 # T2,且存在从
一个前瞻线程T1到另一个前瞻线程T2的路径I,则χ到y沿路径?的距离D I (x, y) = [Lr P1 (xn) ] + [L2- P2 (xn)];若一个前瞻线程T1到另一个前瞻线程路径 为唯一路径,则路径 的 距离和最大距离为=D(X,y)= D (x y), N=max D (χ, y);
步骤1043、若一个前瞻失效线程中包含多个前瞻失效参数,χ工y,Tl= T2,则χ到y的 距离和最大距离,D (x, y) = P1 (xn) -P1 (yn),N=maxD (χ, y);
步骤105、根据步骤104所求出的距离和最大距离将前瞻失效线程进行划分,合并小线 程,满足线程体积和划分基准N相近;
步骤106、前瞻失效线程划分结束。
以上是对本发明的一种前瞻失效线程的划分方法详细的介绍,本发明结合说明书 附图和具体实施例进行阐述只是用于帮助理解本发明的方法和核心思想;同时,对于本领 域的一般技术人员,依据本发明的方法和思想,在具体实施方式
和应用范围上均会有改变 之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种前瞻失效线程的划分方法,其特征在于该方法是将前瞻失效线程划分为更小 的颗粒,在进行线程划分时,兼顾线程的体积、线程间的数据相关性、线程间的访存负载平 衡的制约因素,其中,线程的体积为线程所含的指令数,相对均等的线程体积能够使程序加 载运行过程中各个处理器核在指令执行、访存负载更加均衡,线程的体积足够大能忽略线 程的控制开销,有利于挖掘线程级并行性,发挥多线程结构的优势,其具体步骤如下A、检测前瞻失效线程;B、对确定前瞻失效线程的描述;C、对确定前瞻失效线程的重启范围的描述;D、根据前瞻失效线程和前瞻失效线程的重启范围的描述求出各个失效参数的距离和 最大距离,将距离中最大距离作为前瞻失效线程划分基准N;E、根据步骤D得到的距离和最大距离对前瞻失效线程进行划分,合并小线程,满足划 分后的线程体积和划分基准N相近;F、前瞻失效线程划分结束。
2.根据权利要求1所述的一种前瞻失效线程的划分方法,其特征在于,上述步骤B中所 述的对前瞻失效线程的描述,其具体描述如下Bi、令前瞻失效线程中的任意一个前瞻失效参数^在线程Tm的第k行处第η次引入, 记为Pm (xn) =k,线程Tm的总代码行数记为Lm。
3.根据权利要求2所述的一种前瞻失效线程的划分方法,其特征在于,上述步骤C中所 述的对确定前瞻失效线程的重启范围的描述,其具体如下Cl、若前瞻失效线程中有一个失效参数X,则该前瞻失效线程的重启范围为=Pm(X1)到 PmOO,记为PmOO-Pm(X1),其中η为该参数最后一次调用,m为线程号;C2、若前瞻失效线程中有多个失效参数X,y……z,则前瞻失效线程 的重启范围为该多个失效参数的重启范围的并集,记为(PmOO-Pm(X1)) U ( Pm (yn) -Pm (Y1)) U ……U (Pm (zn) -Pm (Z1))。
4.根据权利要求2所述的一种前瞻失效线程的划分方法,其特征在于,上述步骤D中所 述的根据前瞻失效线程和前瞻失效线程的重启范围的描述方法得出各个失效参数的距离 和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体操作步骤如下首先,令 前瞻失效处理中任意前瞻失效参数χ、y,线程 \、Τ2,χ e 1\、y G Τ2,χ到y的距离表示前 瞻失效参数χ到前瞻失效参数1的代码行数,记为D (X,y),然后,分别求出各个失效参数的 距离和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体如下D1、若一个前瞻失效线程中包含一个前瞻失效参数,x=y, T1= T2,则χ到y的距离和最 大距离为D (X,y) = P1 (xn) -P1 (Xlri),N=maxD (x, y);D2、若一个前瞻实效参数包含在多个前瞻失效线程中,x=y,T1 * T2,且存在从一个前瞻线程T1到另一个前瞻线程T2的路径f ,则χ到y沿路径I的距离D i (x, y) = [L1- P1 (xn) ] + [L2-P2(Xn)];若一个前瞻线程T1到另一个前瞻线程路径/为唯一路径,则路径的距离和最大距 离为=D (X,y)= Df (x, y),N=max D ‘ (x, y);D3、若一个前瞻失效线程中包含多个前瞻失效参数,χ + y,Tl= T2,则χ到y的距离和 最大距离,D (X,y) = P1 (xn) -P1 (yn),N=maxD (χ, y)。
全文摘要
本发明公开了一种前瞻失效线程的划分方法,其具体步骤如下A、检测前瞻失效线程;B、对确定前瞻失效线程的描述;C、对确定前瞻失效线程的重启范围的描述;D、根据前瞻失效线程和前瞻失效线程的重启范围的描述求出各个失效参数的距离和最大距离,将的距离中距离最大距离作为前瞻失效线程划分基准N;E、根据步骤D得到的距离和最大距离对前瞻失效线程进行划分,合并小线程,满足新的线程体积和划分基准N相近;F、前瞻失效线程划分结束。该方法能够消除线程间的数据相关性,减少线程的控制开销,减少了线程重启所消耗的资源和时间。
文档编号G06F9/38GK102073482SQ201110045350
公开日2011年5月25日 申请日期2011年2月25日 优先权日2011年2月25日
发明者吴悦, 徐振坤, 杨旭涛, 杨洪斌, 赵文江 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1