[发明专利]串行程序线程级推测执行能力评估方法和评估器有效
申请号: | 201010278549.9 | 申请日: | 2010-09-07 |
公开(公告)号: | CN102063289A | 公开(公告)日: | 2011-05-18 |
发明(设计)人: | 安虹;任永青;孙涛;邓春华;毛梦捷;刘扬 | 申请(专利权)人: | 中国科学技术大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/50 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 逯长明 |
地址: | 230026*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 串行 程序 线程 推测 执行 能力 评估 方法 | ||
技术领域
本申请涉及微处理器芯片结构设计领域,特别涉及一种串行程序线程级推测执行能力评估方法和评估器。
背景技术
随着半导体技术的发展,将多个处理器核集成到单个芯片的多核技术已经成为微处理器设计主流的方案。与传统单核结构中的资源分时复用机制不同,多核处理器需要根据应用程序实际执行的需求,在空间域对芯片资源进行划分。由于大部分应用程序都是采用串行编程模型设计,为充分利用微处理器多核结构的资源优势,线程级推测执行技术成为普遍采用的技术之一。线程级推测执行技术是为了打破应用程序执行的串行性,对应用程序进行切分,形成以代码段为粒度的线程执行单位,通过推测应用程序的执行路径,即推测地并行执行按照串行顺序应该执行的代码段序列,实现多个线程在多个处理器核上并行执行,使应用程序执行性能得到提升。
不同串行应用之间以及单个程序内部不同执行阶段的线程推测执行能力是存在差异的,在线程推测执行能力强的程序区域,推测执行可以发挥多核处理器平台的并行优势,使得应用程序性能得到提升,但是对于线程推测执行能力弱的程序区域,错误的推测执行则会造成多核处理器平台计算资源和功耗的浪费,对应用程序性能起不到提升作用,因此,如何评估不同串行应用和单个程序内部不同执行阶段的线程推测执行能力成为多核结构设计关注的重要问题。当前,通常采用软件和硬件相结合的机制来实现对串行程序线程级推测执行能力的估算,其主要实现方式如下:由处理器提供的计数器获取并统计串行程序当前执行阶段在处理器上的运行信息,具体包括:某段时间内的Cache缺失率、ILP(Instruction-Level-Parallelism,指令级并行性)、I/O访问次数、程序的执行效率等,由操作系统或其它功能软件对所述运行信息进行统计分析等处理,估算串行程序当前运行的执行阶段的线程级推测执行能力,并根据估算的线程级推测执行能力,完成对多核处理器资源的分配决策,实现根据串行程序单个执行阶段的执行状态的调整每个任务阶段的资源数量。
通过对现有技术的研究,发明人发现,现有的串行程序线程级推测执行能力评估方案需要在串行程序当前任务阶段的执行过程中,由处理器的性能计数器统计其运行信息,并由操作系统或其它功能软件对这些运行信息进行分析和处理后,才能对当前阶段的线程级推测执行能力进行评估,并根据评估结果为当其分配处理器资源,因此这种方案在为串行程序的任务阶段分配处理器资源时,不仅存在一定的时间滞后性,而且评估的开销较大,无法充分发挥串行程序的并行执行能力,影响多核平台上串行程序的执行效率的提高。
发明内容
为解决上述技术问题,本申请的目的在于提供一种完全硬件实现的串行程序线程级推测执行能力评估方法和评估器,以实现在串行程序的一个任务阶段执行之前,预先评估该任务阶段的线程级推测执行能力,使后续执行可以根据预估的推测执行能力,及时的为其分配处理器资源,以充分发挥串行程序的并行执行能力,提高多核平台上串行程序的执行效率。
为实现上述目的,本发明提供了如下技术方案:
一种串行程序线程级推测执行能力评估方法,包括:
从串行程序一个执行阶段的非推测线程开始计数,获取该执行阶段正确推测线程数目,得到该执行阶段的线程推测深度值;
确定所述执行阶段的线程推测深度值为所述执行阶段的下一次执行时的线程级推测执行能力评估值。
本发明还提供了串行程序线程级推测执行能力评估方法的另一种实现方式,包括:
从串行程序一个执行阶段的非推测线程开始计数,获取该执行阶段正确推测线程数目,并确定为该执行阶段的线程推测深度值;
按照上述方式分别获取串行程序的多个已执行阶段的线程推测深度值;
确定获取到的多个已执行阶段的线程推测深度值的均值作为所述串行程序的下一个执行阶段的线程级推测执行能力评估值。
结合上述两种实现方式,本发明提供了串行程序线程级推测执行能力评估方法的又一种实现方式,包括:
从串行程序一个执行阶段的非推测线程开始计数,获取该执行阶段正确推测线程数目,并确定为该执行阶段的线程推测深度值;
按照上述方式分别获取串行程序的多个已执行阶段的线程推测深度值,并按照每个执行阶段的非推测线程为索引将该执行阶段的线程推测深度值存储到推测深度局部历史表中;
使用当前执行阶段的非推测线程为索引访问推测深度局部历史表,作为当前执行阶段线程级推测执行能力的第一评估值;
确定所述多个已执行阶段的线程推测深度值的平均值作为当前执行阶段线程级推测执行能力的第二评估值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010278549.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可调式行波磁场细化铝合金的精密铸造方法
- 下一篇:一种碳素钢及其制造方法