CN109983418B - 功率状态管理 - Google Patents

功率状态管理 Download PDF

Info

Publication number
CN109983418B
CN109983418B CN201680090934.6A CN201680090934A CN109983418B CN 109983418 B CN109983418 B CN 109983418B CN 201680090934 A CN201680090934 A CN 201680090934A CN 109983418 B CN109983418 B CN 109983418B
Authority
CN
China
Prior art keywords
driver
state
power state
drivers
power
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
CN201680090934.6A
Other languages
English (en)
Other versions
CN109983418A (zh
Inventor
陈渝
杜江红
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
Publication of CN109983418A publication Critical patent/CN109983418A/zh
Application granted granted Critical
Publication of CN109983418B publication Critical patent/CN109983418B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

在一个示例中,一种用于管理功率状态的***可包括用来检测功率状态转变操作和检测针对***的多个驱动器中的每个驱动器的历史回调信息的处理器。处理器还可以基于历史回调信息将多个驱动器分类到多个驱动器组,并且基于多个驱动器组通过传送针对每个驱动器的多个功率状态指令到多个处理器来执行功率状态转变操作。

Description

功率状态管理
技术领域
本公开总体上涉及管理功率状态,且具体地而非排他地涉及减少用于改变计算设备的功率状态的时间。
背景技术
计算设备正在结合越来越多的***设备和相应的驱动器,这些驱动器使计算设备能和***设备通信。计算设备还支持任何数量的减少计算设备功率消耗的不同功率状态。在一些示例中,计算设备发起对***设备的驱动器的调用以便将计算设备置于降低功率消耗的状态,诸如睡眠状态等等。
附图说明
参考所附附图可以更好地理解下列详细描述,所附附图包含所公开的主题众多特征的具体示例。
图1示出了能够管理功率状态的计算设备的框图。
图2示出用于管理计算设备的功率状态的过程流程图。
图3是调度器和能够管理功率状态的处理器的框图,并且
图4是用于管理功率状态的有形非瞬态计算机可读介质的示例。
在一些情况下,贯穿公开和附图使用相同的标号以引用相似的组件和特征。100系列的标号涉及在图1中最初可见的特征,200系列的标号涉及在图2中最初可见的特征,以此类推。
具体实施方式
如上所述,计算设备可支持任何合适数量的不同功率状态。例如,计算设备可支持各种***范围的功率状态诸如工作功率状态、待机功率状态、睡眠功率状态和休眠功率状态等等。在一些示例中,计算设备向计算设备中的每个驱动器指示功率状态之间的转变。例如,计算设备的操作***可以向计算设备的每个驱动器传送指示符,其中指示符提供关于功率状态转变的信息。本文所称的驱动器可包括操作或控制电耦合到计算设备的一类设备的任何合适的设备驱动器。例如,驱动器可控制键盘、鼠标、摄像头、传感器或任何其他合适的设备或组成部分的操作。在一些示例中,驱动器执行回调函数,其指示驱动器是否已实现某个特定设备的功率状态转变。
此处描述的技术包括可检测功率状态转变操作的***。如本文所提及的功率状态转变操作,可包括改变设备的***状态以减少或增加设备的功率消耗的任何操作。例如,功率状态转变操作可包括恢复操作、挂起操作、休眠操作、待机操作、工作或全功率操作和睡眠操作等等其他***状态操作。在一些实施例中,***还可检测针对***的多个驱动器中的每个驱动器历史回调信息。在一些示例中,历史回调信息指示对应于在特定设备上执行功率状态转变操作的驱动器的时间区间。
另外,在一些实施例中,***可以基于历史回调信息将多个驱动器分类到多个驱动器组。此外,***可以基于多个驱动器组传送多个针对每个驱动器的功率状态指令到多个处理器从而执行功率状态转变操作。例如,***可包括任何数量的处理器或处理核,这些处理器或处理核可发起功率状态转变操作。在一些实施例中,处理器或处理核可使用任何合适的顺序或并行技术针对任何数量的驱动器处理功率状态转变操作。相应地,本文描述的***可将分类的驱动器组发送到***的处理器或处理核来最小化与功率状态间转变相关联的等待时间。
在本说明书中对所公开的主题的“一个实施例”或“实施例”的引用意味着结合实施例所描述的特定特征、结构或特性包括在所公开的主题的至少一个实施例中。因此,短语“在一个实施例中”可出现在贯穿说明书的各处,但该短语不一定是指同一个实施例。
图1是可管理功率状态的计算设备的示例的框图。计算设备100可以是例如移动电话、膝上型计算机、台式计算机或平板计算机等等。计算设备100可以包括被适配成用于执行所存储的指令的处理器102、以及存储可由处理器102执行的指令的存储器设备104。处理器102可以是单核处理器、多核处理器、计算集群、或者任何数量的其他配置。在一些实施例中,本文中提及的处理器102可被处理核驻留在单个多核处理器中。本文提及的处理核可包括任何合适的可以读取和执行计算机可执行指令的处理器单元。单个多核处理器可在单个集成电路管芯上包含多个处理核,或在单芯片负载或芯片封装中的多集成电路管芯上包含多个处理核。在一些示例中,处理核可并行地执行指令。在一些实施例中,处理核可以共享或不共享高速缓存存储器。在一些示例中,处理核可实现信息传递或者任何合适的共享存储器内核通信技术。存储器设备104可包括随机存取存储器、只读存储器、闪存、或任何其他合适的存储器***。处理器102执行的指令可以被用来实现一种可以管理功率状态的方法。
处理器102还可通过***互连106(例如,NuBus等)被链接到显示器接口108,该显示器接口被适配成用于将计算设备100连接到显示设备110。显示设备110可包括显示屏,该显示屏为计算设备100的内置组件。显示设备110还可包括从外部连接至计算设备100的计算机监视器、电视机、或投影仪等等。显示设备110可包括发光二极管(LED)和微型LED等等。
另外,网络接口控制器(本文中也被称为NIC)112被适配成用于通过***互连106将计算设备100连接到网络(未描绘)。网络(未描绘)可以是蜂窝网、无线网、广域网(WAN)、局域网(LAN)或因特网,等等。
处理器102可能通过***互连106连接至输入/输出(I/O)设备接口114,该输入/输出(I/O)设备接口被适配成用于将计算设备100连接至一个或多个I/O设备116。I/O设备116可包括例如键盘和指向设备,其中指向设备可包括触摸板或触摸屏等等。I/O设备116可以是计算设备100的内置组件,或者可以是从外部地连接到计算设备100的设备。
在一些实施例中,处理器102还可以通过***互连106链接至任何存储设备118,该存储设备可包括硬盘驱动器、光盘驱动器、USB闪存驱动器、驱动器阵列、网络存储设备或其任何组合。在一些实施例中,存储设备118可以包括任何合适的应用。在一些实施例中,存储设备118可包括功率状态管理器120、回调信息管理器122、驱动器分类器124和调度器126。在一些实施例中,功率状态管理器120可以检测功率状态转变操作,该功率状态转变操作改变计算设备100的功率消耗。在一些实施例中,回调信息管理器122可以检测针对***的多个驱动器中的每个驱动器的历史回调信息。历史回调信息可以指示每个驱动器用于在由功率状态转变操作指定的功率状态之间转变的执行时间。在一些实施例中,驱动器分类器124可以基于历史回调信息将多个驱动器分类到多个驱动器组。在一些实施例中,调度器126可以基于多个驱动器组传送多个针对每个驱动器的功率状态指令到多个处理器从而执行功率状态转变操作。功率状态指令可包括当把设备从第一功率状态转变成第二功率状态时由每个驱动器执行的函数。在一些示例中,调度器126可作为操作***的一部分被包括。调度器126还可以作为功率管理逻辑的一部分被包括。
要理解,图1的框图并不意在指示计算设备100包括图1中所示的全部组件。相反,计算***100可以包括图1中未图示的更少的或附加的组件(例如,附加存储器组件、嵌入式控制器、附加模块、附加网络接口等)。此外,任何功率状态管理器120、回调信息管理器122、驱动程序分类器124和调度器126的功能可被部分或全部地在硬件和/或在处理器102中实现。例如,该功能可利用专用集成电路、在嵌入式控制器中实现的逻辑、现场可编程门阵列或在处理器102中实现的逻辑中等等来实现该功能。在一些实施例中,可以利用逻辑来实现功率状态管理器120、回调信息管理122、驱动器分类器124和调度器126的功能,其中,如本文所描述的逻辑可以包括任何合适的硬件(例如,处理器等等)、软件(例如,应用等等)、固件或者硬件、软件和固件的任何合适的组合。
图2示出了用于管理功率状态的流程图。图2中图示的方法200能以任何合适的计算部件或者设备来实现,诸如图1的计算设备100。
在框202,功率状态管理器120可以检测功率状态转变操作。如以上所讨论,功率状态转变操作可以指示***将减少功率消耗或者增加功率消耗。例如,功率状态转变操作可以指示***将从唤醒状态转变为任何数量的睡眠状态,或者从睡眠状态转变为唤醒状态。在一些实施例中,功率状态转变操作可以改变***的功率消耗,其可以包括处理器和任何数量的***组件。在一些示例中,功率状态转变操作可以改变***的功率状态,其中功率状态包括唤醒状态、挂起状态、睡眠状态、休眠状态等等。在一些实施例中,唤醒状态或者唤醒事件可以包括任何断言功率状态改变中断的事件,诸如插卡、电池状态改变等等。在一些示例中,每个功率状态可以有不同的等待时间量。例如,***可以支持与不同等待时间和存储器管理技术相关联的五种不同的睡眠状态。
第一睡眠状态(在本文中也被称为S1)可以是低唤醒等待时间睡眠状态。在这个状态,没有***上下文可能丢失(处理器或者芯片组)并且硬件可以维持***上下文。第二睡眠状态(在本文中也被称为S2)可以是不同的低唤醒等待时间睡眠状态。第二睡眠状态可以和S1睡眠状态相似,除了处理器和***高速缓存上下文可能会被删除或丢失。在一些示例中,操作***或调度器126可以负责维护高速缓存和处理器上下文。响应于恢复状态转变,控制可以开始自唤醒事件后的处理器的复位向量。在一些实施例中,第三睡眠状态(在本文中也被称为S3)可以是附加的低唤醒等待时间睡眠状态,其中除了***存储器之外所有***上下文都有可能丢失。在一些示例中,处理器、高速缓存器和芯片组上下文在第三睡眠状态丢失或被删除。在一些实施例中,硬件可以维持存储器上下文并且恢复一些处理器和高速缓存器配置上下文。响应于恢复状态转变,控制可以开始自唤醒事件后的处理器的复位向量。
在一些实施例中,第四睡眠状态(在本文中也被称为S4)可以是所支持的最低功率、最长唤醒等待时间睡眠状态。为了将功率降低到最小,当维持平台上下文的同时,硬件平台可以关闭所有设备。在一些实施例中,第五睡眠状态(在本文中也被称为S5)可以类似于S4睡眠状态,除了操作***可能不保存任何上下文。S5睡眠状态可以把***置于“软”关闭状态且当***转变成唤醒状态时需要完全启动。在一些示例中,第一睡眠状态可以被称为待机状态,第二睡眠状态可以被称为睡眠状态,第三睡眠状态可以被称为挂起状态,第四睡眠状态可以被称为休眠状态,并且第五睡眠状态可以被称为软关闭状态。
在框204中,回调信息管理器122可以检测针对***的多个驱动器中的每个驱动器的历史回调信息。例如,功率状态转变操作可包括一组指令,该组指令将由存储在计算设备中的每个驱动器执行。在一些实施例中,历史回调信息可以指示驱动器用于执行功率状态之间的转变的一组指令的执行时间。例如,回调信息可以对应于处理器用于执行功率状态转变操作并返回结果的时间量。在一些示例中,回调信息可以指示处理器用于提供来自阻止或同步回调代码的结果的时间量,其可以优先于对应于功率状态转变操作返回的功能而执行。在一些实施例中,回调信息管理器122可以从先前执行的功率状态转变操作中收集针对每个驱动器的历史回调信息。在一些示例中,针对每个驱动器的历史回调信息包括暂停值和恢复值。本文所称的暂停值指示处理器用于执行对应于将设备从唤醒状态转变到任何合适的睡眠状态的驱动器的执行时间。本文所称的恢复值指示处理器用于执行对应于将设备从睡眠状态转变到唤醒状态的驱动器的执行时间。在一些实施例中,针对驱动器的暂停值和恢复值可以不同,这表明当从唤醒状态转变到睡眠状态和从睡眠状态转变到唤醒状态时,驱动器具有不同的执行时间。
在一些实施例中,回调信息管理器122能响应于检测到对所述多个驱动器中的至少一个驱动器的改变,更新针对该至少一个驱动器的暂停值或恢复值。例如,对驱动器的更新可以导致回调信息管理器122确定驱动器在执行功率状态转变操作时是否具有不同的执行时间。
在一些示例中,可以存储回调信息用于任何数量的功率状态之间的转变。例如,第一睡眠状态或者S1睡眠状态可以包括保留视频控制器上下文和视频存储器上下文。在一些实施例中,第二睡眠状态或S2睡眠状态可以不包括保留视频控制器上下文或视频存储器上下文。类似地,音频设备驱动器可以生成暂停指令和存储音频上下文信息,该音频上下文信息能在设备转变成更低功率状态(诸如任何合适的睡眠状态)之后被恢复。在一些实施例中,转变成睡眠状态能导致音频设备驱动器关闭任何音频连接。相应地,对应于第一睡眠状态或第二睡眠状态的恢复值或暂停值可能不一样。在一些实施例中,回调信息管理器122可以存储针对驱动器的回调信息以用于功率状态转变操作的单次执行,并将回调信息用于任何后续功率状态转变操作。例如,回调信息管理器122能检测用于从唤醒状态转变到第一睡眠状态的暂停值,并且将该暂停值用于从唤醒状态到第一睡眠状态的任何后续功率转变。类似地,回调信息管理器122能存储用于在唤醒状态和第一功率状态、唤醒状态和第二功率状态、唤醒状态和第三功率状态、唤醒状态和第四功率状态、以及唤醒状态和第五功率状态之间进行转变的暂停值和恢复值。
在框206,驱动器分类器124可以基于历史回调信息将多个驱动器分类到多个驱动器组。例如,驱动器分类器124可以确定***中能执行针对不同驱动器的功率状态转变操作的处理器的数量。在一些实施例中,处理器可以针对多个驱动器并行地执行功率状态转变操作。例如,第一处理器可以执行音频驱动器来将音频设备的功率状态从唤醒状态转变成睡眠状态或从睡眠状态转变成唤醒状态。第二处理器可以同时执行图像驱动器来将图像设备的功率状态从唤醒状态转变成睡眠状态或从睡眠状态转变成唤醒状态。因此,多个处理器可以基于驱动器组同时针对任何数量的驱动器执行功率状态转变操作,这可以减少用于将设备置于不同功率状态的等待时间。在一些实施例中,驱动器分类器124对正被计算设备执行的驱动器进行分类,并且不对当前未使用的驱动器进行分类。
在一些示例中,驱动器分类器124可以使用任何合适的技术将多个驱动器分类到组,诸如贪婪技术、蛮力技术、神经网络技术等。例如,驱动器分类器124可以使用任何合适的算法或技术来确定利用每个处理器执行的一组驱动器以便减少功率状态转变操作期间的等待时间。在一些实施例中,驱动器分类器124可以基于每个驱动器的历史回调时间、***的处理器的数量和功率状态转变操作涉及的驱动器的数量来分类多个驱动器。在一些实施例中,驱动器分类器124对驱动器进行分类并将驱动器发送到不同的处理器以用于功率状态之间的每次转变。下面结合图3更详细地描述分组驱动器的示例。
在框208,调度器126可以基于多个驱动器组传送针对每个驱动器的功率状态指令到多个处理器从而执行功率状态转变操作。如上所述,多个处理器可以包括单核处理器、多核处理器或者单个多核处理器等等。在一些示例中,执行功率状态指令的多个处理器是驻留在单个多核处理器的多个处理核。在本文中被称作的功率状态指令可以包括由每个驱动器执行的用于将设备从第一功率状态转变到第二功率状态的指令。例如,功率状态指令可以在功率状态间转变音频设备、在功率状态间转变图形卡等等。在一些实施例中,在执行功率到睡眠例程之前,处理器执行针对每个驱动器的功率状态转变操作。例如,可以在调度器126将高速缓存数据的睡眠向量写入持久或非易失性存储器之前,执行针对每个驱动器的功率状态转变操作。在一些实施例中,调度器126指示唤醒例程,该唤醒例程在传送功率状态转变操作到针对设备的任何数量的驱动器之前从持久或非易失性存储器中检取高速缓存数据。调度器126可以响应于驱动器针对任何数量的设备执行功率状态转变操作,将***转变到所请求的功率状态。如上文所述,调度器126可以传送驱动器分组到任何数量的处理器,其中基于能由不同处理器同时执行的驱动器来选择分组以减少由从第一功率状态转变到第二功率状态引起的等待时间。
图2的流程图不是旨在表明以任何特定的顺序操作方法200,或每一情况中都包括方法200的所有操作。此外,方法200可以包括任何合适数量的附加操作。例如,一旦设备驱动器执行了功率状态转变操作,调度器126可以向处理器指示处理器状态将转变到不同的功率状态。不同的处理器功率状态可以包括修改高速缓存一致性、刷新高速缓存、或者限制指令的执行。
图3是执行功率状态转变操作的处理器的框图。调度器126可以传送针对驱动器的功率状态转变操作到任何数量的处理器,诸如处理器0 302和处理器1304。在一些实施例中,处理器0 302和处理器1 304可以是驻留在单个多核处理器中的单核处理器或处理核。例如,处理器0 302和处理器1 304可以是在单个集成电路管芯上制造的独立处理单元。在一些示例中,处理器0 302和处理器1304可以是在单芯片负载或芯片封装里的多个集成电路管芯上制造的独立处理单元。在一些实施例中,调度器126基于每个驱动器的回调时间传送功率状态转变操作。例如,驱动器0可能有20毫秒的回调时间,驱动器1可能有30毫秒的回调时间,驱动器2可能有50毫秒的回调时间。调度器126可以传送用于针对驱动器0和驱动器1的功率状态转变操作的指令到处理器0 302,并传送用于针对驱动器2的功率状态转变操作的指令到处理器1 304。调度器126因此可以确保驱动器0、驱动器1和驱动器2在50毫秒内执行功率状态转变操作。如果调度器126没有将驱动器0、驱动器1和驱动器2分类来最小化等待时间,则用于驱动器执行功率状态转变操作的时间可以更长。例如,如果调度器126传送用于针对驱动器2和驱动器0的功率状态转变操作的指令到处理器0 302或处理器1 304,则执行时间将比50毫秒更长。因此,本文中描述的技术可以最小化使用任何数量的处理器或处理核进行功率状态转变操作的执行时间。
在一些实施例中,驱动器分类器124可以确定驱动器之间的依赖性。例如,第一驱动器可能依赖第二驱动器。驱动器分类器124可以分配第一驱动器和第二驱动器到单个处理器以使第一驱动器和第二驱动器能够顺序执行。相应地,可以聚合针对第一驱动器和第二驱动器的回调信息以表明不能在多个处理器上并行地执行第一驱动器和第二驱动器。
要理解,图3的框图并不旨在指示计算设备300包括图3中所示的全部组件。相反,计算设备300可包括更少的组件或未在图3中例示出的附加组件(例如,附加的处理器、驱动器等等)。
图4是用于管理功率状态的非瞬态计算机可读介质框图示例。有形非瞬态计算机可读介质400可由处理器402通过计算机互连404访问。进一步,有形非瞬态计算机可读介质400可包括用于引导处理器402执行当前方法的操作的代码。
此处讨论的各软件组件可被存储在如图4中所示的有形非瞬态计算机可读介质400上。例如,功率状态管理器406可以检测功率状态转变操作。在一些实施例中,回调信息管理器408可以检测针对***的多个驱动器中的每个驱动器的历史回调信息。在一些实施例中,驱动器分类器410可以基于历史回调信息将多个驱动器分类到多个驱动器组。在一些实施例中,调度器410可以基于多个驱动器组传送多个针对每个驱动器的功率状态指令到多个处理器来执行功率状态转变操作。
将会理解,图4中所示出的任何合适数量的软件组件可被包括在有形的非瞬态计算机可读介质400内。此外,取决于特定应用,未在图4中示出的任何数量的附加软件组件可被包括有形的非瞬态计算机可读介质400内。
示例1:
在一些示例中,用于管理功率状态的***可以包括多个处理器和存储设备来存储计算机可执行指令,其中所述计算机可执行指令可以检测功率状态转变操作并且检测针对所述***的多个驱动器中的每个驱动器的历史回调信息。在一些实施例中,所述处理器还可以基于所述历史回调信息将所述多个驱动器分类到多个驱动器组,并且基于所述多个驱动器组传送多个针对每个驱动器的功率状态指令到所述多个处理器从而执行所述功率状态转变操作。
替代地,或附加地,所述计算机可执行指令能从先前执行的功率状态转变操作中收集针对每个驱动器的所述历史回调信息。替代地,或附加地,针对每个驱动器的所述历史回调信息可包括暂停值和恢复值。替代地,或附加地,所述计算机可执行指令可以响应于检测到对所述多个驱动器中的至少一个驱动器的改变,更新针对所述至少一个驱动器的所述暂停值或所述恢复值。替代地,或附加地,所述计算机可执行指令可以基于贪婪技术、蛮力技术或神经网络技术来分类所述多个驱动器。替代地,或附加地,所述驱动器组的数量可以对应于所述***的处理器的数量。替代地,或附加地,所述计算机可执行指令可以基于每个驱动器的所述历史回调时间、所述***中的处理器的数量和对应于所述功率状态转变操作的驱动器的数量来分类所述多个驱动器。替代地,或附加地,所述功率状态转变操作可以包括唤醒状态和第一睡眠、所述状态唤醒状态和第二睡眠状态、所述唤醒状态和第三睡眠状态、所述唤醒状态和第四睡眠状态、或者所述唤醒状态和第五睡眠状态之间的转变。
示例2:
在一些实施例中,用于管理功率状态的方法可以包括检测功率状态转变操作和检测针对所述***的多个驱动器中的每个驱动器的历史回调信息。所述方法还可以包括基于所述历史回调信息将所述多个驱动器分类到多个驱动器组以及基于所述多个驱动器组传送多个针对每个驱动器的功率状态指令到多个处理器从而执行所述功率状态转变操作。
替代地,或附加地,所述方法可以包括从先前执行的功率状态转变操作中收集针对每个驱动器的所述历史回调信息。替代地,或附加地,针对每个驱动器的所述历史回调信息可以包括暂停值和恢复值。替代地,或附加地,所述方法可以包括响应于检测到对所述多个驱动器中的至少一个驱动器的改变,更新针对所述至少一个驱动器的所述暂停值或所述恢复值。替代地,或附加地,所述方法可以包括基于贪婪技术、蛮力技术、或者神经网络技术来分类所述多个驱动器。替代地,或附加地,所述驱动器组的数量可以对应于所述***的处理器的数量。替代地,或附加地,所述方法可以包括基于每个驱动器的所述历史回调时间、所述***中的处理器的数量、对应于所述功率状态转变操作的驱动器的数量来分类所述多个处理器。替代地,或附加地,所述功率状态转变操作可以包括唤醒状态和第一睡眠状态、所述唤醒状态和第二睡眠状态、所述唤醒状态和第三睡眠状态、所述唤醒状态和第四睡眠状态、或者所述唤醒状态和第五睡眠状态之间的转变。
示例3:
在一些实施例中,用于管理功率状态的非瞬态计算机可读介质可包括多个指令,响应于由处理器执行多个指令,使得所述处理器用于检测功率状态转变操作并检测针对所述***的多个驱动器中的每个驱动器的历史回调信息。所述多个指令还可以使得所述处理器用于基于所述历史回调信息将所述多个驱动器分类到多个驱动器组并且基于所述多个驱动器组传送多个针对每个驱动器的功率状态指令到多个处理器从而执行所述功率状态转变操作。
替代地,或附加地,所述多个指令还可以使得所述处理器用于从先前执行的功率状态转变操作中收集针对每个驱动器的所述历史回调信息。替代地,或附加地,针对每个驱动器的所述历史回调信息可以包括暂停值和恢复值。替代地,或附加地,所述多个指令还可以响应于检测到对所述多个驱动器中的至少一个驱动器的改变,使得所述处理器用于更新针对所述至少一个驱动器的所述暂停值或所述恢复值。替代地,或附加地,所述多个指令还可以使得所述处理器基于贪婪技术、蛮力技术、或者神经网络技术来分类所述多个驱动器。替代地,或附加地,所述驱动器组的数量可以对应于所述***的处理器的数量。替代地,或附加地,所述多个指令还可以使得所述处理器基于每个驱动器的所述历史回调时间、所述***中的处理器的数量、对应于所述功率状态转变操作的驱动器的数量来分类所述多个驱动器。替代地,或附加地,所述功率状态转变操作可以包括唤醒状态和第一睡眠状态、所述唤醒状态和第二睡眠状态、所述唤醒状态和第三睡眠状态、所述唤醒状态和第四睡眠状态、或者所述唤醒状态和第五睡眠状态之间的转变。
示例4:
在一些示例中,用于管理功率状态的***可以包括多个处理器和存储设备来存储计算机可执行指令,其中所述计算机可执行指令包含用于检测功率状态转变操作的装置和用于检测针对所述***的多个驱动器中的每个驱动器的历史回调信息的装置。在一些实施例中,所述计算机可执行指令还可以包含用于基于所述历史回调信息将所述多个驱动器分类到多个驱动器组的装置和用于基于所述多个驱动器组传送多个针对每个驱动器的功率状态指令到所述多个处理器从而执行所述功率状态转变操作的装置。
替代地,或附加地,所述计算机可执行指令可以包括用于从先前执行的功率状态转变操作中收集针对每个驱动器的所述历史回调信息的装置。替代地,或附加地,针对每个驱动器的所述历史回调信息可以包括暂停值和恢复值。替代地,或附加地,所述计算机可执行指令可以包括用于响应于检测到对所述多个驱动器中的至少一个驱动器的改变,更新针对所述至少一个驱动器的所述暂停值或所述恢复值的装置。替代地,或附加地,所述计算机可执行指令可以包括用于基于贪婪技术、蛮力技术、或者神经网络技术来分类所述多个驱动器的装置。替代地,或附加地,多个所述驱动器的数量可以对应于所述***的处理器的数量。替代地,或附加地,所述计算机可执行指令可以包括用于基于每个驱动器的所述历史回调信息、所述***中的处理器的数量和对应于所述功率状态转变操作的驱动器的数量来分类所述多个驱动器的装置。替代地,或附加地,所述功率状态转变操作可以包括唤醒状态和第一睡眠状态、所述唤醒状态和第二睡眠状态、所述唤醒状态和第三睡眠状态、所述唤醒状态和第四睡眠状态、或者所述唤醒状态和第五睡眠状态之间的转变。
虽然参考图1到4中的框图和流程图描述了所公开主题的示例实施例,但在附图中,本领域技术人员将容易领会,可替代地使用实现所公开的主题的许多其他方法。例如,可改变流程图中的框的执行次序,和/或可改变、消除或组合所描述的框中的一些框。
前述描述中已经描述了所公开的主题的各方面。出于解释的目的,阐述具体的数字、***和配置,来提供对本主题的深入理解。然而,对得益于本公开的本领域技术人员来说显而易见的是,不需要具体细节就可以实施本主题。在其他实例中,省略、简化、组合或分解公知的特征、组件或模块以使本主题不变得模糊。
可以以硬件、固件、软件或其组合实现所公开的主题的各实施例,并且可以参考或结合程序代码来描述所公开的主题的各实施例,该程序代码诸如是指令、函数、程序、数据结构、逻辑、应用程序、设计表达或模拟、仿真和设计制作格式,当由机器访问所述指令时,使该机器执行任务,定义抽象数据类型或低级硬件上下文,或产生结果。
为了模拟,程序代码可以表示使用硬件描述语言或基本提供如何期待所设计的硬件执行的模型的其他功能的硬件描述语言的硬件。程序代码可以是汇编或机器语言或硬件定义语言,或是可被编译和/或解释的数据。此外,在本领域中,以一种形式谈及的软件在另一种形式下说成执行动作或产生结果是很常见的。此类表达仅是说明通过使处理器执行动作或产生结果的处理***执行程序代码的速记方式。
程序代码可以被存储于诸如:包括诸如存储设备和/或包括固态存储器、硬驱动器、软盘、光存储、磁带、闪存、记忆棒、数字视频盘、数字多功能盘(DVDs),可编程门阵列等的关联的机器可读或机器可访问介质之类的易失性和/或非易失性存储器,以及诸如机器可访问生物学状态保存存储之类的更奇特的介质。机器可读介质可以包括用于以机器可读形式存储、传输或接收信息的任何有形机制,诸如天线、光纤、通信接口等。可以以分组、串行数据、并行数据等形式传输程序代码,并可以以压缩或加密的格式使用程序代码。
可以以在可编程机器上执行的程序实现程序代码,可编程机器诸如移动或固定计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机和其他电子设备,其中每个电子设备都包括处理器、可有处理器读取的易失性和/或非易失性存储器、至少一个输入设备和/或一个或多个输出设备。可以使用输入设备将程序代码应用于输入的数据,以执行所描述的实施例并生成输出信息。可以将输出信息应用于一个或多个输出设备。本领域普通技术人员可以领会,可以利用各种计算机***配置实施所公开的主题的实施例,包括:多处理器或多核处理器***、小型计算机、大型计算机,以及实际可以嵌入到任何设备中的普遍的或微型的计算机或处理器。也可以在分布式计算环境中实施所公开的主题的实施例,在分布式计算环境中,可以由通过通信网络被链接的远程处理设备执行任务。
虽然可以以顺序的进程描述操作,但事实上,可以以并行的、同时的,和/或在分布式环境中,和利用用于单处理器或多处理器机器的访问的存储于本地和/或远程的程序代码执行一些操作。此外,在一些实施例中,可以重新安排操作次序,而不背离本公开主题的精神。可以由或连同嵌入式控制器一起使用程序代码。
虽然已经参考说明性实施例描述了所公开的主题,但并不旨在将该描述理解为是限制意义的。说明性实施例的各种修改以及对涉及所公开公开主题的本领域技术人员而言显而易见的本主题的其他实施例也被视为落在所公开的公开主题的范围之内。

Claims (16)

1.一种用于管理功率状态的***,包括:
多个处理器;以及
存储设备,用于存储计算机可执行指令,其中所述计算机可执行指令用于:
检测功率状态转变操作;
检测针对所述***的多个驱动器中的每个驱动器的历史回调信息;
基于所述历史回调信息将所述多个驱动器分类到多个驱动器组;以及
基于所述多个驱动器组传送多个针对每个驱动器的功率状态指令到所述多个处理器从而执行所述功率状态转变操作。
2.如权利要求1所述的***,其中,所述计算机可执行指令用于从先前执行的功率状态转变操作中收集针对每个驱动器的所述历史回调信息。
3.如权利要求1所述的***,其中,针对每个驱动器的所述历史回调信息包括暂停值和恢复值。
4.如权利要求3所述的***,其中,所述计算机可执行指令用于响应于检测到对所述多个驱动器中的至少一个驱动器的改变来更新针对所述至少一个驱动器的所述暂停值或所述恢复值。
5.如权利要求1、2或3所述的***,其中,所述计算机可执行指令用于基于贪婪技术、蛮力技术或神经网络技术来分类所述多个驱动器。
6.如权利要求1、2或3所述的***,其中,所述驱动器组的数量对应于所述***中的处理器的数量。
7.如权利要求1、2或3所述的***,其中,所述计算机可执行指令用于基于每个驱动器的所述历史回调信息、所述***中的处理器的数量和对应于所述功率状态转变操作的驱动器的数量来分类所述多个驱动器。
8.如权利要求1、2或3所述的***,其中,所述功率状态转变操作包括唤醒状态和第一睡眠状态、所述唤醒状态和第二睡眠状态、所述唤醒状态和第三睡眠状态、所述唤醒状态和第四睡眠状态、或者所述唤醒状态和第五睡眠状态之间的转变。
9.一种用于管理功率状态的方法,包括:
检测功率状态转变操作;
检测针对***的多个驱动器中的每个驱动器的历史回调信息;
基于所述历史回调信息将所述多个驱动器分类到多个驱动器组;以及
基于所述多个驱动器组将多个针对每个驱动器的功率状态指令传送到多个处理器从而执行所述功率状态转变操作。
10.如权利要求9所述的方法,包括从先前执行的功率状态转变操作中收集针对每个驱动器的所述历史回调信息。
11.如权利要求9所述的方法,其中针对每个驱动器的所述历史回调信息包括暂停值和恢复值。
12.如权利要求11所述的方法,包括响应于检测到对所述多个驱动器中的至少一个驱动器的改变,更新针对所述至少一个驱动器的所述暂停值或所述恢复值。
13.如权利要求9、10或11所述的方法,包括基于贪婪技术、蛮力技术或神经网络技术分类所述多个驱动器。
14.如权利要求9、10或11所述的方法,其中所述驱动器组的数量对应于所述***中的处理器的数量。
15.如权利要求9、10或11所述的方法,包括基于每个驱动器的所述历史回调信息、所述***中的处理器的数量和对应于所述功率状态转变操作的驱动器的数量来分类所述多个驱动器。
16.如权利要求9、10或11所述的方法,其中所述功率状态转变操作包括唤醒状态和第一睡眠状态、所述唤醒状态和第二睡眠状态、所述唤醒状态和第三睡眠状态、所述唤醒状态和第四睡眠状态、或者所述唤醒状态和第五睡眠状态之间的转变。
CN201680090934.6A 2016-12-20 2016-12-20 功率状态管理 Active CN109983418B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/111024 WO2018112738A1 (en) 2016-12-20 2016-12-20 Power state management

Publications (2)

Publication Number Publication Date
CN109983418A CN109983418A (zh) 2019-07-05
CN109983418B true CN109983418B (zh) 2023-02-10

Family

ID=62624430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680090934.6A Active CN109983418B (zh) 2016-12-20 2016-12-20 功率状态管理

Country Status (4)

Country Link
US (1) US10936047B2 (zh)
CN (1) CN109983418B (zh)
DE (1) DE112016007529T5 (zh)
WO (1) WO2018112738A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115617539A (zh) * 2021-07-16 2023-01-17 联发科技(新加坡)私人有限公司 处理实时应用消息的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102741775A (zh) * 2010-12-23 2012-10-17 英特尔公司 用于对计算机平台的***功率状态进行转换的方法、装置和***
CN104487913A (zh) * 2012-08-28 2015-04-01 英特尔公司 用于促进针对计算***中的存储设备的高效操作路径的机构

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065663B2 (en) * 2002-12-19 2006-06-20 Intel Corporation Methods and apparatus to control power state transitions
US7313708B2 (en) * 2004-04-28 2007-12-25 Microsoft Corporation Interlocked plug and play with power management for operating systems
US7565562B2 (en) 2004-09-03 2009-07-21 Intel Corporation Context based power management
JP4961781B2 (ja) * 2006-03-14 2012-06-27 ソニー株式会社 情報処理装置、その起動方法およびプログラム
US7971084B2 (en) * 2007-12-28 2011-06-28 Intel Corporation Power management in electronic systems
US20090204837A1 (en) * 2008-02-11 2009-08-13 Udaykumar Raval Power control system and method
CN101419485B (zh) * 2008-11-24 2014-12-31 电子科技大学 一种功能可变的可穿戴计算机主板
CN101827088B (zh) 2010-03-15 2013-03-27 北京航空航天大学 基于cpu总线互联的底层通信协议实现方法
KR101738641B1 (ko) * 2010-12-17 2017-05-23 삼성전자주식회사 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법
CN102238236A (zh) 2011-07-12 2011-11-09 华南理工大学 基于ZigBee和页面生成的智能家电***及其实现方法
US8930633B2 (en) * 2012-06-14 2015-01-06 International Business Machines Corporation Reducing read latency using a pool of processing cores
US9785447B2 (en) * 2014-06-27 2017-10-10 Intel Corporation System standby emulation with fast resume
US10198274B2 (en) * 2015-03-27 2019-02-05 Intel Corporation Technologies for improved hybrid sleep power management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102741775A (zh) * 2010-12-23 2012-10-17 英特尔公司 用于对计算机平台的***功率状态进行转换的方法、装置和***
CN104487913A (zh) * 2012-08-28 2015-04-01 英特尔公司 用于促进针对计算***中的存储设备的高效操作路径的机构

Also Published As

Publication number Publication date
US20190278361A1 (en) 2019-09-12
DE112016007529T5 (de) 2019-09-26
US10936047B2 (en) 2021-03-02
CN109983418A (zh) 2019-07-05
WO2018112738A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
CN105103144B (zh) 用于存储器的自适应控制的设备及方法
CN102789305B (zh) 推迟挂起
US7869835B1 (en) Method and system for pre-loading and executing computer instructions within the cache memory
US9600059B2 (en) Facilitating power management in a multi-core processor
CN107003948B (zh) 电子设备及用于控制其可共享的高速缓存存储器的方法
US8726055B2 (en) Multi-core power management
US11467650B2 (en) Selecting a low power state in an electronic device
US20170206031A1 (en) Fine grain level memory power consumption control mechanism
US10635337B2 (en) Dynamic configuration of compressed virtual memory
CN111611125A (zh) 用于改善高性能计算应用的性能数据收集的方法与设备
US20120297216A1 (en) Dynamically selecting active polling or timed waits
TW201926060A (zh) 省電快取記憶體使用
KR20210103415A (ko) 음성 칩 및 전자 기기
US10275007B2 (en) Performance management for a multiple-CPU platform
EP3314431A1 (en) Adaptive hardware acceleration based on runtime power efficiency determinations
US20220075639A1 (en) Executing an application with multiple processors
US20200349008A1 (en) Application Checkpoint and Recovery System
CN109983418B (zh) 功率状态管理
US20220179706A1 (en) Adaptive resource allocation system and method for a target application executed in an information handling system (ihs)
KR102619117B1 (ko) 전자 장치 및 전자 장치의 동작 방법
US11043158B2 (en) Video bandwidth optimization for multi-monitor systems
US20120185713A1 (en) Server, storage medium, and method for controlling sleep and wakeup function of the server
US10884477B2 (en) Coordinating accesses of shared resources by clients in a computing device
US20150095686A1 (en) Power consumption reduction in a computing device
US10891172B2 (en) Modifying an operating system

Legal Events

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