[发明专利]用于在单指令多数据SIMD处理系统中控制发散分支指令的方法和设备有效
申请号: | 201380046580.1 | 申请日: | 2013-08-08 |
公开(公告)号: | CN104603749B | 公开(公告)日: | 2017-09-19 |
发明(设计)人: | 陈琳 | 申请(专利权)人: | 高通股份有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京律盟知识产权代理有限责任公司11287 | 代理人: | 宋献涛 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多线程 处理 系统 执行 例程 | ||
1.一种用于在单指令多数据SIMD处理系统中控制发散分支指令的方法,所述方法包括:
通过一或多个处理器基于第一最小恢复计数器MINRC来控制对程序的执行,所述第一MINRC指定指示与所述程序的执行的多个线程相关联的多个恢复计数器值中的最小恢复计数器值的值,其中与所述多个线程相关联的多个恢复计数器值中的每一者在所述多个线程中的对应于相应恢复计数器值的相应线程无效的情况下,指示所述多个线程中的所述相应线程经调度以被激活时的全局程序计数器的程序计数器值;以及
利用所述一或多个处理器通过执行以下操作来基于与所述程序的子例程相关联的第二MINRC控制对所述子例程的执行:响应于执行子例程调用指令而保存所述第一MINRC的状态且致使基于所述第二MINRC来控制对所述子例程的执行,以及响应于执行子例程返回指令而致使基于所述第一MINRC的所述所保存状态来控制对所述程序的执行,所述第二MINRC指定指示来自所述多个恢复计数器值的子集的最小恢复计数器值的值,所述多个恢复计数器值对应于在起始对所述子例程的执行时为有效的所述多个线程中的所有线程。
2.根据权利要求1所述的方法,
其中保存所述第一MINRC的所述状态包括将存储于所述第一MINRC的MINRC寄存器中的值推入到堆栈存储结构上,且
其中致使基于所述第二MINRC来控制对所述子例程的执行包括用所述第二MINRC的初始值来改写存储于所述MINRC寄存器中的值。
3.根据权利要求1所述的方法,其中致使基于所述第一MINRC的所述所保存状态来控制对所述程序的执行包括:
从堆栈存储结构拿取所述第一MINRC的所述所保存状态;以及
用对应于所述第一MINRC的所述所保存状态的值来改写存储于MINRC寄存器中的值。
4.根据权利要求1所述的方法,其中所述多个恢复计数器值中的每一者在所述多个线程中的对应于所述相应恢复计数器值的所述相应线程有效的情况下等于默认值。
5.根据权利要求1所述的方法,其进一步包括:
将所述第二MINRC设定到指示来自所述多个恢复计数器值的所述子集的最小恢复计数器值的值。
6.根据权利要求5所述的方法,其中设定所述第二MINRC包括:
对于每一无效线程来说,如果相应无效线程的恢复计数器值小于所述第二MINRC且所述相应无效线程的恢复计数器值大于或等于指示所述子例程的第一指令的值,那么将所述第二MINRC设定成等于所述相应无效线程的恢复计数器值。
7.根据权利要求5所述的方法,其中设定所述第二MINRC包括:
对于每一无效线程来说,如果相应无效线程的恢复计数器值小于所述第二MINRC值且与所述相应无效线程相关联的旗标指示在起始对所述子例程的执行时所述相应无效线程是有效的,那么将所述第二MINRC设定成等于所述相应无效线程的恢复计数器值。
8.根据权利要求7所述的方法,其进一步包括:
对于所述多个线程中的每一者来说,如果在起始对所述子例程的执行时相应线程是有效的,那么响应于起始对所述子例程的执行而将对应于相应线程的旗标设定到有效状态;以及
对于所述多个线程中的每一者来说,如果在起始对所述子例程的执行时相应线程是无效的,那么响应于起始对所述子例程的执行而将对应于相应线程的旗标设定到无效状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于高通股份有限公司,未经高通股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380046580.1/1.html,转载请声明来源钻瓜专利网。