[发明专利]一种前瞻失效的线程识别方法无效
申请号: | 201010132001.3 | 申请日: | 2010-03-25 |
公开(公告)号: | CN101814019A | 公开(公告)日: | 2010-08-25 |
发明(设计)人: | 杨洪斌;黎琛;吴悦 | 申请(专利权)人: | 上海大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/445 |
代理公司: | 上海上大专利事务所(普通合伙) 31205 | 代理人: | 陆聪明 |
地址: | 200444*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 前瞻 失效 线程 识别 方法 | ||
技术领域
本发明涉及计算机领域,提出了一种前瞻失效的线程识别方法。
背景技术
在个人计算机中,随着单处理机性能开发面临高功耗和硬件设计异常困难等棘手问题, 从而使得单片多核处理器(Chip Multi-Processors,CMP)技术成为主流。CMP在一个芯片上 集成多个微处理器核心,每个核心实质上都是一个相对简单的微处理器,多个核心并行执行 程序代码。具有较高线程级并行性的应用可以很好地利用这种结构来提高性能。采用并行程 序设计语言设计的应用程序虽从CMP技术获益颇多。然而,并行程序设计和调试难度极大; 串行程序虽易于设计和调试,却难以利用CMP技术的并行特性。在串行程序资源丰富的情况 下,串行程序的划分方法受到了广泛的重视,将串行程序划分为若干线程,将这些线程放入 CMP中并行执行,能提升整个串行程序的运行效率。但是划分后的许多线程间存在数据相关, 阻碍了线程的并行执行,为此,引入了线程级前瞻(Thread-Level Speculative,TLS)技术, 来突破该瓶颈。TLS技术是在线程引入的参数还无法确定的情况下,通过数据推测方法,推 断参数值,提前执行线程,从而保证线程的并行执行。其中,被推测的参数即为前瞻参数, 引用前瞻参数的线程为前瞻线程。
采用线程级前瞻技术能提高线程的执行效率,屏蔽长延时操作。但当某个线程中引入的 前瞻参数失效时,必须利用一个证实其失效的正确参数重启上述某个线程,以确保整个程序 结果正确。但是重启某一线程需要额外花费时间和资源,如果重启的线程较多,将导致并行 线程的执行效率非常低,甚至低于其在单片单核处理器执行效率。因此,通过识别前瞻失效 的线程,及时找出与之相关的线程并启动重启程序,在前瞻技术中显得尤为重要。
发明内容
为解决上述现有技术存在的技术问题,本发明的目的是提供一种前瞻失效的线程识别方 法,该识别方法在前瞻线程的重启判断中能够利用前瞻参数与失效线程的关系及时找出与之 相关的线程,并启动重启程序,提高并行线程的执行效率。
为达到上述目的,本发明的构思是:在前瞻线程的重启判断中,根据前瞻参数及其在线 程中的使用情况涉及一种用于及时认出前瞻失效的线程识别方法,及时找出与之相关的线程, 并启动重启程序。
根据上述的发明构思,本发明采用下述技术方案:
一种前瞻失效的线程识别方法,其步骤包括如下:
(1)、构造识别结构;
(2)、判断上述识别结构中前瞻部分所存储的前瞻参数值是否正确,查询上述识别结构中 实际执行部分中所存储的实际计算出该前瞻参数值的线程号是否已计算出该参数值,若实际 执行部分中所存储的线程号已计算出该参数的实际值,且该值与对应的识别结构中的前瞻参 数值相同,则表示前瞻有效,转步骤(3);若不相同,则表示前瞻失效,若前瞻失效,转步骤 (4);
(3)、若前瞻有效,引用这个前瞻参数的线程结果有效;
(4)、若前瞻失效,前瞻引用部分的若干线程号和上述线程列表标识位组中的n个二进制 位进行一一对应,对于数值为“1”的二进制位对应的线程号所指的线程需要重启。
上述步骤(1)所述的构造识别结构,其各组成部分如下:
(11),前瞻部分,用于存储前瞻参数值;
(12),实际执行部分,用于存储实际计算出上述前瞻部分中的前瞻参数值的线程号,该 线程号所指线程通过计算得出参数值,并与上述前瞻参数值相比较,从其比较结果确定前瞻 成功或前瞻失效;
(13),前瞻引用部分,用于存储引入上述前瞻部分中的前瞻参数值,作为线程参数的若 干个线程号;
(14),上述线程列表标识位组,由n个二进制位组成,n代表上述前瞻引用部分中存储 的线程号的个数。
本发明的一种前瞻失效的线程识别方法与现有的技术相比具有如下优点是:该识别方法 应用于单片多核处理器平台,在引用了前瞻技术的多线程并行执行时,能及时跟踪前瞻参数 的正确性,对前瞻失效的参数及时找出与之相关的线程并判定该线程是否失效;该方法在线 程级前瞻的使用过程中,某一个线程可以派生出若干个前瞻线程,形成前瞻与被前瞻的关系, 使得所有线程间的关系交错复杂,该方法理清了前瞻参数与前瞻线程以及前瞻线程互相之间 的关系,该识别方法通过识别结构二进制位的运用,在前瞻线程的重启判断中能够及时找出 与之相关的线程,并启动重启程序,提高并行线程的执行效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大学,未经上海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010132001.3/2.html,转载请声明来源钻瓜专利网。