性能分配方法和装置制造方法

文档序号:6525368阅读:170来源:国知局
性能分配方法和装置制造方法
【专利摘要】本申请提供了一种性能分配方法和装置。根据一些实施例,为了向图形进程分配性能资源以及为了在一些情形下,在所述图形进程和中央处理单元之间分配性能资源,可以监控图形进程帧生成帧速率以及图形进程的利用度或工作负荷度量。
【专利说明】性能分配方法和装置
[0001]本申请是申请日为2009年6月11日、申请号为200910145948.5、发明名称为“性能分配方法和装置”的中国发明专利申请的分案申请。
【技术领域】
[0002]本发明总体上涉及计算,具体地涉及在核心处理和图形处理之间分配处理资源。【背景技术】
[0003]对于现今和未来的计算系统,例如台式计算机、移动计算机、诸如电话和音频/视频播放器的便携设备等,不管设备是否是移动的还是非移动的,都希望消耗更少的功率。因此,对于许多包括多于一个处理单元的设备,例如具有核心处理单元(例如,在具有一个或多个处理核心的处理器内的核心)和图形处理器,可以在处理器(或处理单元)上施加性能预算以降低总体功耗。然而,这样的方法可能是低效的,因而,期望改进的解决方案。
【专利附图】

【附图说明】
[0004]以示例而非限制的方式来说明本发明的实施例,在附图中,相同的附图标记指示相同的元件。
[0005]图1是根据一些实施例的计算系统的系统框图。
[0006]图2是根据一些实施例的具有性能分配引擎的计算系统的一部分的框图。
[0007]图3是根据一些实施例的实现性能分配引擎的例程的流程图。
[0008]图4A-4D以图形的方式渐进地示出了当向CPU提供相对增加的性能资源时,由CPU和GPU性能决定的帧渲染性能。
【具体实施方式】
[0009]根据一些实施例,为了向图形进程分配性能资源以及在一些情形下在图形进程和中央处理单元之间分配性能资源,可以监控图形进程帧生成帧速率以及图形进程的利用度或工作负荷度量。
[0010]图1示出了示例性的计算系统的一部分。该系统包括处理器102 (或中央处理单元“CPU”)、图形/存储控制器(GMC) 104、输入/输出控制器(IOC) 106、存储器108、外围设备/端口 110以及显示设备112,以上部件如图所示耦合到一起。处理器102可以包括一个或多个封装中的一个或多个核心以及功能,以便于执行中央处理任务,包括执行一个或多个应用程序。
[0011]GMC104控制来自处理器102和10C106的对存储器108的访问。它还包括图形处理单元105,用于为在处理器102中运行的应用程序生成要在显示设备112上显示的视频帧。
[0012]10C106控制在外围设备/端口 110和系统中其它模块之间的访问。外围设备可以包括例如:外设芯片互连(PCI)和/或PCI Express端口、通用串行总线(USB)端口、网络(例如,无线网络)设备、诸如键盘、鼠标这样的用户接口设备以及任何可以与计算系统连接的其它设备。
[0013]在一些实施例中,在图形处理单元105内包括性能分配引擎(PAE) 107,以在图形处理单元和处理器102之间分配性能资源。下面还会讨论,PAE监控GPU生成帧的速率以及性能利用度度量(例如,它多么忙碌?),以控制为GPU或在GPU和处理器之间的性能资源分配,以便当需要更少的性能(例如,频率)时减少GPU的性能资源消耗。(应该意识到,虽然在描述的实施例中性能分配引擎107被包括在GPU中,但是其可以替代地被包括在任何其它计算系统模块或GPU与其它计算系统模块的组合中。类似地,应该意识到,在描述的实施例中,虽然在与处理器芯片分离的芯片中实现图形、存储器和I/O控制器功能,但是也可以在共同的芯片或具有不同的彼此组合的共同的集成电路(IC)封装中实现它们,因而,本发明不局限于任何特定的芯片或芯片组合。)
[0014]图2示出了计算系统(例如图1的计算系统)的一部分,其中,GPU105的一部分具有性能分配引擎107。在GPU中示出了与PAE107分离的帧渲染引擎205、存储器207和显示引擎209。GPU105接收帧数据,例如,完全或部分地由运行在处理器102中的应用程序生成的帧数据。帧渲染引擎处理帧数据以生成可以提供给显示设备112的渲染帧(例如,对应于全部或部分视频帧的数字像素信息的文件)。渲染帧被装入存储器207,该存储器207作为缓冲器(例如,先进先出帧缓冲器)来存储帧,以便可以由显示引擎209将这些帧送入显示设备112。
[0015](应该意识到,帧渲染引擎205、存储器207和显示引擎209代表功能块,该功能块可以包括或可以不包括GPU105以内或以外的全部或部分其它功能单元。例如存储器207可以在或可以不在GPU内。)
[0016]PAE107包括用于在GPU105和处理器102之间分配性能资源(例如,频率)的硬件和/或软件。例如,它可以实现为可执行的软件例程,例如,在GPU驱动器中,或者可以用专用或共享的算术或其它逻辑电路来整体地或部分地实现它。它可以包括在GPU内和/或在GPU以外实现的任何合适的硬件和/或软件的组合,以监控渲染帧速率(例如,即时的和/或移动平均帧速率)以及GPU处理器利用度(例如,帧渲染引擎205工作的忙碌程度的度量或指示),以便控制或者指示对GPU和/或处理器的性能资源分配。
[0017]图3示出了用于实现性能分配引擎例程107的示例性的流程图。然而,在讨论它之前,将描述图4A到4D中的图表以便于大致理解图3的例程的目的。这些图表示出了当逐渐地向处理器提供相对增加的性能资源时,由CPU和GPU性能决定的帧渲染性能。每一个图表包括GPU和处理器的示例性的帧持续时间的平均分布,S卩,处理器和GPU分别花费的用于生成帧数据和渲染帧的相对时间。因而,随着曲线向左移动,因此可归于GPU和/或处理器的帧持续时间在减少,平均渲染帧速率在增加。
[0018]图4A表示当帧速率完全受处理器限制时的情形。从图4A移动到4D,向处理器提供相对更高的性能资源(在这个例子中是频率),因此向左边移动处理器分布曲线,并且因次使得总体的帧生成速率更少地受处理器的限制。因而,能够看出,如果总体的渲染帧速率是受处理器限制的,那么增加GPU性能不会有实质性的帮助,并且相反地,如果渲染帧速率是受GPU限制的,那么通过增加处理器性能不会实质上提高帧速率。
[0019]因而,当渲染帧生成是受GPU限制时,如果帧速率不是足够的,则应该增加GPU性能(并非必需是处理器性能)。然而,如果帧速率是足够的,那么可以对处理器降低性能资源,并且因此可以降低例如功耗。类似地,如果确定帧速率是受处理器限制的,那么如果帧速率不是足够的,则可以推断出应该向处理器提供额外的性能资源。然而,如果认为帧速率足够,那么可以从GPU减少性能资源。考虑到这一点,讨论图3的流程图。
[0020]图3示出了根据一些实施例的性能分配引擎例程302。在304,评估图形渲染利用度。例如,这可以通过评估在帧渲染引擎中的利用度(例如在GPU105中的帧渲染利用度205)来完成。利用度是渲染引擎工作的忙碌程度的度量。它可以如指示相关的处理单元是活动的还是空闲的一样简单,或者它可以是相关的GPU单元正在执行的程度的更量化的度量。
[0021]在306,评估(或监控)渲染帧速率。其包括确定正在生成渲染帧的速率,例如由帧渲染引擎生成的。例如,在GPU内(或者甚至在它之外),可以监控指示是否正在向存储器(例如,存储器207)提供新的帧的一 个或多个信号,以测量或估计在生成的帧之间的时间。
[0022]在例程中使用的帧速率可以是即时估计、平均值、具有期望窗口大小(帧的数目)的移动平均值、或这些速率的组合。在一些实施例中,可以使用加权平均值来滤除异常。例如,可以为不同的相邻帧持续时间应用合计为I的权重值,来计算运行平均值。合计为I的权重值的数目将对应于在移动窗口中的帧的数目。依赖于用于测量帧持续时间的采样率,可以调整这些值来获得可接受的结果。
[0023]作为一个例子,假定采样率为每秒200次采样并且期望的移动平均窗口宽度为5秒,在窗口中有两个帧,可以使用值为1/30000的第一加权常数B1和值为2999/30000的第二加权常数a2。那么移动平均帧速率将被如下计算:
[0024]FR=I/ (a^Fj [n_ I ] +a2*Fd)
[0025]其中Fd[n_l]是在窗口中的第一帧的持续时间,Fd是在窗口中的下一帧的持续时间。当然,可以使用任何合适的或期望的加权方案或每个窗口中的帧数目。
[0026]在308,确定GPU利用度是否是高的。如果不高(例如,正常或低),那么在310,例程确定渲染帧速率是否足够。如果该帧速率不是足够的(意味着GPU性能是足够的但处理器性能不足),那么在314,可以增加处理器性能。(注意,在此处以及图中的其它地方使用了虚线框,以表明对于PAE来说处理器性能的控制可能不是可用的,所以它可以控制或者指示应该增加处理器性能)。另一方面,如果在310的帧速率是足够的,那么在312,减少GPU性能并向处理器分配额外的性能。从312或314,例程如图所示返回到304和306。
[0027]返回308,如果GPU利用度高,那么例程进入到316并确定渲染帧速率是否足够(例如,以与在310相同的方式)。如果帧速率是足够的,那么例程返回到304和306并按照所讨论的方式继续进行。另一方面,如果帧速率不是足够的(意味着帧速率是受GPU限制的),那么在318,增加GPU性能(例如,增加频率),例程返回到304和306并按照所讨论的方式继续进行。
[0028]在之前的描述中,已经阐明了许多具体细节。然而,应该理解,可以在没有这些具体细节的情况下实施本发明的实施例。在其它情形中,为了不影响对说明的理解,未详细示出公知的电路、结构和技术。考虑到这一点,所提及的“一个实施例”、“实施例”、“示例性的实施例”、“各种实施例”等表示所描述的本发明的实施例可以包括特定的特征、结构或特性,但是并非每一个实施例必需包括这些特定的特征、结构或特性。另外,一些实施例可以具有为其它实施例描述的特征中的一些、全部或没有这些特征。
[0029]在前述的描述和下列权利要求中,下面的术语应被如下解释:可以使用术语“耦合”和“连接”以及它们的派生词。应该理解,这些术语并非旨在作为互相的同义词。而是在特定的实施例中,“连接”用于表明两个或更多元件相互之间是直接物理或电连接的。“耦合”用于表明两个或更多元件相互协作或交互,但是它们可以是或可以不是直接物理或电连接的。
[0030]本发明并不局限于所描述的实施例,而是可以在所附权利要求的精神和范围内使用更改或变形来实施本发明。例如,应该意识到,本发明适合于使用所有类型的半导体集成电路(“1C”)芯片。这些IC芯片的例子包括但不限于处理器、控制器、芯片组部件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片等。
[0031 ] 还应意识到,在一些图中,用线来表示信号导线。一些可能是较粗的,表示更多的成分信号路径;一些具有数字标记,表示许多的成分信号路径;和/或一些在一个或多个端具有箭头,表示主要的信息流向。然而,不应以限制性的方式对此进行解释。而是,可以结合一个或多个示例性实施例来使用这些增加的细节,以帮助更容易地理解电路。任何所表示的信号线,无论是否具有额外的信息,都可以实际上包括可以在多个方向上传输的一个或多个信号,并可以用任何合适类型的信号方案来实现,例如,用差分对、光纤线和/或单端线实现的数字或模拟线路。
[0032]应该意识到,示例的尺寸/模型/值/范围可以是给定的,虽然本发明并不限制于此。随着制造技术(例如,光刻)越来越成熟,预计可以制造出更小尺寸的设备。另外,为了简化说明和讨论,在图中可以示出或可以不示出到IC芯片和其它部件的公知的电源/地连接,以便不模糊本发明。另外,为了避免模糊本发明,并且还考虑到关于这种框图布置的实现的细节高度依赖于实现本发明的平台,即,这样的细节在本领域技术人员所知的范围内,因此可以用框图形式来示出布置。尽管为了描述本发明的示例性实施例而阐明了具体细节(例如,电路),但是对于本领域技术人员来说应该显而易见的是,可以在没有这些具体细节的情况下来实施本发明或使用这些具体细节的变形来实施本发明。因此,描述应被认为是说明性的而非限制性的。
【权利要求】
1.一种芯片,包括: 性能分配引擎(PAE),用于监控正在对帧进行渲染的图形进程的利用度并用于监控渲染帧的帧速率,以便为所述图形进程分配性能资源。
2.根据权利要求1所述的芯片,其中, 所述性能分配引擎向中央处理器分配性能资源,并且向所述图形进程分配性能资源。
3.根据权利要求2所述的芯片,其中, 所述性能分配引擎被实现为图形处理器驱动器中的可执行指令,所述图形进程在所述图形处理器中执行。
4.根据权利要求3所述的芯片,其中, 所述图形处理器从所述中央处理器接收帧数据。
5.根据权利要求4所述的芯片,其中, 所述中央处理器包括多个核心,所述多个核心中的一个或多个用于生成所述帧数据。
6.根据权利要求4所述的芯片,其中, 所述PAE用于响应于确定所述帧速率不是足够的并且所述图形进程利用度不高,从所述图形进程减少性能资源。
7.根据权利要求6所述的芯片,其中, 所述PAE用于将从所述图形进程减少的所述性能资源提供给所述中央处理器。
8.根据权利要求1所述的芯片,其中, 所述性能资源包括操作频率。
9.一种方法,包括: 监控图形处理器工作负荷; 监控所述图形处理器生成帧的速率;以及 基于所述监控的工作负荷和监控的帧速率来向所述图形处理器分配性能资源。
10.根据权利要求9所述的方法,其中, 监控工作负荷包括:确定所述图形处理器中的帧渲染单元是否活动了充分长的时间。
11.根据权利要求10所述的方法,还包括: 确定是否足够数目的帧渲染单元是充分活动的。
12.根据权利要求9所述的方法,其中, 监控工作负荷包括:监控所述图形处理器是否是空闲的。
13.根据权利要求12所述的方法,还包括: 确定所述图形处理器的空闲工作周期。
14.根据权利要求9所述的方法,包括: 如果所述帧速率是足够的并且所述工作负荷足够低,那么为所述图形处理器分配更少的性能资源。
15.根据权利要求14所述的方法,其中, 如果所述帧速率是足够的并且所述工作负荷足够低,那么向中央处理器提供额外的性能资源。
16.—种系统,包括: 第一处理器,用于执行应用程序并根据所述执行的应用程序生成帧数据;图形处理器,用于接收所述帧数据并且利用所述帧数据生成渲染帧;以及性能分配引擎,用于监控所述图形处理器的利用度度量并监控所述渲染帧的生成速率,并且基于所述监控的利用度度量和帧速率来向所述图形处理器分配性能资源。
17.根据权利要求16所述的系统,其中, 所述第一处理器是中央处理器。
18.根据权利要求16所述的系统,其中, 所述第一处理器和图形处理器是共同封装的一部分。
19.根据权利要求18所述的系统,其中, 所述第一处理器和图形处理器在共同的裸片上。
20.根据权利要求16所述的系统,包括: 显示设备,用于接收合适形式的所述渲染帧。
【文档编号】G06T1/20GK103927708SQ201310722006
【公开日】2014年7月16日 申请日期:2009年6月11日 优先权日:2008年6月11日
【发明者】E·萨姆森, M·拉玛多斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1