CN102110025B - 避免无效核跳跃和提供硬件辅助的低功率状态选择的方法和设备 - Google Patents

避免无效核跳跃和提供硬件辅助的低功率状态选择的方法和设备 Download PDF

Info

Publication number
CN102110025B
CN102110025B CN201010625174.9A CN201010625174A CN102110025B CN 102110025 B CN102110025 B CN 102110025B CN 201010625174 A CN201010625174 A CN 201010625174A CN 102110025 B CN102110025 B CN 102110025B
Authority
CN
China
Prior art keywords
core
prediction
idle
jump
interval
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
CN201010625174.9A
Other languages
English (en)
Other versions
CN102110025A (zh
Inventor
J·J·宋
J·H·克拉福德
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 CN201610191485.6A priority Critical patent/CN105912303B/zh
Publication of CN102110025A publication Critical patent/CN102110025A/zh
Application granted granted Critical
Publication of CN102110025B publication Critical patent/CN102110025B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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
    • 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/30094Condition code generation, e.g. Carry, Zero flag
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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

Abstract

本文描述用于避免无效核跳跃以及提供硬件辅助的低功率状态选择的设备和方法。预测核的未来闲置-活动。如果预测到有效核跳跃场景的活动模式的驻留期足够大,那么确定核有效并且得到允许。但是,如果预测到有效活动模式驻留的时间不够长,即预测到无效模式驻留的时间较长,那么拒绝核跳跃请求。因此,设计者可实现避免核跳跃的策略,该策略针对执行核跳跃的代价(例如,核跳跃的时间代价)权衡核跳跃的潜在增益(例如,减轻核跳跃状况)。单独地,可在硬件中预测与核的硬件功率状态相关联的闲置持续时间。此外,确定闲置持续时间预测的精度。一旦接收到使核进入某个功率状态的请求,功率管理单元便可选择硬件预测的功率状态(如果精度足够高的话)或利用请求的功率状态(如果硬件预测的精度不够高的话)。

Description

避免无效核跳跃和提供硬件辅助的低功率状态选择的方法和设备
技术领域
本发明涉及处理器执行领域,具体来说,涉及处理器操作的优化。
背景技术
半导体处理和逻辑设计的发展允许在集成电路装置上存在越来越多的逻辑。因此,计算机系统配置已经从系统中的单个或多个集成电路演变成在各个集成电路上存在多个处理器管芯、多个核、多个硬件线程和多个逻辑处理器。处理器或集成电路通常包括单个物理处理器管芯,其中该处理器管芯可包括任何数量的核、硬件线程或逻辑处理器。
集成电路上越来越多数量的处理元件(即,核、硬件线程和逻辑处理器)使得能够并行完成更多任务。但是,作为增加的处理功率的必然结果,热密度和泄漏功率的问题也随之扩大。因此,具有多个核的处理器可以采用称为核跳跃(即,至少一个核的体系结构状态/上下文移到另一个核)的热耗散技术。但是,将整个上下文从一个核移到另一个核所固有的是成本,即,浪费的执行周期、花费在移动上的能量以及冷高速缓存。然而,当前还没有关于在基于热密度的初始核跳跃决定之外决定何时核跳跃的明智决定。因此,可能会在不需要核跳跃(即,触发的热密度状况可自我减轻)或者核跳跃不可行(即,跳跃会导致相同或更差的热状况)时启动核跳跃。结果,存在这样一些情形,其中由于热状况而触发核跳跃,但有利的却是避免核跳跃。
随着处理器的发热和功率问题不断升级,低功率状态的智能使用变得更加重要。目前,现今的特权级软件(即,操作系统)在请求转变到低功率状态时并不非常准确。因此,之前的软件可能会请求核从过深(即,消耗较低的功率,但与核在未来成为闲置的时间量相比,没有足够的苏醒时间)或过浅(即,当闲置时间量大于苏醒时间时,消耗较多的功率)进入到无效的特定低功率状态。
发明内容
本发明涉及一种设备,包括:
多个处理器核;
预测机构,用于预测在未来间隔所述多个处理器核的未来活动;以及
核跳跃机构,用于基于在所述未来间隔所述多个处理器核的所述未来活动确定核跳跃是否有效,并响应于基于所述多个处理器核的所述未来活动确定所述核跳跃不有效而禁止核跳跃事件。
本发明涉及一种设备,包括处理器,所述处理器包括:
多个核;
耦合到所述多个核的核跳跃逻辑,用于触发核跳跃请求;
耦合到所述多个核的预测逻辑,用于预测在下一个间隔所述多个核的活动;以及
耦合到所述核跳跃逻辑和所述预测逻辑的核跳跃管理器逻辑,所述核跳跃管理器逻辑响应于所述核跳跃管理器确定在所述下一个间隔所述多个核的所述活动指示核跳跃是无效的而拒绝所述核跳跃请求。
本发明涉及一种方法,包括:
预测在未来间隔期间处理器上的多个核的闲置-活动表示的预测的驻留期;
接收核跳跃请求;
确定在所述未来间隔期间所述多个核的所述闲置-活动表示的所述预测的驻留期是否大于驻留期阈值;
响应于所述核跳跃请求,响应于确定在所述未来间隔期间所述闲置-活动表示的所述预测的驻留期大于所述驻留期阈值而执行核跳跃;以及
响应于所述核跳跃请求,响应于确定在所述未来间隔期间所述闲置-活动表示的所述预测的驻留期不大于所述驻留期阈值而不执行所述核跳跃。
本发明涉及一种包括程序代码的计算机可读介质,所述程序代码在由机器执行时将执行如上所述的方法。
本发明涉及一种设备,包括用于执行如上所述的方法的部件。
本发明涉及一种设备,包括:
多个核;以及
耦合到所述多个核的功率机构,所述功率机构用于接收使所述多个核中的核进入请求的功率状态的请求,预测预测的功率状态,并基于所述功率机构的预测精度为所述核选择所述预测的功率状态。
本发明涉及一种设备,包括:
多个核;
耦合到所述多个核中的核的预测逻辑,所述预测逻辑用于至少基于在一定间隔内所述多个核中的核的闲置持续时间预测预测的低功率状态;
预测精度逻辑,用于确定所述预测逻辑的预测精度;以及
耦合到所述预测逻辑的功率控制逻辑,用于接收来自软件实体的请求的低功率状态以及来自所述预测逻辑的预测的低功率状态,其中所述功率控制逻辑响应于所述预测精度大于阈值精度而为所述核选择所述预测的低功率状态,并响应于所述预测精度不大于所述阈值精度而为所述核选择所述请求的低功率状态。
本发明涉及一种方法,包括:
在处理器的预测硬件中确定核的预测的功率状态;
确定所述预测硬件的预测精度;
从软件实体接收为核请求的功率状态;
响应于所述预测精度小于阈值精度而为所述核选择所述请求的功率状态;以及
响应于所述预测精度不小于所述阈值精度而为所述核选择所述预测的功率状态。
本发明涉及一种包括程序代码的计算机可读介质,所述程序代码在由机器执行时将执行如上所述的方法。
本发明涉及一种设备,包括用于执行如上所述的方法的部件。
附图说明
举例说明本发明,而不是要本发明受限于附图中的各图。
图1示出包括多个处理元件的处理器的一个实施例。
图2示出包括多个处理元件的处理器的另一个实施例。
图3示出用于避免无效核跳跃(inefficientcorehopping)的机构(mechanism)的一个实施例。
图4示出用于预测未来活动的图3中的预测机构的一个实施例。
图5示出利用闲置-活动模式的驻留期来预测未来活动的一个实施例。
图6示出预取用于避免无效核跳跃的方法的流程图的一个实施例。
图7示出提供硬件辅助的低功率状态选择的一个实施例。
图8示出提供硬件辅助的低功率状态选择的另一个实施例。
图9a示出用于提供硬件辅助的低功率状态选择的方法的流程图的实施例。
图9b示出用于图8中的预测闲置状态机的状态机的实施例。
具体实施方式
在以下详细描述中,阐述了众多具体细节,例如用于闲置-活动预测的特定硬件结构/机构的实例、闲置持续时间测量、精度确定、特定处理器配置、特定核跳跃状况、特定低功率状态、特定处理器单元/逻辑、处理元件的特定实例等,以便充分理解本发明。但是,本领域技术人员将明白,无需采用这些具体细节也可实现本发明。在其它情况下,没有详细描述公知的组件或方法,例如特定和备选的多核和多线程化处理器体系结构、用于所示模块/块的特定逻辑电路以及微处理器的特定操作细节,以免不必要地使本发明晦涩难懂。
本文描述的方法和设备是为了避免无效核跳跃并提供处理器中的硬件辅助的低功率状态选择。具体来说,这些优化主要是基于处理器中的核的预测的未来活动或不活动而参考跳跃和功率状态选择进行论述的。实际上,下文将参考图2简短地描述用于处理器核之间的通信的说明性环组织,以便说明潜在的处理器上核配置的实施例。然而,本文描述的设备和方法不限于此,它们可通过对于集成电路的单独部分利用上下文跳跃或功率状态选择而在任何集成电路中实现。
多核处理器的实施例
参考图1,示出包括多个核的实施例。在一个实施例中,处理器100包括在核之间移动上下文的核跳跃硬件(未示出)。在另一个实施例中,处理器100包括用于将核单独地置于低功率状态的功率硬件(未示出)。处理器100包括任何处理器,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器或用于执行代码的其它装置。如图所示,处理器100包括多个处理元件。
在一个实施例中,处理元件是指能够保持处理器的状态(例如,执行状态或体系结构状态)的线程单元、线程槽、处理单元、上下文、逻辑处理器、硬件线程、核和/或任何其它元件。换句话说,在一个实施例中,处理元件是指能够与诸如软件线程、操作系统、应用或其它代码的代码独立相关联的任何硬件。物理处理器通常是指潜在地包括任何数量的其它处理元件(例如,核或硬件线程)的集成电路。
核通常是指设置在集成电路上的能够维持独立体系结构状态的逻辑,其中每个独立维持的体系结构状态与至少一些专用执行资源相关联。与核相比,硬件线程通常是指设置在集成电路上的能够维持独立体系结构状态的任何逻辑,其中这些独立维持的体系结构状态共享对执行资源的访问。可见,当某些资源共享、而其它资源专用于某个体系结构状态时,硬件线程与核的命名之间的线重叠。然而,操作系统通常将核与硬件线程视为是单独的逻辑处理器,其中操作系统能够在每个逻辑处理器上单独地调度操作。
如图1所示,物理处理器100包括两个核,即核101和核102。这里,可以利用核跳跃来减轻处理器的一部分上的热状况。但是,从核101跳到102可潜在地在核102上造成在核101上存在的相同的热状况,同时带来核跳跃的成本。因此,在一个实施例中,处理器100包括可利用核跳跃的任何数量的核。此外,处理器100中所包含的功率管理硬件能够使各个单元和/或核处于低功率状态以节省功率。这里,在一个实施例中,处理器100提供硬件以帮助为处理器100的处理元件以及潜在地为下文中将更详细地示出和论述的各个模块/单元进行低功率状态选择。
尽管处理器100可包括不对称核,即具有不同配置、功能单元和/或逻辑的核,但图中示出对称核。因此,下文将不再详细论述与核101等同示出的核102,以免赘述。另外,核101包括两个硬件线程101a和101b,而核102包括两个硬件线程102a和102b。因此,诸如操作系统的软件实体潜在地将处理器100视为是4个独立的处理器,即能够同时执行4个软件线程的4个逻辑处理器或处理元件。在一个实施例中,上下文的跳跃是指核跳跃;但是,在其它实施例中,可独立于核跳跃或与核跳跃结合执行线程跳跃。
这里,第一线程与体系结构状态寄存器101a相关联,第二线程与体系结构状态寄存器101b相关联,第三线程与体系结构状态寄存器102a相关联,而第四线程与体系结构状态寄存器102b相关联。如图所示,体系结构状态寄存器101a复制在体系结构状态寄存器101b中,因此能够为逻辑处理器101a和逻辑处理器101b存储各个体系结构状态/上下文。也可为线程101a和101b复制其它较小资源,例如指令指针和再命名分配器逻辑130中的再命名逻辑。一些资源可通过分区来共享,例如重排序/引退单元135中的重排序缓冲器、ILTB120、加载/存储缓冲器和队列。其它资源可潜在地完全共享,例如通用内部寄存器、页表基址寄存器、低级数据高速缓存和数据-TLB115、执行单元140、以及无序单元135的部分。
处理器100通常包括可完全共享、通过分区共享、或供处理元件专用/专用于处理元件的其它资源。在图1中,示出具有处理器的说明性逻辑单元/资源的纯粹示范性的处理器的实施例。注意,处理器可包括或省略这些功能单元中的任何一个,并且可包括没有描绘的任何其它已知的功能单元、逻辑或固件。如图所示,处理器100包括用于预测将要执行/采用的分支的分支目标缓冲器120以及用于存储指令的地址翻译条目的指令-翻译缓冲器(I-TLB)120。
处理器100还包括耦合到提取单元120以解码所提取的元素的解码模块125。在一个实施例中,处理器100与定义/指定可在处理器100上执行的指令的指令集体系结构(ISA)相关联。这里,由ISA辨识的机器代码指令通常包括称为操作码的指令的一部分,其引用/指定将要执行的指令或操作。
在一个实例中,分配器和再命名器块130包括分配器以用于预约资源,例如用于存储指令处理结果的寄存器文件。然而,线程101a和101b潜在地能够无序执行,其中分配器和再命名器块130还预约其它资源,例如用于跟踪指令结果的重排序缓冲器。单元130还可包括寄存器再命名器以用于将程序/指令引用寄存器再命名为位于处理器100内部的其它寄存器。重排序/引退单元135包括用于支持无序执行以及稍后对无序执行的指令的有序引退的组件,例如上文提到的重排序缓冲器、加载缓冲器和存储缓冲器。
在一个实施例中,调度器和执行单元块140包括用于在执行单元上调度指令/操作的调度器单元。例如,在具有可用的浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示范性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其它已知的执行单元。
较低级数据高速缓存和数据翻译缓冲器(D-TLB)150耦合到执行单元140。该数据高速缓存用于存储最近使用/操作的元素,例如数据操作数,它们潜在地保持为存储器一致性状态。D-TLB用于存储最近的虚拟/线性-物理地址翻译。作为一个特定实例,处理器可包括用于将物理存储器分解为多个虚拟页面的页表结构。
如图所描绘,核101和102共享对较高级或更远离的高速缓存110的访问,高速缓存110用于缓存最近提取的元素。注意,较高级或更远离(further-out)是指进一步远离(increasingorgettingfurtherwayfrom)执行单元的高速缓存级。在一个实施例中,较高级的高速缓存110是最后一级数据高速缓存(即,处理器100上的存储器层级中的最后一个高速缓存),例如第二或第三级数据高速缓存。但是,较高级的高速缓存110并不限于此,它可包括指令高速缓存或与其相关联。踪迹高速缓存(它是指令高速缓存的一种)可以改为耦合在解码器125之后以便存储最近解码的踪迹。
注意,在所描绘的配置中,处理器100还包括用于与位于处理器100外部的装置通信的总线接口模块105,这些装置可以是例如系统存储器175、芯片组、北桥或其它集成电路。存储器175可专用于处理器100或与系统中的其它装置共享。存储器175的常见类型实例包括动态随机存取存储器(DRAM)、静态RAM(SRAM)、非易失性存储器(NV存储器)和其它已知的存储装置。
图1示出具有不同模块、单元和/或逻辑的表示的示范性处理器的抽象逻辑视图。但是,注意,利用本文描述的方法和设备的处理器无需包括所示的单元。并且,处理器可省略所示的一些或所有单元。为了说明不同配置的可能性,论述现在转到图2,图2描绘包括具有用于互连多个核的环配置的处理器上存储器接口模块(即,核外模块)的处理器200的实施例。处理器200示为包括:物理分布式高速缓存;环互连;以及核、高速缓存和存储器控制器组件。但是,本描绘纯粹是说明性的,实现所描述的方法和设备的处理器可包括用于与外部装置通信的任何处理元件、任何高速缓存类型或级和/或存储器、前端总线或其它接口。
在一个实施例中,缓存代理221-224均用于管理物理分布式高速缓存的片段。作为一个实例,诸如组件221的每个高速缓存组件用于为并置核管理高速缓存的片段(slice),其中并置核是指为了管理高速缓存的分布式片段而与高速缓存代理相关联的核。如图所描绘,高速缓存代理221-224称为高速缓存片段接口逻辑(CSIL);它们又可称为高速缓存组件、代理或与高速缓存或其片段接口的其它已知的逻辑、单元或模块。注意,高速缓存可以是任何高速缓存级;然而,对该示范性实施例,论述集中在由核201-204共享的最后一级高速缓存(LLC)上。
与高速缓存代理在环互连250上处理业务并与高速缓存片段接口非常相似,核代理/组件211/214也处理业务并分别与核201-204接口。如图所描绘,核代理221-224称为处理器核接口逻辑(PCIL);它们又可称为核组件、代理或与处理元件接口的其它已知的逻辑、单元或模块。另外,环250示为包括与诸如存储器控制器(IMC)231和图形处理器(未示出)的其它模块接口的存储器控制器接口逻辑(MCIL)230和图形集线器(GFX)240。但是,环250可包括或省略上述模块中的任何一个,并且可包括未示出的其它已知的处理器模块。另外,可通过诸如点对点互连或多跳互连的其它已知的互连来连接类似的模块。
避免无效核跳跃的实施例
在一个实施例中,诸如图1、图2中示出的处理器或未示出的其它处理器的处理器将避免无效核跳跃。转到图3,示出能够避免这种无效核跳跃的处理器的实施例。在该图示中,核跳跃是指上下文或体系结构状态从诸如核302的核移到诸如核303的另一个核。核跳跃触发机构310基于任何已知的核跳跃状况触发核跳跃或核跳跃事件。例如,能够基于热密度状况触发核跳跃。换句话说,当处理器的一部分、或更具体来说是处理器的核过热时,那么在一些情况下,核跳跃能够减轻热密度状况,即将工作负荷并且相应地将热量分散到处理器的其它物理位置。
作为一个特定的说明性实例,假设核301和302并置在处理器上,并且以满容量操作,从而导致在处理器的一部分上生成过多热量,即造成热密度状况。基于指示这种状况的任何已知的设备或方法,核跳跃触发逻辑310生成/触发核跳跃请求。响应该请求,核跳跃机构/管理器可执行核跳跃。在这种情况下,核跳跃机构320可启动将核301的体系结构状态迁移到诸如核304的另一个核,其中核301的体系结构状态可包括核301上的一个或多个或潜在地所有硬件线程上下文。因此,处理器的工作负荷分散在处理器上,由此也潜在地散布热量。
但是,如上所述,只依据当前的热量信息执行核跳跃而没有关于未来活动预测的一些额外信息会潜在地导致允许无效核跳跃。作为一个实例,在以上情形中,在下一个间隔期间,核301打算闲置,这会导致热密度状况的自我减轻;闲置不会生成太多热量。然而,在没有预测的情况下,对于核跳跃会带来功率和浪费的执行时间方面的成本,这本来可以通过预测未来闲置来避免。在另一个实例中,所示4个核中的3个核301、302和304具有造成引起核跳跃的热密度状况的大小相当的工作负荷。但是,繁忙核的上下文跳到核303不会减轻热密度状况,因为核303靠近仍然繁忙的其它核。
因此,在一个实施例中,预测机构315用于预测在未来间隔多个处理器核的未来活动。本文所指的间隔可指时间量、执行周期数或任何其它时间度量。例如,间隔可具有几个周期到数千微秒的范围。类似地,可利用任何已知的用于预测处理器、核、处理元件或其它执行引擎的活动的方法来预测在未来/下一个间隔期间处理器核301-304的活动。这种预测的广义的说明性实例包括:利用在前一间隔期间多个处理器核的过去活动作为在未来间隔多个处理器核的未来活动;从软件实体接收活动提示并基于活动提示预测未来活动;执行未来活动的算术或统计预测;利用诸如卡尔曼滤波算法的预测算法来预测未来活动;以及利用过去的闲置、低功率状态驻留期(residency)来预测未来活动。
参考图4,示出预测未来活动和闲置状态驻留期的实施例。在一个实施例中,包含在预测机构315中的预测器435可利用卡尔曼滤波算法。基于来自核301-30N的激活(有时称为工作或C0)状态和低功率(有时称为非工作或C2-CN)状态驻留期的数据,计算预测。注意,在本论述中,特别参考特定的低功率状态,例如C-状态,以便进一步论述。但是,利用闲置和/或激活驻留期可与任何形式的功率状态、执行状态、全局状态或其它形式的活动或非活动指示符相关联。
C-状态最一般是指由高级配置和电源接口(ACPI)定义的功率状态。根据ACPI的处理器或核功率状态的类型实例包括:C0是操作/激活状态类型;C1通常称为暂停(Halt),它是其中处理器不执行指令但可基本上瞬间地返回到执行状态的状态类型;C2通常称为停止时钟(Stop-Clock),它是其中处理器保持所有软件可见的状态但可能要花费较长时间苏醒的状态类型;以及C3通常称为睡眠(Sleep),它是其中处理器无需使它的高速缓存保持一致、而是维持其它状态的状态类型。一些处理器对C3具有变型,即深睡(C4)、更深睡(C5)、最深睡(C6),它们的不同之处在于唤醒处理器的时间和功率节省的量不同。注意,本文描述的C状态类型中的一些是针对示范性处理器的,例如可从CA,SantaClara的Intel公司获得的高级Architecture32(IA-32)处理器;但实施例同样可与其它处理器一起使用。这里,处理器的C状态可能与ACPI规范不直接相符;但是,对于本论述,这两个激活/失活状态集合同样适用。换句话说,处理器可将任何数量的它们自己的定制C状态映射到上文描述的ACPI类型的C状态。
继续以上论述,一旦预测器435基于来自活动监视器430的数据利用卡尔曼滤波算法计算了预测,核跳跃管理器440便能够基于预测决定对于是否要避免核跳跃做出决定。因此,活动监视器430可监视数据以确定激活或闲置信息,如上所述。可通过监视器430监视的与这些功率状态相关联的数据的实例包括:功率状态进入/退出事件,例如在监视器时期或间隔期间核301-30N的进入/退出事件;以及基于进入/退出事件或其它计数计算在这些状态的驻留期。由此,计算相同封装中的激活-闲置核的重叠。在一个实施例中,活动监视和预测的间隔可以是每隔500μs;但是,这可容易地在几个执行周期到数千微秒的范围内变动。
因此,如上所述,活动监视器430可从各个核301-30N接收关于它们的当前或过去的活动级的输入数据。在一个实施例中,活动监视器430包括可以按各种方式布置的缓冲器。例如,缓冲器可适于为每个核301-30N存储与每个功率状态改变事件相关联的时间标记的指示。这里,活动监视器430因而拦截CPU核301-30N进入和退出功率状态的事件并对这些事件加时间标记。在一个实施例中,将记录存储在内核缓冲器中。然后,按预定间隔,例如如上所述的间隔,活动监视器430将监视数据提供给预测器435。因而,这种监视数据可包括时间标记数据以及活动状态以指示在存储间隔期间每个核处于给定状态的时间。
作为响应,预测器435可利用该信息生成在下一个间隔所预测的核状态的模式分布。在一个实施例中,预测器435可执行诸如卡尔曼滤波算法的给定预测算法以生成该模式分布,但本发明在这方面不受限制。此外,应了解,取决于所支持的低功率状态的数量以及给定的核数、预测周期的长度等,模式分布可广泛地改变。为了易于论述,本文将描述包括三种不同模式(例如,下文将参考图5更详细论述的三种聚合模式)的模式分布。但是,应了解,本发明的范围在这方面不受限制,并且在不同实施例中,可以提供更多或更少的这样的模式,例如在给定活动级关于核数可以有变化的粒度。
因此,将这种模式分布信息从预测器435提供给核跳跃管理器440,核跳跃管理器440可基于模式分布允许或禁止核跳跃请求。作为一个实例,下一个间隔的特定聚合闲置-活动模式可指示核跳跃将是有效的。这里,响应于聚合模式分布和/或驻留期高于阈值驻留期,核跳跃管理器440允许核跳跃。换句话说,如果预测到核301-30N在某个激活-闲置模式驻留足够长的时间以便可以将核跳跃视为是可行且有效的,则允许核跳跃。相反,如果如有效模式的驻留期低于阈值所指示,预测到驻留在不有效或不可行的其它闲置-活动模式而不是有效模式,则核跳跃管理器440禁止或拒绝核跳跃请求。因此,在这个实例中,基于核301-30N的活动的未来预测,可避免不必要的、无效的或不可行的核跳跃。
在一个实施例中,可计算以下三种模式以便预测活动:(1)模式A:封装闲置(内部的所有核都闲置);(2)模式B:封装繁忙(内部的所有核都繁忙);以及(3)模式C:封装部分闲置(其余情况是,至少一个核繁忙,同时至少一个核闲置)。这第三种模式描绘了闲置/繁忙重叠的情况。从以上实例可见,通过活动监视器430可使核301-30N的进入/退出功率状态时间标记可用。因此,可计算这三种模式分布预测。表1中示出根据本发明一个实施例的预测的示范输出,其中假设间隔周期为500μs。
表1
下一个T1中模式A% 25%(封装在模式A:25%*500=125μs)
下一个T1中模式B% 15%(封装在模式B:15%*500=75μs)
下一个T1中模式C% 60%(封装在模式C:60%*500=300μs)
因此,如表1所示,对于间隔周期T1,预测闲置封装模式为25%的时间(即,125μs),而预测所有核在15%的时间(即,75μs)为激活,并且在下一个预测周期的其余60%期间,至少一个核激活并且至少一个核闲置(即,300μs)。在不同实施例中,生成这些模式预测的方式可以改变。在一个实施例中,预测可利用卡尔曼滤波器,这将在下文马上进一步论述;但是,其它实现也是可能的。
卡尔曼滤波器模型(KFM)利用经受高斯噪声的线性动态和线性观测来对部分观测的随机过程建模。它是根据一系列不完全且有噪声的测量估计动态系统的状态的有效递归滤波器。基于KFM,可以用多个预定模式(例如,模式A、B和C以及诸如下文参考图5描述的模式的其它模式的百分比/驻留期)来阐明核301-30N的活动,这些预定模式被视为是在时域离散化的实数随机过程的观测,用y1:t=(y1...yt)指示。过程的隐藏状态x1:t=(x1...xt)又表示为实数的向量。KFM中的线性随机差分方程为:
x(t)=Ax(t-1)+w(t-1)p(w)~N(0,Q)x(0)~N(x1|0,V1|0)[方程1]
并且,测量方程为:
y(t)=Cx(t)+V(t)p(v)~N(0,R)[方程2]
差分方程1中的n×n转换矩阵A使之前的t-1时间步长的状态与当前步长t的状态相关,其中缺少驱动函数或过程噪声。这里,n是隐藏状态的数量。在我们的任务中,m=n是可能的CPU活动状态的数量。x1|0,V1|0是状态的初始均值和方差,Q是转换动态噪声的系统协方差,而R是观测噪声的观测协方差。观测函数的转换一直相同,并且该模型据称是非时变性的或是齐次的。
利用KFM,给定直到当前时间的所有观测,可预测未来时间的值。但是,我们一般对于未来不确定,并且因而计算最佳猜测以及置信度。因此,计算在可能的未来观测上的概率分布,用P(Yt+h=y|y1:t)表示,其中k>0是时域(horizon),即,距离未来多远来预测。
给定观测值的序列(y1-yt),为了预测新的观测值,对于到未来的一定时域k>0,计算P(Yt+h=y|y1:t)。方程3是通过忽略未来隐藏状态的预测而对关于未来观测的预测的计算。
P ( Y t + h = y | y 1 : t ) = Σ x P ( Y t + h = y | X t + h = x ) P ( X t + h = x | y 1 : t ) [方程3]
在方程的右边,通过固定滞后平滑算法(即,P(Xt-L=x|y1:t),L>0,L是滞后)来计算P(Xt+h=x|y1:t)。因此,在研究算法的细节之前,首先介绍KFM中的固定滞后平滑。
固定滞后卡尔曼平滑器(FLKS)是执行回溯性数据同化的方法。给定直到当前时间的所有证据,它估计过去的状态,即,P(Xt-L=x|y1:t),L>0,其中L是滞后,例如,给定当前的传感器读数,我们可能想要算出管道是否在L分钟之前中断。这在传统上称为“固定滞后平滑”,但术语“后知(hindsight)”可能更合适。在离线情形中,这称为(固定间隔)平滑;这对应于计算P(XT-L=x|y1:T),T≥L≥1。
在预测算法中,要多进行正向和反向h遍。这些遍的计算类似于平滑过程中的计算。唯一的差别在于,在预测步骤中,新观测的初始值为空,这表示预测算法通过对直到当前时间的所有证据加上执行回溯性数据同化来估计y1:T+h=[y1:TyT+1…yT+h]的值。实际上,我们考虑利用之前的步长作为先前数据,例如,如果h=1,则yT+1=(yT-1+yT)/2,而不是yT+1=null。
表2示出预测算法的伪代码。
表2
在表2中,Fwd和Back是抽象的运算符。对于第一循环(fort=1:T)的每个Fwd(正向遍)操作,首先通过xt|t-1=Axt-1|t-1和Vt|t-1=AVt-1|t-1A′+Q计算推理均值和方差;然后分别通过errt=yt-Cxt|t-1、St=CVt|t-1C′+R、和Lt=log(N(errt;0,St)计算推理(创新)误差、误差的方差、卡尔曼增益矩阵和这个观测的条件对数似然性;最后通过xt|t=xt|t-1+Kterrt和Vt|t=Vt|t-1-KtStKt′更新均值和方差的估计值。
对于第二循环(fort=T-1:-1∶1)的每个Back(反向遍)操作,首先,通过xt+1|t=Axt|t和Vt+1|t=AVt|tA′+Q计算推理量;然后,通过计算平滑器增益矩阵;最后,分别通过称为Rauch-Tung-Striebel(RTS)方程的xt|T=xt|t+Jt(xt+1|T-xt+1|t)、Vt|T=Vt|t+Jt(Vt+1|T-Vt+1|t)Jt′和Vt-1,t|T=Jt-1Vt|T计算均值、方差和互方差的估计值。
表2中所述的计算会比较复杂,例如,当计算Fwd运算符中的卡尔曼增益矩阵和Back运算符中的平滑器增益矩阵时,T+1步长循环中存在矩阵求逆。并且,计算复杂度将为O(TN3),其中T是历史观测的数量,N是活动状态的数量,这是因为对于一般的N*N矩阵,用于求解矩阵逆的高斯消元法会导致O(N3)复杂度。但是,在各个实施例中,算法实现可简化。在题为“SavingPowerinAComputerSystem”且申请号为11/955326的同时待审的申请中描述了利用KFM来预测未来活动以进行功率状态选择的更具体的论述。
现在参考图5,示出潜在活动模式的实施例,这些潜在活动模式又可称为闲置-活动模式、预测活动、未来活动、下一个间隔活动、活动表示、闲置-活动表示等。这里,将预测器435描绘为预测三种聚合闲置-活动模式501、502和503。在该图示中,逻辑1表示核是激活的,即处于工作或C0状态;而逻辑0表示核是闲置的,即处于非工作或非C0功率状态。但是,“激活”和“闲置”的定义内可包含任何功率状态分组,例如C0和C1视为是激活的,而C2-C6视为是闲置/失活的。因此,在所描绘的实例中,可能的活动模式505的字段505a-d分别对应于核301-304的活动。这里,每个字段可表示在下一个或未来间隔期间预测的活动或不活动,这导致对于4个核有16种可能的闲置-活动模式。从这个简单的实例推测,对于N个核潜在地存在2N种模式。
包括预测器435的预测机构可预测在未来/下一个间隔所有这2N种可能模式的任何形式的驻留期,然后将它们聚合为聚合模式,如图所示。但是,也可将这2N种模式的任何子集预测为聚合模式。另外,即使当预测聚合模式时,也可预测每种可能模式的驻留期。此外,模式的聚合可以按任何方式来执行,以使得分组可不同于图5中的图示。而且,模式的驻留期的表达式可以按任何形式进行,例如驻留期的分布、一定间隔内驻留期的百分比、下一个间隔内驻留期的时间量、或预测一种模式在未来间隔内出现的时间或量的其它表达式。
这里,将核301-304的预测活动模式聚合为三个组:501、502、503。尽管图中没有描绘,但确定核跳跃是否有效(是否允许)的最基本的方法是将模式聚合为两个组:对于核跳跃有效的活动模式;以及对于核跳跃无效的活动模式。基本上,如图所示,在这个实例中,聚合模式502包括对于核跳跃确定为“有效”的聚合模式,而模式503和501包括确定为“无效”的模式。但是,这个实例对无效进行了区分。模式501包括这样的模式,其中核跳跃是可行的,即可容易地执行,但是却无需核跳跃。具体来说,当对照时间代价、即履行核跳跃而停止执行的时间进行权衡时,认为与模式501中所聚合的模式(例如,0000或0101)相关联的热密度状况的增益没有益处。
例如,假设核301-304驻留在环拓扑中,因此使得核301相邻于核302和304。这里,如果在当前活动包括0101时请求核304的核跳跃,则上下文从核304跳到核303可临时缓解核304上的发热问题。但是,从总体角度看,热问题可能变得更糟,因为活动模式现在是0110,其中核302和303设置在彼此靠近的位置而不是像0101中那样散布。在这种情况下,不仅处理器封装的整体热状况会变更差,而且每个核基础上的发热状况刚好会转移到核303。然而,在一些实现中,设计者可将这种模式视为是有效的,并且因此将它与其它有效模式聚合在一起。
另一方面,模式503包括可得益于核跳跃的模式。但是,由于不可行或者由于与由核跳跃带来的时间、执行代价相比缺少实质的热状况减轻,所以核跳跃潜在地是无效的。例如,模式1111指示核301-304都是繁忙的。因此,从一个核跳到另一个核只是从一个激活核切换到另一个激活核。另外,在这个子集组中可包含诸如1011的模式,因为上下文从核301切换/跳到核302以获得模式0111可使启动热状况变得甚至更糟,如上所述。
注意,可能的2N种模式的这些分组、聚合或子集不限于基于潜在热状况减轻相对于执行的时间代价或多个时间代价的权衡分组。实际上,在一些情况中,核跳跃策略可纯粹基于可行性进行分组。在这种实施例中,如果核跳跃可行,则确定有效,然而如果不可行,则确定核跳跃无效。因此,预测机构可实现将闲置-活动模式分组为聚合模式的任何策略。此外,聚合可包括任何模式分组或关联。在一个实施例中,聚合包括将模式的驻留期聚合。例如,假设将驻留期(例如,聚合模式502的驻留期)表示为某个间隔的百分比,例如70%,这可容易地转换为对于某个间隔的时间量(70%*500μs=350μs)。这实质上指示,预测器435预测,在未来500μs间隔期间,构成聚合模式502的某个版本的模式将驻留350μs或该间隔的70%。
为了进一步说明该实例,假设预测器435预测,模式1100将驻留下一个间隔的10%,模式0011将驻留下一个间隔的30%,而模式1001将驻留下一个间隔的10%。在这个实例中,聚合简单地包括各个模式的总和,即10%+20%+30%+10%,从而获得70%的聚合驻留期。但是,如上所述,聚合可包括任何模式分组,或因此包括任何驻留期分组。注意,与预测的驻留期相比,各个聚合模式的实际驻留期可改变。但是,在模拟期间发现,诸如预测器435的预测器极其准确。实际上,一个模拟集合指示,在4核处理器上的预测器只有4.34%的相对误差。换句话说,如果预测器预测对于500μs间隔诸如0101的模式的驻留期为300μs,则实际的测量结果为该模式驻留介于287μs与313μs之间的时间。
在一个实施例中,在间隔期间,核跳跃机构320或核跳跃管理器440基于在该间隔多个处理器核的未来/预测活动来确定核跳跃是否有效。注意,此确定的一部分或全部可在预测机构315并且潜在地可在其它逻辑中进行。继续以上实例,一旦预测器435预测了聚合模式501、502和503的驻留期,核跳跃管理器440便确定核跳跃是否有效。在一个实施例中,确定核跳跃有效包括确定是否预测到有效核跳跃模式的聚合组在下一个间隔驻留足够长的时间以视为是核跳跃有效。
例如,确定有效核跳跃模式的聚合模式502的驻留期是否大于阈值,例如驻留期阈值。注意,阈值可包括对应于模式驻留期的表达式的任何百分比、时间、分布或其它值。为了便于说明,假设阈值是60%。在以上实例中,聚合模式502的驻留期包括70%,即,预测的有效闲置-活动模式超过阈值,在该实例中,预测该模式驻留的时间长于阈值。这里,因为确定有效,所以核跳跃管理器440允许核跳跃。但是,如果阈值为75%,则由于预测到有效模式不会在间隔内驻留足够长的时间,所以核跳跃管理器440拒绝核跳跃。注意,在一些实施例中,驻留期阈值可预先确定,而在其它实施例中,它可通过特权级实体、非特权级实体或其组合动态地调整。
在一个实施例中,核跳跃管理器440还可基于核跳跃请求确定核跳跃的最佳配置。例如,响应于接收到来自核304的跳跃请求,核跳跃管理器可轮询活动监视器430以确定当前的激活-闲置模式或利用间隔内的模式驻留期的预测来选择跳跃以实现最佳配置。这里,假设预测单个模式0011在下一个间隔期间具有最长驻留期。然后,响应于核跳跃请求,核管理器可确定304的上下文将跳到核301而不是302,因为在间隔期间在最长驻留的模式0011中,设置在彼此靠近的位置的核302和303将同时激活。确定最佳配置不限于基于单个模式。而是,可使用组合或聚合。例如,可将指示特定核激活的预测模式加以组合,并且评估该组合的驻留期以确定最佳核跳跃。
还应注意,核跳跃机构320的确定可以不是在活动模式上进行的,而是在一些实施例中,可在任何未来活动预测上进行,未来活动预测可用于指示核跳跃是否有效。实际上,上文在图4的论述之前已经描述了未来活动预测的众多实例。因此,可以利用任何已知的方法或设备来确定核跳跃是否有效。此外,重要的是要再次注意,所描绘的聚合模式的子集分组的数量和内容纯粹是说明性的。
论述转到图6,描绘用于避免无效核跳跃的方法的实施例。尽管以下图6和图9a的流程按照基本上串行的方式示出,但每个流程可至少部分地并行或按不同的顺序执行。此外,所示的一些流程可省略,而其它流程可包含在不同实施例中。例如,可在前一个间隔结束时预测下一个或未来间隔的驻留期。在模拟期间,预测平均值为约6.5微秒。因此,间隔可结束,预测可开始,并且核跳跃请求可全部部分地并行进行。因此,图6和图9a中示出的流程的顺序纯粹是说明性的。
在流程605中,预测在未来间隔期间处理器上的多个核的闲置-活动表示的驻留期。如上所述,闲置-活动表示可包括处理元件活动的任何已知的表示。在一个实例中,闲置-活动表示包括多个有效闲置-活动模式的第一聚合闲置-活动模式。这里,N个核的活动可由2N种模式来表示,其中通过平台策略来确定有效闲置-活动模式是否有效,平台策略可以是例如权衡减轻热密度状态的核跳跃的增益和执行核跳跃的时间执行成本。图5中将这种有效闲置-活动模式的特定说明性实例描绘为是聚合模式502。注意,如图5所示,可预测和计算多于一种聚合模式。实际上,在一个实施例中,可预测和聚合所有可能的2N种模式的驻留期,而在其它实施例中,可只预测和计算2N种模式和聚合模式的子集。
在间隔期间,接收核跳跃请求。注意,本文不会详细论述核跳跃请求及其生成以免混淆对是否避免核跳跃请求的论述。但是,核跳跃请求可基于任何已知的状况生成,例如热密度状况、工作负荷状况、故障状况等。另外,任何实体都可生成核跳跃请求。例如,核跳跃请求可由诸如图3中的核跳跃触发逻辑310的硬件触发。核跳跃请求也可由诸如内核或OS的特权级软件实体生成。实际上,一些处理器设计者可选择对用户级代码开放请求机构,以便核跳跃触发逻辑310接收用户请求并生成核跳跃请求。
在判定流程615中,确定有效闲置-活动表示的预测的驻留期是否大于阈值。例如,确定聚合模式502的驻留期是否大于驻留期阈值。注意,达到相同目的的此确定的备选方法包括执行对诸如模式501和503的无效模式的聚合的驻留期的预测。然后,确定该聚合是否低于阈值。基本上,不是确定有效核跳跃模式将驻留足够长的时间以使得核跳跃有效,而是后一个实例是确定无效核跳跃模式是否将不驻留足够长的时间以使核有效。
响应于可包括预测的驻留期与驻留期阈值的某种形式的比较的确定,如果预测的驻留期大于阈值,即核跳跃有效,则在流程625中允许该请求;或者如果预测的驻留期没有超过阈值,即核跳跃无效,则在流程620中拒绝/避免该请求。允许核跳跃可简单地包括让正常的核跳跃逻辑(例如,将一个核的状态迁移到另一个核的逻辑)执行它的任务,而拒绝可包括阻止核跳跃发生的任何形式的防碍、禁止、拒绝或其它操作。
硬件辅助的低功率状态选择的实施例
接下来转到图7,描绘包括基于预测精度在请求的功率状态与预测的功率状态之间选择的功率机构的处理器的实施例。如图所示,功率机构710接收使某个核(例如,核701-704中的核701)进入请求的功率状态的请求。从以上论述注意到,请求的功率状态可包括任何功率状态,例如C-状态、ACPI功率状态或其它已知的功率状态。之前,功率控制单元仅仅基于软件请求741便利用请求的功率状态。因此,诸如操作系统(OS)、内核、管理程序或虚拟机监视器(VMM)的软件实体740为核701请求某个功率状态,并且相应地进入该功率状态。但是,与以上的核跳跃非常相似,在没有预测核701的闲置持续时间的情况下,核701可产生进入低功率状态的成本/支出,并且接着会在短时间内被再次唤醒。实际上,在这种情况下,核701可进入该低功率状态,并且驻留在此的时间少于将核701从这个功率状态唤醒所花费的时间量。作为额外的构成要素,题为“SavingPowerinaComputerSystem”、申请号为11/955326的同时待审的申请论述了核在一定时间内驻留在一种功率状态时的功率状态的硬件升级/降级。注意,硬件升级和降级可结合本文描述的设备和方法一起使用。例如,硬件可预测所预测的闲置持续时间或所预测的功率状态,而软件可请求所请求的功率状态。如果硬件是准确的,那么选择预测的功率状态。但是,如果核驻留在所预测的功率状态的时间过长或者不够长,那么如同时待审的申请中所论述,可随后将该功率状态降级/升级。
在一个实施例中,功率机构710提供硬件辅助的功率状态选择。实际上,作为潜在的优化,功率状态选择可基于预测精度,以使得当硬件预测精度较高时,选择硬件预测的功率状态。并且,当硬件预测精度较低时,选择软件请求的功率状态。因此,当硬件准确地预测了正确的、即对于未来间隔最有效的功率状态时,那么硬件的选择具有优先权,而当预测机构不是很准确时,硬件将优先权让给软件。实际上,在模拟期间发现,操作系统功率管理功率状态选择在34.8%的时间是正确的;纯硬件预测的实施例在92.7%的时间是正确的;并且基于硬件精度的硬件辅助的功率状态选择的混合的实施例在94.3%的时间实现了正确的功率状态。
在一个实施例中,功率机构710包括用于预测闲置持续时间或所预测的功率状态的预测机构720。注意,预测机构可预测闲置持续时间,例如非常长、长、短或非常短的持续时间,并且通过硬件、固件、软件或其组合使功率状态与其相关联。为了说明,可使非常长和长持续时间与最深睡眠状态C6相关联,而使短和非常短持续时间与睡眠状态C3相关联。在这个图示中,术语“预测诸如C3和C6的低功率状态”的使用与预测闲置持续时间的陈述同义,或反之亦然。
在一个实施例中,预测机构720响应于所测量的闲置持续时间而增加或减少所预测的闲置持续时间。例如,在间隔期间,诸如图4中的监视器430的活动监视器利用计数器逻辑和/或时间标记来确定/测量核(例如,核701)的闲置持续时间。基于该闲置持续时间,相应地更新未来/预测的闲置持续时间。作为说明性实例,响应于所测量的闲置持续时间与均衡(breakeven)阈值的比较,增加或减少所预测的闲置持续时间。如果软件实体740请求功率,那么在一个实施例中,均衡阈值包括最深(例如,C6)功率状态的均衡时间。注意,C6的均衡时间可以预先确定。均衡时间也可包括从C6功率状态唤醒到激活状态的时间量以及与进入/退出功率状态相关联的任何其它时间度量。
继续该实例,如果在前一个间隔期间测量的闲置持续时间长于C6均衡时间,则通过预测机构720增加所预测的闲置持续时间。或者,如果在前一个间隔期间测量的闲置持续时间短于C6均衡时间,那么通过预测机构720减少所预测的闲置持续时间。重要的是要注意,功率状态的均衡时间是纯粹说明性的阈值。并且,可以利用任何时间量或其它值来作为阈值以将它与来自间隔的测量/实际闲置持续时间进行比较。如上所述,所预测的闲置持续时间可对应于功率状态。
但是,在一些实施例中,所预测的闲置持续时间的更新不一定表示所预测的功率状态的改变。为了说明,在以上实例中,使长和非常长的闲置持续时间与C6相关联,而使短和非常短的闲置持续时间与C3相关联。因此,所预测的闲置持续时间从长增加到非常长仍表示所预测的功率状态为C6。但是,如果所测量的闲置持续时间低于均衡阈值,那么所预测的闲置持续时间从长减小到短,这表示所预测的功率状态从C6变为C3。在后一种情形,假设从软件实体740接收到使核701进入到诸如C6的低功率状态的请求。预测机构720已经完成测量在间隔期间核701的闲置持续时间。这里,所测量的闲置持续时间低于C6均衡时间,由此使预测机构720预测短的闲置持续时间。假设此时认为硬件预测是准确的,那么功率管理器715便可基于硬件预测的短的闲置持续时间越过软件请求的C6状态而为核701选择硬件预测的状态C3。
然而,在一个实施例中,根据硬件预测机构720的预测精度来调节硬件预测的功率状态的选择。实质上,在这个实施例中,存在防护措施,由此当硬件没有准确地预测时,不会越过软件请求的功率状态而选择硬件预测的功率状态。因此,在一个实施例中,预测精度机构725用于预测预测机构720的预测精度。作为一个实例,预测精度机构725响应于在间隔内测量的闲置持续时间超过均衡阈值/持续时间并且所预测的闲置持续时间对应于长闲置持续时间而增加预测精度。换句话说,如果所预测的闲置持续时间是长闲置、即长于阈值持续时间并且实际测量的闲置持续时间也超过均衡阈值,那么闲置预测是正确的。因此,预测精度机构725基于所确定的准确预测增加精度。但是,预测到长闲置持续时间并且测量到类似的长闲置、即超过均衡持续时间不是可确定为准确的唯一预测。作为另一个实例,当预测到短闲置持续时间时测量到短闲置持续时间、即小于均衡时间也可增加预测精度。
以类似方式,预测精度机构725响应于在间隔内测量的闲置持续时间超过均衡持续时间并且所预测的闲置持续时间对应于短闲置持续时间而减小预测精度。此外,预测精度机构725响应于在间隔内测量的闲置持续时间没有超过均衡持续时间、即短的测量闲置持续时间并且所预测的闲置持续时间对应于长闲置持续时间而减小预测精度。
注意,以上实例论及预测闲置持续时间,并且论述了这些预测的精度的确定。但是,预测不限于此。作为一个实例,预测可包括预测实际功率状态或间隔内的功率状态驻留期。这里,活动监视器可收集关于进入/退出这些功率状态的数据。并且,将预测与数据进行比较以确定直接功率状态预测的精度。
然而,不管预测方法如何,一旦进行了硬件预测,功率管理器715便基于功率机构720的预测精度为核(例如,核701)选择预测的状态或为核701选择请求的状态。在一个实施例中,提供精度阈值。这里,如果预测精度超过精度阈值,那么选择/利用硬件预测的功率状态。但是,如果预测精度没有超过阈值,那么选择请求的功率状态。
接下来参考图8,描绘用于预测闲置持续时间/功率状态的预测逻辑和用于确定预测精度的精度逻辑的特定说明性实施例。实际上,这里论述利用示范性数字和状态的简化的说明性实例以提供对图8中的逻辑的操作的看法。预测逻辑720至少基于在间隔内多个核中的一个核(例如,核701)的闲置持续时间来预测所预测的低功率状态。这里,闲置持续时间逻辑805用于确定在间隔内该核的闲置持续时间。作为一个实例,间隔可以是定时间隔,例如500μs间隔。或者,间隔可包括闲置持续时间本身。在这个实施例中,当核(例如,核701)进入低功率状态、即闲置时,诸如计数器的计数逻辑对核701的闲置持续时间计数。注意,也可利用如参考图4论述的利用时间标记的活动监视器来确定闲置持续时间。一旦核701苏醒,预测逻辑720便更新它的预测,并且预测精度逻辑725便相应地更新它的预测逻辑720的精度。响应于苏醒,闲置持续时间逻辑805将测量的闲置持续时间806提供给均衡逻辑810。
均衡逻辑810确定测量的闲置持续时间806是长持续时间还是短持续时间。如上所述,在一个实施例中,利用诸如C6状态的功率状态的均衡时间作为均衡阈值。在这个实例中,假设均衡阈值为100μs,但也可利用任何均衡值。因此,如果闲置持续时间806超过100μs,则确定核701的闲置持续时间为长持续时间。反之,如果闲置持续时间806为或低于100μs,则确定闲置持续时间为短持续时间。作为一个简单的实例,均衡逻辑810可包括用于将闲置持续时间806与均衡持续时间100μs进行比较的比较逻辑。
预测状态逻辑815、820基于均衡逻辑、即来自均衡逻辑810的长或短闲置确定而确定所预测的低功率状态。预测的闲置/功率状态元件820保存之前预测的功率状态。注意,元件820中可表示任何数量的功率状态和/或闲置持续时间。作为一个说明性实施例,存储元件820保存对应于功率状态的闲置状态的二位表示。这里,00表示非常短的闲置持续时间,它对应于C3功率状态;01表示短闲置持续时间,它也对应于C3功率状态;10表示长闲置持续时间,它对应于C6功率状态;而11表示非常长的闲置持续时间,它也对应于C6功率状态。因此,当从软件实体740接收到对于核701的请求的功率状态时,将所预测的闲置持续时间/功率状态822作为硬件预测的功率状态提供给功率管理器715。
然而,继续以上实例,所预测的闲置功率状态820可由预测的闲置状态机构815基于长/短闲置持续时间信息811进行更新。快速参考图9b,示出预测的闲置状态机815的流程图的实施例。可见,基于来自均衡逻辑810的长/短闲置确定,相应地更新状态机815的状态。例如,如果保存在元件820中的之前状态包括01、即预测短闲置持续时间816b并且确定长闲置持续时间,那么长闲置持续时间将状态机移到状态816c,即预测长闲置状态。这个结果可保存在状态机815中并直接提供给功率管理器715。或者,如图所示,将结果存储在元件820中。一旦提供了经过更新的闲置持续时间预测816,预测循环便基本上结束了。因此,响应于来自软件实体740的进入诸如C3的请求功率状态的请求,将新更新的预测闲置持续时间/功率状态、即对应于C6功率状态的长闲置持续时间提供给功率管理器715。功率管理器715在请求的功率状态C3与预测的功率状态C6之间进行选择。
在一个实施例中,这个选择可基于预测逻辑720的精度来进行。回到均衡逻辑810,将长/短闲置持续时间确定也提供给间隔精度确定逻辑。另外,将在通过状态机815更新之前的保存在元件820中的之前状态也提供给逻辑825。实质上,采用比较测量的闲置和预测的闲置是否都是长闲置或短闲置的形式将之前预测的闲置持续时间与新测量的持续时间进行比较。换句话说,逻辑825确定核701的闲置的预测是否正确。
间隔精度确定逻辑提供精度确定826。在一个实施例中,如果预测是准确的,那么信号826是将精度逻辑830递增的递增信号。类似地,如果预测不正确,那么信号826包括不递增信号。因此,精度逻辑830实质上是对预测逻辑正确的闲置间隔的数量进行计数。此外,对于每个闲置持续时间测量,将总间隔跟踪逻辑830递增。因此,核701的准确的闲置间隔的数量可在精度逻辑830中获得,而总间隔数可在间隔跟踪逻辑830中获得。因此,精度逻辑830可将准确间隔数除以总间隔数以获得诸如精度百分比的精度值831。
因此,功率管理器715或精度逻辑830可将这个精度值与诸如90%的阈值进行比较。如果精度超过阈值90%,那么对于核701利用硬件预测的状态C6。相反,如果精度没有超过阈值90%,那么对于核701利用请求的功率状态。注意,在另一个实例中,精度逻辑可容易地颠倒,其中对于不准确的闲置间隔将精度逻辑830中的计数器递增并除以总间隔数以获得不准确度值。然后,可将这个值与诸如10%的不准确度阈值进行比较。在操作中,使用基本上相同。注意,在参考图8的实例中所提供的精度阈值以及其余的数量和状态纯粹是说明性的。另外,诸如均衡阈值或精度阈值的阈值可通过硬件、特权软件、用户软件或其组合来动态地调整。
转到图9a-9b,示出用于预测闲置持续时间和确定该预测的精度的方法的实施例。在流程901中,核从闲置或非激活状态苏醒/退出。注意,该核可以是苏醒的整个处理器或一组核的一部分。在闲置期间,在流程905中测量/确定闲置持续时间。例如,计数器对闲置的持续时间计数。
在流程910中,确定总的闲置计数。作为一个实例,对于每个闲置间隔,将总的闲置计数递增。在流程915中,确定闲置持续时间是否大于均衡阈值,例如某个功率状态的均衡时间。如果闲置持续时间不大于均衡阈值,那么在流程920中确定该闲置持续时间为短。类似地,如果闲置持续时间大于均衡阈值,那么在流程925中确定闲置持续时间为长。再次快速地参考图9b,示出基于流程920、925中的确定而在状态之间移动的状态机。例如,如果如流程925所示,闲置持续时间为长,那么状态机在状态816a-816d中朝向更长的闲置状态移动。反之,短持续时间确定920将状态朝向更短的闲置状态、例如朝向状态816a移动。
此外,在流程930-945中,确定预测硬件的预测精度。这里,如果在流程920中确定闲置持续时间为短,那么从流程930有两种可能的精度结果:(1)之前预测的闲置状态是正确的,即预测的闲置持续时间为状态816a或816b,它们表示短闲置持续时间;或(2)之前预测的闲置状态是不正确的,即预测的闲置持续时间为状态816c或816d,它们表示长闲置持续时间。类似地,在流程935中,有两种类似的结果:(1)之前预测的闲置状态是正确的,即预测的闲置持续时间为状态816c或816d,它们表示长闲置持续时间;或(2)之前预测的闲置状态是不正确的,即预测的闲置持续时间为状态816a或816b,它们表示短闲置持续时间。因此,当来自任一路径的预测是正确时,在流程940中将精度计数递增。如果预测不正确,那么流程移到流程945,它通过将精度计数除以来自流程910的总闲置计数来确定精度值。因此,如果精度大于阈值精度,那么对核701使用硬件预测的功率状态。反之,如果精度不大于阈值精度,那么对核701使用请求的功率状态。软件请求和准确的硬件预测相结合潜在地导致非常准确的功率状态选择,例如如所模拟的超过94%的正确选择。
本文所用的模块是指任何硬件、软件、固件或其组合。通常,示为独立的模块边界通常会改变并且潜在地会重叠。例如,第一和第二模块可共享硬件、软件、固件或其组合,同时潜在地保留一定独立的硬件、软件或固件。在一个实施例中,术语“逻辑”的使用包括硬件,例如晶体管、寄存器或诸如可编程逻辑器件的其它硬件。但是,在另一个实施例中,逻辑也包括与硬件集成的软件或代码,例如固件或微代码。
本文所用的值包括数量、状态、逻辑状态或二进制逻辑状态的任何已知的表示。通常,逻辑级、逻辑值(logic/logicalvalue)的使用又称为1和0,它们简单地表示二进制逻辑状态。例如,1表示高逻辑级,而0表示低逻辑级。在一个实施例中,诸如晶体管或闪速单元的存储单元能够保存单个逻辑值或多个逻辑值。但是,使用了计算机系统中的其它值表示。例如,十进制数字“十”也可表示为二进制值1010和十六进制字母A。因此,值包括能够保存在计算机系统中的任何信息表示。
此外,状态可由值或值的部分来表示。作为一个实例,诸如逻辑1的第一个值可表示默认或初始状态,而诸如逻辑0的第二个值可表示非默认状态。另外,在一个实施例中,术语“重设”和“设置”分别指默认和更新后的值或状态。例如,默认值潜在地包括高逻辑值,即重设,而更新后的值潜在地包括低逻辑值,即设置。注意,可利用任何值组合来表示任何数量的状态。
以上阐述的方法、硬件、软件、固件或代码的实施例可经由存储在机器可访问或机器可读介质上的可通过处理元件执行的指令或代码来实现。机器可访问/可读介质包括提供(即,存储和/或传送)可由诸如计算机或电子系统的机器读取的形式的信息的任何机构。例如,机器可访问介质包括:随机存取存储器(RAM),例如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪速存储器装置;电存储装置、光存储装置、声存储装置或其它形式的传播信号(例如,载波、红外信号、数字信号)存储装置等。例如,机器可通过从介质接收诸如载波的传播信号来访问存储装置,该介质能够保存待在该传播信号上传送的信息。
整篇说明书中提到“一个实施例”或“实施例”时表示,结合这个实施例描述的特定特征、结构或特性包含在本发明的至少一个实施例中。因此,在整篇说明书中的各个地方出现短语“在一个实施例中”或“在实施例中”时不一定都指相同的实施例。此外,这些特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式加以组合。
在以上说明书中,参考特定示范性实施例给出了详细描述。但是,很明显,在不偏离如随附权利要求所述的本发明的更宽广的精神和范围的情况下,可对此作出各种修改和改变。因此,应将说明书和附图视为是说明性而不是限制性的。此外,实施例和其它示范性语言的上述使用不一定指相同的实施例或相同的实例,而是可以指截然不同的实施例,也可以潜在地指相同的实施例。

Claims (41)

1.一种用于避免无效核跳跃的设备,包括:
包括多个处理器核的处理器;
预测器,用于预测在未来间隔所述多个处理器核的未来活动,其中所述未来活动包括所述多个处理器核的闲置-繁忙模式的驻留期;以及
核跳跃管理器,用于基于在所述未来间隔所述多个处理器核的所述未来活动确定核跳跃是否有效,并响应于基于所述多个处理器核的所述未来活动确定所述核跳跃不有效而禁止核跳跃事件。
2.如权利要求1所述的设备,其中所述预测器预测在所述未来间隔所述多个处理器核的未来活动包括所述预测器预测在所述未来间隔第一闲置-繁忙模式的第一驻留期。
3.如权利要求2所述的设备,其中在所述未来间隔的所述第一闲置-繁忙模式包括第一聚合闲置-繁忙模式,它是多个有效核跳跃闲置-繁忙模式的聚合。
4.如权利要求3所述的设备,其中所述核跳跃管理器基于在所述未来间隔所述多个处理器核的所述未来活动确定核跳跃是否有效包括所述核跳跃管理器执行以下步骤:响应于所述第一聚合闲置-繁忙模式的所述第一驻留期大于阈值而确定所述核跳跃有效;以及响应于所述第一聚合闲置-繁忙模式的所述第一驻留期不大于所述阈值而确定所述跳跃不有效。
5.如权利要求1所述的设备,其中所述预测器预测在所述未来间隔所述多个处理器核的未来活动包括所述预测器利用在前一个间隔期间所述多个处理器核的过去活动作为在所述未来间隔所述多个处理器核的所述未来活动。
6.如权利要求1所述的设备,其中所述预测器预测在所述未来间隔所述多个处理器核的未来活动包括所述预测器执行以下步骤:从软件接收活动提示;以及基于来自所述软件的所述活动提示预测在所述未来间隔的所述未来活动。
7.如权利要求1所述的设备,还包括用于至少基于热密度状况生成所述核跳跃事件的核跳跃触发逻辑组件,其中所述核跳跃事件包括执行核跳跃的请求,并且其中所述核跳跃管理器禁止所述核跳跃事件包括所述核跳跃管理器拒绝执行所述核跳跃的所述请求。
8.如权利要求7所述的设备,其中所述核跳跃管理器基于在所述未来间隔所述多个处理器核的所述未来活动确定核跳跃是否有效包括确定所述多个处理器核的所述未来活动是否指示用于减轻所述热密度状况的核跳跃是可行的。
9.如权利要求1所述的设备,其中所述多个核、所述预测器和所述核跳跃管理器包含在微处理器中,所述微处理器耦合到存储器,其中所述存储器选自由动态随机存取存储器(DRAM)、双倍数据速率(DDR)RAM和静态随机存取存储器(SRAM)组成的组。
10.一种用于避免无效核跳跃的设备,包括处理器,所述处理器包括:
多个核;
耦合到所述多个核的核跳跃逻辑组件,用于触发核跳跃请求;
耦合到所述多个核的预测逻辑组件,用于预测在下一个间隔所述多个核的活动,其中所述活动包括所述多个处理器核的闲置-活动模式的驻留期;以及
耦合到所述核跳跃逻辑组件和所述预测逻辑组件的核跳跃管理器逻辑组件,所述核跳跃管理器逻辑组件响应于所述核跳跃管理器确定在所述下一个间隔所述多个核的所述活动指示核跳跃是无效的而拒绝所述核跳跃请求。
11.如权利要求10所述的设备,其中用于触发核跳跃请求的所述核跳跃逻辑组件基于热密度状况。
12.如权利要求11所述的设备,其中所述多个核包括N个核,并且多种可能的活动模式包括2N种模式,并且其中对于减轻所述热密度状况可行的所述2N种活动模式的子集被聚合为聚合活动模式。
13.如权利要求12所述的设备,其中所述核跳跃管理器确定在所述下一个间隔所述多个核的所述活动指示核跳跃是无效的包括所述核跳跃管理器确定对于减轻所述热密度状况可行的所述2N种活动模式的所述子集的所述预测的驻留期不超过阈值驻留期。
14.如权利要求13所述的设备,其中响应于所述核跳跃请求,所述核跳跃管理器响应于所述核跳跃管理器确定在所述下一个间隔所述多个核的所述活动指示核跳跃是有效的而启动核跳跃以减轻所述热密度状况,并且其中所述核跳跃管理器确定在所述下一个间隔所述多个核的所述活动指示核跳跃是有效的包括所述核跳跃管理器确定对于减轻所述热密度状况可行的所述2N种活动模式的所述子集的所述预测的驻留期超过所述阈值驻留期。
15.如权利要求13所述的设备,其中所述核跳跃管理器响应于所述核跳跃请求启动核跳跃以减轻所述热密度状况包括:所述核跳跃管理器确定最佳活动模式以减轻所述热密度状况;以及至少启动所述核跳跃以获得所述最佳活动模式。
16.如权利要求10所述的设备,其中所述多个核、所述核跳跃逻辑组件、所述预测逻辑组件和所述核跳跃管理器逻辑组件包含在微处理器中,所述微处理器耦合到存储器,其中所述存储器选自由动态随机存取存储器(DRAM)、双倍数据速率(DDR)RAM和静态随机存取存储器(SRAM)组成的组。
17.一种用于避免无效核跳跃的方法,包括:
预测在未来间隔期间处理器上的多个核的闲置-活动表示的预测的驻留期;
接收核跳跃请求;
确定在所述未来间隔期间所述多个核的所述闲置-活动表示的所述预测的驻留期是否大于驻留期阈值;
响应于所述核跳跃请求,响应于确定在所述未来间隔期间所述闲置-活动表示的所述预测的驻留期大于所述驻留期阈值而执行核跳跃;以及
响应于所述核跳跃请求,响应于确定在所述未来间隔期间所述闲置-活动表示的所述预测的驻留期不大于所述驻留期阈值而不执行所述核跳跃。
18.如权利要求17所述的方法,其中所述闲置-活动表示包括全部数量的可能的闲置-活动模式中的第一数量的闲置-活动模式的第一聚合,其中确定所述第一数量的闲置-活动模式对于核跳跃是有效的。
19.如权利要求18所述的方法,其中确定所述第一数量的闲置-活动模式对于核跳跃是有效的是基于权衡与执行所述核跳跃相关联的时间代价以及与执行所述核跳跃相关联的热密度增益的策略。
20.如权利要求19所述的方法,其中权衡与执行所述核跳跃相关联的所述时间代价以及与执行所述核跳跃相关联的所述热密度增益的所述策略包括用于将所述全部数量的可能的闲置-活动模式分为以下三组的策略:所述第一数量的闲置-活动模式,这响应于所述第一数量的闲置-活动模式与核跳跃可行性相关联而进行;所述全部数量的闲置活动模式中的第二数量的闲置活动模式,这响应于所述第二数量的闲置活动模式与最小热密度增益相关联而进行;以及所述全部数量的闲置活动模式中的第三数量的闲置活动模式,这响应于所述第三数量的闲置活动模式与核跳跃不可行性相关联而进行。
21.如权利要求17所述的方法,还包括响应于热密度状况生成所述核跳跃请求。
22.如权利要求17所述的方法,其中所述驻留期阈值可由硬件、软件或其组合动态地调整。
23.一种用于避免无效核跳跃的装置,包括:
预测在未来间隔期间处理器上的多个核的闲置-活动表示的预测的驻留期的部件;
接收核跳跃请求的部件;
确定在所述未来间隔期间所述多个核的所述闲置-活动表示的所述预测的驻留期是否大于驻留期阈值的部件;
响应于所述核跳跃请求,响应于确定在所述未来间隔期间所述闲置-活动表示的所述预测的驻留期大于所述驻留期阈值而执行核跳跃的部件;以及
响应于所述核跳跃请求,响应于确定在所述未来间隔期间所述闲置-活动表示的所述预测的驻留期不大于所述驻留期阈值而不执行所述核跳跃的部件。
24.一种用于提供硬件辅助的低功率状态选择的设备,包括:
多个核;以及
耦合到所述多个核的功率状态选择器,所述功率状态选择器用于接收使所述多个核中的核进入请求的功率状态的请求,预测功率状态,并基于所述功率状态选择器的预测精度为所述核选择所述预测的功率状态,其中所述功率状态选择器基于所述功率状态选择器的预测精度为所述核选择所述预测的状态包括所述功率状态选择器响应于所述功率状态选择器的预测精度超过精度阈值而为所述核选择所述预测的功率状态,并且其中所述功率状态选择器还响应于所述功率状态选择器的预测精度没有超过精度阈值而为所述核选择所述请求的功率状态,
其中所述功率状态选择器预测所述预测的功率状态包括所述功率状态选择器基于在一定间隔内测量的闲置持续时间预测所述预测的功率状态。
25.如权利要求24所述的设备,其中所述功率状态选择器基于在所述间隔期间测量的闲置持续时间预测所述预测的功率状态包括:所述功率状态选择器响应于在所述间隔内所述测量的闲置持续时间超过包括与进入和退出功率状态相关联的预定时间量的均衡持续时间而增加预测的闲置持续时间,并响应于在所述间隔内所述测量的闲置持续时间没有超过所述均衡持续时间而减小所述预测的闲置持续时间。
26.如权利要求25所述的设备,其中所述功率状态选择器还确定所述功率状态选择器的预测精度。
27.如权利要求26所述的设备,其中所述功率状态选择器还确定所述功率状态选择器的预测精度包括:所述功率状态选择器响应于在所述间隔内所述测量的闲置持续时间超过所述均衡持续时间并且所述预测的闲置持续时间对应于长闲置持续时间而增加所述预测精度;响应于在所述间隔内所述测量的闲置持续时间超过所述均衡持续时间并且所述预测的闲置持续时间对应于短闲置持续时间而减小所述预测精度;响应于在所述间隔内所述测量的闲置持续时间没有超过所述均衡持续时间并且所述预测的闲置持续时间对应于所述短闲置持续时间而增加所述预测精度;响应于在所述间隔内所述测量的闲置持续时间没有超过所述均衡持续时间并且所述预测的闲置持续时间对应于所述长闲置持续时间而减小所述预测精度。
28.如权利要求24所述的设备,其中所述多个核和所述功率状态选择器包含在微处理器中,所述微处理器耦合到存储器,其中所述存储器选自由动态随机存取存储器(DRAM)、双倍数据速率(DDR)RAM和静态随机存取存储器(SRAM)组成的组。
29.一种用于提供硬件辅助的低功率状态选择的设备,包括:
多个核;
耦合到所述多个核中的核的预测逻辑组件,所述预测逻辑组件用于至少基于在一定间隔内所述多个核中的核的闲置持续时间预测低功率状态;
预测精度逻辑组件,用于确定所述预测逻辑组件的预测精度;以及
耦合到所述预测逻辑组件的功率控制逻辑组件,用于接收来自软件的请求的低功率状态以及来自所述预测逻辑组件的预测的低功率状态,其中所述功率控制逻辑组件响应于所述预测精度大于精度阈值而为所述核选择所述预测的低功率状态,并响应于所述预测精度不大于所述精度阈值而为所述核选择所述请求的低功率状态。
30.如权利要求29所述的设备,其中用于至少基于核的闲置持续时间预测预测的低功率状态的所述预测逻辑组件包括:
闲置持续时间逻辑组件,用于确定在所述间隔内所述核的闲置持续时间;
耦合到所述闲置持续时间逻辑组件的均衡逻辑组件,所述均衡逻辑组件响应于所述闲置持续时间超过包括与进入和退出功率状态相关联的预定时间量的均衡持续时间而确定所述闲置持续时间是长持续时间,并响应于所述闲置持续时间没有超过所述均衡持续时间而确定所述闲置持续时间是短持续时间;以及
耦合到所述均衡逻辑组件的预测状态逻辑组件,基于所述均衡逻辑组件响应于所述闲置持续时间超过所述均衡持续时间确定所述闲置持续时间是长持续时间并响应于所述闲置持续时间没有超过所述均衡持续时间确定所述闲置持续时间是短持续时间,所述预测状态逻辑组件确定所述预测的低功率状态。
31.如权利要求30所述的设备,其中所述闲置持续时间逻辑组件包括用于对在所述间隔内所述核的闲置持续时间计数的计数逻辑组件,并且所述均衡逻辑组件包括用于比较所述闲置持续时间和所述均衡持续时间的比较逻辑组件。
32.如权利要求31所述的设备,其中所述预测状态逻辑组件包括:
状态机,用于响应于所述均衡逻辑组件确定所述闲置持续时间是长持续时间而表明预测长闲置状态,并响应于所述均衡逻辑组件确定所述闲置持续时间是短持续时间而表明预测短闲置状态;以及
存储元件,用于存储基于所述预测长闲置状态或所述预测短闲置状态的所述预测的低功率状态的表示。
33.如权利要求30所述的设备,其中用于确定所述预测逻辑组件的预测精度的所述预测精度逻辑组件包括:
间隔逻辑组件,用于确定包括所述间隔在内的间隔总数;
耦合到所述均衡逻辑组件和所述预测状态逻辑组件的精度确定逻辑组件,所述精度确定逻辑组件基于由所述预测状态逻辑组件之前在所述间隔总数内预测的之前预测的低功率状态结合均衡逻辑组件在所述间隔总数内确定长持续时间以及确定短持续时间而确定所述间隔总数中的准确间隔的数量,所述准确间隔是指所述预测精度逻辑组件准确预测为闲置间隔的间隔;以及
精度逻辑组件,用于基于所述间隔总数中的所述准确间隔的数量确定所述预测精度。
34.如权利要求33所述的设备,其中所述间隔逻辑组件包括用于对所述间隔总数计数的计数逻辑组件,并且所述精度逻辑组件包括用于根据所述准确间隔的数量除以所述间隔总数确定所述预测精度的算术逻辑组件。
35.如权利要求34所述的设备,其中所述精度确定逻辑组件包括:比较逻辑组件,用于将在所述间隔总数内的之前预测的低功率状态的表示与在所述间隔总数内的长持续时间或短持续时间的对应表示进行比较;以及计数逻辑组件,用于对所述间隔总数中的所述准确间隔的数量进行计数。
36.如权利要求29所述的设备,其中所述多个核和所述功率状态选择器包含在微处理器中,所述微处理器耦合到存储器,其中所述存储器选自由动态随机存取存储器(DRAM)、双倍数据速率(DDR)RAM和静态随机存取存储器(SRAM)组成的组。
37.一种用于提供硬件辅助的低功率状态选择的方法,包括:
在处理器的预测硬件中确定核的预测的功率状态,其中确定核的预测的功率状态包括基于在一定间隔内所述核的闲置持续时间来确定所述核的预测的功率状态;
确定所述预测硬件的预测精度;
从软件接收为核请求的功率状态;
响应于所述预测精度小于精度阈值而为所述核选择所述请求的功率状态;以及
响应于所述预测精度不小于所述精度阈值而为所述核选择所述预测的功率状态。
38.如权利要求37所述的方法,还包括:
确定在一定间隔内所述核的闲置持续时间;以及
确定在所述间隔内所述核的所述闲置持续时间是否超过包括与进入和退出功率状态相关联的预定时间量的均衡阈值。
39.如权利要求38所述的方法,其中在所述处理器的预测硬件中确定所述核的预测的功率状态包括:
在所述预测硬件中,响应于确定在所述间隔内所述核的闲置持续时间超过所述均衡阈值而确定预测长闲置状态;
在所述预测硬件中,响应于确定在所述间隔内所述核的闲置持续时间超过所述均衡阈值而确定比之前预测的闲置状态短的预测闲置状态;以及
基于响应于确定在所述间隔内所述核的闲置持续时间超过所述均衡阈值的比之前预测的闲置状态长的预测闲置状态以及响应于确定在所述间隔内所述核的闲置持续时间超过所述均衡阈值的所述预测短闲置状态,为所述核确定所述预测的功率状态。
40.如权利要求39所述的方法,还包括响应于确定在所述间隔内所述核的闲置持续时间而确定总间隔计数,其中确定所述预测硬件的预测精度包括:
响应于在所述预测硬件中响应于确定在所述间隔内所述核的闲置持续时间超过所述均衡阈值而确定预测长闲置状态,
响应于所述之前预测的闲置状态指示长预测闲置状态而将准确间隔的计数递增,所述准确间隔是指所述预测精度逻辑组件准确预测为闲置间隔的间隔,并且
响应于所述之前预测的闲置状态指示短预测闲置状态而将所述准确间隔计数递减;
响应于在所述预测硬件中响应于确定在所述间隔内所述核的闲置持续时间超过所述均衡阈值而确定预测短闲置状态,
响应于所述之前预测的闲置状态指示短预测闲置状态而将准确间隔计数递增,并且
响应于所述之前预测的闲置状态指示长预测闲置状态而将所述准确间隔计数递减;以及
基于所述准确间隔计数和所述总间隔计数确定所述预测精度。
41.一种用于提供硬件辅助的低功率状态选择的装置,包括:
在处理器的预测硬件中确定核的预测的功率状态的部件,其中确定核的预测的功率状态包括基于在一定间隔内所述核的闲置持续时间来确定所述核的预测的功率状态;
确定所述预测硬件的预测精度的部件;
从软件接收为核请求的功率状态的部件;
响应于所述预测精度小于精度阈值而为所述核选择所述请求的功率状态的部件;以及
响应于所述预测精度不小于所述精度阈值而为所述核选择所述预测的功率状态的部件。
CN201010625174.9A 2009-12-28 2010-12-24 避免无效核跳跃和提供硬件辅助的低功率状态选择的方法和设备 Active CN102110025B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610191485.6A CN105912303B (zh) 2009-12-28 2010-12-24 避免无效核跳跃的设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/647671 2009-12-28
US12/647,671 US8887171B2 (en) 2009-12-28 2009-12-28 Mechanisms to avoid inefficient core hopping and provide hardware assisted low-power state selection

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201610191485.6A Division CN105912303B (zh) 2009-12-28 2010-12-24 避免无效核跳跃的设备

Publications (2)

Publication Number Publication Date
CN102110025A CN102110025A (zh) 2011-06-29
CN102110025B true CN102110025B (zh) 2016-04-27

Family

ID=44174195

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610191485.6A Expired - Fee Related CN105912303B (zh) 2009-12-28 2010-12-24 避免无效核跳跃的设备
CN201010625174.9A Active CN102110025B (zh) 2009-12-28 2010-12-24 避免无效核跳跃和提供硬件辅助的低功率状态选择的方法和设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201610191485.6A Expired - Fee Related CN105912303B (zh) 2009-12-28 2010-12-24 避免无效核跳跃的设备

Country Status (5)

Country Link
US (1) US8887171B2 (zh)
JP (1) JP5460565B2 (zh)
CN (2) CN105912303B (zh)
DE (1) DE102010054337B4 (zh)
TW (1) TWI525547B (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8219834B2 (en) * 2009-08-12 2012-07-10 International Business Machines Corporation Predictive power gating with optional guard mechanism
US8219833B2 (en) * 2009-08-12 2012-07-10 International Business Machines Corporation Two-level guarded predictive power gating
US8812674B2 (en) * 2010-03-03 2014-08-19 Microsoft Corporation Controlling state transitions in a system
US8238290B2 (en) * 2010-06-02 2012-08-07 Erik Ordentlich Compressing data in a wireless multi-hop network
US20120166731A1 (en) * 2010-12-22 2012-06-28 Christian Maciocco Computing platform power management with adaptive cache flush
US8527994B2 (en) 2011-02-10 2013-09-03 International Business Machines Corporation Guarded, multi-metric resource control for safe and efficient microprocessor management
US8575993B2 (en) * 2011-08-17 2013-11-05 Broadcom Corporation Integrated circuit with pre-heating for reduced subthreshold leakage
KR101859188B1 (ko) 2011-09-26 2018-06-29 삼성전자주식회사 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
CN103218032B (zh) * 2011-11-29 2017-07-14 英特尔公司 利用相对能量损益平衡时间的功率管理
US9075609B2 (en) * 2011-12-15 2015-07-07 Advanced Micro Devices, Inc. Power controller, processor and method of power management
US9400545B2 (en) * 2011-12-22 2016-07-26 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices
TWI459400B (zh) * 2012-04-17 2014-11-01 Phison Electronics Corp 記憶體儲存裝置、及其記憶體控制器與電源控制方法
US9218045B2 (en) * 2012-06-30 2015-12-22 Intel Corporation Operating processor element based on maximum sustainable dynamic capacitance associated with the processor
US9164931B2 (en) 2012-09-29 2015-10-20 Intel Corporation Clamping of dynamic capacitance for graphics
US9311209B2 (en) * 2012-11-27 2016-04-12 International Business Machines Corporation Associating energy consumption with a virtual machine
US9183144B2 (en) * 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9110671B2 (en) * 2012-12-21 2015-08-18 Advanced Micro Devices, Inc. Idle phase exit prediction
US20140181553A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Idle Phase Prediction For Integrated Circuits
US9395804B2 (en) * 2013-02-08 2016-07-19 International Business Machines Corporation Branch prediction with power usage prediction and control
DE102013106699B3 (de) * 2013-06-26 2014-02-27 Fujitsu Technology Solutions Intellectual Property Gmbh Computersystem mit einem Abwesenheitsmodus
US9250910B2 (en) 2013-09-27 2016-02-02 Intel Corporation Current change mitigation policy for limiting voltage droop in graphics logic
GB2519108A (en) 2013-10-09 2015-04-15 Advanced Risc Mach Ltd A data processing apparatus and method for controlling performance of speculative vector operations
US9514715B2 (en) 2013-12-23 2016-12-06 Intel Corporation Graphics voltage reduction for load line optimization
TWI512623B (zh) * 2013-12-26 2015-12-11 Phison Electronics Corp 休眠模式啓動方法、記憶體控制電路單元及儲存裝置
US9851777B2 (en) 2014-01-02 2017-12-26 Advanced Micro Devices, Inc. Power gating based on cache dirtiness
US10289437B2 (en) * 2014-01-07 2019-05-14 Red Hat Israel, Ltd. Idle processor management in virtualized systems via paravirtualization
US9720487B2 (en) * 2014-01-10 2017-08-01 Advanced Micro Devices, Inc. Predicting power management state duration on a per-process basis and modifying cache size based on the predicted duration
US10365936B2 (en) 2014-02-27 2019-07-30 Red Hat Israel, Ltd. Idle processor management by guest in virtualized systems
US9507410B2 (en) 2014-06-20 2016-11-29 Advanced Micro Devices, Inc. Decoupled selective implementation of entry and exit prediction for power gating processor components
US10114448B2 (en) * 2014-07-02 2018-10-30 Intel Corporation Autonomous C-state algorithm and computational engine alignment for improved processor power efficiency
WO2016203647A1 (ja) * 2015-06-19 2016-12-22 株式会社日立製作所 計算機及び処理のスケジューリング方法
US9891695B2 (en) * 2015-06-26 2018-02-13 Intel Corporation Flushing and restoring core memory content to external memory
US20170039093A1 (en) * 2015-08-04 2017-02-09 Futurewei Technologies, Inc. Core load knowledge for elastic load balancing of threads
CN106055079B (zh) * 2016-05-31 2017-11-24 广东欧珀移动通信有限公司 一种中央处理器的管理方法、及装置
US10275008B2 (en) * 2016-09-22 2019-04-30 Intel Corporation Methods and apparatus to reduce computing device power consumption
US20180188797A1 (en) * 2016-12-29 2018-07-05 Intel Corporation Link power management scheme based on link's prior history
US11054883B2 (en) * 2017-06-19 2021-07-06 Advanced Micro Devices, Inc. Power efficiency optimization in throughput-based workloads
US10565079B2 (en) 2017-09-28 2020-02-18 Intel Corporation Determination of idle power state
US11119830B2 (en) * 2017-12-18 2021-09-14 International Business Machines Corporation Thread migration and shared cache fencing based on processor core temperature
US11275430B2 (en) * 2018-08-28 2022-03-15 Advanced Micro Devices, Inc. Power management advisor to support power management control
US10817046B2 (en) * 2018-12-31 2020-10-27 Bmc Software, Inc. Power saving through automated power scheduling of virtual machines
US11740679B2 (en) * 2020-09-08 2023-08-29 Micron Technology, Inc. Adaptive sleep transition techniques

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458558A (zh) * 2007-12-10 2009-06-17 英特尔公司 将处理器封装转换到低功率状态

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8224639B2 (en) * 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
JP3914230B2 (ja) * 2004-11-04 2007-05-16 株式会社東芝 プロセッサシステム及びその制御方法
US20060156041A1 (en) * 2005-01-07 2006-07-13 Lee Zaretsky System and method for power management of plural information handling systems
US7924925B2 (en) * 2006-02-24 2011-04-12 Freescale Semiconductor, Inc. Flexible macroblock ordering with reduced data traffic and power consumption
JP2008191949A (ja) * 2007-02-05 2008-08-21 Nec Corp マルチコアシステムおよびマルチコアシステムの負荷分散方法
US7886172B2 (en) * 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US7934110B2 (en) * 2007-09-25 2011-04-26 Intel Corporation Dynamically managing thermal levels in a processing system
JP4649456B2 (ja) * 2007-09-26 2011-03-09 株式会社東芝 べき乗計算装置、べき乗計算方法及びプログラム
US20090235108A1 (en) * 2008-03-11 2009-09-17 Gold Spencer M Automatic processor overclocking
JP2009251967A (ja) * 2008-04-07 2009-10-29 Toyota Motor Corp マルチコアシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458558A (zh) * 2007-12-10 2009-06-17 英特尔公司 将处理器封装转换到低功率状态

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Predict and Act: Dynamic Thermal Management for Multi-Core Processors;Raid Ayoub等;《Proceedings of the 14the ACM/IEEE international symposium on Low power electronics and design》;20090821;99-104页, *

Also Published As

Publication number Publication date
US20110161627A1 (en) 2011-06-30
DE102010054337A1 (de) 2011-06-30
CN102110025A (zh) 2011-06-29
JP5460565B2 (ja) 2014-04-02
CN105912303B (zh) 2018-11-13
CN105912303A (zh) 2016-08-31
JP2011150694A (ja) 2011-08-04
US8887171B2 (en) 2014-11-11
DE102010054337B4 (de) 2016-09-15
TW201140452A (en) 2011-11-16
TWI525547B (zh) 2016-03-11

Similar Documents

Publication Publication Date Title
CN102110025B (zh) 避免无效核跳跃和提供硬件辅助的低功率状态选择的方法和设备
Zhou et al. Temperature-constrained reliability optimization of industrial cyber-physical systems using machine learning and feedback control
Bui et al. Energy efficiency for cloud computing system based on predictive optimization
Awad et al. Machine learning in action: Examples
CN100561461C (zh) 用于经由资源分配和限制的异构芯片多处理器的装置和方法
US8024590B2 (en) Predicting future power level states for processor cores
CN107408062A (zh) 用于卸载和加载处理器/协处理器安排的数据的技术
Ababei et al. A survey of prediction and classification techniques in multicore processor systems
CN103562870A (zh) 异构核心的自动加载平衡
CN103119580A (zh) 异构多处理器计算平台中的应用调度
CN101390067A (zh) 增强众核处理器的可靠性
EP4174590A2 (en) Combined learned and dynamic control method
ul Islam et al. Task aware hybrid DVFS for multi-core real-time systems using machine learning
Yun et al. Predicting thermal behavior for temperature management in time-critical multicore systems
JP7342833B2 (ja) 制御装置、コントローラ、制御システム、制御方法、および制御プログラム
CN112771498A (zh) 用于实施智能处理计算架构的系统和方法
Agne et al. Self-awareness as a model for designing and operating heterogeneous multicores
CN101971141A (zh) 用于管理混合计算环境的系统和方法
Goubaa et al. Scheduling periodic and aperiodic tasks with time, energy harvesting and precedence constraints on multi-core systems
KR20240004362A (ko) 유휴 지속기간 이력에 기초한 저전력 상태 선택
CN113157043B (zh) 基于强化学习的异构多核处理器动态电压调节方法及系统
US11640195B2 (en) Service-level feedback-driven power management framework
US20220214917A1 (en) Method and system for optimizing rack server resources
Chen et al. Quality optimization of adaptive applications via deep reinforcement learning in energy harvesting edge devices
WO2019153188A1 (en) Gpu power modeling using system performance data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant