CN113625859A - 智能预测处理器空闲时间的装置及方法 - Google Patents

智能预测处理器空闲时间的装置及方法 Download PDF

Info

Publication number
CN113625859A
CN113625859A CN202011344198.7A CN202011344198A CN113625859A CN 113625859 A CN113625859 A CN 113625859A CN 202011344198 A CN202011344198 A CN 202011344198A CN 113625859 A CN113625859 A CN 113625859A
Authority
CN
China
Prior art keywords
power state
state
power
machine learning
hwm
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.)
Pending
Application number
CN202011344198.7A
Other languages
English (en)
Inventor
利奥·阿克拉巴维
郭佳虹
詹姆斯·G·赫默丁二世
普雷曼德·萨卡达
比詹·阿巴布
克兰·西尔维斯特
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 CN113625859A publication Critical patent/CN113625859A/zh
Pending legal-status Critical Current

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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • 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
    • 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
    • G06F1/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • 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
    • G06F1/3215Monitoring of peripheral devices
    • 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
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Sources (AREA)
  • Complex Calculations (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开涉及智能预测处理器空闲时间的装置及方法。一种机器学习(ML)方案运行软件驱动器堆栈以学习进入诸如现代连接待机(ModCS)之类的低功率状态的用户习惯,以及取决于一天中的时间和/或系统遥测的持续时间。ML创建脏缓存线(DL)的高水位线(HWM)数量,作为对功率代理的提示。功率代理算法使用这些提示和实际系统的DL数量来通知计算系统低的功率状态进入决定(诸如S0i4与S0i3进入决定)。

Description

智能预测处理器空闲时间的装置及方法
技术领域
本公开涉及智能预测处理器空闲时间的装置及方法。
背景技术
用于处理器进入诸如S0i4之类的低功率状态(例如,具有两级存储器配置的动态随机存取存储器(DRAM)关闭状态)的优化决定会导致这些低功率状态的较高进入和/或重启成本。盈亏平衡点(breakeven point)可能在几分钟量级。延迟S0i4进入或错误进入(并且在几分钟内退出)导致能量和电池寿命的浪费,这可能影响用户的电池寿命(HoBL)体验。
发明内容
根据本公开的一个实施例,提供了一种用于预测空闲时间的装置,所述装置包括:功率管理单元,用于将高水位线(HWM)与脏缓存线的当前数量进行比较;以及机器学习逻辑,用于根据遥测信息和/或所述脏缓存线的当前数量来生成所述HWM,其中,所述功率管理单元用于如果所述脏缓存线的当前数量大于所述HWM则使所述装置进入第一功率状态,并且其中,所述功率管理单元用于如果所述脏缓存线的当前数量小于所述HWM则使所述装置进入第二功率状态。
根据本公开的另一实施例,提供了一种用于预测空闲时间的方法,所述方法包括:读取遥测信息;以及应用机器学习以根据所述遥测信息和/或脏缓存线的当前数量来生成高水位线(HWM),其中,所述HWM是脏缓存线数量的阈值,该阈值允许功率管理单元决定进入第一功率状态还是第二功率状态。
根据本公开的又一实施例,提供了一种机器可读存储介质,其上存储有机器可读指令,所述机器可读指令当被执行时使一个或多个处理器执行根据本申请实施例的方法。
根据本申请的又一实施例,提供了一种系统,包括:存储器;处理器,耦合到所述存储器,其中,所述处理器包括根据本申请实施例的装置;以及无线接口,用于允许所述处理器与另一设备通信。
附图说明
从下面给出的详细描述和本公开的各种实施例的附图将更全面地理解本公开的实施例,然而,这些附图不应被视为将本公开局限于特定实施例,而是仅用于说明和理解。
图1示出了根据一些实施例的可用于智能地预测空闲时间以减少与深度睡眠状态相关联的进入能量成本的高级计算架构。
图2示出了根据一些实施例的用于智能地预测空闲时间以减少进入能量成本的架构的流程图。
图3示出了根据一些实施例的通过训练机器学习算法来智能地预测空闲时间的方法。
图4示出了根据一些实施例的通过使用推断来智能地预测空闲时间的方法。
图5示出了根据各种实施例的智能设备或计算机系统或SoC(片上系统),其具有用于智能地预测空闲时间以减少进入能量成本的装置和/或软件。
具体实施方式
由功率代理算法(例如,在功率控制单元(PCU)上执行的pCode固件)控制的存储器子系统的功率策略可以使用启发式方法来构建通用(one-size-fits-all)的决定,以猜测处理器的用户是否将保持处于现代连接待机(ModCS),或者该用户是否计划在不久之后唤醒处理器。在这种情况下,功率代理算法假设历史是未来的指示。现代待机或ModCS是
Figure BDA0002799430730000021
8.1连接待机的扩展。ModCS只是一个示例,各种实施例也适用于其他低功率空闲机制。
功率代理算法检测何时处理器的用户处于ModCS的时间已经足够长,并基于系统缓存中脏缓存线(dirty cache line)的数量来决定进入成本是否合理。系统缓存的示例包括一级存储器(1LM)模式配置中的末级(LL)缓存,或两级存储器(2LM)模式配置中的DRAM缓存。
然而,上面讨论的功率代理算法无法基于单个用户角色或行为模式来预测和微调决定,因此它不能为处理器的用户微调进入决定。这会导致错误进入或错过机会的情况。此外,功率代理算法可能要求处理器在决定进入S0i3或S0i4状态之前保持PC10功率状态一段时间。在功率代理算法决定在S0i4状态之前进入S0i3状态的某些情况下,当预测的S0i4状态进入本来会允许较长时间处于低功率状态时,该决定导致在S0i3状态中花费的时间的浪费能量,并且在退出S0i3状态并重新进入S0i4状态时产生额外的能量浪费。虽然参考S0ix状态来描述实施例,但是实施例也适用于其他低功率状态,诸如参考2019年1月发布的版本6.3中呈现的高级配置和电源接口(ACPI)规范描述的那些低功率状态。
这里,S0ix状态表示驻留在
Figure BDA0002799430730000031
SoC(片上系统)空闲待机功率状态中,其中“x”是数字。S0ix状态在不使用部分SoC时将其关闭。例如,S0i4使用两级存储器配置将动态随机存取存储器(DRAM)置于关闭状态。与S0i3相比,S0i4是更深的睡眠状态。当达到SoC内的特定条件时,会触发S0ix状态。例如,当计算系统的某些组件处于低功率状态时,SoC可以决定进入特定的更深功率状态。在最深功率状态下(例如S0i4),SoC消耗最少量的功率。
一些实施例使用在软件驱动器堆栈上运行的更高级别的机器学习(ML)(诸如基于ML的动态平台热框架驱动器,即DPTF-ML驱动器)以及系统遥测(telemetry),该ML用来学习进入低功率状态(诸如ModCS)的用户习惯和取决于一天中的时间的持续时间。ML创建脏缓存线的高水位线(High Water Mark,HWM)数量,作为对功率代理的提示。各种实施例的功率代理算法使用这些提示和实际系统的脏缓存线的数量来通知低功率状态进入决定,诸如S0i4与S0i3进入决定。
各种实施例有许多技术效果。例如,在低功率状态(诸如ModCS待机状态)下,功率代理算法或方案可以为客户节省大量的电池寿命。各种实施例的功率代理算法或方案允许计算平台成本降低,因为该方案允许计算平台使用更便宜的DRAM双列直插式存储器模块(DIMM)来获得更低或更深的功率状态(例如,ModCS功率状态)(与它们使用更昂贵的低功率双倍数据速率(LPDDR)DIMM可以获得的相比)。其他技术效果将从各种实施例和附图中显而易见。
在下面的描述中,讨论许多细节以提供对本公开的实施例的更彻底的说明。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本公开的实施例。在其他实例中,为了避免混淆本公开的实施例,以框图形式而不是详细地示出公知结构和设备。
注意,在实施例的相应附图中,信号用线表示。一些线可能更粗,以指示更多的组成信号路径,和/或在一个或多个末端具有箭头,以指示主要信息流方向。此类指示并非旨在限制。相反,线结合一个或多个示例性实施例使用以便于更容易地理解电路或逻辑单元。任何表示的信号(如设计需求或偏好所指示的)实际上可以包括一个或多个可以沿任一方向传播的信号,并且可以利用任何适当类型的信号方案来实现。
在本说明书和权利要求中,术语“连接”是指没有任何中间设备的直接连接,诸如所连接的事物之间的电气、机械或磁性连接。
术语“耦合”是指直接或间接连接,诸如所连接的事物之间的直接电气、机械或磁性连接、或通过一个或多个无源或有源中间设备的间接连接。
这里的“相邻”一般是指一个事物紧挨着(例如,紧靠或靠近它们之间的一个或多个事物)或相邻另一个事物(例如,邻接)。
术语“电路”或“模块”可以指布置成彼此协作以提供所需功能的一个或多个无源和/或有源部件。
术语“信号”可以指至少一个电流信号、电压信号、磁信号或数据/时钟信号。“一”、“一个”和“该”的含义包括复数参考。“在……中”的含义包括“在……中”和“在……上”。
术语“缩放”通常是指将设计(原理图和布局)从一种工艺技术转换为另一种工艺技术,并且随后可能减少布局区域。在某些情况下,缩放还指将设计从一种工艺技术扩升到另一种工艺技术,并可能随后增加布局区域。术语“缩放”通常也指在同一技术节点内缩小或增大布局和设备。术语“缩放”也可指相对于另一参数(例如,电源电平)调整(例如,减速或加速-即分别缩小或放大)信号频率。术语“基本上”、“接近”、“近似”、“靠近”和“大约”通常指在目标值的+/-10%范围内。
除非另有规定,否则使用序数形容词“第一”、“第二”和“第三”等来描述一个共同的对象仅仅表明相似对象的不同实例正在被提及,并不意味着这样描述的对象必须在时间上、空间上、等级上、或者以任何其他方式以给定的顺序排列。
就本公开而言,短语“A和/或B”和“A或B”是指(A)、(B)或(A和B)。就本公开而言,短语“A、B和/或C”是指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
说明书和权利要求书中的术语“左”、“右”、“前”、“后”、“上”、“下”、“在……上”、“在……下”等(如果存在的话)用于描述性目的,而不一定用于描述永久相对位置。
需要指出的是,具有与任何其他附图的具有相同的参考标号(或名称)的那些元素可以以与所描述的类似的方式操作或起作用,但不限于此。
为了实施例的目的,这里描述的各种电路和逻辑块中的晶体管是金属氧化物半导体(MOS)晶体管或其衍生物,其中MOS晶体管包括漏极、源极、栅极和体端子(bulkterminal)。晶体管和/或MOS晶体管衍生物还包括三栅极和FinFET晶体管、栅极全围绕圆柱形晶体管、隧穿FET(TFET)、方形线(Square Wire)或矩形带状晶体管(Rectangular RibbonTransistors)、铁电FET(FeFET)或实现晶体管功能的其他器件,如碳纳米管或自旋电子器件。MOSFET对称源极和漏极端子,即相同的端子且在这里可以互换使用。另一方面,TFET器件具有不对称的源极和漏极端子。本领域技术人员将理解,可以在不脱离本公开的范围的情况下使用其他晶体管,例如,双极结型晶体管(BJT PNP/NPN)、BiCMOS、CMOS等。
图1示出了根据一些实施例的可用于智能地预测空闲时间以减少与深度睡眠状态相关联的进入能量成本的高级计算架构100。架构100是图5的片上系统(SoC)的简化版本。在一些实施例中,架构100包括SoC101、内核102(例如,操作系统)、应用程序103、软件驱动器104和外部存储器105。SoC 101可以包括许多知识产权(IP)块,诸如处理器核、稳压器(VR)、缓存等。在一些实施例中,SoC 101包括功率管理逻辑101a,其执行代码101b(这里称为pCode)以管理SoC 101和架构100的功率。SoC 101还可以包括存储器101c。存储器101c可以是第一级、第二级、第三级和/或最后一级缓存。在一些实施例中,存储器101c不是缓存存储器,而是用于存储数据的比缓存更大的存储器。例如,当在(一个或多个)缓存中找不到数据时,处理器核可以访问存储器101c。在一些实施例中,SoC 101还耦合到诸如DIMM之类的外部存储器105。
在一些实施例中,驱动器104包括执行用于动态调整参数(例如,空闲时间的预测)的更高ML方案的驱动器堆栈(例如,一个或多个驱动器)。ML方案学习进入诸如ModCS之类的低功率状态的用户习惯,以及持续时间,该持续时间取决于一天中的时间(TOD)、一周中的星期几(DOW)、日历繁忙和空闲时间空档、以及其他系统遥测。ML创建脏缓存线的高水位线(HWM)数量,作为对功率管理单元101a的提示以决定进入哪个功率状态(例如,SiO3或SiO4)。功率管理单元101a(也称为功率代理)使用专有的或OEM(原始设备制造商)可访问的软件代码(诸如pCode)来执行算法,以分析这些提示和实际系统的脏缓存线的数量,以通知低功率状态输入决定,诸如S0i4与S0i3进入决定。因此,架构100进入一功率状态,该功率状态在SoC的使用条件下产生更高节能。例如,基于遥测信息,ML方案预测SoC 101的空闲持续时间,然后取决于该持续时间,将SoC 101置于睡眠模式以释放来自该睡眠模式的大部分节能。因此,架构100可以延迟进入S0i4状态,或者延迟错误地进入要花几分钟退出的功率状态。
图2示出了根据一些实施例的用于智能地预测空闲时间以减少与深度睡眠状态相关联的进入能量成本的架构的流程图200。流程图200示出了可以是硬件、软件或它们的组合的功能块。各个块可以被按顺序、并行或无序地执行以生成进入特定功率状态的决定。
在一些实施例中,用于智能地预测空闲时间的架构包括用于训练ML模型以进行动态调整的机器学习(ML)方案驱动器201、用于推断的ML方案驱动器202、系统遥测信息203、存储时间戳计数器(TSC)204的寄存器、存储HWM 205的寄存器、用于确定关于较低状态的决定的pCode101b、标记缓存206、以及用于存储脏线207的数量的寄存器。在一些实施例中,ML方案驱动器201包括软件、硬件或它们的组合。例如,ML方案驱动器201包括或可以访问乘法器和加法器来训练ML模型,并基于经训练的权重(或系数)和输入(例如,遥测输入)来生成输出。在一些实施例中,ML方案驱动器201使用下列项中的一项或多项来实现机器学习:逻辑回归、随机森林(Random Forest)或神经网络。
在一些实施例中,ML方案驱动器202假设经训练的权重并基于输入(例如,遥测信息)推断输出(例如,进入提示)。在这种情况下,由于已经训练了驱动器201的ML模型(例如,已经确定了权重),因此生成输出的速度要快得多。在一些实施例中,ML方案驱动器202包括软件、硬件或它们的组合。例如,ML方案驱动器202包括或可以访问乘法器和加法器来训练ML模型,并基于经训练的权重(或系数)和输入(例如,遥测输入)来生成输出。
在一些实施例中,系统遥测203包括用于训练ML算法的指令和机制。例如,系统遥测203可以访问用作ML驱动器201和202的输入的大量用户行为。在一些实施例中,系统遥测203在暂存器空间(例如,存储器)中记录用户ModCS进入和/或退出历史和处于状态的时间(time-in-state)(例如,在特定功率状态下花费的时间),以在ML算法运行以进行训练时对其进行训练。在一些实施例中,处于状态的时间是在训练阶段期间用作反馈的预测变量。在一些示例中,在推断期间可能不使用处于状态的时间。在一些实施例中,暂存器中的记录是可以作为由驱动器201启动ML训练算法(或由驱动器202启动ML推断算法)的触发的事件。当训练时,权重被修改以实现预期的输出。在一些实施例中,系统遥测203可以使用来自进入和/或退出时的前台应用程序的数据。在一些实施例中,系统遥测203可以使用来自用户日历的数据。例如,表示空闲、忙碌、外出信息等的数据,用于预测在一天中的特定时间(TOD)、一周中的星期几(DOW)的用户行为,从而预测特定功率状态下待机时间的持续时间。遥测信息不限于上述示例。还可以使用ML方案驱动器201/202所需的其它信息以辅助其决定进入什么功率状态和何时进入。
一般情况下,由于ML算法的输入量很大,因此传统的软件控制算法过于复杂并且能耗大。ML算法随着时间的推移适应特定的用户习惯和行为。在一些实施例中,ML算法使用下列项中的一项或多项来训练权重:逻辑回归、随机森林或神经网络。在一些实施例中,ML算法201/202实时运行。在一些实施例中,ML算法201/202根据事件运行而不是实时运行。例如,ML算法201/202由上述遥测事件的变化而触发在用户的系统上运行。在另一个示例中,ML算法201/202很少在用户系统上运行,并且在该时段期间用记录的遥测历史进行训练。在一些实施例中,ML算法201作为ModCS进入流的一部分来运行以更新ML网络,然后通过ML算法202运行推断。在一些实施例中,基于用户遥测将ML算法201的训练卸载到云(或服务器)。
在一些实施例中,当从低功率情况(例如,ModCS)退出时,ML驱动器201读取时间戳计数器(TSC)204并将处于状态的时间(TIS)信息馈送给ML算法201。TSC 204是x86处理器中的寄存器(例如,64位寄存器)。可以使用FreeBSD上的kern.timecounter.invariant_tscsynctl或Linux的/proc/cpuinfo中的constant tsc标志来访问TSC 204。TSC在处理器(例如,SoC 101的核)的标称频率上走时(tick),而不管由于加速(turbo)或节能状态导致的实际CPU核时钟频率。因此,TSC走时是计算时间的流逝,而不是所经过的CPU时钟周期的数目。在一些实施例中,除了TSC 204之外或代替TSC 204,ML方案驱动器201还使用经由
Figure BDA0002799430730000081
API可用的更高分辨率计数器,诸如QueryPerformanceCounter和QueryPerformanceFrequency。
在各种实施例中,ML方案驱动器201读取脏线暂存器(例如,存储器区域)中的脏线的数量以基于处于状态的时间信息、水位线205和/或DL计数207反馈到ML算法201,以将预测误差反馈给ML算法201。脏缓存线通常是指相对于主存储器101c或104中的数据的副本被修改的缓存中的数据。为缓存线断言脏比特,其指示该缓存线的内容与当前驻留在操作存储器中的内容不同。脏线(DL)的数量表示具有与主存储器中的相应数据相比被修改的数据的缓存线的数量。
在各种实施例中,在进入功率状态(例如,ModCS进入)时,功率代理101a(或任何合适的微控制器)执行pCode 101b(或任何其他软件)或执行将来自标签缓存206的当前脏线与由ML驱动器202建立的HWM205进行比较的硬件和/或软件功能。标签缓存206是被请求的存储器位置。数据通常在存储器105和缓存之间传输。数据以固定大小的块(称为缓存线或缓存块)进行传输。当将缓存线从存储器复制到缓存时,创建缓存条目。缓存条目将包括所复制的数据以及所请求的存储器位置(即,标签缓存206)。
HWM 205被存储在由驱动器201和/或202可访问的寄存器中。HWM205表示脏缓存线的阈值水平或计数,它规定了SoC 101是否应进入特定功率状态。由于ML方案201或202随着时间的推移而运行(例如,在一天中),因此它将使用最新的HWM 205不断更新暂存器。该HWM205阈值被定期地与脏缓存线的当前数量进行比较,以预测要进入的功率状态(例如,S0i3或S0i4)。
例如,pCode 101b将HWM 205与DRAM中的脏线数量进行比较,并构建简单的进入S0i4或进入S0i3决定。例如,如果DRAM中的脏线数量大于HWM 205,pCode 101b将使SoC 101或计算系统处于S0i3状态,以减轻冲洗这些脏线的进入能量成本,否则,它将使SoC 101或计算系统处于S0i4状态,因为所预测的ModCS的处于状态的时间预计将长到足以覆盖进入的能量成本。在比较HWM 205和DL的当前数量之后,pCode101b更新存储TSC 204和/或TIS的寄存器。TSC 204稍后用于计算TIS以馈送到ML方案201。在一些实施例中,在比较HWM 205和DL的当前数量之后,pCode 101b将其决定提供给ML驱动器201。在一些实施例中,pCode101b还更新对脏DRAM线的计数以用于由ML方案驱动器201进行未来训练/学习。
在一些实施例中,在退出功率状态(例如,退出ModCS)时,pCode101b将时间戳计数器204写入暂存器寄存器以计算处于状态的时间并馈送到ML算法201中。ML算法201然后将使用时间戳来预测未来进入的处于状态的时间。
图3示出了根据一些实施例的通过训练机器学习算法来智能地预测空闲时间的方法300。尽管框以特定顺序示出,但该顺序可被修改。例如,一些框与其他框并行执行,而一些框在其他框之前执行。
在框301处,系统遥测逻辑203从各种源收集遥测信息,以预测响应于进入诸如现代待机之类的待机模式的用户行为。例如,系统遥测逻辑203识别在进入和/或退出功率状态时的前台应用程序、指示SoC的用户何时空闲、忙碌、外出等的日历信息、电池信息(例如,充电和/或放电模式)、一天中的时间和/或一周中的星期几。如框302所示,将遥测信息提供给ML驱动器201以训练机器学习模型。在一些实施例中,遥测信息的变化(与其先前的状态或值相比)是使得ML驱动器201开始训练其ML模型的事件。在训练ML模型之后,系统退出待机模式(例如,退出现代待机模式)。在框303处,ML驱动器还读取(一个或多个)TSC寄存器以执行其ML模型的训练。如框304所示,经训练的模型(例如,在校准权重之后)的输出是提供给功率管理代理101a的HWM。框301、302或303是训练阶段的一部分。
在框305处,功率管理代理101a将脏线(缓存线)的当前数量与HWM进行比较。如果脏线(DL)的数量大于HWM,则功率管理代理101a使SoC 101或计算系统进入第一功率状态,该第一功率状态与第二功率状态相比是较不深的功率状态。在这样的确定时,功率管理代理使SoC101进入第一功率状态(例如,浅功率状态,诸如Si03),如框306所示。一旦SoC 101或计算系统退出第一功率状态,如框307所示,ML驱动器201就读取(一个或多个)TSC寄存器并如框308所示更新TIS寄存器。然后,处理返回到如框302所示的对模型进行重新训练。
如果脏线(DL)的数量小于HWM,则功率管理代理101a使SoC 101或计算系统进入第二功率状态,该第二功率状态与第一功率状态相比是更深的功率状态。在这样的确定之后,然后功率管理代理101a使SoC 101或计算系统进入第二功率状态,该第二功率状态是与第一功率状态相比更深的功率状态(例如,S0i4),如309所示。一旦SoC 101或计算系统退出第二功率状态,如框310所示,ML驱动器201就读取(一个或多个)TSC寄存器并如框311所示更新TIS寄存器。然后,处理返回到如框302所示的对模型进行重新训练。
图4示出了根据一些实施例的通过使用推断来智能地预测空闲时间的方法400。方法400类似于方法300,但通过框401进行推断而不是权重训练。在这种情况下,移除用于训练的框302和303。在推断阶段,由ML驱动器202使用经训练的权重以及新的或经更新的遥测信息来生成HWM。该处理比图3的方法更快,因为模型没有被重新训练(其是计算密集型任务)。
实施例的要素(例如,流程图300、400和参考图1-4描述的方案)也被提供为用于存储计算机可执行指令(例如,用于实现本文所讨论的任何其它处理的指令)的机器可读介质(例如,存储器)。在一些实施例中,计算平台包括存储器、处理器、机器可读存储介质(也称为有形机器可读介质)、通信接口(例如,无线或有线接口)以及将它们耦合的网络总线。
在一些实施例中,处理器是数字信号处理器(DSP)、专用集成电路(ASIC)、通用中央处理单元(CPU)、或实现简单有限状态机以执行流程图200-400和/或各种实施例的方法的低功率逻辑等。
在一些实施例中,系统的各种逻辑块经由网络总线耦合在一起。可以使用任何合适的协议来实现网络总线。在一些实施例中,机器可读存储介质包括用于智能地预测处理器空闲时间的指令(也称为程序软件代码/指令),如参考各种实施例和流程图所述。
与流程图200-400(和/或各种实施例)相关联并且被执行以实现所公开主题的实施例的程序软件代码/指令可以被实现为下列项的一部分:操作系统或特定应用程序、组件、程序、对象、模块、例程、或其他指令序列或指令序列组织,称为“程序软件代码/指令”、“操作系统程序软件代码/指令”、“应用程序软件代码/指令”,或简称“软件”或嵌入处理器中的固件。在一些实施例中,与流程图200-400(和/或各种实施例)相关联的程序软件代码/指令由计算机系统执行。
在一些实施例中,与流程图200-400(和/或各种实施例)相关联的程序软件代码/指令被存储在计算机可执行存储介质中并由处理器执行。这里,计算机可执行存储介质是可用于存储程序软件代码/指令和数据的有形机器可读介质,当由计算设备执行时,使得一个或多个处理器执行可在针对所公开的主题的一个或多个附随权利要求中叙述的(一个或多个)方法。
有形机器可读介质可以包括各种有形位置中的可执行软件程序代码/指令和数据的存储装置,包括例如ROM、易失性RAM、非易失性存储器和/或缓存和/或本申请中引用的其它有形存储器。该程序软件代码/指令和/或数据的部分可以存储在这些存储装置和存储设备中的任何一者中。此外,程序软件代码/指令可以从其他存储装置获得,包括例如通过集中服务器或对等网络等,包括互联网。软件程序代码/指令和数据的不同部分可以在不同的时间、在不同的通信会话中或在同一通信会话中获得。
软件程序代码/指令(与流程图200-400和其他实施例相关联)和数据可以在由计算设备执行相应的软件程序或应用程序之前全部获得。替代地,当需要执行时,可以动态地(例如,及时地)获得软件程序代码/指令和数据的部分。替代地,例如,对于不同的应用程序、组件、程序、对象、模块、例程、或其他指令序列或指令序列组织,这些获得软件程序代码/指令和数据的方式的一些组合可能会发生。因此,在特定的时间实例中,不要求数据和指令全部位于有形的机器可读介质上。
有形计算机可读介质的示例包括但不限于可记录和不可记录类型的介质,诸如易失性和非易失性存储设备、只读存储器(ROM)、随机存取存储器(RAM)、闪存设备、磁性随机存取存储器、铁电存储器、软盘和其他可移动磁盘、磁存储介质、光存储介质(如光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)等)等。软件程序代码/指令可以临时存储在数字有形通信链路中,同时例如通过这种有形通信链路实现诸如载波、红外信号、数字信号等之类的电、光、声或其他形式的传播信号。
一般而言,有形机器可读介质包括以机器(即,计算设备)可访问的形式提供(即,以数字形式存储和/或发送,例如数据分组)信息的任何有形机制,信息可以包括在例如通信设备、计算设备、网络设备、个人数字助理、制造工具、移动通信设备中,而无论是否能够从诸如互联网(例如,
Figure BDA0002799430730000131
等)之类的通信网络或任何其他设备(包括计算设备)下载和运行应用程序和补贴应用程序。在一个实施例中,基于处理器的系统是PDA(个人数字助理)、蜂窝电话、笔记本电脑、平板电脑、游戏机、机顶盒、嵌入式系统、TV(电视)、个人台式计算机等的形式或包括在其中。替代地,传统通信应用程序和(一个或多个)补贴应用程序可以在所公开主题的一些实施例中使用。
图5示出了根据各种实施例的智能设备或计算机系统或SoC(片上系统),其具有用于智能地预测空闲时间以减少与深度睡眠状态相关联的进入能量成本的装置和/或软件。应指出,图5的具有与任何其他附图的元素相同的参考标号(或名称)的那些元素可以以与所描述的类似的任何方式操作或起作用,但不限于此。虽然各种实施例被示为由功率管理单元101a执行,但是这里描述的可以控制计算机系统的功率状态的任何框都可以具有用于智能地预测空闲时间以减少与深度睡眠状态相关联的进入能量成本的装置和/或软件。例如,PCU 2410a、PCU 2410b和/或PMIC 2412可以执行功率代理101a的功能。
在一些实施例中,设备2400表示适当的计算设备,诸如计算平板电脑、移动电话或智能电话、笔记本电脑、台式机、物联网(IOT)设备、服务器、可穿戴设备、机顶盒、支持无线的电子阅读器等。应当理解,总体示出了某些组件,而不是在设备2400中示出了这种设备的所有组件。
在一个示例中,设备2400包括SoC(片上系统)2401。在图5中使用虚线示出了SOC2401的示例边界,其中一些示例组件被示出包括在SOC2401内–然而,SOC 2401可以包括设备2400的任何适当组件。
在一些实施例中,设备2400包括处理器2404。处理器2404可以包括一个或多个物理设备,诸如微处理器、应用处理器、微控制器、可编程逻辑器件、处理核或其他处理装置。由处理器2404执行的处理操作包括在其上执行应用和/或设备功能的操作平台或操作系统的执行。处理操作包括与人类用户或其他设备的I/O(输入/输出)相关的操作、与功率管理相关的操作、与将计算设备2400连接到另一设备相关的操作等。处理操作还可以包括与音频I/O和/或显示I/O相关的操作。
在一些实施例中,处理器2404包括多个处理核(也称为核)2408a、2408b、2408c。尽管图5中仅示出三个核2408a、2408b、2408c,但是处理器2404可以包括任何其他适当数量的处理核,例如,数十个或甚至数百个处理核。可以在单个集成电路(IC)芯片上实现处理器核2408a、2408b、2408c。此外,芯片可以包括一个或多个共享和/或私有的缓存、总线或互连、图形和/或存储器控制器、或其他组件。
在一些实施例中,处理器2404包括缓存2406。在一个示例中,缓存2406的部分可以专用于各个核2408(例如,缓存2406的第一部分专用于核2408a,缓存2406的第二部分专用于核2408b,以此类推)。在一个示例中,缓存2406的一个或多个部分可以在两个或多个核2408之间共享。缓存2406可以分为不同的级别,例如,级别1(L1)缓存、级别2(L2)缓存、级别3(L3)缓存等。
在一些实施例中,处理器核2404可以包括获取单元,以获取用于由核2404执行的指令(包括具有条件分支的指令)。可以从诸如存储器2430之类的任何存储设备获取指令。处理器核2404还可以包括解码单元,以解码所获取的指令。例如,解码单元可以将所获取的指令解码为多个微操作。处理器核2404可以包括调度单元,以执行与存储经解码的指令相关联的各种操作。例如,调度单元可以保存来自解码单元的数据,直到指令准备好分派为止,例如,直到经解码的指令的所有源值变得可用为止。在一个实施例中,调度单元可以将经解码的指令调度和/或发出(或分派)到执行单元以供执行。
执行单元可以在所分派的指令被解码(例如,由解码单元)和分派(例如,由调度单元)之后执行这些所分派的指令。在一个实施例中,执行单元可以包括一个以上的执行单元(诸如成像计算单元、图形计算单元、通用计算单元等)。执行单元还可以执行各种算术运算,诸如加法、减法、乘法和/或除法,并且可以包括一个或多个算术逻辑单元(ALU)。在一个实施例中,协同处理器(未示出)可以与执行单元一起执行各种算术运算。
进一步地,执行单元可以执行无序的指令。因此,在一个实施例中,处理器核2404可以是无序处理器核。处理器核2404还可以包括引退单元(retirement unit)。引退单元可以在指令被执行后将其引退。在一个实施例中,经执行的指令的引退可以使得从指令的执行提交处理器状态、由指令所使用的物理寄存器被去分派等。处理器核2404还可以包括总线单元,以使处理器核2404的组件与其他组件之间能够经由一条或多条总线进行通信。处理器核2404还可以包括一个或多个寄存器,以存储由核2404的各个组件访问的数据(诸如与分配的应用优先级和/或子系统状态(模式)关联相关的值)。
在一些实施例中,设备2400包括连接电路2431。例如,连接电路2431包括硬件设备(例如,无线和/或有线连接器和通信硬件)和/或软件组件(例如,驱动器、协议栈),例如,以使设备2400能够与外部设备进行通信。设备2400可以与诸如其他计算设备、无线接入点或基站等之类的外部设备分离。
在一个示例中,连接电路2431可以包括多个不同类型的连接性。概括地说,连接电路2431可以包括蜂窝连接电路、无线连接电路等。连接电路2431的蜂窝连接电路通常是指由无线运营商提供的蜂窝网络连接,诸如经由GSM(全球移动通信系统)或变体或衍生物、CDMA(码分多址)或变体或衍生物、TDM(时分复用)或变体或衍生物、第三代合作伙伴项目(3GPP)通用移动通信系统(UMTS)系统或变体或衍生物、3GPP长期演进(LTE)系统或变体或衍生物、3GPP高级LTE(LTE-A)系统或变体或衍生物、第五代(5G)无线系统或变体或衍生物、5G移动网络系统或变体或衍生物、5G新无线电(NR)系统或变体或衍生物、或其他蜂窝服务标准来提供。连接电路2431的无线连接电路(或无线接口)是指非蜂窝的无线连接性,并且可以包括个域网(诸如蓝牙、近场等)、局域网(诸如Wi-Fi)和/或广域网(诸如WiMax)和/或其他无线通信。在一个示例中,连接电路2431可以包括网络接口,诸如有线或无线接口,例如使得系统实施例可以被并入无线设备(例如,蜂窝电话或个人数字助理)中。
在一些实施例中,设备2400包括控制集线器2432,其表示与一个或多个I/O设备的交互相关的硬件设备和/或软件组件。例如,处理器2404可以经由控制集线器2432与显示器2422、一个或多个外围设备2424、存储设备2428、一个或多个其他外部设备2429等中的一者或多者进行通信。控制集线器2432可以是芯片组、平台控制集线器(PCH)等。
例如,控制集线器2432示出了用于连接到设备2400的附加设备的一个或多个连接点,例如,用户可以通过这些连接点与系统进行交互。例如,可以附接到设备2400的设备(例如,设备2429)包括麦克风设备、扬声器或立体声系统、音频设备、视频系统或其他显示设备、键盘或键盘设备、或用于诸如读卡器或其他设备之类的特定应用的其他I/O设备。
如上所述,控制集线器2432可以与音频设备、显示器2422等进行交互。例如,通过麦克风或其他音频设备的输入可以为设备2400的一个或多个应用或功能提供输入或命令。另外,替代显示输出或者在除了显示输出之外,可以提供音频输出。在另一示例中,如果显示器2422包括触摸屏,则显示器2422还充当输入设备,其至少可以部分地由控制集线器2432管理。在计算设备2400上还可以存在附加的按钮或开关,以提供通过控制集线器2432管理的I/O功能。在一个实施例中,控制集线器2432管理诸如加速计、相机、光传感器或其他环境传感器之类的设备,或者可以包括在设备2400中的其他硬件。输入可以是直接用户交互的一部分,并为系统提供环境输入以影响其操作(诸如过滤噪声、调整显示器以进行亮度检测、为相机应用闪光灯或其他特征)。
在一些实施例中,控制集线器2432可以使用任何适当的通信协议耦合到各种设备,例如,PCIe(外围组件互连快速)、USB(通用串行总线)、雷电接口(Thunderbolt)、高清多媒体接口(HDMI)、火线(Firewire)等。
在一些实施例中,显示器2422表示硬件(例如,显示设备)和软件(例如,驱动器)组件,其为用户提供视觉和/或触觉显示以与设备2400进行交互。显示器2422可以包括显示接口、显示屏、和/或用于向用户提供显示的硬件设备。在一些实施例中,显示器2422可以包括提供到用户的输出和输入两者的触摸屏(或触摸板)设备。在一个示例中,显示器2422可以直接与处理器2404通信。显示器2422可以是(如在移动电子设备或膝上型计算机设备中的)内部显示设备或经由显示接口(例如显示端口(DisplayPort)等)附接的外部显示设备中的一者或多者。在一个实施例中,显示器2422可以是头戴式显示器(HMD),诸如用于虚拟现实(VR)应用或增强现实(AR)应用的立体显示设备。
在一些实施例中,尽管图中未示出,但是除了(或代替)处理器2404,设备2400还可以包括包含一个或多个图形处理核的图形处理单元(GPU),其可以控制在显示器2422上显示内容的一个或多个方面。
控制集线器2432(或平台控制器集线器)可以包括硬件接口和连接器,以及软件组件(例如,驱动器、协议栈),以进行例如到外围设备2424的外围连接。
将理解,设备2400既可以是到其他计算设备的外围设备,也可以具有连接到它的外围设备。设备2400可以具有“对接(docking)”连接器以连接到其他计算设备,用于诸如管理(例如,下载和/或上载、更改、同步)设备2400上的内容。另外,对接连接器可以允许设备2400连接到允许计算设备2400控制内容输出(例如,到视听或其他系统)的某些外围设备。
除了专用对接连接器或其他专用连接硬件外,设备2400还可以经由通用或基于标准的连接器进行外围连接。通用类型可以包括通用串行总线(USB)连接器(可以包括许多不同硬件接口中的任何一个)、显示端口(包括迷你显示端口(MiniDisplayPort,MDP)、高清多媒体接口(HDMI)、火线或其他类型。
在一些实施例中,例如除了直接耦合到处理器2404之外或者代替直接耦合到处理器2404,连接电路2431可以耦合到控制集线器2432。在一些实施例中,例如除了直接耦合到处理器2404之外或者代替直接耦合到处理器2404,显示器2422可以耦合到控制集线器2432。
在一些实施例中,设备2400包括经由存储器接口2434耦合到处理器2404的存储器2430。存储器2430包括用于在设备2400中存储信息的存储器设备。
在一些实施例中,存储器2430包括用于维持稳定时钟的装置,如参考各种实施例所述。存储器可以包括非易失性(如果存储器设备的电源中断,则状态不会改变)和/或易失性(如果存储器设备的电源中断,则状态是不确定的)存储器设备。存储器设备2430可以是动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备、相变存储器设备、或具有适当性能以用作处理存储器的其他存储器设备。在一个实施例中,存储器2430可以用作设备2400的系统存储器,以存储数据和指令以用于在一个或多个处理器2404执行应用程序或处理时使用。存储器2430可以存储应用程序数据、用户数据、音乐、照片、文档或其他数据,以及与设备2400执行应用程序和功能相关的系统数据(无论是长期的还是临时的)。
各种实施例和示例的元件还被提供为机器可读介质(例如,存储器2430),用于存储计算机可执行指令(例如,用于实现本文讨论的任何其他处理的指令)。机器可读介质(例如,存储器2430)可以包括但不限于闪存、光盘、CD-ROM、DVD ROM、RAM、EPROM、EEPROM、磁卡或光卡、相变存储器(PCM)、或适合存储电子或计算机可执行指令的其他类型的机器可读介质。例如,本公开的实施例可以作为计算机程序(例如,BIOS)而被下载,该计算机程序可以经由通信链路(例如,调制解调器或网络连接)以数据信号的方式从远程计算机(例如,服务器)传送到请求计算机(例如,客户端)。
在一些实施例中,设备2400包括温度测量电路2440,例如,用于测量设备2400的各种组件的温度。在一个示例中,温度测量电路2440可以被嵌入、耦合或附接到要测量和监测其温度的各种组件。例如,温度测量电路2440可以测量核2408a、2408b、2408c、稳压器2414、存储器2430、SOC 2401的主板、和/或设备2400的任何适当组件中的一者或多者的温度(或内部温度)。
在一些实施例中,设备2400包括功率测量电路2442,例如,用于测量由设备2400的一个或多个组件消耗的功率。在一个示例中,除了测量功率之外或者代替测量功率,功率测量电路2442还可以测量电压和/或电流。在一个实例中,功率测量电路2442可以被嵌入、耦合或附接到要测量和监测其功率、电压和/或电流的各种组件。例如,功率测量电路2442可以测量由一个或多个稳压器2414供应的功率、电流和/或电压、供应给SOC 2401的功率、供应给设备2400的功率、由设备2400的处理器2404(或任何其他组件)消耗的功率等。
在一些实施例中,设备2400包括一个或多个稳压器电路,通常称为稳压器(VR)2414。VR 2414以适当的电压电平生成信号,这些信号可以被供应以操作设备2400的任何适当组件。仅作为示例,VR 2414被示为向设备2400的处理器2404供应信号。在一些实施例中,VR 2414接收一个或多个电压识别(VID)信号,并基于VID信号生成适当电平的电压信号。各种类型的VR可以用于VR 2414。例如,VR 2414可以包括“降压”VR、“升压”VR、降压和升压VR的组合、低压差(LDO)调节器、开关DC-DC调节器等。降压VR通常用于需要将输入电压以比单位更小的比率转换为输出电压的功率输送应用中。升压VR通常用于需要将输入电压以比单位更大的比率转换为输出电压的功率输送应用中。在一些实施例中,每个处理器核都具有其自己的VR,其由PCU 2410a/b和/或PMIC 2412控制。在一些实施例中,每个核都具有分布式LDO的网络,以提供对功率管理的有效控制。LDO可以是数字的、模拟的、或数字或模拟LDO的组合。
在一些实施例中,设备2400包括一个或多个时钟发生器电路,通常称为时钟发生器2416。时钟发生器2416以适当的频率水平生成时钟信号,其可被供应给设备2400的任何适当组件。仅作为示例,时钟发生器2416被示为向设备2400的处理器2404供应时钟信号。在一些实施例中,时钟发生器2416接收一个或多个频率识别(FID)信号,并基于FID信号以适当的频率生成时钟信号。
在一些实施例中,设备2400包括向设备2400的各种组件供电的电池2418。仅作为示例,电池2418被示为向处理器2404供电。尽管图中未示出,但是设备2400可以包括充电电路,例如,基于从AC适配器接收的交流电(AC)电源对电池再充电。
在一些实施例中,设备2400包括功率控制单元(PCU)2410(也称为功率管理单元(PMU)、功率控制器等)。在一个实例中,PCU 2410的一些部分可以由一个或多个处理核2408实现,并且PCU 2410的这些部分使用虚线框象征性地示出并被标记为PCU 2410a。在一个示例中,PCU 2410的一些其他部分可以在处理核2408之外实现,并且PCU 2410的这些部分使用虚线框象征性地示出并被标记为PCU 2410b。PCU 2410可以实现设备2400的各种功率管理操作。PCU 2410可以包括硬件接口、硬件电路、连接器、寄存器等、以及软件组件(例如,驱动器、协议栈),以实现设备2400的各种功率管理操作。
在一些实施例中,设备2400包括功率管理集成电路(PMIC)2412,例如,以实现设备2400的各种功率管理操作。在一些实施例中,PMIC 2412是可重构功率管理IC(RPMIC)和/或IMVP(
Figure BDA0002799430730000201
移动电压定位)。在一个示例中,PMIC位于独立于处理器2404的IC芯片内。可以实现设备2400的各种功率管理操作。PMIC 2412可以包括硬件接口、硬件电路、连接器、寄存器等、以及软件组件(例如,驱动器、协议栈),以实现设备2400的各种功率管理操作。
在一个实例中,设备2400包括PCU 2410或PMIC 2412中的一者或两者。在一个实例中,PCU 2410或PMIC 2412中的任一者在设备2400中可能不存在,并且因此,使用虚线示出这些组件。
设备2400的各种功率管理操作可以由PCU 2410、PMIC 2412、或PCU 2410和PMIC2412的组合来执行。例如,PCU 2410和/或PMIC 2412可以为设备2400的各种组件选择功率状态(例如,P状态)。例如,PCU 2410和/或PMIC 2412可以为设备2400的各种组件选择功率状态(例如,根据ACPI(高级配置和电源接口)规范)。仅作为示例,PCU 2410和/或PMIC 2412可以使设备2400的各种组件转换到睡眠状态、活动状态、适当的C状态(例如,C0状态或另一适当C状态,根据ACPI规范)等。在一个示例中,PCU 2410和/或PMIC 2412可以控制由VR2414输出的电压和/或由时钟发生器输出的时钟信号的频率,例如,通过分别输出VID信号和/或FID信号。在一个示例中,PCU 2410和/或PMIC 2412可以控制电池功率使用、电池2418的电荷、以及与节电操作相关的特征。
时钟发生器2416可以包括锁相环(PLL)、锁频环(FLL)或任何合适的时钟源。在一些实施例中,处理器2404的每个核都具有其自己的时钟源。因此,每个核都可以在独立于其他核的操作频率的频率下操作。在一些实施例中,PCU 2410和/或PMIC 2412执行自适应或动态频率缩放或调整。例如,如果处理器核没有在其最大功耗阈值或限制下操作,则可以增加处理器核的时钟频率。在一些实施例中,PCU 2410和/或PMIC 2412确定处理器的每个核的操作条件,并且当PCU 2410和/或PMIC 2412确定核在低于目标性能水平而操作时,适时地调整该核的频率和/或电源电压而不使核时钟源(例如,该核的PLL)失锁。例如,如果核从电源轨吸取的电流小于分配给该核或处理器2404的总电流,则PCU 2410和/或PMIC 2412可以暂时性地增加该核或处理器2404的功率吸取(例如,通过增加时钟频率和/或电源电压电平),使得核或处理器2404能够在更高的性能水平执行。这样,可以在不损害产品可靠性的情况下暂时性地增加处理器2404的电压和/或频率。
在一个示例中,PCU 2410和/或PMIC 2412可以执行功率管理操作,例如,至少部分地基于接收来自功率测量电路2442、温度测量电路2440的测量、电池2418的电荷水平、和/或可以用于功率管理的任何其他适当信息。为此,PMIC 2412可通信地耦合到一个或多个传感器以感测/检测对系统/平台的功率/热行为有影响的一个或多个因素中的各种值/变化。该一个或多个因素的示例包括电流、电压降、温度、操作频率、操作电压、功耗、核间通信活动等。这些传感器中的一个或多个可以与计算系统的一个或多个组件或逻辑/IP块物理接近(和/或热接触/耦合)。另外,在至少一个实施例中,(一个或多个)传感器可以直接耦合到PCU 2410和/或PMIC 2412,以允许PCU 2410和/或PMIC 2412至少部分地基于由一个或多个传感器检测的(一个或多个)值来管理处理器核能量。
还示出了设备2400的示例软件堆栈(但并未示出软件堆栈的所有元素)。仅作为示例,处理器2404可以执行应用程序2450、操作系统2452、一个或多个功率管理(PM)特定应用程序(例如,通常称为PM应用2458)等。PM应用2458还可以由PCU 2410和/或PMIC 2412执行。OS 2452还可以包括一个或多个PM应用2456a、2456b、2456c。OS 2452还可以包括各种驱动程序2454a、2454b、2454c等,其中一些驱动程序可专门用于功率管理目的。在一些实施例中,设备2400还可以包括基本输入/输出系统(BIOS)2420。BIOS 2420可以与OS 2452通信(例如,经由一个或多个驱动器2454)、与处理器2404通信等。
例如,PM应用2458、2456、驱动器2454、BIOS 2420等中的一个或多个可以用于实现功率管理特定任务,例如,控制设备2400的各种组件的电压和/或频率,控制设备2400的各种组件的唤醒状态、睡眠状态和/或任何其他适当的功率状态,控制电池2418的电池功率使用、电荷,与节电操作相关的特征等。
说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用意味着结合这些实施例描述的特定特征、结构或特性至少包括在一些实施例中,但不一定包括在所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定都指相同的实施例。如果说明书陈述“可以”、“可能”或“可”包括组件、特征、结构或特性,则不需要包括该特定组件、特征、结构或特性。如果说明书或权利要求提及“一”或“一个”元件,这并不意味着只有一个元件。如果说明书或权利要求提及“附加”元件,则不排除存在一个以上的附加元件。
此外,特定特征、结构、功能或特性可以在一个或多个实施例中以任何合适的方式组合。例如,可以在与第一实施例和第二实施例相关联的特定特征、结构、功能或特性不相互排斥的任何情况下组合第一实施例与第二实施例。
虽然已经结合其具体实施例描述了本公开,但是根据前述描述,对于本领域的普通技术人员来说,这些实施例的许多替代方案、修改和变化将是显而易见的。本公开的实施例旨在包含落入所附权利要求的广泛范围内的所有此类替代、修改和变化。
此外,为了简化说明和讨论并且为了不模糊本公开,在所示附图中可能示出也可能未示出到集成电路(IC)芯片和其他组件的众所周知的电源/接地连接。此外,可以以框图形式示出布置以避免模糊本公开,并且还考虑到关于此类框图布置的实施方式的细节高度依赖于将在其中实施本公开的平台(即,这些细节应该在本领域技术人员的视界范围内)。在为了描述本公开的示例性实施例而阐述具体细节(例如,电路)的情况下,对于本领域技术人员来说显而易见的是,本公开可以在没有这些特定细节或改变这些特定细节的情况下实践。因此,说明书被认为是说明性的而不是限制性的。
本文中描述的各种实施例被示为示例。这些示例的特征可以以任何合适的方式相互组合。这些示例包括:
示例1:一种装置,包括:功率管理单元,用于将高水位线(HWM)与脏缓存线的当前数量进行比较;以及机器学习逻辑,用于根据遥测信息和/或脏缓存线的当前数量来生成HWM,其中,功率管理单元用于如果脏缓存线的当前数量大于HWM则使装置进入第一功率状态,并且其中,功率管理单元用于如果脏缓存线的当前数量小于HWM则使装置进入第二功率状态。
示例2:示例1所述的装置,其中,机器学习逻辑读取时间戳计数器以训练机器学习模型。
示例3:示例1所述的装置,其中,机器学习逻辑读取处于状态的时间寄存器以训练机器学习模型,其中,处于状态的时间寄存器指示装置处于功率状态多长时间。
示例4:示例1所述的装置,其中,机器学习逻辑经由经训练的权重和遥测信息来推断HWM。
示例5:示例1所述的装置,其中,第一功率状态与第二功率状态相比深度更小。
示例6:示例1所述的装置,其中,第一功率状态是S0i3状态,并且其中,第二功率状态是S0i4状态。
示例7:示例1所述的装置,其中,机器学习逻辑包括乘法器。
示例8:示例1所述的装置,其中,遥测信息包括下列项中的一项或多项:功率状态进入和/或退出时的前台应用程序;指示空闲、忙碌和/或外出时间的用户日历信息;电池信息;一天中的时间;和/或一周中的星期几。
示例9:示例1所述的装置,其中,机器学习逻辑由软件驱动器控制或由软件驱动器实现。
示例10:示例9所述的装置,其中,软件驱动器通信地耦合到操作系统。
示例11:示例1所述的装置,其中,HWM是脏缓存线数量的阈值,该阈值允许功率管理单元决定进入第一功率状态还是第二功率状态。
示例12:一种机器可读存储介质,其上存储有机器可读指令,所述机器可读指令当被执行时使一个或多个处理器执行包括下列项的方法:读取遥测信息;以及应用机器学习以根据遥测信息和/或脏缓存线的当前数量来生成高水位线(HWM),其中,HWM是脏缓存线数量的阈值,该阈值允许功率管理单元决定进入第一功率状态还是第二功率状态。
示例13:示例12所述的机器可读存储介质,其中,遥测信息包括下列项中的一项或多项:功率状态进入和/或退出时的前台应用程序;指示空闲、忙碌和/或外出时间的用户日历信息;电池信息;一天中的时间;和/或一周中的星期几。
示例14:示例12所述的机器可读存储介质,其中,如果脏缓存线的当前数量大于HWM,则计算系统进入第一功率状态,或者如果脏缓存线的当前数量小于HWM,则计算系统进入第二功率状态。
示例15:示例12所述的机器可读存储介质,其中,应用机器学习包括读取时间戳计数器以训练机器学习模型。
示例16:示例12所述的机器可读存储介质,其中,应用机器学习包括读取处于状态的时间寄存器以训练机器学习模型,其中,处于状态的时间寄存器指示计算系统处于功率状态多长时间。
示例17:示例12所述的机器可读存储介质,其中,应用机器学习包括经由经训练的权重和遥测信息来推断HWM。
示例18:示例12所述的机器可读存储介质,其中,第一功率状态与第二功率状态相比深度更小。
示例19:示例12所述的机器可读存储介质,其中,第一功率状态是S0i3状态,并且其中,第二功率状态是S0i4状态。
示例20:一种系统,包括:存储器;处理器,耦合到存储器,其中,所述处理器包括用于将高水位线(HWM)与脏缓存线的当前数量进行比较的功率管理单元;驱动器,具有用于根据遥测信息和/或脏缓存线的当前数量来生成HWM的机器学习逻辑,其中,功率管理单元用于如果与存储器相关联的脏缓存线的当前数量大于HWM则使处理器进入第一功率状态,并且其中,功率管理单元用于如果与存储器相关联的脏缓存线的当前数量小于HWM则使处理器进入第二功率状态;以及无线接口,用于允许处理器与另一设备通信。
示例21:示例20所述的系统,其中,遥测信息包括下列项中的一项或多项:功率状态进入和/或退出时的前台应用程序;指示空闲、忙碌和/或外出时间的用户日历信息;电池信息;一天中的时间;和/或一周中的星期几。
示例22:示例20所述的系统,包括耦合到驱动器的操作系统。
提供了摘要,将使读者能够确定技术公开的性质和要点。该摘要是在理解它将不被用于限制权利要求的范围或含义的情况下提交的。权利要求在此并入具体实施方式中,并且每项权利要求单独作为一个实施例。

Claims (21)

1.一种用于预测空闲时间的装置,所述装置包括:
功率管理单元,用于将高水位线(HWM)与脏缓存线的当前数量进行比较;以及
机器学习逻辑,用于根据遥测信息和/或所述脏缓存线的当前数量来生成所述HWM,其中,所述功率管理单元用于如果所述脏缓存线的当前数量大于所述HWM则使所述装置进入第一功率状态,并且其中,所述功率管理单元用于如果所述脏缓存线的当前数量小于所述HWM则使所述装置进入第二功率状态。
2.根据权利要求1所述的装置,其中,所述机器学习逻辑读取时间戳计数器以训练机器学习模型。
3.根据权利要求1所述的装置,其中,所述机器学习逻辑读取处于状态的时间寄存器以训练机器学习模型,其中,所述处于状态的时间寄存器指示所述装置处于功率状态多长时间。
4.根据权利要求1所述的装置,其中,所述机器学习逻辑经由经训练的权重和所述遥测信息来推断HWM。
5.根据权利要求1所述的装置,其中,所述第一功率状态与所述第二功率状态相比深度更小。
6.根据权利要求1所述的装置,其中,所述第一功率状态是S0i3状态,并且其中,所述第二功率状态是S0i4状态。
7.根据权利要求1所述的装置,其中,所述机器学习逻辑包括乘法器。
8.根据权利要求1所述的装置,其中,所述遥测信息包括下列项中的一项或多项:
功率状态进入和/或退出时的前台应用程序;
指示空闲、忙碌和/或外出时间的用户日历信息;
电池信息;
一天中的时间;和/或
一周中的星期几。
9.根据权利要求1至8中任一项所述的装置,其中,所述机器学习逻辑由软件驱动器控制或由软件驱动器实现。
10.根据权利要求9所述的装置,其中,所述软件驱动器通信地耦合到操作系统。
11.根据权利要求1至8中任一项所述的装置,其中,所述HWM是脏缓存线数量的阈值,该阈值允许所述功率管理单元决定进入所述第一功率状态还是所述第二功率状态。
12.一种用于预测空闲时间的方法,所述方法包括:
读取遥测信息;以及
应用机器学习以根据所述遥测信息和/或脏缓存线的当前数量来生成高水位线(HWM),其中,所述HWM是脏缓存线数量的阈值,该阈值允许功率管理单元决定进入第一功率状态还是第二功率状态。
13.根据权利要求12所述的方法,其中,所述遥测信息包括下列项中的一项或多项:
功率状态进入和/或退出时的前台应用程序;
指示空闲、忙碌和/或外出时间的用户日历信息;
电池信息;
一天中的时间;和/或
一周中的星期几。
14.根据权利要求12所述的方法,其中,如果所述脏缓存线的当前数量大于所述HWM,则计算系统进入第一功率状态,或者如果所述脏缓存线的当前数量小于所述HWM,则所述计算系统进入第二功率状态。
15.根据权利要求12所述的方法,其中,应用机器学习包括读取时间戳计数器以训练机器学习模型。
16.根据权利要求12所述的方法,其中,应用机器学习包括读取处于状态的时间寄存器以训练机器学习模型,其中,所述处于状态的时间寄存器指示计算系统处于功率状态多长时间。
17.根据权利要求12所述的方法,其中,应用机器学习包括经由经训练的权重和所述遥测信息来推断所述HWM。
18.根据权利要求12所述的方法,其中,所述第一功率状态与所述第二功率状态相比深度更小。
19.根据权利要求12至18中任一项所述的方法,其中,所述第一功率状态是S0i3状态,并且其中,所述第二功率状态是S0i4状态。
20.一种机器可读存储介质,其上存储有机器可读指令,所述机器可读指令当被执行时使一个或多个处理器执行根据权利要求12-19中任一项所述的方法。
21.一种系统,包括:
存储器;
处理器,耦合到所述存储器,其中,所述处理器包括根据权利要求1-11中任一项所述的装置;以及
无线接口,用于允许所述处理器与另一设备通信。
CN202011344198.7A 2020-05-08 2020-11-25 智能预测处理器空闲时间的装置及方法 Pending CN113625859A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/870,514 2020-05-08
US16/870,514 US11500444B2 (en) 2020-05-08 2020-05-08 Intelligent prediction of processor idle time apparatus and method

Publications (1)

Publication Number Publication Date
CN113625859A true CN113625859A (zh) 2021-11-09

Family

ID=78231991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011344198.7A Pending CN113625859A (zh) 2020-05-08 2020-11-25 智能预测处理器空闲时间的装置及方法

Country Status (4)

Country Link
US (1) US11500444B2 (zh)
JP (1) JP2021177367A (zh)
CN (1) CN113625859A (zh)
DE (1) DE102020131586A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11500444B2 (en) * 2020-05-08 2022-11-15 Intel Corporation Intelligent prediction of processor idle time apparatus and method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587532B2 (en) * 2005-01-31 2009-09-08 Texas Instruments Incorporated Full/selector output from one of plural flag generation count outputs
US9389952B2 (en) * 2008-06-18 2016-07-12 Super Talent Technology, Corp. Green NAND SSD application and driver
US20140095801A1 (en) * 2012-09-28 2014-04-03 Devadatta V. Bodas System and method for retaining coherent cache contents during deep power-down operations
US9176570B2 (en) * 2012-12-29 2015-11-03 Intel Corporation System and method for providing universal serial bus link power management policies in a processor environment
WO2015100430A1 (en) * 2013-12-24 2015-07-02 Digimarc Corporation Methods and system for cue detection from audio input, low-power data processing and related arrangements
US9785223B2 (en) * 2014-12-25 2017-10-10 Intel Corporation Power management in an uncore fabric
US10955901B2 (en) * 2017-09-29 2021-03-23 Advanced Micro Devices, Inc. Saving power in the command processor using queue based watermarks
US11500444B2 (en) * 2020-05-08 2022-11-15 Intel Corporation Intelligent prediction of processor idle time apparatus and method

Also Published As

Publication number Publication date
JP2021177367A (ja) 2021-11-11
US20210349519A1 (en) 2021-11-11
DE102020131586A1 (de) 2021-11-11
US11500444B2 (en) 2022-11-15

Similar Documents

Publication Publication Date Title
US11762450B2 (en) USB Type-C subsystem power management
US11520498B2 (en) Memory management to improve power performance
US11703927B2 (en) Leakage degradation control and measurement
US11353914B2 (en) Workload based adaptive voltage and frequency control apparatus and method
US20220057854A1 (en) Techniques for sleep management in computer system
EP3945426A1 (en) Low latency fine grain system-on-chip throttling apparatus and method on usb type-c port
CN114090227A (zh) 高能效核心电压选择装置和方法
US20220011842A1 (en) Apparatus and method for achieving deterministic power saving state
CN115079809A (zh) 降低待机功率的装置和方法
EP3923120A1 (en) Fast dynamic capacitance, frequency, and/or voltage throttling apparatus and method
KR20220040376A (ko) 프로세서 피크 전류 제어 장치 및 방법
US11500444B2 (en) Intelligent prediction of processor idle time apparatus and method
TW202226016A (zh) 安全的裝置電力啟動設備及方法
US20210349134A1 (en) Method and apparatus for accurate measurement of platform power
US11237610B2 (en) Handling loss of power for uninterruptible power supply efficiency
CN113841200A (zh) 基于抑制的存储器刷新改进电池寿命
US20220187893A1 (en) Dynamic energy performance preference based on workloads using an adaptive algorithm
US11705750B2 (en) Power negotiation sequence to improve user experience and battery life
US20230096154A1 (en) Apparatus and method for isolating and discharging a battery
US12079051B2 (en) Battery heat balancing apparatus and method during peak mode
CN115865057A (zh) 识别和校正时钟占空比的技术

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