限制由多个处理器产生的总热量的基于目标意图的时钟速度确定和调整

文档序号:118966 发布日期:2021-10-19 浏览:27次 >En<

阅读说明:本技术 限制由多个处理器产生的总热量的基于目标意图的时钟速度确定和调整 (Targeted intent based clock speed determination and adjustment to limit total heat generated by multiple processors ) 是由 G·M·林克 于 2020-02-06 设计创作,主要内容包括:功率配置文件库包括多个功率配置文件,其中,每个功率配置文件具有用于相应的处理器的多个最大时钟速度。选择每个功率配置文件中的最大时钟速度以限制处理器共同产生的每单位时间最大热量。开发者计算机系统针对消费者设备选择最终应用程序的各段,并针对每个段选择目标意图。功率配置文件查找使用目标意图来确定用于每个段的功率配置文件。(The library of power profiles includes a plurality of power profiles, wherein each power profile has a plurality of maximum clock speeds for a respective processor. The maximum clock speed in each power profile is selected to limit the maximum amount of heat per unit time that the processors collectively generate. The developer computer system selects segments of the final application for the consumer device and selects a target intent for each segment. The power profile lookup uses the target intent to determine a power profile for each segment.)

限制由多个处理器产生的总热量的基于目标意图的时钟速度 确定和调整

相关申请的交叉引用

本申请要求2019年2月6日提交的美国临时专利申请No.62/802,140的优先权,其全部内容通过引用被整体并入本文。

技术领域

本发明涉及结构化应用开发系统。

背景技术

消费者设备(诸如个人计算机、智能电话、立体观看器、混合现实观看器等)具有用于存储应用程序的存储介质和执行应用程序的例程的一个或多个处理器。这种应用程序包括操作系统和执行众多任务的其他应用程序(诸如游戏、浏览器等)。

多核处理器芯片包括超过一个处理器核。这些处理器核可例如包括中央处理单元(CPU)、图形处理单元(GPU)、向量处理等。当应用开发者开发用于在多个处理器上运行的应用程序时,开发者对各种处理器的时钟速度进行编程。

每个处理器每单位时间产生热量,该热量随着时钟速度上升而增加。多处理器芯片通常可以释放以其最大时钟速度的100%运行的一个处理器的所有热量。然而,当所有处理器以其最大时钟速度的100%运行时,多核处理器芯片可能不能够释放由所有处理器产生的所有热量,这可能导致多核处理器芯片的处理器的电路的损坏。可存在针对多核处理器芯片的时钟速度的规范,其详述了时钟速度应当如何被限制以限制由所有处理器每单位时间产生的最大热量。存在开发者可能忽视规范的风险,这将导致多核处理器芯片的损坏。

发明内容

根据本发明的一个方面,提供了主机计算机系统,其包括主机计算机处理器、被连接到主机计算机处理器的计算机可读介质、以及计算机可读介质上的指令集,该指令集可由主机计算机处理器读取并包括结构化应用开发系统,该结构化应用开发系统具有在计算机可读介质上的功率配置文件(power profile)数据库,该功率配置文件数据库包括:第一参考意图;第一功率配置文件,其与第一参考意图相关联,并具有用于第一处理器的相应第一最大时钟速度和用于第二处理器的相应第二最大时钟速度;第二参考意图;以及第二功率配置文件,其与第二参考意图相关联,并具有用于第一处理器的相应第一最大时钟速度和用于第二处理器的相应第二最大时钟速度,第一功率配置文件的第一最大时钟速度与所述第二功率配置文件的第一最大时钟速度不同。

本发明还提供了一种操作主机计算机系统的方法,其包括:将功率配置文件数据库存储在计算机可读介质上,功率配置文件数据库包括:第一参考意图;第一功率配置文件,其与第一参考意图相关联,并具有用于第一处理器的相应第一最大时钟速度和用于第二处理器的相应第二最大时钟速度;第二参考意图;以及第二功率配置文件,其与第二参考意图相关联,并具有用于第一处理器的相应第一最大时钟速度和用于所述第二处理器的相应第二最大时钟速度,第一功率配置文件的第一最大时钟速度与第二功率配置文件的第一最大时钟速度不同。

本发明还提供了一种消费者设备,其包括:多核处理器芯片,其具有主体和主体上的多个处理器;计算机可读介质,其被连接到处理器;以及计算机可读介质上的应用程序,该应用程序具有:第一段,该第一段具有可由处理器执行的第一例程、以及具有用于每个处理器的相应最大时钟速度的第一功率配置文件;以及第二段,该第二段具有可由处理器执行的第二例程以及第二功率配置文件,该第二功率配置文件具有用于每个处理器的相应最大时钟速度,以使得至少一个处理器具有从第一段改变到第二段的最大时钟速度,其中,处理器在第一段期间每单位时间共同产生第一热量,并在第二部分期间共同产生第二热量,第二热量与第一热量的差异小于10%。

本发明还提供一种操作消费者设备的方法,其包括:将应用程序存储在计算机可读介质上,该计算机可读介质被连接到多核处理器芯片的主体上的多个处理器,应用程序具有第一段和第二段;用处理器执行第一段,第一段具有可由处理器执行的第一例程、以及具有用于每个处理器的相应最大时钟速度的第一功率配置文件;以及用处理器执行第二段,第二段具有可由处理器执行的第二例程、以及具有用于每个处理器的相应最大时钟速度的第二功率配置文件,以使得至少一个处理器具有从第一段改变到第二段的最大时钟速度,其中,处理器在第一段期间每单位时间共同产生第一热量,并在第二段期间共同产生第二热量,第二热量与第一热量的差异小于10%。

本发明还提供一种消费者设备,其包括:第一处理器和第二处理器;计算机可读介质,其被连接到处理器;以及计算机可读介质上的应用程序,该应用程序具有:第一段,该第一段具有可由第一处理器和第二处理器执行的第一例程、以及具有用于第一处理器和第二处理器的第一最大时钟速度和第二最大时钟速度的第一功率配置文件;以及第二段,该第二段具有可由第一处理器和第二处理器执行的第二例程、以及具有用于第一处理器和第二处理器的第一最大时钟速度和第二最大时钟速度的第二功率配置文件,第一功率配置文件的第一最大时钟速度与第二功率配置文件的第一最大时钟速度不同,并且第一功率配置文件的第二最大时钟速度与第二功率配置文件的第二最大时钟速度不同。

附图说明

参考附图通过示例进一步描述本发明,其中:

图1是示出根据本发明的实施例的网络环境的框图,该网络环境具有通过互联网形式的网络彼此连接的主机计算机系统和开发者计算机系统;

图2是示出下载接口的类似于图1的框图;

图3是开发者计算机系统和消费者设备的框图;

图4是示出消费者设备上的应用程序的功能的框图;

图5是示出消费者设备上的应用程序的其它功能的框图;

图6A、图6B和图6C是示出三个不同处理器的功率曲线的图;

图7A、图7B和图7C是示出三个不同功率配置文件的图;

图8A、图8B和图8C是示出分别由图7A、图7B和图7C中的功率配置文件产生的热;

图9是形成网络环境的一部分的采用计算机系统形式的机器的框图。

具体实施方式

附图的图1示出了根据本发明的实施例的网络环境10,其包括通过互联网16形式的网络彼此连接的主机计算机系统12和开发者计算机系统14。大多数的数据和逻辑驻留在主机计算机系统12上,并且准许开发者计算机系统14仅用驻留在开发者计算机系统14上的浏览器应用通过互联网16访问主机计算机系统12上的某些组件。在另一个实施例中,所有的数据和功能可以驻留在开发者计算机系统14上,因此,消除了对主机计算机系统12的需要——开发者计算机系统14有效地变成主机计算机系统。然而,优选地,某些控件驻留在主机计算机系统12上并且在开发者计算机系统14处的开发者不可触及。另一实施例可包括某些数据和功能在主机计算机系统12上,特别是应当在主机计算机系统12的控制下的这种数据和功能,而剩余的数据和功能可驻留在开发者计算机系统14上。

主机计算机系统12包括结构化应用开发系统18。结构化应用开发系统18初始驻留在主机计算机系统12的存储介质上。结构化应用开发系统18的组件在需要时被加载到主机计算机系统12的存储器中。结构化应用开发系统18的组件包括留在存储器上的选择数据52和可由连接到存储器的主机计算机系统12的主机计算机处理器执行的各种逻辑组件。

结构化应用开发系统18包括功率配置文件数据库20、结构化意图系统22、开发工具包24、以及正被开发的应用程序26。应用程序26最初可以不构成结构化应用开发系统18的一部分。然而,它被示为结构化应用开发系统18的一部分是因为它由结构化应用开发系统18的其他组件结合开发者在开发者计算机系统14上做出的选择来构建。

功率配置文件数据库20具有第一参考意图28和第二参考意图30。举例来说,第一参考意图28可以是“图形密集”,第二参考意图30可以是“启动”或者被指定为表征被包括在程序在运行的系统中的设备上的需求或负载的任何其他标签。第一参考意图28具有与其相关联的第一功率配置文件32。第一功率配置文件32具有用于第一处理器的第一时钟速度34和用于第二处理器的第二时钟速度36。第一处理器可以例如是图形处理单元(GPU),第二处理器可以是中央处理单元(CPU)。如果第一参考意图28是图形密集意图,则用于GPU的第一时钟速度34将被设置得高,而用于CPU的第二时钟速度36将被设置得低。以如下方式来选择时钟速度:将要限制在多核处理器芯片上第一处理器和第二处理器共同产生的每单位时间的最大热量,而同时使每个处理器以在第一参考意图28的情况下最佳的时钟速度运行。

第二参考意图30具有与其相关联的第二功率配置文件38。第二功率配置文件38具有用于第一处理器的第一时钟速度40和用于第二处理器的第二时钟速度42。举例来说,第二参考意图30是启动意图。为了启动的目的,如果第一处理器是GPU,则第一时钟速度40被设置得相对低,如果第二处理器是CPU,则第二时钟速度42被设置得相对高。如果第一处理器和第二处理器在同一多核处理器芯片上,则第一时钟速度40和第二时钟速度42被抢先确定以将第一处理器和第二处理器所产生的热量保持在每单位时间最大热量以下。应当注意的是,第一功率配置文件32的第一时钟速度34可以高于第二功率配置文件38的第一时钟速度40,并且第一功率配置文件32的第二时钟速度36可以低于第二功率配置文件36的第二时钟速度42。

功率配置文件数据库20仅具有第一功率配置文件32和第二功率配置文件38。然而,应当理解,功率配置文件数据库20可包括更多的功率配置文件,例如四个功率配置文件,每个功率配置文件与相应的参考意图相关联。

此外,第一功率配置文件32和第二功率配置文件38包括仅用于第一处理器和第二处理器的时钟速度。每个功率配置文件还可包括用于第三处理器、第四处理器等的时钟速度。

结构化意图系统22包括目标意图集46、意图选择接口48、功率配置文件查找(lookup)50和选择数据52。

目标意图集46包括第一目标意图56和第二目标意图58。第一目标意图56可以例如是“图形密集”,第二目标意图58可以是“启动”,因此,类似于功率配置文件数据库20中的第一参考意图28和第二参考意图30。

在开发者计算机系统14处的开发者使用驻留在开发者计算机系统14上的浏览器来通过互联网16访问意图选择接口48。意图选择接口48可以例如是交互式网页,其可由浏览器应用程序从主机计算机系统12通过互联网16下载到开发者计算机系统14上并可在开发者计算机系统14的显示器上的浏览器窗口内查看。意图选择接口48允许开发者选择应用程序的段,并针对相应的段选择目标意图。

在60处,开发者选择将最终构成应用程序的一部分的第一段62。结构化意图系统22在意图选择接口48中将第一目标意图58显示为第一目标意图64,并将第二目标意图58显示为第二目标意图66。然后,提示开发者选择第一目标意图64或者第二目标意图66以用于与第一段62相关联。注意,开发者不被允许选择第一目标意图64和第二目标意图66两者。第一目标意图64和第二目标意图66可以例如以下拉列表被呈现在意图选择接口48内,该下拉列表允许仅选择第一目标意图64和第二目标意图66中的一个并且不允许选择另一个目标意图。在70处,开发者选择将第二目标意图(其与第二目标意图58相同)与第一段62相关联。因此,第一段62具有与其相关联的第二目标意图66,并且第二目标意图66是启动密集目标意图。箭头72指示第二目标意图66与第一段62的关联。

在74处,开发者针对最终应用程序的第二段76进行选择。结构化意图系统22将第一目标意图56显示为第一目标意图78,并将第二目标意图58显示为第二目标意图80,以使得开发者可以在第一目标意图78与第二目标意图80之间进行选择。再次,开发者仅被允许选择第一目标意图78和第二目标意图80中的一个,而排除另一个目标意图。在82处,开发者选择将第一目标意图(其与第一目标意图56相同)与第二段76相关联。箭头84指示第一目标意图78与第二段76的关联。

功率配置文件查找50使用第一段62的第二目标意图66来确定功率配置文件数据库20内的参考意图。在本示例中,第二目标意图66与第二参考意图30匹配,因为它们都是启动密集意图。然后,功率配置文件查找50从功率配置文件数据库20中提取第二功率配置文件38,其包括第一时钟速度40和第二时钟速度42。然后,功率配置文件查找50将第二功率配置文件38存储在选择数据52中作为第二功率配置文件86。功率配置文件查找50将第一段62存储为第一段88。功率配置文件查找50还将第二功率配置文件86与第一段88相关联。如由数据结构领域的技术人员将理解的,第一段88和第一段62可以是完全相同的数据段。然而,为了说明的目的并便于解释,第一段62和第一段88被示为不同的数据段。

类似地,功率配置文件查找50使用与第二段76相关联的第一目标意图78来在功率配置文件数据库20中查找参考意图。在本示例中,第一目标意图78与第一参考意图28匹配,因为它们都是图形密集意图。功率配置文件查找50提取与第一参考意图28相关联的第一功率配置文件32,其包括第一时钟速度34和第二时钟速度36。然后,功率配置文件查找50将第一功率配置文件32存储在选择数据52内作为第一功率配置文件90。功率配置文件查找50将第二段76存储选择数据52内作为第二段92。功率配置文件查找50还在选择数据52中将第一功率配置文件90与的第二段92相关联。

开发者不被允许选择未在相应的功率配置文件86和90中被表示的时钟速度。因此,对于开发者不可能选择组合起来将导致在多核处理器芯片上每单位时间产生太多热量的时钟速度。然而,开发者被允许针对相应段选择目标意图,为了调整各个处理器的时钟速度,而不导致处理器组合起来每单位时间产生太多热量。

开发工具包24包括工具集96、工具选择接口94、应用开发逻辑100和功率限制逻辑102。

工具集96是开发者对被存储在主机计算机系统12的存储设备上的应用程序的各段的组件进行结构化所需要的基本工具集。工具集96被表示为工具1至工具6。在开发者计算机系统14处的开发者从主机计算机系统12下载工具选择接口94以用于显示在开发者计算机系统14上,类似于显示意图选择接口48的方式。工具选择接口94包括与选择数据52中的第一段88和第二段92对应的第一段104和第二段106。工具集96的工具也被显示在工具选择接口94内。在108处,开发者针对第一段104选择第一工具(工具3)。开发者随后继续针对第一段104选择其它工具。因此,用于第一段104的工具可由开发者按它们的选择和它们的顺序来配置。开发者还以可配置的方式选择用于第二段106的工具。第一段104及其工具和第二段106及其工具向开发者表示应用程序将如何在应用程序的各段和每段的功能方面起作用。

应用开发逻辑100在应用程序26中创建第一段112和第二段114。第一段112对应于第一段62、88和104。第二段114对应于第二段76、92和106。应用开发逻辑100将第一段104的工具编译为第一例程118,并在应用程序26的第一段112内输入第一例程118。应用开发逻辑100将第二段106的工具编译为第二例程120,并在第二段114中输入第二例程120。

功率限制逻辑102从选择数据52取回与第一段88对应的第二功率配置文件86,并将第二功率配置文件86输入为第二功率配置文件122,作为应用程序26的第一段112的一部分。功率限制逻辑102还取回与选择数据52中的第二段92对应的第一功率配置文件90,并将第一功率配置文件90输入在第二段114中作为第一功率配置文件124。第一段112的第二功率配置文件122包括用于第一处理器的第一时钟速度40和用于第二处理器的第二时钟速度42。第二段114的第一功率配置文件124包括用于第一处理器的第一时钟速度34和用于第二处理器的第二时钟速度36。因此,第一段112和第二段114每一个具有相应的例程118和120,并且每一个具有相应的用于第一处理器和第二处理器的时钟速度,时钟速度被选择为是意图特定的并由功率限制逻辑102限制以限制处理器组合起来每单位时间产生超过预定热量的热量。

如图2所示,结构化应用开发系统18还包括下载接口98。在开发者计算机系统14处的开发者从主机计算机系统12取得下载接口98,并将下载接口98显示在开发者计算机系统14的显示器上。开发者使用开发者计算机系统14来与下载接口98交互以将应用程序26从主机计算机系统12下载到开发者计算机系统14上。然后,应用程序26作为应用程序130驻留在开发者计算机系统14上。

图3示出了开发者计算机系统14和消费者设备132。消费者设备132具有存储介质134和多核处理器芯片136。多核处理器芯片136具有主体140以及在主体140中和在主体140上制造的第一处理器142和第二处理器144。主体140包括半导体材料,诸如硅、锗、砷化镓等,并且可包括半导体封装领域中通常已知的其它组件和材料。第一处理器142和第二处理器144包括被互连以形成逻辑器件的晶体管和其他电子元器件。第一处理器142和第二处理器144被连接到外部电源,并具有可被设置在预选择时钟速度的时钟。开发者使用开发者计算机系统14来创建应用程序130的副本,并将应用程序的副本作为应用程序150存储在存储介质134上。然后,用应用程序150对消费者设备132编程。在批量制造过程中,应用程序130可首先被传送到用于对多个消费者设备编程以用于按比例分配的编程器。

图4和图5示出了应用程序150如何在消费者设备132上执行。在图4中,应用程序150的第一段112执行。第二功率配置文件122的时钟速度被用于设置第一处理器142和第二处理器144的时钟速度。举例来说,第二功率配置文件122包括用于第一处理器142的第一时钟速度39GHz和用于第二处理器144的第二时钟速度200GHz。第一处理器142和第二处理器144执行第一例程118。第一例程118的由第一处理器142执行的各段用第一例程118A表示,并且第一例程118的由第二处理器144执行的各段用第一例程118B表示。第一例程118A和118B可以同时被部分地执行或者可以具有交织以使得第一例程118A和第一例程118B的部分彼此交替的部分。第一例程118A和第一例程118B由第一处理器142和第二处理器144执行的时钟速度源自图1中的功率配置文件数据库20,并且由于被提供给开发者和不被提供给开发者的逻辑,开发者被阻止选择不同的时钟速度。

图5示出了第二段114的执行。第一功率配置文件124用于设置第一处理器142和第二处理器144的时钟速度。举例来说,第一处理器142具有时钟速度150GHz,第二处理器144具有时钟速度120GHz。第二例程120由第一处理器142和第二处理器144执行。第二例程120的由第一处理器142执行的组件用第二例程120A表示,第二例程120的由第二处理器144执行的组件被表示为第二例程120B。

图6A、图6B和图6C示出了三个不同的处理器可以具有三个不同的生热曲线。在每个图中,在垂直轴示出以瓦特为单位的每单位时间产生的热,在水平轴示出作为最大时钟速度的百分比的性能。图6A所示的处理器的生热曲线最初缓慢地增加,随后加速增加,然后减速增加。图6B所示的处理器的生热曲线最初快速地增加,随后逐渐减速增加。图6C所示的处理器的生热曲线线性地增加。当计算三个处理器所产生的总热量时,必须考虑图6A、图6B和图6C所示的生热曲线。

图7A、图7B和图7C示出了可被存储的三个不同的功率配置文件。图7A示出了其中向处理器中的第一处理器给予优先级的功率配置文件。第一处理器被允许以它的最大时钟速度的100%运行。第二处理器和第三处理器的时钟速度被降低到低于它们的最大时钟速度的100%。图7B示出了其中向第三处理器给予优先级的功率配置文件。第三处理器被设置为以等于它的最大时钟速度的100%的时钟速度运行,而第一处理器和第二处理器的时钟速度被降低到低于它们的最大时钟速度的100%。图7C示出了其中性能被平衡的功率配置文件。所有三个处理器的时钟速度被降低到低于它们的最大时钟速度的100%。

图8A、图8B和8C分别示出了由图7A、图7B和图7C中的功率配置文件产生的热量。每个处理器根据图6A、图6B和图6C中它的相应生热曲线来产生热量。所有三个处理器每单位时间所产生的总热量在图8A、图8B和图8C中是相同的。尽管每单位时间产生的总热量是相同的,但是,在不脱离本发明的范围和精神的情况下,小的变化是可以的。例如,第一功率配置文件每单位时间所产生的总热量可以比遵循第二功率配置文件每单位时间所产生的总热量高小于10%或低小于10%。第三功率配置文件可以产生的每单位时间热量比第一功率配置文件的每单位时间热量高或低小于10%。

本文所描述的消费者设备132可以是如通过引用被并入本文的美国专利申请No.14/331,218中所描述的混合现实系统。

图9示出了采用计算机系统900的示例性形式的机器的图解表示,在该计算机系统900内,可以执行用于使机器执行本文所讨论的任何一个或多个方法的指令集。在可替代实施例中,机器作为独立设备工作或者可被连接(例如,联网)到其他机器。在网络部署中,机器可以在服务器-客户端网络环境中作为服务器或客户端机器工作,或者在对等(或分布式)网络环境中作为对等机器工作。机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、网络路由器、交换机或网桥、或能够执行指定要由机器采取的动作的指令集(顺序地或以其他方式)的任何机器。进一步地,尽管仅示出了单个机器,但是术语“机器”还应被认为包括单独地或联合执行指令集(或多个指令集)以执行本文所讨论的方法中的任何一个或多个方法的机器的任何集合。

示例性计算机系统900包括处理器930(例如,中央处理单元(CPU)、图形处理单元(GPU)、或两者)、主存储器932(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)(诸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM))等)、以及静态存储器934(例如,闪存、静态随机存取存储器SRAM等),它们经由总线936彼此通信。

计算机系统900还可包括视频显示器938(例如,液晶显示器(LCD)或阴极射线管(CRT))。计算机系统900还包括字母数字输入设备940(例如,键盘)、光标控制设备942(例如,鼠标)、磁盘驱动单元944、信号发生设备946(例如,扬声器)、以及网络接口设备948。

磁盘驱动单元944包括机器可读介质950,在其上存储了体现本文所描述的方法或功能中的任何一个或多个的一个或多个指令集952(例如,软件)。软件还可以在由计算机系统900执行期间完全地或至少部分地驻留在主存储器932内和/或处理器930内,存储器932和处理器930也构成机器可读介质。软件还可经由网络接口设备948通过网络954来发送或接收。

虽然在附图中已经描述和示出了某些示例性实施例,但是应当理解,这些实施例仅是说明性的而不是对本发明的限制,并且本发明不限于所示出并描述的具体构造和布置,因为本领域普通技术人员可以进行修改。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:混合学习神经网络架构

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!