用于重启优化的前瞻线程颗粒及其构造方法

文档序号:6482443阅读:153来源:国知局
专利名称:用于重启优化的前瞻线程颗粒及其构造方法
技术领域
本发明涉及计算机领域,提出了一种用于重启优化的前瞻线程颗粒及其构造方法。
背景技术
计算机技术的不断发展和应用领域的广泛深入都对处理器性能有了更高的要求。但是传 统的提高处理器性能的手段,例如提高处理器晶体管的集成度、提高处理器时钟频率等受到 了极大地限制。这些限制包括处理器工艺和时钟频率己接近极限,其提升变得越来越困难; 随着时钟频率的增加,处理器功耗越来越大,并且散热问题也成为影响处理器性能稳定发挥 的关键问题。
在这样的背景下,单片多核处理器(Chip Multi-Processors, CMP)技术成为最受关注的 新技术之一。单片多核技术通过在一块芯片上集成多个相对简单的微处理器核心来并行执行 程序,提高系统性能。利用CMP技术提高系统性能的关键是全面发挥多个微处理器核心的并 行优势。由于并行程序难以编写和调试,所以当前研究多采用并行编译技术将串行程序编译 为能够并行执行的若千线程。这样就能达到充分利用单片多核处理器的并行资源的目的。因 为串行程序中各个语句之间存在一定的控制依赖和数据依赖,所以大多采用前瞻技术推断线 程中相互依赖变量的值以消除线程之间的依赖关系,实现线程的并行执行。前瞻技术推断得 出的结果并不一定总是正确的,当前瞻技术推断失效时,必须重启失效的线程,但重启线程 的时间开销和资源开销极大,甚至抵消了串行程序并行带来的收益,因此,优化线程重启被 称为串行程序并行化的关键技术之一,有必要进一步细化线程,减小线程粒度。当线程发生 前瞻失效时,只重启该线程的若干必需部分即可,而不需重启整个线程。

发明内容
本发明要解决的技术问题是提供一种用于重启优化的前瞻线程颗粒及其构造方法,该前 瞻线程颗料能根据前瞻线程的输入参数在前瞻线程失效时对前瞻线程颗粒的影响来设计控制 前瞻线程颗粒重启优化,进而利用该结构优化前瞻线程失效时的重启操作。
该方法能根据前瞻线程的输入参数对前瞻线程颗粒的影响来设计前瞻线程颗粒重启优化 控制结构,尽可能减少前瞻失效时的不必要的程序语句的执行,降低前瞻线程重启操作的时 间开销和资源开销。
为了达到上述目的,本发明的用于重启优化的前瞻线程颗粒的技术方案是该前瞻线程 颗粒由输入参数标识部分、执行部分、结果存储部分组成,输入参数标识部分由N + 1个依 次排列的二进制位构成,它用于标识前瞻线程颗粒是否使用了所述输入参数标识位组对应的
4输入参数;执行部分由前瞻线程中的若干程序语句构成,用于存储所述前瞻线程颗粒的执行 语句;结果存储部分用于存储前瞻线程颗粒的执行结果。
根据上述的发明构思,本发明的用于重启优化的前瞻线程颗粒的构造方法的技术方案是 它是根据甜瞻线程中各条程序语句对输入参数的使用情况,将前瞻线程细化构造为用于重启 优化的前瞻线程颗粒,其具体操作步骤如下
A、 构造前瞻线程颗粒的符号集;
B、 按照前瞻线程颗粒的符号集的生成规则,将前瞻线程中各条程序语句分配到步骤A所 述的对应的前瞻线程颗粒中
C、 调整步骤B所述的前瞻线程颗粒中的程序语句的顺序;
D、 填写控制前瞻线程颗粒重启优化的结构。
上述步骤A中的前瞻线程颗粒的符号集是由前瞻线程中的各条程序语句包含的常量符 号、变量符号构成的集合;构造前瞻线程颗粒的符号集的操作步骤如下 Al、构造以输入参数为元素的集合的幂集;
A2、以步骤Al所述幂集中的集合为初始元素构造前瞻线程颗粒的符号集。 上述步骤B中的前瞻线程颗粒的符号集的生成规则如下
元素个数为0的前瞻线程颗粒的符号集由前瞻线程中的局部变量符号、局部常量符号以 及仅依赖于所述局部变量符号、局部常量符号的变量符号构成;
元素个数为1的前瞻线程颗粒的符号集由所述元素以及仅依赖于所述元素的变量符号构
成;
元素个数大于1的前瞻线程颗粒的符号集由同时依赖于符号集初始元素中的所有元素的 变量符号构成,
上述步骤B中的将前瞻线程中各条程序语句分配到上述步骤A所述的对应的前瞻线程颗 粒中的操作步骤如下
Bl按照线程中各条程序语句的执行顺序依次分析; B2分析当前程序语句中目标符号及其所依赖源符号;
B3按照前瞻线程颗粒的符号集的生成规则将目标符号添加到相应的前瞻线程颗粒的符 号集中;
B4将步骤B2所述的程序语句添加到步骤B3所述的符号集对应的前瞻线程颗粒中; B5判断前瞻线程中程序语句是否已分析完毕,如果是,则本步骤完毕;否则转步骤B1; 上述的步骤B2中的目标符号是指用于程序语句计算结果的变量符号;源符号是指用于计算所述的目标符号的常量符号或者变量符号,
上述步骤C中需要调整的前瞻线程颗粒是指调整所含程序语句的地址不连续的前瞻线程 颗粒;调整所述的前瞻线程颗粒的操作步骤如下-
Cl、根据前瞻线程颗粒的符号集中初始元素中元素数目由多到少依次分析;
C2、判断所述前瞻线程颗粒是否由其符号集的真子集对应的前瞻线程颗粒中断,如果是,
则转步骤C3;否则转步骤C5;
C3、判断步骤C2所述真子集中所依赖的源符号是否发生变化,如果是,则转步骤C5;
否则转步骤C4;
C4、将所述前瞻线程颗粒被中断部分与中断所述前瞻线程颗粒的前瞻线程颗粒互换顺序;
C5、判断当前前瞻线程颗粒是否已调整完毕,如果是则转步骤C1;否则转步骤C2。 上述的步骤D的填写控制前瞻线程颗粒重启优化的结构操作步骤如下 Dl、逐个分析巳构造的前瞻线程颗粒的符号集;
D2、判断步骤Dl所述的前瞻线程颗粒是否使用了前瞻的输入参数,如果是,则转步骤 D3,否则转步骤D4;
D3、将步骤Dl所述的结构的输入参数标识部分的第1个二进制位置1,将前瞻的输入参 数对应的二进制位置l,将其它二进制位置0,转步骤D1;
D4、将步骤D1所述的结构的输入参数标识部分的所有二进制位置0,转步骤D1。 本发明用于重启优化的前瞻线程颗粒及其构造方法与已有技术相比较具有如下显而易见 的突出实质性特点和显著优点该颗粒能够迅速由前瞻线程细化构造为前瞻线程颗粒,该构 造方法能根据前瞻线程的输入参数对前瞻线程颗粒的影响来设计前瞻线程颗粒重启优化控制 结构,尽可能减少前瞻失效时的不必要的程序语句的执行,降低前瞻线程重启操作的时间开 销和资源开销,减小线程粒度。当线程发生前瞻失效时,只重启该线程的若干必需部分即可, 而不需重启整个线程,降低前瞻失效时的线程重启代价。


图1是本发明的用于重启优化的前瞻线程颗粒的结构示意图2是本发明的用于重启优化的前瞻线程颗粒的构造方法中的生成前瞻线程颗粒操作的 流程具体实施例方式
本发明的一个优选实施例结合附图详述如下本实施例所述方案的应用环境是面向多核 处理器的并行前瞻线程级执行环境,本实施例不限定所述技术方案应用环境中多核处理器架 构和线程调度方式。
下面结合说明书附图和具体实施方式
对本发明作进一步详细的说明。
如图1所示,上述用于重启优化的前瞻线程颗粒由输入参数标识部分、执行部分、结果 存储部分组成,输入参数标识部分由N + 1个依次排列的二进制位构成,它用于标识前瞻线 程颗粒的输入参数是否是前瞻线程的输入参数,执行部分由前瞻线程中的若干程序语句构成; 结果存储部分用于存储前瞻线程颗粒的执行结果。
标识101所示,上述输入参数标识位组的第1个二进制位,用于判断前瞻线程颗粒的输 入参数是否是前瞻线程的输入参数,如果第1个二进制为1,则前瞻线程颗粒包含的输入参 数是前瞻的;否则前瞻线程颗粒包含的输入参数不是前瞻的。
标识102所示,上述输入参数标识位组的第2个二进制位,标识前瞻线程颗粒是否使用了第 2个二进制位对应的输入参数及该输入参数是否是前瞻线程的输入参数。如果上述第2个二 进制位为l,则表明前瞻线程颗粒使用了该输入参数,且该输入参数是前瞻线程的输入参数; 否则表明前瞻线程颗粒没有使用该输入参数或者该输入参数不是前瞻线程的输入参数。
标识103所示,上述输入参数标识位组的第n个二进制位,标识前瞻线程颗粒是否使用 了第n个二进制位对应的输入参数及该输入参数是否是前瞻线程的输入参数。
参照图2,示出了本发明中的生成前瞻线程颗粒操作的流程图。
步骤201、按照线程中各条程序语句的执行顺序依次分析。
步骤202、分析当前程序语句中目标符号及其所依赖源符号,上述目标符号是用于存储此 条程序语句要计算出的结果,该目标符号实际上是一个变量符号;分析出程序语句中新增加 的变量符号。分析目标符号所依赖的源符号是指分析目标符号是由哪些源符号计算得出的, 分析出源符号后,将目标符号归类。
步骤203、按照前瞻线程颗粒的符号集的生成规则将目标符号添加到相应的前瞻线程颗粒 的符号集中。
步骤104、将程序语句添加到前瞻线程颗粒的符号集对应的前瞻线程颗粒中。 步骤105、判断前瞻线程中程序语句是否已分析完毕,如果是,则本步骤完毕;否则转步 骤201。
本发明中的调整前瞻线程颗粒操作的步骤如下
7步骤301、根据前瞻线程颗粒的符号集中初始元素中元素数目由多到少依次分析。前瞻线 程颗粒对应的前瞻线程符号集对应的幂集中对应集合的元素决定了该符号集中目标符号所依 赖的源符号的多少,将从所依赖的源符号由多到少依次判断。
步骤302、判断所述前瞻线程颗粒是否由其符号集的真子集对应的前瞻线程颗粒中断。 如果所述前瞻线程颗粒由其所对应集合的真子集对应的前瞻线程颗粒中断,则执行步骤
303,
步骤303、判断所述真子集中所依赖的源符号是否发生变化。
如果所述真子集中所依赖的源符号发生变化,则不能调整前瞻线程颗粒中的程序语句的 顺序;如果没有发生变化,则执行步骤304的调整操作。
步骤304、将前瞻线程颗粒被中断部分与中断所述前瞻线程颗粒的前瞻线程颗粒互换顺序。
步骤305、判断当前前瞻线程颗粒是否已调整完毕。
以上对本一种用于重启优化的前瞻线程颗粒及其构造方法,进行了详细的介绍。本文结 合说明书附图和具体实施例进行阐述只是用于帮助理解本发明的方法和核心思想;同时,对 于本领域的一般技术人员,依据本发明的方法和思想,在具体实施方式
和应用范围上均会有 改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种用于重启优化的前瞻线程颗粒,它由输入参数标识部分、执行部分、结果存储部分组成,输入参数标识部分由N+1个依次排列的二进制位构成,它用于标识前瞻线程颗粒是否使用了所述输入参数标识位组对应的输入参数;执行部分由前瞻线程中的若干程序语句构成,用于存储所述前瞻线程颗粒的执行语句;结果存储部分用于存储前瞻线程颗粒的执行结果。
2. —种根据权利要求1所述的用于重启优化的前瞻线程颗粒的构造方法,其具体操作步骤如 下A、 构造前瞻线程颗粒的符号集;B、 按照前瞻线程颗粒的符号集的生成规则,将前瞻线程中各条程序语句分配到步骤A所 述的对应的前瞻线程颗粒中;C、 调整步骤B所述的前瞻线程颗粒中的程序语句的顺序;D、 填写控制前瞻线程颗粒重启优化的结构。
3. 根据权利要求2所述的用于重启优化的前瞻线程颗粒的构造方法,其特征是,上述步骤A 中的前瞻线程颗粒的符号集是由前瞻线程中的各条程序语句包含的常量符号、变量符号构 成的集合;构造前瞻线程颗粒的符号集的操作步骤如下-Al、构造以输入参数为元素的集合的幂集;A2、以步骤Al所述幂集中的集合为初始元素构造前瞻线程颗粒的符号集。
4. 根据权利要求3所述的用于重启优化的前瞻线程颗粒的构造方法,其特征是,上述步骤B 中的前瞻线程颗粒的符号集的生成规则如下元素个数为0的前瞻线程颗粒的符号集由前瞻线程中的局部变量符号、局部常量符号以 及仅依赖于所述局部变量符号、局部常量符号的变量符号构成;元素个数为1的前瞻线程颗粒的符号集由所述元素以及仅依赖于所述元素的变量符号构成;元素个数大于1的前瞻线程颗粒的符号集由同时依赖于符号集初始元素中的所有元素的 变量符号构成。
5. 根据权利要求4所述的用于重启优化的前瞻线程颗粒的构造方法,其特征在于,上述步骤 B中的将前瞻线程中各条程序语句分配到上述步骤A所述的对应的前瞻线程颗粒中的操作 步骤如下Bl按照线程中各条程序语句的执行顺序依次分析; B2分析当前程序语句屮目标符号及其所依赖源符号;B3按照前瞻线程颗粒的符号集的生成规则将目标符号添加到相应的前瞻线程颗粒的符 号集中;B4将步骤B2所述的程序语句添加到步骤B3所述的符号集对应的前瞻线程颗粒中; B5判断前瞻线程中程序语句是否已分析完毕,如果是,则本步骤完毕;否则转步骤B1。
6. 根据权利要求5所述的用于重启优化的前瞻线程颗粒的构造方法,其特征在于,上述的步 骤B2中的目标符号是指用于程序语句计算结果的变量符号;源符号是指用于计算所述的 目标符号的常量符号或者变量符号。
7. 根据权利要求6所述的用于重启优化的前瞻线程颗粒的构造方法,其特征在于,上述步骤 C中需要调整的前瞻线程颗粒是指调整所含程序语句的地址不连续的前瞻线程颗粒;调整 所述的前瞻线程颗粒的操作步骤如下C丄、根据前瞻线程颗粒的符号集中初始元素中元素数目由多到少依次分析; C2、判断所述前瞻线程颗粒是否由其符号集的真子集对应的前瞻线程颗粒中断,如果是, 则转步骤C3;否则转步骤C5;C3、判断步骤C2所述真子集中所依赖的源符号是否发生变化,如果是,则转步骤C5;否则转步骤C4;C4、将所述前瞻线程颗粒被中断部分与中断所述前瞻线程颗粒的前瞻线程颗粒互换顺序;C5、判断当前前瞻线程颗粒是否已调整完毕,如果是则转步骤C1;否则转步骤C2。
8、根据权利要求7所述的用于重启优化的前瞻线程颗粒及其构造方法,其特征在于,上述的步骤D的填写控制前瞻线程颗粒重启优化的结构操作步骤如下 Dl、逐个分析已构造的前瞻线程颗粒的符号集;D2、判断步骤Dl所述的前瞻线程颗粒是否使用了前瞻的输入参数,如果是,则转步骤 D3,否则转步骤D4;D3、将歩骤D1所述的结构的输入参数标识部分的第1个二进制位置1,将前瞻的输入参数对 应的二进制位置l,将其它二进制位置0,转步骤D1;D4、将步骤D1所述的结构的输入参数标识部分的所有二进制位置0,转步骤D1。
全文摘要
本发明公开了一种用于重启优化的前瞻线程颗粒及其构造方法,该颗粒由输入参数标识部分、执行部分、结果存储部分组成。该方法的步骤如下A.构造前瞻线程颗粒的符号集;B.按照前瞻线程颗粒的符号集的生成规则,将前瞻线程中各条程序语句分配到步骤A所述的对应的前瞻线程颗粒中;C.调整步骤B所述的前瞻线程颗粒中的程序语句的顺序;D.填写控制前瞻线程颗粒重启优化的结构。该方法能根据前瞻线程的输入参数对前瞻线程颗粒的影响来设计前瞻线程颗粒重启优化控制结构,减少失效时的不必要的程序语句执行,降低线程重启操作时间开销和资源开销。当线程发生前瞻失效时,只重启该线程的若干必需部分即可,降低前瞻失效时的线程重启代价。
文档编号G06F9/38GK101582024SQ20091004831
公开日2009年11月18日 申请日期2009年3月26日 优先权日2009年3月26日
发明者悦 吴, 唐立三, 磊 徐, 杨洪斌, 雷超付, 琛 黎 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1