Systems and methods can provide one or more preemption instructions while compiling a computer program. The number of active registers at each preemption command position is reduced by inserting the one or more preemption instructions into the preemption window in the described computer program. Further, the preemption instructions indicate which registers are to be stored at the specific program location, generally a register that is active at the location of the program. The compiled program can run in the execution unit. The preemptive request can be made to the execution unit, and the preemptive request is executed at the next available preemptive instruction that is running in the execution unit of the execution unit.
【技术实现步骤摘要】
【国外来华专利技术】图形处理器的高效抢占相关申请的交叉引用本申请要求于2014年11月18日提交的美国非临时专利申请号14/543,982的优先权权益。
实施例总体上涉及针对图形处理器的抢占。更具体地,实施例涉及针对图形处理单元(GPU)的高效抢占机制。技术背景随着提高图形工作负载的复杂度并扩大应用领域,图形架构可以朝更加通用、快速、和响应型设计转移。传统上,图形处理单元(GPU)可以用于加速特定的三维(3D)图形应用,其中,不同的任务在可以被服务之前等待前一上下文被完成并从流水线放走。紧接着图形编程和多任务驱动器模型的最近发展,最近的GPU趋向于提供越来越可编程的执行单元(EU),所述执行单元不仅有用于图形目的(比如计算3D着色器功能),而且还有用于媒体编解码器功能以及从中央处理单元(CPU)卸载的其他一般目的工作负载。虽然多个任务可以通过时间共享的方式使用GPU,一些应用(具体地,触摸用户界面或实时系统)要求提交给GPU的高优先级任务在一定的时间预算内执行。这些应用通常涉及抢占,这可以允许GPU暂时停止目前的工作,在抢占请求之后切换至不同的上下文,并在它完成了它由于抢占请求而 ...
【技术保护点】
一种用于执行抢占请求的计算系统,包括:数据接口,所述数据接口用于接受抢占请求;编译器,所述编译器具有抢占指令创建器和插入器,用于在计算机程序中、在所定义的抢占窗口内具有减少数量的活跃寄存器的多个位置处创建并插入多条抢占指令;执行单元,所述执行单元耦合至所述编译器和所述数据接口,用于执行具有所述多条抢占指令的经编译的计算机程序,所述执行单元包括通用寄存器或架构寄存器中的多个寄存器;存储器,所述存储器与所述执行单元通信,用于在执行所述抢占请求时存储活跃寄存器的内容。
【技术特征摘要】
【国外来华专利技术】2014.11.18 US 14/543,9821.一种用于执行抢占请求的计算系统,包括:数据接口,所述数据接口用于接受抢占请求;编译器,所述编译器具有抢占指令创建器和插入器,用于在计算机程序中、在所定义的抢占窗口内具有减少数量的活跃寄存器的多个位置处创建并插入多条抢占指令;执行单元,所述执行单元耦合至所述编译器和所述数据接口,用于执行具有所述多条抢占指令的经编译的计算机程序,所述执行单元包括通用寄存器或架构寄存器中的多个寄存器;存储器,所述存储器与所述执行单元通信,用于在执行所述抢占请求时存储活跃寄存器的内容。2.如权利要求1所述的计算机系统,所述执行单元进一步包括控制流栈。3.如权利要求1或2所述的计算机系统,进一步包括与所述执行单元相关联的应用指令指针。4.如权利要求1或2所述的计算机系统,进一步包括与所述执行单元通信的计时器。5.一种处理抢占请求的方法,包括:在编译计算机程序时插入一条或多条抢占指令,所述一条或多条抢占指令被插入在所述计算机程序中的抢占窗口内,所述计算机程序中的所述抢占窗口减少每个抢占指令位置处的活跃寄存器数量,并且其中,所述抢占指令指示哪些寄存器要被保存在特定的程序位置处;在执行单元中运行经编译的程序;向所述执行单元做出抢占请求;以及在正在所述执行单元中运行的所述程序中的下一可用的抢占指令处执行所述抢占请求。6.根据权利要求5所述的处理抢占请求的方法,进一步包括:将所述寄存器的有待保存在存储器中的寄存器内容保存在所述抢占指令的所述程序位置处。7.根据权利要求6所述的处理抢占请求的方法,其中,所述寄存器是通用寄存器组或架构寄存器组中所包含的寄存器。8.根据权利要求5、6或7所述的处理抢占请求的方法,进一步包括:将控制流栈的内容保存在所述抢占指令的位置处。9.根据权利要求5、6或7所述的处理抢占请求的方法,进一步包括:将应用指令指针的位置保存在执行所述抢占请求的位置处。10.根据权利要求5、6或7所述的处理抢占请求的方法,进一步包括:在相邻的抢占指令之间创建抢占窗口,所述抢占窗口限定所述相邻抢占指令之间的估计的执行时间长度。11.根据权利要求5、6或7所述的处理抢占请求的方法,进一步包括:分析所述计算机程序从而确定插入所述一条或多条抢占指令的位置。12.根据权利要求11所述的处理抢占请求的方法,其中,所述分析基于所述计算机程序内各位置处的活跃寄存器数量来确定寄存器压力。13.至少一种计算机可读存储介质,所述至少一种计算机可读存储介质包括一组指令,所述一组指令当被计算系统执行时使所述计算系统:在编译计算机程序时插入抢占指令,所述抢占指令被插入在所述计算机程序中使每个计算机程序位置处的活跃的寄存器的数量最小化的位置处,并且其中,...
【专利技术属性】
技术研发人员:路奎元,S·马余兰,WY·陈,K·陈,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。