包括可配置最大处理器电流的针对能效和节能的方法、装置和系统的制作方法

文档序号:6497671阅读:74来源:国知局
包括可配置最大处理器电流的针对能效和节能的方法、装置和系统的制作方法
【专利摘要】本文中描述了用于为处理器件提供包括相应超频的多个最大电流配置选项的装置、方法和系统。通过初始代码来确定处理器的可用选项。并且基于平台电力能力,选择多个电流配置选项中的最优电流配置选项。此外,在运行时期间,基于电流配置考虑动态地选择另一电流配置,以为每一部件和计算平台提供高灵活性以及最佳可能性能。
【专利说明】包括可配置最大处理器电流的针对能效和节能的方法、装置和系统

【技术领域】
[0001]本公开涉及集成电路中的能效和节能以及其上执行的代码,并且尤其但非排他地涉及配置处理器的最大电流。

【背景技术】
[0002]半导体处理和逻辑设计方面的进步已经允许集成电路器件上可存在的逻辑量的增加。结果,计算机系统配置已经从系统中的单个或多个集成电路发展到个体集成电路上的多个硬件线程、多个核、多个器件和/或完整系统。此外,随着集成电路密度的增长,用于计算系统(从嵌入式系统到服务器)的功率需求也已逐步上升。此外,软件低效及其对硬件的需求也已导致计算设备能耗的增加。事实上,一些研究表明计算机消耗了美国全部电力供应量中的相当大一部分。
[0003]因此,对于与集成电路相关联的能效和节能有着重大需求。并且,随着服务器、台式计算机、笔记本、超级本、平板计算机、移动电话、处理器、嵌入式系统等变得甚至更盛行(从包括在典型计算机、汽车和电视机中到包括在生物技术中),计算设备销售的影响完全从能耗领域扩展到对经济系统产生实质的、直接的作用。
[0004]当功耗变得不仅仅是因素时,朝着总是增加性能的趋势现在正与功耗考虑平衡。因此,许多硅设备(诸如处理器)以标称操作电流(即,某支持频率)运行,并且为该设备提供“超频”(即,临时最大)频率。结果,在一些时间期间,处理器可临时地以较高、最大的超频运行。不幸地,超频一般是基于处理器的电力能力和平台的电力能力/配置两者的假设为处理器部分烧录的(例如,为处理器部分永久选择的)。然而,当处理器设计者正在烧录频率(该频率可被置于任何数目的经不同设计的平台上)时,该处理器设计者通常会选择安全超频(即,具有用于确保频率在所有平台上操作的保护带的频率)。因此,对于该最严格的平台而言超频可能是精确的,但对于更多稳健设计的平台而言显著的潜在性能通常可行。

【专利附图】

【附图说明】
[0005]本发明通过示例进行说明,而且不旨在受限于附图的各图。
[0006]图1解说了包括具有多个处理元件(2个核和4个线程槽)的处理器的系统的逻辑表示的实施例。
[0007]图2解说了计算机系统配置的逻辑表示的实施例。
[0008]图3解说了计算机系统配置的逻辑表示的另一实施例。
[0009]图4解说了计算机系统配置的逻辑表示的另一实施例。
[0010]图5解说了用于为各最大频率提供多个最大电流配置选项的设备的逻辑表示的实施例。
[0011]图6解说了用于为各最大频率提供多个最大电流配置选项的处理器的逻辑表示的另一实施例。
[0012]图7解说了用于向计算设备提供多个最大电流配置选项的流程图的实施例。

【具体实施方式】
[0013]在以下描述中,阐述了大量具体细节(诸如特定类型的特定处理器和系统配置、特定硬件结构、特定体系结构和微体系结构细节、特定寄存器配置、用于确定能量消耗的特定算法、特定类型的性能度量、特定最大电流、特定频率、特定设备类型、特定表格格式和位置、特定功率事件等),以便对本发明的透彻理解。然而对本领域普通技术人员显而易见的是,不一定要采用这些特定细节来实施本发明。在其他示例中,公知的组件或方法(诸如,特定和替换处理器体系结构、用于所描述的算法的特定逻辑电路/代码、特定互连操作、特定最大电流确定以及处理器的其他特定操作细节)未被详细描述,以便避免不必要地使本发明模糊。
[0014]虽然以下实施例是参考特定集成电路中的(诸如,计算平台或微处理器中的)节能和能效来描述的,但其他实施例可适用于其他类型的集成电路和逻辑器件。本文中描述的类似技术和实施例示教可适用于也可从较佳的能效和节能中获益的其他类型的电路或半导体器件。例如,所公开的实施例不限于台式计算机系统。并且也可在其他设备(诸如手持式设备、片上系统和嵌入式应用)中使用。手持式设备的一些示例包括蜂窝电话、网际协议设备、数字相机、个人数字助理(PDA)、和手持式PC。嵌入式应用一般包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机、或可执行以下示教的功能和操作的任何其他系统。此外,本文中描述的装置、方法和系统不限于物理计算设备,但也可涉及用于节能和能效的软件优化。如将在以下描述中变得显而易见的,本文中描述的方法、装置和系统的实施例(无论参考硬件、固件、软件还是其组合)对于用性能考量来平衡的“绿色技术”的前景是至关重要的。。
[0015]本文中描述的方法和装置用于为集成电路提供可配置最大电流。具体地,可配置最大电流在以下主要是参考微处理器来讨论的。然而,本文中描述的装置和方法并不是限制性的,因为它们可结合任何集成电路器件来实现。例如,图形器件可利用可配置最大电流。或者,可在以上讨论的小形状因子器件、手持式设备、SOC或嵌入式应用中利用可配置最大电流。
[0016]参考图1,解说了包括多个核的处理器的实施例。处理器100包括任何处理器或处理器件,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协处理器或用于执行代码的其他器件。在一个实施例中,处理器100包括至少两个核——核101和核102,这两个核可包括非对称核或对称核(所解说的实施例)。然而,处理器100可包括任何数目的可以是对称的或非对称的处理元件。
[0017]在一个实施例中,处理元件指的是支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、进程单元、上下文、上下文单元、逻辑处理器、硬件线程、核、和/或能保持处理器的状态(诸如执行状态或体系结构状态)的任何其它元件。换言之,在一个实施例中,处理元件指的是能够独立地与诸如软件线程、操作系统、应用程序、或其它代码之类的代码相关联的任何硬件。物理处理器通常指的是可能包括任意数量的其它处理元件(诸如核或硬件线程)的集成电路。
[0018]核通常指的是位于集成电路上的能够维持独立体系结构状态的逻辑,其中每个独立维持的体系结构状态与至少一些专用执行资源相关联。与核相反,硬件线程通常指的是位于集成电路上的能维持独立体系结构状态的任何逻辑,其中被独立维持的体系结构状态共享对执行资源的访问。如所能看见地,当某些资源被共享而其他资源专用于体系结构状态时,硬件线程和核的命名之间的界限交迭。然而,核和硬件线程通常被操作系统看作单独的逻辑处理器,其中操作系统能够单独地调度每一逻辑处理器上的操作。
[0019]如图1所解说的物理处理器100包括两个核,即核101和核102。本文中,核101和核102被认为是对称核,即具有相同的配置、功能单元和/或逻辑的核。在另一实施例中,核101包括无序处理核,而核102包括有序处理核。然而,核101和102可从任何类型的核中单独地选择,诸如原生核、受软件管理的核、适于执行原生指令集体系结构(ISA)的核、适于执行转换指令集体系结构(ISA)的核、协同设计的核或其它已知核。然而为了进一步该讨论,以下进一步详细描述了核101中解说的功能单元,因为核102中的单元以类似方式操作。
[0020]如图所描绘的,核101包括两个硬件线程1la和101b,其可以被称为硬件线程槽1la和101b。因此,在一个实施例中,软件实体(诸如操作系统)潜在地将处理器100看作四个独立的处理器,即能够并行执行四个软件线程的四个逻辑处理器或处理元件。此外,第一线程与体系结构状态寄存器1la相关联,第二线程与体系结构状态寄存器1lb相关联,第三线程可与体系结构状态寄存器102a相关联,并且第四线程可与体系结构状态寄存器102b相关联。在本文中,体系结构状态寄存器(101a、101b、102a和102b)中的每一个体系结构状态寄存器可被称为如以上所描述的处理元件、线程槽或线程单元。如所解说的,体系结构状态寄存器1la在体系结构状态寄存器1lb中被复制,所以能够为逻辑处理器1la和逻辑处理器1lb存储单独的体系结构状态/上下文。在核101中,也可以为线程1la和1lb复制其他较小的资源(诸如,指令指针和重命名分配器逻辑130中的重命名逻辑)。一些资源(诸如重排序器/隐退单元135中的重排序缓冲器、IL TB120、载入/存储缓冲器、以及队列等)可通过分区来共享。其它资源(诸如通用内部寄存器、(诸)页表基本寄存器、低级数据高速缓存、数据TLB115、执行单元140、以及无序单元135的部分等)潜在地被完全共享。
[0021]处理器100通常包括可被完全共享、通过分区来共享或者被处理元件指定或专用于处理元件的其他资源。在图1中,解说了具有处理器的解说性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可包括或省略这些功能单元中的任何功能单元,以及包括未描绘出的任何其他公知功能单元、逻辑或固件。如所解说的,核101包括简化的、代表性的无序(000)处理器核。但是,在不同的实施例中,可以利用有序处理器。该000核包括用于预测要被执行/进行的分支的分支目标缓冲器120和用于存储指令的地址转换条目的指令转换缓冲器(1-TLB) 120。
[0022]核101进一步包括耦合到取出单元120的用于对取出的元素进行解码的解码模块125。在一个实施例中,取出逻辑包括分别与线程槽1laUOlb相关联的单独定序器。通常,核101与第一指令集体系结构(ISA)相关联,该第一指令集体系结构定义/指定可在处理器100上执行的指令。通常,作为第一 ISA—部分的机器代码指令包括引用/指定待执行的指令或操作的指令的一部分(被称为操作码)。解码逻辑125包括以下电路:该电路通过这些指令的操作码来标识这些指令,并在流水线上传递所解码的指令以进行如第一 ISA所定义的处理。例如,如以下更详细描述的,在一个实施例中,解码器125包括被设计或适配成识别特定指令(诸如,事务性指令)的逻辑。作为解码器125进行识别的结果,体系结构或核101采用特定的、预定义动作来执行与适当指令相关联的任务。重要的是,本文中描述的任务、块、操作和方法中的任何一个可响应于单个或多个指令而被执行;此单个或多个指令中的一些可以是新指令或旧指令。
[0023]在一个示例中,分配器和重命名器块130包括用于保留资源(诸如,用于存储指令处理结果的寄存器文件)的分配器。然而,线程1la和1lb潜在地能够进行无序执行,其中分配器和重命名器块130也保留其他资源,诸如用于跟踪指令结果的重排序器缓冲器。单元130还可以包括用于将程序/指令引用寄存器重命名成处理器100内部的其他寄存器的寄存器重命名器。重排序器/隐退单元135包括诸如以上提到的重排序器缓冲器、加载缓冲器和存储缓冲器等组件,以支持无序执行的指令的无序执行和稍后的有序隐退。
[0024]在一个实施例中,调度器和执行单元块140包括调度器单元以调度执行单元上的指令/操作。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。也包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳跃执行单元、加载执行单元、存储执行单元和其他公知的执行单元。
[0025]较低级的数据高速缓存和数据转换缓冲器(D-TLB) 150被耦合到执行单元140。数据高速缓存用于存储最近使用/操作的元素(诸如,数据操作数),这些元素在存储器一致性状态下潜在地被保持。D-TLB用于存储最近的虚拟到物理地址转换/线性到物理地址转换。作为特定示例,处理器可包括将物理存储器分割成多个虚拟页面的页表结构。
[0026]在本文中,核101和102共享对较高级或进一步的高速缓存110的访问,较高级或进一步的高速缓存110用于对最近取出的元素进行高速缓存。注意,较高级或进一步指的是高速缓存级别增加或进一步远离执行单元。在一个实施例中,较高级高速缓存110是最后级数据高速缓存——即处理器100上的存储器分层结构中的最后级高速缓存一诸如第二或第三级数据高速缓存。然而,较高级高速缓存110并不如此受限,因为它可以与指令高速缓存相关联或者包括指令高速缓存。轨迹高速缓存一一种类型的指令高速缓存一可代替被耦合在解码器125之后以存储最近解码的轨迹。
[0027]在所描绘的配置中,处理器100还包括总线接口模块105。在历史上,以下更详细描述的控制器170已被包括在处理器100外部的计算系统中。在这个情景中,总线接口 105将与处理器100外部的设备通信,诸如系统存储器175、芯片集(通常包括用于连接到存储器175的存储器控制器中枢和用于连接外围设备的I/O控制器中枢)、存储器控制器中枢、北桥、或其他集成电路。并且在这个情景中,总线105可以包括任何公知的互连,诸如多跳总线、点对点互连、串行互连、并行互连、一致性(例如,与高速缓存一致性)总线、分层协议体系结构、差分总线、和GTL总线。
[0028]存储器175可专用于处理器100或与系统中的其他器件共享。存储器175的普通类型示例包括动态随机存取存储器(DRAM)、静态RAM(SRAM)、非易失性存储器(NV存储器)和其他公知存储设备。注意,器件180可包括耦合到存储器控制器中枢的图形加速器、处理器或卡,耦合到I/O控制器中枢的数据存储,无线收发器,闪存器件,音频控制器,网络控制器,或其它已知器件。
[0029]然而,注意在所描绘的实施例中,控制器170被解说成处理器100的一部分。最近,随着更多的逻辑和器件被集成在诸如片上系统(SOC)之类的单个管芯上,因此这些器件中的每一个均可被合并在处理器100上。例如,在一个实施例中,存储器控制器中枢170与处理器100在同一封装和/或管芯上。在本文中,核的一部分(核上的部分)包括供与其他器件(诸如存储器175或图形器件180)对接的一个或多个控制器170。包括用于与此类器件进行接口的控制器和互连的该配置通常被称为核上(或非核配置)。作为示例,总线接口105包括具有供与存储器175对接的存储器控制器以及供与图形处理器180对接的图形控制器的环形互连。然而,在SOC环境中,甚至更多的设备(诸如网络接口、协同处理器、存储器175、图形处理器180和任何其他公知的计算机器件/接口)可被集成在单个管芯或集成电路上,以提供具有高功能性和低功耗的小形状因子。
[0030]在一个实施例中,处理器100能够执行编译器、优化和/或翻译器代码177以对支持本文中描述的装置和方法或与其的对接的应用代码176进行编译、翻译和/或优化。编译器通常包括将源文本/代码转换成目标文本/代码的程序或程序集。通常,用编译器对程序/应用代码的编译以多个阶段和多遍进行,以将高级编程语言代码变换成低级机器或汇编语言代码。然而,单遍编译器仍可被用于进行简单的编译。编译器可利用任何公知的编译技术并执行任何公知的编译器操作,诸如词汇分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。
[0031]较大的编译器通常包括多个阶段,但最通常地这些阶段被包括在以下两个一般阶段内:(1)前端,在前端中通常进行句法处理、语义处理和一些变换/优化,以及(2)后端,在后端中通常进行分析、变换、优化和代码生成。一些编译器涉及中端,中端说明编译器的前端和后端之间的界定模糊。因此,对编译器的插入、关联、生成或其他操作的引用可以在编译器的前面提到的阶段或遍次中的任何一个中或者任何其他公知的阶段或遍次中发生。作为解说性示例,编译器潜在地在编译的一个或多个阶段中插入操作、调用、函数等,诸如在编译的前端阶段中插入调用/操作,并随后在变换阶段期间将这些调用/操作变换成较低级代码。注意,在动态编译期间,编译器代码或动态优化代码可插入此类操作/调用,以及优化该代码以供在运行时期间执行。作为特定的解说性示例,可以在运行时期间动态地优化二进制代码(已经编译的代码)。本文中,程序代码可包括动态优化代码、二进制代码或其组合。
[0032]与编译器类似,翻译器(诸如,二进制翻译器)静态地或动态地翻译代码以优化和/或翻译代码。因此,对代码、应用代码、程序代码、或其他软件环境的执行的引用可指的是:(I)编译器程序、优化代码优化器或转换器的动态或静态执行,以编译程序代码、维持软件结构、执行其它操作、优化代码、或转换代码;(2)主程序代码的执行,包括操作/调用,诸如已经被优化/编译的应用代码;(3)与主程序代码相关联的诸如库之类的其它程序代码的执行,以维持软件结构、执行其他软件相关操作、或优化代码;或(4)它们的组合。
[0033]之前,处理器(诸如处理器100)通常仅具有一个最大电流选项可用;并且,它通常由处理器制造商基于处理器部分及相关联的平台的电力假设来预先选择。因此,在一个实施例中,处理器100能够提供多个最大电流选项(或在多个最大电流选项之间进行选择)。例如,处理器100的制造商为处理器100烧录一组最大电流值。并且,由于电流通常直接影响处理器的频率,每一最大电流值可以与一个或多个最大频率相关联。
[0034]本文中,可注意,当越多具有同一最大电流的逻辑(S卩,多个核)活跃时,则通常越小的频率可用。因此,在一个实施例中,每一最大电流与活跃处理元件的每一组合的最大频率相关联。例如,假设为核100提供了最大电流值25A、50A、75A和100A,并且处理器100的标称(或基本)操作频率为3.0GHz。在这个情景中,每一个最大电流值(诸如100A)在一个核(核101或核102)活跃时与第一临时(或超频)最大频率相关联,并在两个核都活跃时与第二超频相关联。
[0035]在超频的世界中,通常以超频超过操作频率的相对量来指示超频。事实上,此类相对频率通常是用大于处理器100的操作频率的频率桶或频率段来指示的。继续以上示例,假定频率段包括100MH,处理器100的一个核活跃时的第一超频包括3.9GHz,且处理器100的两个核都活跃时的第二超频包括3.5GHz。结果,可以说处理器100的最大电流值100A在一个核活跃时与9个频率段相关联,并在两个核均活跃时与5个频率段相关联。
[0036]在一个实施例中,处理器100的最大电流配置选项通过基本输入/输出软件(B1S)接口中的性能支持状态(PSS)而变得对处理器100可用。随后平台设计者和制造商(诸如,接受处理器100的母板的制造商)可根据与处理器100的功率递送有关的处理器制造商的设计规范来进行设计。并且如果那些平台设计者如此选择,则为了实现较高或较低的最大电流选项,他们可通过在那些规范内优化功率递送网络来进行设计。因此,每一平台设计者都能够定制他们的设计,并从多个可用选项中选择最准确的最大电流配置选项。作为潜在优势,在每一平台中利用最高性能最大电流配置来获得最高可能的频率和性能,而非依赖于处理器100的单个、保守的、基于假设的最大电流值而不管该平台如何。
[0037]此外,在一个实施例中,抑或作为静态电流配置的替换或与静态电流配置结合,从多个最大电流选项中对最大电流配置的动态选择被利用。在本文中,处理器100、在其上执行的代码、B1S、其他模块或其组合基于处理器100或处理器100的平台的现有电力特性来动态地选择最优的最大电流。例如,一旦检测到功率事件或电流配置事件(诸如,电源的移除、电源的添加、高热密度、低热密度、功率策略决定、达到功率限制等),新的最大电流配置就被选择。
[0038]作为特定的解说性示例,假定最初选择了最大电流配置。并且随后,电源被移除(用户从墙上拔出了笔记本的A/C插头)。根据功率策略,平台设计者可能期望较小的最大电流以及较小的超频,以节省功率。因此,硬件、软件、固件或其组合选择较低的最大电流配置以节约功率。并且类似地,当笔记本又被插上电源时,动态地重新选择最大电流配置。在这个解说性情景中,在对最大电流配置的选择中利用可变得对硬件、软件、固件或其组合而言可访问的处理器100中的寄存器(诸如,专用模型寄存器)。因此,不管是利用对最大电流配置的静态选择还是动态选择,该选择都是为了达成每一平台的最佳可能性能而为每一平台智能地作出的,而不是为了确保兼容性的潜在地导致较小性能的一般最大电流假设。
[0039]参考图2-4,解说了适配于包括具有可配置最大电流的处理器的计算机系统配置的实施例。参考图2,解说了双处理器系统200的解说性示例,其中在每一处理器205、210中有集成存储器控制器和输入/输出(I/O)控制器。虽然为了避免使该讨论模糊而没有进行详细讨论,但平台200解说了多个互连以在各组件之间传递信息。例如,在一个实施例中,点对点(P2P)互连215包括串行P2P的、双向的、高速缓存一致性的总线,该总线具有能够实现高速数据传输的分层协议体系结构。此外,I/O设备245、250之间的接口 240利用一般公知的接口(外围组件高速互连,PCIE)或其变型。然而,可利用任何公知互连或接口来与计算系统的域通信或在计算系统的域内进行通信。
[0040]转至图3,解说了四核处理器平台300。如在图2中,处理器301-304通过高速P2P互连305彼此耦合。并且处理器301-304包括集成控制器301c-304c。图4描绘了具有不同配置的另一四核处理器平台400。在本文中,不是利用处理器上I/O控制器来通过I/O接口(诸如,PC1-E接口)与I/O设备进行通信,而是利用P2P互连来耦合处理器和I/O控制器中枢420。随后,中枢420进而通过PCIE类接口与I/O器件通信。
[0041 ] 接着参考图5,解说了用于提供多个最大电流配置选项和/或在此多个最大电流配置选项之间进行选择的处理器的逻辑表示的实施例。如之前所提及的,器件505包括任何集成电路器件,诸如处理器、S0C、微控制器等。例如,器件505包括多处理元件(多核或多硬件线程)处理器。
[0042]在一个实施例中,处理器505包括用于为设备保持多个最大电流配置的表示的存储510。存储510包括任何公知存储结构,诸如一个或多个寄存器、高速缓存、存储器设备等。在本文中,每一个最大电流配置与多个最大超频相关联。例如,超频(或可用的频率段)是为处理器505中的活跃处理元件的每一组合提供的。因此,如果处理器505包括8个核,则在本解说中提供八个最大频率(即,在八个核之一活跃时提供第一数目的频率段,在八个核中的两个核活跃时提供第二数目的频率段,等等)。
[0043]虽然解说了器件505内的存储510,但此类存储位置不是必须的。事实上,在一个实施例中,存储510被保持在非易失性存储器(诸如基本输入输出软件(B1S)闪存器件)中。作为组合,多个电流配置的表示可被保持在处理器505外部。并且这些配置中的一个或多个配置可被写入处理器505内部的存储,诸如处理器505内的专用模型寄存器(MSR) 510。
[0044]作为第一示例,存储510将保持表520a、520b或其组合,而与放置无关。在本文中,表520a中的最大电流值(诸如75A和112A)与多个最大超频相关联。在所描绘的实施例中,假定处理器505包括四个处理元件(诸如4个核)。因此,向每一最大电流提供四个超频(例如,对于112A,在I个核活跃时为1000MHz或者10个段可用,在2个核活跃时为1000MHz或10个段可用,在3个核活跃时为900MHz或者9个段可用,并且在4个核活跃时为700MHz或7个段可用)。
[0045]如从表520a的简化示例中能看见的,在各最大电流配置之间存在潜在的显著差异(即,对于2个核活跃的情况I个以上段可用,对于3个核活跃的情况4个以上段可用,并且对于4个核活跃的情况6个以上段可用)。然而,如果处理器505仅限于一个最大电流配置,则制造商可能已选择75A以确保处理器505在每一可能平台(包括具有仅双相电压调整器的平台)中都正确地操作。但是在具有3相电压调整器的平台中使用75A电流配置可能将所有额外超频和关联的性能留在该表中。
[0046]结果,在一个实施例中,超频模块515将从多个可能配置中的所选配置中选择、利用和/或实现超频。例如,在工作负载需要附加性能时,超频模块515将在该配置的约束下增强频率(即,如果从表520a中选择了 75A的最大电流值,并且3个核活跃,则操作频率被一直增强到500MHz)。然而,增强频率可能受到其他考虑的限制,诸如受到估计电流消耗、估计功耗、处理器温度、功率限制、功率单元的指示或其他公知的与电流有关的度量的限制。作为解说性示例,假定工作负载请求附加性能并且基于所选的配置,超频模块505确定5个频率段对附加性能可用。但是如果处理器505由于处理器温度而在热扼流条件下,则超频模块505可能根据热扼流策略根本不会增加操作频率。
[0047]接着参考图6,解说了支持从多个选项中选择最大电流配置的平台的解说性实施例。在本文中,表635 (其可能与表520a、520b或其组合类似)被保持在B1S器件630 (诸如,非易失性闪存器件)中。在一个实施例中,处理器605的制造商烧录一组最大电流配置。并且,B1S解释这些烧录项(fuse)以构建表635。基于所提供的规范,消费者(即,母板、组件、平台或其他设计者/制造商)提供选择最大电流配置的选择标准650a。作为第一示例,选择标准是对表条目或电流值的直接表示。在本文中,平台制造商可基于其对3相电压调整器的使用而直接从表520a中选择112A。或者,平台制造商指示在平台中正利用3相电压调整器,并且B1S作出对表635中的合适电流值条目的选择。作为又一示例,B1S发现平台的电力能力,并基于所发现的信息650ο作出该选择。在本文中,该平台可被测试和/或与平台/组件能力有关的信息(例如,电压调整器的多个相)被展示给B1S。
[0048]在一个选项中,由平台制造商选择的配置是可锁定的(永久地或半永久地)。在全永久情景中,一旦该选择被作出并被锁定,则不可作出其他电流配置选择。然而,在半永久环境中,初始电流配置选择变成基线或默认情况。并且(如以下讨论的)动态选择可基于定义的事件来作出。然而,该配置返回到默认的选择重置或正常操作。注意,在另一实施例中,电流配置变得完全可修改。
[0049]不管电流配置最初由平台制造商基于平台电力能力来选择、还是电流配置由B1S来选择、还是选择最初是按另一种方式作出的、还是初始选择没有被作出,在一个实施例中,电流配置在运行时期间被动态地选择。例如,响应于电流配置事件650a,控制逻辑607动态地从多个电流配置选项中选择最大电流配置,该最大电流配置最初被保持B1S存储630中的表635中。在一个不例中,表635可能被保持在存储606中。相反,在所解说的实施例中,存储元件606被配置成保持所选的配置而非整个表635。如以下更详细讨论的,存储元件606可能是指示或表示电流配置选择的硬件、软件或其组合可访问的。
[0050]电流配置事件650a包括指示可最大电流配置可被修改的任何事件,诸如功率事件、软件指示、用户指示、热事件、或将从最大电流的改变中获益的其他公知事件。功率事件的示例包括:移除电源、添加电源、接收对更多功率的请求、确定附加处理元件是活跃的、确定附加处理事件是不活跃的、确定工作负载需要更多或更少的性能/功率、以及器件在各功率状态之间转变。作为另一解说,软件(特权级软件、用户级软件、驱动程序软件或其组合)可执行到诸如寄存器的存储元件606的写入(例如,到加载有存储元件606的存储器映射的1/0空间616的写入)以选择电流配置。在本文中,配置选项可通过B1S来展示、通过硬件/软件来选择、并通过控制逻辑607来实现。在这种情景中,从硬件/软件的写出被确定为是电流配置事件。
[0051]作为特定的解说性示例,假定表635正保持来自表520b的表信息。并且MSR606保持50A电流配置的表示(即,条目2指示对于50A的最大电流,在1-4个核活跃时分别存在700MHz、600MHz、400MHz和200MHz的最大频率段可用),因为平台600未被插上电源并且处于功率节省模式。未被具体示出但可以是控制逻辑607的一部分的功率控制单元(PCU)(具有分配的功率代码的微控制器)检测到平台600被插上了电源。结果,无论是通过软件直接地或通过存储器映射的空间616写入存储元件606 ;还是硬件与代码(诸如B1S代码)对接;还是硬件或固件(功率单元、PCU、B1S等)基于控制信号直接更新存储元件606 ;还是其组合,均基于电源的添加而选择表635中的多个最大电流配置中的一个最大电流配置(例如,75A)。
[0052]虽然表520b示出了与特定功率事件相关联的最大电流值,但这种关联不是必需的。事实上,在一个示例中,表635包括与各活跃处理元件的可用频率段相关联的可能最大电流值并且当检测到功率事件时,PSU或软件基于该特定事件或事件类型确定来自表635的最优电流。换言之,在这个情景中,B10S630展示处理器605的可能配置选项,并且基于该实现向平台设计者、软件设计者和/或用户分派从所提供的选项中选择最适当配置的任务。越接近运行时,基于事件要选择什么最大电流配置的策略决定可提供越多灵活性和潜在最优选择。然而,在一些情景中,可牺牲灵活性来确保合适的操作以及对不同事件而言最小的保证性能。
[0053]因此,如从以上可看出的,在一个实施例中,对电流配置的动态选择包括将存储元件606从现有电流配置更新成新的电流配置选项。并且B1S展示这些选择选项,使得策略决定作出器(硬件、软件、固件或其组合)能够基于运行时平台信息和/或事件在那些选项中动态地选择该新的电流配置选项。注意,对电流配置选项的动态选择可以被平台制造商单独地或者与初始选择相结合地实现。例如,处理器设计者烧录由B1S展示以供选择的多个最大电流选项。基于平台VR设置,平台设计者选择默认的最大电流。此外,平台制造商可选择原始可用的最大电流选项的子集以稍后向操作硬件和/或软件展示。所以,在运行时期间,硬件/软件作出从所展示的子集中的动态选择。因此,软件和/或硬件能够通过存储器映射的I/O、B1S运行时接口或到处理器寄存器的直接接口来选择更合适的最大电流配置。并且,当工作负载请求更多或更少功耗/性能时,处理器能够从所选的电流配置确定合适的最大值/超频。一旦重新启动,最大电流配置恢复成平台设计者的默认选择。通过以任何不同的功率约束来启用更准确的最大电流选择,来提供更有效的能量消耗和利用。
[0054]移至图7,示出了一种提供多个最大配置选项的方法的流程图的模块和/或表示的实施例。注意,以基本上串行的方式解说这些流程(或模块)。然而,这些流程的串行性质以及所描绘的次序都没有被要求。例如,参考图7,接收选择信息可以不被专门执行。相反,选择信息可诸如通过对平台电力能力的动态自确定来生成。同样,以基本上线性或串行的方式解说了流程705-715。然而,在同一事件段内这些流程可以被并行地执行。此外,所解说的任何流程或逻辑块均可在硬件、软件、固件或其组合内执行。如以上和以下所陈述的,在一个实施例中,每一流程表示模块、模块的部分、或各模块的叠加。此外,具有一个或多个指令或操作形式的任何程序代码在被执行时可导致机器执行在以下解说和描述的流程。
[0055]在流程705,为处理器件提供多个最大电流配置选项。例如,部件设计者设置一个或多个烧录项来指示多个最大电流配置选项。并且这些烧录项可被硬件、软件、或其组合(例如B1S)解释成指示器件的可用配置选项。作为示例,每一最大电流配置都包括与一个或多个关联最大频率的表示相对应的最大电流的表示。最大频率可包括绝对频率(部件或其处理元件的总频率)或相对频率(大于标称或操作频率的可用频率或频率段)。
[0056]在一个实施例中,提供最大电流配置选项包括保持具有关联频率的最大电流值表。例如,B1S解释处理器的烧录项,并在非易失性存储器中构建表,其中每一条目都包括与可用频率相对应的最大电流值。在本文中,在一个实施例中,可用频率包括对于该器件的各处理元件为活跃和/或不活跃的每一情景而言可用的频率。例如,如果处理器具有8个核,则一最大电流配置可存在八个频率(例如,针对I个核、2个核、3个核…8个核为活跃的每一种情况的频率)。在另一实施例中,该表中的各条目也保持配置指示符,诸如关联的功率事件(例如,添加或移除A/C插头)或平台电力度量(例如,电压调整器的相)。
[0057]在流程710,(在构建、初始化或运行时期间)接收指示所选的最大电流配置选项的选择信息。作为第一实施例,选择信息包括对电流配置的挑选形式或选择形式。例如,此类选择的示例包括硬件、B1S、固件、软件或其组合参考表的条目、参考最大电流值、参考功率事件、参考平台电力能力、或与最大电流配置相关联的其他事件/度量。作为针对接收选择信息的各种选项的结果,许多器件可接收该信息。例如,B1S可将选择信息作为来自平台制造商或平台本身的用户输入来接收。处理器可通过存储器映射的I/O、对寄存器的写入、或其他总线从硬件、软件、B1S、固件或其组合来接收此类信息。
[0058]作为特定的解说性示例,平台制造商选择B1S中为处理器包括3相电压调整器的选项。并且B1S接收该选择信息,并从3相电压调整器被包括的指示中确定合适的最大电流配置。作为另一说明性示例,在器件的运行时期间,检测到电流配置事件(例如,电源的移除、电源的添加、热功率密度指示符、工作负载指示符、电能力指示符、运行时功率事件和功率限制)。并且对新电流配置的选择是基于电流配置事件来作出的(例如,硬件、软件、固件或其组合对处理器中的MSR的写入被直接或间接执行,以选择新电流配置)。
[0059]在一个实施例中,在接收到选择信息后,锁定所选的最大电流配置。继续以上示例之一,在平台制造商提供电力能力(选择)信息后,所选的最大电流配置被确定。并且随后所选配置被锁定,使得诸如终端用户的稍后修改不可被作出。
[0060]在流程715,向处理器件展示所选的最大电流配置选项。向处理器展示配置的示例包括:将所选最大电流配置选项的表示写入处理器件的一个或多个存储元件;将所选最大电流配置选项的表示写入处理器件可见的存储器空间;以及允许处理器件从保持有多个最大电流配置选项的存储介质中读出所选最大电流配置选项的表示。
[0061]接着,在流程720,在处理器件的超频模式期间利用与所选电流配置相关联的频率。作为示例,工作负载请求或要求更多性能。结果,处理器中的一个或多个寄存器为活跃处理元件的不同情景保持最大电流值及关联频率。所以在本文中,处理器确定多少处理元件(诸如,核)是活跃的(或,相反情况下确定多少处理元件是不活跃的)。以及从最大电流和关联频率为所确定的处理器活动确定合适的可用频率。结果,处理器在许多时间内以该较高频率(超频)运行以增强性能。
[0062]在此处使用的模块指的是硬件、软件和/或固件的任何组合。作为示例,模块包括与非瞬态介质相关联的硬件(诸如,微控制器),该非瞬态介质用于存储适配于由该微控制器来执行的代码。因此,在一个实施例中,对模块的引用是指被专门配置成识别和/或执行要在非瞬态介质上保持的代码的硬件。此外,在另一实施例中,对模块的使用是指包括被专门适配成由微控制器执行以进行预先确定的操作的代码的非瞬态介质。并且如可推断出的,在又一实施例中,(在这个示例中)术语模块可指得是微控制器和非瞬态介质的组合。通常被示为分开的模块边界一般不同而且有可能重叠。例如,第一和第二模块可共享硬件、软件、固件、或它们的组合,同时可能保留某些独立的硬件、软件或固件。在一个实施例中,术语“逻辑”的使用包括诸如晶体管、寄存器之类的硬件或诸如可编程逻辑器件之类的其它硬件。
[0063]如在本文中所使用的值包括数字、状态、逻辑状态、或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值、或多个逻辑值的使用也被称为I和0,这简单地表示了二进制逻辑状态。例如,I指的是逻辑高电平,O指的是逻辑低电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元能够保持单个逻辑值或多个逻辑值。不过,使用了计算机系统中的值的其它表示。例如,十进制数字10也可被表示为二进制值1010和十六进制字母A。因此,值包括能保持在计算机系统中的信息的任何表示。
[0064]而且,状态也可由值或值的部分来表示。作为一个示例,诸如逻辑I之类的第一值可表示默认或初始状态,而诸如逻辑O之类的第二值可表示非默认状态。此外,在一个实施例中,术语重置和设置分别指的是默认和已更新的值或状态。例如,默认值可能包括高逻辑值,即重置,而已更新的值可能包括低逻辑值,即设置。注意,值的任何组合可用来表示任意数量的状态。
[0065]上述方法、硬件、软件、固件或代码的实施例可通过存储在机器可存取、机器可读、计算机可存取或计算机可读的介质上的、可由处理元件执行的指令或代码来实现。非瞬态机器可存取/可读介质包括提供(即存储和/或发送)诸如计算机或电子系统之类的机器可读的形式的信息的任何介质。例如,非瞬态机器可存取介质包括:诸如静态RAM(SRAM)或动态RAM(DRAM)之类的随机存取存储器(RAM) ;R0M ;磁或光存储介质;闪存设备;电存储设备;光存储设备;声存储设备;或用于保持通过瞬态(传播的)信号(例如,载波、红外信号、数字信号)接收的信息的其他形式的存储设备;等等,这些非瞬态机器可存取介质与可从其接收信息的非瞬态介质是有区别的。
[0066]贯穿本说明书,对“一个实施例”或“一实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,在本说明书通篇中的多个位置中的短语“在一个实施例中”或“在实施例中”的出现不一定指的是同一实施例。而且,具体特征、结构、或特性可以任何合适的方式在一个或多个实施例中组合。
[0067]在上述说明书中,已经参考特定示例性实施例给出了详细描述。然而,和明显,在不背离如所附权利要求所述的本发明的更宽泛精神和范围的情况下,可对这些实施例作出各种修改和改变。因此,说明书和附图应被认为是解说性而非限制性意义。而且,实施例和其它示例性语言的上述使用不一定指的是同一实施例或同一示例,而可能指的是不同和独特的实施例,也有可能是同一实施例。
【权利要求】
1.一种用于高效能耗的装置,包括: 用于保持器件的多个最大电流配置的表示的存储,所述最大电流配置中的每一个最大电流配置与多个最大超频相关联;以及 超频模块,该超频模块适配于基于功率事件动态地选择所述多个最大电流配置中的所选最大电流配置,并确定与所选最大电流配置相关联的多个最大超频中的一最大超频。
2.如权利要求1所述的装置,其特征在于,用于保持所述多个最大电流配置的表示的存储包括用于保持包括多个最大电流值的表的非易失性存储器,所述最大电流值中的每一最大电流值与所述多个最大超频相关联。
3.如权利要求1所述的装置,其特征在于,用于保持所述多个最大电流配置的表示的存储包括用于保持与所述多个最大超频相关联的多个最大电流值的一个或多个寄存器。
4.如权利要求1所述的装置,其特征在于,所述功率事件包括电源的移除,并且适配于基于所述电源的移除动态地选择所述多个最大电流配置中的所选最大电流配置的超频模块包括用于响应于所述电源的移除而动态地选择所述多个最大电流配置中包括与先前最大电流值相比更小的最大电流值的最大电流配置的超频模块。
5.如权利要求1所述的装置,其特征在于,所述设备包括具有多个处理元件的处理器,并且其中所述最大电流配置中的每一个最大电流配置与多个最大超频相关联包括所述最大电流配置中的每一个最大电流配置与所述多个处理元件中的各个整数数目的处理元件为活跃时的最大超 频相关联。
6.如权利要求5所述的装置,其特征在于,适配于确定与所选最大电流配置相关联的多个最大超频中的一最大超频的超频模块包括适配于确定所述多个处理元件中为活跃的处理元件的数目,确定用于所述多个元件中所述数目的为活跃的元件并与所选的最大电流配置相关联的最大超频的超频模块。
7.一种用于高效能耗的装置,包括: 一个或多个寄存器,所述一个或多个寄存器被配置成为器件保持与第一最大频率集合相对应的第一最大电流配置的表不;以及 控制模块,所述控制模块适配于在所述器件的运行时期间,用多个可能最大电流配置的第二最大电流配置的表示来更新所述一个或多个寄存器,所述第二最大电流配置与第二最大频率集合相对应。
8.如权利要求7所述的装置,其特征在于,所述一个或多个寄存器包括一个或多个专用模型寄存器(MSR)。
9.如权利要求7所述的装置,其特征在于,被配置成为器件保持与第一最大频率集合相对应的第一最大电流配置的表示的所述一个或多个寄存器包括被配置成保持与包括所述器件中为活跃的多个处理元件的每一组合的最大频率在内的第一最大频率集合相对应的第一最大电流值的一个或多个寄存器。
10.如权利要求9所述的装置,其特征在于,适配于在所述器件的运行时期间用多个可能最大电流配置的第二最大电流配置的表示来更新所述一个或多个寄存器且所述第二最大电流配置与第二最大频率集合相对应的控制模块包括适配于在运行时期间将与所述第一最大频率集合相对应的所述第一最大电流值更新成与所述第二最大频率集合相对应的第二最大电流值的控制模块。
11.如权利要求9所述的装置,其特征在于,所述控制模块包括: 基本输入/输出软件(B1S),所述基本输入/输出软件被配置成向所述器件展示包括所述第一最大电流配置和所述第二最大电流配置的多个最大电流配置,并将所述第二最大电流配置写入所述一个或多个寄存器。
12.如权利要求9所述的装置,其特征在于,适配于用所述第二最大电流配置的表示来更新所述一个或多个寄存器的控制模块是响应于功率事件的,所述功率事件是从由以下组成的群中选择的:插入电源、移除电源、接收对更多功率的请求、确定附加处理元件为活跃、确定附加处理元件为不活跃、以及所述器件在功率状态之间转变。
13.一种非瞬态介质,所述非瞬态介质包括在被执行时使得机器执行以下能量效率操作的代码: 为处理器件提供多个最大电流配置选项,所述多个最大电流配置选项中的每一个最大电流配置选项与所述处理器件的至少一个最大频率的表示相关联; 接收选择信息以指示对所述多个最大电流配置选项中的所选最大电流配置选项的选择;以及 向所述处理器件展示所述多个最大电流配置选项中的所选最大电流配置选项。
14.如权利要求13所述的非瞬态介质,其特征在于,为处理器件提供多个最大电流配置选项,所述多个最大电流配置选项中的每一个最大电流配置选项与所述处理器件的至少一个最大频率的表示相 关联包括:为所述处理器件烧录所述多个最大电流配置选项。
15.如权利要求14所述的非瞬态介质,其特征在于,为处理器件提供多个最大电流配置选项,所述多个最大电流配置选项中的每一个最大电流配置选项与所述处理器件的至少一个最大频率的表示相关联进一步包括:在非瞬态存储器中保持最大电流表,所述最大电流表包括针对与所述处理器件的所述至少一个最大频率相关联的每一个最大电流配置的条目。
16.如权利要求15所述的非瞬态介质,其特征在于,针对每一最大电流配置的条目进一步关联在所述器件的处理元件为活跃或不活跃的每一可能情景时的最大频率。
17.如权利要求15所述的非瞬态介质,其特征在于,接收选择信息以指示对所述多个最大电流配置选项中的所选最大电流配置选项的选择包括:接收与所选最大电流配置选项相对应的平台电力能力信息。
18.如权利要求17所述的非瞬态介质,其特征在于,在接收选择信息之后所选最大电流配置被锁定,并且其中进一步选择信息在所选最大电流配置被锁定时不选择所述多个最大电流配置选项中的不同电流配置选项。
19.如权利要求15所述的非瞬态介质,其特征在于,接收选择信息以指示对所述多个最大电流配置选项中的所选最大电流配置选项的选择包括:在所述器件的运行时期间响应于电流配置事件接收选择信息,所述电流配置事件是从由以下组成的群中选择的:电源的移除、电源的添加、热功率密度指示符、工作负载指示符、电力能力指示符和功率限制。
20.如权利要求15所述的非瞬态介质,其特征在于,向所述处理器件展示所述多个最大电流配置选项中的所选最大电流配置选项包括:将所选最大电流配置选项的表示写入所述处理器件的一个或多个存储元件。
21.如权利要求15所述的非瞬态介质,其特征在于,向所述处理器件展示所述多个最大电流配置选项中的所选最大电流配置选项包括:将所选最大电流配置选项的表示写入所述处理器件可见的存储器空间。
22.如权利要求15所述的非瞬态介质,其特征在于,向所述处理器件展示所述多个最大电流配置选项中的所选最大电流配置选项包括:允许所述处理器件从保持所述多个最大电流配置选项的存储介质中读出所选最大电流配置选项的表示。
23.一种用于高效能耗的方法,包括: 为处理器提供最大电流值集合及相应的超频,其中所述集合包括一个以上的最大电流值;以及 基于最大电流配置考虑来选择所述最大电流值集合及相应的超频中的一个最大电流值及相应的超频。
24.如权利要求23所述的方法,其特征在于,所述最大电流配置考虑包括运行时功率事件,所述运行时功率事件是从由以下组成的群中选择的:电源的移除、电源的添加、热功率密度指示符、工作负载指示符、电力能力指示符和功率限制,并且其中基于最大电流配置考虑来选择所述最大电流值集合及相应的超频中的一个最大电流值及相应的超频是在所述处理器的运行时期间执行的。
25.如权利要求23所述的方法,其特征在于,所述最大电流配置考虑包括包含所述处理器的平台的电力能力度量。
26.如权利要求25 所述的方法,其特征在于,为处理器提供最大电流值集合及相应的超频包括为所述处理器在基本输入/输出软件(B1S)固件中保持最大电流值集合及相应的超频的表。
27.如权利要求26所述的方法,其特征在于,为所述处理器在基本输入/输出软件(B1S)固件中保持最大电流值集合及相应的超频的表是响应于B1S固件解释定义所述最大电流值集合的各烧录项。
28.如权利要求27所述的方法,其特征在于,基于所述电力能力度量来选择所述最大电流值集合及相应的超频中的一个最大电流值及相应的超频包括:接收B1S固件内指示所述电力能力度量的信息,并根据B1S固件中与所述电力能力度量有关的预定义策略从B1S固件内的所述表中选择该最大电流值及相应的超频。
29.如权利要求28所述的方法,其特征在于,所述电力能力度量包括电压调整器的与所述处理器相关联的多个相。
30.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质包括在由处理器执行时执行如权利要求23-29所述的方法的代码。
31.一种用于高效能耗的设备,包括: 电流装置,所述电流装置用于为处理器提供最大电流值集合及相应的超频,其中所述集合包括一个以上的最大电流值;以及 选择装置,所述选择装置用于基于最大电流配置考虑来选择所述最大电流值集合及相应的超频中的一个最大电流值及相应的超频。
32.如权利要求31所述的设备,其特征在于,所述最大电流配置考虑包括运行时功率事件,所述运行时功率事件是从由以下组成的群中选择的:电源的移除、电源的添加、热功率密度指示符、工作负载指示符、电力能力指示符和功率限制,并且其中基于最大电流配置考虑来选择所述最大电流值集合及相应的超频中的一个最大电流值及相应的超频的选择装置是在所述处理器的运行时期间执行的。
33.如权利要求31所述的设备,其特征在于,所述最大电流配置考虑包括包含所述处理器的平台的电力能力度量。
34.如权利要求33所述的设备,其特征在于,用于为处理器提供最大电流值集合及相应的超频的电流装置包括用于为所述处理器在基本输入/输出软件(B1S)固件中保持所述最大电流值集合及相应的超频的表的电流装置。
35.如权利要求34所述的设备,其特征在于,用于为所述处理器在基本输入/输出软件(B1S)固件中保持最大电流值集合及相应的超频的表的电流装置响应于B1S固件解释定义所述最大电流值集合的各烧录项。
36.如权利要求35所述的设备,其特征在于,用于基于所述电力能力度量来选择所述最大电流值集合及相应的超频中的一个最大电流值及相应的超频的选择装置包括:用于接收B1S固件内指示所述电力能力度量的信息,并用于根据B1S固件中与所述电力能力度量有关的预定义策略从B1S固件内的所述表中选择该最大电流值及相应的超频的选择装置。
37.如权利要求36所述的设备,其特征在于,所述电力能力度量包括电压调整器的与所述处理器相关联的多 个相。
【文档编号】G06F13/14GK104205077SQ201280061922
【公开日】2014年12月10日 申请日期:2012年12月12日 优先权日:2011年12月14日
【发明者】K·R·夏, E·迪斯特法诺, S·H·冈瑟, J·J·谢拉 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1