使用基于电压的功能的性能变化的指令优化的制作方法

文档序号:11851275阅读:196来源:国知局
使用基于电压的功能的性能变化的指令优化的制作方法与工艺

除非本文中另外指示,在本部分中所描述的方法对于本申请中的权利要求不是现有技术,并且不因包括在本部分中而被承认为是现有技术。

随着低电压计算上的当代发展已经取得进步,用于操作集成电路的可允许的阈值和余量已经显著地降低。例如靠近阈值的计算可以使电压等级降低到其中集成电路设计的制造上以前可接受的过程变化现在或许导致实质上相异的功能上性能和容差的点。

典型地,在靠近阈值计算中,这样的过程变化或许导致处理器核的子单元的局部故障。在同样的操作条件下,例如,一个核的整数运算单元或许失败,同时另一个核的旁路转换缓冲器或许失败。

概述

一些示例方法包括特征化多核处理器的工作负载以识别所述多核处理器的各单个核的一个或多个子单元,以供包括在所述工作负载中的指令使用。示例方法还可以包括选择电压以在该电压下操作多核处理器的核。示例方法还可以包括基于在所选择的电压下各单个核中的经识别的一个或多个单元的性能,将工作负载中的指令中的各单个指令分配给多核处理器的核中的核。

示例方法还可以包括从多核处理器可访问的非易失性存储器读取指示在所选择的电压下各单个核中的经识别的一个或多个子单元的性能的数据。

在一些示例方法中,指示在所选择的电压下各单个核中的所识别的一个或多个子单元的性能的数据可以包括指示针对在所选择的电压下各单个核中的经识别的一个或多个子单元是否启用功能的性能变化的数据。

在一些示例方法中,指示针对在所选择的电压下各单个核中的经识别的一个或多个子单元是否启用功能的性能变化的数据可以包括指示在所选择的电压下核的特定子单元的时钟速度的数据。

在一些示例方法中,特征化多核处理器的工作负载以识别所述多核处理器的各单个核的一个或多个子单元,以供包括在所述工作负载中的指令使用包括:确定包括在工作负载中的经识别的指令的类型;并且基于指令的类型,将权重分配给指令中的各单个指令。

另一示例方法包括在第一电压下操作多核处理器的核。该方法还可以包括使用多核处理器的核来生成第一向量以指示针对在第一电压下核中的多个子单元的各单个子单元是否启用功能的性能变化。该方法还可以包括在第二电压下操作多核处理器的核。该方法还可以包括使用多核处理器的核来生成第二向量以指示针对在第二电压下针对核中的多个子单元中的各单个子单元是否启用功能的性能变化。该方法还可以包括在第二电压下操作多核处理器的核。该方法还可以包括将第一向量和第二向量存储在与多核处理器相关联的非易失性存储器中。

在一些示例方法中,将第一向量和第二向量存储在与多核处理器相关联的非易失性存储器中可以包括将第一向量和第二向量存储在数据结构中。

在一些示例方法中,将第一向量和第二向量存储在与多核处理器相关联的非易失性存储器中可以包括存储核中的多个子单元的各单个子单元的时钟速度。

在一些示例方法中,将第一和第二向量存储在与多核处理器相关联的非易失性存储器中可以包括存储表,该表包括第一和第二向量。

在一些示例方法中,使用多核处理器的核来生成第一向量以指示针对在第一电压下核中的多个子单元的各单个子单元是否启用功能的性能变化可以包括生成第一向量以指示在第一电压下和在第一温度下针对核中的多个子单元中的各单个子单元启用功能的性能变化,以及该方法还可以包括生成第三向量以指示针对在第一电压下和在第二温度下核中的多个子单元的各单个子单元是否启用功能的性能变化。

在一些示例方法中,第一电压可以对应于第一电压-频率对,并且在第一电压下操作多核处理器的核可以包括在第一电压-频率对中的频率下操作核,以及第二电压可以对应于第二电压-频率对,并且在第二电压下操作多核处理器的核可以包括在第二电压-频率对的频率下操作核。

在一些示例方法中,第一向量可以包括多个二进制值,二进制值中的每一个值指示针对多个子单元的相应子单元是否启用功能的性能变化。

在一些示例方法中,第一向量可以包括频率。

在又另一示例中,提供了多核处理器。多核处理器可以包括多个核,其中多个核中的各单个核包括被配置为基于操作电压选择性地启用功能的性能变化的子单元。多核处理器还可以包括控制逻辑,其耦接到多个核的各单个核,并且被配置为接收操作电压,以及接收来自多个核中的核的向量、该向量指示在操作电压下哪个子单元已经启用了功能的性能变化,控制逻辑还被配置为将多个指令中的各单个指令分配给多个核,其中多个指令中的各单个指令基于该向量包括针对核中的一个或多个核的关联。

在一些示例中,多核处理器还可以包括耦接到控制单元并且通过控制单元可访问的非易失性存储器,非易失性存储器被配置为存储针对核中的每一个核的向量,该向量指示在不同的操作电压下哪个子单元已经启用功能的性能变化。

在一些示例中,向量还可以指示在特定的温度下哪个子单元已经启用功能的性能变化。

在一些示例中,操作电压还可以对应于频率,在该频率下多个核被配置为响应于接收到操作电压来操作。

在一些示例中,多核处理器可以包括同构多核处理器。

在又另一示例中,提供系统。该系统可以包括多核处理器,多核处理器包括存储单元,该存储单元被配置为存储指示针对在多个电压下多核处理器的核的子单元是否启用功能的性能变化的数据。该系统还可以包括模块,其耦接到存储器并且被配置为将来自多个电压中的操作电压提供给多核处理器,并且其中模块被配置为根据存储在存储单元中的数据,将指令分配给多核处理器的核。

在一些示例中,模块还可以被配置为特征化工作负载,包括识别由包括在工作负载中的指令中的各单个指令使用的一个或多个子单元。

在一些示例中,模块还可以被配置为通过确定包括在工作负载中的指令的类型来至少部分地特征化工作负载,并且还可以被配置为基于指令的类型,将权重分配给指令。

在一些示例中,针对特定核是否启用功能的性能变化是基于温度的。

在一些示例中,模块还可以被配置为将针对特定核的关联分配给指令中的各单个指令。

在一些示例中,模块可以包括超级管理器(hypervisor)。

前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细描述,除了上文所描述的示例性的方案、实施例和特征之外,另外的方案、实施例和特征将变得显而易见。

附图说明

本公开的前述和其他特征将从结合附图的下文中的描述和随附权利要求中变得更加充分地明显。应当理解,这些附图仅仅描绘了根据本公开的几个实施例,并且因此并不被认为是限制它的范围,本公开将通过使用附图利用附加特性和细节而被描述,在附图中:

图1是根据本文所描述的至少一些实施例而布置的示例系统的框图;

图2是图示根据本文所描述的至少一些实施例而布置的、在多核处理器中分配指令的示例方法的流程图;

图3是图示根据本文所描述的至少一些实施例而布置的、确定多核处理器的指令关联的示例方法的流程图;

图4是图示指示在多个电压下核的示例功能的性能变化的示例数据结构的框图;

图5是图示根据本文所描述的至少一些实施例的、被布置用于使用基于电压的功能的性能变化的指令优化的示例计算设备的框图;以及

图6是图示根据本文所描述的至少一些实施例的、被布置来存储用于使用基于电压的功能的性能变化的指令优化的指令的示例计算机程序产品的框图。

具体实施方式

在以下详细描述中,参考附图,所述附图形成详细描述的一部分。除非上下文另外指示,在附图中,相似的符号通常标识相似的部件。在具体实施方式、附图和权利要求中描述的说明性实施例并不旨在是限制性的。在不脱离本文所出现的主题的精神或范围的前提下,可以利用其它实施例,以及可以进行其它改变。如本文一般地描述地,并且在附图中图示的,本公开的方面可以以广泛的各种不同的配置被布置、替代、组合、分割和设计,所有这些在本文中都被明确地构想到。

本公开总体上尤其关注涉及使用基于电压的功能的性能变化的指令优化(或另外指令的改进执行)的方法、系统、产品、设备和/或装置。

简单来说,一些示例方法包括特征化多核处理器的工作量以识别所述多核处理器的各单个核的一个或多个子单元,以供包括在所述工作负载中的指令使用。示例方法还可以包括选择电压以在该电压下来操作多核处理器的核。示例方法还可以包括基于在所选择的电压下各单个核的经识别的一个或多个子单元,将工作负载的指令中的各单个指令分配给多核处理器的多个核中的核。

图1是根据本文所描述的至少一些实施例而布置的示例系统100的框图。图1示出多核处理器110和模块120。多核处理器110可以包括:控制逻辑112、非易失性存储器114、和多个核115a-n(一般上是“多个核115”或“核115”)。图1中所描述的各个部件仅仅是示例,并且包括减少部件、组合部件、添加部件和替代部件的其他变化都是预期的。

控制逻辑112可以耦接到核115中的每一个核以及非易失性存储器114,并且总体上可以管理多核处理器110的操作。具体地,控制逻辑112可以将指令提供给核115中的每一个核,并且可以被配置为执行其他处理器任务,比如本文进一步所描述的那些任务。

模块120可耦接到多核处理器110,并且可以包括计算设备的一个或多个硬件和/或软件部件。模块120可以包括一个或多个存储设备,其包括易失性存储器和/或非易失性存储器,其根据所描述的实施例反过来可以被编码为具有用于操作系统的指令和用于执行指令的优化(或另外改进的执行)的一个或多个应用。在一些示例中,模块120可以包括超级管理器。在操作期间,以及如更详细地将被解释的,模块120可以将任务提供给多核处理器110以用于执行。任务可以包括与工作负载相关联的编程线程和/或一个或多个指令。举例来说,任务可以包括几千条(例如,10,000)指令。如所描述的控制逻辑112可以将任务的指令提供给核115中的一个或多个。控制逻辑112可以例如将任务的所有指令提供给单个核115,或者可以将任务的指令提供给多个核115。

核115中的每一个可以执行由控制逻辑112提供的指令,并且可以包括用于执行指令的多个子单元。每个子单元可以专用于执行一种或多种特定类型的指令,比如专用于浮点运算的指令或专用于整数运算的指令。每一个子单元例如可以包括:浮点单元(FPU)、算术逻辑单元(ALU)、其中的其他类型的单元或其中的部分、或其组合。多核处理器110的多个核115可以是同构的或异构的。

由控制逻辑112提供给核115的指令可以根据基于关联的分配而被提供。例如,每一个指令可以针对指定的核115而被分配“关联”,其指示待被指定的核115执行的指令的偏爱。模块120可以按任务等级或者按指令等级将关联分配给指令,并且可以使用基于相位特征、指令调查(instruction census)、先行(Lookahead)和/或任何其他基于关联的分配方法来实施基于关联的分配。虽然模块120可以将关联分配给许多指令,但是控制逻辑112可以例如基于可用资源、和/或指令类型来选择性地忽略关联。

每一个核115可以根据多个电压-频率对中的每一个来进行操作。例如,每一个核115可以在多个电压中的每一个下来操作,并且针对每一个电压,还可以在与电压相关联的特定频率下来操作。例如,核115a可以以与每一个电压相关联的操作频率来在多个不同的电压下操作。另外,在其下核115操作的电压可以由模块120命令。作为响应,每一个核115可以识别与命令的电压相关联的频率,并且在经识别的频率下操作。在其他示例中,电压和频率两者可以由模块120命令。通过以该方式调整电压和频率,总体上可以改进处理效率。

在某些情况下,核115的一个或多个子单元在核115的命令的频率下或许不正确地操作。核115中的特定的子单元例如可以针对合适的操作要求更低的频率。相应地,核115可以针对每一个子单元来选择性地启用功能的性能变化。针对子单元启用功能的性能变化可以包括降低子单元通过其来操作的频率(例如,时钟频率)。以这种方式降低频率可以包括降低一半频率,或其它因数的频率。附加地或备选地,功能的功能变化可以基于核115的温度和/或电压而被选择性地启用。例如,核115中的子单元可以基于温度和频率来进行不同的操作,通过温度和频率子单元进行的操作可以被调整以帮助确保每一个子单元恰当地操作。

根据本文所描述的一个或多个实施例,在操作期间,核115中的每一个可以提供数据来指示哪个子单元启用功能的性能变化。出于本文描述的目的,以这种方式由核115提供的数据可以指示核115的“性能”,并且相应地被称为“性能数据”。由核115提供的性能数据可以被提供给控制逻辑112并且还可以以向量形式被提供。举例来说,性能数据向量的每一个元素可以指示与元素相关联的子单元是否根据功能的性能变化来正在操作。在一些示例中,每一个元素可以通过指定二进制值来指示针对子单元是否启用功能的性能变化(例如,二进制1可以指示启用功能的性能变化),和/或可以指示子单元的操作频率。附加地或备选地,每一个元素可以指示主时钟的每个时钟周期中由子单元完成的指令的数量。

为了生成性能数据,多核处理器110的每一个核115可以在多个电压中的每一个电压下进行操作,并且作为响应提供对应于多个电压中的每一个电压的性能数据。针对每一个核115,在每一个电压下的性能数据可以被放置在数据结构中,比如表、链表、或数组。参考图4,针对核115图示示例数据结构400,其指示在多个电压中的每一个电压下的、核115中的每一个子单元的性能功能的变化。在至少一示例中,性能数据可以与特定的温度或温度范围相关联。例如,核115可以针对多个温度范围中的每一个而在多个电压下进行操作,使得针对在每一个温度下每一个操作电压来提供性能数据。

性能数据可以在多核处理器110的制造过程期间或在多核处理器110的初始操作期间生成。控制逻辑112可以例如接收每一个核115的性能数据并且将用于随后参考的性能数据存储在非易失性存储器114、模块120的易失性存储器、和/或模块120的非易失性存储器中。附加地或备选地,在多核处理器110的操作期间,性能数据可在多核处理器的操作期间由核115中的每一个来实时提供。以这种方式,在操作期间随着电压和/或温度波动,功能的性能变化可以被追踪。

在操作期间,性能数据可以被模块120使用以基于性能数据将关联分配给一个或多个指令。模块120可以例如使用性能数据以确定核115中哪个单个核或多个核最适合于执行特定的指令并且相应地将关联分配给该指令。以这种方式,使用核115执行指令可以被优化或另外改进。举例来说,利用半时钟的浮点ALU操作的第一核115a或许更低效率执行浮点运算指令,并且模块120或许更偏向利用完全时钟的浮点ALU的第二核115b来执行浮点运算指令。模块120可以将关联分配给用于第二核115b的浮点运算指令。在一些示例中,模块120可以实时接收性能数据并且使用实时接收到的性能数据将关联分配给指令。在其他示例中,模块120可以将性能数据存储在例如模块120的非易失性存储器上以用于随后的参考。

图2是图示根据本文所描述的至少一些实施例而布置的、在多核处理器中分配指令的示例方法200的流程图。示例方法可以包括由块205、210、和/或215中的一个或多个所示的一个或多个操作、功能或动作。响应于执行(比如通过本文所描述的一个或多个处理器)存储在非暂态计算机可读介质、比如计算设备或一些其他的控制器或相似配置的设备的计算机可读介质中的计算机可读指令,可以执行块205-215中所描述的操作。

示例过程可以从块205开始,其可以包括“特征化多核处理器的工作负载以识别所述多核处理器的各单个核的一个或多个子单元,以供包括在所述工作负载中的指令使用”。块205之后可以是块210,其可以包括:“选择电压以在该电压下操作多核处理器的核”。块210之后可以是块215,其可以包括“基于在所选择的电压下各单个核中经识别的一个或多个子单元,将工作负载中的指令中的各单个指令分配给多核处理器的多个核中的核”。

包括在所描述的示例方法中的块是出于说明性目的。在一些实施例中,块可以以不同的顺序执行。在一些其他的实施例中,各个块可以被消除。在另外其他实施例中,各个块可以被分成附加块、利用其他块补充、或组合在一起称为更少的块。这些特定的块的其他变化可以是预期的,包括块的顺序的改变、被分离或被组合成其他块的块的内容的改变等。在一些示例中,在块205之前,可以执行块210。

块205可以包括“特征化多核处理器的工作负载以识别所述多核处理器的各单个核的一个或多个子单元,以供包括在所述工作负载中的指令使用”。模块120可以针对多核处理器110识别例如提供给或存储在模块120中的工作负载。模块120可以特征化工作负载以识别工作负载中的指令和每一个经识别的指令的类型和/或被每一个经识别的指令使用的子单元。例如,指令可以被识别为针对浮点运算(例如,加、减、乘、除)或针对整数运算。在某些情况下,特征化工作负载还可以包括将权重分配给每一个指令类型。权重可以例如指示相对于工作负载内的其他指令类型的每一个指令类型的频率。每一个指令类型的权重然后可以被加权以对照每一个核115的性能数据来确定哪个核115最适合于执行每一个指令和/或包括指令的一个或多个任务。

块210可以包括“选择电压以在该电压下操作多核处理器的核”。模块120可以针对多处理器110的核115选择操作的电压。如所描述,该电压可以被命令给核115中的每一个,使得核115中的每一个可以根据电压-频率对来操作。在至少一个实施例中,电压可以被选择以优化(或另外改进)工作负载中经识别的指令的执行。例如,如果工作负载包括指向整数运算的相对更多的指令,那么模块120可以将电压命令给多核处理器110的核115,以得到执行针对整数运算的指令的最大总效率。

块215可以包括“基于在所选择的电压下各单个核中的经识别的一个或多个子单元的性能,将工作负载中的指令的各单个指令分配给多个处理器的多个核中的核”。例如,根据在块205处所特征化的工作负载和在块210处所选择的电压,模块120可以针对特定的核115将关联分配给指令中的每一个指令。指令随后可以被提供给控制逻辑112以用于在核115上的执行。如所描述的,控制逻辑112可以选择性地忽略被分配给指令的关联。

图3是图示根据本文所描述的至少一些实施例而布置的、确定多核处理器的指令关联的示例方法300的流程图。示例方法可以包括如由块305、310、315、320、和/或325中的一个或多个块所示的一个或多个操作、功能或动作。响应于执行(比如通过本文所描述的一个或多个处理器)存储在计算机可读介质、比如计算设备或一些其他的控制器或相似配置的设备的非暂态计算机可读介质中的计算机可执行指令,可以执行块305-325中所描述的操作。

示例过程可以从块305开始,其可以包括“在第一电压下操作多核处理器的核”。块305之后可以是块310,其可以包括“使用多核处理器的核来生成第一向量以指示针对在第一电压下核的多个子单元的各单个子单元是否启用功能的性能变化”。块310之后可以是块315,其可以包括“在第二电压下操作多核处理器中的核”。块315之后可以是块320,其可以包括“使用多核处理器中的核来生成第二向量以指示针对在第二电压下核的多个子单元的各单个子单元是否启用功能的性能变化”。块320之后可以是块325,其可以包括“将第一和第二向量存储在与多核处理器相关联的非易失性存储器中”。

包括在所描述的示例方法中的块是出于说明性的目的。在一些实施例中,块可以以不同的顺序执行。在一些其他的实施例中,各个块可以被消除。在另外其他实施例中,各个块可以被分成附加块、利用其他块补充、或组合在一起称为更少的块。这些特定的块的其他变化可以是预期的,包括块的顺序的改变、被分离或被组合成其他块的块的内容的改变等。举例来说,在块320处生成第一向量之前,第一向量可以被存储在非易失性存储器中。

块305可以包括“在第一电压下操作多核处理器的核”。可以在第一电压下操作多核处理器110的核115、比如核115a。如所描述的,电压可以由模块120或控制逻辑112来命令。响应于第一电压,核115可以根据对应的电压-频率对进行操作。因为核115中的子单元或许不以电压-频率对来进行适当地操作,所以核115可以针对子单元的一个或多个子单元来选择性地启用功能的功能变化。

块310可以包括“使用多核处理器的核来生成第一向量以指示在第一电压下核的多个子单元的各单个子单元是否启用功能的性能变化”。虽然在第一电压下进行操作,但是核115可以提供性能数据来指示针对哪个子单元启用功能的性能变化。性能数据可以以向量形式被提供,和/或可以指示二进制值,其指示针对每一个子单元是否启用功能的性能变化。性能数据可以从每一个核115被提供给控制逻辑112。

块315可以包括“在第二电压下来操作多核处理器中的核”。可以在第二电压下来操作多核处理器110中的核115。如所描述的,电压可以由模块120或控制逻辑112来命令。响应于第二电压,核115可以根据对应的电压-频率对来操作。因为核115的子单元在电压-频率对下或许不适当地操作,所以核115可以针对子单元的一个或多个来选择性地启用功能的性能变化。

块320可以包括“使用多核处理器的核来生成第二向量以指示针对在第一电压下核的多个子单元的各单个子单元是否启用功能的性能变化”。虽然在第二电压下进行操作,但是核115可以提供性能数据来指示针对哪个子单元启用功能的性能变化。性能数据可以以向量形式被提供,和/或还可以指示二进制值来指示针对每一个子单元是否启用功能的性能变化。性能数据可以从每一个核115被提供给控制逻辑112。

块325可以包括“将第一和第二向量存储在与多核处理器相关联的非易失性存储器中”。在控制逻辑112接收来自在每一个电压下的核115的第一和第二向量两者之后,控制逻辑112可以将向量存储在非易失性存储器、比如多核处理器110的非易失性存储器114或模块120的非易失性存储器中。如所描述的,向量可以被存储在数据结构、比如表中。

尽管已经描述了关于特定的核115的方法300,但是应当理解,方法300可以在多个核上同时地被执行,使得针对操作的每一个电压通过每一个核115提供向量。此外,核115可以在许多电压下被操作,和/或可以以不同的温度在同样的电压下被操作许多次。

图4是图示指示在多个电压下核的功能的性能变化的示例数据结构400的框图;如所描述的,数据结构400可以指示在每一个电压下哪个子单元410启用功能的性能变化。

子单元410可以包括浮点除法子单元(FP DIV)、浮点乘法子单元(FPMUL)、浮点ROM子单元(FP ROM)、整数乘法子单元(INT MUL)、整数除法子单元(INT DIV)、整数洗牌(shuffle)子单元(INT SHUF)、带符号的整数移位子单元(SISHIFT)、整数耗时子单元(INT SLOW)、旁路转换缓冲器(translation lookaside buffer)子单元(TLB)、1级数据缓存子单元(L1D)、1级指令缓存子单元(L1I)、读取-存储(load-store)队列子单元(LSQ)、重新排序缓冲子单元(ROM)、和按次序子单元(InORD)。这些和/或其他子单元的任何组合可以被使用在核115中的每一个核中。

如描述的,功能的性能变化可以包括调整一个或多个子单元410操作的频率。参考图4,二进制“1”可以指示针对子单元410启用功能的性能变化,以及二进制“0”可以指示针对子单元410没有启用功能的性能变化。将0.8V的电压作为示例,核115的功能的性能变化可以例如被启用以用于INT MUL子单元和INT DIV子单元。

图5是图示根据本文所描述的至少一些实施例的、被布置用于使用基于电压的功能的性能变化的指令优化(或另外改进的执行指令)的示例计算设备的框图。在非常基础配置501中,计算设备500典型地包括一个或多个处理器510和系统存储器520。存储器总线530可以被用于处理器510和系统存储器520之间的通信。一个示例中的处理器510可以对应于图1中的多核处理器110。

根据期望的配置,处理器510可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器510可以包括多等级缓存(例如一级缓存511和二级缓存512)、处理器核513、寄存器514、控制逻辑516、和非易失性存储器517。一个实施例中的处理器核513可以对应于图1中的核115。示例处理器核513可以包括运算逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任意组合。一个实施例中的控制逻辑516可以对应于图1中的控制逻辑112。一个实施例中的非易失性存储器517可以对应于图1中的非易失性存储器114。示例存储器控制器515还可以与处理器510一起使用,或在一些实施方式中,存储控制器515可以是处理器510的内部部分。

根据期望的配置,系统存储器520可以是任何类型,包括但不限于易失性存储器(例如RAM)、非易失性存储器(例如ROM、闪存等)或其任意组合。系统存储器520可以包括操作系统521、一个或多个应用522以及程序数据524。应用522可以包括指令优化逻辑523,其可以被配置为基于如本文所描述的执行数据来优化指令。相应地,一个实施例中的系统存储器520可以对应于模块120。程序数据524可以包括执行数据、和/或可用于实现指令优化逻辑523的其他信息。在一些实施例中,应用522可以被布置以利用程序数据524在操作系统521上进行操作,使得可以执行本文所描述的任何过程。所描述的基本配置在图5中通过基础配置501的虚线内的那些部件图示出。

计算设备500可以具有附加特征或功能、和附加接口,以促进基本配置501和任何需要的设备以及接口之间的通信。例如,总线/接口控制器540可以被用于促进经由存储接口总线541在基本配置501和一个或多个数据存储设备550之间的通信。数据存储设备550可以是可移动存储设备551、非可移动存储设备552或其组合。可移动存储和非可移动存储设备的示例包括磁盘设备(例如软盘驱动器和硬盘驱动器(HDD))、光盘驱动器(例如压缩盘(CD)驱动器或数字多功能盘(DVD)驱动器)、固态驱动器(SSD)以及磁带驱动器等等。示例计算机存储介质可以包括以用于存储信息(例如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性、可移除和非可移除的介质。

系统存储器520、可移动存储设备551和非可移除存储设备552是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他的光存储装置、磁带盘、录音带、磁盘存储或其他磁盘存储设备、或可被用于存储期望信息并且可被计算设备500访问的任何其他介质。任何这样的计算机存储介质可以是计算设备500的部分。

计算设备500也可以包括接口总线542,其用于促进经由总线/接口控制器540的从各种接口设备(例如输出设备、外围接口和通信设备)到基本配置501的通信。示例输出设备560包括图形处理单元561和音频处理单元562,其可以被配置为经由一个或多个A/V端口563与各种外部设备(例如显示器或扬声器)通信。示例外围接口570包括串行接口控制器571或并行接口控制器572,其可以被配置为经由一个或多个I/O端口573与外部设备进行通信,比如输入设备(例如键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如打印机、扫描仪等)。示例通信设备580包括网络控制器581,其可以布置为促进经由一个或多个通信端口582通过网络通信链路与一个或多个其他计算设备590进行通信。

网络通信链路可以是通信介质的一个示例。通信介质可以典型地通过计算机可读指令、数据结构、程序模块或调制数据信号(例如载波或其他传输机制)中的其他数据进行实施,并且可以包括任何信息递送介质。“调制数据信号”可以是这样的信号,其具有以信号中的编码信息那样的方式设置或改变的其特征中的一个或多个。举例而言但不做限制,通信介质可以包括有线介质(例如有线网或直接有线连接)、以及无线介质(例如声波、无线电频率(RF)、微波、红外(IR)和其他无线介质)。如本文所使用的术语计算机可读介质包括存储介质和通信介质两者。

计算设备500可以被实施为小型体积便携式(或移动)电子设备(例如手机、个人数据助理(PDA)、个人媒体播放器设备、无线web查看设备、个人耳机设备、应用特定设备或包括上面任何功能的混合设备)的一部分。计算设备500也可被实施为包括膝上型计算机和非膝上型计算机配置的个人计算机。

图6是图示根据本文所描述的至少一些实施例的、被布置以针对使用基于电压的功能的性能变化的指令优化来存储指令的示例计算机程序产品的框图。可以被实施为或包括计算机可读介质606、计算机可记录介质608、计算机通信介质610或其组合的信号承载介质602存储程序指令604,其可以将处理单元配置为执行先前所描述的过程中的所有或一些。这些指令可以包括例如一个或多个可执行指令以特征化多核处理器的工作负载来识别所述多核处理器的各单个核的一个或多个子单元,以供包括在所述工作负载中的指令使用;选择电压以在其下操作多核处理器的核;以及基于在所选择的电压下各单个核的经识别的一个或多个子单元的性能,将工作负载中的指令的各单个指令分配给多核处理器中的核的核。

本公开并不是以本申请中所描述的特定的示例来限制的,这些特定的示例意图作为各个方面的说明。在不脱离其精神和范围的情况下,可以进行许多修改和示例。除了本文所枚举的那些之外,在本公开范围内的功能上等同的方法和设备根据前面的说明将是可能的。这样的改进和示例意图落在随附权利要求书的范围内。连同这些权利要求书所给予权利的等同方案的整个范围内,本公开仅受随附权利要求书的措辞限制。本公开不限于特定的方法、试剂、化合物组成或生物系统,这些当然可以变化。本文所使用的术语仅是为了描述特定示例的目的,而不意在限制。

关于本文中实质上任何复数和/或单数术语的使用,本领域技术人员能够根据上下文和/或应用适当地从复数变换成单数和/或从单数变换成复数。为了清晰的目的,本文中可以明确地阐明了各种单数/复数置换。

本领域技术人员将理解,一般地,本文所使用的术语,尤其是随附权利要求(例如,随附权利要求的主体)中所使用的术语,通常意在为“开放式”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包含”应解释为“包含但不限于”,等等)。

本领域技术人员还将理解,如果意图表达引导权利要求记述项的具体数量,则这样的意图应该明确地记载于权利要求中,如果没有这样的记载,则这样的意图不存在。例如,为辅助理解,下面的随附权利要求可能包含了引导性短语“至少一个”和“一个或多个”的使用以引导权利要求记述项。然而,这种短语的使用不应解释为暗指不定冠词“一”或“一个”引导权利要求记述项将包含该所引导的权利要求记述项的任何特定权利要求局限于仅包含一个该记述项的示例,即使当同一权利要求包括了引导性短语“一个或多个”或“至少一个”以及诸如不定冠词“一”或“一个”的(例如,“一”和/或“一个”应当解释为表示“至少一个”或“一个或多个”);这同样适用于对于用于引导权利要求记述项的定冠词的使用。另外,即使明确地记述了被引导的权利要求记述项的具体数量,本领域技术人员将理解到这些记述项应当解释为至少表示所记述的数量(例如,没有其它修饰语的裸记述“两个记述项”表示至少两个记述项或两个以上的记述项)。

此外,在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。本领域技术人员将进一步理解,表示两个或多个备选术语的几乎任何转折词和/或短语,无论是在说明书、权利要求或附图中,都应理解为设想包括一项、任一项或两项的可能性。例如,术语“A或B”将理解为包括“A”或“B”或“A和B”的可能性。

另外,对于用马库什组(Markush groups)的措辞描述的本公开的特征或方面,本领域的技术人员将理解本公开也因此用马库什组的成员中的任何单个成员或子组的措辞来描述。

本领域技术人员将理解的是,出于任何以及全部的目的,诸如在提供所撰写的说明书方面,本文所公开的全部范围也涵盖了任何和全部的可能的子范围及其子范围的组合。能够容易地认识到,任何所列范围都充分地描述了同一范围并且使同一范围分解成至少均等的两半、三份、四份、五份、十份等等。作为非限制性示例,本文所论述的每个范围能够容易地分解成下三分之一、中三分之一和上三分之一,等等。本领域技术人员还将理解的是,诸如“多达”、“至少”、“多于”、“少于”等所有的言词包括所记述的数量并且是指如上文所论述的随后能够分解成子范围的范围。最后,本领域技术人员将理解的是,范围包括每个独立的成员。因此,例如,具有1-3个单元的组是指具有1个、2个或3个单元的组。类似地,具有1-5个单元的组是指具有1个、2个、3个、4个、或5个单元的组,等等。

尽管前面的详细描述已经通过使用框图、流程图和/或示例阐述了设备和/或过程的各个实施例,以及在这些框图、流程图和/或示例包含一项或多项功能和/或操作的程度上,可以通过各种各样的硬件、软件、固件或几乎其任意组合来单独地和/或共同地实现这些框图、流程图或示例内的每项功能和/或操作。在一个实施例中,本文所描述的主题的多个部分可经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它集成形式来实现。然而,在本文公开的示例的一些方面可以整体地或部分地在集成电路中等效地实现为:在一个或多个计算机上运行的一个或多个计算机程序(例如,实现为在一个或多个计算机系统上运行的一个或多个程序)、在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序)、固件、或几乎任何组合,并且将认识到,根据本公开内容,设计电路和/或编写用于软件和/或固件的代码将是可能的。例如,如果用户确定速度和精确度是最重要的,那么用户可以选择主要为硬件和/或固件的手段;如果灵活性是最重要的,用户可以选择主要是软件的实施方式;或者,同样也是备选地,用户可以选择硬件、软件和/或固件的一些组合。

另外,本文所描述的主题的机制能够作为程序产品以各种形式被分发,并且本文所描述的主题的示例性实施例都适用,而不论实际上用于实施分发的信号承载介质的特定类型如何。信号承载介质的示例包括但不限于以下:可记录型介质,诸如软盘、硬盘驱动器、压缩盘(CD)、数字视频光盘(DVD)、数字带、计算机存储器等;以及传输型介质,诸如数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。

本领域技术人员将理解的是,在本领域内通常以本文阐述的方式来描述设备和/或过程,此后利用工程实践将这些所描述的设备和/或过程集成到数据处理系统中。也即,本文所描述的设备和/或过程的至少一部分可以通过合理数量的实验集成到数据处理系统中。典型的数据处理系统通常包括如下中的一种或多种:系统单元壳体,视频显示设备,比如易失性和非易失性存储器的存储器,比如微处理器和数字信号处理器的处理器,比如操作系统的计算实体、驱动器、图形用户接口和应用程序的计算实体,比如触摸板或触摸屏的一个或多个交互设备,和/或包括反馈回路和控制电机(例如用于感测位置和/或速度的反馈;用于移动和/或调整部件和/或数量的控制电机)的控制系统。典型的数据处理系统可利用任何适合的商业可用部件来实现,比如在数据计算/通信和/或网络计算/通信系统中典型地提供的那些部件。

本文所描述的主题有时示出包含在不同的其它部件中的或与不同的其它部件连接的不同部件。这些所描绘的体系结构仅是示例性的,并且实际上可以实施实现相同功能的许多其它体系结构。在概念意义上,实现相同功能的任何部件布置是有效地“关联的”,以实现期望的功能。因此,在本文被组合以实现特定功能的任何两个部件可视为彼此“关联”以使得实现期望功能,不论体系结构或中间部件如何。同样,任意两个如此关联的部件还可视为彼此“可操作地连接”、或“可操作地耦合”以实现期望的功能,并且能够如此关联的任意两个部件还可视为彼此“能够可操作地耦合”以实现期望功能。能够可操作耦合的具体示例包括但不限于能够物理上配对和/或物理交互的部件和/或能够无线交互和/或无线交互的部件和/或逻辑上交互和/或能够逻辑上交互的部件。

尽管本文已经公开了各个方面和示例,但是其他方面和示例是可能的。本文所公开的各个方案和示例是出于说明性的目的,并不意图是限制性的,其中真实的范围和精神通过下面的权利要求来表示。

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