【技术实现步骤摘要】
【国外来华专利技术】用于在单指令多数据SIMD处理系统中控制发散分支指令的方法和设备
本专利技术涉及多线程处理,且更特定来说涉及用于在多线程处理系统中执行子例程的技术。
技术介绍
单指令多数据(SIMD)处理系统是一种类型的并行计算系统,其包含在多个数据块上执行相同指令的多个处理元件。SIMD系统可为独立计算机或计算系统的子系统。举例来说,一或多个SIMD执行单元可用于图形处理单元(GPU)中以实施支持可编程着色的可编程着色单元。SIMD处理系统允许以并行方式在多个处理元件上同步地执行程序的多个执行线程,借此增加其中需要对多个数据块执行相同一组操作的程序的通过量。由于每一线程对不同数据产生作用,所以如果程序包含条件性分支指令,那么有可能针对执行于系统中的一些线程而满足分支条件且针对执行于系统中的其它线程而不满足分支条件。此条件可称作发散分支条件且导致SIMD系统不能够以同步方式在多个处理元件上执行所有线程。
技术实现思路
本专利技术是针对用于在经受发散线程条件的单指令多数据(SIMD)处理系统中执行子例程的技术。特别地说,描述用于管理发散线程的基于恢复计数器的方法,其利用程序模块特定型最小恢复计数器(MINRC)来有效处理控制流指令。如本文中所使用,程序模块可指主程序模块(例如,顶级程序模块)或子例程程序模块。因而,在处理系统中执行的每一子例程可使用子例程特定型MINRC来控制对所述子例程中包含的控制流指令的处理。程序模块特定型MINRC的使用允许实施基于MINRC的控制流的系统支持执行子例程程序指令。在一个实例中,本专利技术描述一种方法,所述方法包含通过一或多个处理器基于第一M ...
【技术保护点】
一种方法,其包括:通过一或多个处理器基于第一最小恢复计数器MINRC来控制对程序的执行,所述第一MINRC指定指示与所述程序的多个执行线程相关联的多个恢复计数器值中的最小恢复计数器值的值;以及通过所述一或多个处理器基于与所述程序的子例程相关联的第二MINRC来控制对所述子例程的执行,所述第二MINRC指定指示来自所述多个恢复计数器值的子集的最小恢复计数器值的值,所述多个恢复计数器值对应于在起始对所述子例程的执行时为有效的所有所述线程。
【技术特征摘要】
【国外来华专利技术】2012.09.10 US 13/608,6681.一种用于在单指令多数据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所述的方法,其进一步包括:对于所述多个线程中的每一者来说,如果在起始对所述子例程的执行时相应线程是有效的,那么响应于起始对所述子例程的执行而将对应于相应线程的旗标设定到有效状态;以及对于所述多个线程中的每一者来说,如果在起始对所述子例程的执行时相应线程是无效的,那么响应于起始对所述子例程的执行而将对应于相应线程的旗标设定到无效状态。9.一种用于在单指令多数据SIMD处理系统中控制发散分支指令的装置,所述装置包括:一或多个处理器,其经配置以基于第一最小恢复计数器MINRC来控制对程序的执行及基于与所述程序的子例程相关联的第二MINRC来控制对所述子例程的执行,所述第一MINRC指定指示与所述程序的执行的多个线程相关联的多个恢复计数器值中的最小恢复计数器值的值,其中与所述多个线程相关联的多个恢复计数器值中的每一者在所述多个线程中的对应于相应恢复计数器值的相应线程无效的情况下,指示所述多个线程中的所述相应线程经调度以被激活时的全局程序计数器的程序计数器值,所述第二MINRC指定指示来自所述多个恢复计数器值的子集的最小恢复计数器值的值,所述多个恢复计数器值对应于在起始对所述子例程的执行时为有效的所述多个线程中的所有线程,以及其中为了基于所述第二MINRC来控制对所述程序的所述子例程的执行,所述一或多个处理器进一步经配置以:响应于执行子例程调用指令来保存所述第一MINRC的状态;响应于执行所述子例程调用指令而致使基于所述第二MINRC来控制对所述子例程的执行;以及响应于执行子例程返回指令而...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。