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

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

Info

Publication number
CN114237382A
CN114237382A CN202111591730.XA CN202111591730A CN114237382A CN 114237382 A CN114237382 A CN 114237382A CN 202111591730 A CN202111591730 A CN 202111591730A CN 114237382 A CN114237382 A CN 114237382A
Authority
CN
China
Prior art keywords
processor
clock frequency
base clock
frequency value
core
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.)
Granted
Application number
CN202111591730.XA
Other languages
English (en)
Other versions
CN114237382B (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 CN114237382A publication Critical patent/CN114237382A/zh
Application granted granted Critical
Publication of CN114237382B publication Critical patent/CN114237382B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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
    • 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

基于使用参数配置处理器的基本时钟频率
本申请是申请日为2017年2月24日,进入中国国家阶段日为2019 年2月22日,申请号为201780084195.4,发明创造名称为“基于使用参 数配置处理器的基本时钟频率”的发明专利申请的分案申请。
技术领域
本公开涉及处理器,并且更具体地,涉及基于使用参数配置处理 器的基本频率。
背景技术
计算设备可在一个或多个处理器(诸如中央处理单元(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。每个VM 124可运行一个或多个软件应用程序。 系统软件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以其当前基本时钟频率值可支持 存储在服务级数据结构中的目标服务级别。
在306处,在处理器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)高速缓存。DCU574 可处置多个未完成的高速缓存未命中,并且继续为传入的存储和加载 提供服务。DCU574也支持维护高速缓存一致性。数据TLB单元572 是用于通过映射虚拟和物理地址空间改善虚拟地址转译速度的高速缓 存。在一个示例性实施例中,存储器访问单元564可包括加载单元、 存储地址单元和存储数据单元,加载单元、存储地址单元和存储数据 单元中的每个耦接到存储器单元570中的数据TLB单元572。L2高速 缓存单元576可耦接到一个或多个其它级别的高速缓存,并且最终耦 接到主存储器。
在一个实施例中,数据预取器580通过自动预测程序将消耗哪些数 据,推测性地将数据加载/预取到DCU 574。预取可指在由处理器实际 需求数据之前,将存储在存储器分层结构(例如,较低级别的高速缓 存或存储器)的一个存储器位置中的数据传送到较高级别存储器位置, 该较高级别存储器位置更靠近处理器(例如,赋予较低访问延迟)。 更具体地,预取可指在处理器发布对返回的具体数据的需求之前,从 较低级别高速缓存/存储器中的一个到数据高速缓存和/或预取缓冲器 的早期数据检索。
处理器500可支持一个或多个指令集(例如,x86指令集(带有已 经添加有更新版本的一些扩展);加利福尼亚州森尼维耳市的MIPS 技术(MIPS Technologies ofSunnyvale,CA)的MIPS指令集;加利福 尼亚州森尼维耳市的ARM控股公司(ARM Holdingsof Sunnyvale,CA) 的ARM指令集(带有可选的附加扩展诸如NEON))。
应当理解,核心可支持多线程(执行两个或更多个并行操作或线程 集),并且可以多种方式如此做,多种方式包括时间切片多线程、同 时多线程(其中单个物理核心为线程中的每个提供逻辑核心,物理核 心为同时多线程的)或其组合(例如,时间切片的提取和解码以及此 后的同时多线程,诸如在
Figure BDA0003429406820000161
超线程技术中的)。
虽然在无序执行的上下文中描述了寄存器重命名,但是应当理解, 可在有序架构中使用寄存器重命名。虽然处理器的所示的实施例也包 括单独的指令和数据高速缓存单元和共享的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、AGU 614、快速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、AGU614执行存储器加载/存储操作。对于一个实 施例,在对64位数据操作数实行整数操作的上下文中描述整数ALU 616、整数ALU 618、整数ALU 620。在另选实施例中,ALU 616、ALU 618、ALU 620可被实施为支持包括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之间的交互。GMCH 820也可充当一个或多 个处理器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 可包括集成存储器控制器单元。CL 972、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中。在另一 个实施例中,存储器模块可包括在可用于访问和/或控制存储器的SoC 1000的一个或多个其它部件中。应用处理器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可符合指令集架构,诸如基于
Figure BDA0003429406820000241
架构核心TM的处理器、高 级微设备公司(AMD)处理器、基于MIPS的处理器、基于ARM的 处理器设计或其客户,以及其许可持有者或采用者。核心1106和核心1107耦接到高速缓存控制装置1108,高速缓存控制装置1108与总线 接口单元1109和L2高速缓存1110相关联以与系统1100的其它部分 通信。互连1110包括潜在地实施所描述的公开的一个或多个方面的片 上互连,诸如IOSF、AMBA或上面讨论的其它互连。
互连1110向其它部件提供通信信道,其它部件诸如用于与SIM卡 接口连接的订户身份模块(SIM)1130、用于保存用于由核心1106和 核心1107执行以初始化和引导SoC 1100的的引导代码的引导ROM 1135、用于与外部存储器(例如,DRAM 1160)接口连接的SDRAM 控制器1140、用于与非易失性存储器(例如,闪存1165)接口连接的 闪存控制器1145、用于与外围装置接口连接的外围控制装置1150(例 如,串行外围接口)、用于显示和接收输入(例如,触摸启用输入) 的视频编解码器1120和视频接口1125、用于实行图形相关计算的GPU1115等。这些接口中的任一个可并入本文所述的本公开的方面。此外, 系统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 (15)

1.一种处理器(102),包括:
多个处理器核心(108);
所述处理器核心(108)中的每一个与相应的控制寄存器(114)相关联,该控制寄存器存储所述多个处理器核心(108)中的相应处理核器核心(108)的每核心基本时钟频率值,
所述每核心基本时钟频率值初始包括由处理器(102)的制造商确定的默认每核心基本时钟频率值;
电源管理电路(110),用于执行电源控制单元(PCU)固件(116),以至少部分地基于每个核心的基本时钟频率值来所述控制多个处理核心(108)的时钟频率,
所述电源管理电路(110)用于:
接收不同于相应的默认每核心基本时钟频率值的目标每核心基本时钟频率值;
将目标每核心基本时钟频率值存储在相应的控制寄存器(114)中,以使多个处理器核心(108)中的相应处理器核心(108)根据该目标每核心基本时钟频率值运行;
向软件(122)暴露目标每核心基本时钟频率值。
2.根据权利要求1所述的处理器(102),其中默认每心核基本时钟频率值和目标每核心基本时钟频率值为处理器时钟速度,所述处理器(102)在所述时钟速度下在所述处理器(102)的热设计功率(TDP)限制内以预先确定的工作负荷水平实行。
3.根据权利要求1所述的处理器(102),其中所述目标每核心基本时钟频率值不同于默认每核心基本时钟频率值。
4.根据权利要求1所述的处理器(102),其中电源管理电路(110)在硬件接口上暴露目标每核心基本时钟频率值。
5.根据权利要求4所述的处理器(102),其中电源管理电路从执行基本输入/输出系统(BIOS)指令的系统中的至少一个控制器或从子处理器(102)上执行的系统软件应用程序中接收目标每核心基时钟频率值。
6.根据权利要求1所述的处理器(102),其中所述相应的控制寄存器(114)包模型具体寄存器(MSR)、和与多个处理器核心(108)中的每个核心(108)相关联的MSR。
7.根据权利要求6所述的处理器(102),其中处理器(102)执行系统软件应用程序以通过硬件接口检索所述目标每核心基本时钟频率值。
8.根据权利要求1所述的处理器(102),其中电源管理电路(110)用于调整处理器(102)上的一个或多个工作负载,以确保产生的热能不会违反与处理器(102)相关联的热设计功率(TDP)。
9.根据权利要求8所述的处理器(102),其中电源管理电路(110)通过将任务卸载到另一个处理器(102)或降低目标每核心基本时钟频率值来调整一个或多个工作负载。
10.根据权利要求1所述的处理器(102),其中所述多个处理核(108)中的至少一个以第一个每核心基本时钟频率运行,所述多个处理核(108)中的至少另一个以第二个每核基本时钟频率运行。
11.根据权利要求1所述的处理器(102),还包括用于存储位映射的寄存器,其中所述位映射的每一位存储相应处理核心的活动状态。
12.根据权利要求1所述的处理器(102),其中电源管理电路(110)用于关闭多个处理核心(108)中的一个或多个非活动处理核心(108),并将备用电源转移到多个处理核(108)中的活动处理核心(108)。
13.根据权利要求1所述的处理器(102),其中,所述接收目标每核心基本时钟频率值并向软件暴露目标每核基本时钟频率值包括:
执行由所述处理器(102)暴露的应用程序编程接口(API)的命令。
14.一种数据预取器,所述数据预取装置与处理器和数据高速缓存相耦合,其中,
预测单元,用于通过自动预测程序预测将要消耗的数据,并且推测性地将该数据加载或预取到数据高速缓存中,以及
数据检索单元,用于对预取到所述数据高速缓存中的数据进行早期检索以供处理器处理。
15.根据权利要求14所述的数据预取器,其中所述数据预取器配置为:
在处理器实际需求数据前,将所述将要消耗的数据从较低级别高速缓存或存储器传送到更靠近处理器的较高级别的高速缓存或存储器。
CN202111591730.XA 2017-02-24 2017-02-24 基于使用参数配置处理器的基本时钟频率 Active CN114237382B (zh)

Priority Applications (1)

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

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202111591730.XA CN114237382B (zh) 2017-02-24 2017-02-24 基于使用参数配置处理器的基本时钟频率
CN201780084195.4A CN110199242B (zh) 2017-02-24 2017-02-24 基于使用参数配置处理器的基本时钟频率
PCT/US2017/019484 WO2018156153A1 (en) 2017-02-24 2017-02-24 Configuration of base clock frequency of processor based on usage parameters

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
CN114237382A true CN114237382A (zh) 2022-03-25
CN114237382B CN114237382B (zh) 2024-03-22

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 Before (1)

Application Number Title Priority Date Filing Date
CN201780084195.4A Active CN110199242B (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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114985239A (zh) * 2022-05-30 2022-09-02 青岛海信医疗设备股份有限公司 超声抗干扰方法及超声设备

Families Citing this family (13)

* 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 荣耀终端有限公司 确定参数的方法、电子设备和计算机可读存储介质
CN116755783B (zh) * 2023-06-19 2024-04-09 合芯科技有限公司 一种多核芯片启动方法、控制器及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1397878A (zh) * 2001-05-04 2003-02-19 智慧第一公司 假想混合分支方向预测装置
US20100011233A1 (en) * 2000-01-18 2010-01-14 Sameer Halepete Adaptive power control
US20100235672A1 (en) * 2007-09-28 2010-09-16 Institute Of Computing Technology Of The Chinese Academy Of Sciences Multi-core processor, its frequency conversion device and a method of data communication between the cores
CN105556438A (zh) * 2013-09-18 2016-05-04 触觉实验室股份有限公司 用于使用关于状态变化的信息来提供对用户输入的响应并预测未来用户输入的系统和方法

Family Cites Families (18)

* 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
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
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
US9052901B2 (en) 2011-12-14 2015-06-09 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including configurable maximum processor current
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
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100011233A1 (en) * 2000-01-18 2010-01-14 Sameer Halepete Adaptive power control
CN1397878A (zh) * 2001-05-04 2003-02-19 智慧第一公司 假想混合分支方向预测装置
US20100235672A1 (en) * 2007-09-28 2010-09-16 Institute Of Computing Technology Of The Chinese Academy Of Sciences Multi-core processor, its frequency conversion device and a method of data communication between the cores
CN105556438A (zh) * 2013-09-18 2016-05-04 触觉实验室股份有限公司 用于使用关于状态变化的信息来提供对用户输入的响应并预测未来用户输入的系统和方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114985239A (zh) * 2022-05-30 2022-09-02 青岛海信医疗设备股份有限公司 超声抗干扰方法及超声设备
CN114985239B (zh) * 2022-05-30 2024-03-26 青岛海信医疗设备股份有限公司 超声抗干扰方法及超声设备

Also Published As

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

Similar Documents

Publication Publication Date Title
US11703906B2 (en) Configuration of base clock frequency of processor based on usage parameters
EP3504629B1 (en) Enhance memory access permission based on per-page current privilege level
US10216516B2 (en) Fused adjacent memory stores
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
CN106716949B (zh) 用于管理高速缓存的方法和装置
US9977743B2 (en) Managing enclave memory pages
US11003484B2 (en) Inter-processor interrupt virtualization with pass-through of local interrupt controller
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
US9921839B1 (en) Coordinated thread criticality-aware memory scheduling
US10719355B2 (en) Criticality based port scheduling
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
US10146538B2 (en) Suspendable load address tracking inside transactions

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