用于动态时域功率操控的系统和方法与流程

文档序号:11634933阅读:194来源:国知局
用于动态时域功率操控的系统和方法与流程

本公开总体上涉及针对服务器和其他计算设备的功率管理。



背景技术:

半导体加工以及逻辑设计方面的进步已经允许集成电路设备上可以存在的逻辑量增加。因此,计算机系统配置已经从一个系统中的多个集成电路演变成单个集成电路上的多个硬件线程、多个核、多个设备和/或完整系统。随着集成电路的密度已经增长,对计算系统(从嵌入式系统到高性能计算(highperformancecomputing,hpc)系统)的功率要求也已提高。

功率管理和热管理问题是设计基于计算机的系统时的考虑因素。在hpc系统中,例如,指定的热设计功耗(thermaldesignpower,tdp)和/或电力成本可能推动对低功率系统的需求。在包括移动系统的其他系统中,电池寿命和热限制使这些问题相关。通常使用操作系统(os)或系统软件控制硬件元件来优化系统从而以最小的功率消耗获得最大性能。

用于功率和热控制的一些模型可以在相对大的且可动态调整的时间窗口上监测硬件设备的运行平均功率,并且将所述平均功率维持在给定的阈值处或以下。这种方法可以使得设备能够在短的持续时间内消耗超出限制的功率(只要运行平均功率保持在所述限制内),但是设备的功率供应和散热方案限制了偏移的大小和长度。

附图说明

各种安排和实施例可以参照以下附图来详细描述,在附图中相同的参考号表示相同的元件。

图1示出适用于实现在此描述的不同实施例的示例计算机系统的实施例。

图2a、图2b和图2c示出根据某些实施例的示例重复的阶段序列。

图3是根据某些实施例的装置的框图。

图4是根据一个实施例的用于动态时域功率操控的方法的流程图。

图5是根据一个实施例的用于时域功率分布和空间功率操控两者的方法的流程图。

具体实施方式

在此公开的实施例总体上涉及用于管理计算机系统上的工作负荷的装置、方法以及其他技术。由计算机系统执行的软件应用可以包括朝着共同目的(例如,计算出问题的解决方案)一起工作的一组任务。所述任务可以在一个或多个节点上执行。在节点内,可能存在一个或多个任务,并且每个任务可以包括一个或多个处理线程。某些实施例在由装置或计算机系统执行的应用的阶段之间提供动态时域功率操控。对于每个阶段,功率被分布在计算机系统中的多个功率域之间。

术语功率域(powerdomain)或简称域(domain)在此用来指代能够被监测和控制功率消耗的任何部件或部件集合。某些实施例自动地将应用或系统行为的执行时间分解成呈现稳定的或可预测的操作行为的片段(segment)。稳定的或可预测的片段在此被称为应用的“阶段(phase)”。每个阶段包括例如应用的呈现不同于其他阶段的操作行为的片段。阶段可以包括例如计算界限阶段(computeboundphase)、存储器界限阶段(memoryboundphase)、通信界限阶段(communicationboundphase)、混合的计算/存储/通信阶段、空闲阶段、活动阶段和/或受任何操作行为限制的另一个阶段。应用的不同阶段在节点(例如,服务器)中可能具有不同的资源或域(例如,核、非核、存储器等)。

通过在时间维度上识别跨阶段边界的更有效率的功率使用的机会,可以优化或改善应用的性能。例如,动态时域功率操控可以识别:在潜在地减少存储器界限阶段的性能的同时、减少计算机系统在存储器界限阶段期间的功率限制并且将所述功率供给计算界限阶段(即,成比例地增加计算机系统在计算界限阶段期间的功率限制)可提高总体应用性能。

动态时域功率操控实施例确定或学习整个应用的行为,并且通过将功率从一个阶段传递到另一个阶段(即,减少或增加计算机系统的功率限制)来识别改善性能的机会。如下文详细地讨论的,例如,某些实施例在其性能与功率不能很好地成比例(例如,与提升性能所需的功率增加相比,性能提高不成比例地较低)的阶段期间故意地保留功率,并且使用额外的功率来提高其性能与功率更好地成比例的阶段的性能,这导致更高的应用性能,同时在全局上维持能量预算。

与其他功率管理方法相比,此类实施例可以提供功率管理的应用性能或其他目标功能(例如,提高系统效率度量,诸如能量延迟乘积(edp)或能量延迟平方乘积(ed2p))的明显增加。虽然其他方法在不损害功率管理的目标功能(例如性能、效率、edp、ed2p等)的范例下进行操作,但是在此公开的某些实施例可以在一些阶段中故意地“损坏”功率管理的目标功能以便在其他阶段中创建更大的改善,从而改善针对应用的整个功率管理的目标功能。

为了在此讨论的目的,可以关于高性能计算(hpc)系统来描述某些示例。然而,本公开的范围不限于hpc示例,并且各实施例是高度可伸缩的,以实现用于从较高功率计算机系统(诸如任何大云、大数据、hpc或其他系统)到低功率计算机系统(诸如膝上型计算机或ultrabooktm、平板计算机、智能手机以及其他便携设备)范围内的许多不同类型的计算机系统的解决方案。各实施例同样适用于具有在高功率系统与低功率系统(诸如台式计算机)之间的功率要求的系统。

其他解决方案基于如在整个应用运行中的平均功率的特性静态地将功率指配到域,或者监测并动态地分配功率,但这样做是基于在最近k个时间窗口中的行为历史中的应用特性。如果功率被静态地指配到域,则可能存在特定的域使用其所有功率分配的时间;在供给更多功率的情况下域可以执行得更快的时间;以及域将不会使用全部功率预算(即,功率被滞留)的时间。基于时间窗口中的行为历史来动态地指配功率的解决方案可以改善遍及(单个阶段)具有稳态行为的应用的功率滞留,但可能对包括具有不同特性的多个阶段的应用提供极少或没有改善。此类解决方案监测将在间隔期间(部分地或完全地)执行的任何阶段的行为混合在一起的(固定的或可变的)时间窗口处的行为。此类解决方案假设在过去的窗口中混合的行为将是未来行为的良好预测,但每个时间窗口可以包含具有不同操作行为和不同最佳功率分配的不同应用阶段。

因为hpc软件应用包括具有不同操作行为(并且因此在域中具有不同活动性)的多个阶段,所以到域的静态功率指配可能不是最佳的。例如,假设计算机包括两个域,一个是处理器并且一个是主存储器(例如,动态随机存取存储器(dram)、非易失性存储器或其他存储器设备)。假设计算机不能超过100w的平均功率,并且通过在应用的所有阶段上对所述应用进行表征,确定最佳静态指配针对处理器为50w的平均功率限制并且针对主存储器为50w的平均功率限制。在所述示例中,确定50w为最佳,因为在存储器界限阶段中,在不严重增加应用运行时的情况下,平均功率不能降低到50w以下。然而,在受计算限制和受通信限制的应用阶段期间,没有足够的存储器活动来利用为主存储器域保留的全部50w。因此,静态指配导致滞留功率(为域保留的超过当前域需求的功率)和次佳性能。

hpc集群或超级计算机可以运行“功率受限”,这样使得功率上限低于应用达到最高性能将需要的功率。在功率受限的情境下,尽可能有效率地使用功率来提高性能。功率上限是在限定的时间段内可由系统使用的最大平均功率。但是,可以适时地超过功率上限,只要在预先确定的时间段内的平均功率使用量不超过功率上限。

在某些实施例中,基于运行平均功率限制(runningaveragepowerlimit,rapl)来监测并控制不同的功率域。功率管理器可以为每个可用功率域指定rapl,并且通过调制低级性能参数(诸如功率控制和/或离散处理器性能状态(p状态))来强制实施rapl功率限制。在某些此类实施例中,动态空间功率操控包括针对每个应用阶段学习不同rapl功率域之间的最佳功率分配。hpc应用和其他应用可以展示其中相同阶段反复发生的重复行为。某些实施例采用所述操作行为。一旦已针对特定阶段学习或确定了最佳或改善的功率分配,当应用在将来进入那个相同阶段时,就可以再次使用(例如,立即)所述功率分配。

不同的实施例还涉及用于执行在此公开的操作的装置或系统。所述装置可以是为了所需目的而特别构造的,或者它可以包括如由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。本文呈现的过程不是固有地与特定计算机或其他装置相关。各种通用机器可以与根据本文的教导编写的程序一起使用,或者可以证明构造更专用的装置来执行所公开的方法是方便的。从给出的描述中将出现用于各种这些机器的所需结构。

现在参考附图,其中,贯穿附图相同的参考号用来表示相同的元件。在以下描述中,出于解释的目的,阐述了许多具体的细节以便提供对其彻底的理解。然而,可能显而易见的是,可以在没有这些具体细节的情况下实践实施例。在其他情况下,以框图形式示出众所周知的结构和设备,以便有助于其说明。意图是覆盖与所要求保护的主题一致的所有修改、等同物和替代物。

图1示出适用于实现在此描述的不同实施例的示例计算机系统105的实施例。在不同的实施例中,计算机系统105包括处理设备110、控制器120、存储器设备130以及输入/输出(i/o)设备140。处理设备110可以是任何类型的计算元件,诸如但不限于:服务器(例如,位于服务器的机架中的隔室中)、微处理器、处理器、中央处理单元、数字信号处理单元、双核处理器、移动设备处理器、桌面处理器、单核处理器、片上系统(soc)设备、复杂指令集计算(cisc)微处理器、精简指令集(risc)微处理器、超长指令字(vliw)微处理器、或者单芯片或集成电路上的任何其他类型的处理器或处理电路。处理设备110可分别经由互连122、132以及142连接到控制器120、存储器设备130和i/o设备140并且与它们通信。此外,控制器120、存储器设备130和i/o设备140可以与处理设备110的所有部件通信。

虽然在这方面不受限制,但是处理设备110可以包括功率管理设备115、一个或多个处理核112、图形处理单元114、i/o设备116、存储器设备118以及任何其他非核(非芯)部件(未示出)。非核部件可以包括其他存储器、高速缓存、i/o设备以及控制器。在一些实施例中,处理设备110可以包括例如多于两个处理核。一个或多个处理核112可以具有多于一个处理单元。一个或多个处理核112包括但不限于:提取指令的预取逻辑、解码指令的解码逻辑、执行指令的执行逻辑以及其他逻辑。

在某些实施例中,处理设备110包括图形处理单元114。图形处理单元114可以用作管理图形和/或视频操作和/或处理的辅助处理器。

在一些实施例中,处理设备110包括i/o设备116和存储器设备118。i/o设备116为处理设备110提供到计算机系统105内的其他设备的外部接口。此外,存储器设备118存储有处理设备110、并且具体地一个或多个处理核112的指令和/或数据。当处理设备110和一个或多个处理核112正执行指令时,存储器设备118还可以存储临时变量或其他中间信息。在另一个实施例中,存储器设备118包括但不限于:一级(l1)、二级(l2)和三级(l3)高速缓存存储器或处理设备110内的任何其他配置的高速缓存存储器。处理核112、图形处理单元114、i/o设备116以及存储器设备118可经由互连(未示出)彼此通信。

控制器120可以包括微控制器或其他类型的处理电路、存储器和接口逻辑。在一些实施例中,控制器120可以监测并控制计算机系统105的操作,包括但不限于监测并控制存储器设备130和i/o设备140的操作。控制器120还可以监测并控制处理设备110的不同方面,包括但不限于计算机系统105的不同部件与处理设备110之间的通信。在不同的实施例中,控制器可以经由互连122与处理设备110耦合。

存储器设备130存储计算机系统105的指令和/或数据。当计算机系统105正执行指令时,存储器设备130还可以存储临时变量或其他中间信息。i/o设备140是计算机系统105与外部系统或设备之间的接口。i/o设备140可以经由连接144与外部系统或设备通信。连接144可以是有线的或无线的或本领域技术人员已知的任何其他手段。在一个实施例中,i/o设备140可以经由互连142通过i/o设备116与处理设备110通信。功率管理设备115、存储器设备130和i/o设备140也可以经由互连(未示出)彼此通信。

所示出的计算机系统105中的部件并不意味着限制而是为了说明的目的呈现。在其他实施例中,计算机系统105的配置包括除了图1中所示配置之外的其他(更多或更少的)部件。相关领域的技术人员将理解,在不影响在此描述的实施例的工作的情况下可以使用计算机系统105的其他配置。

在某些实施例中,功率管理设备115被配置成用于提供动态时域功率操控,所述动态时域功率操控识别在遵守全局系统约束(诸如全局功率限制)的同时在特定应用的多个不同阶段之间重新分布功率的机会。功率域可以包括:例如,包括一个或多个处理核112的核域;以及包括图形处理单元114、i/o设备116、存储器设备118和任何其他非核部件(未示出)的非核域。此外,或在其他实施例中,一个或多个处理核112可以包括多个功率域,每个功率域与对应的处理核(不一定是均匀大小)相对应。进一步地,图1中所示的元件(即,控制器120、存储器设备130、i/o设备140、处理设备110、功率管理设备115、一个或多个处理核112、图形处理单元114、i/o设备116以及存储器设备118)中的任一个可以是单独的功率域,与单独功率域中的任何其他(多个)元件相结合,和/或被划分成多个不同的功率域。

一个或多个处理核112可以执行展示其中相同阶段反复发生的行为的应用。因为每个阶段在处理设备110上可以具有不同的资源需求并且在所述资源中产生不同的活动量,所以在处理设备110上的资源或域之间的最佳功率分配对于每个阶段可以是不同的。为了实现最佳或改善的性能(或最大化其他功率管理目标功能,诸如效率、edp、ed2p等),功率管理设备115根据某些实施例被配置成用于增加或减少分布在不同功率域之间的功率,以便在应用的不同阶段之间重新分布功率。

当应用迭代以完成其工作时,某些应用可以显示其中阶段序列多次发生的行为。例如,图2a、图2b和图2c示出根据某些实施例的示例重复的阶段序列。图2a示出阶段序列200,包括阶段“a”、随后是阶段“b”、随后是阶段“c”、随后是阶段“a”、随后是阶段“b”。所述序列在“迭代1”、随后是“迭代2”、随后是“迭代3”中重复。这种重复有助于通过某些动态时域功率操控实施例实现性能优化。例如,功率管理设备115可以被配置成用于识别:阶段a、阶段b和阶段c重复并且有可能在许多迭代中重复。作为响应,功率管理设备115在一个或多个迭代中针对阶段a、阶段b以及阶段c确定在功率域之间的最佳或改善的时域功率分配(例如,通过在一个阶段中节省或限制功率并且在另一个阶段中应用或增加功率限制)。在每个后续迭代中,功率管理设备115在阶段a、阶段b和/或阶段c之间应用最佳或改善的功率分布。

应用可以包括具有能够被观察到并且利用来更有效率地分配功率的不同操作行为和资源活动模式的阶段。例如,图2b示出阶段序列210,包括存储器阶段212、随后是计算阶段214、随后是通信阶段216、随后是存储器阶段212、随后是计算阶段214。存储阶段212在计算机存储器资源中呈现高的活动性,并且在计算和通信资源中呈现较低的活动性。类似地,计算阶段214和通信阶段216分别呈现偏压的计算和通信活动性。与图2a中所示的示例一样,序列210可以在许多迭代中重复。在其他实施例中,存储阶段212、计算阶段214、通信阶段216、混合的存储/计算/通信阶段和/或其他阶段并不总发生在相同的序列或可预测的序列中。在此类实施例中,功率管理设备115在与功率预算相对应的时间间隔内仍识别每个阶段的发生,并且在序列210内应用时域功率分布。

通过举例(而不是通过限制),功率管理设备115可以确定第一存储阶段212与由计算机系统105的处理设备110与存储器设备130之间的交互作用支配的应用行为相关联,并且确定第一计算阶段214与由一个或多个核112中的计算(例如,而不是存储器存取和/或与其他设备的通信)支配的应用行为相关联。假设系统功率上限为100w,其被评估为由计算机系统105在某一时间段t内所使用的平均功率。还假设第一存储阶段212的无约束功率使用量(即,阶段以全性能运行所需的功率)为90w,其比100w的功率上限低10w并且耗费5秒来运行。接下来,假设第一计算阶段的无约束功率使用量为120w,其比100w的功率上限高20w。在所述示例中,还假设当第一计算阶段214被约束为使用100w时,第一计算阶段214耗费10秒来运行。

在所述示例中,如果功率管理设备为每个阶段保留100w的功率,而不管它需要多少功率来达到全性能,那么在第一存储阶段212的持续时间内将会有10w的功率被浪费。进一步地,如以下方程式所示,第一存储阶段212和第一计算阶段214上的平均功率使用量将为96.67w,其小于100w的功率上限。

在上述方程式中,pwr(mem)是在第一时间段runtime(mem)期间分配给第一存储阶段212的功率,并且pwr(comp)是在第二时间段runtime(comp)期间分配给第一计算阶段214的功率。所述示例中的上述方程式示出为每个阶段保留等于平均功率上限的功率会如何导致功率的次佳使用。

然而,如果功率管理设备115为第一计算阶段214分配超过100w,则可以提高所述阶段的性能,并且可以提高整个应用的性能。例如,假设相较于在100w的功率限制下的10秒运行时,在105.6w的功率限制下,第一计算阶段214具有的运行时为9秒。如果功率管理设备115为计算界限阶段分配105.6w,则平均功率使用量将是:

如由以上示例说明,某些动态时域功率操控实施例识别跨阶段的次佳功率使用,并且通过暂时违反系统施加的功率上限来校正它,同时确保在所评估的时间段内,平均功率不会违反系统功率上限。因此,整个应用的性能得以改善(例如,以上示例中的跨两个阶段的运行时从15秒减少到14秒)。

在某些实施例中,功率管理设备115包括监测并学习阶段特性的动态时域功率调度器(未示出)。动态时域功率调度器学习针对每个应用阶段如何使性能与功率成比例。动态时域功率调度器还识别以下情况:其中可以通过限制功率并将所述功率转移到具有更好的性能-功率缩放的阶段来慢化应用的具有较差的性能-功率缩放的一个或多个阶段,以获得改善的应用性能。

继续以上示例(而不是通过限制),假设动态时域功率调度器已经得知:在80w的功率限制下,第一存储阶段212失去一些性能并且耗费6秒而不是5秒来完成;并且在117.1w的功率限制下,第一计算阶段214能够在100w下、在7秒而不是10秒内完成。那么平均功率将是:

以上示例功率分配满足了由应用使用的平均功率不超过系统功率上限(100w)的要求。但是,现在以上示例中的跨两个阶段的运行时从15秒减少到13秒。所述示例说明了动态时域功率操控如何通过学习阶段运行时如何与在所述阶段期间所分配的功率量相关来在时间域中(即,跨阶段)做出全局最佳或改善的功率决策这样做时,动态时域功率调度器能够识别反直觉的决策,诸如约束某些阶段的功率,这样使得所节省的能量可以被用来改善某一目标功能(例如,效率、性能等),同时遵守全局系统约束(诸如全局功率限制)。

虽然以说明的方式提供了针对第一存储阶段212和第一计算阶段214的以上示例,但是应注意,许多应用可以具有长的、受存储支配的阶段,其中大部分工作是将存储请求发送到存储器控制器。因为存储器存取需要时间,所以应用可能花费很大一部分时间仅仅用于等待存储器存取复原。相反,因为hpc和其他系统受功率约束,所以大量利用高能耗资源(像矢量单元)的计算界限阶段显著地受益于功率分配的均匀的边际增长。因此,在许多情况下,在具有较差的性能-功率缩放的阶段中从功率分配的边际减少而损失的性能的绝对值小于在具有更好的性能-功率缩放的阶段中从功率分配的边际增长而获得的性能的绝对值。因此,整体应用性能得以改善,功率得到更有效率地使用,并且由应用使用的平均功率不超过系统功率限制。虽然以上说明使用性能作为示例,但是所述实施例可扩展到其他目标功能(例如,效率、性能等)。

还可以注意到,减少具有较差的性能-功率缩放的阶段的功率不可能具有无尽的好处。例如,在某个点之后,降低用于存储器界限阶段的功率可能不再仅仅对性能具有边际影响;当功率被限制为超过某一拐点时,阶段的性能可能急剧下降,并且不管对接收额外功率的其他阶段的好处如何,实际上使总体应用性能受损。因此,根据某些实施例,动态时域功率调度器被配置成用于找出在阶段之间操控的功率的量,这样使得整个应用的性能最大化或得以改善。

在某些实施例中,功率管理设备115进一步被配置成用于基于序列210中的当前阶段在处理设备110和/或计算机系统105内在空间上重新分布功率。在第一存储阶段212中,例如,功率管理设备115可以确定与一个或多个处理核112相关联的功率域需要较少的功率。因此,功率管理设备115可以减少在存储阶段212期间分配到一个或多个处理核112的功率(例如,以节省能量)和/或将所述功率的至少一部分重新分布到其他功率域(例如,以增加在存储阶段212中涉及的资源的性能)。

作为另一个示例,图2c示出在空闲阶段222与活动阶段224之间交替的序列220。功率管理设备115可以被配置成用于例如控制包括(强制或非强制的)空闲期和活动期的处理占空比。在一些实施例中,在空闲期期间,处理设备110可以被置于状态期中并且不会主动地处理硬件和软件操作。处理设备110可以跨所述设备的部分或全部被置于空闲状态中,所述设备包括以下部件:诸如一个或多个处理核112、图形处理单元114、i/o设备116、存储器设备118以及任何其他非核部件。在另一个实施例中,处理设备110可以仅处理保持计算机系统105正确地运行所必需的操作。在其他实施例中,处理设备110可以基于节流阈值来处理一些但不是全部的软件和硬件操作。功率管理设备115被配置成用于针对特定应用确定空闲阶段222与活动阶段224之间的最佳或改善的功率分布,并且在执行期间相应地重新分布功率。

图3是装置300的框图,所述装置包括具有多个功率域(示出为域310a、310b、...、310n)的节点305、功率递送系统312、功率管理器314以及运行平均功率控制器316。节点305可以包括例如计算系统,诸如图1中所示的计算机系统105。在这种实施例中,每个域310a、310b、...、310n可以包括单独的处理设备110。在其他示例中,节点305可以是服务器或计算系统部件,诸如微处理器、多核微处理器的单个核、存储器控制器集线器(mch)、输入/输出控制器集线器(ioh)、存储器设备、网络接口或具有能够被监测和控制功率消耗的一个或多个功率域的任何其他类型设备。所示出的功率递送系统312可以包括能够将一定范围的电压供应到节点305的开关或线性稳压器(vr,未示出)。

所示出的包括阶段模块318和动态时域功率调度器320的功率管理器314可以是第三方元件,或者包括在功率递送系统312之中,并且可以在固定功能硬件、微代码、固件、软件或它们的任何组合中实现。在其他实施例中,功率管理器314可以包括在节点305之中或由所述节点执行。例如,节点305可以包括被配置成用于实现功率管理器305的一个或多个处理核。阶段模块318被配置成用于检测由节点305执行的应用或程序的阶段。某些实施例包括例如软件应用程序接口(api),所述api允许用户(诸如运行时开发者、库开发者或应用程序员)对软件代码进行注释和重新编译,这样使得所述代码将阶段信息传送到功率管理器314。阶段模块318使用由代码编译的阶段信息来在运行时期间判定是正在进入还是退出阶段。api可以是轻型的以便最小化引入到代码中的费用。api可以将例如一个或多个api调用插入到用于每个阶段的代码中。

在api的某些实施例中,可以使用共享库来允许操作系统(例如,linux)在应用与所述共享库之间插入仪器层(instrumentationlayer)。虽然用户可能需要写入仪器层,但是这种实施例不需要对应用或共享库进行修改或重新编译。进一步地,因为所述库具有应用所使用的标准api,所以一个仪器层可以支持实现api的任何共享库。进一步地,如果可以重新链接,则所述示例实施例也可以使用静态链接的库。

此外,或在其他实施例中,阶段模块318被配置成用于支持自动推断阶段的模式。此类实施例不为应用装备仪器。相反,装置300经由硬件性能监测能力来测量应用活动性。例如,装置300对硬件性能计数器的轨迹进行采样和分析。在运行时处,阶段模块318将时间序列信号处理分析应用于轨迹以便将应用执行轨迹分解成稳定行为片段。随后,阶段模块318应用聚类技术来将循环的片段识别为应用阶段。例如,阶段模块318可以使用具有递归最小二乘法的arimax自回归来学习并预测在下一时间步骤中性能计数器的轨迹将是何种情况。当预测错误时,阶段模块318确定应用可能正在改变阶段。阶段模块318可以应用稳定回路来过滤假的误预测。然而,如果误预测不是假的,阶段模块318识别阶段变化的时间点。

在某些实施例中,阶段模块318包括状态机以便判定应用是正在进入阶段还是正在离开阶段。针对每个阶段,阶段模块318跟踪应用活动标记。标记是特性的向量,包括例如从正受监测的性能计数器活动导出的计算强度、通信强度或存储强度。为了确定当前正在执行的阶段,阶段模块318使用活动标记并且应用空间聚类技术。阶段模块318将可能的标记空间划分成相等大小的区域,并且为每个区域给出相应的阶段数。仅通过举例而不是通过限制,可以存在一百个或更多个不同的区域/阶段。当应用进入阶段时,阶段模块318查找所述阶段的标记属于空间的哪个区域,并且用指定用于所述区域的数字或标识符来标注那个阶段。动态时域功率调度器320接收阶段数或标识符,并且为每个阶段确定最佳或改善的功率分配。

动态时域功率调度器320被配置成用于确定在哪些阶段之间操控功率。一个实施例使用以上提及的软件api。api使得用户(诸如开发者)能够注释阶段应当被优化用于节能还是用于加速。动态时域功率调度器320学习从指定用于节能的阶段取走的功率量并且学习添加到指定用于加速的阶段以实现最大或提高的性能的功率量。例如,动态时域功率调度器320可以在所有可能性上使用穷举搜索,或者经由梯度下降法或机器学习智能地修剪所述搜索。搜索可能由指配到每个阶段的功率导致(跨阶段总计的)总能量与功率上限所暗含的能量预算相匹配的约束限制。换言之,功率上限是在比阶段更长的时间间隔内的平均功率,并且功率上限与时间间隔的乘积等于能量预算。

根据某些实施例,为了找到满足约束的分配,动态时域功率调度器320(针对每个阶段)测量阶段的运行时如何与功率成比例并且将所述功率缩放信息记录到表中。在进行分配实验时,查阅具有功率缩放信息的表以便排除不一致的分配。在其他实施例中,动态时域功率调度器320测量阶段的运行时如何与功率成比例并且快速校正与总体约束不一致的分配。

在某些实施例中,动态时域功率调度器320预测阶段序列,以便获知哪些阶段将落在指定用于节能的阶段与下一个加速阶段之间。装置300可以例如随时间的推移保持阶段的轨迹。某些实施例假设在节能阶段与加速阶段之间的阶段总是相同的,这样使得动态时域功率调度器320可以仅基于当前阶段预测接下来的阶段并且预测在所述阶段中应用上次发生的何种序列。许多整体同步hpc应用例如适合所述假设。此外,或在其他实施例中,可通过经由机器学习法预测接下来的阶段来调节分支(或阶段落在节能阶段与加速阶段之间的变化性)。

其他实施例不使用来自api的信息或由软件提供的注释来指定哪些阶段应当节省功率以及哪些阶段应当加速。在某些此类实施例中,动态时域功率调度器320使用以上描述的自动阶段检测和活动标记。通过标记,动态时域功率调度器320确定例如哪些阶段是存储密集的、通信密集的以及计算密集的。动态时域功率调度器320可以例如将存储密集的阶段和通信密集的阶段指定为应当节省功率的阶段,并且将计算密集的阶段指定为应当加速的阶段。随后,如以上所讨论的,动态时域功率调度器320在通过匹配平均功率上限所暗示的能量预算要求来搜索受约束阶段之间的最佳或改善的功率分配。

此外,或在其他实施例中,动态时域功率调度器320适应于变化的系统配置、运行时事件以及其他行为变化。例如,可能发生以下情况:应用行为改变(例如,新应用开始运行),系统管理员可以改变功率管理器314的期望的目标功能(例如,从能量效率到最大性能的切换),和/或基本系统约束可以改变(例如,功率上限或可用的总功率)。动态时域功率调度器320被配置成用于通过在节点305执行应用时再次确定或重新学习阶段之间的最佳或改善的功率分配来自动地调整运行时操作行为的变化。动态时域功率调度器320可以在例如由用户输入指示的时间、周期性地每个预先确定的时间间隔、和/或在响应于检测到系统的变化而自动启动重新学习过程的模式中执行重新学习过程。

运行平均功率控制器316包括功率监测器模块322、域性能控制模块324、平均功率实施器模块325以及域功率预算管理器模块326。虽然运行平均功率控制器316被示出为单独的设备或模块,但是运行平均功率控制器316可以是功率管理器314或节点305的一部分或由它们执行。运行平均功率控制器316被配置成用于基于从功率管理器314接收的平均功率信号328(例如,指示用于节点305的总平均功率)以及时间操控接口330来监测并控制节点305的不同功率域310a、310b、...、310n中的功率。取决于实现方式,针对每个阶段,时间操控接口330可以包括用于每个域或每组域的功率限制、指示由域功率预算管理器模块326通过内部启发式法自主地确定功率分布的空值、和/或每个域的相对重要性或影响的指示(例如,由域功率预算管理器模块326基于相对重要性或影响来确定功率分布)。

功率监测器模块322被配置成用于测量不同功率域310a、310b、...、310n的功率消耗,并且将相应的功率监测数据321提供给阶段模块318和/或动态时域功率调度器320,如以上所讨论的。功率监测器模块322还将功率监测数据提供给平均功率实施器325和域功率预算管理器326。

域性能控制模块324包括通过例如调整频率、节流带宽和/或其他性能参数来调整每个域的性能和功率的控制。在某些实施例中,可以通过多种不同的方式来定义和选择性能级别。一种方法是选择性能状态或px状态,其中在p0状态下的设备使用最大性能能力并且可以消耗最大功率,在p1状态下的设备具有被限制为低于其最大能力的性能能力并且消耗少于最大功率,等等。平均功率实施器模块325配置域性能控制模块324并且随时间的推移适配所述配置以便在可编程的时间窗口上维持用于节点305的由平均功率信号328指示的总平均功率。平均功率实施器模块325包括可以利用标准控制器技术实现的控制系统。域功率预算管理器模块326包括将功率预算输出到平均功率实施器模块325的逻辑。域功率预算管理器模块326可以将若干不同的接口提供给动态时域功率调度器320,所述接口使得所述动态时域功率调度器能够直接地为每个域(例如,以与瓦特成比例的单位)指定特定的功率预算或者通过(以抽象单位)指定关于每个域的相对重要性或影响的提示并且使域功率预算管理器模块326将内部启发式法应用于所述提示并将它们映射到针对域的特定预算来间接地指定预算。

图4是根据一个实施例的用于动态时域功率操控的方法400的流程图。方法400包括确定应用的阶段序列,其中,所述多个阶段中的每一个包括应用的呈现不同于其他阶段的操作行为的片段(410)。所述序列对应于与能量预算相关联的时间间隔。方法400还包括选择性能度量、目标功能以及测量间隔和/或事件(例如,阶段变化或迭代结束)(412)。可以使用多种不同的性能定义,并且可以以多种不同的粒度来测量性能。因此,可通过诸如指令撤销速率、每秒浮点运算(flops)、进展速率或运行时的度量来定义性能。此类速率、运行时或其他性能度量可以以不同的粒度来计算。例如,所选择的性能度量可以在每个阶段内以短时间间隔测量、在诸如每个阶段结束的事件时测量、以长于所述阶段的时间间隔测量、在诸如(针对迭代应用)迭代结束的事件时测量等。方法400进一步包括监测应用以检测当前阶段(414)。

在某些实施例中,方法400进一步包括查询是否已经按照所选择的性能度量实现了最佳的时域功率分配(418)。换言之,方法400可以在阶段之间运行具有次佳的时间分配的一个或多个迭代,并且在每个阶段期间且跨多个阶段边界测量性能以便搜索改善的或最佳的分配。可以使用若干方法来确定是否已经实现最佳时域功率分配。例如,方法400可以尝试许多或所有排列(即,可能的功率分配),并且比较所得到的测量性能以确定最佳分布。作为另一个示例,方法400可以通过使用梯度搜索方法(即,估计性能度量相对于功率分配变量的梯度以及梯度方向上的梯级,以便仅尝试沿梯度路径的排列)来逼近最佳性。在又一个示例中,如果排列空间较大,代替彻底地搜索排列空间,方法400可以应用不同的采样方法并且采取所尝试的那些分配中的最佳分配。

如果测量确定尚未达到跨阶段序列的最佳时域功率分配(或可以进一步改善所述时域功率分配),则方法400包括在阶段序列之间在时间上重新分配功率(420)。然而,如果测量确定已达到跨阶段序列的最佳时域功率分配,方法400包括将对应于当前阶段的时域功率分配应用于所述多个功率域(421)。在某些实施例中,例如,图3中所示的功率管理器314或域功率预算管理器326可以被配置成用于确定分配到当前阶段的功率限制在空间上如何跨所述多个功率域分布。在其他实施例中,如以下关于图5所讨论的,可以使用空间功率操控算法来针对用于当前阶段的特定功率限制(如由时域功率操控所确定的)优化跨功率域的空间功率分配。

方法400还包括查询是否存在系统变化、应用变化、功率上限变化或所选择的性能度量变化(422)。如果不存在,则方法400继续监测应用以检测当前(或下一个)阶段并且继续优化跨阶段序列的时域功率分配(414)。另一方面,如果存在所确定的系统变化、应用变化、功率上限变化或所选择的性能度量变化,方法400通过以下方式进行重复:再次确定阶段序列(410)和/或选择性能度量、目标功能以及测量间隔/事件(412),之后监测应用以检测当前阶段(414)并且再次查询是否已经实现最佳时域功率分配(418)。

如以上所讨论的,某些实施例包括针对每个阶段的跨阶段边界的动态时域功率操控和功率域之间的动态空间功率操控的组合。在某些此类实施例中,动态空间功率操控可以嵌套在用于动态时域功率操控的方法400内。例如,图5是根据一个实施例的用于在所述多个阶段之间在时间上重新分配功率(420)(如图4所示)的方法的流程图,所述方法还包括动态空间功率操控。在查询是否已经按照所选择的性能度量实现了最佳的时域功率分配(418)(如图4所示)并且确定尚未达到跨阶段序列的最佳时域功率分配(或可以进一步改善所述时域功率分配)之后,那么图5示出在阶段序列之间在时间上重新分配功率(420)可以包括选择在阶段序列之间的新时域功率分配(510)以及基于所述新时域功率分布查询当前阶段阶段是被指定用于节能、加速还是并未两者(512)。在某些实施例中,所述查询可以包括确定当前阶段的运行时如何与功率变化成比例(或改善当前阶段的运行时如何与功率变化成比例的先前确定)。

如果当前阶段被指定用于节能,则所述方法包括:在当前阶段期间根据新时域功率分配减小针对节点中的所述多个功率域的总功率限制(514)。如果当前阶段被指定用于加速,则所述方法包括:在当前阶段期间根据新时域功率分配增加针对节点中的所述多个功率域的总功率限制(516)。如果当前阶段既未被指定用于节能也未被指定用于加速,则所述方法根据能量预算维持当前阶段的总功率限制。

图5中所示的方法进一步包括查询是否已按照所选择的性能度量实现了针对当前阶段的所述多个功率域之间的最佳空间功率分布(518)。如果测量确定尚未达到最佳空间功率分布(或可进一步改善空间功率分布),则所述方法包括:针对当前阶段,基于限制新时域功率分配(即,基于阶段之间的新时域功率分配的用于当前阶段的新功率),在所述多个功率域之间空间上重新分布功率(520)。所述方法再次查询重新分布的功率是否在所述多个功率域之间提供最佳的空间功率分布(518)。当测量确定已经达到最佳的或充分的空间功率分布,所述方法包括将与当前阶段相对应的空间功率分布应用于所述多个功率域(522)。随后,所述方法如图4中所示继续,即,通过查询是否存在系统变化、应用变化、功率上限变化或所选择的性能度量变化(422)。

示例实施例

以下是其他实施例的示例。根据在此说明的实施例和示例,各示例可以包括诸如以下主题:方法;用于执行所述方法的动作的装置;包括指令的至少一个机器可读介质,所述指令在由机器执行时致使机器执行所述方法的动作、或设备或系统的动作以便呈现增强的视频。

示例1是一种方法,包括使用功率管理器确定与包括用于在节点上执行的任务的应用相对应的阶段序列。所述序列对应于与能量预算相关联的时间间隔。所述方法进一步包括:针对每个阶段,确定功率缩放,所述功率缩放包括在运行时对分布到所述节点中的多个功率域的功率的增加或减少的所测量响应。基于针对每个阶段的所述功率缩放,所述方法还包括:确定所述序列中的所述阶段之间的时域功率分布以满足所述能量预算并且由所述节点改善或优化所述应用的运行时性能。

示例2包括如示例1所述的主题,并且进一步包括:选择性能度量、目标功能以及用于评估所述性能度量的测量间隔和测量事件中的至少一项。所述性能度量被选择用于由所述节点改善或优化所述应用的所述运行时性能。所述目标功能选自包括以下各项的组:在功率上限内最大化性能;最大化性能;在功率上限内最大化能量效率;以及最大化效率。

示例3包括如示例2所述的主题,并且进一步包括:监测所述应用以检测当前阶段;确定在所述当前阶段中所述时域功率分配不满足所述目标功能;并且响应于所述确定而在所述阶段序列之间在时间上重新分配所述功率。

示例4包括如示例3所述的主题,其中,在所述阶段序列之间在时间上重新分配所述功率包括:选择在所述阶段序列之间的新时域功率分配;基于所述时域功率分布,判定所述当前阶段被指定用于节能还是加速;如果所述当前阶段被指定用于节能,则根据所述新时域功率分配减小用于所述节点中的所述多个功率域的总功率限制;并且如果所述当前阶段被指定用于加速则根据所述新时域功率分布增加用于所述节点中的所述多个功率域的所述总功率限制。

示例5包括如示例4所述的主题,进一步包括:检测所述应用的计算机可执行代码中的注释,所述注释指示所述当前阶段被指定用于节能还是加速。

示例6包括如示例4所述的主题,进一步包括:确定所述节点中的所述多个功率域之间的空间功率分布不满足所述目标功能;并且响应于所述确定而基于所述新时域功率分配在所述当前阶段中的所述多个功率域之间在空间上重新分布所述功率。

示例7包括如示例1-6中任一项所述的主题,进一步包括:检测所述应用、所述节点、功率上限以及包括所述节点的系统中的至少一项的变化;并且响应于检测到的变化而重新配置所述序列中的所述阶段之间的所述时域功率分布。

示例8包括如示例1-7中任一项所述的主题,其中,确定所述阶段序列包括检测以下各项中的至少两项:计算界限阶段、存储器界限阶段、通信界限阶段、空闲阶段、活动阶段以及上述阶段中的任一项的组合。

示例9包括如示例1-8中任一项所述的主题,进一步包括:针对所述序列中的每个阶段,基于所述序列的第一迭代确定所述时域功率分布;并且针对所述序列中的每个阶段,在所述序列的第二迭代中应用所述时域功率分配。

示例10是一种装置,包括功率管理器,所述功率管理器包括逻辑,所述逻辑的至少一部分包括硬件,所述功率管理器包括:阶段模块,所述阶段模块用于确定应用的阶段序列,所述序列对应于与能量预算相关联的时间间隔,其中,所述多个阶段中的每个阶段包括所述应用的呈现不同于其他阶段的操作行为的片段;以及动态时域功率调度器模块,所述动态时域功率调度器模块用于确定所述序列中的所述阶段之间的时域功率分布以满足所述能量预算并且改善或优化所述应用的运行时性能。

示例11包括如示例10所述的主题,其中,所述功率管理器被配置成用于选择性能度量、目标功能以及用于评估所述性能度量的测量间隔和测量事件中的至少一项,所述目标功能被选择用于改善或优化所述应用的所述运行时性能。

示例12包括如示例11所述的主题,其中,所述阶段模块进一步被配置成用于监测所述应用以检测当前阶段,并且其中,所述动态时域功率调度器模块进一步被配置成用于:确定在所述当前阶段中所述时域功率分配不满足所述目标功能;并且响应于所述确定而在所述阶段序列之间在时间上重新分配所述功率。

示例13包括如示例12所述的主题,其中,为了在时间上重新分配所述功率,所述动态时域功率调度器模块进一步被配置成用于:选择在所述阶段序列之间的新时域功率分配;基于所述时域功率分布,判定所述当前阶段被指定用于节能还是加速;如果所述当前阶段被指定用于节能,则根据所述新时域功率分配减小用于所述节点中的所述多个功率域的总功率限制;以及如果所述当前阶段被指定用于加速则根据所述新时域功率分布增加用于所述节点中的所述多个功率域的所述总功率限制。

示例14包括如示例13所述的主题,其中,所述动态时域功率调度器模块进一步被配置成用于检测所述应用的计算机可执行代码中的注释,所述注释指示所述当前阶段被指定用于节能还是加速。

示例15包括如示例13所述的主题,其中,所述功率管理器进一步被配置成用于:确定所述节点中的所述多个功率域之间的空间功率分布不满足所述目标功能;以及响应于所述确定而基于所述新时域功率分配在所述当前阶段中的所述多个功率域之间在空间上重新分布所述功率。

示例16包括如示例10-15中任一项所述的主题,其中,所述功率管理器进一步被配置成用于:检测所述应用、所述节点、功率上限以及包括所述装置的系统中的至少一项的变化;以及响应于所述检测到的变化而重新配置所述序列中的所述阶段之间的所述时域功率分布。

示例17是一个系统,包括:多个功率域,所述多个功率域包括至少一个核域和至少一个非核域;以及至少一个计算机可读存储介质,具有存储在所述机器可读存储介质上的指令,所述指令在由一个或多个处理器执行时致使所述一个或多个处理器执行包括以下各项的操作:确定由所述系统执行的应用的阶段序列,所述序列对应于与能量预算相关联的时间间隔;针对每个阶段确定功率缩放,所述功率缩放包括在运行时对分布到所述系统中的所述多个功率域的功率的增加或减少的所测量响应;并且基于针对每个阶段的所述功率缩放来确定所述序列中的所述阶段之间的时域功率分布以满足所述能量预算且由所述系统改善或优化所述应用的运行时性能。

示例18包括如示例17所述的主题,其中,所述操作进一步包括选择性能度量、目标功能以及用于评估所述性能度量的测量间隔和测量事件中的至少一项,所述性能度量被选择用于由所述系统改善或优化所述应用的所述运行时性能。

示例19包括如示例18所述的主题,其中,所述操作进一步包括:监测所述应用以检测当前阶段;确定在所述当前阶段中所述时域功率分配不满足所述目标功能;并且响应于所述确定而在所述阶段序列之间在时间上重新分配所述功率。

示例20包括如示例19所述的主题,其中,所述操作进一步包括,为了在所述阶段序列之间在时间上重新分配所述功率:选择在所述阶段序列之间的新时域功率分配;基于所述时域功率分布,判定所述当前阶段被指定用于节能还是加速;如果所述当前阶段被指定用于节能,则根据所述新时域功率分配减小用于所述系统中的所述多个功率域的总功率限制;并且如果所述当前阶段被指定用于加速则根据所述新时域功率分布增加用于所述节点中的所述多个功率域的所述总功率限制。

示例21包括如示例20所述的主题,其中,所述操作进一步包括:检测所述应用的计算机可执行代码中的注释,所述注释指示所述当前阶段被指定用于节能还是加速。

示例22包括如示例20所述的主题,其中,所述操作进一步包括:确定所述节点中的所述多个功率域之间的空间功率分布不满足所述性能度量;以及响应于所述确定,基于所述新时域功率分配,在在所述当前阶段中的所述多个功率域之间空间上重新分布所述功率。

示例23包括如示例17-22中任一项所述的主题,其中,所述操作进一步包括:检测所述应用、所述节点、功率上限以及包括所述节点的系统中的至少一项的变化;以及响应于检测到的变化而重新配置所述序列中的所述阶段之间的所述时域功率分布。

示例24包括如示例17-23中任一项所述的主题,其中,所述操作进一步包括:为了确定所述阶段序列,检测计算界限阶段、存储器界限阶段、通信界限阶段、空闲阶段、活动阶段以及上述阶段的任何项的组合中的至少两项。

示例25包括如示例17-24中任一项所述的主题,其中,所述操作进一步包括:针对所述序列中的每个阶段,基于所述序列的第一迭代确定所述时域功率分布;并且针对所述序列中的每个阶段,在所述序列的第二迭代中应用所述时域功率分配。

示例26是一种机器可读存储设备,包括用于实施如示例1-9中任一项所述的方法或实现如示例1-9中任一项所述的装置的机器可读指令。

示例27是一种设备,包括:用于确定与包括用于在节点上执行的任务的应用相对应的阶段序列的装置,所述序列对应于与能量预算相关联的时间间隔;用于针对每个阶段确定功率缩放的装置,所述功率缩放包括在运行时对分布到所述节点中的多个功率域的功率的增加或减少的所测量响应;以及用于基于针对每个阶段的所述功率缩放来确定所述序列中的所述阶段之间的时域功率分布以满足所述能量预算且由所述节点改善或优化所述应用的运行时性能的装置。

示例28包括如示例27所述的主题,进一步包括用于选择性能度量、目标功能以及用于评估所述性能度量的测量间隔和测量事件中的至少一项的装置,所述性能度量被选择用于通过所述节点改善或优化所述应用的所述运行时性能,其中,所述目标功能选自包括以下各项的组:在功率上限内最大化性能;最大化性能;在功率上限内最大化能量效率;以及最大化效率。

示例29包括如示例28所述的主题,进一步包括:用于监测所述应用以检测当前阶段的装置;用于确定在所述当前阶段中所述时域功率分配不满足所述目标功能的装置;以及用于响应于所述确定而在所述阶段序列之间在时间上重新分配所述功率的装置。

示例30包括如示例29所述的主题,其中,用于在所述阶段序列之间在时间上重新分配所述功率的所述装置包括:用于选择在所述阶段序列之间的新时域功率分配的装置;用于基于所述时域功率分布,判定所述当前阶段被指定用于节能还是加速的装置;用于如果在所述当前阶段被指定用于节能则根据所述新时域功率分配减小用于所述节点中的所述多个功率域的总功率限制的装置;用于如果在所述当前阶段被指定用于加速则根据所述新时域功率分布增加用于所述节点中的所述多个功率域的所述总功率限制的装置。

示例31包括如示例30所述的主题,进一步包括用于检测所述应用的计算机可执行代码中的注释的装置,所述注释指示所述当前阶段被指定用于节能还是加速。

示例32包括如示例30所述的主题,进一步包括:用于确定所述节点中的所述多个功率域之间的空间功率分布不满足所述目标功能的装置;以及用于响应于所述确定而基于所述新时域功率分配在所述当前阶段中的所述多个功率域之间在空间上重新分布所述功率的装置。

示例33包括如示例27-32中任一项所述的主题,进一步包括:用于检测所述应用、所述节点、功率上限以及包括所述节点的系统中的至少一项的变化的装置;以及用于响应于检测到的变化而重新配置所述序列中的所述阶段之间的所述时域功率分布的装置。

示例34包括如示例27-33中任一项所述的主题,其中,用于确定所述阶段序列的所述装置包括用于检测以下各项中的至少两项的装置:计算界限阶段、存储器界限阶段、通信界限阶段、空闲阶段、活动阶段以及上述阶段中的任一项的组合。

示例35包括如示例27-34中任一项所述的主题,进一步包括:针对所述序列中的每个阶段用于基于所述序列的第一迭代确定所述时域功率分布的装置;以及针对所述序列中的每个阶段用于在所述序列的第二迭代中应用所述时域功率分配的装置。

以上说明提供了许多具体细节,以便透彻理解在此描述的实施例。然而,本领域的技术人员将认识到,可以省略一个或多个具体细节,或者可使用其他方法、部件或材料。在一些情况下,未示出或详细描述熟知的特征、结构或操作。

此外,在一个或多个实施例中,所描述的特征、操作或特性可以以广泛多种不同的配置来安排和设计,和/或以任何合适的方式组合。因此,系统和方法的实施例的详细说明并不旨在限制如所要求保护的本公开的范围,而仅仅是本公开的可能实施例的代表。此外,还将容易理解的是,结合所公开的实施例描述的方法的步骤或动作的顺序可以改变,如对本领域的技术人员将显而易见的。因此,附图或详细说明中的任何顺序仅用于说明目的,并且不意味着暗示所要求的顺序,除非指定来要求某一顺序。

此处使用的术语“耦合”是指讨论部件之间的任何类型的关系,直接的或间接的,并且可以应用于电的、机械的、流体的、光学的、电磁的、电动机械的或其他连接。另外,此处使用的术语“第一”,“第二”等可能只帮助讨论,除非另外指明,其不带有特殊的时间或时间顺序意义。

本说明书中对“一个实施例”、“实施例”或“示例实施例”等的任何引用意味着结合所述实施例所描述的具体特征、结构、或特性包括在本发明的至少一个实施例中。此类短语在本说明书中各地方的出现不一定全都引用相同的实施例。进一步地,当结合任何实施例来描述特定特征、结构或特性时,应当认为,使得此类特征、结构或特性结合其他实施例起作用是在本领域的技术人员知识范围内。

可以使用硬件元件、软件元件、和/或两者的组合来实现各实施例。硬件元件的示例可以包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可以包括:软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。

可以由机器可读介质上所存储的表属性指令实现至少一个实施例的一个或多个方面,所述指令代表处理器内的各种逻辑,当被机器读取时所述指令使所述机器制作用于执行在此所描述的技术的逻辑。此类表示(称为“ip核”)可存储在有形的机器可读介质上并且供应给各种客户或制造设施来装入制造机器,其实际上构成逻辑或处理器。

虽然已参照本发明的多种说明性实施例描述了各实施例,但是应当理解,本领域的技术人员可以设计出众多其他修改和实施例,所述修改和实施例将落在本公开原理的精神和范围内。更具体地,在本公开、附图和所附权利要求的范围内,在主题组合安排的零部件和/或安排中的各种变化和修改是可能的。除了零部件和/或安排中的变化和修改之外,替代使用对于本领域的技术人员也将是显而易见的。因此,本发明的范围应当仅由以下权利要求书确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1