图形上下文跳动制造技术

技术编号:31902968 阅读:15 留言:0更新日期:2022-01-15 12:40
一种上下文跳动的方法,包括在图形处理单元(GPU)[104]的命令处理器[122]处接收条件执行包[202],所述条件执行包提供对应于封装状态的散列标识符。所述封装状态包括遵循所述条件执行包的一个或多个上下文状态包[204、206]。至少部分地基于确定所述封装状态的所述散列标识符是否匹配当前存储在所述GPU处的多个活动上下文状态散列标识符中的一者而执行遵循所述封装状态的命令包[210]。遵循所述封装状态的命令包[210]。遵循所述封装状态的命令包[210]。

【技术实现步骤摘要】
【国外来华专利技术】图形上下文跳动

技术介绍

[0001]图形处理单元(GPU)是专门被设计为执行图形处理任务的处理单元。GPU可例如执行终端用户应用程序(诸如视频游戏应用程序)所要求的图形处理任务。通常,终端用户应用程序与GPU之间存在若干层软件。例如,在一些情况下,终端用户应用程序经由应用程序编程接口(API)与GPU通信。API允许终端用户应用程序以标准化格式而非依赖于GPU的格式输出图形数据和命令。
[0002]许多GPU包括用于执行图形应用程序指令的图形流水线。图形流水线包括同时对指令的不同步骤进行工作的多个处理块。流水线使得GPU能够利用执行指令所需的步骤之间存在的并行性。因此,GPU可在更短的时间段内执行更多指令。图形流水线的输出取决于图形流水线的状态。图形流水线的状态基于由图形流水线本地存储的状态包(例如,包括纹理处理程序、着色器常量、变换矩阵等的上下文特定常量)而进行更新。由于在本地维护上下文特定常量,因此图形流水线可快速地访问所述上下文特定常量。
附图说明
[0003]通过参考附图,可更好地理解本公开,并且本公开的许多特征和优点对于本领域技术人员来说会变得显而易见。在不同的附图中使用相同的附图标记来指示类似或相同的项。
[0004]图1是示出根据一些实施方案的包括被配置为采用图形上下文跳动的图形处理单元的系统的框图。
[0005]图2是示出根据一些实施方案的在图1的GPU处处理命令流指令的框图。
[0006]图3是示出根据一些实施方案的在图1的GPU处排空封装状态的框图。
[0007]图4是示出根据一些实施方案的图形上下文跳动的方法的流程图。
具体实施方式
[0008]为了进行图形处理,系统的中央处理单元(CPU)经常会向GPU发出调用,诸如绘制调用,该调用包括指示GPU根据CPU的指令来绘制对象的一系列命令。由于通过GPU图形流水线来处理绘制调用,因此绘制调用使用各种可配置的设置来决定如何渲染网格和纹理。常见的GPU工作流涉及更新存储器阵列中的常量的值,然后使用常量作为数据来执行绘制操作。存储器阵列包含一组给定常量的GPU可被视为处于特定状态。被称为上下文状态(也被称为“渲染状态”、“GPU状态”或简称“状态”)的这些常量和设置会影响渲染的各个方面,并且包括GPU渲染对象所需的信息。上下文状态提供对如何渲染网格的定义,并且包括诸如当前顶点/索引缓冲区、当前顶点/像素着色器程序、着色器输入、纹理、材料、照明、透明度等的信息。上下文状态包含在图形流水线处渲染的绘图或绘图集所特有的信息。因此,上下文是指正确地绘制某些内容所需的GPU流水线状态。
[0009]许多GPU使用被称为流水线的技术来执行指令。流水线使得GPU能够同时对指令的不同步骤进行工作,从而利用执行指令所需的步骤之间存在的并行性。因此,GPU可在更短
的时间段内执行更多指令。由图形流水线输出的视频数据取决于图形流水线本地存储的状态包(例如,上下文特定常量)。在GPU中,通常设置GPU的状态、执行绘制操作,然后在下一个绘制操作之前仅对状态进行少量的改变。从一个绘制操作到下一个绘制操作,状态设置(例如,存储器中的常量的值)通常保持不变。
[0010]在本地维护上下文特定常量,以便由图形流水线快速访问。然而,GPU硬件通常受存储器限制,并且仅在本地存储有限数量的上下文状态集(且因此对所述有限数量的上下文状态集进行操作)。因此,为了开始对一组新的上下文寄存器进行工作,GPU通常会改变上下文状态,因为图形流水线状态需要改变来绘制其他内容。在通过对新的寄存器值进行编程来应用任何新的状态更新之前,GPU通过将当前寄存器拷贝到新分配的上下文中对新供应的上下文执行上下文滚动以释放当前上下文。由于本地存储的上下文状态集数量有限,因此GPU有时会耗尽上下文,并且图形流水线在等待上下文释放,使得可能分配新的上下文时会停滞。在各种实施方案中,CPU重复使用先前活动的上下文状态,并且在没有上下文跳动的情况下将释放当前上下文并分配新的上下文。如果没有可用的上下文,则GPU将必须等待一个上下文释放,从而导致停滞。
[0011]为了提高GPU系统性能,图1至图4示出了用于通过将基于散列的标识符指派给上下文状态并切换到匹配的上下文(被称为上下文跳动)而不用分配新的上下文来进行上下文状态管理的系统和方法。在各种实施方案中,一种上下文跳动的方法包括在图形处理单元(GPU)的命令处理器处接收条件执行包,该条件执行包提供对应于封装状态的散列标识符。封装状态包括遵循条件执行包的一个或多个上下文状态包。至少部分地基于确定封装状态的散列标识符是否匹配当前存储在GPU处的多个活动上下文状态散列标识符中的一者而执行遵循封装状态的命令包。在各种实施方案中,确定封装状态的散列标识符是否匹配多个散列标识符中的一者包括查询上下文管理器以搜索散列表,该散列表存储当前存储在GPU处的多个活动上下文状态散列标识符。
[0012]在一些实施方案中,上下文跳动还包括响应于确定散列标识符匹配多个活动上下文状态散列标识符中的一者而排空封装状态。在其他实施方案中,响应于确定散列标识符不匹配多个活动上下文状态散列标识符中的任一者而分配新的上下文状态集。另外,在执行命令包之前执行封装状态的一个或多个上下文状态包。跳动回到现有的上下文(即,不用分配新的上下文)降低了耗尽上下文并使得图形流水线停滞的可能性。
[0013]图1是示出根据一些实施方案的包括被配置为采用图形上下文跳动的图形处理单元的系统100的框图。在所描绘的示例中,系统100包括中央处理单元(CPU)102、图形处理单元(GPU)104、由GPU 104使用的装置存储器106,以及由CPU 102和GPU 104共享的系统存储器108。在各种实施方案中,GPU 104可为专用装置、若干装置,或者集成到更大的装置(例如,北桥装置)中。存储器106、108包括多种随机存取存储器(RAM)中的任一种或其组合,诸如双倍数据速率动态随机存取存储器(DDR DRAM)、图形DDR DRAM(GDDR DRAM)等。GPU 104经由总线110与CPU 102、装置存储器106和系统存储器108通信。总线110包括在计算系统中使用的任何类型的总线,包括但不限于外围部件接口(PCI)总线、加速图形端口(AGP)总线、PCI Express(PCIE)总线等。
[0014]CPU 102将意图在GPU 104处进行处理的指令发送到命令缓冲区。在各种实施方案中,命令缓冲区可位于例如系统存储器108中,耦合到总线110的单独存储器(例如,装置存
储器106)中。
[0015]如图所示,CPU 102包括诸如执行一个或多个应用程序112以生成图形命令的多个进程,以及用户模式驱动程序116(或其他驱动程序,诸如内核模式驱动程序)。在各种实施方案中,一个或多个应用程序112包括利用GPU 104的功能的应用程序。应用程序112可包括指示GPU 104来渲染图形用户界面(GUI)和/或图形场景的一个或多个图形指令。例如,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,所述方法包括:在图形处理单元(GPU)[104]的命令处理器[122]处接收条件执行包[202],所述条件执行包提供对应于封装状态的标识符,其中所述封装状态包括遵循所述条件执行包的一个或多个上下文状态包[204、206];以及至少部分地基于确定所述封装状态的所述标识符是否匹配当前存储在所述GPU处的多个活动上下文状态标识符中的一者而执行遵循所述封装状态的命令包[210]。2.如权利要求1所述的方法,其中确定所述封装状态的所述标识符是否匹配多个标识符中的一者包括:查询上下文管理器[128]以搜索标识符表[130],所述标识符表存储当前存储在所述GPU处的所述多个活动上下文状态标识符。3.如权利要求2所述的方法,所述方法还包括:响应于确定所述标识符匹配所述多个活动上下文状态标识符中的一者,排空所述封装状态;以及将所述多个活动上下文状态标识符中的所述匹配的一者指派给遵循所述封装状态的所述命令包。4.如权利要求2所述的方法,所述方法还包括:响应于确定所述标识符不匹配所述多个活动上下文状态标识符中的任一者,分配新的上下文状态集;以及在执行所述命令包之前执行所述封装状态的所述一个或多个上下文状态包。5.如权利要求4所述的方法,所述方法还包括:从所述标识符表引退当前存储在所述GPU处的所述多个活动上下文状态标识符中的一者;以及将所述新的上下文状态集的对应于所述封装状态的所述标识符存储在所述标识符表处。6.如权利要求1所述的方法,其中所述命令包包括绘制调用。7.如权利要求1所述的方法,其中所述命令包指定多个状态更新包的所述封装状态的大小。8.一种处理器[100],所述处理器包括:多个状态寄存器[216];以及命令处理器[122],其中所述命令处理器被配置为:接收条件执行包[202],所述条件执行包提供对应于封装状态的标识符,其中所述封装状态包括遵循所述条件执行包的一个或多个上下文状态包[204、206];以及至少部分地基于确定所述封装状态的所述标识符是否匹配当前存储在所述处理器处的多个活动上下文状态标识符中的一者而执行遵循所述封装状态的命令包[210]。9.如权利要求8所述的处理器,所述处理器还包括:上下文管理器[128],所述上下文管理器包括标识符表[130],所述标识符表存储当前存储在所述处理器处的所述多个活动上下文状态标识符。10.如权利要求9所述的处理器,其中所述处理器被配置为查询所述上下文管理器以在所述标识符表中搜索所述提供的标识符。
11.如权利要求9所述的处理器,其中所述处理器还被配置为:响应于确定所述标识符匹配所述多个活动上下文状态标识符中的一者,排空所述封装状...

【专利技术属性】
技术研发人员:雷克斯
申请(专利权)人:超威半导体公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1