CN101313284A - 用于提供对处理器状态转换进行检测的方法和装置 - Google Patents
用于提供对处理器状态转换进行检测的方法和装置 Download PDFInfo
- Publication number
- CN101313284A CN101313284A CNA2006800434057A CN200680043405A CN101313284A CN 101313284 A CN101313284 A CN 101313284A CN A2006800434057 A CNA2006800434057 A CN A2006800434057A CN 200680043405 A CN200680043405 A CN 200680043405A CN 101313284 A CN101313284 A CN 101313284A
- Authority
- CN
- China
- Prior art keywords
- shared storage
- power supply
- thread
- supply status
- priority thread
- 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
Links
Images
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
- 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
- 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
-
- 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/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
- G06F11/3423—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/22—Microcontrol or microprogram arrangements
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Power Sources (AREA)
- Debugging And Monitoring (AREA)
Abstract
在一些实施例中,描述了用于对处理器状态转换进行检测的方法和装置。一些实施例包括至少两个线程,其提供对高和低优先级状态的检测,这些状态用于由操作系统进行电源状态转换:低优先级线程正好在进入空闲或低功耗状态之前运行;高优先级线程在空闲状态结束或最高功耗状态到达时运行。在一些实施例中,使用这些线程得以独立于操作系统而对处理器状态转换和空闲状态进行检测。还描述了其他实施例。
Description
技术领域
本发明的一些实施例一般涉及计算系统中的处理器状态转换(processor state transition)。
背景技术
计算系统的功耗,对于许多用户来说,正在变成一个日益敏感的问题。大多数情形下,用户希望较低的能源账单。用户可能还希望计算系统产生较少的噪声和热量,而通常在计算系统的功耗量与该计算系统产生的噪声和发热量之间存在正相关关系。另外,对于采用电池供电的计算系统,如膝上型计算机、蜂窝电话(“手机”)、个人数字助理(PDA)等,减少功耗具有增加计算系统电池寿命(即增加在电池必须充电或者更换之前计算系统的使用时间)的重要作用。
典型的计算系统包括很多不同的组件,例如处理器或微处理器、数据存储设备、以及各种输入/输出(I/O)设备。当计算系统未处于关闭状态时,该计算系统内的每个组件都可能消耗一定电能。此外,计算系统的微处理器体系结构复杂性的增加也对电源管理问题产生了很大影响。计算系统上运行的逻辑,例如软件应用程序,可能并未不知晓该计算系统或其组件的电源状态。这在软件应用程序的活动对于用户并不显而易见时可能会造成问题。此外,该逻辑可能在不同的操作系统上或者不同版本的操作系统(OS)上运行,并且可能无法从操作系统(OS)获取电源状态信息。
因此,需要为该逻辑提供使其能够知晓计算系统的电源管理状态的方式。特别地,该逻辑需要以一种不依赖于OS的方式来检测OS何时将要改变计算系统的电源状态。
附图说明
通过阅读下面的说明书及所附的权利要求,以及通过参考下述附图,本发明实施例的各种优势对于本领域技术人员来说将显而易见,其中:
图1是根据本发明的一些实施例的计算系统示例的方框图;
图2是根据本发明的一些实施例的计算系统示例的方框图;
图3是根据本发明的一些实施例,在具有电源状态进入/退出检测线程的示例性操作系统中的示例进程及线程优先级的方框图;
图4是根据本发明的一些实施例的用于发起电源状态检测的处理过程示例的流程图;
图5是根据本发明的一些实施例的针对高优先级检测线程的处理过程示例的流程图;和
图6是根据本发明的一些实施例的针对低优先级检测线程的处理过程示例的流程图。
具体实施方式
参考了本发明的一些实施例,并对这些实施例的例子在附图中进行了说明。虽然将结合这些实施例描述本发明,但是可以理解并不是要将本发明限制在这些实施例中。相反,本发明是要涵盖可被包括在由所附权利要求定义的本发明的实质和范围内的各种替代物、变型、以及等价物。此外,透彻理解。但是,本发明可以不需要这些特定细节来进行实施。在其他例子中,未对公知的方法、过程、组件和电路进行详细说明,以避免不必要地使本发明的各个方面难以理解。
本发明的一些实施例旨在提供用于检测处理器状态转换的系统和方法,例如(但不限于)采用单核心或者多核心处理器的计算系统。该系统的某些实施例可以检测各种电源管理状态,这些状态可以用来有效地检测计算系统或者一个或多个单核心或多核心处理器的空闲时间,所述状态例如(但不限于)各种处理器电源管理状态,即“C”状态,这些状态可由采用高级配置与电源接口(ACPI)规范(发布于2004年9月2日的ACPI版本3.0)的计算系统来支持。
本说明书中对本发明的“一个实施例”或“某些实施例”的引用表示,结合该实施例描述的特定的特性、功能、结构或者特征被包括在本发明至少一个实施例中。因此在整个说明书各处出现的“在一个实施例中”或“根据一实施例”等短语,并不必然指的是同一个实施例。
本发明的实施例可以在具有单个、双个或者其他多个核心微处理器的计算系统中实现,这样的系统正在变得非常复杂。这些多核心处理器通常包含唯一的计算资源,同时共享共同的二级(L2)高速缓存、共同的封装以及其他特性。这可能会导致电源管理问题,例如(但不限于):
a.进程调度可能会变得更复杂,因为操作系统(OS)可能不了解多个处理器在共享单个封装。这会导致进程在可用的处理核心上未被高效地调度,从而导致较高的功耗;
b.运行在计算系统上的应用程序可能未被归类为相对于后台应用程序(例如,但不限于,赛门铁的AntivirusTM或Personal FirewallTM)的交互式应用程序(例如,但不限于,微的ExcelTM或WordTM)。这些应用程序可能得不到平等的运行机会,它们的运行不一定是必需的,从而可能导致更多的电力消耗。对于采用电池工作的移动计算系统来说,电力消耗可能会造成问题。
英特公司制造的处理器引入多种技术,以针对广泛范围的服务支持低功耗和高性能处理。在某些情形下,处理器中支持低功耗及高性能处理的技术可以符合例如ACPI规范这样的电源管理系统。英特公司可在各种产品名称及模型编号中发布具有此项或者类似技术的一个或多个处理器系列。
此外,这里描述的本发明实施例还可以用来利用各种系统硬件支持的低功耗模式,即使这些模式并不被系统的OS所支持。例如,英特PXA26x和英特PXA27x处理器系列中的处理器包括性能切换技术。类似的技术包括在英特公司发布的各种移动处理器中,例如被称作移动英特奔III M处理器的一类处理器。包含在这些处理器中的用于性能切换的技术一般可称为英特尔技术。本发明实施例可以用来更高效地发挥这些技术所支持的节电的可能性。本发明的替代性实施例可以用来增强使用了其他种类处理器的处理系统的效率,所述处理器包括使用了其他种类的性能或电源管理技术的处理器。
图1和图2是根据本发明实施例的计算系统示例的方框图,给出了对于图3至图6所描述操作的实例。下述论述是要给出对于其中可实现本发明的某些方面的适当环境的一般性描述。此处用到的术语“计算系统”是要广泛地包括单个机器、或由以通信方式耦合并一起工作的机器或设备所组成的系统。示例性计算系统包括(但不限于)分布式计算系统、超级计算机、计算集群、大型计算机、小型计算机、客户机-服务器系统、个人计算机、工作站、服务器、便携式计算机、膝上型计算机、平板处理系统、电话机、个人数字助理(PDA)、手持设备、移动手持设备、例如音频和/或视频设备的娱乐设备和其他处理或传输信息的设备。
例如,图1和图2的系统可以以集成电路(IC)来实现。本领域技术人员可以理解,这些系统的组件可以耦合到一个或多个易失性或非易失性的数据存储设备。因此,这些图并未包括计算系统每个可能的组件。该计算系统还可以以通信方式耦合到大容量存储设备,例如一个或多个集成驱动电子设备(IDE)驱动器、小型计算机系统接口(SCSI)驱动器或其他类型的硬盘驱动器。根据本发明的实施例,可由计算系统使用的其他类型的大容量存储设备和存储媒介可包括软盘、光学存储、磁带、记忆棒、数字视频光盘、生物存储等。
此外,计算系统还可以包括一个或多个总线桥。一个或多个这样的桥以及相关联的总线可用来直接或间接地将如图1所示的处理器与另外的组件(例如一个或多个存储设备、设备控制器、输入/输出(I/O)端口和I/O设备)相连。例如,另外的组件可以包括视频控制器、SCSI控制器、网络控制器、通用串行总线(USB)控制器、键盘控制器等。在本发明的一些实施例中,这样的组件可以以嵌入式设备来实现,采用了如可编程或不可编程逻辑器件或者阵列、专用集成电路(ASIC)、嵌入式计算机、智能卡等等。
图1示出处理器110,其具有多个核心112(112a~112b),其中每一个核心112具有全部功能,其包括取指令单元、指令解码器、一级(L1)高速缓存114(114a~114b)、执行单元等。虽然所示处理器110具有两个核心112,但本发明实施例并不受此限制。事实上,这里描述的技术对任何关心功耗问题的多核心体系结构来说都会有用。因此,可以采用任意数量的核心,而不背离这里所描述的实施例的实质和范围。
每一个核心112都能够检测到请求该核心112转换到空闲状态的命令。该命令可能来自核心112内部,也可能来自该核心112外部。该空闲状态可以是一个处理器电源状态,如ACPI规范中描述的数个“C状态”之一。一般地,较深度的空闲状态与较低的功耗及较长的退出延迟相联系。还可以使用其他方法,例如(但不限于)直接监测处理器频率、处理器电压等。
处理器110可以具有一个二级(L2)高速缓存120,其由数个核心112所共享。另一方面,数个L1高速缓存114可以由相应的数个核心112分别专用。将如下面更详细论述所述,数个L1高速缓存114的专用性提供了针对每个核心进行电源管理的机会。数个核心112还具有数个专用时钟输入115(115a~115b),它们可以被进行门控以便基于每个核心获得节电。硬件协调逻辑(hardware coordination logic)116可以基于命令及多个核心112中每一个核心的空闲状态情形118(118a~118b)来管理给定核心112的功耗。通过协调多个核心112及多个空闲状态情形118,所示的处理器110能够支持更复杂的体系结构,并能够与传统的软件方法相比更快地对条件的变化做出响应。所示的处理器110还可以使用该协调逻辑116在实际电源状态转换之前启动节电特性。其结果会显著节电。
例如,基于利用率不足,可能确定第一个核心112a适合C4状态。C4状态与其他电源管理状态相比属深度状态,其通常与共享资源相联系,例如整个封装(package-wide)的电压和/或频率设置。另一方面,第二个核心112b可能处于活动状态。在这些情况下,协调逻辑116可以将第一个核心转换至“暂定(tentative)”状态,其涉及启动某些专用的节电特性,从而第一个核心112a仍然能够保存电能。此外,如果第二个核心112b随后接收到转换到C4状态的请求,协调逻辑116也可以启动共享节电特性,以便在数个核心112被转换到C4状态的同时保存更多电能。对于其他空闲状态,也可以通过检测何时所有的核心都转换到相同状态来获得类似的益处。
根据本发明的实施例,一个或多个操作系统(OS)122可以在处理器110上运行。在某些实施例中,OS 122可以加载到存储器(未示出)中,二者都可由处理器110访问。ACPI逻辑124可以在OS 122中实例化,以提供至少前面所描述的特性,并如本文其他地方所述,可进一步为本发明实施例提供状态信息。在本发明一些实施例中,OS 122和ACPI逻辑124可以存储在大容量存储设备(未示出)中,例如(但不限于)硬盘。
图2示出系统222,其具有处理器110’,该处理器具有已描述的多个核心112’(112a’~112b’)以及硬件协调逻辑116’。所示系统222还包括一个或多个输入/输出(I/O)设备224、随机存取存储器(RAM)226和只读存储器(ROM)228,这些组件经由芯片组230耦合至处理器110’。RAM 226和ROM 228存储指令232,所述指令可以由核心112’通过一个或多个线程和/或进程来执行,其中指令232的执行会引起功耗的增加。当核心112’接收到来自芯片组230和/或操作系统的空闲状态转换命令时,硬件协调逻辑116’能够充分地减少系统222的功耗。
根据本发明的实施例,一个或多个OS 122’可以在处理器110’上运行。ACPI逻辑124’可以在OS 122’中实例化,以提供至少前面所描述的特性,并如本文其他地方所述,可进一步为本发明实施例提供状态信息。在本发明一些实施例中,OS 122’和ACPI逻辑124’可以存储在大容量存储设备(未示出)中,例如(但不限于)硬盘。
本发明的实施例包括检测OS进入(及退出)处理器电源状态,例如(但不限于)那些指示OS处于空闲的处理器电源管理状态。根据本发明的实施例,一旦检测到进入/退出处理器电源管理状态,便可用平台和/或用户特定的首选设置以及关于前台及后台应用程序的情况来补充OS的调度程序(scheduler),以管理调度和/或电源管理。
在本发明的一些实施例中,所述方法和装置可以对由这里所提及的可在OS内运行的OS空闲处理程序(handler)和/或OS调度程序进行的进入和退出处理器电源管理状态执行检测。本发明可以通过参考或结合相关数据来进行描述,该相关数据包括指令、函数、过程、数据结构、应用程序等,其当被机器访问时使该机器执行任务或者定义抽象数据类型或底层硬件上下文。该数据一般可称为软件,并可以存储在易失性和/或非易失性数据存储装置中。
图3示出由OS分配的进程和线程的优先级。如框图300所示,在图的左侧纵向上对优先级进行了归类,这仅是为了便于理解,并且分别地列为硬件优先级302、分派(dispatch)优先级304、软件高优先级306、软件普通优先级308和软件低优先级310。在图3中右侧的一排是多个线程,如箭头所示,其与一个或多个进程相关联。在一些实施例中,中断服务例程312与硬件优先级302相关联;OS调度程序314与分派优先级304相关联,并如该实施例所示,其具有比如方框306、308和310所示的软件应用程序更高的优先级。根据本发明的实施例,OS调度程序314还可以决定哪一个线程和进程应该在下一个时间段(time quantum)中执行。另外,通常还可能有OS空闲处理程序,其位于较低优先级(包括方框306、308和310至少之一)且不暴露给应用程序,它将确定何时使处理器进入低功耗状态。
另外,如图3所示,实时应用程序316与软件高优先级306相关联。实时应用程序316还可以包括这样的软件应用程序,其意在由用户直接访问,并可能需要计算系统的更大部分的处理资源。根据本发明的一些实施例,电源状态检测进程高优先级线程322可以与实时应用程序316一同被实例化,并与软件高优先级306相关联。
根据本发明的实施例,一个或更多的前台任务318可以与软件普通优先级308相关联。另外,在本发明的一些实施例中,后台任务320可以与软件低优先级310相关联。后台任务320可以包括意在不由用户直接访问、并且通常运行时没有考虑电源管理的软件应用程序。根据本发明的一些实施例,电源状态检测进程低优先级线程324可以与后台任务320一同被实例化,并与软件低优先级310相关联。
根据本发明的实施例,一种机制可以以不依赖于OS的方式,近似地检测该OS何时将要使处理器由于空闲而进入低功耗状态,以及检测处理器何时从低功耗状态苏醒进入普通运行状态以执行应用程序。在本发明的一些实施例中,这可以通过创建至少一个具有两个线程的进程来完成,其中一个线程具有高于典型系统中其他应用程序的优先级,另一个线程具有应用程序线程所可能有的最低优先级。如图3所示,线程322和线程324分别可实例化为最高和最低优先级。
此外,本发明并不限于特定OS,而是可以在使用各种不同OS的计算系统中加以采用。
这里其余部分所论述的图4~6中的方法可以通过参照图1和图2示出并论述的计算系统的一个或者多个模块来完成。特别地,根据本发明的实施例,OS 122及122’和ACPI 124及124’可为本发明提供一些或全部逻辑。图4~6描述了本发明的实施例,而未对计算系统的逻辑和物理模块(实施例通过这些模块来实例化)进行不必要的引用。
图4示出,根据本发明的实施例,如何检测由OS空闲处理程序进行的电源状态进入/退出的流程图。如图所示,检测过程可由检测应用程序所创建的两个线程来完成。处理过程400从402开始,随后立即在404创建高优先级线程和低优先级线程。然后,该处理过程继续至406,在其中创建由这两个线程共享的存储器,以存储电源状态进入/退出信息。在本发明的一些实施例中,该处理过程直到系统关闭之前一直运行所述两个线程,408。根据本发明的实施例,该处理过程可以接收关于电子设备的状况的更新信息,410。该电子设备可以包括计算机系统,或者计算系统的一个或多个模块,例如图1的多核心处理器。如图4所示,该处理过程然后可以继续在410处重复。
图5示出了根据本发明实施例的高优先级线程的流程图。针对该线程的处理过程500开始于502并立即继续至504。在504,该处理过程将电源状态退出时间戳存储在共享存储器中。该时间戳可称为退出时间。该处理过程然后继续至506。在506,该处理过程通过从退出时间中减去进入时间来计算出空闲时间。在本发明的一些实施例中,该空闲时间由低优先级线程存储。该处理过程然后继续至508,其中,在本发明的一些实施例中,基于用户的输入和/或后台与前台进程的情况,该处理过程确定是否需要进行任何其他电源管理或调度的变更。该处理过程然后在510向其他线程让出(yield)该处理器,并继续至512。在512,该处理过程向低优先级线程发信号,使其进入运行准备就绪(ready-to-run)状态。在本发明的实施例中,如后面所述,该处理过程在612与低优先级线程600进行通信。该处理过程然后继续,在514安排一等待定时器(wait-on-timer)事件用于下一个OS定时器节拍(tick),然后在516结束,在本发明的一些实施例中,该处理过程500还可以依需重复。
图6示出了根据本发明实施例的低优先级线程的流程图。针对该线程的处理过程600开始于602并立即继续至604。在604,该处理过程将电源状态进入时间戳存储在共享存储器中。该时间戳可称为进入时间。该处理过程然后继续至606。在606,该处理过程通过从进入时间中减去退出时间来计算出繁忙时间。在本发明的一些实施例中,该繁忙时间由高优先级线程存储。该处理过程然后继续至608,其中,在本发明的一些实施例中,基于用户的输入和/或后台与前台进程的情况,该处理过程确定是否需要进行任何其他电源管理或调度的变更。该处理过程然后在610向其他线程让出该处理器,并继续至612。在612,根据本发明的一些实施例,该处理过程安排来自高优先级线程的等待信号,其中该处理过程600可以与高优先级线程500在512进行通信。该处理过程600然后继续至614,在此结束并可以依需重复。
根据本发明的实施例,例如在OS调度程序基于优先级确定调度顺序时,以及当低优先级线程正好在进入与睡眠、休息、或类似的低级别操作相关的电源状态之前最后开始时,低优先级线程600可以获得运行的机会。因此,这可能充分显示出下个时间段将会被OS空闲处理程序所使用,从而会导致进入电源状态。类似地,根据本发明的实施例,由于可以使高优先级线程500在所有软件应用程序线程中以最高优先级来运行,因此通常它将会在所有硬件中断被服务之后获得首先执行的机会。根据本发明的一些实施例,这个处理过程的结果可以显示出OS何时退出电源状态以及用户模式执行何时开始。
换言之,在一些实施例中,低优先级线程可以正好在进入空闲或低功耗状态之前运行;而高优先级线程可以在空闲状态结束或最高功耗状态到达时运行。在本发明的一些实施例中,所述线程之一或二者一完成其任务就可以让给其他线程。一种实现方法是将这些线程置于睡眠状态,持续操作系统所允许最少的时间量。这可以将这些线程保持在睡眠状态直到下一个定时器中断为止,并给予包括OS空闲处理程序在内的其他线程运行的机会。
在本发明的一些实施例中,在确定和优化各种应用程序执行模型的过程中,对用户模式执行的了解以及关于电源状态转换或其他活动的指示非常有帮助。例如,在本发明的一些实施例中,调度程序帮助管理应用程序,利用其另外的关于特定应用程序的信息(其通常并不为OS调度程序所知),可以决定何时以及在哪个处理器/核心上(如果存在多于一个)运行特定的进程。例如,在本发明的一实施例中,应用程序管理控制台也可以利用此信息从而在共享处理器拓扑中的一个处理器处于活动状态时来寻找机会运行后台线程。这类智能分派通过并行地运行多个进程使封装电源状态机会得以最大化。这类技术可以在具有共享电压轨(voltage rail)实现的处理器中特别有用。
这里所描述的本发明可以在管理应用程序中实现,该管理应用程序考虑在系统中运行的每个线程的另外的特定情况,更改对这些应用程序的调度,从而有效地改善性能、用户体验、及功耗等。
典型地,确定何时处理器是空闲的以及何时该处理器应该用来执行应用程序代码的决定由OS作出。然而,根据本发明的实施例,所述方法和装置可以使OS以外的软件能够有效地检测CPU空闲时间。该技术可以允许将这种解决方案添加到商业操作系统的上层。
可以对本发明的实施例进行充分详细地说明,从而使本领域技术人员能够实施本发明,包括在本说明书中相应部分所描述的计算系统以及类似机器上实施本发明。还可以利用其它实施例,同时可以对其进行结构上的、逻辑的和智力范畴的修改,而不背离本发明的范围。
根据这里所描述和说明的原理和示例性实施例,将会理解,可以对所示的实施例在安排和细节上进行修改,而不违背所述原理。例如,尽管出于说明的目的,针对由电池供电的设备(例如蜂窝电话、PDA、膝上型计算机、平板计算机或其他便携式处理系统)而描述了一个或多个示例性实施例,但本发明并不限于在这些系统中的利用,相反还可以有利地用于许多其他类型的系统中,例如台式计算机、服务器等。因此,虽然本发明的一些实现或实施例的主要益处之一可能是通过使软件应用程序知晓处理器电源状态变化来延长电池使用时间,但是在其他实现或实施例中,其他的益处可能会更加重要。例如,在某些实现或实施例中,减少噪声和热量可能是主要的益处,而在其他实现或实施例中,减少能源成本可能是主要的益处。
本发明的替代性实施例还包括编码有指令的机器可访问媒介,所述指令用于执行本发明的操作。这类实施例可以称作程序产品。这类机器可访问媒介可以包括(但不限于):存储媒介,例如软盘、硬盘、CD-ROM、DVD、ROM和RAM;以及通信媒介,例如天线、电线、光纤、微波、无线电波、和其他电磁的或光的载波。因此,指令和其他数据可以通过传输环境或网络,以分组、串行数据、并行数据、传播信号等方式进行传送,并可以在分布式环境中使用,以及在本地和/或远程进行存储,以便由单或多处理器机器访问。
同样应该理解,这里所描述的硬件和软件组件代表的是适度完备的功能单元,因此每一个组件都可以实质上独立于其他组件被设计、构建或更新。在替代性实施例中,许多这些组件可以以硬件、软件或者硬件和软件的组合来实现,以提供这里所描述和说明的功能。
此外,应理解的是,本发明的各种实施例尽管有不同,但它们并不一定是互斥的。例如,某些实施例中描述的特定的特性、结构或者特征还可以包括在其他实施例中。本领域的技术人员能够从前面的描述中理解,本发明实施例的技术可以以各种形式来实现。因此,虽然本发明的实施例是结合特定的例子来描述的,但是本发明实施例的真正范围不应受此限制,因为对于本领域技术人员来说,通过对附图、说明书和权利要求的研究,其他的修改也会变得显而易见。
Claims (20)
1、一种方法,包括:
创建高优先级线程,该线程将由处理器以相对于其他线程实质上最高的优先级来执行;
创建低优先级线程,该线程将由处理器以相对于其他线程实质上最低的优先级来执行;和
创建共享存储器,其中,该共享存储器可由所述高优先级线程和所述低优先级线程访问。
2、权利要求1所述的方法,进一步包括:
将电源管理状态进入信息存储在所述共享存储器中;和
将电源管理状态退出信息存储在所述共享存储器中。
3、权利要求2所述的方法,进一步包括:
对所述共享存储器中的电源管理状态进入信息和/或电源管理状态退出信息进行更新。
4、权利要求1所述的方法,所述高优先级线程包括:
将电源状态退出时间存储在所述共享存储器中;
通过从所述电源状态退出时间中减去电源状态进入时间,计算出空闲时间;
向所述低优先级线程发信号,使其进入运行准备就绪状态;和
安排一等待定时器事件。
5、权利要求1所述的方法,所述低优先级线程包括:
将电源状态进入时间存储在所述共享存储器中;
通过从所述电源状态进入时间中减去电源状态退出时间,计算出繁忙时间;和
安排一等待信号状态,等待来自所述高优先级线程的信号。
6、一种机器可访问介质,其具有相关指令,所述指令在被访问时使机器执行下述操作:
创建高优先级线程,该线程将由处理器以相对于其他线程实质上最高的优先级来执行;
创建低优先级线程,该线程将由处理器以相对于其他线程实质上最低的优先级来执行;和
创建共享存储器,其中,该共享存储器可由所述高优先级线程和所述低优先级线程访问。
7、权利要求6所述的机器可访问介质,还具有在被访问时使机器执行下述操作的相关指令:
将电源管理状态进入信息存储在所述共享存储器中;和
将电源管理状态退出信息存储在所述共享存储器中。
8、权利要求7所述的机器可访问介质,还具有在被访问时使机器执行下述操作的相关指令:
对所述共享存储器中的电源管理状态进入信息和/或电源管理状态退出信息进行更新。
9、权利要求6所述的机器可访问介质,所述高优先级线程包括:
将电源状态退出时间存储在所述共享存储器中;
通过从所述电源状态退出时间中减去电源状态进入时间,计算出空闲时间;
向所述低优先级线程发信号,使其进入运行准备就绪状态;和
安排一等待定时器事件。
10、权利要求6所述的机器可访问介质,所述低优先级线程包括:
将电源状态进入时间存储在所述共享存储器中;
通过从所述电源状态进入时间中减去电源状态退出时间,计算出繁忙时间;和
安排一等待信号状态,等待来自所述高优先级线程的信号。
11、一种装置,包括:
机器可访问介质,和
编码在所述机器可访问介质中的指令,其中,所述指令在计算系统中执行时使该计算系统执行包括下述的操作:
创建高优先级线程,该线程将由处理器以相对于其他线程实质上最高的优先级来执行;
创建低优先级线程,该线程将由处理器以相对于其他线程实质上最低的优先级来执行;和
创建共享存储器,其中,该共享存储器可由所述高优先级线程和所述低优先级线程访问。
12、权利要求11所述的装置,所述指令进一步包括:
将电源管理状态进入信息存储在所述共享存储器中;和
将电源管理状态退出信息存储在所述共享存储器中。
13、权利要求12所述的装置,所述指令进一步包括:
对所述共享存储器中的电源管理状态进入信息和/或电源管理状态退出信息进行更新。
14、权利要求11所述的装置,所述高优先级线程包括:
将电源状态退出时间存储在所述共享存储器中;
通过从所述电源状态退出时间中减去电源状态进入时间,计算出空闲时间;
向所述低优先级线程发信号,使其进入运行准备就绪状态;和
安排一等待定时器事件。
15、权利要求11所述的装置,所述低优先级线程包括:
将电源状态进入时间存储在所述共享存储器中;
通过从所述电源状态进入时间中减去电源状态退出时间,计算出繁忙时间;和
安排一等待信号状态,等待来自所述高优先级线程的信号。
16、一种计算机系统,包括:
机器可访问介质;
处理器,用于响应所述机器可访问介质;和
编码在所述机器可访问介质中的指令,其中,所述指令在被所述处理器执行时执行包括下述的操作:
创建高优先级线程,该线程将由处理器以相对于其他线程实质上最高的优先级来执行;
创建低优先级线程,该线程将由处理器以相对于其他线程实质上最低的优先级来执行;和
创建共享存储器,其中,该共享存储器可由所述高优先级线程和所述低优先级线程访问。
17、权利要求16所述的计算机系统,所述指令进一步包括:
将电源管理状态进入信息存储在所述共享存储器中;和
将电源管理状态退出信息存储在所述共享存储器中。
18、权利要求17所述的计算机系统,所述指令进一步包括:
对所述共享存储器中的电源管理状态进入信息和/或电源管理状态退出信息进行更新。
19、权利要求16所述的系统,所述高优先级线程包括:
将电源状态退出时间存储在所述共享存储器中;
通过从所述电源状态退出时间中减去电源状态进入时间,计算出空闲时间;
向所述低优先级线程发信号,使其进入运行准备就绪状态;和
安排一等待定时器事件。
20、权利要求16所述的系统,所述低优先级线程包括:
将电源状态进入时间存储在所述共享存储器中;
通过从所述电源状态进入时间中减去电源状态退出时间,计算出繁忙时间;和
安排一等待信号状态,等待来自所述高优先级线程的信号。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/316,541 US7689838B2 (en) | 2005-12-22 | 2005-12-22 | Method and apparatus for providing for detecting processor state transitions |
US11/316,541 | 2005-12-22 | ||
PCT/US2006/047033 WO2007078628A2 (en) | 2005-12-22 | 2006-12-08 | Method and apparatus for providing for detecting processor state transitions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101313284A true CN101313284A (zh) | 2008-11-26 |
CN101313284B CN101313284B (zh) | 2011-04-20 |
Family
ID=38195320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800434057A Expired - Fee Related CN101313284B (zh) | 2005-12-22 | 2006-12-08 | 用于提供对处理器状态转换进行检测的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7689838B2 (zh) |
JP (1) | JP2009520302A (zh) |
KR (1) | KR101029414B1 (zh) |
CN (1) | CN101313284B (zh) |
DE (1) | DE112006003444B4 (zh) |
TW (1) | TWI336448B (zh) |
WO (1) | WO2007078628A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102213998A (zh) * | 2010-04-07 | 2011-10-12 | 苹果公司 | 系统中针对处理器休眠和唤醒事件的硬件自动性能状态转换 |
CN102301309A (zh) * | 2009-01-30 | 2011-12-28 | 意法爱立信(法国)有限公司 | 用于管理多核数据处理装置的操作的方法和系统 |
CN110231781A (zh) * | 2018-03-05 | 2019-09-13 | 欧姆龙株式会社 | 控制装置、存储介质、控制方法 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7689838B2 (en) | 2005-12-22 | 2010-03-30 | Intel Corporation | Method and apparatus for providing for detecting processor state transitions |
TWI474159B (zh) * | 2008-09-05 | 2015-02-21 | Via Tech Inc | 多處理器系統及其進入省電模式方法 |
KR101275698B1 (ko) * | 2008-11-28 | 2013-06-17 | 상하이 신하오 (브레이브칩스) 마이크로 일렉트로닉스 코. 엘티디. | 데이터 처리 방법 및 장치 |
US8064197B2 (en) * | 2009-05-22 | 2011-11-22 | Advanced Micro Devices, Inc. | Heat management using power management information |
US8578384B2 (en) * | 2009-10-28 | 2013-11-05 | Freescale Semiconductor, Inc. | Method and apparatus for activating system components |
US8909962B2 (en) * | 2009-12-16 | 2014-12-09 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US9104411B2 (en) | 2009-12-16 | 2015-08-11 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US9176572B2 (en) | 2009-12-16 | 2015-11-03 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US8650426B2 (en) * | 2009-12-16 | 2014-02-11 | Qualcomm Incorporated | System and method for controlling central processing unit power in a virtualized system |
US9563250B2 (en) * | 2009-12-16 | 2017-02-07 | Qualcomm Incorporated | System and method for controlling central processing unit power based on inferred workload parallelism |
US8775830B2 (en) * | 2009-12-16 | 2014-07-08 | Qualcomm Incorporated | System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature |
US8689037B2 (en) * | 2009-12-16 | 2014-04-01 | Qualcomm Incorporated | System and method for asynchronously and independently controlling core clocks in a multicore central processing unit |
US9128705B2 (en) * | 2009-12-16 | 2015-09-08 | Qualcomm Incorporated | System and method for controlling central processing unit power with reduced frequency oscillations |
US20110145559A1 (en) * | 2009-12-16 | 2011-06-16 | Thomson Steven S | System and method for controlling central processing unit power with guaranteed steady state deadlines |
US20110252422A1 (en) * | 2010-04-07 | 2011-10-13 | Apple Inc. | Opportunistic Multitasking |
US8468373B2 (en) | 2011-01-14 | 2013-06-18 | Apple Inc. | Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state |
US8949637B2 (en) | 2011-03-24 | 2015-02-03 | Intel Corporation | Obtaining power profile information with low overhead |
US9465427B2 (en) | 2011-06-30 | 2016-10-11 | International Business Machines Corporation | Software-centric power management by indirectly determining that user is not actively using computer program running on computing device |
JP5765423B2 (ja) * | 2011-07-27 | 2015-08-19 | 富士通株式会社 | マルチコアプロセッサシステム、およびスケジューリング方法 |
TWI556092B (zh) * | 2011-09-30 | 2016-11-01 | 英特爾公司 | 用以減少電力消耗之基於優先順序的應用程式事件控制技術 |
US9064253B2 (en) * | 2011-12-01 | 2015-06-23 | Broadcom Corporation | Systems and methods for providing NFC secure application support in battery on and battery off modes |
US9207994B2 (en) | 2012-05-09 | 2015-12-08 | Intel Corporation | Scheduling tasks among processor cores |
CN102929381B (zh) * | 2012-10-22 | 2015-08-05 | 威盛电子股份有限公司 | 电子系统及其电源管理方法 |
US10007323B2 (en) | 2012-12-26 | 2018-06-26 | Intel Corporation | Platform power consumption reduction via power state switching |
US9336068B2 (en) * | 2013-06-07 | 2016-05-10 | Apple Inc. | Throttling of application access to resources |
US20160187958A1 (en) | 2014-12-24 | 2016-06-30 | Intel Corporation | Techniques for managing power and performance for a networking device |
CN104571462B (zh) * | 2014-12-30 | 2017-05-03 | 深圳先进技术研究院 | 电池功耗的控制方法和系统 |
WO2016147349A1 (ja) * | 2015-03-18 | 2016-09-22 | 株式会社日立製作所 | エネルギー管理システムおよび業務アプリケーションの実行方法 |
US10275287B2 (en) * | 2016-06-07 | 2019-04-30 | Oracle International Corporation | Concurrent distributed graph processing system with self-balance |
US10462059B2 (en) | 2016-10-19 | 2019-10-29 | Intel Corporation | Hash table entries insertion method and apparatus using virtual buckets |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218704A (en) | 1989-10-30 | 1993-06-08 | Texas Instruments | Real-time power conservation for portable computers |
US5872913A (en) | 1997-03-07 | 1999-02-16 | International Business Machines Corporation | System and method for low overhead, high precision performance measurements using state transistions |
US6131166A (en) * | 1998-03-13 | 2000-10-10 | Sun Microsystems, Inc. | System and method for cross-platform application level power management |
US6308279B1 (en) * | 1998-05-22 | 2001-10-23 | Intel Corporation | Method and apparatus for power mode transition in a multi-thread processor |
KR100613201B1 (ko) | 2000-08-28 | 2006-08-18 | 마이크로코넥트 엘엘씨 | 씨피유 사용량 측정 방법 |
US6622253B2 (en) * | 2001-08-02 | 2003-09-16 | Scientific-Atlanta, Inc. | Controlling processor clock rate based on thread priority |
JP4170227B2 (ja) * | 2002-01-24 | 2008-10-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 多重処理環境における処理の実行 |
US7191349B2 (en) * | 2002-12-26 | 2007-03-13 | Intel Corporation | Mechanism for processor power state aware distribution of lowest priority interrupt |
US7013400B2 (en) * | 2003-04-24 | 2006-03-14 | International Business Machines Corporation | Method for managing power in a simultaneous multithread processor by loading instructions into pipeline circuit during select times based on clock signal frequency and selected power mode |
JP4164662B2 (ja) * | 2003-06-10 | 2008-10-15 | 日本電気株式会社 | 携帯端末およびgps時刻維持方法 |
US7617488B2 (en) | 2003-12-30 | 2009-11-10 | Intel Corporation | Method and apparatus and determining processor utilization |
US7272741B2 (en) * | 2004-06-02 | 2007-09-18 | Intel Corporation | Hardware coordination of power management activities |
US7689838B2 (en) | 2005-12-22 | 2010-03-30 | Intel Corporation | Method and apparatus for providing for detecting processor state transitions |
-
2005
- 2005-12-22 US US11/316,541 patent/US7689838B2/en active Active
-
2006
- 2006-12-08 JP JP2008547289A patent/JP2009520302A/ja active Pending
- 2006-12-08 KR KR1020087015001A patent/KR101029414B1/ko not_active IP Right Cessation
- 2006-12-08 WO PCT/US2006/047033 patent/WO2007078628A2/en active Application Filing
- 2006-12-08 DE DE112006003444T patent/DE112006003444B4/de not_active Expired - Fee Related
- 2006-12-08 CN CN2006800434057A patent/CN101313284B/zh not_active Expired - Fee Related
- 2006-12-12 TW TW095146445A patent/TWI336448B/zh not_active IP Right Cessation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301309A (zh) * | 2009-01-30 | 2011-12-28 | 意法爱立信(法国)有限公司 | 用于管理多核数据处理装置的操作的方法和系统 |
CN102301309B (zh) * | 2009-01-30 | 2015-01-14 | 意法爱立信(法国)有限公司 | 用于管理多核数据处理装置的操作的方法和系统 |
CN102213998A (zh) * | 2010-04-07 | 2011-10-12 | 苹果公司 | 系统中针对处理器休眠和唤醒事件的硬件自动性能状态转换 |
CN102213998B (zh) * | 2010-04-07 | 2014-03-26 | 苹果公司 | 系统中针对处理器休眠和唤醒事件的硬件自动性能状态转换 |
CN110231781A (zh) * | 2018-03-05 | 2019-09-13 | 欧姆龙株式会社 | 控制装置、存储介质、控制方法 |
Also Published As
Publication number | Publication date |
---|---|
DE112006003444B4 (de) | 2012-12-27 |
US7689838B2 (en) | 2010-03-30 |
KR101029414B1 (ko) | 2011-04-14 |
TW200813842A (en) | 2008-03-16 |
CN101313284B (zh) | 2011-04-20 |
WO2007078628A3 (en) | 2008-02-07 |
DE112006003444T5 (de) | 2008-10-23 |
KR20080079276A (ko) | 2008-08-29 |
WO2007078628A2 (en) | 2007-07-12 |
JP2009520302A (ja) | 2009-05-21 |
TWI336448B (en) | 2011-01-21 |
US20070150759A1 (en) | 2007-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101313284B (zh) | 用于提供对处理器状态转换进行检测的方法和装置 | |
Srivastava et al. | Predictive system shutdown and other architectural techniques for energy efficient programmable computation | |
CN100349147C (zh) | 最低优先级中断的处理器功率状态的知晓分配的方法、系统和装置 | |
CN107209548B (zh) | 在多核处理器中执行功率管理 | |
CN1890636B (zh) | 用于低功率程序调整的功率性能监视器的装置和方法 | |
US9281026B2 (en) | Parallel processing computer systems with reduced power consumption and methods for providing the same | |
CN107209545A (zh) | 在多核处理器中执行功率管理 | |
CN104798004B (zh) | 根据功率平衡控制偏置,跨多个处理器域的动态功率平衡 | |
Zomaya et al. | Energy-efficient distributed computing systems | |
Jin et al. | A survey on software methods to improve the energy efficiency of parallel computing | |
CN104081315A (zh) | 包括线程合并的用于能效和节能的方法、装置和系统 | |
CN103119580A (zh) | 异构多处理器计算平台中的应用调度 | |
Navada et al. | A unified view of non-monotonic core selection and application steering in heterogeneous chip multiprocessors | |
Lu et al. | MT-3000: a heterogeneous multi-zone processor for HPC | |
Muralidhar et al. | Energy efficient computing systems: Architectures, abstractions and modeling to techniques and standards | |
Song et al. | Energy efficiency optimization in big data processing platform by improving resources utilization | |
Cesarini et al. | Countdown: a run-time library for performance-neutral energy saving in MPI applications | |
Hebbar et al. | Pmu-events-driven dvfs techniques for improving energy efficiency of modern processors | |
Basireddy | Runtime energy management of concurrent applications for multi-core platforms | |
Neves et al. | Morphable hundred‐core heterogeneous architecture for energy‐aware computation | |
Li et al. | Improved dynamic frequency‐scaling approach for energy‐saving‐based radial basis function neural network | |
Shafik et al. | From Power-Efficient to Power-Driven Computing | |
Garg | Dynamic Power Management for Dark Silicon Multicore Processors | |
Cebrián et al. | Efficient inter-core power and thermal balancing for multicore processors | |
Valera | An energy saving perspective for distributed environments: Deployment, scheduling and simulation with multidimensional entities for Software and Hardware |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110420 Termination date: 20181208 |
|
CF01 | Termination of patent right due to non-payment of annual fee |