CN117716320A - 用于功率状态管理的功率定序器 - Google Patents

用于功率状态管理的功率定序器 Download PDF

Info

Publication number
CN117716320A
CN117716320A CN202180100577.8A CN202180100577A CN117716320A CN 117716320 A CN117716320 A CN 117716320A CN 202180100577 A CN202180100577 A CN 202180100577A CN 117716320 A CN117716320 A CN 117716320A
Authority
CN
China
Prior art keywords
power
power state
instructions
trigger
computing device
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
CN202180100577.8A
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN117716320A publication Critical patent/CN117716320A/zh
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • G06F1/189Power distribution
    • 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
    • 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/3243Power saving in microcontroller unit
    • 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/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
    • 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)
  • Power Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)
  • Control Of Electrical Variables (AREA)
  • Control Of Electric Motors In General (AREA)
  • Stand-By Power Supply Arrangements (AREA)

Abstract

用于处理环境计算系统中的应用的方法、系统和装置。装置中的一个装置包括布置在多个功率块中的多个设备,其中,多个设备中的每个设备属于多个功率块中的一个功率块;以及多个本地功率管理器,每个本地功率管理器可编程为执行用于相应功率块的相应的指令序列集合,以便实现针对相应功率块中的一或多个设备的功率状态转换。

Description

用于功率状态管理的功率定序器
技术领域
本说明书涉及具有集成电路设备的系统。
背景技术
片上系统(SoC)是集成移动计算设备的不同组件的集成电路,包括中央处理单元(CPU)、存储器、输入/输出端口、蜂窝无线电和辅助存储等。与传统的基于母板的PC架构相比,其中母板容纳并连接可拆卸或可更换的部件,SoC将所有这些部件集成到单个集成电路中。SoC通常用于移动计算、边缘计算和嵌入式系统,诸如智能电话、平板计算机、WiFi路由器、物联网(IoT)设备等。
SoC能够包括需要功率管理的多个设备。功率管理为每个设备管理功率状态转换以优化功率消耗和利用,诸如实现更长的电池寿命和降低功率浪费。例如,当CPU处于空闲状态时,系统能够将CPU的功率状态改变为低功率状态(例如,切换到更低的电压)以便降低功耗。功率管理能够包括接通/关断电源、控制电压或频率、在不活动时切换到低功率状态等。
SoC的功率管理通常通过使用状态机或微控制器来执行。状态机是实现硬件中的功率状态转换的基于硬件的解决方案。尽管基于状态机的解决方案提供了快速的状态转换并且占用更小的硅面积,但是基于状态机的解决方案限制了在制造芯片之后进行改变和调试问题的能力。基于微控制器的解决方案使用通用微控制器并且在软件中实现功率状态转换。尽管基于微控制器的解决方案为修改和调试提供了更好的灵活性,但是基于微控制器的解决方案导致更长的功率状态转换。另外,因为基于微控制器的解决方案使用具有大指令存储器和大数据存储器以及调试/跟踪基础设施的通用微控制器,所以这通常了在限制一个SoC中的微控制器的实例的数量,并且SoC通常仅具有管理在SoC中的所有设备的功率状态的一个微控制器。
发明内容
本说明书描述了用于实现用于功率状态管理的本地功率管理器的技术。每个本地功率管理器被配置成执行针对功率管理定义的定制指令,该定制指令实现从一个功率状态转换到下一个功率状态所需的硬件转换序列。相对于由通用微控制器执行的指令,定制指令的大小较小并且针对功率管理任务被特别定义。本地功率管理器能够响应于接收到的触发事件,并且能够响应于触发事件而运行定制指令以进行功率状态转换。
本说明书中描述的主题能够在特定实施例中实施以便实现以下优点中的一个或多个。通过使用针对功率管理专用的专门设计的指令序列,本地功率管理器提供更快的状态转换,同时还为修改和调试提供灵活性。也就是说,本地功率管理器能够实现基于硬件的解决方案的性能/响应时延以及微控制器的灵活性和可编程性。与包括大量功能的通用计算设备(例如,微控制器)相反,本地功率管理器能够维持小指令集并且不需要包括数学运算。与基于微控制器的解决方案不同,本地电源管理器能够直接访问硬件级信号以进行调试。一个SoC能够集成独立地控制芯片上的多个设备或子系统的功率状态的多个本地功率管理器。与具有一个针对SoC中的每个设备的本地功率管理器不同,SoC能够包括管理逻辑上属于同一子系统的多个设备的功率状态转换的本地功率管理器,并且因此能够共享共同资源以及减少功率消耗和硅内面积消耗。因此,本地功率管理器能够实现基于状态机的解决方案的性能以及基于微控制器的解决方案的灵活性,同时具有与基于状态机的解决方案类似的面积消耗。
在附图和以下描述中阐述了本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1是示例计算设备的图。
图2是示例本地功率管理器的图。
图3是示例功率状态转换图的图。
图4是示例功率定序器的图。
图5是使用功率定序器进行功率管理的示例过程的流程图。
各个附图中相同的附图标记和标号指示相同的组件。
具体实施方式
图1是示例计算设备100的图。计算设备100能够是安装在移动设备(例如,智能电话或平板)上的片上系统(SoC)设备。SoC是集成电路,其包括在单个硅衬底上或在多个互连管芯上(例如,使用硅中介层、堆叠管芯或互连桥)的系统的每个部件。
计算设备100包括在不同状态下具有不同功率要求的多个设备。例如,当用户在移动设备上启动相机应用时,SoC能够在被集成到SoC中的图像处理器上通电。当相机app关闭时,SoC能够将图像处理器断电。
多个设备的示例包括一个或多个中央处理单元(CPU)、一个或多个张量处理单元(TPU)、一个或多个传感器、一个或多个显示器等。计算设备100能够包括大量这样的设备,例如,10个、50个或100个设备。为了说明,图1中的计算设备100被简化,并且包括三个设备:设备A1(113)、设备A2(115)和设备B1(123)。
在任何给定时间,每个设备处于特定功率状态。功率状态指示设备的功耗水平(例如,计算活动的程度)。功率状态的示例能够包括活动的(Active)、运行快速(Run Fast)、运行缓慢(Run Slow)、休眠(Hibernate)等。设备的功率状态根据需要改变以节省功耗。计算设备100进行功率管理以管理每个设备的功率状态转换并且优化移动设备的功耗。
计算设备100中的多个设备被布置在多个功率块中。功率块包括一组设备并且该组设备的功率管理能够是相关的,例如,该组设备能够一起通电或断电。同一功率块中的多个设备能够是逻辑上相互依赖并且能够属于同一子系统的一部分。例如,计算设备100包括两个功率块:功率块A(110)和功率块B(120)。设备A1(113)和设备A2(115)属于功率块A(110),并且设备B1(123)属于功率块B(120)。
计算设备100包括独立地操作的多个本地功率管理器(LPM)。每个本地功率管理器能够被编程为执行用于相应功率块的相应的指令序列集合。每个本地功率管理器能够管理针对相应功率块中的一个或多个设备的功率状态转换。每个本地功率管理器能够控制相应功率块中的每个设备以从一个功率状态转换到另一功率状态。
例如,计算设备包括用于功率块A(110)的本地功率管理器112和用于功率块B(120)的本地功率管理器122。本地功率管理器112能够管理设备A1和设备A2的功率状态转换。本地功率管理器122能够管理设备B1的功率状态转换。
计算设备100不是具有控制计算设备100中的所有设备的单个微控制器,而是包括多个LPM,每个LPM独立地控制一个或多个设备。与基于微控制器的解决方案相比,基于功率定序器的解决方案能够通过使用多个本地功率管理器以独立地控制芯片中的多个设备的功率状态转换来减少时延和延迟。
每个本地功率管理器能够基于多个功率状态表来执行功率状态转换。每个功率状态表存储相应设备的可能功率状态转换。每个功率状态转换将功率状态从初始状态改变为下一个状态。例如,本地功率管理器112能够存储功率状态表A1(114)和功率状态表A2(116)。功率状态表A1存储设备A1的多个功率状态转换。功率状态表A2存储设备A2的多个功率状态转换。本地功率管理器112能够执行由功率状态表A1(114)生成的转换序列以进行设备A1(113)的功率状态转换。本地功率管理器112能够执行由功率状态表A2(114)生成的转换序列以进行设备A2(113)的功率状态转换。
由同一LPM控制的多个不同的功率状态表能够彼此交互并且能够具有依赖性。例如,能够在由同一LPM 112控制的设备A1和设备A2的功率状态和/或功率状态转换之间进行同步。作为另一示例,设备A1的功率状态转换能够取决于设备A2的特定功率状态转换。
与基于状态机的解决方案相比,能够在制造计算设备100之后(即,流片后(post-silicon))修改本地功率管理器。例如,假设设备A2(115)的功率管理取决于设备A1(113)的当前功率状态。在芯片已经被制造并且已经运行一段时间之后,如果不再使用设备A1(113),则能够重新编程本地功率管理器112,使得设备A2(115)的功率管理逻辑不再依赖于设备A1的功率状态。与在基于状态机的功率管理解决方案的情况下必须重新制造整个芯片不同,基于功率定序器的解决方案能够提供用于流片后修改的灵活性。
作为另一示例,当在制造时间期间或之后在功率管理指令中发现错误时,能够重新编程本地功率管理器以从指令中移除错误,而不是重新制造芯片。作为另一示例,当工程师在制造芯片之后开发功率管理的改进时,工程师能够重新编程本地功率管理器而不需要重新制造芯片。能够在制造芯片之后添加由于产品规格或其它优化的改变而导致的新功率状态。例如,在制造芯片之后,能够通过实验室中的优化实验来识别新的功率状态,并且能够通过重新编程本地功率管理器来添加这些新的功率状态。
图2是示例本地功率管理器(LPM)200的图。本地功率管理器200是用于控制计算设备100中的一个或多个设备(例如,SoC中的设备)的功率状态转换的可配置功率管理器。本地功率管理器200包括触发逻辑204、一个或多个功率状态表208以及一个或多个功率定序器212。触发逻辑204被配置成接收事件信号202作为输入和输出触发信号206。一个或多个功率状态表208被配置成存储触发信号206与功率状态转换之间的映射。一个或多个功率定序器212被配置成当由触发信号206触发功率状态转换时执行相应的指令序列。
本地功率管理器200将事件信号202作为输入并且使用触发逻辑204来生成一个或多个触发信号206。事件信号能够包括能够被逻辑组合以触发功率状态转换的一个或多个输入信号。事件信号202能够包括针对多个事件的多个事件信号。事件信号202的事件能够包括触发功率状态转换的外部事件或软件事件。外部事件的示例包括来自通用输入/输出(GPIO)的输入、系统定时器、来自其他LPM的请求、中断、与功率转换相关的核心逻辑(例如,如果没有活动则降低功耗)、从计算设备100的一个或多个传感器获得的数据等。包括逻辑值的事件信号能够处于连通(ON)状态或断开(OFF)状态。在一些实施方式中,能够经由控制和状态寄存器(CSR)来启用或禁用每个事件信号。在一些实施方式中,当事件信号是通用的时,事件信号能够被假设为活动高(Active High),并且如果由LPM接收到的事件信号是活动低(Active Low),则能够经由CSR将事件信号转变为活动高。
触发逻辑204能够包括经互连以对多个事件信号202进行一系列逻辑运算并且生成一个或多个触发信号206的一系列运算符(例如,与(AND)运算符、或(OR)运算符等)。在一些实施方式中,运算符序列的最后运算符能够包括确定触发信号206的“AND或OR选择”运算符。例如,如果一个或多个事件请求更高的功率状态,则期望通过使用OR选择来生成针对更高的功率状态的触发信号。作为另一示例,如果没有事件请求更高的功率状态,则期望通过使用AND选择来生成用于更低的功率状态的触发信号。
触发逻辑204能够被配置成根据功率状态表208中定义的触发信号的数量来生成灵活数量的触发信号206。例如,用于N个事件的事件信号202能够用于生成M个触发信号206。
LPM 200包括定义由LPM 200控制的多个设备的功率状态转换的一个或多个功率状态表208。每个功率状态表208被配置成存储触发信号206与功率状态转换之间的映射。每个功率状态表208定义从当前状态214到由LPM管理的设备的下一个状态的可能功率状态和功率状态转换。当前功率状态214能够由功率定序器212从GPIO 216输入获得。
例如,如图1所示,功率状态表A1(114)定义设备A1(113)的功率状态和功率状态转换。功率状态表208将触发信号206和当前功率状态214作为输入并且生成序列地址210作为输出。序列地址210是能够由功率定序器212用于执行与接收到的触发信号206相对应的功率状态转换的指令序列的地址。
图3是示例功率状态转换图300的图。设备(例如,图1中的设备A1)具有四个功率状态,PS0(运行快速)、PS1(运行缓慢)、PS2(自动Clk门)和PS3(自动功率门)。功率状态PS0和PS1是以不同频率运行的活动状态。功率状态PS2和PS3是低功率状态。即,PS0是最高功率状态并且PS3是最低功率状态。存在八个不同的触发T0到T8,其能够使用外部事件通过触发逻辑204来激活。例如,触发T0能够响应于预定长度的空闲(IDLE)条件而生成,并且触发T0能够用于生成从活动功率状态(PS0)到低功率状态(PS2)的功率状态转换。在一些实施方式中,触发能够使设备改变到不同的功率状态或者保持在相同的功率状态。
表1示出了功率状态表208的示例。功率状态表208以表格形式描述功率状态转换图。例如,表1中的功率状态表描述了图3中描绘的功率状态转换图。功率状态表包括多个行并且每个行对应于当前功率状态。例如,表1中的功率状态表包括四种可能的当前功率状态:PS0、PS1、PS2和PS3。功率状态表还包括能够触发从当前功率状态到下一个功率状态的功率状态转换的多个触发。功率状态表能够针对每个功率状态定义预定数量的触发。例如,表1中的功率状态表允许针对每个功率状态的最大四个触发。如果设备当前处于状态PS0,则响应于T0的触发信号,设备的功率状态将从PS0转换到PS2,并且响应于T1的触发信号,设备的功率状态将从PS0转换到PS1。
表1.功率状态表的示例
当前状态 触发_A 触发_B 触发_C 触发_D
PS0 T0(PS2) T1(PS1)
PS1 T2(PS0) T5(PS2)
PS2 T3(PS0) T4(PS1) T8(PS3)
PS3 T6(PS1) T7(PS0)
返回参考图2,LPM 200能够包括一个或多个功率状态表以控制逻辑上是同一子系统的一部分的多个设备的功率状态。例如,图2中的LPM 200包括能够被配置成控制两个设备的功率状态的两个功率状态表。将多个设备的功率状态管理进行分组能够减少与LPM相关联的功耗和面积消耗。单个LPM能够更好地组合公共资源,诸如共享相同的指令存储器和共享相同的数据存储器,而不是具有多个LPM。
LPM 200包括一个或多个功率定序器212。一个或多个功率定序器212被配置成当由触发逻辑204触发功率状态转换时来执行相应的指令序列。每个功率定序器对应于定义相应设备的功率状态转换的相应功率状态表208。当在LPM中存在多个功率状态表208时,功率定序器212的数量与功率状态表208的数量相同。例如,LPM 200包括两个功率定序器212和两个功率状态表208,并且每个功率定序器对应于相应的功率状态表。
功率定序器212定义多个指令序列并且每个指令序列包括针对功率状态管理定义的定制指令。也就是说,每个指令序列是能够被执行以进行从一个功率状态到下一个功率状态的功率状态转换的计算机程序。指令序列中的指令能够包括若干类别,诸如切换输出、等待具有预定超时时段的输入值、分支指令等。在一些实施方式中,指令序列能够驱动和检查GPIO以进行多个动作,诸如握手、协议和控制。
GPIO 216输出包括在序列地址210处定义的用于功率状态转换的指令序列。每个功率定序器212通过其相应的GPIO 216控制相应设备。例如,图2中的LPM 200包括两个功率定序器212和两个GPIO 216,并且每个功率定序器能够具有其自己的GPIO。
在一些实施方式中,指令能够包括用于调试功率状态转换的功能,诸如单步调试、断点调试等。与其中低级信号不可用的基于状态机的解决方案相比,在基于功率定序器的解决方案中,功率状态转换过程中的信号能够被暴露并且能够由软件程序访问。与无法访问低级信号的基于微控制器的解决方案不同,本地功率管理器能够直接访问硬件级信号以进行调试。例如,能够获得信号的当前状态并且用于调试。在一些实施方式中,能够定义检查和使用这些信号的应用编程接口(API)。硬件设计者能够使用API以进行调试。在一些实施方式中,能够针对计算设备100中的多个LPM定义相同的API。硬件设计者能够使用相同的API以基于来自不同LPM的信号来进行调试。
在一些实施方式中,LPM能够被配置成执行条件指令并且LPM能够在不使用硬件的情况下进行算术运算。例如,LPM能够通过操纵GPIO输入和GPIO输出来控制数据的移动并且能够实现实时响应并减少时延。作为另一示例,LPM可能缺少进行数学运算(诸如加法运算)的硬件。以此方式,LPM中的指令集能够具有较小的大小,从而导致改进的性能。
LPM 200能够预配置有触发逻辑204、功率状态表208和在设计时定义的指令序列。在一些实施方式中,LPM 200的这些组件能够在CSR中实现。例如,触发逻辑204能够在CSR218中实现,功率状态表208能够在CSR 220中实现,并且功率定序器能够包括在CSR 224中实现的数据存储器和在CSR 222中实现的指令存储器。
随着功率状态的数量和功率状态表的数量增加,计算设备100的功率状态管理能够变得更加复杂。因此,需要根据需要来更新或修改触发逻辑、功率状态表和指令序列。如果在流片后(即,在制造计算设备100之后)需要更新,则能够根据需要修改触发逻辑204、功率状态表208和功率定序器212(例如,指令序列)中的一个或多个。触发逻辑、功率状态表和指令序列能够被独立地重新编程。
在一些实施方式中,能够使用工具链来预配置或修改LPM。工具链提供应用编程接口(API)以定义用于功率管理的变量和操作,例如触发逻辑、功率状态以及功率状态之间的转换等。工具链的API提供类似于使用自然语言元素的高级编程语言(例如,Python、Java、C#等)的软件接口。代替以低级编程语言(例如,涉及操纵寄存器的二进制值和位置的汇编器级编程)进行编程,硬件设计者能够方便地设计LPM并且使用在工具链中定义的API来生成对LPM的更新。例如,能够使用API来更新LPM以增加等待时间、改变操作序列的顺序、跳过步骤序列中的步骤等。工具链能够将软件程序转变为表示新指令序列的二进制值。二进制值能够被上传和配置到芯片中,使得LPM能够运行新的指令序列。
在一些实施方式中,对这些组件的更新能够通过使用LPM工具链的CSR编程来进行。能够通过更新LPM工具链输入并且运行工具链以生成CSR的新值来实现对CSR的流片后更新。能够通过在要写入CSR的软件中并入新值将CSR的新值写入CSR。
图4是示例功率定序器400的图。功率定序器400将序列地址418和GPIO输入402作为输入并且生成GPIO输出406。功率定序器400基于存储在指令存储器412中的指令424和存储在数据存储器410中的数据来生成GPIO输出406。在一些实施方式中,功率定序器400能够生成IDLE或间断408作为输出。所有输入和输出关于时钟404被注册和同步。
功率定序器400能够通过使用序列地址418访问数据存储器410来获得数据422。功率定序器400能够通过使用序列地址418访问指令存储器412来获得指令424。数据存储器410和指令存储器412这两者能够具有从地址到数据和指令的零循环时延,并且因此,功率定序器400能够实现快速的功率状态转换。功率定序器解码从索引指令存储器412获得的指令424,并且执行经解码的指令以进行功率状态转换。
例如,功率定序器400能够响应于如图3中所描绘的触发信号T1而获得用于从PS0(运行快速)到PS1(运行缓慢)的功率状态转换的指令集424。指令424的示例能够包括以下:
在一些实施方式中,当LPM包括多个功率定序器时,功率定序器能够共享公共资源,诸如数据存储器410和指令存储器412。这有助于减少LPM所需的面积消耗,即LPM需要更小的硅面积。例如,图4所示的两个功率定序器400能够共享相同的数据存储器410和相同的指令存储器412。这在两个或多个设备共享相同的功率状态但独立操作时可能是有用的。例如,两个CPU能够共享相同的功率状态并且两个CPU能够独立地操作。两个CPU能够各自具有其自己的功率定序器并且两个功率定序器能够共享相同的数据存储器和相同的指令存储器。
当未活跃地操作时,功率定序器400能够处于IDLE状态,等待启动脉冲416以启动执行指令424。当功率定序器400接收到启动脉冲416时,功率定序器400能够获取序列地址418并且启动执行指令424。在一些实施方式中,当功率定序器接收HALT指令时,功率定序器转到IDLE状态并且停止执行指令。
本地功率管理器能够定义预定数量的通用输入和通用输出,即,GPIO输入402和GPIO输出406。例如,LPM能够定义64个通用输入和64个通用输出。
在一些实施方式中,当LPM包括多个功率定序器时,功率定序器能够独立地执行其相应的指令。每个功率定序器能够具有其自己的专用GPIO输入402和GPIO输出406。例如,如果在单个LPM内存在多个功率定序器,则将存在多于64个通用输入和多于64个通用输出。
指令424能够包括具体设计用于功率状态管理的计算机程序。LPM能够定义预定数量的指令,例如总共二十个指令。指令424能够被具体设计成进行各种操作以控制设备的功率状态,诸如静默功率、开启功率、关闭功率、钳位功率、切换一个或多个输出(例如,切换GPIO)、等待一个或多个输入(例如,等待来自时钟控制器的确认)、以及基于输入采取动作。在一些实施方式中,指令424能够被设计成根据输入的值和在满足中止或错误条件的情况下超时的能力来采取分支动作。
在一些实施方式中,指令424的长度能够是可变的。一些指令能够基于主要操作码(例如,基于操作数的大小)来编码,而一些指令能够基于次要操作码(例如,基于指令的实际大小)来编码。例如,简单的指令能够基于16位的大小来编码,而更复杂的指令能够是32位的大小。在一些实施方式中,指令424能够包括表示由触发逻辑204接收的事件信号202的值的一个或多个操作数。事件信号202能够包括与系统对接的输入和输出信号并且能够控制系统的功率状态转换。例如,事件输入信号能够触发指令序列的执行。指令序列能够在一组输入或输出信号上操作以实施各种协议来控制功率状态转换。
在一些实施方式中,指令424能够提供用于调试功率状态转换的调试功能。例如,指令424能够提供诸如添加断点和进行单步调试的功能。
LPM 200是可编程的并且能够通过经由高级外围总线(APB)端口420连接到软件程序在流片后进行更新。能够使用在LPM工具链中定义的API来生成软件程序。软件程序能够通过ABP端口420访问LPM中的CSR。例如,软件程序能够通过ABP端口420访问用于触发逻辑204的CSR 218、用于功率状态表208的CSR 220、用于数据存储器224的CSR和用于指令存储器222的CSR,并且存储在这些CSR中的数据能够由软件程序更新或修改。
图5是用于使用功率定序器进行功率管理的示例过程的流程图。为了方便起见,过程将被描述为由包括在计算设备100中的一个或多个本地功率管理器的系统进行。系统能够包括参考图1描述的组件,其包括一个或多个设备、一个或多个功率状态表、触发逻辑、一个或多个功率定序器、或这些的某种组合。
系统监视由本地功率管理器获得的触发信号(510)。系统能够以预定间隔来监视触发信号。例如,系统能够进入主循环,该主循环每5毫秒检查由LPM接收到的事件信号。系统能够接收一个或多个事件信号202并且系统能够使用在LPM 200中的触发逻辑204来生成一个或多个触发信号206。
系统确定触发信号是否是用于系统中的设备的功率状态转换的触发信号(520)。系统能够基于设备的功率状态表208和设备的当前功率状态214来确定触发信号是否是用于功率状态转换的触发信号。在一些实施方式中,系统能够监视计算设备100中的多个设备的功率状态转换需求。系统能够基于每个设备的相应功率状态表208和每个设备的相应当前功率状态214来确定触发信号是否触发针对每个设备的功率状态转换。例如,基于表1中的功率状态表,当设备的当前功率状态处于PS0时,系统能够确定触发信号T1是用于从PS0(运行快速)到PS1(运行缓慢)的功率状态转换的触发信号。
如果系统确定触发信号不是用于功率状态转换的触发信号,则系统继续监视由本地功率管理器获得的未来触发信号(510)。
如果系统确定触发信号是用于功率状态转换的触发信号,则系统执行用于功率状态转换的指令序列(530)。系统能够基于功率状态表208来生成指令序列的序列地址210。系统能够使用功率定序器以通过使用序列地址210索引指令存储器412来确定指令序列的指令424。功率定序器能够基于指令424来生成GPIO输出406,并且GPIO输出406能够用于进行设备的功率状态转换。在一些实施方式中,系统能够包括用于在计算设备100中的多个设备中的每个设备的相应的功率定序器和相应的功率状态表。系统能够针对多个设备中的每个设备来生成相应的GPIO输出。
本说明书中描述的主题和动作和操作的实施例能够在数字电子电路中、在有形地体现的计算机软件或固件中、在计算机硬件中实现,包括本说明书中公开的结构及其结构等同物,或它们中的一个或多个的组合。本说明书中描述的主题的实施例能够被实现为一个或多个计算机程序,即,被编码在有形非暂时性存储介质上以供数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。可替选地或附加地,程序指令能够被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,该信号被生成以编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合或作为其一部分。计算机存储介质不是传播信号。
还可以被称为或描述为程序、软件、软件应用、应用程序、模块、软件模块、引擎、脚本或代码的计算机程序能够以任何形式的编程语言编写,包括编译或解释语言、或声明性或过程语言;并且其能够以任何形式部署,包括作为独立程序或作为模块、组件、引擎、子例程或适合在计算环境中执行的其他单元,该环境可以包括在一个或多个位置中由数据通信网络互连的一个或多个计算机。
计算机程序可以但不必对应于文件系统中的文件。计算机程序能够存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本、专用于所讨论的程序的单个文件中、或存储在多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的文件。
为了提供与用户的交互,本说明书中描述的主题的实施例能够在计算机上实现或被配置成与计算机通信,该计算机具有用于向用户显示信息的显示设备(例如,LCD(液晶显示器)监视器)和用户能够通过其向计算机提供输入的输入设备(例如,键盘和定点设备,例如鼠标、轨迹球或触摸板)。其他类型的设备也能够用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过向用户使用的设备发送文档和从设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求,或者通过与在用户设备(例如,智能电话或电子平板)上运行的应用程序交互,向在用户设备上的web浏览器发送网页。而且,计算机能够通过向个人设备(例如,正在运行消息传送应用的智能电话)发送文本消息或其他形式的消息,并且接收从用户返回的响应消息来与用户进行交互。
本说明书中描述的主题的实施例能够在计算系统中实现,该计算系统包括后端组件,例如,作为数据服务器,或者包括中间件组件,例如,应用服务器,或者包括前端组件,例如,具有图形用户界面的客户端设备、web浏览器或用户能够通过其与本说明书中描述的主题的实施方式交互的应用,或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件能够通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系由于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器例如出于向与充当客户端的设备交互的用户显示数据和从用户接收用户输入的目的,向用户设备传输数据,例如HTML页面。能够在服务器处从设备接收在用户设备处生成的数据,例如用户交互的结果。
除了上述实施例之外,以下实施例也是创新的:
实施例1是一种计算设备,包括:
布置在多个功率块中的多个设备,其中,多个设备中的每个设备属于多个功率块中的一个功率块;以及
多个本地功率管理器,每个本地功率管理器可编程为执行用于相应功率块的相应的指令序列集合,以便实现针对相应功率块中的一个或多个设备的功率状态转换。
实施例2是实施例1的计算设备,其中,每个本地功率管理器包括:
被配置成接收事件信号输入和输出触发信号的触发逻辑;
被配置成存储触发信号与功率状态转换之间的映射功率状态表;以及
被配置成当由触发逻辑触发功率状态转换时执行相应的指令序列的一个或多个硬件定序器。
实施例3是实施例2的计算设备,其中,功率状态表、触发逻辑和指令序列在计算设备被制造之后是可修改的。
实施例4是实施例2的计算设备,其中,硬件定序器包括用于调试的断点和单步功能。
实施例5是实施例2的计算设备,其中,指令序列包括具有表示由触发逻辑接收的事件信号输入的值的一个或多个操作数的指令,其中,事件信号输入控制功率状态转换。
实施例6是实施例1的计算设备,其中,每个本地功率管理器被配置成执行条件指令,但是缺少用于执行算术运算的硬件。
实施例7是实施例1的计算设备,其中,每个本地功率管理器被配置成执行针对多个相应设备的多个功率状态表的转换序列。
实施例8是一种计算机实现的方法,包括:
监视由本地功率管理器获得的触发信号,其中,计算设备中的多个设备被布置在多个功率块中,其中,多个设备中的每个设备属于多个功率块中的一个功率块,其中,多个本地功率管理器中的每个本地功率管理器是可编程的以执行用于相应功率块的相应的指令序列集合;
确定是否接收到用于功率状态转换的触发信号;以及
响应于确定接收到用于功率状态转换的所述触发信号,执行针对相应功率块中的一个或多个设备的功率状态转换的指令序列。
实施例9是实施例8的计算机实现的方法,其中,每个本地功率管理器包括:
被配置成接收事件信号输入和输出触发信号的触发逻辑;
被配置成存储触发信号与功率状态转换之间的映射的功率状态表;以及
被配置成当由触发逻辑触发功率状态转换时执行相应的指令序列的一个或多个硬件定序器。
实施例10是实施例9的计算机实现的方法,其中,功率状态表、触发逻辑和指令序列在计算设备被制造之后是可修改的。
实施例11是实施例9的计算机实现的方法,其中,硬件定序器包括用于调试的断点和单步功能。
实施例12是根据实施例9的计算机实现的方法,其中,指令序列包括具有表示由触发逻辑接收到的事件信号输入的值的一个或多个操作数的指令,其中,事件信号输入控制功率状态转换。
实施例13是实施例8的计算机实现的方法,其中,每个本地功率管理器被配置成执行条件指令,但是缺少用于执行算术运算的硬件。
实施例14是实施例8的计算机实现的方法,其中,每个本地功率管理器被配置成执行多个相应设备的多个功率状态表的转换序列。
实施例15是编码有指令的一个或多个非暂时性存储介质,所述指令在由被布置成多个功率块的计算设备的一个或多个本地功率管理器执行时,使一个或多个本地功率管理器实现计算设备的相应功率块中的多个设备的功率状态转换,其中,多个设备中的每个设备属于多个功率块中的一个功率块。
实施例16是实施例15的非暂时性存储介质,其中,每个本地功率管理器包括:
被配置成接收事件信号输入和输出触发信号的触发逻辑;
被配置成存储触发信号与功率状态转换之间的映射的功率状态表;以及
被配置成在由触发逻辑触发功率状态转换时执行相应指令的一个或多个硬件定序器。
实施方式17是实施例16的非暂时性存储介质,其中,功率状态表、触发逻辑和指令在计算设备被制造之后是可修改的。
实施例18是实施例16的非暂时性存储介质,其中,硬件定序器包括用于调试的断点和单步功能。
实施例19是实施例16的非暂时性存储介质,其中,指令包括具有表示由触发逻辑接收的事件信号输入的值的一个或多个操作数的指令,其中,事件信号输入控制功率状态转换。
实施例20是实施例15的非暂时性存储介质,其中,每个本地功率管理器被配置成执行条件指令,但是缺少用于执行算术运算的硬件。
虽然本说明书包含许多具体实施方式细节,但是这些不应被解释为对任何发明的范围或对正在或可能要求保护的内容的范围的限制,而是应当被解释为对特定发明的特定实施例可能特定的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也能够在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也能够单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初被要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征能够从组合中被切除,并且权利要求可以针对子组合或子组合的变体。
类似地,虽然在附图中示出并且在权利要求中以特定顺序描述了操作,但是这不应当被理解为要求以所示的特定顺序或以序列顺序进行这样的操作,或者进行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中要求这种分离,并且应当理解,所描述的程序组件和系统通常能够在单个软件产品中集成在一起或封装成多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作能够以不同的顺序进行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定顺序或序列顺序以实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

Claims (20)

1.一种计算设备,包括:
布置在多个功率块中的多个设备,其中,所述多个设备中的每个设备属于所述多个功率块中的一个功率块;以及
多个本地功率管理器,每个本地功率管理器可编程为执行用于相应功率块的相应的指令序列集合,以便实现针对所述相应功率块中的一个或多个设备的功率状态转换。
2.根据权利要求1所述的计算设备,其中,每个本地功率管理器包括:
触发逻辑,所述触发逻辑被配置成接收事件信号输入和输出触发信号;
功率状态表,所述功率状态表被配置成存储触发信号与功率状态转换之间的映射;以及
一个或多个硬件定序器,所述一个或多个硬件定序器被配置成当由所述触发逻辑触发功率状态转换时执行相应的指令序列。
3.根据权利要求2所述的计算设备,其中,所述功率状态表、所述触发逻辑和所述指令序列在所述计算设备被制造之后是可修改的。
4.根据权利要求2所述的计算设备,其中,所述硬件定序器包括用于调试的断点和单步功能。
5.根据权利要求2所述的计算设备,其中,所述指令序列包括具有表示由所述触发逻辑接收的事件信号输入的值的一个或多个操作数的指令,其中,所述事件信号输入控制所述功率状态转换。
6.根据权利要求1所述的计算设备,其中,每个本地功率管理器被配置成执行条件指令,但是缺少用于执行算术运算的硬件。
7.根据权利要求1所述的计算设备,其中,每个本地功率管理器被配置成执行针对多个相应设备的多个功率状态表的转换序列。
8.一种计算机实现的方法,包括:
监视由本地功率管理器获得的触发信号,其中,计算设备中的多个设备被布置在多个功率块中,其中,所述多个设备中的每个设备属于所述多个功率块中的一个功率块,其中,多个本地功率管理器中的每个本地功率管理器是可编程的以执行用于相应功率块的相应的指令序列集合;
确定是否接收到用于功率状态转换的触发信号;以及
响应于确定接收到用于所述功率状态转换的所述触发信号,执行针对所述相应功率块中的一个或多个设备的所述功率状态转换的指令序列。
9.根据权利要求8所述的计算机实现的方法,其中,每个本地功率管理器包括:
触发逻辑,所述触发逻辑被配置成接收事件信号输入和输出触发信号;
功率状态表,所述功率状态表被配置成存储触发信号与功率状态转换之间的映射;以及
一个或多个硬件定序器,所述一个或多个硬件定序器被配置成当由所述触发逻辑触发功率状态转换时执行相应的指令序列。
10.根据权利要求9所述的计算机实现的方法,其中,所述功率状态表、所述触发逻辑和所述指令序列在所述计算设备被制造之后是可修改的。
11.根据权利要求9所述的计算机实现的方法,其中,所述硬件定序器包括用于调试的断点和单步功能。
12.根据权利要求9所述的计算机实现的方法,其中,所述指令序列包括具有表示由所述触发逻辑接收的事件信号输入的值的一个或多个操作数的指令,其中,所述事件信号输入控制所述功率状态转换。
13.根据权利要求8所述的计算机实现的方法,其中,每个本地功率管理器被配置成执行条件指令,但是缺少用于执行算术运算的硬件。
14.根据权利要求8所述的计算机实现的方法,其中,每个本地功率管理器被配置成执行多个相应设备的多个功率状态表的转换序列。
15.一个或多个编码有指令的非暂时性存储介质,所述指令在由被布置成多个功率块的计算设备的一个或多个本地功率管理器执行时,使所述一个或多个本地功率管理器实现所述计算设备的相应功率块中的多个设备的功率状态转换,其中,所述多个设备中的每个设备属于所述多个功率块中的一个功率块。
16.根据权利要求15所述的非暂时性存储介质,其中,每个本地功率管理器包括:
触发逻辑,所述触发逻辑被配置成接收事件信号输入和输出触发信号;
功率状态表,所述功率状态表被配置成存储触发信号与功率状态转换之间的映射;以及
一个或多个硬件定序器,所述一个或多个硬件定序器被配置成当由所述触发逻辑触发功率状态转换时执行相应的指令。
17.根据权利要求16所述的非暂时性存储介质,其中,所述功率状态表、所述触发逻辑和所述指令在所述计算设备被制造之后是可修改的。
18.根据权利要求16所述的非暂时性存储介质,其中,所述硬件定序器包括用于调试的断点和单步功能。
19.根据权利要求16所述的非暂时性存储介质,其中,所述指令包括具有表示由所述触发逻辑接收的事件信号输入的值的一个或多个操作数的指令,其中,所述事件信号输入控制所述功率状态转换。
20.根据权利要求15所述的非暂时性存储介质,其中,每个本地功率管理器被配置成执行条件指令,但是缺少用于执行算术运算的硬件。
CN202180100577.8A 2021-07-16 2021-07-16 用于功率状态管理的功率定序器 Pending CN117716320A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/042077 WO2023287436A1 (en) 2021-07-16 2021-07-16 Power sequencer for power state management

Publications (1)

Publication Number Publication Date
CN117716320A true CN117716320A (zh) 2024-03-15

Family

ID=77338807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180100577.8A Pending CN117716320A (zh) 2021-07-16 2021-07-16 用于功率状态管理的功率定序器

Country Status (6)

Country Link
EP (1) EP4352589A1 (zh)
JP (1) JP2024526792A (zh)
KR (1) KR20240027783A (zh)
CN (1) CN117716320A (zh)
TW (1) TWI812029B (zh)
WO (1) WO2023287436A1 (zh)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101185614B1 (ko) * 2005-01-31 2012-09-28 삼성전자주식회사 절전모드가 아닌 동작상태저장과 전원차단으로 구현하는시스템의 소비전력 감소 방법 및 장치
US7337339B1 (en) * 2005-09-15 2008-02-26 Azul Systems, Inc. Multi-level power monitoring, filtering and throttling at local blocks and globally
US8458498B2 (en) * 2008-12-23 2013-06-04 Intel Corporation Method and apparatus of power management of processor
US8487655B1 (en) * 2009-05-05 2013-07-16 Cypress Semiconductor Corporation Combined analog architecture and functionality in a mixed-signal array
US8601288B2 (en) * 2010-08-31 2013-12-03 Sonics, Inc. Intelligent power controller
CN102467220A (zh) * 2010-11-12 2012-05-23 英业达股份有限公司 电脑系统与其电源管理方法
CN105027023B (zh) * 2013-01-30 2018-02-02 慧与发展有限责任合伙企业 通过共享命令总线的从供电排序器的供电排序
US9733689B2 (en) * 2015-06-27 2017-08-15 Intel Corporation Hardware apparatuses and methods to perform transactional power management
US11054878B2 (en) * 2017-08-29 2021-07-06 Texas Instruments Incorporated Synchronous power state control scheme for multi-chip integrated power management solution in embedded systems

Also Published As

Publication number Publication date
EP4352589A1 (en) 2024-04-17
TW202305546A (zh) 2023-02-01
WO2023287436A1 (en) 2023-01-19
KR20240027783A (ko) 2024-03-04
JP2024526792A (ja) 2024-07-19
TWI812029B (zh) 2023-08-11

Similar Documents

Publication Publication Date Title
US8984520B2 (en) Resource modeling and scheduling for extensible computing platforms
US8904216B2 (en) Massively multicore processor and operating system to manage strands in hardware
EP2179359B1 (en) Proactive power management in a parallel computer
US9477293B2 (en) Embedded controller for power-saving and method thereof
KR20120096858A (ko) 모바일 디바이스의 어플리케이션 프로세서의 원격 시동
CN110716633B (zh) 协调管理ssd功耗的装置、方法、计算机设备及存储介质
WO2007122596A1 (en) Method and system for power-state transition controllers
WO2013126415A2 (en) Method and system for scheduling requests in a portable computing device
US11537429B2 (en) Sub-idle thread priority class
US20070101316A1 (en) Software Architecture and Program for the Concurrent Execution of Finite State Machine-Encoded Processes, on Single or Multiple-Processor-Based Embedded Systems
JP7170094B2 (ja) オペレーター併合方法、装置、電子デバイス、記憶媒体及びコンピュータプログラム
CN205507633U (zh) 一种基于FPGA的高性能运算PCI-e加速卡
CN110399328B (zh) 一种板载图形处理器控制方法与装置
CN111830390B (zh) 一种测试方法及相关产品
US11748108B2 (en) Instruction executing method and apparatus, electronic device, and computer-readable storage medium
CN117319376A (zh) 文件下载控制方法、装置、电子设备及存储介质
CN117716320A (zh) 用于功率状态管理的功率定序器
US20120017100A1 (en) Power System Optimization and Verification for Embedded System Design
JP6316522B1 (ja) 計算機装置、タスク起動方法およびタスク起動プログラム
CN102567281B (zh) 可重构调度算子阵列结构、集成电路阵列结构及控制模块
US9454139B2 (en) Adjusting environmental variables in an adaptive parameter adjustment runtime environment
CN114020271B (zh) 一种为控制器中Python编程高效提供实时数据的方法
US20240232121A9 (en) Systems and methods for graphically programming an application with external integrated circuits
CN115827328A (zh) 一种重启PCIe装置的方法、系统、设备及介质
Steuer et al. Energy Efficient Programming

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