用于使用处理任务调度实现热量管理的方法和设备的制作方法

文档序号:6655448阅读:156来源:国知局
专利名称:用于使用处理任务调度实现热量管理的方法和设备的制作方法
技术领域
本发明涉及用于在处理环境中执行热量管理的方法和设备,特别涉及用于通过有效地分配指令和任务而减小热量热点的方法和设备。
背景技术
计算系统正变得日益复杂,从而实现较高的处理速度,同时缩小组件大小并且将器件密集地封装在计算机芯片上。这样的进步对于许多应用的成功是关键性的,例如,实时、多媒体游戏、以及其它计算密集应用。通常,计算系统并入多个并行(或至少协同)操作的处理器,以提高处理效率。
当组件和器件执行诸如指令和任务的操作时,通常生成热量。过热会不利地影响诸如计算机芯片的电子组件的处理能力。例如,如果芯片的一个区域正在执行计算密集任务,则该区域可能显著发热,并且相对于芯片的其余部分形成热点。如果热点超出热量阈值,则可降低芯片的该区域中的组件或器件的性能,或者芯片甚至可以变得被损坏或破坏。
过去,已经采用各种解决方案来解决过热问题。机械解决方案是将散热器附连到计算机芯片。然而,散热器是庞大的,并且可能仅仅用来从芯片排出热量,并且进入到芯片周围的空间容积中。当芯片被存放在诸如个人计算机机箱的机壳中,必须例如通过使用风扇来去除该热量,其中风扇本身占据空间,并且生成讨厌的噪声。
还存在其它更复杂的热量管理方案。例如,在一个解决方案中,可以将温度传感器放置在诸如处理器的关键性电路元件上,并且可以将风扇安装在相关联的系统机壳中。当温度传感器表示已经达到特定温度时,风扇导通,从而增加通过系统机壳的气流,以便使处理器冷却。可选地,当温度传感器表示已经超出预定温度级别时,可以生成致使处理环境开始关机的警报。通常,将传感器放置在与热点具有一定的距离之处。遗憾的是,该反馈方案可能起作用太慢或者不可靠,以致不能防止过热。
其它执行热量管理的尝试采用软件的使用。例如,一种技术降慢组件的时钟,以便在操作之间有更多用于冷却的时间。一种传统系统使用节流(throttling)机制,控制从指令高速缓存到指令缓冲器的指令取出速率。减小取出速率降低热量的生成。甚至更加极端的方案是关断处理器,并且使它冷却。可惜,所有这些技术都直接影响组件操作的速度,并且对于实时处理需要可能是不利的。

发明内容
因此,在本技术领域内需要新方法和设备,用于实现热量管理且同时避免附加硬件或低效率的软件例程。
根据本发明的多个方面,提供了热量调度方法。在优选实施例中,组件具有热量阈值,并且该方法包括提供要由组件执行的多个操作。提供了将操作与热量属性相关联的热量信息。热量属性表示与在操作执行期间预期由组件生成或引起的热量数量相关的值。基于热量属性而调度要执行操作的次序,以便不超出热量阈值。
在一个示例中,该方法还包括使用温度传感装置来测量热量属性。在另一示例中,该方法还包括基于组件的功耗而估计热量属性。可以以不同的方式估计热量属性。在一种情况下,估计包括执行组件的电路模拟。在另一种情况下,估计包括确定组件的功率密度。
在另一示例中,该方法还包括使组件按照执行次序执行操作。更优选地,该组件包括多个处理器件,并且热量属性是所选的执行操作的处理器件的合计热量属性。
在另一示例中,组件包括多个处理器件,处理器件中的每个具有单独的热量阈值,并且热量属性包括多个单独的热量属性,其中每个与处理器件中的一个相关联。在这种情况下,该方法优选地包括选择处理器件中的至少一些来执行操作。监测所选器件,并且在所选器件之中传递(route)操作,以便不超出单独热量阈值。在可选示例中,组件包括多个处理器件,并且在该多个处理器件之间分配热量属性。
在另一示例中,确定热量属性的步骤可以包括(i)确定组件的功耗;(ii)确定组件的占用面积(尺寸);(iii)将功耗除以占用面积,以获得单位面积的功耗;以及(iv)将此乘以热量估计常数。在另一示例中,该方法还可以包括确定冷却属性,以便将冷却属性与热量属性一起并入到调度操作中。
在另一优选实施例中,一种方法首先获得具有一系列操作的程序代码,并且确定与这些操作中的一个或多个相关联的热量属性。还确定组件的热量阈值。根据热量属性而调度这些操作以便由组件执行,使得不超出热量阈值。
在示例中,热量属性说明当组件执行所选操作时预期生成的热量数量。在另一示例中,热量属性说明在一段时间上生成的热量数量。在另一示例中,热量属性说明(a)组件的功耗和(b)组件的功率密度中的至少一个。
在另一示例中,该方法还包括使组件执行操作。在执行期间,监测组件的温度。如果超出热量阈值,则重新调度操作。
在另一示例中,该方法还包括通过对在每个操作中要执行的任务数进行计数来估计热量属性。
在另一示例中,组件包括多个处理器件。在这种情况下,该方法优选地包括监测由所选处理器件对所选操作的动态执行。确定所选器件的操作频率。将操作频率报告给编译器。
在另一示例中,该方法还包括确定计算装置的冷却属性。计算装置包括该组件。根据冷却属性和热量属性而执行调度操作的步骤。冷却属性可以基于计算装置的封装类型。它还可以基于计算装置的冷却装置。在这种情况下,如果冷却装置具有一个状态,则冷却属性是固定的。如果冷却装置具有多个状态,则冷却属性是动态的。
根据本发明的其它方面,提供了用于在计算环境中处理操作的处理系统和方法。在处理系统的一个实施例中,由作为计算装置的一部分的组件执行操作。提供至少一个热量属性。该属性与组件和所选操作相关联。它指示在执行操作之后组件温度的变化。
在一个示例中,处理系统包括调度器。调度器能够根据热量属性而将操作中的至少一个分派给组件。在一种情况下,调度器可用于根据热量属性,从存储位置检索所选择的操作。在另一种情况下,组件包括多个子组件,调度器是简单的调度器,并且热量属性是与组件相关联而不是与子组件相关联的总计热量属性。在另一种情况下,组件包括多个子组件,调度器是高级调度器,并且热量属性还与子组件的至少一些相关联。
在另一示例中,组件是处理器件,并且调度器与处理器件集成在一起。在另一示例中,所选操作包括任务,并且热量属性是任务热量属性。在这种情况下,任务热量属性优选地基于(a)组件的工作频率,(b)组件的热量属性、以及(c)冷却属性中的至少一个。
在另一示例中,至少一些操作包括优先级。在这种情况下,该系统还包括多个优先级队列,其中每个优先级队列包括用于存储第一组操作的第一(例如,热)队列、以及用于存储第二组操作的第二(例如,冷)队列。优选地,该系统还包括调度器。调度器可用于基于操作的优先级并且基于热量属性,将操作中的至少一些分派到所选优先级队列中的热或冷队列。更优选地,调度器还可用于根据热量属性和所选操作的优先级,从所选优先级队列的热队列或冷队列检索这些操作中的所选一个。
在根据本发明多个方面的处理系统的另一实施例中,提供了调度器、第一和第二操作、以及多个处理器。调度器管理包括第一和第二操作的操作。第一操作具有超出操作阈值的热量属性。第二操作具有不超出操作阈值的热量属性。处理器能够执行这些操作。每个处理器具有热量阈值。
在一个示例中,如果不超出所选处理器的热量阈值,则该处理器可以获得并且执行第一第二操作中的至少一个。在另一示例中,如果不超出所选处理器的热量阈值,则处理器获得第一操作。在另一示例中,如果超出所选处理器的热量阈值,则处理器可用于获得并且执行第二操作。
在另一示例中,处理器包括温度传感装置,用于监测或估计处理器的温度。优选地,处理器还包括模数转换器,其可用于从温度传感装置接收温度值,并且提供数字温度值。
在另一示例中,所选处理器包括多个子处理器。期望地,所选处理器具有与所选处理器相关联而不是与子处理器相关联的总计热量属性。可选地,每个子处理器期望具有组件热量属性,其不同于其它子处理器的组件热量属性。
根据本发明的多个方面,提供了在计算环境中执行操作的优选方法。该方法包括存储第一操作并且存储第二操作。基于操作的热量属性而存储这些操作。该方法还包括根据处理器的热量阈值而检索操作中的至少一个。
优选地,如果不超出处理器的热量阈值,则可以检索操作中的至少一个。更优选地,仅仅检索第一操作。如果超出处理器的热量阈值,则优选地检索第二操作。
该方法优选地包括以下附加步骤确定第一和第二操作的优先级,并且提供多个优先级队列。在这种情况下,提供了其中具有第一和第二队列的优先级队列。基于第一操作的优先级而将第一操作存储在第一队列之一中,并且基于第二操作的优先级而将第二操作存储在第二队列之一中。
在另一示例中,该方法还包括将组件热量属性与处理器相关联。在这种情况下,检索操作包括评估组件热量属性的当前状态,并且基于组件热量属性而选择操作。
根据本发明的多个方面,另一优选的执行操作的方法包括确定处理器的温度是否超出热量阈值。如果不超出,则该方法确定是否可获得第一操作。第一操作在执行时可能保持或提高处理器的温度。如果可获得第一操作,则执行它。如果超出热量阈值,则该方法确定是否可获得第二操作。第二操作在执行时可能降低处理器的温度。如果可获得第二操作,则执行它。
在示例中,如果不可获得冷队列操作,则该方法优选地执行“空操作”或“nop”。在另一示例中,该方法还包括确定优先级级别,确定是否可从该优先级级别的优先级队列获得第一操作,并且,如果不可从该优先级队列获得第一操作,则确定是否可从该优先级队列获得第二操作。
在根据本发明的其它方面的另一实施例中,提供了一种处理设备。处理设备能够处理与热量属性相关联的操作。处理设备包括存储器和多个处理器件。存储器用于存储第一和第二操作。第一操作具有超出操作阈值的热量属性。第二操作具有不超出操作阈值的热量属性。处理器件可以执行操作。处理器件中的至少一些具有热量阈值,并且可以存取存储器。至少一个所选处理器件包括处理元件、处理单元或子处理单元。如果不超出所选处理器件的热量阈值,则所选处理器件可以从存储器获得第一操作,以便处理。如果超出所选处理器件的热量阈值,则所选处理器件可以从存储器获得第二操作,以便处理。
在一个示例中,处理器件中的至少一些是处理元件。优选地,处理元件中的至少一些还包括至少一个子处理单元。在这种情况下,子处理单元还包括浮点单元、整数单元、以及与浮点和整数单元相关联的寄存器。更优选地,子处理单元还包括本地存储器。
在另一示例中,处理元件中的至少一些还包括处理单元、以及与该处理单元相关联的多个子处理单元。在这种情况下,子处理单元每个优选地包括本地存储器。
在另一示例中,处理器件中的第一处理器件可用于根据第一处理器件的热量阈值而与处理器件中的第二处理器件交换操作。
在另一示例中,所选处理器件包括子处理单元,并且存储器包括子处理单元中的本地存储器。在这种情况下,本地存储器可以包括用于管理第一操作的第一队列、以及用于管理第二操作的第二队列。可以以分时配置在存储器中维护第一和第二操作。
根据本发明多个方面的另一可选方案中,可以存在一对存储器。在一个示例中,存储器中的第一存储器包括第一队列,用于管理具有超出操作阈值的热量属性的第一组操作,并且存储器中的第二存储器包括第二队列,用于管理具有不超出操作阈值的热量属性的第二组操作。如果不超出所选处理器件的热量阈值,则该处理器件可以获得第一组操作中的至少一个,以便处理。如果超出热量阈值,则该处理器件可以获得第二组操作中的至少一个,以便处理。在另一示例中,存在一对存储器,用于存储第一和第二操作,第一操作具有超出操作阈值的热量属性,并且第二操作具有不超出操作阈值的热量属性。如果不超出所选处理器件的热量阈值,则该处理器件可以从第一或第二存储器获得第一操作,以便处理。如果超出热量阈值,则处理器件可以从第二或第二存储器获得第二操作,以便处理。
根据本发明的多个方面,提供了一种处理任务的方法。该方法包括基于属性而选择多个任务中的一个,以便由组件执行。每个任务的属性与在执行相关联的任务之后组件的温度相关。然后,执行所选任务。
优选地,该属性与在执行相关联的任务之后组件温度的预期升高或降低相关。预期的升高或降低基于组件的功率密度。任务可以存储在存储器内的至少一个队列中。可选地,任务可以存储在存储器内的至少两个队列中。一个队列存储其属性满足条件的任务。另一队列存储其属性不满足条件的任务。条件可以是属性超出阈值。还可以基于组件的当前温度而选择任务。在执行之前,任务可以存储在存储器内的不同地址中。在执行之前,任务可以在不同时间存储在存储器内的相同地址中。优选地,该组件是处理器。
根据本发明的其它方面,提供一种用于处理任务的系统,其包括存储器,用于存储要被处理的任务;以及组件,处理存储在存储器中的任务。任务与属性相关联。每个任务的属性与在处理相关联的任务之后组件的温度相关。基于属性而选择任务中的一个,以便由组件处理。
优选地,该属性与在处理所选择的任务之后组件温度的预期升高或降低相关。预期的升高或降低可以基于组件的功率密度。任务可以存储在存储器内的至少一个队列中。任务还可以存储在存储器内的至少两个队列中。在这种情况下,一个队列存储其属性满足条件的任务,并且另一队列存储其属性不满足条件的任务。该条件可以是属性超出阈值。
存储器优选地包括存储器的两个单独集合。存储器的一个集合存储其属性满足条件的任务,并且存储器的另一集合存储其属性不满足条件的任务。存储器的两个单独集合可以在不同的时间段存储在相同存储器地址中。存储器的两个单独集合可以位于不同的存储器地址。在这种情况下,存储器的两个单独集合可以在相同的半导体器件中,或者可以在不同的半导体器件中。
优选地,组件包括温度传感器。在这种情况下,可以基于温度传感器的输出而选择任务。该系统还可以包括能够处理任务的第二组件。可以基于在处理任务之后每个组件的预期温度而为每个组件选择任务中的一个或多个。该系统还可以包括调度器,其为组件选择任务中的一个或多个。


图1示出了根据本发明多个方面的以不同组合分组的组件。
图2A-B是绘出计算装置的温度相对于时间的图示。
图3A是示出根据本发明多个方面的处理元件(PE)的示例性结构的图。
图3B是示出根据本发明多个方面的PE的多处理系统的示例性结构的图。
图4是示出根据本发明多个方面的子处理单元(SPU)的示例性结构的图。
图5是示出根据本发明多个方面的多队列调度的图。
图6是示出根据本发明多个方面的示例性动态调度处理的流程图。
图7是示出根据本发明多个方面的多队列调度的图。
图8是示出根据本发明多个方面的示例性动态调度处理的流程图。
图9A-C是示出根据本发明多个方面的任务迁移的图。
图10A-B示出了根据本发明多个方面的组件、以及与组件相关联的热量值。
图11示出了根据本发明多个方面的编译器功能性。
具体实施例方式
在描述附图所示的本发明的优选实施例中,为了清楚起见,将使用特定的术语。然而,本发明不意欲局限于如此选择的特定术语,并且应当理解,每个特定术语包括以类似方式操作以实现类似目的的所有技术等效物。
现在参考图3A,其是根据本发明多个方面、可以采用的基本处理模块或处理器元件(PE)300的框图。如该图所示,PE300优选地包括I/O接口302、处理单元(PU)304、直接存储器存取控制器(DMAC)306、以及多个子处理单元(SPU)308即SPU 308a-308d。虽然示出了四个SPU 308a-d,但是PE 300可以包括任何数目的这样的器件。本地(或内部)PE总线320在PU 304、SPU 308、I/O接口302、DMAC 306和存储器接口310之间传送数据和应用程序,例如,本地PE总线320可以具有传统的体系结构,或者可以被实现为分组交换网络。作为分组交换网络的实现,虽然需要较多硬件,但是增加了可用带宽。
可以使用用于实现数字逻辑的各种方法来构造PE300。然而,优选地,将PE 300构造为在硅衬底上采用CMOS的单个集成电路。PE 300通过高带宽存储器连接322,紧密地与存储器330相关联。存储器330期望用作PE 300的主存储器。虽然存储器330优选地是动态随机存取存储器(DRAM),但是可以使用诸如静态随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、光存储器、全息存储器等其它装置来实现存储器330。DMAC 306和存储器接口310帮助在存储器330与PE 300的SPU 308和PU 304之间的数据传输。
例如,PU 304可以是能够独立处理数据和应用程序的标准处理器。在操作中,PU 304调度和组织由SPU 308处理数据和应用程序。SPU 308优选地是单指令多数据数据(SIMD)处理器。在PU 304的控制下,SPU 308可以以并行且独立的方式,执行数据和应用程序的处理。DMAC 306控制通过PU 304和SPU 308访问存储在共享存储器330中的数据和应用程序。优选地,多个诸如PE 300的PE可以结合或封装在一起,或者,在逻辑上彼此相关联,以提供增强的处理能力。
图3B示出了可以根据本发明多个方面操作的、包括多个PE 350(PE1、PE2、PE3和PE4)的处理体系结构。优选地,PE 350在单个芯片上。PE 350可以或可以不操作子系统,例如上面关于图3A的PE 300讨论的PU和/或SPU。根据所需处理的类型,PE 350可以具有相同或不同的类型。例如,PE 350可以是通用微处理器、数字信号处理器、图形处理器等。
PE 350优选地绑于共享总线352。存储器控制器或DMAC 356可以通过存储器总线354连接到共享总线352。DMAC356连接到存储器358,其可以为上面关于存储器330讨论的类型中的一种。I/O控制器362还可以通过I/O总线360连接到共享总线352。I/O控制器362可以连接到一个或多个I/O器件364,例如,帧缓冲器、盘驱动器等。应当理解,上面的处理模块和体系结构仅仅是示例性性,并且可以与其它结构一起采用本发明的各个方面,其它结构包括但不限于在下面文献中所公开的类型的多处理器系统2003年2月25日发布的、发明名称为“Memory Protection System and Method forComputer Architecture for Broadband Networks”的美国专利No.6,526,491,以及2001年3月22日提交的、发明名称为“Computer Architecture and SoftwareCells for Broadband Networks”的美国申请No.09/816,004,在此将它们引作参考。
图4示出了可以根据本发明多个方面而采用的SPU400的结构和功能。SPU 400优选地包括本地存储器402、寄存器404、一个或多个浮点单元406和一个或多个整数单元408。反过来,如下所述,SPU 400的组件包括多个子组件。根据所需的处理能力,可以采用更多或更少数目的浮点单元(FPU)406和整数单元(IU)。在优选实施例中,本地存储器402包含至少128千字节的存储器,并且寄存器404的容量是128X128位。浮点单元406优选地以至少每秒320亿次浮点运算(32GFLOPS)的速度操作,并且整数单元408优选地以至少每秒320亿次运算的速度操作(32GOPS)。
本地存储器402优选地不是高速缓冲存储器。对SPU 400的高速缓存一致性支持是不必要的。相反,本地存储器402优选地被构造为SRAM。PU 204可以要求对由PU 204启动的直接存储器存取的高速缓存一致性支持。然而,对于由SPU 400启动的直接存储器存取、或向和从外部设备的存取,不要求高速缓存一致性支持,。
SPU 400还包括总线410,用于通过总线接口(总线I/F)412向和从SPU400传送应用程序和数据。在优选实施例中,总线410为1,024位宽。SPU 400还包括内部总线414、416和418。在优选实施例中,总线414具有256位宽度,并且在本地存储器402和寄存器404之间提供通信。总线416和418分别在寄存器404和浮点单元406、以及寄存器404和整数单元408之间提供通信。在优选实施例中,从寄存器404到浮点或整数单元的总线416和418的宽度是384位,并且从浮点或整数单元到寄存器404的总线416和418的宽度是128位。从寄存器404到浮点单元406和整数单元408的总线的较大宽度在处理期间容纳来自寄存器404的较大数据流。在一个示例中,对于每个计算需要最大三个字。然而,每个计算的结果通常仅仅是一个字。
现在参考图1,其示出了在衬底100之上或之内形成的组件102。衬底100和组件102可以包括计算机芯片的部分或全部。组件102可以是逻辑器件或其它电路。衬底100的区域中的一个或多个组件102可以关联在一起,作为单元104。单元104和104的组106也可以彼此相关联,以例如形成PE300、PU 304、SPU 308、PE 350或其子组件。例如,单元组106可以包括SPU400,并且组106内的单元104可以包括本地存储器402、寄存器404、FPU 406、整数单元408和总线I/F 412。反过来,每个单元104也可以包括其它单元104和组件102,例如,DRAM存储器单元、逻辑门、缓冲器等。虽然使用了组件102、单元104和组106来说明各个级别的复杂性,但是也可以使用术语“组件”来更一般地引用所有级别的器件,从最基本构建块(例如,晶体管和电容器)直到PE 300或PE 350、以及整个计算机芯片本身。典型地,组件被构造为在衬底100上采用互补金属氧化物半导体(CMOS)的集成电路。衬底100优选地是硅衬底。用于衬底100的可选材料包括但不限于砷化镓、镓铝砷、以及采用多种掺杂物的其它所谓的III-B化合物。还可以使用例如快速单磁通量(RSFQ)逻辑的超导材料来实现组件102。
当组件执行诸如处理指令或任务(例如,一系列指令)的操作时,它们通常生成热量。如这里使用的那样,术语“操作”或“任务”是指要被执行的活动,并且包括但不限于单步或多步的指令、任务、以及程序。
在本发明的一个方面,要由组件执行的操作可以与热量属性相关联,使得热量属性的值与当该组件执行该操作时预期由它生成的热量数量相关。优选地,热量属性还基于时间。例如,属性值可以表示在固定时间段上生成的热量数量。
可以测量或估计热量属性。例如,可以使用温度计或其它温度传感器件来实际测量单元在执行特定操作时的温度。
优选地,基于组件的功耗而估计热量属性。例如,一些组件可能需要更多的功率来操作,并且具有更高的热量属性。其它组件可以具有相同功耗,但是被更密集地封装在一起,与分隔很开的组件相比,这往往将生成更多热量。在这一点上,可以基于两个因素而估计热量属性,在这种情况下,热量属性基于组件或组件组的功率密度。这样,在一些情况下,热量属性可以反映当组件执行操作时预期生成的热量、在时间段上生成的热量、组件的一般功耗、组件的功率密度、以及相关(例如,物理上或逻辑上相关)组件组的功率密度。为了实现芯片的有效热量管理,可能期望调度每个组件的功耗。在芯片开发期间,可以估计组件功耗。例如,可以执行芯片、子系统和/或独立组件的电路模拟。
优选地,热量属性还与特定组件相关联。例如,如果诸如整数加法操作的操作仅仅涉及整数单元408,则热量属性可以特定地与整数单元408相关联。类似地,浮点操作的热量属性可以特定地与浮点单元406相关联。其它操作可以涉及一组组件,例如,从本地存储器402移动数据到寄存器404。另外,其它操作可能涉及所有组件,或者可能难以归因于任何特定一组组件。例如,渲染三维图可能涉及SPU 400中的所有组件,在这种情况下,将热量属性应用于SPU 400中的所有组件。可选地,可能难以预测单独组件在执行操作时将生成多少热量,在这种情况下,一般可以将操作的热量属性分配给组件组。下表示出了操作、组件和热量属性的样例集。

在优选示例中,可以如下计算给定组件(或组件集)的热量属性TA=k*(P/S)TA,热量属性,等于组件的功率密度或功耗(P)除以组件的尺寸或占用面积(S),乘以用于热量估计的因数或常数(k)。
根据本发明的一个方面,程序编译器使用热量属性,以帮助防止组件过热。可以采用软件、固件、硬件或上面的组合实现编译器。它可以与处理元件(例如,PE 300或PE 350)或其子组件相关联(例如,并入)。图11示出了根据本发明多个方面的编译器功能性。如在本技术领域内公知的那样,编译器接收源代码,并且生成可以在计算系统上运行的目标代码。根据本发明的多个方面,编译器接收源代码、以及与操作和/或组件相关的热量属性。编译器优选地基于热量属性而生成目标代码。当编译器通过对指令数进行计数来管理编译时,静态地估计由编译器编译的目标代码的热量属性(一个或多个)。优选地,使用“剖析器(profiler)”进行增强热量属性确定,剖析器是性能监测器,其可以对指令的动态执行进行计算,并且可以报告每个组件的操作频率。剖析器可以向编译器提供更准确的热量估计,这反过来将导致在热量上优化的目标代码生成。
图2A-B示出了编译器或其它指令调度器可以如何管理操作,以便避免处理的恶化、或者对组件的损坏。为了说明起见,假定热量阈值(Tmax)表示不期望超出的温度。三角段A、B和C表示由组件执行的指令。例如,段A和B表示例如生成大量热量的计算密集指令或任务,而片段C例如没有如同A或B那样计算密集,并且没有生成如同A或B那样多的热量。更具体地说,假定任务A、B和C是整个计算(2*3)+(4*5)+(6+7)的部分,其中,任务A表示(2*3)、任务B表示(4*5)并且任务C表示(6+7)。如图2A所示,当按照A、B和C的次序执行任务时,温度可能超出Tmax。这里,因为连续执行A和B,所以突破热量阈值Tmax。
在本技术领域内是公知的,编译器对于它如何对某些指令排序经常具有自由酌处权(discretion)。根据本发明的优选实施例,编译器可以基于操作的热量属性而选择性地对调度进行重新排序。优选地,编译器最初确定操作A、B或C中的任何一个是否具有与其相关联的热量属性。如果是,则编译器可以使用防止超出Tmax的次序,选择性地将操作编译到目标代码中。在上面示例中,编译器可以改变计算该方程式的次序,而不改变最终结果。例如,它可以以A、C和B的次序来调度操作。这样,如通过图2B看到的那样,当改变指令的次序时,温度不超出Tmax。
注意,热量阈值Tmax不一定是故障温度。相反,例如,Tmax可以是基于额定操作参数而选择的设计标准。
此外,当重新排列操作时,编译器优选地跟踪进行计算的组件。例如,一系列操作可以导致SPU 400的一部分(例如,FPU 406)过热,同时SPU的另一部分保持冷(例如,FPU 408)。编译器优选地通过尝试调度操作来解决该问题,以便将它们在SPU的各个组件之间均匀分配。编译器可以做到这一点的一种方式是通过使用热量属性,跟踪或模拟当组件执行程序的操作时它们的温度。例如,可以假定组件X以每时钟周期2个热量属性点的速率冷却,并且在其过热之前具有8个热量属性点的阈值。如果与该组件相关联的操作具有每周期5个点的热量属性,则如果接连执行三次操作(第一周期之后的5-2点导致3的当前热量指数;第二周期之后的5-2点增加另外3点,使得总计的当前热量指数为6;第二周期之后的5-2点添加另外3点,使得总计的当前热量指数为9),则假定组件过热。检测到组件X可能由于这样的调度而过热,则编译器将尝试调度操作以使其由另一组件执行,同时组件X保持不激活并且冷却。
可选地,编译器可以尝试选择其热量属性低于预期该组件冷却的速率的不同操作。例如,如果编译器确定组件X可能由于当前的操作调度而过热,则它可以尝试在具有5的热量属性的操作中间散布具有1的热量属性的操作(假定组件以每周期2热量属性的速率冷却,则这就将允许该组件稍微冷却)。
就组件由其它组件包含而言,编译器还可以将较大组件的热量属性分配给其子组件,或者从子组件分配到其父组件。例如,如图10A所示,如果单独组件同时执行具有热量属性2、3、2和7的操作,则可以认为,SPU的热量属性对于所有这些操作是14。另一方面,可以将可归因于整个SPU 400的热量属性分配给单独组件。如图10B所示,如果三维渲染的热量属性是12,并且可归因于整个SPU,则可以将该值均匀地分配给SPU 400内的组件。分配中的其它变化是可能的,包括通过包含关系、逻辑功能和物理邻近而相关的组件之间和之中的分配。
可以看到,各个组件的热量值不仅反映单独组件的瞬时操作,而且还可以在时间上累积,并且可以对于组件组来合计。考虑到这些因素,编译器可以有效地调度操作,以避免热量阈值Tmax。
优选地,冷却属性与包含各个组件的计算机芯片相关联。冷却属性依赖于计算机芯片的冷却系统的特定特征。例如,冷却属性优选地依赖于芯片封装和冷却器(例如,散热器或风扇),如果有的话。如果冷却系统仅仅具有冷却器的一个状态(例如,总是以设定旋转速度操作风扇),则冷却属性将是固定的。如果可以例如通过改变风扇的旋转速度来改变冷却系统的状态,则冷却属性优选地是动态的,并且当冷却系统改变冷却器的操作状态时,可以确定和更新冷却属性。在一个实施例中,编译器使用基于冷却器的典型操作状态而计算的固定冷却属性。编译器在计算属于特定组件的操作的密度时,使用冷却属性。更优选地,编译器还将芯片封装的散热性能考虑在内。在另一实施例中,编译器或剖析器采用动态冷却属性,以帮助编译器执行目标代码生成。下表示出了用于整数操作的示例性调度,其中该整数操作将基于热量和冷却属性而由给定整数单元(IU)408和给定本地存储器(LS)402处理。

对于上面指令集,假定IU 408的热量属性是3,芯片的冷却属性是1,并且IU 408的热量阈值是10。最左列识别指令号,第二列识别哪个组件处理该指令,并且表右边的两列示出了在处理指令之后所生成的热量或组件的温度。例如,由LS处理或实现指令1,导致热量值2,同时IU保持为零。由IU操作指令2,此后,IU具有热量值3,并且LS冷却到热量值1。处理继续直至指令5,其是“空操作”(nop)。这允许IU和LS在一定程度上冷却。IU处理指令6和7,从而将其热量值升高到阈值。为了防止超出阈值,不同组件(“其它”)优选地处理下一指令。例如,剖析器可以监测IU和LS的指令执行,并且向编译器报告该信息。编译器可以结合热量属性和冷却属性来使用该信息,以使指令8由另一IU处理。
现在参考图5,其示出了根据本发明多个方面的多队列调度方法500。如图5所示,调度器502优选地与两个队列相关联。为了方便起见,第一队列在这里被称为“热队列”504,并且第二队列在这里被称为“冷队列”506。可以以多种不同方式例如作为存储器中的数据结构、或者连续或不连续集合,实现队列504、506。在采用SPU 400的一个示例中,在SPU 400的外部实现队列504、506。还可以例如与存储器330(或存储器358)相关联地在PU 304或PE 300(或PE350)的外部实现队列504、506。在另一示例中,在SPU 400的内部实现队列504、506。期望地,可以与本地存储器402或寄存器404相关联地实现队列504、506。例如,可以与第一SPU 400的本地存储器402相结合实现热队列504,并且可以与第二SPU 400的本地存储器402相结合实现冷队列506。在SPU 400包括多个本地存储器402的情况下,热队列504可以存储在本地存储器402的第一个中,而冷队列506可以存储在相同SPU400内的本地存储器402的第二个中。可选地,热队列504和冷队列506两者都可以在相同的本地存储器402中、或者在SPU 400外部或PE 300外部的相同存储器中实现。如果通过寄存器404实现队列504、506,则各种可选方案是可能的。在一种情况下,可以通过第一SPU 400的寄存器404来实现热队列504,并且可以通过第二SPU 400的寄存器404来实现冷队列506。还可以以分时配置实现队列504、506,例如,其中在第一时间段内,队列504、506中的一个存储在存储器中,然后,在第二时间段内,队列504、506中的另一个存储在存储器中。
调度器502可以根据热量属性,用指令、任务或其它操作填充热队列504和冷队列506。优选地,调度器502可以访问包含热量属性的查询表。调度器502可以在运行时操作之前和/或期间操作。调度器502可以根据组件的当前(或预测)温度,从热队列504或冷队列506选择任务。在优选示例中,只要器件的当前温度不超出操作阈值,则调度器502可以从热或冷队列504、506中选择任何任务。在另一优选示例中,如果不超出操作阈值,并且如果可获得热和冷任务两者,则调度器502在从冷队列506选择任务之前,从热队列504选择任务。仅仅作为示例,需要多个操作的浮点指令或任务可以与相对高或正热量属性值相关联。例如,如通过任务H1...HN看到的那样,将把这些操作放置在热队列504中。诸如整数指令和单操作任务的其它操作可以与相对低或负热量属性相关联。例如,如通过任务C1...CN看到的那样,将把这样的操作放置在冷队列506中。优选地,使用来自编译器和/或剖析器的信息来确定任务的热量属性,其中编译器和/或剖析器中的任一个都可以报告执行任务的每个组件的操作频率。更优选地,任务的热量属性并入组件(一个或多个)的操作频率(例如,使用频率)、组件(一个或多个)的热量属性、以及冷却属性。根据一个实施例,简单调度器仅仅使用诸如SPU 400的、具有子组件的组件的总计热量属性。根据另一实施例,高级调度器管理诸如LS 402、FPU 406和IU 408的、SPU的子组件的热量属性。下表针对3维任务和MPEG-2任务示出了给定SPU中的IU、FPU和LS的热量属性。

仅仅考虑SPU的总计热量属性的简单调度器将知道它具有可能超出SPU的热量阈值的值12。这样,简单调度器只能选择MPEG-2任务,以便由SPU执行。相反,高级调度器优选地监测SPU的子组件。在这种情况下,高级调度器可以知道没有子组件超出其热量阈值,从而可以选择三维任务。在可选方案中,调度可以重新排序任务或任务内的操作,以便在特定阶段执行MPEG-2任务,从而给予FPU时间冷却。该灵活性是允许子组件、组件和/或整个多处理系统操作而不会过热的强大工具。
如本领域的技术人员所清楚的那样,可以用硬件、固件、或软件实现调度器502。优选地,调度器502基于硬件,并且在PU 204中实现。在另一优选可选方案中,调度器502基于软件,其作为整个计算装置的操作系统的一部分。在程序执行期间,通过总线508,热队列504和冷队列506优选地对于一个或多个PE(PE1...PEN)、PU(PU1...PUN)、和/或SPU(SPU1...SPUN)是可访问的。根据一个实施例,每个PE、PU和/或SPU优选地包括热量传感器(温度传感装置),以监测其温度、或可选地估计当前温度。根据另一实施例,每个PE优选地包括热量传感器和模数A/D转换器,以便提供温度的数字估计。优选地,PE上的每个内核可以随时读取其自己的数字化温度。期望地,PE、PU和SPU每个具有热量阈值Tmax,其可以随着组件而不同。如果热量传感器不可用,则可以通过任务的热量属性和当前冷却属性来计算当前温度。
调度器502还可以管理操作而不使用队列。操作可以存储在存储器中,并且调度器502可以根据热量属性而将一些操作分派给处理器。例如,如果存在两个操作,则调度器可以基于热量属性而将这两个操作分派给两个独立的处理元件300(或其它处理器件)。操作可以存储在独立的存储器中(或在单个存储器的独立部分中)。第一操作可以存储在第一存储器(或单个存储器的第一部分)中,并且第二操作可以存储在第二存储器(或单个存储器的第二部分)中。不必同时存储两个操作;相反,可以在不同时间段期间(以及可选地在固定或可变连续或不连续时间段期间),将它们存储在相同或不同的存储器中。此外,应当理解,两个存储器(或单个存储器的两个部分)不必是限于特定操作、或与特定热量属性相关联的操作的专用存储器。这样,第一存储器(或单个存储器的第一部分)可以存储第二操作,并且第二存储器(或单个存储器的第二部分)可以存储第一操作。同样,应当理解,第一和第二队列504、506可以以类似方式操作。
图6示出了用于获得和处理操作的优选方法的流程图600。在步骤602,PE、PU或SPU确定其当前温度是否高于热量阈值Tmax。如果不超出Tmax,则处理接下来前进到步骤604,否则处理继续到步骤608。在步骤604,确定是否可从热队列504获得操作。如果可获得操作,则处理前进到步骤606,否则处理前进到步骤608。在步骤606,PE、PU或SPU获得“热”操作并且执行它。一旦操作完成,处理就返回到步骤602。在步骤608,确定是否可从冷队列506获得操作。如果可获得操作,则处理前进到步骤610。否则,处理继续到步骤612。在步骤610,PE、PU或SPU获得“冷”操作并且执行它。一旦操作完成,处理就返回到步骤602。如果不可获得待处理的任务,则在返回到步骤602之前的时间段(例如,预定数目的周期)内,处理可以在步骤612空闲或者执行“nop”。可选地,如上面关于图5所述,如果可获得热和冷任务两者,并且不超出Tmax,可以选择热或冷任务。这样,如通过流程图600看到的那样,处理器件能够通过从热和冷队列504、506选择任务来避免热点和过热。可以由一个或多个处理器件并发地执行该处理,从而允许执行指令和任务,而不改变时钟速度或关断处理器件。
如图7所示,有可能将热和冷队列的使用与优先级队列相组合。在该图中,提供了多队列调度方法540。调度器542与三个优先级队列即高优先级队列544、中优先级队列546和低优先级队列548相关联,不过可以采用不同优先级级别和数目的队列。调度器542如上面参考调度器502所述而操作。优先级队列544、546和548中的每个优选地包括热队列和冷队列,其以与上面关于图5所述相同的方式被创建和操作。例如,高优先级队列544具有用于处理任务H1H...HNH的热队列、以及用于处理任务C1H...CNH的冷队列。类似地,中优先级队列具有用于处理任务H1M...HNM的热队列、以及用于处理任务C1M...CNM的冷队列。类似地,低优先级队列具有用于处理任务H1L...HNL的热队列、以及用于处理任务C1L...CNL的冷队列。
图8示出了用于在采用优先级队列时获得和处理操作的优选方法的流程图800。最初,在步骤801,PE、PU或SPU确定采用什么优先级队列,例如,高优先级队列544、中优先级队列546或低优先级队列548。在步骤802,PE、PU或SPU确定其当前温度是否高于热量阈值Tmax。如果不超出Tmax,则处理接下来前进到步骤804,否则处理继续到步骤808。在步骤804,确定是否可从所选优先级队列的热队列504获得操作。如果可获得操作,则处理继续到步骤806,否则处理继续到步骤808。在步骤806,PE、PU或SPU获得“热”操作并且执行它。一旦操作完成,处理就返回到步骤801。在步骤808,确定是否可从所选优先级队列的冷队列506获得操作。如果可获得操作,则处理继续到步骤810,否则处理继续到步骤812。在步骤810,PE、PU或SPU获得“冷”操作并且执行它。一旦操作完成,处理就返回到步骤801。如果不可获得待处理的任务,则在返回到步骤801之前,处理在步骤812空闲。可选地,如果对于给定优先级级别可获得热和冷任务两者,并且不超出Tmax,则可以针对该优先级级别而选择热或冷任务。这样,如通过流程图800看到的那样,处理组件能够通过在运行时间期间从各个优先级队列544、546和548的热和冷队列选择任务来避免热点和过热。可以由一个或多个处理组件并发地执行该处理,从而允许执行指令和任务,而不改变时钟速度或关断处理组件。在可选方案中,如果处理器件变得太热,并且接近或超出Tmax,则它可以从较低优先级队列(例如,中优先级队列546或低优先级队列548)选择操作,并且/或者以减小的时钟周期执行操作,而不管操作的热量属性可以以减小的时钟周期来执行这样的较低优先级任务。
在一些情形下,组件可能在执行操作(例如,任务)之前低于热量阈值Tmax,但是然后,可能在任务执行期间超出Tmax。过去,这样的现象将可能需要关断组件并且让它冷却。然而,已经开发了一种解决该问题的技术,其特别适于多处理器环境。
图9A示出了运行一组任务的多个PE。在该示例中,假定PE2在其处理任务1的期间过热。有可能将任务1从PE2移动到可能正在操作其它任务例如任务2和3的其它处理器中的一个。其它任务优选地是比当前由PE2执行的任务具有更低优先级的任务。
如图9B所示,其它处理器中的任务,例如任务3可以被“换出”并且发送到例如适当的队列(或者不同的处理器)。这样,在PE3完成任务1时,PE2将不执行任务。可选地,这两个处理器可以交换任务,使得PE2如图9C所示执行较低优先级任务。如图9C所示,(1)最初,PE 2和PE 3可以以例如500MHz的标准时钟速度操作。然后,(2),如果PE 2在操作高优先级任务1时变热,则可以与PE 3的较低优先级任务3交换其任务。最后,(3)可以以较慢或降低的时钟速度(例如,250MHz)执行较低优先级任务3,从而让PE2冷却,同时PE 3继续以500MHz的标准时钟速度执行任务1。还有可能提高时钟速度(例如,到650MHz),以执行较高优先级任务。应当理解,标准、提高和降低的时钟速度仅仅是示例性的,并且可以根据处理器、子处理器的特定体系结构和/或多处理系统的最大时钟速率而变化。在最坏情况的场景中,过热处理器可以停止操作,直至温度达到满意级别。然而,多处理器系统中的其它处理器将继续处理,以便迅速执行实时操作和其它关键性操作。虽然在图9A-C中示出了PE,但是有可能用PU和SPU、或者各种处理器件的组合执行相同的操作。例如,过热SPU 308可以将其高优先级任务发送到PU 304,PU 304可以将该任务重新分派给第二SPU 308。类似地,PU 304可以取得第二SPU 308的较低优先级任务,并且将其分派给第一SPU 308。一旦第一SPU 308冷却,它就可以恢复以正常时钟速度处理高优先级和/或“热”任务。
虽然参考特定实施例描述了本发明,但是应当理解,这些实施例仅仅用来说明本发明的原理和应用。因此,应当理解,可以对说明性实施例进行众多修改,并且可以设计其它配置而不脱离由所附权利要求限定的本发明的精神和范围。
工业应用本发明适用于一种用于在处理环境中通过有效地分配指令和任务来减少热量热点的技术。
权利要求书(按照条约第19条的修改)1.一种用于执行要由具有热量阈值的组件执行的操作的方法,包括提供要由组件执行的多个操作;将操作与热量属性相关联,该热量属性表示与在操作执行期间预期要由组件生成或引起的热量数量相关的值;以及确定组件的温度是否超出热量阈值;以及(i)如果不超出热量阈值,则执行第一操作,该第一操作与在执行之后可能保持或提高组件的温度的热量属性相关联;(ii)如果超出热量阈值,则执行第二操作,该第二操作与在执行之后可能降低组件的温度的热量属性相关联。
2.如权利要求1所述的方法,还包括使用温度传感装置来测量热量属性。
3.如权利要求1所述的方法,还包括基于组件的功耗而估计热量属性。
4.如权利要求3所述的方法,其中估计热量属性还包括执行组件的电路模拟。
5.如权利要求3所述的方法,其中估计热量属性还包括确定组件的功率密度。
6.如权利要求1到5所述的方法,还包括按照执行次序来执行操作。
7.如权利要求1到6所述的方法,其中组件包括多个处理器件,并且热量属性是处理器件中执行操作的所选处理器件的合计热量属性。
8.如权利要求1到6所述的方法,其中组件包括多个处理器件,该处理器件中的每个都具有单独的热量阈值,并且热量属性包括多个单独的热量属性,每个单独的热量属性与处理器件中的一个相关联。
9.如权利要求8所述的方法,还包括选择处理器件中的至少一些,以执行操作;监测所选的处理器件;以及在所选的处理器件之间传递操作,以便不超出单独热量阈值。
10.如权利要求1到9所述的方法,其中组件包括多个处理器件,并且在该多个处理器件之间分配热量属性。
11.如权利要求1所述的方法,还包括通过以下操作确定热量属性(i)确定组件的功耗;
(ii)确定组件的占用面积;(iii)将组件的功耗除以组件的占用面积,以获得单位面积的功耗;以及(iv)将单位面积的功耗乘以热量估计常数。
12.如权利要求1到11所述的方法,还包括确定属性;其中调度操作将该属性与热量属性一起并入。
13.如权利要求1到12所述的方法,还包括如果不可获得第二操作,则执行空操作。
14.如权利要求1到13所述的方法,还包括确定优先级级别;确定是否可从该优先级级别的优先级队列中获得第一操作;以及如果不可从该优先级队列中获得第一操作,则确定是否可从该优先级队列中获得第二操作。
15.如权利要求1到14所述的方法,包括基于属性来选择多个任务中的一个,以便由组件执行,其中每个任务的属性与在执行相关联的任务之后的组件的温度相关;以及执行所选的任务。
16.如权利要求15所述的方法,其中属性与在执行相关联的任务之后的组件温度的预期升高或降低相关。
17.如权利要求16所述的方法,其中预期的升高或降低是基于组件的功率密度。
18.如权利要求15到17所述的方法,其中任务被存储在存储器内的至少一个队列中。
19.如权利要求15到17所述的方法,其中任务被存储在存储器内的至少两个队列中,一个队列存储其属性满足条件的任务,并且另一个队列存储其属性不满足条件的任务。
20.如权利要求15到19所述的方法,其中条件是属性超出阈值。
21.如权利要求15到20所述的方法,其中还基于组件的当前温度来选择任务。
22.如权利要求15到17所述的方法,其中在执行之前,任务被存储在存储器内的不同地址中。
23.如权利要求15到17所述的方法,其中在执行之前,任务在不同时间被存储在存储器内的相同地址中。
24.如权利要求15到23所述的方法,其中组件是处理器。
25.一种处理系统,包括处理器,具有热量阈值,执行多个操作,该多个操作中的每个与热量属性相关联,该热量属性表示与在操作执行期间预期要由处理器生成或引起的热量数量相关的值;其中(i)如果处理器的温度超出热量阈值,则处理器执行第一操作,该第一操作与在执行之后可能保持或提高处理器的温度的热量属性相关联;(ii)如果处理器的温度不超出热量阈值,则处理器执行第二操作,该第二操作与在执行之后可能降低处理器的温度的热量属性相关联。
26.如权利要求25所述的处理系统,包括调度器,用于基于热量属性来管理包括第一和第二操作的多个操作;以及多个处理器,用于执行该多个操作,该多个处理器中的每个都具有热量阈值。
27.如权利要求26所述的处理系统,其中如果不超出该多个处理器中的所选处理器的热量阈值,则所选处理器可用于获得并且执行第一操作和第二操作中的至少一个。
28.如权利要求27所述的处理系统,其中如果不超出所选处理器的热量阈值,则所选处理器获得第一操作。
29.如权利要求26所述的处理系统,其中如果超出该多个处理器中的所选处理器的热量阈值,则所选处理器可用于获得并且执行第二操作。
30.如权利要求26到29所述的处理系统,其中处理器包括温度传感装置,用于监测或估计处理器的温度。
31.如权利要求30所述的处理系统,其中每个处理器还包括模数转换器,其可用于从温度传感装置接收温度值并且提供数字温度值。
32.如权利要求26到31所述的处理系统,其中处理器中的所选处理器包括多个子处理器。
33.如权利要求32或33所述的处理系统,其中所选处理器具有与所选处理器相关联而不是与子处理器相关联的总计热量属性。
34.如权利要求32所述的处理系统,其中每个子处理器具有与其它子处理器的组件热量属性不同的组件热量属性。
35.一种用于处理任务的系统,包括存储器,用于存储要被处理的任务;组件,用于处理存储在存储器中的任务;其中任务与属性相关联,每个任务的属性与在处理相关联的任务之后的组件的温度相关,并且基于属性而选择任务中的一个,以便由组件处理。
36.如权利要求35所述的系统,其中属性与在处理所选任务之后的组件温度的预期升高或降低相关。
37.如权利要求36所述的系统,其中预期的升高或降低是基于组件的功率密度。
38.如权利要求35到37所述的系统,其中任务被存储在存储器内的至少一个队列中。
39.如权利要求35所述的系统,其中任务被存储在存储器内的至少两个队列中,一个队列存储其属性满足条件的任务,并且另一个队列存储其属性不满足条件的任务。
40.如权利要求39所述的系统,其中条件是属性超出阈值。
41.如权利要求35到40所述的系统,其中存储器包括存储器的两个单独集合,存储器的一个集合存储其属性满足条件的任务,而存储器的另一个集合存储其属性不满足条件的任务。
42.如权利要求41所述的系统,其中存储器的两个单独集合被存储在相同的存储器地址中,但是在不同的时间段。
43.如权利要求41所述的系统,其中存储器的两个单独集合位于不同的存储器地址。
44.如权利要求41到43所述的系统,其中存储器的两个单独集合在相同的半导体器件中。
45.如权利要求41到43所述的系统,其中存储器的两个单独集合在不同的半导体器件中。
46.如权利要求35到45所述的系统,其中组件包括温度传感器,并且基于温度传感器的输出来选择任务。
47.如权利要求35到46所述的系统,还包括能够处理任务的第二组件,其中基于在处理任务之后每个组件的预期温度来为每个组件选择任务中的一个或多个。
48.如权利要求35到47所述的系统,还包括调度器,用于为组件选择任务中的一个或多个。
权利要求
1.一种用于调度要由具有热量阈值的组件执行的操作的方法,包括提供要由组件执行的多个操作;将操作与热量属性相关联,该热量属性表示与在操作执行期间预期要由组件生成或引起的热量数量相关的值;以及按照基于热量属性的执行次序来调度操作,以便不超出热量阈值。
2.如权利要求1所述的方法,还包括使用温度传感装置来测量热量属性。
3.如权利要求1所述的方法,还包括基于组件的功耗而估计热量属性。
4.如权利要求3所述的方法,其中估计热量属性还包括执行组件的电路模拟。
5.如权利要求3所述的方法,其中估计热量属性还包括确定组件的功率密度。
6.如权利要求1所述的方法,还包括组件按照执行次序来执行操作。
7.如权利要求6所述的方法,其中组件包括多个处理器件,并且热量属性是处理器件中执行操作的所选处理器件的合计热量属性。
8.如权利要求1所述的方法,其中组件包括多个处理器件,该处理器件中的每个都具有单独的热量阈值,并且热量属性包括多个单独的热量属性,每个单独的热量属性与处理器件中的一个相关联。
9.如权利要求8所述的方法,还包括选择处理器件中的至少一些,以执行操作;监测所选的处理器件;以及在所选的处理器件之间传递操作,以便不超出单独热量阈值。
10.如权利要求1所述的方法,其中组件包括多个处理器件,并且在该多个处理器件之间分配热量属性。
11.如权利要求1所述的方法,还包括通过以下操作确定热量属性(i)确定组件的功耗;(ii)确定组件的占用面积;(iii)将组件的功耗除以组件的占用面积,以获得单位面积的功耗;以及(iv)将单位面积的功耗乘以热量估计常数。
12.如权利要求1所述的方法,还包括确定冷却属性;其中调度操作将冷却属性与热量属性一起并入。
13.一种热量调度方法,包括获得包括一系列操作的程序代码;确定与操作中的一个或多个相关联的热量属性;确定组件的热量阈值;以及根据热量属性而调度操作以便由组件执行,使得不超出热量阈值。
14.如权利要求13所述的方法,其中热量属性说明当组件执行所选操作时预期生成的热量数量。
15.如权利要求13所述的方法,其中热量属性说明在一段时间上生成的热量数量。
16.如权利要求13所述的方法,其中热量属性说明组件的功耗和组件的功率密度中的至少一个。
17.如权利要求13所述的方法,还包括组件执行操作;在执行期间,监测组件的温度;以及如果超出热量阈值,则重新调度操作。
18.如权利要求13所述的方法,还包括通过对在每个操作中要执行的任务数进行计数来估计热量属性。
19.如权利要求13所述的方法,其中组件包括多个处理器件,该方法还包括监测处理器件中的所选处理器件对操作中的所选操作的动态执行;确定所选处理器件的操作频率;以及将所选处理器件的操作频率报告给编译器。
20.如权利要求13所述的方法,还包括确定计算装置的冷却属性,计算装置包括组件;其中根据冷却属性和热量属性而执行调度操作。
21.如权利要求20所述的方法,其中冷却属性基于计算装置的封装类型。
22.如权利要求21所述的方法,其中冷却属性还基于计算装置的冷却装置。
23.如权利要求22所述的方法,其中如果冷却装置具有一个状态,则冷却属性是固定的;以及如果冷却装置具有多个状态,则冷却属性是动态的。
24.一种处理系统,包括计算装置,包括组件;要由组件执行的多个操作;以及与组件和操作中的所选操作相关联的至少一个热量属性,该热量属性表示在执行所选操作之后组件温度的变化。
25.如权利要求24所述的处理系统,还包括调度器,其可用于根据热量属性而将操作中的至少一个分派给组件。
26.如权利要求25所述的处理系统,其中调度器可用于根据热量属性而从存储位置检索操作中的所选操作。
27.如权利要求25所述的处理系统,其中组件包括多个子组件,调度器是简单调度器,并且热量属性是与组件相关联而不是与该多个子组件相关联的总计热量属性。
28.如权利要求25所述的处理系统,其中组件包括多个子组件,调度器是高级调度器,并且热量属性还与子组件中的至少一些相关联。
29.如权利要求25所述的处理系统,其中组件是处理器件,并且调度器与处理器件集成在一起。
30.如权利要求24所述的处理系统,其中所选操作包括任务,并且热量属性是任务热量属性。
31.如权利要求30所述的处理系统,其中任务热量属性基于组件的操作频率、组件的热量属性、以及冷却属性中的至少一个。
32.如权利要求24所述的处理系统,其中操作中的至少一些包括优先级,该系统还包括多个优先级队列,其中每个优先级队列包括第一队列和第二队列,第一队列用于存储第一组操作,并且第二队列用于存储第二组操作。
33.如权利要求32所述的处理系统,还包括调度器,可用于基于操作的优先级和热量属性,将操作中的至少一些分派给优先级队列中的所选优先级队列内的第一或第二队列。
34.如权利要求33所述的处理系统,其中调度器还可用于根据热量属性和所选操作的优先级,从所选优先级队列的第一队列或第二队列检索操作中的所选操作。
35.一种处理系统,包括第一操作,具有超出操作阈值的第一热量属性;第二操作,具有不超出操作阈值的第二热量属性;调度器,用于基于热量属性而管理包括第一和第二操作的多个操作;以及多个处理器,用于执行该多个操作,该多个处理器中的每个具有热量阈值。
36.如权利要求35所述的处理系统,其中如果不超出该多个处理器中的所选处理器的热量阈值,则所选处理器可用于获得并且执行第一操作和第二操作中的至少一个。
37.如权利要求36所述的处理系统,其中如果不超出所选处理器的热量阈值,则所选处理器获得第一操作。
38.如权利要求35所述的处理系统,其中如果超出该多个处理器中的所选处理器的热量阈值,则所选处理器可用于获得并且执行第二操作。
39.如权利要求35所述的处理系统,其中处理器包括温度传感装置,用于监测或估计处理器的温度。
40.如权利要求39所述的处理系统,其中每个处理器还包括模数转换器,其可用于从温度传感装置接收温度值并且提供数字温度值。
41.如权利要求35所述的处理系统,其中处理器中的所选处理器包括多个子处理器。
42.如权利要求41所述的处理系统,其中所选处理器具有与所选处理器相关联而不是与子处理器相关联的总计热量属性。
43.如权利要求41所述的处理系统,其中每个子处理器具有与其它子处理器的组件热量属性不同的组件热量属性。
44.一种在计算环境中执行操作的方法,包括基于第一操作的热量属性而存储第一操作;基于第二操作的热量属性而存储第二操作;以及根据处理器的热量阈值而检索第一和第二操作中的至少一个。
45.如权利要求44所述的方法,其中,如果不超出处理器的热量阈值,则检索第一操作和第二操作中的至少一个。
46.如权利要求45所述的方法,其中仅仅检索第一操作。
47.如权利要求44所述的方法,其中如果超出处理器的热量阈值,则检索第二操作。
48.如权利要求44所述的方法,还包括确定第一操作的优先级;确定第二操作的优先级;以及提供多个优先级队列,优先级队列中的每个包括第一队列和第二队列;其中第一操作基于第一操作的优先级而存储在第一队列之一中,并且第二操作基于第二操作的优先级而存储在第二队列之一中。
49.如权利要求44所述的方法,还包括将组件热量属性与处理器相关联;其中检索该至少一个操作还包括,评估组件热量属性的当前状态,并且基于组件热量属性而选择该至少一个操作。
50.一种在计算环境中执行操作的方法,包括确定处理器的温度是否超出热量阈值;以及(i)如果不超出热量阈值确定是否可获得第一操作,第一操作在执行时可能保持或提高处理器的温度;以及如果可获得第一操作,则执行第一操作;(ii)如果超出热量阈值确定是否可获得第二操作,第二操作在执行时可能降低处理器的温度;以及如果可获得第二操作,则执行第二操作。
51.如权利要求50所述的方法,还包括如果不可获得第二操作,则执行空操作。
52.如权利要求50所述的方法,还包括确定优先级级别;确定是否可从该优先级级别的优先级队列获得第一操作;以及如果不可从该优先级队列获得第一操作,则确定是否可从该优先级队列获得第二操作。
53.一种用于处理与热量属性相关联的操作的处理设备,包括存储器,用于存储第一和第二操作,第一操作具有超出操作阈值的热量属性,并且第二操作具有不超出操作阈值的热量属性;以及多个处理器件,用于执行第一和第二操作,处理器件中的至少一个所选处理器件包括处理元件、处理单元或子处理单元,并且处理器件中的至少一些具有热量阈值,并且可存取存储器;其中,如果不超出所选处理器件的热量阈值,则所选处理器件可用于从存储器获得第一操作以便处理,并且如果超出所选处理器件的热量阈值,则所选处理器件可用于从存储器获得第二操作以便处理。
54.如权利要求53所述的处理设备,其中处理器件中的至少一些是处理元件。
55.如权利要求54所述的处理设备,其中处理元件中的至少一些还包括至少一个子处理单元。
56.如权利要求55所述的处理设备,其中每个子处理单元包括浮点单元、整数单元、以及与浮点单元和整数单元相关联的寄存器。
57.如权利要求56所述的处理设备,其中每个子处理单元还包括本地存储器。
58.如权利要求54所述的处理设备,其中处理元件中的至少一些还包括处理单元、以及与处理单元相关联的多个子处理单元。
59.如权利要求58所述的处理设备,其中子处理单元每个还包括本地存储器。
60.如权利要求53所述的处理设备,其中处理器件中的第一处理器件可用于根据第一处理器件的热量阈值而与处理器件中的第二处理器件交换操作。
61.如权利要求53所述的处理设备,其中所选处理器件包括子处理单元,并且存储器包括子处理单元中的本地存储器。
62.如权利要求61所述的处理设备,其中本地存储器包括用于管理第一操作的第一队列、以及用于管理第二操作的第二队列。
63.如权利要求53所述的处理器件,其中以分时配置在存储器中维护第一和第二操作。
64.一种用于处理与热量属性相关联的操作的处理设备,包括第一和第二存储器,用于存储第一和第二操作,第一操作具有超出操作阈值的热量属性,并且第二操作具有不超出操作阈值的热量属性;多个处理器件,用于执行第一和第二操作,处理器件中的至少一个所选处理器件包括处理元件、处理单元或子处理单元,并且处理器件中的至少一些具有热量阈值,并且可存取第一和第二存储器;其中,如果不超出所选处理器件的热量阈值,则所选处理器件从第一存储器或第二存储器获得第一操作,以便处理,以及如果超出所选处理器件的热量阈值,则所选处理器件从第一存储器或第二存储器获得第二操作,以便处理。
65.一种用于处理与热量属性相关联的操作的处理设备,包括第一和第二存储器,用于存储第一和第二组操作,第一存储器包括用于管理第一组操作的第一队列,第二存储器包括用于管理第二组操作的第二队列,第一组操作具有超出操作阈值的热量属性,并且第二组操作具有不超出操作阈值的热量属性;多个处理器件,用于执行第一和第二组操作,处理器件中的至少一个所选处理器件包括处理元件、处理单元或子处理单元,并且处理器件中的至少一些具有热量阈值,并且可存取第一和第二存储器;其中,如果不超出所选处理器件的热量阈值,则所选处理器件获得第一组操作中的至少一个操作,以便处理,并且如果超出所选处理器件的热量阈值,则所选处理器件获得第二组操作中的至少一个操作,以便处理。
66.一种处理任务的方法,包括基于属性而选择多个任务中的一个,以便由组件执行,其中每个任务的属性与在执行相关联的任务之后组件的温度相关;以及执行所选任务。
67.如权利要求66所述的方法,其中属性与在执行相关联的任务之后组件温度的预期升高或降低相关。
68.如权利要求67所述的方法,其中预期的升高或降低基于组件的功率密度。
69.如权利要求66所述的方法,其中任务存储在存储器内的至少一个队列中。
70.如权利要求66所述的方法,其中任务存储在存储器内的至少两个队列中,一个队列存储其属性满足条件的任务,并且另一队列存储其属性不满足条件的任务。
71.如权利要求66所述的方法,其中条件是属性超出阈值。
72.如权利要求66所述的方法,其中还基于组件的当前温度而选择任务。
73.如权利要求66所述的方法,其中在执行之前,任务存储在存储器内的不同地址中。
74.如权利要求66所述的方法,其中在执行之前,任务在不同时间存储在存储器内的相同地址中。
75.如权利要求66所述的方法,其中组件是处理器。
76.一种用于处理任务的系统,包括存储器,用于存储要被处理的任务;组件,用于处理存储在存储器中的任务;其中任务与属性相关联,每个任务的属性与在处理相关联的任务之后的组件的温度相关,并且基于属性而选择任务中的一个,以便由组件处理。
77.如权利要求76所述的系统,其中属性与在处理所选任务之后的组件温度的预期升高或降低相关。
78.如权利要求77所述的系统,其中预期的升高或降低是基于组件的功率密度。
79.如权利要求76所述的系统,其中任务被存储在存储器内的至少一个队列中。
80.如权利要求76所述的系统,其中任务被存储在存储器内的至少两个队列中,一个队列存储其属性满足条件的任务,并且另一个队列存储其属性不满足条件的任务。
81.如权利要求80所述的系统,其中条件是属性超出阈值。
82.如权利要求76所述的系统,其中存储器包括存储器的两个单独集合,存储器的一个集合存储其属性满足条件的任务,而存储器的另一个集合存储其属性不满足条件的任务。
83.如权利要求82所述的系统,其中存储器的两个单独集合被存储在相同的存储器地址中,但是在不同的时间段。
84.如权利要求82所述的系统,其中存储器的两个单独集合位于不同的存储器地址。
85.如权利要求84所述的系统,其中存储器的两个单独集合在相同的半导体器件中。
86.如权利要求82所述的系统,其中存储器的两个单独集合在不同的半导体器件中。
87.如权利要求76所述的系统,其中组件包括温度传感器,并且基于温度传感器的输出来选择任务。
88.如权利要求76所述的系统,还包括能够处理任务的第二组件,其中基于在处理任务之后每个组件的预期温度来为每个组件选择任务中的一个或多个。
89.如权利要求76所述的系统,还包括调度器,用于为组件选择任务中的一个或多个。
全文摘要
本发明提供了用于在计算环境中执行热量管理的设备和方法。在一个实施例中,热量属性与操作和/或处理组件相关联,并且调度操作以便由组件处理,使得不超出热量阈值。在另一个实施例中,为所选操作提供热和冷队列,并且处理组件可以从适当队列中选择操作,使得不超出热量阈值。
文档编号G06F1/20GK1938687SQ20058001038
公开日2007年3月28日 申请日期2005年3月28日 优先权日2004年3月29日
发明者井上敬介 申请人:索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1