图形处理器中simd单元的动态启用和禁用的制作方法

文档序号:6361183阅读:298来源:国知局

专利名称::图形处理器中simd单元的动态启用和禁用的制作方法
技术领域
:本发明的实施方式总体涉及在图形处理单元(GPU)中的单指令多数据(SMD)单元的控制。
背景技术
:图形处理器的算术单元包括算术逻辑单元(ALU)或配置为执行整数、逻辑和单/双精度浮点运算的算术单元。图形处理器可以包括成阵列的如被称为着色器核心的算术单元。着色器核心包括着色器管线(SP)。为了实现更高的效能,多个SP可以被配置为作为叠式SP—起工作。SP可以配置为成阵列的四芯管(QP)和SMD。每个SMD的所有的着色器单元在不同组的原点、顶点或像素值上可以有条件地执行相同的ALU指令。以这种方式,SMD提供算术处理功率到图形处理器。在传统的具有叠式SP的图形处理器中,可以静态地启用或禁用SMD。例如,如果SP被确定为有故障,引线掩码(fusemask)可以被编程为禁用故障SP。相似地,用户可存取寄存器可以被编程为禁用/启用特定的SMD或成组的SMD。然而,在新的工作请求发送到SMD之前,这种方法需要图形处理器的图形管道刷新,且需要将新值重新编程到刷新的图形管道中。通常的假设是随着SMD数量的相应增加,着色器引擎的效能提高。然而,这种陈述仅仅在有限的情况下是真实的,如在繁重的工作负荷条件下。对于经常出现的情况,在较少繁重的工作负荷的情况下,着色器引擎的效能不一定随着SIMD的数目的增加而增加。在这种情况下,如果所有的SMD被启用,由于未充分利用的SMD(即SMD具有较轻的负荷或没有负荷)保持启用和激活状态,所以功率被浪费。传统的图形系统简单地将工作负荷在遍布于所使用的着色器引擎内的所有的SMD进行划分以用于特定的操作。然而,这种方法是极端地功率低效的。低效发生的原因是没有确定在不影响系统效能的情况下是否可以用较少的SIMD来执行操作。因此,传统的系统保持着色器引擎内的所有的SIMD是活动的,无论它们是否需要执行操作。如上所述,当SMD被启用时,它们消耗功率。即使处于闲置状态,SIMD仍然消耗最小的、但量可测量的功率。因此,保持所有可用的SIMD启用,即使未使用的或未被充分利用,也浪费功率。能够将工作负荷压缩在尽可能最小数目的SIMD中也将是有利的。这种方法由于给每一个可用的SMD提供工作负荷而可以减少不必要的开销(overhead)。此外,在传统的方法中,在着色器复合器(shadercomplex)中的所有SMD单元的时钟或同时启用或同时禁用。在许多应用中,并不是所有的SIMD都被分配工作的。然而,传统的方法持续主动地提供时钟信号给这些SMD。该方法会增加图形处理器的功率消耗,并且是低效的。因此,需要能够实现SMD的动态控制并在SMD可能不执行处理任务时减少图形处理器的功率消耗的系统和方法。
发明内容本发明的实施方式通过动态地激活和停用在包括多个SIMD的着色器复合器中的单个的SMD而实现在图形处理单元中节约功率。单个的SMD的动态即时禁用和启用在实现给定的处理应用所需的效能和功率水平方面提供了灵活性。以这种方式,可以实现图形处理单元的最佳使用。更具体地,本发明的实施方式提供一种每瓦负荷均衡技术(LBPW)。在一个实施中,这种LBPW技术监控算术逻辑单元(ALU)指令的数目并提取每个SMD内执行的指令。此外,新分配的线程负荷(即波阵面)进行排队并被监控。这种监控用于评估SIMD的当前和未来的利用。根据该方案,着色器引擎中只有实际需要或预期将处理给定工作负荷的SMD保持激活状态。不需要的SMD被停用。通过停用不需要的SMD,降低功率消耗。作为额外的益处,本发明的实施方式在不显著影响系统性能的情况下提高效能/瓦(performanceperwatt)。在本发明的又一个实施方式中,减少图形芯片的di/dt,以提高可靠性和在较低的电压下提高频率。这种减少影响材料账单,并允许使用较便宜的元件。本发明的实施方式还实现在着色器复合器中的SMD的动态纹理(grain)(例如中等纹理)时钟门控。通过按需提供时钟机制以关闭未使用的逻辑时钟树,从而减少开关功率(switchingpower)。在这种方式中,时钟门控被增强,从而在SIMD是空闲(或者没有分配工作)的时间阶段节约更多的开关功率。本发明的实施方式可以用于任何计算机系统(例如,传统的计算机(台式机,笔记本等)系统、计算设备、娱乐系统、媒体系统、游戏系统、通信装置、个人数字助理),或任何使用一个或多个处理器的系统。由于开发的用于一种类型的处理器的代码用很少或不用额外的努力可以在另一种类型的处理器中有效利用,因而本发明的实施方式可用于例如具有多核的CPU、GPU、和/或GPGPU的处理系统。例如,所开发的用于在GPU执行的代码,也称为GPU内核,使用本发明的实施方式可被配置在CPU执行。被并入说明书中并构成本说明书的一部分的附解了本发明的实施方式,并连同上面给出的总体描述和下面给出的实施方式的详细描述用于解释本发明的原理。在附图中图1A示出根据实施方式所述的着色器复合器。图1B-1D示出根据实施方式所述的可以被配置为控制SMD的寄存器。图2示出根据实施方式所述的示例性时序图。图3A-3B示出根据实施方式所述的用于启用和禁用SMD的示例性的寄存器设置。图3C是根据实施方式所述的示例性的操作流程图。图4A-4F示出根据实施方式所述的示例性的效能图表。图5A是没有均衡化的传统的SMD负荷行为的示意图。图5B是根据本发明的实施方式所述的SIMD负荷行为的示意图。图6是根据本发明的实施方式所述的示例性的用于评估SMD活动性的可编程查找表的不意图。图7是根据本发明的实施方式所述的用于执行SIMD负荷均衡化的示例性方法的示例性流程图。图8是用于进行图7所示的先入先出(FIFO)采样的更详细的流程图。图9是图7所示的方法步骤的更详细的流程图。图10示出根据本发明的实施方式所述的用于动态纹理时钟门控的示例性的系统。具体实施例方式如上所讨论的,本发明的实施方式通过动态地激活和停用着色器复合器中单个的SIMD实现功率节约。对图形处理单元的下降的效能需要或为了降低散热设计功率(TDP),实施方式动态地禁用SMD。此外,实施方式启用已禁用的SMD用于高效能应用而无需刷新图形处理单元的图形管道。这在不刷新SP的情况下通过动态开关若干SMD而实现。在某种程度上通过适当地编程设计成组的寄存器实现动态控制(或开关)。在实施方式中,着色器管内插器(SPI)根据被配置为动态地指示哪些SMD被激活的寄存器分配新的工作(或线程)。在一个实施方式中,在当前未完成的请求(或挂起的请求)由被禁用的SMD提供服务之后,这种动态配置生效。一旦被禁用,没有新的来自SPI的请求会通过禁用的SIMD,且可捕获逻辑(harvestablelogic)的时钟(如,sp4_vsp和纹理时钟)关闭,以降低图形处理单元的TDP。当禁用的SMD启用时,SPI将再次开始分配工作给启用的SMD,提供图形处理单元更高的效能。在一个实施方式中,这些SMD和一些要被激活和/停用的SMD的激活和停用依赖于各种因素,如操作条件(例如,温度、电流、CAC),应用(例如,节约能源的可变的利用)、工作负荷、或其他需求(如,效能需求,功率需求)。SIMD的动态控制图1A示出示例性的着色器复合器100,其中本发明的实施方式得到实现。如上所讨论的,着色器复合器可以包括着色器管道(SP)。为了实现更高的效能,多个SP可以被配置为作为叠式SP—起工作。SP可以构造成四管(QP)和SMD的阵列186。每个SMD的所有的着色单元,可以有条件地在不同的组的原点、顶点或像素值上执行相同的ALU指令。在一个实施方式中,着色器复合器100包括多个SIMD和2个着色器引擎,即,着色器引擎120和着色器引擎122。着色器复合器100还包括纹理高速缓存130(或2级纹理高速缓存)、多个着色器管内插器(SPI)和顶点高速缓存。着色器复合器100还包括多个冗余着色器开关(RSS)、着色器的时序控制器(SQ)、I级纹理高速缓存(TCP)和纹理数据逻辑(TD)。(虽然为清楚起见,示出了数量较少的SMD,但是应当理解,本发明并不限定于图示的实施方式,且着色器复合器100是可扩展的并且可以包括任意数量的SMD。)如上所讨论的,本发明的实施方式动态地开关若干SMD而不刷新SP。这样的动态控制(或开关)在某种程度上通过适当地编程成组的寄存器来实现。在一个实施方式中,SPI根据被配置为动态地指示哪些SIMD被激活的寄存器,分配新的工作(或工作线程)。下节讨论控制SMD和QP掩码的示例性寄存器。图1B示出命名为“CC_GC_SHADER_PIPE_C0NFIG.”的寄存器。在一实施方式中,根据引信掩码设置,该寄存器通过复位/配置单元(RCU)编程。作为示例,该寄存器可以被编程用于捕获的目的。同样地,示于图1C的“RCU_CG_GC_SHADER_PIPE”和“RCU_CC_GC_SHADER_PIPE1”寄存器是“CC_GC_SHADER_PIPE_CONFIG”寄存器的经阴影处理(shadow)的版本。这些寄存器基于引信掩码或SMC微码被编程。示于图1D中的寄存器“GC_USER_SHADER_PIPE_CONFIG,”通过用户可编程以限制操作SMD(和/或QP)的数目。该寄存器可以是通过从图形寄存器总线管理(GRBM)接受的每个索引的着色器引擎映射并经阴影处理的存储器。“CC_GC_SHADER_PIPE_CONFIG”的寄存器设置(图1B)在性质上是静态的,且每个芯片编程一次。与此相反,“GC_USER_SHADER_PIPEC_ONFIG”寄存器的寄存器设置可以在任何时间动态(即,即时)编程。本发明的实施方式配置“GC_USER_SHADER_PIPE_CONFIG”寄存器用于SMD的动态控制。在实施方式中“CC_GC_SHADER_PIPE_CONFIG”寄存器和“GC_USER_SHADER_PIPE_CONFIG”寄存器的组合ORed值由SPI使用以确定(即时)要被分配新的线程(工作)的启用的SIMD。在一个实施方式中,在图形管道的所有其他的设计模块使用“CC_GC_SHADER_PIPE_C0NFIG”寄存器以对非活动的SMD/QP静态地禁用这些模块。在一实施方式中,当这样的操作会导致不合乎期望的着色器管线的“冻结”时,这样的设计模块不需要审查“GC_USER_SHADER_PIPE_CONFIG”寄存器。参照图2示出的示例性时序图,SMD的控制可以独立于着色器引擎的活动性而实现。即使特定的SMD正忙于执行指令,实施方式在SMD的活动执行期间可以禁用该SMD。例如,参照图2,在SMDO的活动执行期间,SIMDO可以被禁用。在并不意图限制本发明的实施方式中,直到禁用(或停用)的SIMD重新启用,SPI才分配工作给该禁用(或停用)的SIMD。当其中的当前工作和在工作序列管道中的挂起的工作完成时,该禁用的SMD自然引流(drain)工作线程。一旦清空,动态纹理时钟门控(以下详细说明)可以禁用时钟信号到在禁用的SMD的逻辑。在禁用的SMD重新启用时,SPI再次提交新的线程(工作请求)到启用的SMD。SMD控制设置通过GRBM寄存器的写操作被编程,且可以通过驱动程序或SMC微码动态地设置。从系统设计的角度来看,SIMD可以在任何时间(S卩,即时)被启用或禁用。从能源节约的角度来看,从SMD启用切换到SMD禁用状态的时间可以依赖于SMD管道中的挂起的工作负荷。当SPI准备好分配线程到SIMD时,使禁用的SIMD启用所需要的时间(或反之亦然)与写操作GRBM寄存器速度相当。作为示例,对于这两种情况,所需要的时间可以是几微秒。示例性的操作方案以下是其中使用本发明和动态控制SIMD的实施方式的示例性操作方案。A.基于条件的控制SMD的动态控制会依赖条件。这样的示例性的条件包括,但不限于:(I)温度行程:当外部源指示更高的处理器温度,并且有必要降低(或当适用时提高)功率消耗时。(2)电流行程当外部源指示更高的处理器电流,并且有必要降低(或当适用时提高)功率消耗时。(3)CAC管理当芯片上CAC管理器通知增加的处理活动,并做出通过启用更多SIMD以提高效能的决定时,或当芯片上CAC管理器通知减少的活动,并做出通过禁用若干SIMD而不降低效能以减少功率的决定时。B.基于应用的控制SIMD的动态控制也可以依赖于应用。这样的示范性应用包括那些允许可变的利用以节约能源的应用。例如,根据本实施方式,从更多的处理器密集型应用(例如,3D图形处理)到较不密集的应用(例如,DVD回放)的用户应用模式中检测的变化可以使用于SMD的动态控制。例如,通过用户界面(UI)输入机构或应用编程接口(API)的用户和应用程序输入也可被采用以提供SMD的动态控制。这些输入机构可以用于处理应用设置所需的功率水平。这些输入机制可以通过软件(如应用或操作系统)、固件、硬件或它们的各种组合来启用。C.基于工作负荷的控制SMD的动态控制可依赖于工作负荷。举例而言,SMD的动态控制可以根据下面列出的非限制性的示例性的GPU条件中的一个或多个被触发。(I)静态筛选(screen)条件(无负荷)(<TDP的5%)(2)空闲条件(非常轻的负荷)(<TDP的10%)(3)中等的负荷条件(<TDP的50%)(4)重的负荷条件(<TDP的90%)(a)ALU限制(b)纹理提取限制(c)内存吞吐量限制(5)非常重的负荷条件(>TDP的90%)D.基于请求的控制SMD的动态控制可以依赖于请求,并依赖于效能需求以及功率需求。驱动程序监控GPUTDP,以及接近最大TDP负荷时,禁用SMD以降低TDP。使用没有GPU频率和电压调整可以实现这种SMD的禁用。可以使用驱动程序和/或SMU管理的SMC微码检测和实现上述示例性的控制条件。实施方式也可以允许使用自我控制所启用的SIMD数目的专用控件。对于启用和禁用SIMD的示例性寄存器设置在上述条件模式(或任何其他情况)中的任何一种中,驱动程序能写入寄存器“GC_USER_SHADER_PIPE_CONFIG”的位字段(例如,位字段[31:16])以禁用和启用SIMD。如图3A所示,写入“O”启用SIMD,以及写入“I”禁用SIMD。图形处理单元可以包括两个着色器引擎(例如,SEO和SEl)。在这种情况下,对于这些着色器引擎,实施方式可以启用和禁用不同的SMD。这可以通过使用如图3B所示的GRBM索引寄存器分开编程着色器弓I擎而实现。参考图3B,(I)要写入SEO(即着色器引擎)的“GC_USER_SHADER_PIPE_CONFIG”,可使用下面的示例性指令:权利要求1.一种在计算系统中提高效能的方法,其包括:确定处理应用所需的功率水平;以及根据所述功率水平动态地启用和禁用在着色器复合器中的一个或多个单指令多数据单元(SMD)。2.如权利要求1所述的方法,还包括:实时地配置多个寄存器以指示何时所述SIMD要被启用和禁用。3.如权利要求1所述的方法,还包括:确定所述处理应用所需的SMD的数量。4.如权利要求2所述的方法,还包括:审查所配置的所述寄存器;以及根据所述寄存器的配置分配工作线程。5.如权利要求2所述的方法,还包括:在所述配置之前服务一个或多个挂起的工作请求。6.如权利要求1所述的方法,其中,所述动态地启用和禁用包括在所述SMD的活动执行期间并且独立于与所述SMD相关的着色器引擎中的活动性启用和禁用所述SMD。7.如权利要求2所述的方法,还包括:对一个或多个要被禁用的SIMD禁用工作线程;以及确定在所述要被禁用的SIMD中所有挂起的工作线程何时被清空。8.如权利要求1所述的方法,其中,所述启用和禁用依赖于处理的工作负荷、应用请求和操作条件中的一个或多个。9.如权利要求1所述的方法,进一步包括提供动态中等纹理时钟门控到所述SMD。10.如权利要求9所述的方法,进一步包括禁用时钟树到所述SIMD中的未使用的逻辑。11.如权利要求1所述的方法,进一步包括按需提供计时到所述SIMD。12.—种在计算系统中提高效能的系统,其包括:第一模块,其被配置为确定处理应用的功率水平;以及第二模块,其被配置为根据所述功率水平动态地启用和禁用在着色器复合器中的一个或多个单指令多数据单元(SMD)。13.如权利要求12所述的系统,其中,所述第二模块实时地配置多个寄存器来指示何时所述SMD要被启用和禁用。14.如权利要求13所述的系统,其中,所述第二模块被进一步配置为:审查所配置的所述寄存器;以及根据所述寄存器的配置分配工作线程。15.如权利要求13所述的系统,其中,所述第二模块在所述配置之前服务一个或多个挂起的工作请求。16.如权利要求12所述的系统,其中,所述第二模块进一步被配置为在所述SMD的活动执行期间并且独立于与所述SMD相关的着色器引擎中的活动性启用和禁用所述SMD。17.一种计算机可读介质,其存储适于由处理器执行的指令以:确定处理应用所需的功率水平;以及根据所述功率水平动态地启用和禁用在着色器复合器中的一个或多个单指令多数据单元(SMD)。18.如权利要求17所述的计算机可读介质,进一步包括适于由所述处理器执行的指令以:实时地配置多个寄存器,以指示何时所述SIMD要被启用和禁用。19.如权利要求17所述的计算机可读介质,进一步包括适于由所述处理器执行的指令以:确定所述处理应用所需的SMD的数量。20.如权利要求18所述的计算机可读介质,进一步包括适于由所述处理器执行的指令以:审查所配置的所述寄存器;以及根据所述寄存器的配置分配工作线程。21.—种在包括多个指令数据模块的处理器中管理工作分配的方法,其包括:分析由所述处理器接收到的工作单元;将所述多个模块内的活动的模块的利用水平与阈值进行比较;以及根据所述分析和所述比较在所述指令数据模块中所选择的指令数据模块中遍布分布所述工作单元。22.如权利要求21所述的方法,其中,所述比较包括确定所述活动的模块中的每个是否具有小于所述阈值中的一个或多个的利用水平。23.如权利要求22所述的方法,进一步包括禁用其利用水平小于所述一个或多个阈值的所述活动的模块。24.如权利要求21所述的方法,其中,所述分布包括分配所述工作单元的部分给具有小于所述阈值中的一个或多个的利用水平的活动的模块。25.如权利要求21所述的方法,其中,所述分布进一步包括启用非活动的模块。26.如权利要求25所述的方法,进一步包括当所述活动的模块的利用水平大于所述阈值中的一个或多个时分配所述工作单元中的部分给所启用的所述模块。27.如权利要求26所述的方法,其中,所述分布实现所启用的所述模块中的一个或多个的充分利用。28.如权利要求21所述的方法,其中,所述比较包括计数在所述指令数据模块内执行的指令,所述指令代表所述工作单元。29.如权利要求28所述的方法,其中,所述计数在预定的时间周期发生。30.如权利要求29所述的方法,其中,所述指令包括来自包括算术逻辑单元(ALU)指令和取指令的组中的至少一个。31.如权利要求21所述的方法,其中,所述利用水平包括来自包括当前利用和预测的利用的所述组中的至少一个。全文摘要本发明描述一种在图形处理单元中提高效能的系统和方法。实施方式通过在包含多个SIMD单元的着色器复合器中动态地激活/停用单个的SIMD实现在图形处理单元中的功率节约。单个SIMD的动态即时禁用和启用对于给定的处理应用中实现所需的效能和功率水平提供了灵活性。用这种方法,实施方式实现了图形处理单元的最优化使用。本发明的实施方式还在着色器复合器中实现SIMD的动态纹理(如中等纹理)时钟门控。实施方式通过按需提供时钟机制,关闭未使用的逻辑时钟树,以减少开关功率。用这种方法,实施方式增强时钟门控,以在SIMD为空闲(或未指派任何工作)时的持续时间内节约更多的开关功率。文档编号G06T15/00GK103080899SQ201180035148公开日2013年5月1日申请日期2011年7月11日优先权日2010年7月13日发明者图沙尔·K·沙阿,拉沙德·奥雷费基,迈克尔·J·曼特,布莱恩·恩贝林申请人:超威半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1