[发明专利]一种降低多线程程序功耗的方法及系统有效
申请号: | 201310233401.7 | 申请日: | 2013-06-13 |
公开(公告)号: | CN103324269A | 公开(公告)日: | 2013-09-25 |
发明(设计)人: | 尹一笑;陈云霁;胡伟武 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F1/32 | 分类号: | G06F1/32 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 降低 多线程 程序 功耗 方法 系统 | ||
技术领域
本发明涉及在多核处理器上降低多线程程序功耗技术领域,尤其涉及到降低多线程程序锁机制导致的功耗开销。
背景技术
随着芯片集成了越来越多的晶体管,设计单核高性能处理器变得越来越复杂和难于验证,而设计由若干简单的处理器核组成的片上多核处理器CMPs(Chip multi processors)却是一种高效且简单的方法。CMPs是高性能处理器设计的趋势。在程序编译或运行阶段,CMPs开发了程序更粗粒度的并行(线程或进程级),而不是传统的指令级并行。
降低功耗已经成为高性能处理器设计的一个非常重要的目标。高功耗不仅限制了便携设备的续航能力,也使得在大规模的计算设备上的散热和供电变得复杂。尽管在并行多线程程序中,程序的整体性能依赖于所有的线程,可是在任何时间点,关键路径可能只依赖于某些线程。所以,在某些情况下,降低非关键路径的功耗不会影响程序的性能。
在多线程程序运行过程中,现有技术存在锁机制导致的功耗损失。
在多线程程序中,各个线程分别执行同一个程序的不同部分,并通过共享内存进行交互。为了保证程序的正确性,多个线程不允许同时更新共享数据,这就是互斥原则。在多线程程序中,通常使用同步原语(比如,锁)将包含有对共享数据访问的代码保护起来,其中被保护起来的代码段称为临界区(图中阴影方框部分为锁持有时间)。这意味着,在同一时间内,只能有一个线程进入临界区,而其他需要访问该临界区的线程必须忙等待或者阻塞,直到该线程离开临界区才能进入,如图1所示,图中斜线方框部分为忙等待时间。
很多商用处理器提供了各种低功耗模式,每一种低功耗模式实现了不同程度的功耗降低和由此产生的相应的越渡时间。
发明内容
为了解决上述问题,本发明的目的在于公开一种降低多线程程序功耗的方法及系统,使用锁持有时间预测表记录锁持有时间,指导下一次使用相同锁和执行相同临界区的线程相应处理器核进入合适的低功耗模式,从而降低多线程程序功耗。本发明公开了一种降低多线程程序功耗的方法,包括多线程抢锁步骤:
(1)在锁预测表中记录执行线程第一次访问锁的锁信息,包括锁地址、临界区起始指令的PC值、线程号和锁持有时间;
(2)当多线程对已经记录的相同锁和临界区进行访问时,执行线程一进入临界区就开始计时;
(3)被阻塞线程先后进入锁队列,根据锁持有时间预测表中记录的锁持有时间,同时考虑线程的优先级,控制被阻塞线程相应处理器核分别进入合适的低功耗模式;
所述降低多线程程序功耗的方法,还包括多线程释放锁步骤:
(4)当执行线程的计时接近锁持有时间预测表中的记录时,也就是当执行线程即将离开临界区时,及时恢复被阻塞的优先级最高线程相应处理器核的功耗模式,使得该线程在临界区正常执行,从而保证在不影响多线程程序性能的前提下降低功耗;
(5)当执行线程离开临界区时,更新锁持有时间预测表中相应的锁持有时间;
(6)当被选中的线程进入临界区时,调节锁队列中优先级最高的线程相应处理器核的功耗模式。
所述降低多线程程序功耗的方法,该功耗模式包括关闭处理器核的时钟门控或者降低供给电压,用于降低功耗。
或该功耗模式包括执行一条Halt指令而导致的轻度低功耗模式。
所述降低多线程程序功耗的方法,该锁预测表为共同索引锁预测表。
本发明还公开了一种降低多线程程序功耗的系统,包括:
(1)锁信息记录模块,用于在锁预测表中记录多线程执行中第一次访问锁的锁信息,包括锁地址、临界区起始指令的PC值、线程号和锁持有时间;
(2)临界区时间记录模块,用于当多线程对已经记录的相同锁和临界区进行访问时,执行线程一进入临界区就开始计时;
(3)控制模块,用于被阻塞线程先后进入锁队列,根据锁持有时间预测表中记录的锁持有时间,同时考虑线程的优先级,控制被阻塞线程相应处理器核分别进入合适的低功耗模式;
(4)恢复模块,用于当执行线程的计时接近锁持有时间预测表中的记录时,及时恢复被阻塞的优先级最高线程相应处理器核的功耗模式,使得该线程在临界区正常执行,从而保证在不影响多线程程序性能的前提下降低功耗;
(5)更新模块,用于当执行线程离开临界区时,更新锁持有时间预测表中相应的锁持有时间;
(6)功耗模式调节模块,用于当被选中的线程进入临界区时,调节锁队列中优先级最高的线程相应处理器核的功耗模式。
所述降低多线程程序功耗的系统,活跃线程的数量小于处理器核的数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310233401.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:折叠式角度尺
- 下一篇:一种多点温度测控装置