[发明专利]一种支持多核帮助线程的低开销的块同步方法无效
申请号: | 200910085602.0 | 申请日: | 2009-05-26 |
公开(公告)号: | CN101561766A | 公开(公告)日: | 2009-10-21 |
发明(设计)人: | 古志民;郑宁汉;张轶;黄艳;唐洁;刘昌定;陈嘉;周伟峰;张博 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F12/08 |
代理公司: | 北京理工大学专利中心 | 代理人: | 张利萍 |
地址: | 100081北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 多核 帮助 线程 开销 同步 方法 | ||
技术领域
本发明涉及一种支持多核帮助线程的低开销的块同步方法,属于多核计算机技术领域。
背景技术
片上多核处理器(Chip Multi-Processor)技术是将多个计算内核有机集成在一个处理器芯片中,利用多线程技术,提高应用程序的并行执行性能的一项技术。依据Amdahl定律,程序并行执行的性能最终是由其串行部分执行的性能所决定的,而串行部分中长延迟访存引发的开销严重地影响着应用程序的性能。
通常,片上多核处理器架构具有共享的二级缓存(Level 2Cache)或最后一级缓存(Last level Cache)。传统硬件预取技术可对应用程序中的规则数据(如规则数组)进行预取,并提前送至共享缓存中,当应用程序的当前计算线程访问到这些规则数据时,往往在共享缓存中就会访问到所需数据,而不用再进行存储器访问。然而,对地址不连续的非规则数据(如非规则链表、数组的非规则访问),由于访问数据地址的不连续性,传统硬件预取技术就无法准确获取到预取数据的地址信息,因此它不会有预取效果。这种情况下,预取帮助线程的方法被提出。该方法为计算线程抽取其预取帮助线程,并通过使用空闲核,使预取帮助线程动态保持在计算线程之前访问数据,以使该数据在被计算线程访问之前被及时推送到共享缓存之中,以提高串行代码执行性能。
编译器或程序员可为应用程序生成计算线程和预取帮助线程,预取帮助线程在一个计算核中运行,计算线程在另一个计算核中运行,计算线程所需要的非规则数据可被预取帮助线程推送到共享缓存中。通常,计算线程与预取帮助线程间需要协同,以防止预取帮助线程执行的太快,造成预取的数据过早,出现需要用时可能已被缓存替换算法所替换的情况;也要防止预取帮助线程太慢,计算线程已访问过,使得预取数据已无用的情况。计算线程需要知道其预取帮助线程的执行情况,反之,预取帮助线程也需要知道其计算线程的执行情况。为了确定对方的运行位置,在计算线程和预取帮助线程中需要加入同步操作。目前的传统同步方法,在不考虑线程调度的代价下,对于每一次数据访问,预取帮助线程都会与计算线程进行一次同步,这种精确同步方式带来了严重的同步开销,并且有可能抵消预取帮助线程在降低非规则的数据缺失和减小长延迟访存上的性能获益,使得计算线程的执行性能无法得以提高。
发明内容
本发明的目的是为克服上述问题,针对非规则数据预取而提出一种支持多核帮助线程的低开销的块同步方法。其基本思想是:在共享缓存的多核架构基础上,针对多核应用中非规则数据缺失的问题,通过为预取帮助线程引入提前量和低开销的块同步机制,达到降低计算线程执行时的数据缺失、减少预取帮助线程与计算线程同步的开销,提高计算线程执行性能的目的。本发明可广泛应用于多核编译器优化及数据库性能优化等。
为了解释我们方法所涉及的步骤中有关的术语含义,首先给出这些技术术语的定义:
定义1:当前预取位置
在一个计算线程代码中,将当前需要进行预取的非规则数据的地址称为当前预取位置;
定义2:当前预取位置的计算工作量
在一个计算线程代码中,将当前预取位置和下一个预取位置间的代码执行时间称为当前预取位置的计算工作量。其中,如果这个时间为0,属于没有计算工作量的情况;如果这个时间很小,如小于几十个时钟周期,属于少计算工作量的情况;
定义3:计算线程的计算分片
在一个计算线程中,将含有大量非规则数据缺失的代码区域称为计算线程的计算分片;
定义4:共享缓存缺失的数据流
对一个计算线程的计算分片,如果它连续地大量引发了共享缓存的数据缺失,用miss1,miss2,…,missN代表缺失数据的地址,则称从miss1到missN形成的地址流所对应的数据访问序列为共享缓存缺失的数据流。
定义5:历史地址信息
在计算线程或帮助预取线程中,为了使其相关指针进行高效地跳转,需要部分记住那些跳转指针的地址,我们把这些保留的地址就称为历史地址信息。具体来说,对一个链表需要保存(链表长度/k)个指针(小数部分需要进位取整),即头指针,第k+1个指针,第2k+1个指针等,另外数组的下标也可看作这种情况的特例。这里,k为一个正整数,可通过下面具体实现步骤里的步骤一求得。
本发明的一种支持多核帮助线程的低开销块同步方法的整体框架设计流程如图1所示,具体实现步骤如下:
步骤一、构造预取帮助线程的提前量
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910085602.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种空转锁
- 下一篇:一种非吸收性材料与纯水泥基材料结合处的防水密封方法