CN110199242B - 基于使用参数配置处理器的基本时钟频率 - Google Patents

基于使用参数配置处理器的基本时钟频率 Download PDF

Info

Publication number
CN110199242B
CN110199242B CN201780084195.4A CN201780084195A CN110199242B CN 110199242 B CN110199242 B CN 110199242B CN 201780084195 A CN201780084195 A CN 201780084195A CN 110199242 B CN110199242 B CN 110199242B
Authority
CN
China
Prior art keywords
clock frequency
frequency value
processing
processing device
base clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780084195.4A
Other languages
English (en)
Other versions
CN110199242A (zh
Inventor
V·斯里尼瓦桑
K·V·西斯拉
C·D·高夫
I·M·斯泰纳
N·古普塔
V·加格
A·巴尔马
S·A·沃拉
D·P·莱内尔
J·M·沙利文
N·古鲁莫什
W·J·鲍希尔
V·拉马穆尔蒂
C·麦克纳马拉
J·J·布朗
R·达斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN202111591730.XA priority Critical patent/CN114237382B/zh
Publication of CN110199242A publication Critical patent/CN110199242A/zh
Application granted granted Critical
Publication of CN110199242B publication Critical patent/CN110199242B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

处理设备包括多个处理核心;控制寄存器,控制寄存器与多个处理核心的第一处理核心相关联,以存储第一基本时钟频率值,第一处理核心以第一基本时钟频率值运行;以及功率管理电路,功率管理电路用于:接收包括第二基本时钟频率值的基本时钟频率请求;将第二基本时钟频率值存储在控制寄存器中,以引起第一处理核心以第二基本时钟频率值运行;以及在与功率管理电路相关联的硬件接口上暴露第二基本时钟频率值。

Description

基于使用参数配置处理器的基本时钟频率
技术领域
本公开涉及处理器,并且更具体地,涉及基于使用参数配置处理器的基本频率。
背景技术
计算设备可在一个或多个处理器(诸如中央处理单元(CPU))中包括一个或多个处理核心,用于执行指令。计算设备也可包括用于存储与在一个或多个处理核心上实行任务相关联的指令和数据(包括用户应用程序和系统应用程序诸如操作系统的内核)的存储器设备(诸如随机访问存储器(RAM))。制造商可设计处理器来以基本时钟频率值操作,其中基本时钟频率值是保障时钟速度,在保障时钟速度下,处理器可在不违反处理器的热设计功率(TDP)要求的情况下以满工作负荷运行。TDP指示由与处理器相关联的冷却系统可充分耗散的由处理器生成的最大热量。制造商可用基本时钟频率值标记处理器。
附图说明
将从下面给出的详细描述且从本公开的各种实施例的附图更全面地理解本公开。然而,附图应当不被视为将本公开限于具体实施例,而仅用于解释和理解。
图1示出根据本公开的实施例的系统。
图2A示出根据本公开的实施例的用于在系统上电期间设置基本时钟频率的过程。
图2B示出根据本公开的实施例的用于基于在运行时间期间的使用场景改变基本时钟频率的过程。
图3示出根据本公开的实施例的用于调节一些或选择性核心上的基本时钟频率值以满足目标服务级别的过程。
图4是根据本公开的实施例的用于基于目标服务级别设定基本时钟频率值的方法的框图。
图5A是示出用于包括异构核心的处理器的微架构的框图,可在该处理器中使用本公开的一个实施例。
图5B是示出根据本公开的至少一个实施例实施的有序流水线和寄存器重命名阶段、无序发布/执行流水线的框图。
图6示出根据本公开的一个实施例的用于包括逻辑的处理器的微架构的框图。
图7是示出系统的框图,可在该系统中使用本公开的实施例。
图8是系统的框图,可在该系统中操作本公开的实施例。
图9是系统的框图,可在该系统中操作本公开的实施例。
图10是根据本公开的实施例的片上系统(SoC)的框图。
图11是根据本公开的SoC设计的实施例的框图。
图12示出计算机系统的一个实施例的框图。
具体实施方式
制造商通过设计和测试过程确定处理器的基本时钟频率值,并且可在处理器上标出基本时钟频率值。由制造商指配的基本时钟频率值通常基于特定使用场景确定。特定使用场景的示例可为最差情况工作负荷、TDP目标、可靠性目标等的具体组合。制造商常常不向终端用户提供改变处理器的基本时钟频率值(例如,到高于所指配的基本时钟频率值的值)的任何机制。该禁止将防止违反处理器的TDP要求。虽然处理器可包括允许处理器机会性地在由制造商标出的基本时钟频率值之上运行的硬件特征(例如,睿频加速技术),但是这些硬件特征不能保障处理器以高于确定的工作负荷的基本时钟频率值的时钟速度运行。因为睿频加速技术不能保障工作负荷的持续时钟速度,所以当与客户达成服务级别协议(SLA)时,云服务提供商不能给使用这些机会性高时钟频率提供的云服务定价。
本公开的实施例通过将选项提供给终端用户以针对不同的使用场景将处理器的基本时钟频率设定为高于或低于制造商指配的基本时钟频率值的值,解决上面提到的和其它缺陷。使用场景可由参数集指定,参数集包括例如,将使用的处理器中的处理核心的目标数量、目标热设计功率(TDP)量、目标工作负荷(例如,为TDP的百分比)和目标可靠性测量(例如,处理器的使用寿命)。实施例可包括用户界面,该用户界面可向用户提供选项以从使用场景的列表选取目标使用场景。例如,用户界面可在引导过程期间包括这些选项。另选地,在处理器上运行的应用程序可提供这些选项。处理器或与处理器相关联的控制器电路可利用所选择的使用场景,以确定用于处理器中的处理核心集的目标基本时钟频率值。处理核心集可少于处理器中的所有处理核心(例如,6个处理核心中的2个)。处理器或控制器也可利用使用场景以确定用于处理器中的多个不相交的处理核心集(例如,在第一基本时钟频率值(X)处的6个处理核心中的2个处理核心,以及在第二基本时钟频率值(Y)处的6个处理核心中的剩余4个处理核心)的目标基本时钟频率值集。另外,处理器可将由在与处理器相关联的功率管理电路上运行的固件(PCU固件)使用的基本时钟频率值更新到目标基本时钟频率值。PCU固件可基于用于处理核心集的目标基本时钟频率值,计算功率消耗和热生成。响应于根据目标基本时钟频率值设定PCU计算,处理器可配置处理核心集以目标基本时钟频率值运行,并且使得处理核心集能够以目标基本时钟频率值运行。这样,云服务提供商可在服务级别协议中与终端用户给增强的目标基本时钟频率值定价。
图1示出根据本公开的实施例的系统100。如图1所示,处理系统100(例如,片上系统(SOC)或计算机系统的母板)可包括处理器102和通信地耦接到处理器102的存储器设备104。处理器102可为硬件处理设备,诸如例如包括一个或多个处理核心108以执行软件应用程序的中央处理单元(CPU)或图形处理单元(GPU)。系统100也可包括基本输入输出系统(BIOS)芯片集106以在系统引导期间(例如,在通电时)存储系统启动指令。BIOS芯片集106可为只读存储器(ROM)或闪存存储器以存储这些指令。
处理器102还可包括处理核心108、功率管理电路110(诸如例如x86处理器的功率控制单元(PCU))和控制寄存器112、控制寄存器114、控制寄存器126。在各种实施方式中的处理核心108可由有序核心或无序核心提供。在例示性示例中,处理核心108可具有包括用于实施指令集架构(ISA)的处理器逻辑和电路的微架构。带有不同微架构的处理器102可共享公共指令集的至少一部分。例如,可使用各种技术在不同微架构中以不同方式实施ISA的相同寄存器架构,包括专用物理寄存器、使用寄存器重命名机制(例如,使用寄存器别名表(RAT)、重排序缓冲器(ROB)和引退寄存器文件)的一个或多个动态分配的物理寄存器,如由图6-图7所示。
如上面讨论的,在处理器的制备和测试期间,制造商可确定处理器102的基本时钟频率值。基本时钟频率值是最高认证时钟速度,在该最高认证时钟速度下,处理器102可以预先确定的工作负荷(例如,最差的工作负荷)运行。可依据用于实行任务的时钟周期的数量,测量在处理器102上运行的任务的工作负荷。基于包括通过执行这些指令生成的热的许多因素,确定在每个时钟周期可执行的指令的上限。在一个实施例中,处理器102可包括控制寄存器112(被称为处理器基本时钟频率(BCF)寄存器),以存储被指配给处理器102的基本时钟频率值。预先确定的基本时钟频率值为存储在控制寄存器112中的默认初始值。在一个实施例中,处理核心108中的每个可与相应的控制寄存器114相关联,以存储用于对应的核心108的对应的基本时钟频率值。从制造商获得的每个控制寄存器114可存储被指配到处理器102的默认基本时钟频率值。附加地,控制寄存器126可存储关联掩码,以指示哪些处理核心108是激活的。在一个实施例中,关联掩码126是位映射,其中每个位存储用于对应的处理核心的活动状态。例如,当位被设定为激活状态(例如,“1”)时,对应的处理核心将根据与处理核心相关联的基本时钟频率值运行。当位被设定为非激活状态(例如,“0”)时,对应的处理核心不可用于软件应用程序或处于空闲。在一个实施例中,功率管理电路110可确定哪些处理器核心108是激活的,并且将对应于激活处理核心的关联掩码中的位设定为激活状态,并且将对应于非激活处理核心的位设定为非激活状态。在另一个实施例中(如结合图3讨论的),系统软件122可设定关联掩码。
在另一个实施例中,处理器BCF寄存器112可存储包括数据项的数据结构,其中每个数据项可包含处理核心标识符和对应的每个核心基本时钟频率值,以及关联掩码位。在另一个实施例中,BCF寄存器112可存储对存储在存储器中的数据结构的引用,其中数据结构包括数据项。因此,处理核心108可根据存储在数据结构中的每个核心基本时钟频率值操作。每个核心基本时钟频率值允许每个处理核心以其自己的基本时钟频率操作,该基本时钟频率可与另一个处理核心或与处理器102的基本时钟频率值不同。
功率管理电路110可为用功率控制单元(PCU)固件116编程的微控制器。PCU固件116可包括与基于处理器102的基本时钟频率值和/或处理核心108的每个核心基本时钟频率值管理处理器温度相关联的代码编码功能。在一个实施例中,在引导期间,执行PCU固件116的功率管理电路110读取存储在BIOS芯片集106中的BIOS指令120,以实行系统100的初始化。PCU固件116也可包括用于基于由系统软件122生成的热传感器数据和工作负荷请求管理与处理器102和/或处理核心108相关联的基本时钟频率值的代码。例如,PCU固件116可关闭非激活处理核心,并且使备用电源转向激活处理核心。PCU固件116也可基于处理设备的热生成模型,计算由处理设备生成的热能。热生成模型可使用激活处理核心的基本时钟频率值作为输入参数。
制造商可基于利用所有处理核心108的处理器的预先确定的使用场景集,确定处理器102的基本时钟频率值。在操作中,目标使用场景可不同于已经由制造商测试的预先确定的使用条件集。在一些情况中,目标使用场景可允许处理器102或处理器102的一些处理核心108以高于由制造商指配的基本时钟频率值的目标基本时钟频率值运行。在本公开的一个实施例中,处理器102可向固件(例如,在BIOS引导期间的PCU固件116)提供硬件接口,以允许改变存储在处理器102的控制寄存器112中的基本时钟频率值和/或存储在处理核心108的控制寄存器114中的值(包括存储在控制寄存器126中的关联掩码)。另外,处理器102也可将应用程序编程接口(API)暴露于系统软件122(例如,操作系统或虚拟机监视器(VMM)),以允许系统软件识别使用场景,并且使用API将基本时钟频率请求发送到功率管理电路110。请求可包括由系统软件122为使用场景确定的目标基本时钟频率值。功率管理单元110可基于请求为一个或多个处理核心设定目标基本时钟频率。
在一个实施例中,BIOS芯片集106可在处理系统100的引导过程期间生成基本时钟频率请求。在另一个实施例中,系统软件(例如,操作系统或VMM)122可响应于使用场景的改变(例如,虚拟机的添加/移除),生成基本时钟频率请求。由功率管理电路110接收的基本时钟频率请求可包括基于使用场景确定的处理核心的数量(可用处理核心的子集或所有可用处理核心)和与这些处理核心相关联的目标基本频率值。响应于接收基本时钟频率请求,在功率管理电路110上运行的PCU固件116可设定与这些处理核心相关联的目标基本频率值和关联掩码中的对应的位。在一个实施例中,PCU固件116可通过将目标基本时钟频率值存储在控制寄存器112中,改变处理器102的基本时钟频率值,并且通过将目标基本时钟频率值存储在对应的控制寄存器114中,改变处理核心108的基本时钟频率。
在一个实施例中,在系统引导过程期间,处理系统100可向终端用户显示选项,以选取使用场景,以便基于终端用户选择生成对功率管理电路110的基本时钟频率请求。如图1所示,BIOS芯片集106可存储指令,当在引导过程期间执行该指令时,该指令在输入/输出设备(例如,显示设备和键盘或鼠标)上呈现BIOS用户界面118,并且BIOS芯片集106还存储BIOS指令120,用于设置处理系统100的不同设备。BIOS用户界面118可在接口设备(例如,显示设备)上呈现在引导过程的不同阶段的状态。在一个实施例中,BIOS用户界面118可将使用场景的列表呈现给用户。响应于接收使用场景的选择,引导过程可包括指令的执行(例如,由功率管理电路116),以生成对功率管理电路110的基本时钟频率请求。基本时钟频率请求可包括目标基本时钟频率值,并且可选地包括以目标基本时钟频率值运行的处理核心的数量。然后,功率管理电路110可基于所接收的基本时钟频率请求设置处理器102。
图2A示出根据本公开的实施例的在系统引导过程期间设置基本时钟频率的过程200。如图2A所示,在202,系统100可起动引导过程。处理器102的控制器(例如,功率管理电路110)可读取存储在BIOS芯片集中的指令序列,以设置与系统100相关联的不同设备。引导过程也可将引导过程的状态呈现在显示设备上。响应于执行指令以设置系统100的处理器102,在204处,引导过程可在显示设备上显示使用场景的列表用于用户选取。每个使用场景可指定参数集,该参数集包括例如将使用的处理器中的处理核心的目标数量、目标热设计功率(TDP)、目标工作负荷(例如,为TDP的百分比)和目标可靠性测量。用户可从使用场景的列表选择与他的或她的需要匹配的使用场景。在206处,系统引导指令可接收选择,并且在208处,还确定所选择的使用场景是否为默认使用场景,其中默认使用场景是由制造商测试的且指配有在处理器上标出的基本时钟频率值的那些场景中的一个。响应于确定所选择的使用场景为默认使用场景,在222处,引导过程可继续其它指令以设置除了处理器102之外的设备,而处理器102将以所指配的基本时钟频率运行,并且在引导过程完成之后,移交系统软件。
响应于确定所选择的使用场景不是默认使用场景,在210处,引导过程可继续执行指令以基于所选择的使用场景确定目标基本时钟频率。可在处理器的制造期间将使用场景的列表构造为附加使用场景,并且可确定对应的基本时钟频率。控制器(例如,执行PCU固件116的功率管理电路110)可确定用于所选择的使用场景的目标基本时钟频率值。在一个实施例中,这被实施为包括从使用场景到目标基本时钟频率值的映射的转换表。例如,表可包含激活核心计数的列表和对应的基本频率值。根据所选择的激活核心计数的数量,将使用对应的基本频率值。所确定的目标基本时钟频率值可与处理器102(因此,处理器102中的所有处理核心108)相关联。所确定的目标基本时钟频率值也可与处理器102中的少于所有处理核心108相关联。在212处,引导过程可继续执行指令以将基本时钟频率请求传输到功率管理电路110。基本时钟频率请求可包括目标基本时钟频率值,并且可选地包括与目标基本时钟频率值相关联的处理核心的数量。
在214处,功率管理电路110可从存储在BIOS芯片集106中的指令的执行接收基本时钟频率请求。在216处,功率管理电路110可首先将用于PCU固件116中的各种算法中的基本时钟频率值(基本时钟频率值为在初始时指配的基本时钟频率值)更新为在所接收的请求中的目标基本时钟频率值。PCU固件中的这些算法可基于处理设备的热生成模型,计算由在处理器102上运行的各种应用程序生成的热能,并且可调节处理器工作负荷,以确保所生成的热能不会违反与处理器102相关联的TDP。可通过将任务卸载到另一个处理设备或减少处理核心的基本时钟频率值调节工作负荷。功率管理电路110还可为处理器102和/或一个或多个处理核心108设置基本时钟频率值。在一个实施例中,在218处,功率管理电路110可在硬件(或固件)接口上暴露目标基本频率值。这样的硬件接口的示例可为CPUID指令,CPUID指令可暴露处理器的基本时钟频率值或每个处理核心内的模型特定寄存器(MSR),当读取CPUID指令时,CPUID指令返回新的基本时钟频率值。可通过使控制寄存器112和/或控制寄存器114(包括关联掩码126)对系统软件122可见,实现目标基本时钟频率的暴露。这可允许系统软件122查询目标基本频率值。
如果功率管理电路110接收包括用于处理器102(即,所有处理核心108)的目标基本时钟频率值的基本时钟频率请求,功率管理电路110可将目标基本时钟频率值存储在控制寄存器112中。处理器102(和所有处理核心108)可根据目标基本时钟频率值运行,其中目标基本时钟频率值可高于标出的值。如果功率管理电路110接收包括处理核心108集(例如,少于所有处理核心108)及其对应的目标基本时钟频率值的基本时钟频率请求,则功率管理电路110可将这些目标基本时钟频率值存储在对应的控制寄存器114中。功率管理电路110也可将与处理核心108集相关联的活动状态(例如,在关联掩码中的对应的位)设定为激活状态,允许处理核心108集以目标基本时钟频率值运行。这些目标基本时钟频率值可不同于(例如,高于)所标出的值。
在220处,功率管理电路110可可选地设定可基于基本时钟频率运行的其它硬件部件。例如,功率管理电路110可设置时间戳计数器(TSC)来以目标基本时钟频率值运行。响应于将所有硬件部件设定为以目标基本时钟频率运行,在222处,引导过程可继续其它指令以设置除了处理器102之外的设备。
在另一个实施例中,在操作期间的系统软件122也可呈现使用场景的选择,用于用户进行选取。基于用户选择,系统软件122可经由API将基本时钟频率请求传输到功率管理电路110,以请求处理器102和/或一个或多个处理核心108的基本时钟频率值的改变。功率管理电路110可类似地将处理器102和/或一个或多个处理核心108设置为以目标基本时钟频率运行。
在其它实施例中,系统软件122(或BIOS芯片集106)可将目标使用场景(而不是基本时钟频率请求)传输到处理器102的功率管理电路110。如图1所示,在处理器102上运行的系统软件122(例如,操作系统或VMM)可支持应用程序。例如,操作系统可管理在处理器102上运行的多个软件应用程序的执行。在虚拟化系统中,VMM可支持虚拟机(VM)124。每个VM124可运行一个或多个软件应用程序。系统软件122可监视与处理器102相关联的软件使用场景。软件使用场景可包括将使用的处理器中的多个处理核心、热设计功率、工作负荷(例如,为TDP的百分比)和可靠性测量。响应于确定与处理器102相关联的使用场景的改变,系统软件122可经由API告知PCU固件116该改变。例如,可由一个或多个VM的添加(或退出)引起使用场景的改变,因此增加(或减小)由VMM支持的激活VM的数量。也可由软件应用程序的安装(或拆卸)引起该改变。
在功率管理电路110上运行的PCU固件116可使用使用场景以基于使用场景确定目标基本时钟频率值,并且将处理器102和/或一个或多个处理核心108的基本时钟频率更新为目标基本时钟频率值。功率管理电路110可将目标基本时钟频率值宣告给系统软件122。例如,功率管理电路110可将基本时钟频率动态更新到目标值,并且生成中断以告知系统软件122该更新。
图2B示出根据本公开的实施例的用于基于使用场景改变基本时钟频率的过程230。如图2B所示,在232处,处理器102的使用场景可由于软件环境的改变而改变。在234处,响应于检测使用场景改变(例如,从第一使用场景改变到第二使用场景),系统软件122可确定处理器102的新的使用场景。新的使用场景可指定将使用的处理器中的处理核心的目标数量、目标热设计功率、目标工作负荷(例如,为TDP的百分比)和目标可靠性测量。在236处,在处理器102上运行的系统软件122可经由API将新的使用场景传输到功率管理电路110,请求处理器102和/或一个或多个处理核心108的基本时钟频率值的更新。
在238处,功率管理电路110可接收新的使用场景,并且计算目标基本时钟频率值,并且可选地计算以目标基本时钟频率值操作的处理核心的数量。类似于引导过程,在240,功率管理电路110可更新与PCU固件116相关联的参数,以反映目标基本时钟频率值。因此,PCU固件116可监视由处理器102基于目标基本时钟频率值生成的热能。在242处,功率管理电路110可将功率管理电路110存储在与那些目标处理核心118相关联的控制寄存器112和/或控制寄存器114(包括关联掩码126)中,因此使处理器102和/或一个或多个处理核心118准备好在新的使用场景下以目标基本时钟频率值运行。响应于使处理器102准备好以目标基本时钟频率值运行,功率管理电路110可经由硬件(或固件)接口通知系统软件122基本时钟频率值更新。在一个实施例中,功率管理电路110可通过触发可通过系统软件122捕获的中断事件发送通知。
在244处,在处理器102上运行的系统软件122可接收(例如,通过检测中断事件)基本时钟频率值更新的通知。通知可包括目标基本时钟频率值,处理器102(或处理核心108集)将以目标基本时钟频率值运行。以该方式,系统100可基于使用场景动态改变其基本时钟频率值。
重新配置处理器和/或其中的一个或多个处理核心的基本时钟频率的灵活性允许计算服务提供商(即,云服务提供商或企业级服务提供商)将可变级别的服务提供到客户,并且于是对服务索费。计算服务提供商和客户可商定服务级别协议(SLA),服务级别协议(SLA)是指定由计算服务提供商向客户作出的服务质量保障的合同。所提供的服务可包括提供一种或多种类型的软件对象,诸如例如虚拟机和操作系统(被称为容器)的虚拟化实例。软件对象中的每一个可以目标服务级别运行,可由以不同的基本时钟频率值运行的处理核心提供目标服务级别。目标服务级别也可包括其它参数,诸如例如将由软件消耗的可允许功率(作为与TDP的比率)、可允许软件对象指令混合、可允许可靠性/磨损率,以及使用处理核心的排他性。系统软件122可经由API查询处理器102,以确定处理器102是否可确保目标服务级别,并且将目标服务级别的参数存储在与系统软件122相关联的服务级别数据结构中。在一些实施方式中,目标服务级别越高(例如,处理核心的目标数量越高和/或基本时钟频率越高),与提供目标服务级别相关联的成本越高。
本公开的实施例允许计算服务提供商增加与一个或多个处理核心相关联的基本时钟频率值,以满足由客户指定的目标服务级别。在一个实施例中,系统软件122可确定存储在服务级别数据结构中的当前服务级别是否满足客户的请求,并且如果不满足,则确定满足客户的请求的条件。另外,响应于确定需要更高的基本时钟频率值来满足客户的请求,系统软件122可确定是否可增加处理器和/或一个或多个处理核心的基本时钟频率值以满足请求。以该方式,系统软件122可调节与处理器102相关联的基本时钟频率值,以满足由客户请求的目标服务级别。
图3示出根据本公开的实施例的用于调节基本时钟频率值以满足目标服务级别的过程300。如图3所示,在302处,客户(由SLA与云服务提供商绑定的)可经由用户界面请求软件对象集(例如,VM、容器和/或过程),并且指定目标服务级别,软件对象集在该目标服务级别下运行。目标服务级别可包括实现具体的任务所需的时间。因此,可通过利用以不同基本时钟频率值运行的处理核心的不同组合满足目标服务级别。在304处,在处理器102上执行的系统软件122可生成软件对象集(例如,VM或容器),并且将目标服务级别存储在服务级别数据结构中。在306处,在处理器102上执行的系统软件122可经由API确定哪些可用的处理核心108以其当前基本时钟频率值可支持存储在服务级数据结构中的目标服务级别。
在308处,在处理器102上执行的系统软件122还可确定是否存在足够可用的处理核心以支持目标服务级别。响应于确定存在足够的处理核心108来支持由客户请求的目标服务级别,在310处,在处理器102上执行的系统软件122可经由API通知功率管理电路110,并且引起功率管理电路110将这些支持的处理核心设置为以其当前的基本时钟频率值运行。在312处,在处理器102上执行的系统软件122还可执行指令以设置关联掩码,以限制提供到客户的服务是从在306和308处识别的这些可用和有能力的处理核心提供的。在314处,在处理器102上执行的系统软件122可在处理器102上部署软件对象,该软件对象可根据关联掩码在所识别的处理核心上运行。
响应于确定不存在足够的处理核心来支持由客户请求的目标服务级别,在316处,在处理器102上执行的系统软件122可指导功率管理电路110将可用处理核心的基本时钟频率增加到目标基本时钟频率值,因此满足由客户请求的目标服务级别。在318处,功率管理电路110可确定其是否已经耗尽硬件改变选项以满足目标服务级别。在一个实施例中,确定可基于增加基本时钟频率值的次数已经超过阈值。在另一个实施例中,确定可基于增加的基本时钟频率值达到上限。如果功率管理电路110确定硬件改变选项没有被耗尽,则功率管理电路110可通知系统软件122(例如,通过发送中断事件)确定处理器102是否具有足够的软件对象来实行处于目标服务级别的任务。如果功率管理单元110确定硬件改变选项被耗尽,则在320处,功率管理电路110可通知系统软件122(例如,通过发送中断事件),拒绝由客户请求的软件对象的部署,或者另选地使软件对象离线到其它系统。
图4是根据本公开的实施例的用于基于目标服务级别设定基本时钟频率值的方法400的框图。方法400可通过处理逻辑实行,处理逻辑可包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(诸如在处理设备、通用计算机系统或专用机器上运行的指令)、固件或其组合。在一个实施例中,可部分地由如图1所示的处理器102和功率管理电路110实行方法400。
为了简化解释,方法400被描绘和描述为一系列动作。然而,可以各种次序和/或同时发生根据本公开的动作,并且与本文没有呈现和描述的其它动作一起发生。还有,不是所有的示出的动作都可被实行以实施根据所公开的主题的方法400。此外,本领域技术人员将理解和了解,方法400可另选地经由状态图或事件表示为一系列相互关联的状态。
参考图4,在402处,处理器102可接收包括与软件对象相关联的目标服务级别的规范,其中目标服务级别包括与处理设备的多个处理核心相关联的第一基本时钟频率值。
在404处,处理器102可确定在处理器中是否存在可用于支持目标服务级别的足够的处理核心。
在406处,响应于确定处理设备不具有足够的处理核心,处理器102可将请求传输到处理设备的功率管理单元,以引起可用的处理核心以高于第一基本时钟频率值的第二基本时钟频率值运行。
图5A是示出根据本公开的一个实施例的用于处理器500的微架构的框图,该处理器500实施包括异构核心的处理设备。具体地,处理器500描绘了根据本公开的至少一个实施例的将包括在处理器中的有序架构核心和寄存器重命名逻辑、无序发布/执行逻辑。
处理器500包括耦接到执行引擎单元550的前端单元530,并且两者耦接到存储器单元570。处理器500可包括精简指令集计算(RISC)核心、复杂指令集计算(CISC)核心、超长指令字(VLIW)核心、或混合或另选核心类型。作为又一选项,处理器500可包括特殊用途核心,诸如例如网络或通信核心、压缩引擎、图形核心等。在一个实施例中,处理器500可为多核处理器,或者可为多处理器系统的一部分。
前端单元530包括耦接到指令高速缓存单元534的分支预测单元532,指令高速缓存单元534耦接到指令转译后备缓冲器(TLB)536,指令转译后备缓冲器(TLB)536耦接到指令提取单元538,指令提取单元538耦接到解码单元540。解码单元540(也称作解码器)可对指令解码,并且生成一个或多个微操作、微码入口点、微指令或其它指令或其它控制信号作为输出,其它指令或其它控制信号从原始指令解码、或以其它方式反映原始指令,或源自原始指令。可使用各种不同的机制实施解码器540。合适机制的示例包括但不限于查找表、硬件实施方式、可编程逻辑阵列(PLA)、微码只读存储器(ROM)等。指令高速缓存单元534还耦接到存储器单元570。解码单元540耦接到执行引擎单元550中的重命名/分配器单元552。
执行引擎单元550包括耦接到引退单元554和一个或多个调度器单元556集的重命名/分配器单元552。一个或多个调度器单元556表示任何数量的不同的调度器,包括保留站(RS)、中央指令窗口等。一个或多个调度器单元556耦接到一个或多个物理寄存器文件单元558。一个或多个物理寄存器文件单元558中的每个表示一个或多个物理寄存器文件,一个或多个物理寄存器文件中的不同的物理寄存器文件存储一种或多种不同数据类型(诸如标量整数、标量浮点、打包整数、打包浮点、向量整数、向量浮点等)、状态(例如,为将被执行的下一个指令的地址的指令指针)等。一个或多个物理寄存器文件单元558与引退单元554重叠,以示出可实施寄存器重命名和无序执行的各种方式(例如,使用一个或多个重排序缓冲器和一个或多个引退寄存器文件,使用一个或多个未来文件、一个或多个历史缓冲器和一个或多个引退寄存器文件;使用寄存器映射和寄存器池等)。
在一个实施方式中,处理器500可与相对于图1描述的处理器102相同。特别地,处理器500可包括功率管理电路110,功率管理电路110将为处理核心108设定基本时钟频率值,如图1所示。
一般地,架构寄存器从处理器外面或从程序员的角度为可见的。寄存器不限于任何已知特定类型的电路。各种不同类型的寄存器是合适的,只要各种不同类型的寄存器能够如本文所述的存储和提供数据。合适寄存器的示例包括但不限于专用物理寄存器、使用寄存器重命名的动态分配的物理寄存器、专用和动态分配物理寄存器的组合等。引退单元554和一个或多个物理寄存器文件单元558耦接到一个或多个执行集群560。一个或多个执行集群560包括一个或多个执行单元562集和一个或多个存储器访问单元564集。执行单元562可实行各种操作(例如,移位、加法、减法、乘法),并且对各种类型的数据(例如,标量浮点、打包整数、打包浮点、向量整数、向量浮点)进行操作。
虽然一些实施例可包括专用于具体功能或功能集的多个执行单元,但是其它实施例可仅包括一个执行单元或都实行所有功能的多个执行单元。一个或多个调度器单元556、一个或多个物理寄存器文件单元558和一个或多个执行集群560被示为可能复数的,因为某些实施例为某些类型的数据/操作创建单独的流水线(例如,标量整数流水线、标量浮点/打包整数/打包浮点/向量整数/向量浮点流水线、和/或存储器访问流水线(每个存储器访问流水线具有其自己的调度器单元、一个或多个物理寄存器文件单元、和/或执行集群)-并且在单独存储器访问流水线的情况下,实施某些实施例,其中仅该流水线的执行集群具有一个或多个存储器访问单元564)。也应当理解,在使用单独的流水线的情况下,这些流水线中的一个或多个可为无序发布/执行,并且其余的是有序的。
存储器访问单元564集耦接到存储器单元570,存储器单元570可包括数据预取器580、数据TLB单元572、数据高速缓存单元(DCU)574和第二级(L2)高速缓存单元576,仅举几个示例。在一些实施例中,DCU 574也被称作第一级数据高速缓存(L1)高速缓存。DCU 574可处置多个未完成的高速缓存未命中,并且继续为传入的存储和加载提供服务。DCU 574也支持维护高速缓存一致性。数据TLB单元572是用于通过映射虚拟和物理地址空间改善虚拟地址转译速度的高速缓存。在一个示例性实施例中,存储器访问单元564可包括加载单元、存储地址单元和存储数据单元,加载单元、存储地址单元和存储数据单元中的每个耦接到存储器单元570中的数据TLB单元572。L2高速缓存单元576可耦接到一个或多个其它级别的高速缓存,并且最终耦接到主存储器。
在一个实施例中,数据预取器580通过自动预测程序将消耗哪些数据,推测性地将数据加载/预取到DCU 574。预取可指在由处理器实际需求数据之前,将存储在存储器分层结构(例如,较低级别的高速缓存或存储器)的一个存储器位置中的数据传送到较高级别存储器位置,该较高级别存储器位置更靠近处理器(例如,赋予较低访问延迟)。更具体地,预取可指在处理器发布对返回的具体数据的需求之前,从较低级别高速缓存/存储器中的一个到数据高速缓存和/或预取缓冲器的早期数据检索。
处理器500可支持一个或多个指令集(例如,x86指令集(带有已经添加有更新版本的一些扩展);加利福尼亚州森尼维耳市的MIPS技术(MIPS Technologies of Sunnyvale,CA)的MIPS指令集;加利福尼亚州森尼维耳市的ARM控股公司(ARM Holdings ofSunnyvale,CA)的ARM指令集(带有可选的附加扩展诸如NEON))。
应当理解,核心可支持多线程(执行两个或更多个并行操作或线程集),并且可以多种方式如此做,多种方式包括时间切片多线程、同时多线程(其中单个物理核心为线程中的每个提供逻辑核心,物理核心为同时多线程的)或其组合(例如,时间切片的提取和解码以及此后的同时多线程,诸如在超线程技术中的)。
虽然在无序执行的上下文中描述了寄存器重命名,但是应当理解,可在有序架构中使用寄存器重命名。虽然处理器的所示的实施例也包括单独的指令和数据高速缓存单元和共享的L2高速缓存单元,但是另选实施例可具有用于指令和数量两者的单个内部高速缓存,诸如例如第一级(L1)内部高速缓存、或多个级别的内部高速缓存。在一些实施例中,系统可包括内部高速缓存和外部高速缓存的组合,外部高速缓存在核心和/或处理器的外部。另选地,所有高速缓存可在核心和/或处理器的外部。
图5B是示出根据本公开的一些实施例的由图5A的处理器500实施的有序流水线和寄存器重命名阶段、无序发布/执行流水线的框图。
图5B中的实线框示出有序流水线,而虚线框示出寄存器重命名、无序发布/执行流水线。在图5B中,作为流水线的处理器500包括提取阶段502、长度解码阶段504、解码阶段506、分配阶段508、重命名阶段510、调度(也称作分派或发布)阶段512、寄存器读取/存储器读取阶段514、执行阶段516、回写/存储器写入阶段518、异常处置阶段522和提交阶段524。在一些实施例中,阶段502-524的排序可不同于所示的,并且不限于图5B中所示的具体排序。
图6示出根据本公开的一个实施例的用于包括混合核心的处理器600的微架构的框图。在一些实施例中,根据一个实施例的指令可被实施为对具有字节、字、双字、四字等大小的数据元素以及数据类型(诸如单精度和双精度整数和浮点数据类型)进行操作。在一个实施例中,有序前端601是处理器600的一部分,处理器600的一部分提取将被执行的指令,并且使该指令为稍后用于处理器流水线而作准备。
前端601可包括若干单元。在一个实施例中,指令预取器626从存储器提取指令,并且将指令馈送到指令解码器628,指令解码器628继而对指令进行解码或解译。例如,在一个实施例中,解码器将接收的指令解码为机器可执行的被叫作“微指令”或“微操作”(也叫作micro op或uop)的一个或多个操作。在其它实施例中,解码器将指令解析为操作码和对应的数据和控制字段,根据一个实施例,操作码和对应的数据和控制字段由微架构使用以实行操作。在一个实施例中,跟踪高速缓存630获取解码的uop,并且将它们组装成uop队列634中的程序有序序列或跟踪,用于执行。当跟踪高速缓存630遇到复杂指令时,微码ROM 632提供完成操作所需的uop。
一些指令被转换为单个微操作,然而其它指令需要若干微操作以完成整个操作。在一个实施例中,如果需要多于四个微操作来完成指令,则解码器628访问微码ROM 632以执行指令。对于一个实施例,指令可被解码成少量的微操作,用于在指令解码器628处处理。在另一个实施例中,如果需要多个微操作以实现操作,指令可存储在微码ROM 632内。跟踪高速缓存630指入口点可编程逻辑阵列(PLA)以确定用于读取微码序列的正确微指令指针,以完成根据一个实施例的来自微码ROM 632的一个或多个指令。在微码ROM 632结束对指令的微操作的定序之后,机器的前端601恢复从跟踪高速缓存630提取微操作。
无序执行引擎603是指令为执行作准备的地方。无序执行逻辑具有多个缓冲器以当指令流沿流水线传下去且被调度用于执行时,使指令流平滑,且对指令流重排序以优化性能。分配器逻辑分配每个uop需要的机器缓冲器和资源以便执行。寄存器重命名逻辑将逻辑寄存器重命名为寄存器文件中的条目。分配器也为在以下指令调度器前面的两个uop队列中的一个uop队列中的每个uop分配条目(一个条目用于存储器操作,并且一个条目用于非存储器操作):存储器调度器、快速调度器602、慢速/一般浮点调度器604和简单浮点调度器606。uop调度器602、uop调度器604、uop调度器606基于其相关的输入寄存器操作数来源的准备状态以及uop需要完成其操作的执行资源的可用性,确定uop何时准备好执行。一个实施例的快速调度器602可在主时钟周期的每一半上调度,而其它调度器可每个主处理器时钟周期仅调度一次。调度器判定分派端口以调度uop用于执行。
寄存器文件608、寄存器文件610位于调度器602、调度器604、调度器606与执行块611中的执行单元612、执行单元614、执行单元616、执行单元618、执行单元620、执行单元622、执行单元624之间。存在单独的寄存器文件608、寄存器文件610分别用于整数和浮点操作。一个实施例的每个寄存器文件608、寄存器文件610也包括旁路网络,旁路网络可仅将尚未被写入到寄存器文件中的完成的结果旁路或转发到新的相关uop。整数寄存器文件608和浮点寄存器文件610也能够彼此传达数据。对于一个实施例,整数寄存器文件608被分成两个单独的寄存器文件,一个寄存器文件用于低阶32位数据,并且第二寄存器文件用于高阶32位数据。一个实施例的浮点寄存器文件610具有128位宽条目,因为浮点指令通常在宽度上具有从64位到128位的操作数。
执行块611包含执行单元612、执行单元614、执行单元616、执行单元618、执行单元620、执行单元622、执行单元624,在这些单元处,指令被实际执行。该部分包括寄存器文件608、寄存器文件610,寄存器文件608、寄存器文件610存储微指令需要执行的整数和浮点数据操作数值。一个实施例的处理器600包括多个执行单元:地址生成单元(AGU)612、AGU614、快速ALU 616、快速ALU 618、慢速ALU 620、浮点ALU 622、浮点移动单元624。对于一个实施例,浮点执行块622、浮点执行块624执行浮点、MMX、SIMD和SSE或其它操作。一个实施例的浮点ALU 622包括64位乘64位浮点除法器,以执行除法、平方根和余数微操作。对于本公开的实施例,可用浮点硬件处置涉及浮点值的指令。
在一个实施例中,ALU操作转到高速ALU执行单元616、高速ALU执行单元618。一个实施例的快速ALU 616、快速ALU 618可以半个时钟周期的有效延迟执行快速操作。对于一个实施例,因为慢速ALU 620包括用于长延迟类型的操作(诸如乘法、移位、标志逻辑和分支处理)的整数执行硬件,所以大多数复杂整数操作转到慢速的ALU 620。由AGU 612、AGU 614执行存储器加载/存储操作。对于一个实施例,在对64位数据操作数实行整数操作的上下文中描述整数ALU 616、整数ALU 618、整数ALU 620。在另选实施例中,ALU 616、ALU 618、ALU620可被实施为支持包括16、32、128、256等的多种数据位。类似地,浮点单元622、浮点单元624可被实施为支持具有各种宽度的位的一系列操作数。对于一个实施例,浮点单元622、浮点单元624可结合SIMD和多媒体指令对128位宽打包数据操作数进行操作。
在一个实施例中,uop调度器602、uop调度器604、uop调度器606在父负荷已经结束执行之前分派相关操作。当在处理器600中推测性地调度和执行uop时,处理器600也包括处置存储器未命中的逻辑。如果在数据高速缓存中数据加载未命中,则在流水线中可存在未完成的相关操作,该相关操作使调度器临时留有不正确数据。回放机制跟踪且重新执行使用不正确数据的指令。仅需要回放相关操作,并且独立操作被允许完成。处理器的一个实施例的调度器和回放机制也被设计为捕捉用于文本串比较操作的指令序列。
根据本公开的实施例,处理器600也包括用于实施存储器消歧的存储地址预测的逻辑。在一个实施例中,处理器600的执行块611可包括用于实施存储器消歧的存储地址预测的存储地址预测器(未示出)。
术语“寄存器”可指用作识别操作数的指令的一部分的机载处理器存储位置。换句话讲,寄存器可为从处理器外面(从程序员的角度)可使用的那些。然而,实施例的寄存器在含义上不应限制为特定类型的电路。相反,实施例的寄存器能够存储和提供数据,并且实行本文所述的功能。本文所述的寄存器可由处理器内的电路使用任何数量的不同技术实施,诸如专用物理寄存器、使用寄存器重命名的动态分配的物理寄存器、专用和动态分配的物理寄存器的组合等。在一个实施例中,整数寄存器存储32位整数数据。一个实施例的寄存器文件也包含用于打包数据的8个多媒体SIMD寄存器。
对于下面的讨论,寄存器被理解为被设计为保存打包数据的数据寄存器,诸如能够用来自加利福尼亚州圣克拉拉的英特尔公司(Intel Corporation of Santa Clara,California)的MMX技术的微处理器中的64位宽MMXTM寄存器(在一些实例中也称为‘mm’寄存器)。以整数和浮点形式两者可用的这些MMX寄存器可与附带SIMD和SSE指令的打包的数据元素一起操作。类似地,与SSE2、SSE3、SSE4或超越(一般被称为“SSEx”)技术有关的128位宽XMM寄存器也可被用于保存此类打包的数据操作数。在一个实施例中,在存储打包的数据和整数数据中,寄存器不需要在两种数据类型之间区分。在一个实施例中,整数和浮点被包含在相同寄存器文件或不同寄存器文件中。还有,在一个实施例中,浮点和整数数据可存储在不同寄存器或相同寄存器中。
现在参考图7,所示的是示出系统700的框图,在系统700中,可使用本公开的实施例。如图7所示,多处理器系统700是点到点互连系统,并且包括经由点到点互连750耦接的第一处理器770和第二处理器780。虽然仅示出带有两个处理器770、处理器780,但是应当理解,本公开的实施例的范围不受此限制。在其它实施例中,可在给定处理器中存在一个或多个附加处理器。在一个实施例中,多处理器系统700可实施如本文所述的混合核心。
处理器770和处理器780被示出分别包括集成存储器控制器单元772和集成存储器控制器单元782。处理器770也包括点到点(P-P)接口776和点到点(P-P)接口778作为其总线控制器单元的一部分;类似地,第二处理器780包括P-P接口786和P-P接口788。处理器770、处理器780可使用P-P接口电路778、P-P接口电路788经由点到点(P-P)接口750交换信息。如图7所示,IMC 772和IMC 782将处理器耦接到相应的存储器(也就是,存储器732和存储器734),相应的存储器(也就是,存储器732和存储器734)可为本地附接到相应处理器的主存储器的部分。
处理器770、处理器780可每个使用点到点接口电路776、点到点接口电路794、点到点接口电路786、点到点接口电路798经由个别P-P接口752、P-P接口754与芯片集790交换信息。芯片集790也可经由高性能图形接口739与高性能图形电路738交换信息。
共享高速缓存(未示出)可包括在处理器中或两个处理器外面,然而经由P-P互连与处理器连接,使得如果处理器被放置在低功率模式下,则任一个或两个处理器的本地高速缓存信息可被存储在共享高速缓存中。
芯片集790可经由接口796耦接到第一总线716。在一个实施例中,第一总线716可为外围部件互连(PCI)总线、或诸如PCI Express总线的总线或另一个第三代I/O互连总线,但是本公开的范围不受此限制。
如图7所示,各种I/O设备714可连同总线桥718耦接到第一总线716,总线桥718将第一总线716耦接到第二总线720。在一个实施例中,第二总线720可为低引脚数(LPC)总线。在一个实施例中,各种设备可耦接到第二总线720,包括例如键盘和/或鼠标722、通信设备727和存储单元728(诸如可包括指令/代码和数据730的磁盘驱动器或其它大容量存储设备)。另外,音频I/O 724可耦接到第二总线720。注意,其它架构是可能的。例如,代替图7的点到点架构,系统可实施多分支总线或其它此类架构。
现在参考图8,所示出的是系统800的框图,在系统800中,可操作本公开的一个实施例。系统800可包括一个或多个处理器810、处理器815,一个或多个处理器810、处理器815耦接到图形存储器控制器集线器(GMCH)820。在图8中用虚线概指附加处理器815的可选性质。在一个实施例中,处理器810、处理器815根据本公开的实施例实施混合核心。
每个处理器810、处理器815可为如上所述的电路、集成电路、处理器和/或硅集成电路的某个版本。然而,应当注意,集成图形逻辑和集成存储器控制单元不太可能存在于处理器810、处理器815中。图8示出GMCH 820可耦接到存储器840,存储器840可为例如动态随机访问存储器(DRAM)。对于至少一个实施例,DRAM可与非易失性高速缓存相关联。
GMCH 820可为芯片集,或芯片集的一部分。GMCH 820可与一个或多个处理器810、处理器815通信,并且控制一个或多个处理器810、处理器815与存储器840之间的交互。GMCH820也可充当一个或多个处理器810、处理器815与系统800的其它元件之间的加速总线接口。对于至少一个实施例,GMCH 820经由多分支总线(诸如前侧总线(FSB)895)与一个或多个处理器810、处理器815通信。
还有,GMCH 820耦接到显示器845(诸如平板显示器或触摸屏显示器)。GMCH 820可包括集成图形加速器。GMCH 820还耦接到输入/输出(I/O)控制器集线器(ICH)850,输入/输出(I/O)控制器集线器(ICH)850可用于将各种外围设备耦接到系统800。例如在图8的实施例中所示的是连同另一外围设备870耦接到ICH 850的外部图形设备860,外部图形设备860可为分立图形设备。
另选地,附加或不同处理器也可存在于系统800中。例如,一个或多个附加处理器815可包括与处理器810相同的一个或多个附加处理器、与处理器810异构或不对称的一个或多个附加处理器、加速器(诸如例如图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或任何其它处理器。依据包括架构、微架构、热、功率消耗特性等的指标度量谱,在一个或多个处理器810、处理器815之间可存在多种差异。这些差异可有效地将其本身表现为处理器810、处理器815之间的不对称性和异构性。对于至少一个实施例,各种处理器810、处理器815可驻留在相同的管芯封装中。
现在参考图9,所示的是系统900的框图,在系统900中,可操作本公开的实施例。图9示出处理器970、处理器980。在一个实施例中,处理器970、处理器980可实施如上所述的混合核心。处理器970、处理器980可分别包括集成存储器和I/O控制逻辑(“CL”)972和I/O控制逻辑(“CL”)982,并且分别经由点到点(P-P)接口978和点到点(P-P)接口988之间的点到点互连950彼此相互通信。处理器970、处理器980每个经由通过相应的P-P接口976到P-P接口994以及相应的P-P接口986到P-P接口998的点到点互连952和点到点互连954与芯片集990通信,如图所示。对于至少一个实施例,CL 972、CL 982可包括集成存储器控制器单元。CL972、CL 982可包括I/O控制逻辑。如所描绘的,耦接到CL 972、CL 982和I/O设备914的存储器932、存储器934也耦接到控制逻辑972、控制逻辑982。传统I/O设备915经由接口996耦接到芯片集990。
可以许多不同系统类型实施实施例。图10是根据本公开的实施例的SoC 1000的框图。虚线框是更先进的SoC上的可选特征。在一些实施方式中,如图10所示的SoC 1000包括如图1所示的SoC 100的特征。在图10中,一个或多个互连单元1012耦接到:应用处理器1020,应用处理器1020包括一个或多个核心集1002-N和一个或多个共享的高速缓存单元1006;系统代理单元1010;一个或多个总线控制器单元1016;一个或多个集成存储器控制器单元1014;媒体处理器1018集或一个或多个媒体处理器1018,媒体处理器1018集或一个或多个媒体处理器1018可包括集成图形逻辑1008、用于提供静止和/或视频相机功能的图像处理器1024、用于提供硬件音频加速的音频处理器1026和用于提供视频编码/解码加速的视频处理器1028;静态随机访问存储器(SRAM)单元1030;直接存储器访问(DAM)单元1032;以及用于耦接到一个或多个外部显示器的显示单元1040。在一个实施例中,存储器模块可包括在一个或多个集成存储器控制器单元1014中。在另一个实施例中,存储器模块可包括在可用于访问和/或控制存储器的SoC1000的一个或多个其它部件中。应用处理器1020可包括用于实施如本文的实施例中描述的混合核心的存储地址预测器。
存储器分层结构包括核心内的一个或多个级别的高速缓存、共享高速缓存单元1006集或一个或多个共享高速缓存单元1006,以及耦接到集成存储器控制器单元1014集的外部存储器(未示出)。共享高速缓存单元1006集可包括一个或多个中级高速缓存,诸如第二级(L2)、第三级(L3)、第四级(L4)或其它级别的高速缓存、末级高速缓存(LLC)和/或其组合。
在一些实施例中,核心1002A-N中的一个或多个能够进行多线程。系统代理1010包括协调和操作核心1002A-N的那些部件。系统代理单元1010可包括例如功率控制单元(PCU)和显示单元。PCU可为或包括调节核心1002A-N和集成图形逻辑1008的功率状态所需的逻辑和部件。显示单元用于驱动一个或多个外部连接的显示器。
依据架构和/或指令集,核心1002A-N可为同构的或异构的。例如,核心1002A-N中的一些可为有序的,而其它的为无序的。作为另一个示例,核心1002A-N中的两个或更多个可能够执行相同的指令集,而其它的可能够仅执行该指令集的子集或不同指令集。
应用处理器1020可为通用处理器,诸如可从加利福尼亚州圣克拉拉的因特尔公司(IntelTMCorporation,of Santa Clara,Calif)购得的CoreTMi3、i5、i7、2Duo和Quad、XeonTM、ItaniumTM、AtomTM或QuarkTM处理器。另选地,应用处理器1020可来自另一个公司,诸如ARM控股有限责任公司(ARM HoldingsTM)、MIPSTM等。应用处理器1020可为特殊用途处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、协同处理器、嵌入式处理器等。可在一个或多个芯片上实施应用处理器1020。应用处理器1020可为一个或多个基板的一部分,并且/或者可使用多种工艺技术(诸如例如,BiCMOS、CMOS或NMOS)中的任一种在一个或多个基板上实施。
图11是根据本公开的片上系统(SoC)设计的实施例的框图。作为具体例示性示例,SoC 1100被包括在用户装备(UE)中。在一个实施例中,UE指将由终端用户使用以通信的任何设备(诸如手持式电话、智能电话、平板计算机、超薄笔记本、带有宽带适配器的笔记本或任何其它类似的通信设备)。经常,UE连接到基站或节点,基站或节点在本质上潜在地对应于GSM网络中的移动站(MS)。
这里,SOC 1100包括2个核心-1106和1107。核心1106和核心1107可符合指令集架构,诸如基于架构核心TM的处理器、高级微设备公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计或其客户,以及其许可持有者或采用者。核心1106和核心1107耦接到高速缓存控制装置1108,高速缓存控制装置1108与总线接口单元1109和L2高速缓存1110相关联以与系统1100的其它部分通信。互连1111包括潜在地实施所描述的公开的一个或多个方面的片上互连,诸如IOSF、AMBA或上面讨论的其它互连。
互连1111向其它部件提供通信信道,其它部件诸如用于与SIM卡接口连接的订户身份模块(SIM)1130、用于保存用于由核心1106和核心1107执行以初始化和引导SoC 1100的引导代码的引导ROM 1135、用于与外部存储器(例如,DRAM 1160)接口连接的SDRAM控制器1140、用于与非易失性存储器(例如,闪存1165)接口连接的闪存控制器1145、用于与外围装置接口连接的外围控制装置1150(例如,串行外围接口)、用于显示和接收输入(例如,触摸启用输入)的视频编解码器1120和视频接口1125、用于实行图形相关计算的GPU 1115等。这些接口中的任一个可并入本文所述的本公开的方面。此外,系统1100示出用于通信的外围装置,诸如蓝牙模块1170、3G调制解调器1175、GPS 1180和Wi-Fi 1185。
图12示出为计算机系统1200的示例形式的机器的图解表示,在机器中可执行用于引起机器实行本文讨论的方法中的任一种或多种的指令集。在另选实施例中,机器可连接(例如,联网)到LAN、内联网、外联网或互联网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端设备的能力操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器可为个人计算机(PC)、平板型计算机、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络服务工具、服务器、网络路由器、交换机或网桥、或能够执行指定将由该机器采取的动作的指令集(顺序的或以其它方式)的任何机器。另外,虽然仅示出单个机器,但是术语“机器”也应当被视为包括个别或联合执行指令集(或多个指令集)以实行本文讨论的方法中的任一种或多种的机器的任何集合。
计算机系统1200包括经由总线1230彼此通信的处理设备1202、主存储器1204(例如,只读存储器(ROM)、闪存存储器、动态随机访问存储器(DRAM)(诸如同步DRAM(SDRAM)或DRAM(RDRAM)等))、静态存储器1206(例如,闪存存储器、静态随机访问存储器(SRAM)等)和数据存储设备1218。
处理设备1202表示一个或多个通用处理设备诸如微处理器、中央处理单元等。更特别地,处理设备可为复杂指令集计算(CISC)微处理器、精简指令集计算机(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集的组合的处理器。处理设备1202也可为一个或多个特殊用途处理设备诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。在一个实施例中,处理设备1202可包括一个或多个处理核心。处理设备1202被配置为执行处理逻辑1226用于实行本文讨论的操作和步骤。在一个实施例中,处理设备1202与相对于本文中用本公开的实施例描述的图1描述的处理器架构100相同。
计算机系统1200还可包括通信地耦接到网络1220的网络接口设备1208。计算机系统1200也可包括视频显示单元1210(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备1212(例如,键盘)、光标控制设备1214(例如,鼠标)、和信号生成设备1216(例如,扬声器)。还有,计算机系统1200可包括图形处理单元1222、视频处理单元1228和音频处理单元1232。
数据存储设备1218可包括机器可访问存储介质1224,在机器可访问存储介质1224上存储实施本文所述的功能的方法中的任一种或多种(诸如实施如上所述的用于存储器消歧的存储地址预测)的软件1226。软件1226也可在由计算机系统1200执行其期间完全或至少部分作为指令1226驻留在主存储器1204内和/或作为处理逻辑1226驻留在处理设备1202内;主存储器1204和处理设备1202也构成机器可访问存储介质。
机器可读存储介质1224也可用于存储指令1226,指令1226实施诸如根据本公开的实施例描述的用于混合核心的存储地址预测。虽然在示例实施例中机器可访问存储介质1128被示为单个介质,但是术语“机器可访问存储介质”应当被视为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的高速缓存和服务器)。术语“机器可访问存储介质”也应当被视为包括能够存储、编码或携带用于由机器执行且引起机器实行本公开的方法中的任一种或多种的指令集的任何介质。于是,术语“机器可访问存储介质”应当被视为包括但不限于固态存储器和光学和磁性介质。
以下示例与另外的实施例有关。示例1是一种处理器,包括:多个处理核心;控制寄存器,控制寄存器与多个处理核心的第一处理核心相关联,以存储第一基本时钟频率值,第一处理核心以第一基本时钟频率值运行;以及功率管理电路,功率管理电路用于:接收包括第二基本时钟频率值的基本时钟频率请求;将第二基本时钟频率值存储在控制寄存器中,以引起第一处理核心以第二基本时钟频率值运行;以及在与功率管理电路相关联的硬件接口上暴露第二基本时钟频率值。
在示例2中,示例1的主题还可规定第一基本时钟频率值和第二基本时钟频率值是时钟速度,处理设备将在时钟速度下在处理设备的热设计功率(TDP)限制内以预先确定的工作负荷水平实行。
在示例3中,示例1的主题还可规定第二基本时钟频率值不同于第一基本时钟频率值。
在示例4中,示例1的主题还可规定功率管理电路将从执行基本输入/输出系统(BIOS)指令的控制器或在处理设备上执行的系统软件应用程序中的至少一个接收基本时钟频率请求。
在示例5中,示例1和4中的任一项的主题还可规定执行BIOS指令的控制器将:在输出设备上显示多个使用场景,其中使用场景指定将被使用的处理核心的数量、处理核心将操作的目标基本时钟频率值、目标工作负荷或目标可靠性度量中的至少一个;响应于接收多个使用场景中的一个的选择,基于所选择的使用场景,确定第二基本时钟频率值;以及将包括第二基本时钟频率值的基本时钟频率请求传输到功率管理电路。
在示例6中,示例1和4中的任一项的主题还可规定执行BIOS指令的控制器,将把包括第二基本时钟频率值的基本时钟频率请求和与第一处理核心相关联的标识符传输到功率管理电路。
在示例7中,示例1和4中的任一项的主题还可规定系统软件应用程序是操作系统或虚拟机监视器(VMM)中的一个,并且其中处理设备将执行系统软件以:检测与处理设备相关联的第二使用场景;基于第二使用场景确定第二基本时钟频率值;以及将包括第二基本时钟频率值的基本时钟频率请求传输到功率管理电路。
在示例8中,示例1和4中的任一项的主题还可规定处理设备将执行系统软件应用程序,以经由硬件接口检索第二基本时钟频率值。
在示例9中,示例1的主题还可包括第二控制寄存器,第二控制寄存器用于存储包括表示第一处理核心的活动状态的位标志的关联掩码,并且其中响应于在控制寄存器中存储第二基本时钟频率值,功率管理电路将把位标志设定为激活状态。
在示例10中,示例1的主题还可规定响应于接收基本时钟频率请求,功率管理电路将根据第二基本时钟值运行功率控制固件。
在示例11中,示例1的主题还可规定控制寄存器与处理设备相关联以存储第一基本时钟频率值,多个处理核心将以第一基本时钟频率值运行。
在示例12中,示例1的主题还可包括第二控制寄存器,第二控制寄存器用于存储对存储在存储器中的数据结构的引用,其中数据结构将存储第一基本时钟频率值,多个处理核心将以第一基本时钟频率值运行。
示例13是一种系统,包括:基本输入/输出系统(BIOS)芯片集,基本输入/输出系统(BIOS)芯片集用于存储BIOS指令;处理设备,处理设备包括:多个处理核心;控制寄存器,控制寄存器与多个处理核心的第一处理核心相关联,以存储第一基本时钟频率值,第一处理核心将以第一基本时钟频率值运行;以及功率管理电路,功率管理电路用于计算以:接收处理设备的使用场景;基于使用场景确定第二基本时钟频率值;将第二基本时钟频率值存储在控制寄存器中,以引起第一处理核心以第二基本时钟频率值运行;以及在与功率管理电路相关联的硬件接口上暴露第二基本时钟频率值。
在示例14中,示例13的主题还可规定第二基本时钟频率值不同于第一基本时钟频率值。
在示例15中,示例13的主题还可规定功率管理电路将从执行基本输入/输出系统(BIOS)指令的控制器或在处理设备上执行的系统软件应用程序中的至少一个接收基本时钟频率请求。
在示例16中,示例13和15中任一项的主题还可规定系统软件应用程序是操作系统或虚拟机监视器(VMM)中的一个,并且其中处理设备将执行系统软件应用程序以经由硬件接口检索第二基本时钟频率值。
在示例17中,示例13的主题还可规定控制寄存器与处理设备相关联,以存储第一基本时钟频率值,多个处理核心将以第一基本时钟频率值运行。
在示例18中,示例13的主题还可规定处理设备还包括:第二控制寄存器,第二控制寄存器用于存储对存储在存储器中的数据结构的引用,其中数据结构将存储第一基本时钟频率值,多个处理核心将以第一基本时钟频率值运行。
示例19是一种方法,包括:由处理设备接收包括与软件对象相关联的目标服务级别的规范,其中目标服务级别包括与处理设备的多个处理核心相关联的第一基本时钟频率值;确定处理设备是否包括可用于支持目标服务级别的足够的处理核心;以及响应于确定处理设备不具有可用于支持目标服务级别的足够的处理核心,将请求传输到处理设备的功率管理电路,以引起可用的处理核心以第二基本时钟频率值运行,第二基本时钟频率值高于第一基本时钟频率值。
在示例20中,示例19的主题还可规定软件对象是虚拟机或容器对象中的一个。
示例21是一种仪器,包括:用于实行根据示例19和20中任一项所述的方法的装置。
示例22是一种具有存储在其上的程序代码的机器可读非暂时介质,程序代码当执行时,实行包括以下的操作:由处理设备接收包括与软件对象相关联的目标服务级别的规范,其中目标服务级别包括与处理设备的多个处理核心相关联的第一基本时钟频率值;确定处理设备是否包括可用于支持目标服务级别的足够的处理核心;以及响应于确定处理设备不具有可用于支持目标服务级别的足够的处理核心,将请求传输到处理设备的功率管理电路,以引起可用的处理核心以第二基本时钟频率值运行,第二基本时钟频率值高于第一基本时钟频率值。
在示例23中,示例22的主题还可规定软件对象是虚拟机或容器对象中的一个。
设计可经历从创建到模拟到制备的各种阶段。表示设计的数据可以多种方式表示设计。首先,如在模拟中可用的,硬件可使用硬件描述语言或另一种功能描述语言来表示。附加地,可在设计过程的一些阶段产生带有逻辑和/或晶体管栅极的电路级模型。还有,在某个阶段,大多数设计达到表示硬件模型中各种设备的物理布局的数据级别。在使用常规半导体制备技术的情况下,表示硬件模型的数据可为指定在用于产生集成电路的掩膜的不同掩膜层上存在或不存在各种特征的数据。在设计的任何表示中,数据可存储在任何形式的机器可读介质中。存储器或磁性或光学存储装置诸如碟可为机器可读介质,以存储经由调制或以其它方式生成的光波或电波传输的信息以传输此类信息。当传输指示或携带代码或设计的电载波时,在实行电信号的拷贝、缓冲或重传的程度上,作出新的拷贝。因此,通信提供商或网络提供商可将制品至少临时存储在有形机器可读介质上,制品诸如被编码成载波、体现本公开的实施例的技术的信息。
如本文使用的模块指硬件、软件和/或固件的任何组合。作为示例,模块包括与非暂时介质相关联以存储适于由微控制器执行的代码的硬件,诸如微控制器。因而,在一个实施例中,对模块的引用指硬件,该硬件具体配置为辨识和/或执行将保存在非暂时介质上的代码。还有,在另一个实施例中,模块的使用指包括代码的非暂时介质,该代码具体地适于由微控制器执行以实行预先确定的操作。并且如可被推断的,在又一实施例中,术语模块(在该示例中)可指微控制器和非暂时介质的组合。经常被示为单独的模块边界常常变化,并且潜在地重叠。例如,第一模块和第二模块可共享硬件、软件、固件或其组合,同时潜在地保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括硬件,诸如晶体管、寄存器或其它硬件,诸如可编程逻辑设备。
在一个实施例中,短语‘被配置为’的使用指布置、装配、制造、许诺销售、引进和/或设计仪器、硬件、逻辑或元件以实行指派或确定的任务。在该示例中,如果没有操作的仪器或其元件被设计、耦接和/或互连以实行所述指派的任务,则没有操作的仪器或其元件仍‘被配置为’实行指派的任务。作为纯粹地例示性示例,逻辑门可在操作期间提供0或1。但是‘被配置为’将启用信号提供到时钟的逻辑门不包括可提供1或0的每个潜在的逻辑门。代替地,逻辑门为以在操作期间1或0输出将启用时钟的某个方式耦接的逻辑门。再次注意,术语‘被配置为’的使用不要求操作,但是代替地集中于仪器、硬件和/或元件的潜存状态,其中在潜存状态下,仪器、硬件、和/或元件被设计为当仪器、硬件和/或元件操作时,实行特定任务。
还有,在一个实施例中,短语‘以’、‘能够/有能力’和/或‘可操作为’的使用指被设计成使得能够以指定的方式使用仪器、逻辑、硬件和/或元件的一些仪器、逻辑、硬件和/或元件。注意,如上面的,在一个实施例中,‘以’、‘能够/有能力’和/或‘可操作为’的使用指仪器、逻辑、硬件和/或元件的潜存状态,其中仪器、逻辑、硬件和/或元件不操作,但是被设计成使得能够以指定方式使用仪器。
如本文使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。经常,逻辑电平、逻辑值(logic values)或逻辑值(logical values)的使用也被称为简单表示二进制逻辑状态的1和0。例如,1指高逻辑电平,并且0指低逻辑电平。在一个实施例中,诸如晶体管或闪存储存格的存储储存格可能够保存单个逻辑值或多个逻辑值。然而,已经使用计算机系统中的其它值表示。例如,十进制数十也可表示为二进制值910和十六进制字母A。因而,值包括能够保存在计算机系统中的任何信息表示。
而且,可由值或值的部分表示状态。作为示例,第一值(诸如逻辑1)可表示默认或初始状态,而第二值(诸如逻辑0)可表示非默认状态。此外,在一个实施例中,术语重置和设定分别指默认和更新的值或状态。例如,默认值潜在地包括高逻辑值,即,重置,而更新的值潜在地包括低逻辑值,即,设定。注意,值的任何组合可用于表示任何数量的状态。
可经由存储在机器可访问、机器可读、计算机可访问或计算机可读介质上由处理元件可执行的指令或代码实施上面阐述的方法、硬件、软件、固件或代码的实施例。非暂时机器可访问/可读介质包括任何机制,该任何机制以由机器(诸如计算机或电子系统)可读的形式提供(即,存储和/或传输)信息。例如,非暂时机器可访问介质包括随机访问存储器(RAM),诸如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁性或光学存储介质;闪存存储器设备;蓄电设备;光学存储设备;声学存储设备;用于保存从暂时(传播的)信号(例如,载波、红外信号、数字信号)接收的信息的其它形式的存储设备;等,这些将与可从其接收信息的非暂时介质区分开。
用于对逻辑进行编程以实行本公开的实施例的指令可存储在系统中的存储器中,存储器诸如DRAM、高速缓存、闪存存储器或其它存储装置。还有,指令可经由网络或以其它计算机可读介质的方式分布。因此,机器可读介质可包括用于以由机器(例如,计算机)可读的形式存储或传输信息的任何机制,但是不限于软盘、光盘、光碟、只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机访问存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存存储器、或用于经由电传播信号、光传播信号、声音传播信号或其它形式的传播信号(例如,载波、红外信号、数字信号等)经过互联网传输信息的有形机器可读存储装置。于是,计算机可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的有形机器可读介质。
贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,贯穿本说明书在各个地方中出现的短语“在一个实施例中”或“在实施例中”不一定都指相同的实施例。还有,特定特征、结构或特性可在一个或多个实施例中以任何合适的方式组合。
在前述说明书中,已经参考具体示例性实施例给出详细描述。然而,将明显的是,可对其作出各种修改和改变,而不脱离如在所附权利要求书中阐述的本公开的广义的精神和范围。于是,说明书和附图被认为例示性意义而不是限制性意义。还有,实施例和其它示例性语言的前述使用不一定指相同实施例或相同示例,而可指不同的和有差异的实施例,以及潜在地相同的实施例。

Claims (23)

1.一种处理设备,包括:
多个处理核心;
控制寄存器,所述控制寄存器与所述多个处理核心的第一处理核心相关联,以存储第一基本时钟频率值,所述第一处理核心以所述第一基本时钟频率值运行;以及
功率管理电路,所述功率管理电路用于:
接收包括第二基本时钟频率值的基本时钟频率请求;
将所述第二基本时钟频率值存储在所述控制寄存器中,以引起所述第一处理核心以所述第二基本时钟频率值运行;以及
在与所述功率管理电路相关联的硬件接口上使得所述第二基本时钟频率值可用。
2.根据权利要求1所述的处理设备,其中所述第一基本时钟频率值和所述第二基本时钟频率值是时钟速度,所述处理设备将在所述时钟速度下在所述处理设备的热设计功率TDP限制内以预先确定的工作负荷水平实行。
3.根据权利要求1所述的处理设备,其中所述第二基本时钟频率值不同于所述第一基本时钟频率值。
4.根据权利要求1所述的处理设备,其中所述功率管理电路将从执行基本输入/输出系统BIOS指令的控制器或在所述处理设备上执行的系统软件应用程序中的至少一个接收所述基本时钟频率请求。
5.根据权利要求4所述的处理设备,其中执行所述BIOS指令的所述控制器将:
在输出设备上显示多个使用场景,其中使用场景指定将被使用的处理核心的数量、处理核心将操作的目标基本时钟频率值、目标工作负荷或目标可靠性度量中的至少一个;
响应于接收所述多个使用场景中的一个的选择,基于所选择的使用场景,确定所述第二基本时钟频率值;以及
将包括所述第二基本时钟频率值的所述基本时钟频率请求传输到所述功率管理电路。
6.根据权利要求4中所述的处理设备,其中执行所述BIOS指令的所述控制器将:
把包括所述第二基本时钟频率值的所述基本时钟频率请求和与所述第一处理核心相关联的标识符传输到所述功率管理电路。
7.根据权利要求1和4中任一项所述的处理设备,其中所述处理设备执行系统软件应用程序,所述系统软件应用程序是操作系统或虚拟机监视器VMM中的一个,并且其中所述处理设备执行所述系统软件应用程序以:
检测与所述处理设备相关联的第二使用场景;
基于所述第二使用场景确定所述第二基本时钟频率值;以及
将包括所述第二基本时钟频率值的所述基本时钟频率请求传输到所述功率管理电路。
8.根据权利要求1和4中任一项所述的处理设备,其中所述处理设备执行系统软件应用程序,以经由所述硬件接口检索所述第二基本时钟频率值。
9.根据权利要求1所述的处理设备,还包括:
第二控制寄存器,所述第二控制寄存器用于存储包括表示所述第一处理核心的活动状态的位标志的关联掩码,并且其中响应于在所述控制寄存器中存储所述第二基本时钟频率值,所述功率管理电路将把所述位标志设定为激活状态。
10.根据权利要求1所述的处理设备,其中响应于接收所述基本时钟频率请求,所述功率管理电路将根据所述第二基本时钟频率值运行功率控制固件。
11.根据权利要求1所述的处理设备,其中所述控制寄存器与所述处理设备相关联以存储所述第一基本时钟频率值,所述多个处理核心将以所述第一基本时钟频率值运行。
12.根据权利要求1所述的处理设备,还包括:
第二控制寄存器,所述第二控制寄存器用于存储对存储在存储器中的数据结构的引用,其中所述数据结构将存储所述第一基本时钟频率值,所述多个处理核心将以所述第一基本时钟频率值运行。
13.一种处理系统,包括:
基本输入/输出系统BIOS芯片集,所述基本输入/输出系统BIOS芯片集用于存储BIOS指令;
处理设备,所述处理设备包括:
多个处理核心;
控制寄存器,所述控制寄存器与所述多个处理核心的第一处理核心相关联,以存储第一基本时钟频率值,所述第一处理核心将以所述第一基本时钟频率值运行;以及
功率管理电路,所述功率管理电路用于:
接收所述处理设备的使用场景;
基于所述使用场景确定第二基本时钟频率值;
将所述第二基本时钟频率值存储在所述控制寄存器中,以引起所述第一处理核心以所述第二基本时钟频率值运行;以及
在与所述功率管理电路相关联的硬件接口上使得所述第二基本时钟频率值可用。
14.根据权利要求13所述的系统,其中所述第二基本时钟频率值不同于所述第一基本时钟频率值。
15.根据权利要求13所述的系统,其中所述功率管理电路将从执行基本输入/输出系统BIOS指令的控制器或在所述处理设备上执行的系统软件应用程序中的至少一个接收所述使用场景。
16.根据权利要求15中所述的系统,其中所述系统软件应用程序是操作系统或虚拟机监视器VMM中的一个,并且其中所述处理设备将执行所述系统软件应用程序以经由所述硬件接口检索所述第二基本时钟频率值。
17.根据权利要求13所述的系统,其中所述控制寄存器与所述处理设备相关联,以存储所述第一基本时钟频率值,所述多个处理核心将以所述第一基本时钟频率值运行。
18.根据权利要求13所述的系统,其中所述处理设备还包括:
第二控制寄存器,所述第二控制寄存器用于存储对存储在存储器中的数据结构的引用,其中所述数据结构将存储所述第一基本时钟频率值,所述多个处理核心将以所述第一基本时钟频率值运行。
19.一种处理方法,包括:
由处理设备接收包括与软件对象相关联的目标服务级别的规范,其中所述目标服务级别包括与所述处理设备的多个处理核心相关联的第一基本时钟频率值;
确定所述处理设备是否包括可用于支持所述目标服务级别的足够的处理核心;以及
响应于确定所述处理设备不具有可用于支持所述目标服务级别的足够的处理核心,将请求传输到所述处理设备的功率管理电路,以引起所述可用的处理核心以第二基本时钟频率值运行,所述第二基本时钟频率值高于所述第一基本时钟频率值。
20.根据权利要求19所述的方法,其中所述软件对象是虚拟机或容器对象中的一个。
21.一种处理仪器,包括:用于实行根据权利要求19和20中任一项所述的方法的装置。
22.一种具有存储在其上的程序代码的机器可读非暂时介质,当执行所述程序代码时,实行包括以下的操作:
由处理设备接收包括与软件对象相关联的目标服务级别的规范,其中所述目标服务级别包括与所述处理设备的多个处理核心相关联的第一基本时钟频率值;
确定所述处理设备是否包括可用于支持所述目标服务级别的足够的处理核心;以及
响应于确定所述处理设备不具有可用于支持所述目标服务级别的足够的处理核心,将请求传输到所述处理设备的功率管理电路,以引起所述可用的处理核心以第二基本时钟频率值运行,所述第二基本时钟频率值高于所述第一基本时钟频率值。
23.根据权利要求22所述的机器可读非暂时介质,其中所述软件对象是虚拟机或容器对象中的一个。
CN201780084195.4A 2017-02-24 2017-02-24 基于使用参数配置处理器的基本时钟频率 Active CN110199242B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111591730.XA CN114237382B (zh) 2017-02-24 2017-02-24 基于使用参数配置处理器的基本时钟频率

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/019484 WO2018156153A1 (en) 2017-02-24 2017-02-24 Configuration of base clock frequency of processor based on usage parameters

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202111591730.XA Division CN114237382B (zh) 2017-02-24 2017-02-24 基于使用参数配置处理器的基本时钟频率

Publications (2)

Publication Number Publication Date
CN110199242A CN110199242A (zh) 2019-09-03
CN110199242B true CN110199242B (zh) 2023-08-29

Family

ID=63253957

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780084195.4A Active CN110199242B (zh) 2017-02-24 2017-02-24 基于使用参数配置处理器的基本时钟频率
CN202111591730.XA Active CN114237382B (zh) 2017-02-24 2017-02-24 基于使用参数配置处理器的基本时钟频率

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202111591730.XA Active CN114237382B (zh) 2017-02-24 2017-02-24 基于使用参数配置处理器的基本时钟频率

Country Status (4)

Country Link
US (3) US11169560B2 (zh)
CN (2) CN110199242B (zh)
DE (1) DE112017006568T5 (zh)
WO (1) WO2018156153A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110199242B (zh) * 2017-02-24 2023-08-29 英特尔公司 基于使用参数配置处理器的基本时钟频率
US10509457B2 (en) * 2017-04-06 2019-12-17 International Business Machines Corporation Adaptive frequency optimization in processors
US10417054B2 (en) 2017-06-04 2019-09-17 Apple Inc. Scheduler for AMP architecture with closed loop performance controller
US11144086B1 (en) * 2018-01-22 2021-10-12 Marvell Israel (M.I.S.L) Ltd. Systems and methods for dynamic configuration of a device clock
US10976801B2 (en) * 2018-09-20 2021-04-13 Intel Corporation System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor
CN111857236B (zh) * 2020-06-30 2022-03-22 浪潮电子信息产业股份有限公司 一种fpga系统时钟频率设定系统
US11636210B2 (en) * 2020-07-01 2023-04-25 Meta Platforms Technologies, Llc Artificial reality system with multi-stage boot process
US11493975B2 (en) * 2020-09-24 2022-11-08 Intel Corporation System, apparatus and method for providing power monitoring isolation in a processor
KR20220145004A (ko) * 2021-04-21 2022-10-28 삼성전자주식회사 클록 관리 회로 및 이를 포함하는 멀티-코어 시스템
US11733729B2 (en) * 2021-09-27 2023-08-22 International Business Machines Corporation Centralized imposing of multi-cloud clock speeds
US11768531B2 (en) * 2021-12-30 2023-09-26 Western Digital Technologies, Inc. Power management for storage controllers
CN116027879B (zh) * 2022-05-16 2023-10-20 荣耀终端有限公司 确定参数的方法、电子设备和计算机可读存储介质
CN114985239B (zh) * 2022-05-30 2024-03-26 青岛海信医疗设备股份有限公司 超声抗干扰方法及超声设备
CN116755783B (zh) * 2023-06-19 2024-04-09 合芯科技有限公司 一种多核芯片启动方法、控制器及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754837B1 (en) * 2000-07-17 2004-06-22 Advanced Micro Devices, Inc. Programmable stabilization interval for internal stop grant state during which core logic is supplied with clocks and power to minimize stabilization delay
CN104205077A (zh) * 2011-12-14 2014-12-10 英特尔公司 包括可配置最大处理器电流的针对能效和节能的方法、装置和系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7100061B2 (en) * 2000-01-18 2006-08-29 Transmeta Corporation Adaptive power control
US6886093B2 (en) * 2001-05-04 2005-04-26 Ip-First, Llc Speculative hybrid branch direction predictor
US7739532B2 (en) * 2004-06-07 2010-06-15 Intel Corporation Method, apparatus and system for enhanced CPU frequency governers
US7512828B2 (en) * 2006-02-24 2009-03-31 Agere Systems Inc. Processor with flexible clock configuration
US8055822B2 (en) * 2007-08-21 2011-11-08 International Business Machines Corporation Multicore processor having storage for core-specific operational data
CN100476694C (zh) * 2007-09-28 2009-04-08 中国科学院计算技术研究所 一种多核处理器及其变频装置和核间通信方法
US8489904B2 (en) * 2010-03-25 2013-07-16 International Business Machines Corporation Allocating computing system power levels responsive to service level agreements
US9261949B2 (en) * 2010-10-29 2016-02-16 Advanced Micro Devices, Inc. Method for adaptive performance optimization of the soc
US8793512B2 (en) * 2010-10-29 2014-07-29 Advanced Micro Devices, Inc. Method and apparatus for thermal control of processing nodes
US8984313B2 (en) * 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9348401B2 (en) * 2013-06-25 2016-05-24 Intel Corporation Mapping a performance request to an operating frequency in a processor
JP2016534481A (ja) * 2013-09-18 2016-11-04 タクチュアル ラブズ シーオー. 状態変化および将来のユーザ入力の予想に関する情報を使用するユーザ入力に対する応答を提供するためのシステムおよび方法
US20150149800A1 (en) * 2013-11-27 2015-05-28 Alexander Gendler Performing an operating frequency change using a dynamic clock control technique
JP6339240B2 (ja) * 2014-06-24 2018-06-06 インテル コーポレイション 仮想マシン電力管理
US10146726B2 (en) * 2014-07-21 2018-12-04 Asustek Computer Inc. Motherboard and electronic device using the same
US9690340B2 (en) 2014-09-25 2017-06-27 Intel Corporation System and method for adaptive thermal and performance management in electronic devices
US10025641B2 (en) * 2015-09-15 2018-07-17 Qualcomm Incorporated Workload differentiation for processor frequency scaling
US10073718B2 (en) * 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
US10579125B2 (en) * 2016-02-27 2020-03-03 Intel Corporation Processors, methods, and systems to adjust maximum clock frequencies based on instruction type
CN110199242B (zh) * 2017-02-24 2023-08-29 英特尔公司 基于使用参数配置处理器的基本时钟频率

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754837B1 (en) * 2000-07-17 2004-06-22 Advanced Micro Devices, Inc. Programmable stabilization interval for internal stop grant state during which core logic is supplied with clocks and power to minimize stabilization delay
CN104205077A (zh) * 2011-12-14 2014-12-10 英特尔公司 包括可配置最大处理器电流的针对能效和节能的方法、装置和系统

Also Published As

Publication number Publication date
CN114237382B (zh) 2024-03-22
US11169560B2 (en) 2021-11-09
DE112017006568T5 (de) 2019-10-10
WO2018156153A1 (en) 2018-08-30
CN110199242A (zh) 2019-09-03
US20230315143A1 (en) 2023-10-05
CN114237382A (zh) 2022-03-25
US20190384348A1 (en) 2019-12-19
US11703906B2 (en) 2023-07-18
US20220129031A1 (en) 2022-04-28

Similar Documents

Publication Publication Date Title
CN110199242B (zh) 基于使用参数配置处理器的基本时钟频率
US10114768B2 (en) Enhance memory access permission based on per-page current privilege level
US20150277949A1 (en) Securing shared interconnect for virtual machine
US20160299849A1 (en) Cache allocation with code and data prioritization
US9836399B2 (en) Mechanism to avoid hot-L1/cold-L2 events in an inclusive L2 cache using L1 presence bits for victim selection bias
US11093414B2 (en) Measuring per-node bandwidth within non-uniform memory access (NUMA) systems
US9977743B2 (en) Managing enclave memory pages
US11003484B2 (en) Inter-processor interrupt virtualization with pass-through of local interrupt controller
US20170357599A1 (en) Enhancing Cache Performance by Utilizing Scrubbed State Indicators Associated With Cache Entries
US9632907B2 (en) Tracking deferred data packets in a debug trace architecture
US20190179766A1 (en) Translation table entry prefetching in dynamic binary translation based processor
US10019262B2 (en) Vector store/load instructions for array of structures
US10585798B2 (en) Tracking cache line consumption
US9829957B2 (en) Performance scalability prediction
US9946566B2 (en) Method and apparatus for light-weight virtualization contexts
US20190171396A1 (en) Application driven hardware cache management
US20230070995A1 (en) Modular accelerator function unit (afu) design, discovery, and reuse
US9823984B2 (en) Remapping of memory in memory control architectures
US9363136B2 (en) Mechanism to monitor quality of service
US11080088B2 (en) Posted interrupt processing in virtual machine monitor

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant