[发明专利]多核平台下串行程序运行时的自动并行化加速方法有效
申请号: | 201010264074.8 | 申请日: | 2010-08-27 |
公开(公告)号: | CN101916185A | 公开(公告)日: | 2010-12-15 |
发明(设计)人: | 过敏意;杨蓝麒;李阳;陈鹏宇;杨晓鹏;王稳寅;沈耀 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 上海交达专利事务所 31201 | 代理人: | 王锡麟;王桂忠 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多核 平台 串行 程序 运行 自动 并行 加速 方法 | ||
1.一种多核平台下串行程序运行时的自动并行化加速方法,其特征在于,包括以下步骤:
第一步,建立一个共享读取的程序计数寄存器组SPC,该寄存器组中寄存器的个数与CPU核的数目相同,每个寄存器分别与对应的CPU核相连以实时地储存该CPU核的程序计数器值;
第二步,当存在空闲的CPU核时,进行加速对象选择处理,得到自动并行加速线程的加速对象为线程P;
第三步,当线程P存在已分析指令集合Sp时,载入该集合Sp;否则,为线程P新建一个集合Sp,对线程P所在的CPU核进行读取处理,得到线程P所在的CPU核当前正在读取的指令Ic,并由Ic追踪线程P下一条将要执行指令的地址,将追踪分析的指令代码和跳转关系加入集合Sp中;
第四步,采用第三步的方法,得到线程P将要执行的所有指令,当集合Sp中每次加入条件转移指令后且集合Sp中存在循环代码时,进行进度校验和替换处理;
第五步,当线程P被调度出CPU核时,系统以中断方式将该事件连同当时的SPCp值发送给自动并行加速线程,当自动并行加速线程正在替换处理中时,则使用此时的SPCp值作为读取Ic的依据,继续执行替换处理直到退出该步骤;否则,自动并行加速线程根据当时的SPCp值读取Ic,清空或更新集合Sp,其结果等待线程P被调入时继续使用;
第六步,返回第二步,开始处理新的需要加速的线程。
2.根据权利要求1所述的多核平台下串行程序运行时的自动并行化加速方法,其特征是,第一步中所述的共享读取是:每个CPU核实时读取寄存器组中每个寄存器存储的其它CPU核的程序计数器值。
3.根据权利要求1所述的多核平台下串行程序运行时的自动并行化加速方法,其特征是,第二步中所述的加速对象选择处理,是:当正在运行且未被加速的用户线程中存在CPU占用率最高的线程时,则选择该线程作为自动并行加速线程的加速对象;否则,时间t后,再次选择正在运行且未被加速的用户线程中CPU占用率最高的线程作为自动并行加速线程的加速对象,直至得到自动并行加速线程的加速对象。
4.根据权利要求3所述的多核平台下串行程序运行时的自动并行化加速方法,其特征是,所述的时间t是系统的调度时间片大小。
5.根据权利要求1所述的多核平台下串行程序运行时的自动并行化加速方法,其特征是,第三步中所述的读取处理,是:读取线程P所在的CPU核的程序计数寄存器的值,将得到的虚拟地址转换为物理地址,然后从该物理地址得到线程P所在的CPU核正在执行的指令Ic,当集合Sp中包括指令Ic时,删除集合Sp中Ic以前的指令记录,并根据集合Sp追踪线程P下一条将要执行的指令;否则,清空集合Sp。
6.根据权利要求1所述的多核平台下串行程序运行时的自动并行化加速方法,其特征是,第四步中所述的进度校验,是:重新读取指令Ic,当指令Ic不在集合Sp中时,清空集合Sp,然后从指令Ic开始追踪;当指令Ic在集合Sp中、线程P走向该循环且线程P已经开始执行该循环,则选取循环接收后第一条语句作为待分析指令,并清空集合Sp;当指令Ic在集合Sp中、线程P走向该循环且线程P未执行该循环,则对该循环进行替换处理;当指令Ic在集合Sp中但线程P未走向该循环时,则删除集合Sp中Ic以前的指令记录,并继续追踪。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010264074.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:通信装置
- 下一篇:移动通信终端和控制多径干扰去除装置的起动的方法