优化服务器/机架系统的启动时的峰值功耗的制作方法
【技术领域】
[0001]本公开内容总体上涉及计算领域。更具体来说,实施例总体上涉及对服务器和/或机架系统的启动时的峰值功耗进行优化。
【背景技术】
[0002]当为机架系统的电源设计功率预算时,设计者考虑通常发生在服务器启动时的最大可能的功耗。最差的情况是当机架中所有安装的服务器同时上电或重新启动时。服务器的峰值功耗值只发生在启动过程期间的某些特定时刻,并且可能持续数十秒并且通常不会超过几分钟。如此,机架的电源必须能够足以服务于该峰值功率时刻,即使这种使用是不频繁的并持续相对短的时间。这提高了电源成本并使得很少使用的净空容量成为资源浪费。
【附图说明】
[0003]参照附图提供了【具体实施方式】,在附图中,附图标记最左边的(多个)数字标识了附图标记最先出现于其中的附图。在不同的附图中对相同的附图标记的使用指示相似或相同的项。
[0004]图1-2示出了根据一些实施例的显示两个服务器的功率性能的样本图。
[0005]图3A-3C示出了根据一些实施例的用于优化各种计算系统的启动时的峰值功耗的方法的流程图。
[0006]图4-6示出了计算系统的实施例的框图,所述计算系统可以用于实施本文中所讨论的一些实施例。
【具体实施方式】
[0007]在以下描述中,阐述了大量细节,以提供对各个实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践各个实施例。在其它实例中,并没有详细描述公知的方法、程序、部件、以及电路,以免使具体实施例难以理解。此外,可以使用各种方式(例如,集成半导体电路(“硬件”)、组织到一个或多个程序中的计算机可读指令(“软件”)、或者硬件和软件的一些组合)来执行实施例的各个方面。出于本公开内容的目的,对“逻辑单元”的引用应当表示硬件、软件、固件(FM)、或者它们的一些组合。
[0008]—些实施例提供了用于优化服务器和/或机架系统的启动时的峰值功耗的技术。此外,本本文中参考“机架”系统所讨论的技术也可以应用于其它类型的服务器构造。同样,如上文所讨论的,当为机架系统的电源(也被称为PSU或电源单元)设计功率预算时,设计者考虑最大可能的功耗。这相应地增加了服务器拥有者必须要支付的电费和机架PSU的成本,并且使得很少使用的净空容量成为资源浪费。为了这个目的,实施例提供了用于在不损害每个服务器的启动性能的情况下降低机架的峰值功耗的方式。这将相应地允许使用较低容量且较便宜的机架PSU。此外,可以通过降低功耗来减少PSU和/或机架空间的成本(尤其当我们考虑在配备了成千上万台机架的现代数据中心中可以节省多少成本时)。
[0009]在一些实施例中,识别并记录/存储关于何时以及哪个B1S(基本输入输出系统)模块在每个服务器上引起多少功耗的信息。基于该信息,可以确定如何在所有的目标服务器之间进行协调,以调整每个服务器上的模块执行顺序,并因此在所有目标服务器相应的启动过程期间降低所有目标服务器的总体峰值功耗。例如,可以自动收集启动数据,并且使用信息来计算并提供结果以在没有人为干预的情况下优化目标服务器上的启动顺序。这种方法将是高度多产的,并且可以在不降低启动性能的情况下应用于具有任何硬件构造的任何规模的服务器上。
[0010]此外,必须要保持启动过程期间的某种初始化排序,例如,以保持操作正确性。例如,存储器控制器可能需要在存储器允许对存储器进行访问之前进行初始化。
[0011]如本文中所描述的,B1S模块指代在启动时间期间的执行顺序能够被配置(例如,经由B1S)的部件(例如,本文中参考各种计算系统(包括图4-6中的那些)所讨论的软件部件/逻辑单元)。此外,一些实施例可以使用UEFI(统一可扩展固件接口)来将硬件模块配置为引起不同的功耗水平。另外,可以热接近或热耦合到(多个)模块的一个或多个传感器(未示出)可以用于检测本文中所讨论的功耗和时间轴数据,以在启动过程期间检测功耗数据和时间轴数据。
[0012]此外,尽管利用服务器/机架系统讨论了一些实施例,但实施例并不限于这些大体积架构,并且可以应用于例如具有多处理器或其它部件的较小的系统,所述多处理器或其它部件在启动时间期间比在运行时间期间使用多得多的功率。
[0013]为了描述各个实施例的细节,假设了安装有两个服务器(图1-2中所示的服务器1和服务器2)的简化机架系统。图1示出了根据一些实施方式的显示在没有优化的情况下的两个服务器的功率性能与机架的功率性能相比的样本图。图1示出了在两个服务器同时启动时的功率性能,并且示出了个体功耗和总体功耗。
[0014]参考图1,A、B、以及C是服务器1上的B1S模块,而X、Y、以及Z是服务器2上的B1S模块。模块六、8、以及(:执行的开始时间和结束时间分别是{[0,10],[10,16],[16,25]}。模块八、B、以及C的功耗是{5,10,18}。模块乂、¥、2的开始/结束时间分别是{[0,7],[7,18],[18,26]},并且模块乂、¥、2的功耗是{15,8,17}。
[0015]每个服务器上的每个模块的开始/结束时间和功耗都可以由启动记录来确定。机架功耗则是服务器1和服务器2的功耗之和。因此,当同时对两个服务器进行上电时,机架的峰值功耗出现在[18,25],峰值为18+17 = 35。这是在执行服务器1上的模块C和服务器2上的模块Z时。
[0016]为了这个目的,实施例对每个服务器上的模块执行顺序进行优化。例如,在图1的情况下,如果我们将服务器2的模块执行顺序从X->Y->Z调整到X->Z->Y,则图1的图表改变为图2的图表,所述图2的图表示出了根据实施例的显示优化后的两个服务器的功率性能与机架的功率性能相比的样本图。
[0017]如在图2中可以看到的,当服务器1上的模块Β和服务器2上的模块Ζ正在执行时,机架峰值功率出现在[10,15],峰值从图1中的最初的执行顺序的35下降,现在为10+17 = 27。此外,在机架级,我们具有一些新的时间段,如[0,7]、[7,10]、[10,15]等等,这些时间段在本文中可以被称为“时间量子”,以和最初的模块执行时间段区分开。
[0018]图1-2的示例仅处理了简化的情况,然而更现实的场景可能包含具有数十个服务器并且每个服务器具有不同的硬件部件(提供具有各种持续时间和功耗的不同B1S模块)的机架。为了这个目的,本文剩下部分讨论了更普遍的方法来处理更普遍的情形。
[0019]图3A-3C示出了根据一些实施例的用于优化各种计算系统(例如服务器和/或机架系统)的启动时的峰值功耗的方法的流程图。参考图4-6所讨论的一个或多个部件(例如(多个)处理器、逻辑单元、和/或存储器)可以用于执行参考图3A-3C所讨论的操作中的一个或多个操作。
[0020]参考图3A,在初始系统安装之后或者在改变/替换服务器和/或一个或多个部件时,在操作302期间,为所涉及的(多个)服务器通电并存储(多个)启动记录(例如参考图1-2所讨论的信息)。在操作304,将(多个)启动记录发送到中央位置,所述中央位置可以是任何专用服务器或节点管理器逻辑单元(或者其它逻辑单元)。在操作306,执行将参考图3B进行进一步讨论的(多个)计算。
[0021]在操作308,针对每个所涉及的(多个)服务器来确定新的模块调度顺序(例如,基于对操作306的计算/确定)。在操作310,将操作308的调度顺序中的每个调度顺序发送回相对应的服务器(并且将调度顺序信息存储在存储单元中,该存储单元是相对应的服务器本地的或者是在相对应的服务器的启动过程期间能够以其它方式被相对应的服务器访问的(例如在闪速存储器或其它类型的非易失性存储器中))。在操作312,在操作310的(多个)月艮务器中的任何服务器下一次启动或重启时,将应用操作308的新的模块调度顺序。
[0022]参考图3B,在操作320,存储了所有涉及的服务器的每个B1S模块的开始/结束时间信息和功耗信息(例如参照图1-2所讨论的信息)。如本文中所讨论的,具有#_莫块的第X个服务器的开始/结束时间被表示为:{[hlx,tlx],[h2x,t2x]".[hNx,tNx]}。
[0023]在操作322,从所有的服务器中选取两个服务器A和B,其中,服务器A具有#J模块并且服务器B具有#K模块。在操作324,对于A和B,计算可以产生A和B的较低的峰值功耗的优化的执行顺序。所产生的新的时间轴Q具有所示的时间量子。在操作326,要确定是否完成了所有涉及到的服务器。
[0024]只要在操作326并未完成所有服务器,则在操作328,从剩余的服务器(除了A和B以外的所有服务器)中选取服务器R。随后,在操作328,这个新的R服务器被当作图3B中所示的先前操作324中的服务器A。在操作330,Q被当作先前的情况(例如在图3B中所示)中的服务器B。在操作332,用于下一次迭代的新的A和B准备就绪,并且在操作324继续方法306。
[0025]一旦完成了所有服务器,如在操作326所确定的,在操作334,已经找到所有服务器的经优化的模块调度顺序,并在操作336将该模块调度顺序发送到每个服务器。
[0026]参考图3C(其示出了根据实施例的图3B的操作324的细节),在操作350处,如在图3C中所示的,在方格350中确定了时间轴。在操作352,构建了A和B的时间轴并确定了当前峰值功率,从而指示了当达到组合的峰值功率时正在执行服务器B的哪个模块(被称为模块H)。在操作354后,从服务器B的时间轴中选取模块Η的下一个推测的起始点。在操作356,将模块Η的开始时间置于当前推测的起始点处并且将所有其它服务器Β的模块放置在Η之后(在不改变任何其它条件的情况下)。在操作358处,计算并存储服务器Α和服务器Β的当前峰值功率。另外,在操作358处存储当前B的模块执行顺序。
[0027]如果对于模块H,当前的峰值功率低于任何先前确定的峰值功率(例如,如在操作360处确定的),则在操作362处,服务器B的当前执行顺序被记录为服务器B的最佳顺序;否贝Ij,在操作364处确定是否已经考虑了 Η模块的所有推测的起始点。如果对于Η模块仍有其它推测的起始点,则方法324在操作354处继续。否则,在操作366处,服务器Β的最佳模块执行顺序被用作其新的执行顺序(在该点处,服务器Α和服务器Β具有优化的模块执行顺序)。在操作368处,记录了针对服务器A和B的所生成的新的时间轴,如在图3C中的方格368中所示出的。进行操作370,完成了针对服务器A和B的优化(并且流程转到图2B的操作326)。
[0028]图4示出了根据实施例的计算系统400的框图。计算系统400可以包括一个或多个中央处理单元(CHJ)402或者处理器,该一个或多个中央处理单元或处理器经由互连网络(或总线)404来通信。处理器402可以包括通用处理器、网络处理器(其对通过计算机网络403传输的数据进行处理),或者其它类型的处理器(包括精简指令集计算机(RSIC)处理器或复杂指令集计算机(CISC))。
[0029]此外,处理器402可以具有单核设计或多核设计。具有多核设计的处理器402可以在相同的集成电路(1C)管芯上集成不同类型的处理器核。另外,具有多核设计的处理器402可以被实现为对称的或非对称的多处理器。此外,可以由系统400中的一个或多个部件来执行参照图1-图3所讨论的操作。另外,参照图1-图3C所讨论的各个设备(例如台式机、智能手机、平板电脑、UMPC(超移动个人计算机)、膝上计算机、超极本《计算设备、智能手表、智能眼镜、服务器、机架、等等)可以包括图4的部件中的一个或多个部件。
[0030]例如,存储器412可以存储参照图1-图3C所讨论的信息,并且可以在(多个)处理器402上执行参照图1-图3C所讨论的操作中的一个或多个操作。另外,系统400可以包括图像捕获设备。此外,可以通过图像捕获设备(例如数码相机(其可以嵌入在例如智能手机、平板设备、膝上计算机、单独的照相机等另一设备中)或者模拟设备,该模拟设备的经捕获的图像随后被转换成数字形式)来捕获场景、图像、或者帧(例如,在各实施例中,它们可以通过图形逻辑单元来处理)。此外,在实施例中,图像捕获设备能够捕获多个帧。此外,在一些实施例中,在计算机上设计/生成场景中的帧中的一个或多个帧。另外,可以经由显示器(例如,显示器416,例如包括平板显示设备等)来呈现场景的帧中的一个或多个帧。
[0031]芯片组406还可以与互连网络404通信。芯片组406可以包括图形和存储器控制集线器(GMCHMOSAMCH 408可以包括与存储器412通信的存储器控制器410。存储器412可以存储数据,包括可以由CPU 402或者计算系统400中所包括的任何其它设备来执行的指令序列。在一个实施例中,存储器412可以包括一个或多个易失性存储(或者存储器)设备,例如,随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、或者其它类型的存储设备。也可以使用诸如硬盘之类的非易失性存储器。诸如多个CPU和/或多个系统存储器等附加设备可以经由互连网络404来通信。
[0032]GMCH 408还可以包括与显示设备416通信的图形接口414。在一个实施例中,图形接口414可以经由加速图形端口(AGP)或外设部件互连(PCI)(或PCI快速(PCIe)接口)与显示设备416通信。在实施例中,显示器416(例如平板显示器)可以例如通过信号转换器来与图形接口414通信,该信号转换器将存储在存储设备(例如视频存储器或系统存储器)中的对图像的数字表示转化成由显示器416解释并显示的显示器信号。由显示设备产生的显示器信号可以在由显示器416解释并随后在显示器416上显示之前通过各个控制设备。
[0033]集线器接口418可以允许GMCH 408和输入/输出控制集线器(ICH)420进行通信。ICH 420可以向与计算系统400通信的(多个)1/0设备提供接口。ICH 420可以通过外设桥(或控制器)424(例如外设部件互连(PCI)桥、通用串行总线(USB)控制器、或者其它类型的外设桥或控制器)来与总线422通信。桥424可以在CPU 402与外设设备之间提供数据路径。可以使用其它类型的拓扑结构。另外,多条总线例如可以通过多个桥或控制器来与ICH 420通信。此外,在各个实施例中,与ICH 420通信的其它外设可以包括集成驱动电子设备(IDE)或(多个)小型计算机系统接口(SCSI)硬盘驱动、(多个)USB端口、键盘、鼠标、(多个)并行端口、(多个)串行端口、(多个)软盘驱动、数字输出支持(例如,数字视频接口(DVI))、或者其它设备。
[0034]总线422可以与音频设备426、(多个)磁盘驱动428、以及网络接口设备430(其与计算机网络403通信)通信。其它设备可以经由总线422来通信。另外,在某些实施例中,各部件(例如网络接口设备430)可以与GMCH 408通信。此外,可以将处理器402和GMCH 408进行组合以形成单个芯片和/或GMCH 408的部分或全部可以包括在处理器402中(例如,而不是在芯片组406中包括GMCH 408)此外,在其它实施例中,可以在GMCH 408中包括图形加速器416。
[0035]此外,计算系统400可以包括易失性存储器和/或非易失性存储器(或储存器)。例如,非易失性存储器可以包括以下存储器中的一种或多种存储器:只读存储器(R0M)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、磁盘驱动(例如,项428)、软盘、压缩盘R0M(CD-ROM)、数字多功能盘(DVD)、闪存、磁光盘、或者能够存储电子数据(例如,包括指令)的其它类型的非易失性机器可读介质。
[0036]在实施例中,例如参照图5所讨论的,系统400中的部件可以被布置成点到点(PtP)构造。例如,可以通过许多点到点接口来将处理器、存储器、和/或输入/输出设备互连。
[0037]更具体来说,图5示出了根据实施例的被布置成点到点(PtP)构造的计算系统500。具体来说,图5显示了其中通过许多点到点接口来将处理器、存储器、和输入/输出设备互连的系统。可以由系统500中的一个或多个部件来执行参照图1-图4所讨论的操作。
[0038]如图5中所示出的,系统500可以包括若干处理器,为了清楚起见,仅示出了这些处理器中的两个处理器502和504。处理器502和504均可以包括本地存储器控制器集线器(MCH)506和508,以实现与存储器510和512的通信。存储器510和/或512可以存储诸如参照图4的存储器412所讨论的那些数据之类的各种数据。
[0039]在实施例中,处理器502和504可以是参照图4所讨论的处理器402中的一种处理器。处理器502和504可以分别使用PtP接口电路516和518来经由点到点(PtP)接口 514交换数据。另外,处理器502和504均可以使用点到点接口电路526、528、530、以及532来经由个体PtP接口 522和524而与芯片组520交换数据。芯片组520还可以例如使用PtP接口电
路537来经由图形接口 536而与图形电路534交换数据。
[0040]可以在处理器502和504内提供至少一个实施例。另外,可以由系统500的一个或多个部件来执行参照图1-图4所讨论的操作。例如,存储器510/512可以存储参照图1-图3C所讨论的信息,并且可以在(多个)处理器502/504上执行参照图1-图3C所讨论的操作中的一个或多个操作。另外,参照图1-图4所讨论的各个设备(例如台式机、智能电话、平板电脑、UMPC(超移动个人计算机)、膝上计算机、超极本了气十算设备、智能手表、智能眼镜、服务器、机架、等等)可以包括图5的部件中的一个或多个部件。
[0041]然而,其它实施例可以存在于图5的系统500内的其它电路、逻辑单元、或者设备中。此外,其它实施例可以遍及图5中所示出的若干电路、逻辑单元、或者设备而分布。
[0042]芯片组520可以使用PtP接口电路541来与总线540通信。总线540可以与一个或多个设备(例如总线桥542和I/O设备543)通信。经由总线544,总线桥542可以与其它设备(例如键盘八氧标545、通信设备546(例如调制解调器、网络接口设备、或者可以与计算机网络403通信的其它通信设备)、音频I/O设备547、和/或数据存储设备548)通信。数据存储设备548可以存储可由处理器502和/或504来执行的代码549。
[0043]在一些实施例中,本文中所讨论的部件中的一个或多个部件可以被实现为片上系统(S0C)设备。图6示出了根据实施例的S0C封装体的框图。如在图6中所示出的,S0C 602包括一个或多个中央处理单元(CPU)核620、一个或多个图形处理器单元(GPU)630、输入/输出(I/O)接口 640、以及存储器控制器642 A0C封装体602的各个部件可以耦合到例如本文中参照其它附图所讨论的互连件或总线。另外,S0C封装体602可以包括更多或更少的部件,例如本文中参照其它附图所讨论的那些部件。此外,S0C封装体620中的每个部件可以包括一个或多个其它部件,例如,如参照本文中其它附图所讨论的部件。在一个实施例中,例如在一个或多个集成电路(1C)管芯上提供了S0C封装体602(及其部件),该一个或多个集成电路(1C)管芯被封装到单个半导体器件中。
[0044]如图6中所示出的,S0C封装体602经由存储器控制器642耦合到存储器660 (其可以与本文中参照其它附图所讨论的存储器类似或相同)。在实施例中,存储器660(或者其部分)可以集成在S0C封装体602上。
[0045]I/O接口 640可以例如经由互连件和/或总线(例如本文中参照其它附图所讨论的)来耦合到一个或多个I/o设备670。(多个)1/0设备670可以包括键盘、鼠标、触摸板、显示器(例如,显示器416)、图像/视频捕获设备(例如摄像头或摄录像机/视频录像机)、触摸屏、扬声器等中的一个或多个。
[0046]以下示例涉及另外的实施例。示例1包括一种装置,所述装置包括:逻辑单元,所述逻辑单元用于确定计算设备的模块执行顺序以指示在所述计算设备的启动过程期间的模块执行的顺序,其中,用于确定所述模块执行顺序的逻辑单元用于:至少部分地基于在所述计算设备的所述启动过程期间所述计算设备的每个模块的功耗数据和时间轴数据,来确定所述模块执行顺序。示例2包括根据示例1所述的装置,其中,用于确定所述计算设备的所述模块执行顺序的逻辑单元用于:基于在多个计算设备的启动过程期间所述多个计算设备中的每个计算设备中的每个模块的功耗数据和时间轴数据,来确定所述多个计算设备的多个模块执行顺序。示例3包括根据示例2所述的装置,其中,所述多个计算设备用于经由机架系统来耦合。示例4包括示例1所述的装置,其中,所述模块能够在所述启动过程期间修改其执行顺序。示例5包括根据示例1所述的装置,其中,用于确定所述计算设备的所述模块执行顺序的逻辑单元用于:基于所述计算设备中的每个模块的一个或多个推测的起始点来确定所述模块执行顺序。示例6包括根据示例1所述的装置,还包括一个或多个传感器,所述一个或多个传感器用于在所述启动过程期间检测功耗数据和时间轴数据。示例7包括根据示例1所述的装置,其中,所述模块能够经由基本输入输出系统(B1S)而在所述启动过程期间修改其执行顺序。示例8包括根据示例1所述的装置,其中,所述模块能够经由统一可扩展固件接口而在所述启动过程期间修改其执行顺序。示例9包括示例1至示例8中任何示例所述的装置,其中,所述逻辑单元、存储器、以及一个或多个处理器核位于单个集成电路器件上。
[0047]示例10包括一种方法,所述方法包括:确定计算设备的模块执行顺序,以指示在所述计算设备的启动过程期间的模块执行的顺序,其中,确定所述模块执行顺序至少部分地基于在所述计算设备的所述启动过程期间所述计算设备中的每个模块的功耗数据和时间轴数据来确定所述模块执行顺序。示例11包括根据示例10所述的方法,还包括:基于在多个计算设备的启动过程期间所述多个计算设备中的每个计算设备中的每个模块的功耗数据和时间轴数据,来确定所述多个计算设备的多个模块执行顺序。示例12包括根据示例11所述的方法,其中,所述多个计算设备经由机架系统而耦合。示例13包括根据示例10所述的方法,其中,所述模块能够在所述启动过程期间修改其执行顺序。示例14包括根据示例10所述的方法,还包括:基于所述计算设备的每个模块的一个或多个推测的起始点来确定所述模块执行顺序。示例15包括根据示例10所述的方法,还包括:一个或多个传感器在所述启动过程期间检测功耗数据和时间轴数据。示例16包括根据权利要求10所述的方法,还包括:所述模块经由基本输入输出系统(B1S)而在所述启动过程期间修改其执行顺序。示例17包括根据示例10所述的方法,还包括:所述模块经由统一可扩展固件接口而在所述启动过程期间修改其执行顺序。
[0048]示例18包括计算系统,所述计算系统包括:一个或多个中央处理单元(CPU)核;一个或多个图形处理器单元(GPU)核,其中,从电源单元对所述一个或多个CPU核或所述一个或多个GPU核供应电力;逻辑单元,所述逻辑单元用于确定计算设备的模块执行顺序以指示在所述计算设备的启动过程期间的模块执行的顺序,其中,所述电源单元用于在所述计算设备的所述启动过程期间向所述计算设备的每个模块提供电力,其中,用于确定所述模块执行顺序的逻辑单元用于:至少部分地基于在所述计算设备的所述启动过程期间所述计算设备的每个模块的功耗数据和时间轴数据,来确定所述模块执行顺序。示例19包括根据示例18所述的系统,其中,用于确定所述计算设备的所述模块执行顺序的逻辑单元用于:基于在多个计算设备的启动过程期间所述多个计算设备中的每个计算设备的每个模块的功耗数据和时间轴数据,来确定所述多个计算设备的多个模块执行顺序。示例20包括根据示例18所述的系统,其中,所述模块能够在所述启动过程期间修改其执行顺序。示例21包括根据示例18所述的系统,其中,用于确定所述计算设备的所述模块执行顺序的逻辑单元用于基于所述计算设备的每个模块的一个或多个推测的起始点来确定所述模块执行顺序。示例22包括根据示例18所述的系统,还包括一个或多个传感器,所述一个或多个传感器用于在所述启动过程期间检测功耗数据和时间轴数据。示例23包括根据示例18所述的系统,其中,所述模块能够经由基本输入输出系统(B1S)而在所述启动过程期间修改其执行顺序。
[0049]示例24包括一种装置,所述装置包括用于执行如示例10至示例17中的任何示例中所提供的方法的单元。
[0050]示例25包括机器可读储存器,所述机器可读储存器包括机器可读指令,当执行所述机器可读指令时,所述机器可读指令用于实施如示例10至示例17中的任何示例中所提供的方法或实现如示例10至示例17中的任何示例中所提供的装置。
[0051]示例26包括计算机可读介质,所述计算机可读介质包括一条或多条指令,当在处理器上执行所述一条或多条指令时,所述一条或多条指令将所述处理器配置为执行一个或多个操作来:确定计算设备的模块执行顺序,以指示在所述计算设备的启动过程期间的模块执行的顺序,其中,确定所述模块执行顺序至少部分地基于在所述计算设备的所述启动过程期间所述计算设备的每个模块的功耗数据和时间轴数据来确定所述模块执行顺序。示例27包括根据示例26所述的计算机可读介质,还包括一条或多条指令,当在所述处理器上执行所述一条或多条指令时,所述一条或多条指令将所述处理器配置为执行一个或多个操作来使得:基于在多个计算设备的启动过程期间所述多个计算设备中的每个计算设备的每个模块的功耗数据和时间轴数据,来确定所述多个计算设备的多个模块执行顺序。示例
28包括根据示例26所述的计算机可读介质,其中,所述模块能够在所述启动过程期间修改其执行顺序。示例29包括根据示例26所述的计算机可读介质,还包括一条或多条指令,当在所述处理器上执行所述一条或多条指令时,所述一条或多条指令将所述处理器配置为执行一个或多个操作来使得:基于所述计算设备的每个模块的一个或多个推测的起始点来确定所述模块执行顺序。示例30包括根据示例26所述的计算机可读介质,还包括一条或多条指令,当在所述处理器上执行所述一条或多条指令时,所述一条或多条指令将所述处理器配置为执行所述一个或多个操作来使得:一个或多个传感器在所述启动过程期间检测功耗数据和时间轴数据。示例31包括根据示例26所述的计算机可读介质,还包括一条或多条指令,当在所述处理器上执行所述一条或多条指令时,所述一条或多条指令将所述处理器配置为执行一个或多个操作来使得所述模块经由基本输入输出系统(B1S)而在所述启动过程期间修改其执行顺序。示例32包括根据示例26所述的计算机可读介质,还包括一条或多条指令,当在所述处理器上执行时,所述一条或多条指令将所述处理器配置为执行一个或多个操作来使得所述模块经由统一可扩展固件接口而在所述启动过程期间修改其执行顺序。示例33包括根据示例1至6或者8中任何示例所述的装置,其中,所述模块能够经由基本输入输出系统(B1S)而在所述启动过程期间修改其执行顺序。
[0052]在各个实施例中,本文中例如参照图1-图6所讨论的操作可以被实现为硬件(例如,逻辑电路)、软件、固件、或者它们的组合,这些硬件、软件、固件、或者它们的组合可以被提供为计算机程序产品,例如包括有形(例如非暂态)机器可读或计算机可读介质,该有形机器可读或计算机可读介质具有存储在其上的、用于对计算机进行编程以执行本文中所讨论的过程的指令(或者软件程序)。机器可读介质可以包括存储设备,例如参考图1-图6所讨论的那些存储设备(例如包括ROM、RAM、闪存、硬盘驱动、固态驱动等)。
[0053]此外,这种计算机可读介质可以作为计算机程序产品而被下载,其中,可以经由通信链路(例如,总线、调制解调器、或者网络连接)而通过载波或其它传播介质中所提供的数据信号的方式来将所述程序从远程计算机(例如,服务器)转移到请求计算机(例如,客户端)Ο
[0054]说明书中对“一个实施例”或“实施例”的引用表示结合实施例所描述的特定特征、结构、和/或特性可以包括在至少一种实施方式中。在说明书中的各个地方出现的短语“在一个实施例中”可以或可以不全都指代相同的实施例。
[0055]另外,在说明书和权利要求书中,可以使用术语“耦合”和“连接”以及它们的派生词。在一些实施例中,“连接”可以用于指示两个或更多个元件彼此直接物理接触或电气接触。“耦合”可以表示两个或更多个元件直接物理接触或电气接触。然而,“耦合”还可以表示两个或更多个元件可以不彼此直接接触,但仍可以彼此合作或相互作用。
[0056]因此,尽管已经用具体到结构特征和/或方法行为的语言来描述了实施例,但应当理解的是,所要求保护的主题可以不限于所描述的具体特征或行为。相反,公开了具体特征和行为作为实施所要求保护的主题的样本形式。
【主权项】
1.一种装置,所述装置包括: 逻辑单元,所述逻辑单元用于确定计算设备的模块执行顺序,以指示在所述计算设备的启动过程期间的模块执行的顺序, 其中,用于确定所述模块执行顺序的逻辑单元用于:至少部分地基于在所述计算设备的所述启动过程期间所述计算设备的每个模块的功耗数据和时间轴数据来确定所述模块执行顺序。2.根据权利要求1所述的装置,其中,用于确定所述计算设备的所述模块执行顺序的逻辑单元用于:基于在多个计算设备的启动过程期间所述多个计算设备中的每个计算设备的每个模块的功耗数据和时间轴数据来确定所述多个计算设备的多个模块执行顺序。3.根据权利要求2所述的装置,其中,所述多个计算设备是经由机架系统耦合的。4.根据权利要求1所述的装置,其中,所述模块能够在所述启动过程期间修改其执行顺序。5.根据权利要求1所述的装置,其中,用于确定所述计算设备的所述模块执行顺序的逻辑单元用于:基于所述计算设备的每个模块的一个或多个推测的起始点来确定所述模块执行顺序。6.根据权利要求1所述的装置,还包括一个或多个传感器,所述一个或多个传感器用于在所述启动过程期间检测所述功耗数据和时间轴数据。7.根据权利要求1所述的装置,其中,所述模块能够经由基本输入输出系统(B1S)在所述启动过程期间修改其执行顺序。8.根据权利要求1所述的装置,其中,所述模块能够经由统一可扩展固件接口在所述启动过程期间修改其执行顺序。9.根据权利要求1至8中的任一项所述的装置,其中,所述逻辑单元、存储器、以及一个或多个处理器核位于单个集成电路器件上。10.一种方法,所述方法包括: 确定计算设备的模块执行顺序,以指示在所述计算设备的启动过程期间的模块执行的顺序, 其中,确定所述模块执行顺序至少部分地基于在所述计算设备的所述启动过程期间所述计算设备的每个模块的功耗数据和时间轴数据来确定所述模块执行顺序。11.根据权利要求10所述的方法,还包括:基于在多个计算设备的启动过程期间所述多个计算设备中的每个计算设备的每个模块的功耗数据和时间轴数据来确定所述多个计算设备的多个模块执行顺序。12.根据权利要求11所述的方法,其中,所述多个计算设备是经由机架系统耦合的。13.根据权利要求10所述的方法,其中,所述模块能够在所述启动过程期间修改其执行顺序。14.根据权利要求10所述的方法,还包括:基于所述计算设备的每个模块的一个或多个推测的起始点来确定所述模块执行顺序。15.根据权利要求10所述的方法,还包括:一个或多个传感器在所述启动过程期间检测所述功耗数据和时间轴数据。16.根据权利要求10所述的方法,还包括:所述模块经由基本输入输出系统(B1S)在所述启动过程期间修改其执行顺序。17.根据权利要求10所述的方法,还包括:所述模块经由统一可扩展固件接口在所述启动过程期间修改其执行顺序。18.一种计算系统,所述系统包括: 一个或多个中央处理单元(CRJ)核; 一个或多个图形处理器单元(GPU)核,其中,所述一个或多个CPU核或所述一个或多个GHJ核由电源单元来供应电力; 逻辑单元,所述逻辑单元用于确定计算设备的模块执行顺序以指示在所述计算设备的启动过程期间的模块执行的顺序,其中,所述电源单元用于在所述计算设备的所述启动过程期间向所述计算设备的每个模块提供电力, 其中,用于确定所述模块执行顺序的逻辑单元用于:至少部分地基于在所述计算设备的所述启动过程期间所述计算设备的每个模块的功耗数据和时间轴数据来确定所述模块执行顺序。19.根据权利要求18所述的系统,其中,用于确定所述计算设备的所述模块执行顺序的逻辑单元用于:基于在多个计算设备的启动过程期间所述多个计算设备中的每个计算设备的每个模块的功耗数据和时间轴数据来确定所述多个计算设备的多个模块执行顺序。20.根据权利要求18所述的系统,其中,所述模块能够在所述启动过程期间修改其执行顺序。21.根据权利要求18所述的系统,其中,用于确定所述计算设备的所述模块执行顺序的逻辑单元用于:基于所述计算设备的每个模块的一个或多个推测的起始点来确定所述模块执行顺序。22.根据权利要求18所述的系统,还包括一个或多个传感器,所述一个或多个传感器用于在所述启动过程期间检测所述功耗数据和时间轴数据。23.根据权利要求18所述的系统,其中,所述模块能够经由基本输入输出系统(BIOS)在所述启动过程期间修改其执行顺序。24.—种装置,包括用于执行根据权利要求10至17中的任一项所述的方法的单元。25.一种机器可读储存器,所述机器可读储存器包括机器可读指令,所述机器可读指令在被执行时用于实施根据权利要求10至17中的任一项所述的方法或实现根据权利要求10至17中的任一项所述的装置。
【专利摘要】描述了与对服务器和/或机架系统的启动时的峰值功耗进行优化有关的方法和装置。在实施例中,确定了计算设备的模块执行顺序,以指示在计算设备的启动过程期间的模块执行的顺序。至少部分地基于在计算设备的启动过程期间该计算设备的每个模块的功耗数据和时间轴数据来确定模块执行顺序。还请求保护并描述了其它实施例。
【IPC分类】G06F1/32
【公开号】CN105492997
【申请号】CN201380079192
【发明人】X·周, Y·李
【申请人】英特尔公司
【公开日】2016年4月13日
【申请日】2013年9月27日
【公告号】US20150220134, WO2015042864A1