CN106125885B - 用于功率管理的系统和方法 - Google Patents
用于功率管理的系统和方法 Download PDFInfo
- Publication number
- CN106125885B CN106125885B CN201610451692.0A CN201610451692A CN106125885B CN 106125885 B CN106125885 B CN 106125885B CN 201610451692 A CN201610451692 A CN 201610451692A CN 106125885 B CN106125885 B CN 106125885B
- Authority
- CN
- China
- Prior art keywords
- pause
- power management
- response
- timer
- timer period
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Power Sources (AREA)
Abstract
一种系统包括多个处理器核心。处理器核心可包括一个或多个应用处理器(AP)核心和自举处理器(BSP)核心。基本输入/输出系统(BIOS)包括:I/O设备模块,其响应于I/O操作而调用暂停函数;功率管理模块,其与I/O设备耦合;以及定时器模块,其与功率管理模块耦合。功率管理模块基于暂停函数的暂停延时来调节定时器模块的定时器周期。功率管理模块可钩上暂停函数,并且将暂停延时与预定阈值进行比较,并且响应于确定出暂停延时较长而将定时器周期设定成暂停延时。功率管理模块可在定时器周期内将BSP置于睡眠模式以节约电力。
Description
本申请是申请日为2010年12月21日并且申请号为201080070815.7的中国专利申请的分案申请。
背景技术
当系统运行时,许多数字/电子系统会消耗电力。即使在电子系统的一个或多个部件或子系统空闲的情形下,一个或多个子系统仍会消耗电力。例如,在计算系统中,当系统不使用一个或多个处理器的全部计算能力时,计算系统中的一个或多个处理器会不必要地消耗电力。一些系统可利用操作系统(OS)来将处理器置于低功率模式。
附图说明
本文描述的发明是在附图中通过举例的方式而不是通过限制的方式进行说明的。为了阐述简单和清晰起见,图中所图示的元件不一定是按比例绘制的。例如,为清晰起见,一些元件的尺寸可相对于其它元件放大。此外,在适当的情况下,在各图中重复使用附图标记以指示对应或类似的元件。
图1A是根据本发明的实施例的示例性系统的框图。
图1B是根据本发明的可选实施例的另一示例性系统的框图。
图2是根据本发明的实施例的另一示例性系统的示意图。
图3A和图3B是依照本发明的一些实施例的流程图。
图4A和图4B是依照本发明的一些实施例的示例性的定时器周期变化的示意图。
图5A和图5B是依照本发明的一些实施例的流程图。
具体实施方式
下面的说明描述了提供一种提供降低功耗模式的使用模型的技术。该技术的实现不限于计算系统;该技术可为相似目的而由任何执行环境使用,例如任何其它数字/电子设备。在下面的说明中,为提供对本发明的更全面的理解,阐明了多个具体的细节,例如逻辑实现、操作码、指定操作数的方法、资源划分/共享/复制实现、系统部件的类型和相互关系,以及逻辑划分/集成选择。然而,本发明可在不具有这些具体细节的情况下实现。在其它实例中,为了不使发明变得不清晰,未详细示出控制结构和完整的软件指令序列。
本说明书中提及的“一个实施例”、“实施例”、“示例性实施例”等表明所描述的实施例可包括特定的特征、结构或特性,但是每个实施例不一定都包括特定的特征、结构或特性。而且,这些用语不一定指代相同的实施例。此外,当特定的特征、结构或特性与实施例结合描述时,无论是否明确地说明,都认为结合其它实施例来实施这样的特征、结构或特性是在本领域技术人员的知识范围内。
本发明的实施例可以硬件、固件、软件或其任意组合来实现。本发明的实施例还可实现为存储在机器可读介质上的指令,机器可读介质可由一个或多个处理器来读取和执行。机器可读介质可包括用于以机器能够读取的形式存储或传送信息的任何机构(例如,计算设备)。例如,机器可读介质可包括只读存储器(ROM);随机存取存储器(RAM);磁盘储存介质;光学储存介质;闪存设备;电、光、声音或其它形式的传播信号(例如,载波、红外信号、数字信号等)以及其它。
下面的说明可包括诸如“第一”、“第二”等术语,所述术语仅用于描述的目的而不应解释为限制。
图1A示出了系统100的示例性实施例的框图。系统100可包括处理器102。处理器102可包括能够执行软件和/或过程数据信号的任何类型的处理器。在实施例中,处理器102可包括复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、极长指令字(VLIW)微处理器、实现指令集组合的处理器或任何其它处理器设备,诸如数字信号处理器,诸如微处理器、数字信号处理器或微控制器。
尽管图1A仅示出了一个这样的处理器102,但在系统100中可存在一个或多个处理器,并且一个或多个处理器可包括多个线程、多个核心等。本改进不限于计算系统。本发明的可选实施例能够用于使用统一可扩展固件接口(UEFI)基本输入/输出系统(BIOS)的任何形状因数的设备,诸如手持式设备和嵌入式应用。手持式设备的一些示例包括蜂窝电话、因特网协议设备、数字照相机、个人数字助理(PDA)或诸如上网本或笔记本的手持式PC。嵌入式应用可包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、宽域网(WAN)交换机或任何其它系统。
处理器102可与系统逻辑芯片104耦合。例如,图示实施例中的系统逻辑芯片104可以为存储器控制器中心(MCH)。在一个实施例中,MCH 104可提供到系统存储器106的存储器路径120,用于指令和数据存储和/或用于例如图形命令、数据和纹理的存储。存储器路径120可包括存储器总线。MCH 104可在处理器102、系统存储器106和系统100中的其它部件之间引导数据信号,并且在处理器102、系统存储器106和系统I/O之间桥接数据信号。存储器106可以为硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存,或能够由处理器102读取的任何其它类型的介质。
MCH 104可经由局部I/O互连与I/O控制器中心(ICH)108耦合。在实施例中,局部I/O互连可以为高速I/O总线,诸如外围部件互连(PCI)总线。ICH 108可例如经由局部I/O互连提供与一个或多个I/O设备的连接。一些示例可包括数据储存设备118、音频I/O 120、键盘/鼠标I/O 122和网络控制器116,或其它集成的I/O部件,诸如集成驱动器电子器件(IDE)、局域网(LAN)和诸如通用串行总线(USB)的串行扩展端口、PCI插槽(未示出)、无线收发器、传统I/O控制器等。数据储存设备118可包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或其它大容量储存设备。
参照图1A,诸如闪存112的非易失性存储器可经由例如低引脚数(LPC)总线与ICH108耦合。BIOS固件114可驻存在闪存112中,并且启动可执行来自闪存的指令或固件。尽管图1A示出了闪存112中的BIOS固件114,但在一些实施例中,BIOS固件114可存储在诸如固件中心等其它非易失性存储器中。在实施例中,BIOS固件114可由统一可扩展固件接口(UEFI)固件或任何其它固件来实现。
尽管图1A示出了系统100,但根据本发明的实施例可用于任何其它硬件架构,诸如使用多个处理器核心的平台或使用处理器或协同处理器的平台,可以使用利用I/O中心的平台或嵌入到处理器内的存储器控制等。
图1B示出了实现本发明的原理的系统140的可选实施例。系统140可以包括处理器142。处理器142可包括能够执行软件和/或过程数据信号的任何类型的处理器。在实施例中,处理器142可包括任何类型的处理器或上文关于处理器102所提到的处理器设备。在实施例中,处理器142可经由用于指令和数据存储和/或用于例如图形命令、数据和纹理的存储的存储器路径(未示出)与系统存储器144耦合。在另一实施例中,处理器142可经由PCI互连与一个或多个外围部件互连(PCI)端口160耦合;然而,在一些实施例中,可能不需要PCI端口160。存储器144可以为硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存或能够由处理器142读取的任何其它类型的介质。
尽管图1B仅示出一个这样的处理器142,但是系统140中可存在一个或多个处理器,并且一个或多个处理器可包括多个线程、多个核心等等。本改进不限于计算机系统或数据处理设备系统。本发明的可选实施例能够用于使用统一可扩展固件接口(UEFI)基本输入/输出系统(BIOS)的任何形状因数的设备,诸如手持式设备和嵌入式应用。手持式设备的一些示例包括蜂窝电话、因特网协议设备、数字照相机、个人数字助理(PDA)或诸如上网本或笔记本的手持式PC。嵌入式应用可包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、宽域网(WAN)交换机或任何其它系统。
处理器142可与系统逻辑芯片146耦合。例如,图示实施例中的系统逻辑芯片146可以为平台控制器中心(PCH)。在一个实施例中,PCH 146可例如经由局部I/O互连提供与一个或多个I/O设备的连接。在实施例中,局部I/O互连可以为高速I/O总线,诸如外围部件互连(PCI)总线。PCH 146可在处理器142和系统140中的一个或多个其它部件之间引导数据信号或其它信息,并且在处理器142和系统I/O之间桥接数据信号或信息。
一个或多个部件的一些示例可包括数据储存设备142、一个或多个PCI端口154、联网控制156、USB端口158。在一个实施例中,数据储存设备152可包括硬盘驱动其、软盘驱动其、CD-ROM设备、闪存设备或其它大容量储存设备。尽管图1B示出了部件的一些示例,但PCH146可提供与其它部件的连接,诸如音频I/O、键盘/鼠标I/O、和诸如集成驱动电子器件(IDE)的其它集成I/O部件、局域网(LAN)和其它串行扩展端口、无线收发器、传统I/O控制器等。
参照图1B,诸如闪存148的非易失性存储器可经由例如低引脚数(LPC)总线与PCH146耦合。BIOS固件150可驻存在闪存148中,并且启动可执行来自闪存的指令或固件。尽管图1B示出了闪存148中的BIOS固件150,但在一些实施例中,BIOS固件150可存储在诸如固件中心等其它非易失性存储器中。在实施例中,BIOS固件150可由统一可扩展固件接口(UEFI)固件或任何其它固件来实现。
尽管图1B示出了系统140,根据本发明的实施例可用于任何其它硬件和软件架构,例如使用多个处理器核心的平台或使用处理器或协同处理器的平台,可以使用利用I/O中心的平台,或嵌入在处理器内的存储器控制等。
图2是示出本发明的实施例的硬件和固件的分层视图的框图。参照图2,系统200可包括一个或多个逻辑处理器和自举处理器(BSP)204。在实施例中,逻辑处理器可以为应用处理器(AP)202。AP 202和BSP 204可执行固件220。在另一实施例中,处理器可响应于加电而被随机地指定为AP或BSP。在实施例中,固件220可在BIOS环境中实现,例如,UEFI环境或任何其它操作系统(OS)缺失应用环境。尽管图2示出了四个处理器核心,但在一些实施例中,系统200中可包括不同数量的处理器核心。尽管图2示出了AP 202和BSP 204,但实施例可用于具有任何其它处理器核心的系统中。
参照图2,在实施例中,AP 202和/或BSP 204可在各种功率模式下操作。在实施例中,UEFI固件220可提供指令以指示AP 202和/或BSP 204在低功率模式(包括例如P状态、C状态或任何其它睡眠状态)下运行,或者禁用一个或多个处理器。例如,UEFI固件220可提供指令以指示AP 202和/或BSP 204在P状态下运行,其中处理器可在最低/较低电压和/或最低/较低频率下运行。例如,在P状态下,AP 202可不具有全部计算能力而是具有部分计算能力。在另一实施例中,在P状态下,BSP 204可具有I/O能力,例如,轮询I/O状态位就绪。在另一实施例中,固件220可提供指令以指示处理器202和/或204在C状态下运行,其中处理器中的至少一个或多个部件可掉电,以使处理器不运行但保持处理器的状态。在实施例中,BSP204可具有唤醒处于睡眠状态的AP 202的能力。
在另一实施例中,固件220可提供指令以指示AP 202在禁用状态下运行,其中AP202可被禁用。在实施例中,禁用的AP 202对BSP 204不可见。在实施例中,在禁用状态下,可禁用中断唤醒能力。在另一实施例中,BSP 204可在P状态下运行以轮询I/O设备状态位就绪。在一个实施例中,处于C状态的处理器可比在P状态下消耗更少的电力。在另一实施例中,当不存在I/O活动时,BSP 204可在C状态下运行。
参照图2,在实施例中,UEFI固件220可包括一个或多个I/O设备模块,诸如网络I/O设备模块212和磁盘I/O设备模块214。在实施例中,响应于诸如网络传输、网络下载、硬盘存取、病毒扫描、数据备份的I/O操作或事件,或诸如播放MP3歌曲、在预启动/OS之前观看图片/电影、离线下载、因特网语音协议(VoIP)等任何其它I/O操作或请求,I/O设备模块212和磁盘I/O设备模块214可调用自举暂停(stall)函数。参照图2,I/O设备模块可与功率管理驱动器或模块216接口。UEFI固件220可进一步提供定时器218。在一个实施例中,固件220可调节定时器218的定时器周期,以平衡功率消耗和任务负荷。
在一个实施例中,可响应于诸如系统启动进入UEFI模式以及从不存在于连续OS或预OS模式的系统启动,加载功率管理模块或控制模块216。在另一实施例中,响应于主OS(例如,Windows、Linux、嵌入式软件和/或图形用户界面等)处于睡眠模式(例如,S3或S4环境),功率管理模块216可被加载。加载的功率管理模块216可禁用AP 202或者响应于系统启动而将AP 202置于睡眠模式或低功率模式,例如,P状态或C状态,或者OS睡眠模式或其它OS缺失环境。诸如BSP 204的主处理器在例如睡眠或低功率模式下将正常地运作。在另一实施例中,功率管理模块216可在AP 202被禁用或者被置于睡眠或低功率模式之后被加载。
响应于I/O操作,I/O设备模块212或214可调用启动服务stall()函数。在加载功率管理模块216之前,启动服务stall()函数可被调用。在实施例中,BSP 204可不睡眠,但是可被置于例如P状态(其可能不是最低功率状态),并且可以总是检查I/O就绪。响应于功率管理模块216被加载,加载的功率管理模块216可通过例如图3A和图3B或者图5A和图5B所示的流程来拦截原始启动服务暂停函数。响应于stall()函数被I/O设备模块调用,加载的功率管理模块216可将stall()函数的暂停延时与预定阈值进行比较。在实施例中,阈值可为定时器模块218的最小定时器周期;然而,在一些实施例中,阈值可以不是最小定时器周期。在另一实施例中,可基于一个或多个因素确定阈值,所述因素例如为定时器模块218的精度或期望的功率消耗或其它因素。
响应于确定暂停延时较短,功率管理模块216可调用原始保存的启动服务stall()函数,其中BSP 204总是轮询定时器I/O,直到满足延时时间。响应于暂停延时的结束时间,功率管理模块216可退出暂停函数。
在另一实施例中,响应于功率管理模块216确定出暂停延时较长,功率管理模块216可进一步将暂停延时与定时器218的当前定时器周期进行比较。响应于确定出暂停延时等于当前定时器周期,定时器模块218的定时器周期可将BSP 204置于最低功率状态,例如C状态,该状态可消耗比P状态低的功率。BSP 204可通过来自定时器218的定时器中断事件而被唤醒,例如,在定时器周期结束时。BSP 204可从睡眠C状态被唤醒。在另一实施例中,功率管理模块216可响应于定时器中断而退出stall()函数。在一些实施例中,当处理器处于低功率状态时,总线上的其它设备可不处于低功率模式。例如,网络接口卡(NIC)适配器可发送分组到处理器和接收来自处理器的分组,或者当处理器处于低功率模式时硬盘驱动器可控制经过PCI总线的直接存储器存取。
在一个实施例中,响应于确定出暂停延时不等于当前定时器周期,功率管理模块216可将定时器周期设定成stall()函数的暂停延时。功率管理模块216可进一步钩上(hook)定时器中断以设定诸如定时器回叫事件的定时器事件。BSP 204可被置于C状态并且可在定时器周期结束时唤醒。在定时器中断回叫函数中,功率管理模块216可监控是否调用持续的或后续的暂停。响应于确定出不存在持续暂停,定时器周期可被设定回或恢复回系统缺省值。相反,功率管理模块216可继续检查持续暂停。在另一实施例中,定时器中断可被周期性地调用,并且定时器事件可被钩到定时器中断处理程序中并且可被选择性地激活或禁用。
图3A和图3B示出了根据本发明的实施例的示例性方法的流程图。参照图2和图3A,在方框302中,示出了示例性的环境,其中系统启动可例如响应于系统100被加电而执行。在实施例中,BIOS 114(例如,UEFI固件220)可提供指令和操作以响应于系统启动而初始化系统100。在实施例中,方框302中的系统启动可不包括OS启动阶段。在另一实施例中,方框302中的系统启动可与预OS阶段有关。在方框304中,示出了另一OS缺失环境的实施例,其中系统100可在S3环境中操作。在实施例中,S3环境可为睡眠模式、待机模式或挂起到RAM保持加电的RAM模式。在实施例中,在S3环境下,可禁用OS、应用、打开文档或任何其它软件。在实施例中,在S3环境中,禁用的软件仍可驻存在存储器中。尽管图3A示出了S3环境,但在一些实施例中,图3A的流程可适用于其它OS缺失环境,诸如S4环境或其中主OS(例如,Windows、Linux等)处于睡眠模式的系统休眠。
在方框306中,BIOS 114可提供指令和/或操作,以将AP 202置于C状态或P状态,或者可响应于系统启动进入UEFI 220(方框302)或系统进入S3或S4环境(方框304)或其它OS缺失环境而禁用AP 202。在实施例中,BIOS 114可提供指令或操作以启动进入UEFI以将AP202置于P状态、C状态或禁用状态,并且可不将UEFI退入连续OS。在另一实施例中,系统100可不进入OS但是可在OS缺省应用环境中操作,其中BIOS 114或UEFI固件220为执行环境。
流程进行到方框308。在方框308中,响应于诸如网络I/O操作或硬盘I/O操作等的I/O操作,对应的I/O设备模块212或214可由BSP 204执行以调用启动服务暂停函数。流程可进行到菱形310,其中BSP 204可检查用于功率管理模块216的功率管理驱动器是否被加载。参照图3,在方框316中,响应于确定出功率管理驱动器未被加载,调用启动服务暂停函数。
在菱形310中,响应于确定出功率管理驱动器被加载,流程可进行到方框312,其中功率管理模块216可被配置为钩上启动服务暂停函数。在菱形314中,功率管理模块216可被配置为检查启动服务暂停函数的暂停延时是否小于预定阈值。响应于确定出暂停延时小于预定阈值(菱形314),流程可进行到方框316以调用启动服务暂停函数。
相反,如果菱形314的结果表明暂停延时不小于预定阈值,则流程可进行到方框316,以检查暂停延时是否等于定时器模块218的当前定时器周期,例如,系统缺省值。在菱形318中,响应于确定出暂停延时等于当前定时器周期,功率管理模块216可被配置成在暂停延时或当前定时器周期期间内将BSP 204置于C状态。在方框320中,可在暂停延时或定时器周期结束时触发定时器中断,并且功率管理模块216可唤醒BSP 204。在实施例中,BSP204可被唤醒并且可在方框326中退出暂停函数。唤醒BSP 204可检查I/O就绪状态位。如果确定出I/O就绪状态位被置位,则BSP 204可退出执行I/O操作。相反,如果唤醒BSP 204确定出I/O就绪状态位在暂停延时期间内未被置位,则BSP 204可不执行I/O操作。在另一实施例中,如果唤醒BSP 204确定出I/O就绪状态位在暂停延时期间内未被置位,则对应的I/O设备模块212或214可调用另一BS暂停函数,例如,根据308至326。
再次参照图3A,响应于确定出暂停延时不等于当前定时器周期(菱形318),功率管理模块216可被配置成将定时器周期设定为暂停延时(方框322)。在方框324中,功率管理模块216可设定定时器回叫事件。参照图3B,在实施例中,可响应于定时器回叫事件的设定而调用定时器中断回叫函数(方框328)。在菱形330中,在定时器中断回叫函数中,功率管理模块216可监控是否调用持续暂停。响应于确定出将不存在持续暂停,则定时器周期可被设定或恢复回系统缺省值(方框332)。相反,功率管理模块216可在菱形330中继续检查持续暂停。返回参照图3A,响应于在方框324中设定定时器回叫事件,流程可进行到方框320。
图4A和图4B示出了示例性实施例以显示基于系统I/O负荷的工作负荷的定时器周期的变化。参照图4A和图4B,缺省的定时器周期可为100毫秒。在200毫秒的时点处,任务A开始I/O操作,并且功率管理模块216可根据与I/O操作对应的BS暂停函数的暂停延时而将定时器周期调节成例如10毫秒。BSP 204可在每10毫秒周期内保持较低功率状态。在实施例中,BSP 204可被设定成较高功率状态以在每10毫秒时检查I/O状态。在230毫秒的时点处,BSP 204发现状态位被置位并且随后可执行任务A达20毫秒,如图4A中的C所示。响应于BSP204在250毫秒的时点完成I/O操作,可执行功率管理模块216以将10毫秒的定时器周期恢复回100毫秒,如图4B所示。
参照图4A,在350毫秒的时点,任务B开始I/O操作。功率管理模块216可被配置成根据I/O操作而将定时器周期调节成50毫秒。BSP 204可在每50毫秒的定时器周期内保持在较低的功率状态,例如C状态。BSP 204可被设定成较高功率状态--P状态,以便每50毫秒检查I/O状态位。当BSP 204在450毫秒的时点检测到状态位被置位时,其可执行任务达50毫秒(图4A中的D所示)。当BSP 204在450毫秒的时点完成I/O操作时,功率管理模块216可将50毫秒的定时器周期再次恢复回缺省值,例如100毫秒。
在实施例中,I/O设备模块212和214可不知道暂停服务的变化。在另一实施例中,用于I/O操作的暂停函数的暂停延时可被预先确定为比确定的阈值长,并且处理器可根据图3A和图3B的流程而停留在低功率状态,例如C状态。
图5A和图5B示出了根据本发明的实施例的示例性方法的流程图。参照图5A,方框502和504的描述可分别类似于方框302和304。在方框506中,用于功率管理模块216的功率管理驱动器可被加载。在方框508中,功率管理驱动器可将一个或多个AP置于P状态、C状态或禁用状态。在方框510中,功率管理驱动器可钩上BS暂停函数。在方框512中,功率管理驱动器可置位标记Tmin,其可指示与定时器218相关的阈值。在方框514中,功率管理驱动器可将定时器218的定时器周期更新成缺省定时器周期Td。在方框516中,功率管理驱动器可将标记Tcurrent设定成Td。例如,标记Tcurrent可指示当前定时器周期。在方框518中,功率管理驱动器可将标记TimerChange和标记Continue设定成“假(FALSE)”。标记TimerChange可指示定时器周期是否改变。标记Continue可指示是否存在待调用的持续暂停函数。在方框520中,功率管理驱动器可钩上定时器中断处理程序。在方框522中,流程可退出功率管理驱动器。在一个实施例中,方框506至522的流程可用于功率管理驱动器的初始化。
参照图5B,在方框524中,响应于诸如网络I/O操作或硬盘I/O操作等的I/O操作,对应的I/O设备模块212或214调用启动服务暂停函数。在菱形526中,功率管理模块216可检查启动服务暂停函数的暂停延时是否小于Tmin,例如,预定阈值。响应于确定出暂停延时小于预定阈值,则流程进行到方框528以调用启动服务暂停函数。方框528中的流程可参照图3A的方框316。
在菱形530中,功率管理模块216可被配置成检查标记TimerChange是否等于“真(TRUE)”。在方框534中,响应于标记TimerChange等于真,则功率管理模块216可在方框534中将标记Continue设定成真。相反,响应于确定出标记TimerChange不等于真,则功率管理模块216可在菱形532中进一步确定暂停延时是否等于标记Tcurrent。响应于确定出暂停延时和标记Tcurrent相等(菱形532),流程可进行到方框542。相反,流程可进行到方框536,其中功率管理模块216可将标记TimerChange和标记Continue设定成真。在方框538中,功率管理模块216可将标记Tcurrent设定成暂停延时。在方框540中,功率管理模块216可基于Tcurrent来更新定时器218的定时器周期。
在方框542中,功率管理模块216可将BSP 204置于C状态。在方框544中,例如可在定时器周期结束时由定时器中断唤醒BSP 204。BSP 204可在唤醒时检查I/O就绪。在方框564中,当定时器中断触发时,暂停函数不运行。流程进行到方框546以在功率管理驱动器初始化期间运行在方框520中钩上的定时器中断处理程序。
在菱形548中,功率管理模块216可检查标记TimerChange是否为真。在方框560中,响应于确定出标记TimerChange不为真,功率管理模块216可退出定时器中断。相反,流程可进行到菱形550,其中检查标记Continue为真。如果标记Continue不为真,则流程可进行到方框552,其中功率管理模块216可将标记Continue设定成假,然后流程可退出定时器周期。如果标记Continue不为真(菱形550),则流程可进行到方框554,其中Tcurrent被设定成Td。在方框556中,TimerChange标记被设定成假,并且定时器218的定时器周期被更新成Tcurrent(方框558),并且流程可进行到560。在562中,在退出定时器中断之后,如果暂停函数仍在运行,则流程可进行到562以退出暂停函数。
尽管图示的图3A、图3B、图5A和图5B中的方法包括处理序列,但在一些实施例中方法可按不同的次序执行图示的过程。
尽管已经参照实施例对本发明的一些特征进行了说明,但描述不意在以限制的含义进行解释。对本发明所属领域的技术人员显而易见的实施例的各种变型以及本发明的其它实施例被视为落在本发明的精神和范围内。
Claims (16)
1.一种用于功率管理的系统,包括:
多个处理器核心;
基本输入输出系统,其与所述处理器核心耦合,其中所述基本输入输出系统包括:
I/O设备模块,其响应于I/O操作而调用暂停函数;
功率管理模块,其与所述I/O设备模块耦合;以及
定时器模块,其与所述功率管理模块耦合,
其中所述功率管理模块用于:响应于确定所述暂停函数的暂停延时不小于预定阈值并且不等于所述定时器模块的定时器周期,将所述定时器周期设定为所述暂停延时;在所述定时器周期期间将处理器核心置于睡眠状态;设定定时器回叫事件以监控后续的暂停函数;响应于检测到在所述定时器回叫事件中没有调用所述后续的暂停函数,将所述定时器周期设定为缺省值;以及在所述定时器周期结束时唤醒所述处理器核心。
2.如权利要求1所述的系统,其中响应于确定用于所述功率管理模块的功率管理驱动器未被加载,所述基本输入输出系统调用所述暂停函数。
3.如权利要求1所述的系统,其中如果用于所述功率管理模块的功率管理驱动器被加载,则所述功率管理模块进一步钩住所述暂停函数。
4.如权利要求1所述的系统,其中所述处理器核心包括一个或多个逻辑处理器核心和自举处理器核心。
5.一种用于功率管理的方法,包括:
将处理器核心置于禁用模式或睡眠模式;
响应于响应I/O操作而被调用的暂停函数,将所述暂停函数的暂停延时与和定时器相关的预定阈值进行比较;
响应于确定所述暂停延时不小于所述预定阈值并且所述暂停延时不等于当前定时器周期,将所述当前定时器周期设定成所述暂停延时;
在所述当前定时器周期期间将自举处理器核心设定为处于所述睡眠模式;
设定定时器回叫事件以监控后续的暂停函数;
响应于检测到没有调用所述后续的暂停函数,将所述当前定时器周期设定为缺省值;以及
在所述当前定时器周期结束时唤醒所述自举处理器核心。
6.如权利要求5所述的方法,还包括:
设定定时器事件以监控是否存在持续暂停。
7.如权利要求5所述的方法,其中在操作软件应用缺失操作中将所述处理器核心置于禁用模式或睡眠模式。
8.如权利要求5所述的方法,其中所述自举处理器核心在所述当前定时器周期结束时由定时器中断唤醒以检测对于I/O操作的I/O就绪。
9.如权利要求6所述的方法,还包括:
响应于确定不存在持续暂停而将所述当前定时器周期设定成缺省值。
10.一种包括机器可读代码的有形机器可读介质,所述机器可读代码响应于被执行而使得计算系统用于执行如权利要求5-9中的任一项所述的方法。
11.一种用于功率管理的设备,包括:
存储指令的存储器;以及
耦合到所述存储器的处理器,所述指令在被所述处理器执行时执行如权利要求5-9中的任一项所述的方法。
12.一种用于功率管理的装置,包括:
用于将处理器核心置于禁用模式或睡眠模式的单元;
用于响应于响应I/O操作而被调用的暂停函数,将所述暂停函数的暂停延时与和定时器相关的预定阈值进行比较的单元;
用于响应于确定所述暂停延时不小于所述预定阈值并且所述暂停延时不等于当前定时器周期,将所述当前定时器周期设定成所述暂停延时的单元;
用于在所述当前定时器周期期间将自举处理器核心设定为处于所述睡眠模式的单元;
用于设定定时器回叫事件以监控后续的暂停函数的单元;
用于响应于检测到没有调用所述后续的暂停函数,将所述当前定时器周期设定为缺省值的单元;以及
用于在所述当前定时器周期结束时唤醒所述自举处理器核心的单元。
13.如权利要求12所述的装置,还包括:
用于设定定时器事件以监控是否存在持续暂停的单元。
14.如权利要求12所述的装置,其中在操作软件应用缺失操作中将所述处理器核心置于禁用模式或睡眠模式。
15.如权利要求12所述的装置,其中所述自举处理器核心在所述当前定时器周期结束时由定时器中断唤醒以检测对于I/O操作的I/O就绪。
16.如权利要求13所述的装置,还包括:
用于响应于确定不存在持续暂停而将所述当前定时器周期设定成缺省值的单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610451692.0A CN106125885B (zh) | 2010-12-21 | 2010-12-21 | 用于功率管理的系统和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201080070815.7A CN103282854B (zh) | 2010-12-21 | 2010-12-21 | 用于功率管理的系统和方法 |
CN201610451692.0A CN106125885B (zh) | 2010-12-21 | 2010-12-21 | 用于功率管理的系统和方法 |
PCT/CN2010/002106 WO2012083486A1 (en) | 2010-12-21 | 2010-12-21 | System and method for power management |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080070815.7A Division CN103282854B (zh) | 2010-12-21 | 2010-12-21 | 用于功率管理的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106125885A CN106125885A (zh) | 2016-11-16 |
CN106125885B true CN106125885B (zh) | 2019-12-31 |
Family
ID=46236047
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080070815.7A Expired - Fee Related CN103282854B (zh) | 2010-12-21 | 2010-12-21 | 用于功率管理的系统和方法 |
CN201610451692.0A Expired - Fee Related CN106125885B (zh) | 2010-12-21 | 2010-12-21 | 用于功率管理的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080070815.7A Expired - Fee Related CN103282854B (zh) | 2010-12-21 | 2010-12-21 | 用于功率管理的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8977871B2 (zh) |
EP (1) | EP2656169A4 (zh) |
JP (1) | JP5701399B2 (zh) |
KR (1) | KR101510028B1 (zh) |
CN (2) | CN103282854B (zh) |
WO (1) | WO2012083486A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8886247B1 (en) * | 2011-10-04 | 2014-11-11 | Amazon Technologies, Inc. | Proximity based power throttling |
US9442732B2 (en) * | 2012-03-19 | 2016-09-13 | Via Technologies, Inc. | Running state power saving via reduced instructions per clock operation |
US9575541B2 (en) | 2013-08-28 | 2017-02-21 | Via Technologies, Inc. | Propagation of updates to per-core-instantiated architecturally-visible storage resource |
US9792112B2 (en) | 2013-08-28 | 2017-10-17 | Via Technologies, Inc. | Propagation of microcode patches to multiple cores in multicore microprocessor |
US9465432B2 (en) | 2013-08-28 | 2016-10-11 | Via Technologies, Inc. | Multi-core synchronization mechanism |
USRE49652E1 (en) | 2013-12-16 | 2023-09-12 | Qualcomm Incorporated | Power saving techniques in computing devices |
WO2015099700A1 (en) * | 2013-12-24 | 2015-07-02 | Intel Corporation | Context-based indoor power management |
CN104572166A (zh) * | 2014-03-21 | 2015-04-29 | 中电科技(北京)有限公司 | 一种基于飞腾台式计算机的uefi固件实现方法 |
KR102151178B1 (ko) | 2014-05-19 | 2020-09-02 | 삼성전자 주식회사 | 직렬 통신 장치 및 그 방법 |
KR102247742B1 (ko) | 2015-04-21 | 2021-05-04 | 삼성전자주식회사 | 애플리케이션 프로세서와 시스템 온 칩 |
CN106209737B (zh) * | 2015-05-04 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 控制远程服务调用频率的方法和装置 |
US10108564B2 (en) * | 2016-03-28 | 2018-10-23 | Qualcomm Incorporated | Active and stall cycle based dynamic scaling of processor frequency and bus bandwidth |
CN113535239B (zh) | 2020-04-16 | 2023-08-18 | 长鑫存储技术有限公司 | 底层驱动转发方法及基于uefi实现的多核系统 |
CN113867518A (zh) * | 2021-09-15 | 2021-12-31 | 珠海亿智电子科技有限公司 | 处理器低功耗阻塞式延时方法、装置及可读介质 |
US11734055B2 (en) * | 2021-09-28 | 2023-08-22 | Dell Products L.P. | Minimizing C-state transitions due to software timer interrupts |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470512A (zh) * | 2007-12-24 | 2009-07-01 | 英业达股份有限公司 | 中央处理器的电源管理模块 |
US7827427B2 (en) * | 2006-09-28 | 2010-11-02 | Samsung Electronics Co., Ltd. | System-on-chip embodying sleep mode by using retention input/out device |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5437021A (en) * | 1992-06-12 | 1995-07-25 | Intel Corporation | Programmable dedicated timer operating on a clock independent of processor timer |
US5630142A (en) * | 1994-09-07 | 1997-05-13 | International Business Machines Corporation | Multifunction power switch and feedback led for suspend systems |
US6065122A (en) * | 1998-03-13 | 2000-05-16 | Compaq Computer Corporation | Smart battery power management in a computer system |
US6367023B2 (en) * | 1998-12-23 | 2002-04-02 | Intel Corporation | Method and apparatus of measuring current, voltage, or duty cycle of a power supply to manage power consumption in a computer system |
JP2001222346A (ja) * | 2000-02-10 | 2001-08-17 | Toshiba Corp | コンピュータ、コンピュータシステム、および省電力制御方法 |
US7152169B2 (en) * | 2002-11-29 | 2006-12-19 | Intel Corporation | Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state |
US7213093B2 (en) * | 2003-06-27 | 2007-05-01 | Intel Corporation | Queued locks using monitor-memory wait |
US7500127B2 (en) | 2003-09-18 | 2009-03-03 | Vulcan Portals Inc. | Method and apparatus for operating an electronic device in a low power mode |
US7334142B2 (en) * | 2004-01-22 | 2008-02-19 | International Business Machines Corporation | Reducing power consumption in a logically partitioned data processing system with operating system call that indicates a selected processor is unneeded for a period of time |
US8327363B2 (en) * | 2007-07-24 | 2012-12-04 | Microsoft Corporation | Application compatibility in multi-core systems |
US20100079472A1 (en) * | 2008-09-30 | 2010-04-01 | Sean Shang | Method and systems to display platform graphics during operating system initialization |
TW201020779A (en) * | 2008-11-18 | 2010-06-01 | Inventec Corp | System for auto-operating backup firmware and method thereof |
US20100146169A1 (en) * | 2008-12-05 | 2010-06-10 | Nuvoton Technology Corporation | Bus-handling |
US8607040B2 (en) | 2010-11-16 | 2013-12-10 | Intel Corporation | Method of provisioning firmware in an operating system (OS) absent services environment |
-
2010
- 2010-12-21 EP EP10861082.5A patent/EP2656169A4/en not_active Withdrawn
- 2010-12-21 KR KR1020137015286A patent/KR101510028B1/ko active IP Right Grant
- 2010-12-21 WO PCT/CN2010/002106 patent/WO2012083486A1/en unknown
- 2010-12-21 JP JP2013544993A patent/JP5701399B2/ja active Active
- 2010-12-21 CN CN201080070815.7A patent/CN103282854B/zh not_active Expired - Fee Related
- 2010-12-21 CN CN201610451692.0A patent/CN106125885B/zh not_active Expired - Fee Related
-
2011
- 2011-05-13 US US13/107,133 patent/US8977871B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7827427B2 (en) * | 2006-09-28 | 2010-11-02 | Samsung Electronics Co., Ltd. | System-on-chip embodying sleep mode by using retention input/out device |
CN101470512A (zh) * | 2007-12-24 | 2009-07-01 | 英业达股份有限公司 | 中央处理器的电源管理模块 |
Also Published As
Publication number | Publication date |
---|---|
CN103282854A (zh) | 2013-09-04 |
WO2012083486A1 (en) | 2012-06-28 |
JP5701399B2 (ja) | 2015-04-15 |
JP2014501982A (ja) | 2014-01-23 |
CN106125885A (zh) | 2016-11-16 |
KR101510028B1 (ko) | 2015-04-08 |
EP2656169A4 (en) | 2016-11-09 |
EP2656169A1 (en) | 2013-10-30 |
CN103282854B (zh) | 2016-08-10 |
US8977871B2 (en) | 2015-03-10 |
KR20130087564A (ko) | 2013-08-06 |
US20120159204A1 (en) | 2012-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106125885B (zh) | 用于功率管理的系统和方法 | |
US11422615B2 (en) | Platform power consumption reduction via power state switching | |
US7437575B2 (en) | Low power mode for device power management | |
RU2435200C2 (ru) | Быстрая загрузка операционной системы из выключенного состояния | |
US6760850B1 (en) | Method and apparatus executing power on self test code to enable a wakeup device for a computer system responsive to detecting an AC power source | |
US7523323B2 (en) | Method and apparatus for quick resumption | |
US8028177B2 (en) | Method for changing power states of a computer | |
US6128745A (en) | Power management inactivity monitoring using software threads | |
US8286169B2 (en) | Dynamic scheduling an interval for polling devices based on a current operational power mode in an extensible firmware interface architecture | |
US7093116B2 (en) | Methods and apparatus to operate in multiple phases of a basic input/output system (BIOS) | |
US8230237B2 (en) | Pre-boot environment power management | |
US20120072746A1 (en) | Facilitating power management in a multi-core processor | |
US8402291B2 (en) | Method, device, and system for guaranteed minimum processor power state dwell time | |
TW201329693A (zh) | 省電處理器架構 | |
EP1855182A2 (en) | Method and apparatus for managing power in a processing system with multiple partitions | |
JP5764150B2 (ja) | パワー・オン状態から省電力状態に移行させる方法およびコンピュータ | |
US20190004818A1 (en) | Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof | |
US6477655B1 (en) | System and method to set PME—status bit and wake up the system, and selectively load device driver by searching who set the bit without requiring clock | |
US9332064B2 (en) | Computer system and remote control method thereof | |
US7188236B2 (en) | Method for using a timer based SMI for system configuration after a resume event | |
US7337338B2 (en) | Information handling system capable of operation in reduced power states | |
WO2012126345A1 (zh) | 计算机的启动方法、启动装置、状态转换方法和状态转换装置 | |
US7272731B2 (en) | Information handling system having reduced power consumption | |
CN117008980A (zh) | 系统休眠方法及装置、系统唤醒方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191231 Termination date: 20201221 |