CN109716519B - 微控制器能量分析器 - Google Patents

微控制器能量分析器 Download PDF

Info

Publication number
CN109716519B
CN109716519B CN201780057313.2A CN201780057313A CN109716519B CN 109716519 B CN109716519 B CN 109716519B CN 201780057313 A CN201780057313 A CN 201780057313A CN 109716519 B CN109716519 B CN 109716519B
Authority
CN
China
Prior art keywords
energy
signal
component
bus
duration
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
CN201780057313.2A
Other languages
English (en)
Other versions
CN109716519A (zh
Inventor
克里斯蒂安·温克
汉斯·凡安特卫普
S·罗斯纳
罗兰·里克特
吉恩-保罗·凡尼泰格姆
简-威廉·范德瓦尔德特
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.)
Cypress Semiconductor Corp
Original Assignee
Cypress Semiconductor 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 Cypress Semiconductor Corp filed Critical Cypress Semiconductor Corp
Publication of CN109716519A publication Critical patent/CN109716519A/zh
Application granted granted Critical
Publication of CN109716519B publication Critical patent/CN109716519B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • 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/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Microcomputers (AREA)
  • Power Sources (AREA)

Abstract

公开了一种估计微控制器中的组件在操作期间消耗的能量的方法,包括识别“事件”活动,其中组件消耗的能量可以由组件执行的事件的数量来确定,以及“持续时间”活动,其中消耗的能量可以由执行活动所需的持续时间来确定,以及在给定的操作条件下,基于事件的数量/持续时间和对应于组件执行活动所消耗的能量的量的能量系数来确定组件消耗的能量。在实施例中,总线接口处的数据传输可以表示事件活动。公开了估计消耗的能量的装置,包括总线监测器,以接收表示总线接口处的数据传输的信号,并提供指示执行的数据传输的数量的信号。

Description

微控制器能量分析器
相关申请
本申请是2017年5月3日提交的第15/585,890号美国非临时申请的国际申请,其要求2016年11月16日提交的第62/422,739号美国临时专利申请的权益,其全部通过引用以整体被并入本文。
技术领域
本公开总体上涉及微控制器,并且更具体地涉及确定微控制器的组件的能量消耗。
背景
在一些应用中,管理微控制器的能量消耗可能很关键。例如,在电池供电的应用中,为了最大化电池寿命,最小化能量消耗是很重要的。在微控制器处于散热有限的环境的应用中,重要的是最小化由微控制器产生的热量,以防止微控制器过热和故障。
管理微控制器的能量消耗的一种当前的方法涉及调整操作设置,例如降低时钟速度或在操作期间禁用组件。然而,如果没有对操作期间特定组件使用的能量消耗的准确估计,这样的方法可能会不必要地减少功能。因此,需要用于估计微控制器中在操作期间由特定组件使用的能量消耗的方法和相应的装置。
概述
在实施例中,公开了估计在操作期间微控制器中的组件消耗的能量的方法。方法包括将由组件执行的活动的类型识别为“事件(event)活动”,其中组件消耗的能量可以由组件执行的事件的数量确定,或者识别为“持续时间(duration)活动”,其中消耗的能量可以由执行活动所需的持续时间(即,组件是活动的持续时间)确定;确定组件执行的事件的数量或组件是活动的持续时间;以及基于事件的数量/持续时间和能量系数来确定组件消耗的能量,该能量系数对应于在给定的操作条件下组件执行活动消耗的能量的量。能量系数可以由用户预先确定。可在运行时间操作(runtime operation)期间使用该方法,以便估计电池寿命或动态地调整用于功率和能量消耗管理的操作。该方法可在调试会话期间被用于估计特定组件消耗的能量的量,以便确定能量系数或微调(fine-tune)应用软件以管理操作期间的功率和能量消耗。
在实施例中,公开了能量估计电路以实现上述方法,包括但不限于计数器、时钟、模拟电路、逻辑电路和存储器电路,其被配置为接收指示要被监测的组件的事件或持续时间活动的信号、估计组件执行活动所消耗的能量、提供指示组件消耗的能量的信号、以及存储组件消耗的能量的度量(measurement)。
在实施例中,公开了方法,其中在组件的总线接口处的数据传输可以表示由组件执行的事件活动。
在实施例中,公开了总线监测器,其可以捕获总线接口处的数据传输和数据传输控制信号,并且可以提供信号来将数据传输指示为事件。
在实施例中,公开了能量分析器(profiler)单元,其可以包括测量事件的计数或组件活动时间的持续时间的各种计数器电路、控制寄存器、模拟电路和逻辑电路。
附图简述
图1示出了根据示例实施例的微控制器。
图2示出了根据各个实施例估计能量使用的等式。
图3A-图3D示出了根据各个实施例被配置为执行方法以启用对事件的计数或持续时间的测量的组件的框图。
图4示出了根据各个实施例公开了方法以启用对组件事件或持续时间的计数的表格。
图5A-图5B示出了根据各个实施例被配置为使用总线监测器来启用对总线访问的计数的组件的框图。
图6A-图6B示出了根据各个实施例的总线监测器。
图7示出了根据各个实施例公开了方法以在各种功率模式实施例中启用持续时间的测量的表格。
图8示出了根据实施例的能量分析器单元。
图9示出了根据实施例的能量分析器单元采样逻辑。
图10A-图10B示出了根据各个实施例的能量消耗的输出显示。
详细描述
在以下描述中,出于解释的目的,阐述了许多具体细节以便提供本文所讨论的本发明的实施例的全面理解。但是,对于本领域技术人员将明显的是,这些和其他实施例可以在没有这些具体细节的情况下进行实践。在其他实例中,众所周知的电路、结构和技术没有被具体示出,而且以框图示出,以避免对本说明书的不必要的模糊的理解。因此,在下文中阐述的特定细节仅仅是示例性的。特定的实施方式可根据这些示例性细节而变化,并且仍然被设想为在本发明的精神和范围内。
在描述中对“一个实施例”或“实施例”的引用是指关于实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。在本说明书中位于不同位置的短语“在一个实施例中(in one embodiment)”不必指代相同的实施例。
描述包括对附图的引用,附图构成详细描述的一部分。附图显示根据示例性实施例的图示。在本文中也可被称为“示例”的这些实施例被足够详细地描述,以使本领域的技术人员能够实施在本文描述的要求保护的主题的实施例。在不偏离要求保护的主题的范围和精神的情况下,可以将实施例组合,可以利用其它实施例,或可做出结构的、逻辑的和电气的改变。应当理解,本文描述的实施例并不旨在限制主题的范围,而是使本领域的技术人员能够实施、完成和/或使用主题。
为了说明的简洁和清楚,参考数字在各个附图中可以重复以指示相应的或类似的元件。阐述了许多细节以提供对本文中所描述的实施例的理解。示例可以在没有这些细节的情况下被实践。在其他实例中,众所周知的方法、程序和组件没有被具体描述以避免使所描述的示例模糊。本说明书不应被视为受限于本文所描述的示例的范围。
概况
图1示出了根据各个实施例的微控制器100。微控制器可以将许多组件集成到单个集成电路(IC)设备中。组件可以包括中央处理单元(“CPU”)101、图形处理单元102、诸如SRAM 103和闪存104的存储器、诸如定时器105和输入/输出(“I/O”)106的数字组件、诸如模数转换器(“ADC”)107和模拟比较器108的模拟组件、通信接口109、诸如晶体振荡器110的时钟源、诸如实时时钟(“RTC”)113的定时器以及内部总线111。应当注意,各个实施方式和实施例可以使用不同的组件或组件的组合来执行图1中的电路的操作。因此,以下的描述和图1中的电路被视为说明性的而非限制性的含义。
在一些应用中,微控制器可以使用电池电源来操作,其需要管理微控制器的能量消耗以最大化电池寿命。在其他应用中,微控制器在散热有限的环境中操作,其需要管理微控制器的功耗,以最小化微控制器产生的热量,从而防止微控制器过热和故障。
微控制器的功耗可以是微控制器组件在它们执行活动(或是“活动的(active)”)时消耗的功率的函数。在示例中,微控制器执行闪存读取访问的每个实例中,闪速存储器消耗功率。在该示例中,闪速存储器消耗的能量的量可以与所执行的闪存读取访问(即,“事件”)的数量成比例。在另一示例中,模拟比较器正在执行比较的每个实例中,模拟比较器消耗功率。在该示例中,模拟比较器消耗的能量的量可以与模拟比较器是活动的(即,执行比较)的时间量(即,“持续时间”)成比例。
微控制器在特定时间点消耗的功率的总量可以通过合计在该时间点上活动的组件使用的功率来被估计。微控制器在一段时间期间消耗的能量的总量可以通过合计在该时间段期间活动的组件所使用的能量来被估计。因此,可以即时地估计微控制器的功耗,或者可以在一段时间内估计能量消耗。估计的功耗可以用于估计微控制器的峰值功耗。估计的能量消耗可以用于估计电池寿命。
图2公开了三个等式,它们可以用于估计当组件是活动的时候所消耗的能量。组件执行的活动可以是事件活动,其中组件消耗的能量可以由执行的事件的数量来确定。组件执行的活动可以是持续时间活动,其中消耗的能量可以由执行活动所需的持续时间(即,组件是活动的持续时间)来确定。等式1描述了事件型能量消耗的度量的估计。消耗的能量可以是事件的数量和“event_coefficient”的函数,或者基于事件的数量和“event_coefficient”,其表示或者对应于在给定的操作条件下每个给定事件消耗的能量的平均量。等式2描述了持续时间型能量消耗的度量的估计。消耗的能量可以是持续时间和“duration_coefficient”的函数,或者基于持续时间和“duration_coefficient”,其表示或者对应于在给定的操作条件下给定持续时间活动消耗的功率的平均量。
能量系数(即,图2中的event_coefficient和duration_coefficient)可以由用户预先确定。操作条件可以包括功率模式、供电电压、操作频率和操作的模式。在实施例中,组件可以仅执行事件型活动或仅执行持续时间型活动。在另一实施例中,组件可以执行事件型活动和持续时间型活动二者。
图2中的等式1和等式2示出了能量消耗可以是能量系数和事件/持续时间的线性函数的示例。等式3示出了事件型能量消耗的示例,其中能量消耗可以是能量系数和事件的非线性函数。应当理解,能量系数和事件/持续时间之间的关系可以比这里示出的更复杂;因此,图2中的等式被认为是说明性的含义,而非限制性的含义。
图3A-图3D示出了可以计算事件计数或活动的持续时间的示例。在图3A中,组件301执行可以在软件控制下的事件活动(即,可以由固件或软件完全启用(enable)/禁用(disable)的活动,固件或软件可以被存储在微控制器的一个或更多个存储器组件(包括但不限于闪存、ROM和RAM)中,并且可以由微控制器的组件(包括但不限于CPU)执行)。软件可以对组件301执行的事件进行计数。
在图3B中,组件311执行可以在软件控制下的持续时间活动。在实施例中,软件可以选择自由运行计数器316,并且可以捕获活动开始时自由运行计数器316的初始值和活动结束时的最终值。可以通过找到初始值和最终值之间的差值来计算持续时间计数。自由运行计数器316可以用作基准时钟317。时钟317可以具有至少与活动的频率(即,活动的开始/停止的频率)一样快的已知频率。在特定实施例中,时钟317可以具有至少两倍于活动的频率的频率,以启用持续时间活动的准确计数。自由运行计数器316和时钟317可以在组件321的内部或外部。自由运行计数器316可以提供对应于初始计数和最终计数的持续时间信号315。
在图3C中,组件321在硬件控制下执行事件活动(即,由硬件启用和/或禁用)。组件321可以使用硬件电路(包括但不限于时钟、模拟电路和数字逻辑电路)来提供控制信号323,控制信号323可以包括但不限于计数器启用/禁用和计数器增量信号,并且可以发送事件活动信号324以指示事件发生将由计数器322进行计数的每个实例。计数器322可以在组件321的内部或外部。计数器322可以由固件或软件控制(例如,启用/禁用)。计数器322可以提供对应于计数的事件的数量的计数信号325。
在图3D中,组件331可以在硬件控制下执行持续时间活动。在实施例中,组件331可以提供控制信号333和持续时间活动信号334,以使计数器338能够在组件331是活动的同时基于时钟337的边沿(edge)递增。时钟337的频率可以至少与持续时间活动信号338的频率一样快。在特定实施例中,时钟337的频率可以是持续时间信号338的频率的两倍,以启用持续时间活动的准确计数。自由运行计数器336、时钟337和计数器338可以在组件331的内部或组件331的外部。自由运行计数器336、时钟337和计数器338可以提供对应于初始计数、最终计数或持续时间计数的持续时间信号335。在另一实施例中,组件331可以使用硬件电路,包括但不限于时钟、模拟电路和数字逻辑电路,以启用捕获活动开始时自由运行计数器336的初始值和活动结束时的最终值。组件331可以提供对应于活动的开始和活动的结束的持续时间活动信号334。例如,A/D转换器可以提供“开始转换”信号以启用捕获自由运行计数器的初始计数,并且提供“转换完成”信号以启用捕获自由运行计数器的最终计数。自由运行计数器336可以使用具有已知频率的基准时钟337,该频率至少与持续时间活动信号334的频率(即,活动开始/停止信号的频率)一样快。在特定实施例中,时钟337可以具有至少两倍于活动的频率的频率,以实现对持续时间活动的准确计数。可以通过找到初始计数和最终计数之间的差值来计算持续时间计数。
在诸如图3B和图3D示出的持续时间组件的示例中,可以通过将持续时间计数乘以时钟317、337的周期来计算持续时间。持续时间计数和持续时间可以由组件或由微控制器的另一组件(诸如CPU)来计算,或者由耦合到微控制器的外部系统(诸如调试主机)来计算。
在图3A-图3D示出的示例中,可以基于计数信号或持续时间信号以及相应的能量系数由组件或由微控制器的另一组件(例如CPU)或耦合到微控制器的外部系统(例如调试主机)来估计与事件或持续时间活动相关联的能量消耗的度量。
在图3A-图3D示出的示例中,事件计数、初始计数、最终计数、持续时间计数、持续时间或能量消耗的度量可以由组件或由微控制器的另一组件来存储,或者由耦合到存储器组件(包括但不限于闪存、ROM、RAM和其他存储技术)中的微控制器的外部系统来存储。
在实施例中,能量估计电路可以包括图3A-图3D示出的一些或全部元件。能量估计电路还可以包括电路或电路块,包括但不限于CPU,CPU可以计算持续时间并且根据上面描述的和图2公开的方法来估计能量消耗的度量。能量估计电路的一些或全部组件可以是微控制器的组件,或者可以是耦合到微控制器的外部系统的组件。
图4公开了组件活动的示例,根据一些实施例,可以使用所公开的发明(包括CPU、存储器和外围组件活动)来估计其能量消耗。在示例中,串行外围接口(“SPI”)消耗的能量可以被估计为硬件控制下的事件活动。在另一示例中,通用I/O消耗的能量可以被估计为软件控制下的持续时间活动。应当理解,组件的能量消耗可以包括对应于事件和持续时间活动的能量消耗,其可以由软件和硬件控制。
CPU能量估计
如图4所公开,可以使用上面公开的方法来估计诸如CPU的处理单元消耗的能量。在实施例中,可以基于持续时间活动(即,基于CPU是活动的持续时间)来估计CPU消耗的能量。在另一实施例中,可以基于事件活动(例如,指令或活动的CPU周期)来估计CPU消耗的能量。可以基于执行的活动来估计在给定的操作条件下CPU能量消耗的相应能量系数。
存储器访问能量估计
如图4所公开,通过使用上面公开的方法,可以将对存储器的访问和来自存储器的访问所消耗的能量估计为事件活动。在一些实施例中,与CPU能量消耗相比,RAM和ROM访问可以非常小。RAM和ROM访问的能量消耗可以被包括在能量系数中,该能量系数表示在给定的操作条件下对于给定的活动CPU所消耗的能量的量。在其他实施例中,与CPU能量消耗相比,RAM或ROM访问的数量可以很大。在给定的操作条件下,RAM和ROM访问的能量消耗可以被估计为针对每种类型的RAM或ROM访问具有相应能量系数的事件活动。
在一些实施例中,与总CPU能量消耗相比,对闪存的访问和来自闪存的访问所消耗的能量可以很大。在给定的操作条件下,闪存访问的能量消耗可以被估计为具有针对每种类型的闪存访问(例如,读取、编程、擦除)的相应能量系数的事件活动。
外围组件持续时间活动能量估计
如图4所公开,微控制器组件执行的活动可以是持续时间活动。可以使用上面公开的方法来计算组件执行持续时间活动所消耗的能量。执行持续时间活动的组件可以包括诸如模数(“A/D”)转换器的模拟组件、数模转换器(“DAC”)、运算放大器和比较器。执行持续时间活动的组件还可以包括通用输入/输出(“GPIO”)。在一些实施例中,组件持续时间活动可以在软件控制下。在其他实施例中,组件持续时间活动可以在硬件控制下。相应的能量系数可以对应于在给定的操作条件下给定活动在给定或代表性持续时间内消耗的功率量。在示例中,GPIO的能量系数可以取决于可以被外部地连接到GPIO的东西。
在实施例中,组件可以使用持续时间和能量系数来估计组件消耗的能量的度量。在另一实施例中,微控制器的另一个组件(例如CPU)或者耦合到微控制器的外部系统(例如调试主机)可以估计消耗的能量的度量。能量消耗的度量可以被存储在微控制器的一个或更多个存储器组件中,或者被存储在耦合到微控制器的外部系统的存储器组件中。
外围组件事件活动能量估计
如图4所公开,微控制器组件执行的活动可以是事件活动。可以使用上面公开的方法来计算组件执行事件活动所消耗的能量。执行事件活动的组件可以包括通信组件,例如I2C、SPI、UART和USB组件。执行事件活动的组件还可以包括数据处理组件,例如DMA控制器、图形控制器和加密/认证组件。在实施例中,事件活动可以是数据传输。在一些实施例中,组件事件活动可以在软件控制下。在其他实施例中,组件事件活动可以在硬件控制下。
在一些实施例中,组件可以执行多个连续(“背靠背(back-to-back)”)事件活动,其可以由对于多个时钟信号可以是活动的信号来指示。在示例中,数据传输启用可以对于两个周期是活动的,对应于两次传输、对应于两个事件。在一些实施例中,计数器可以使用事件活动的事件源时钟作为基准时钟,启用单个脉冲事件以及“背靠背”事件信号的准确计数。在其他实施例中,计数器可以使用与事件活动源时钟不同的时钟作为基准时钟。在该实施例中,基准时钟可以至少与事件源时钟一样快。在特定实施例中,基准时钟可以是事件源时钟的至少两倍,以实现准确计数。使用基准时钟的边沿编码可以配置信号,在不使用事件源时钟的情况下实现背靠背事件的准确计数。
在给定的操作条件下,相应的能量系数可以对应于每个事件消耗的能量的平均量。
在示例中,对应于数据传输的能量系数可以取决于在每个事件中传输的数据量。
在实施例中,组件可以使用事件计数和能量系数来估计组件消耗的能量的度量。在另一实施例中,微控制器的另一个组件(例如CPU)或者耦合到微控制器的外部系统(例如调试主机)可以估计组件消耗的能量的度量。能量消耗的度量可以被存储在微控制器的一个或更多个存储器组件中,或者被存储在耦合到微控制器的外部系统的存储器组件中。
使用数据传输表示组件事件活动
在一些实施例中,组件的事件活动能量消耗可以由向组件或从组件的数据的传输来表示。组件消耗的能量的量可以与总线接口处向组件或从组件的数据传输的数量有关。在实施例中,消耗的能量的量可以与传输的数据的量相关。在示例中,DMA控制器执行的事件活动可以由数据传输来表示,并且事件计数可以由数据传输计数或字节计数来表示。使用数据传输来表示事件可以对总线从设备和总线主设备都有效。总线接口可以是一组硬件组件,它们是组件的结构的一部分。
在示例中,组件可以使用高级高性能总线(“AHB”)接口。AHB是微控制器内的总线结构,其连接子系统(包括但不限于CPU子系统、模拟子系统、数字子系统、存储器子系统、时钟子系统和I/O子系统)和/或组件(例如,模数转换器、闪速存储器、传感器控制器和实时时钟)。AHB接口可以提供总线接口信号,包括但不限于TRANS[1]、HREADY、HSEL、HTRANS[1]、HREADY和HREADY_OUT。AHB接口处对组件的总线访问可以表示组件执行的事件活动。AHB总线接口信号可以被配置成向计数器发信号,以对AHB接口处传输的数据传输或字节进行计数。
在示例中,组件可以使用高级可扩展接口(“AXI”)总线接口。AXI是微控制器内的总线结构,其连接子系统和/或组件。AXI接口处对组件的总线访问可以表示组件执行的事件活动。AXI总线接口信号可以被配置成向计数器发信号,以对AXI接口处传输的数据传输或字节进行计数。
在示例中,组件可以使用与处理器(诸如/>和Core处理器)使用的总线兼容的总线接口。x86兼容总线接口可以兼容总线,包括但不限于前端总线、后端总线、直接媒体接口(“DMI”)和快速路径互连(“QPI”)。x86兼容总线接口处对组件的总线访问可以表示组件执行的事件活动。x86兼容总线接口信号可以被配置成向计数器发信号,以对x86兼容接口处传输的数据传输或字节进行计数。
在给定的操作条件下,相应的能量系数可以对应于每次数据传输消耗的能量的平均量。在示例中,对应于数据传输的能量系数可以取决于总线接口或数据量。
使用总线监测器来监测数据传输
图5A-图5B示出了耦合到总线接口的总线监测器的使用,以便于对数据传输事件计数。在实施例中,总线接口处的数据传输可以由总线监测器监测,总线监测器可以耦合到总线接口和计数器。在特定实施例中,总线监测器可以是一组硬件组件,其可以是微控制器的总线基础设施的一部分。总线基础设施可以包括但不限于如图1示出的总线111。总线监测器可以被配置为从相应的总线接口协议接收控制信号和数据传输。总线接口协议可以包括但不限于AHB、AXI和x86兼容的总线接口协议。总线监测器可以从总线接口接收控制信号和数据传输,并且配置接收的信号以提供对应于要被计数的总线传输事件的信号。在示例中,可以对数据传输的数量进行计数。在另一示例中,可以对传输的字节的数量进行计数。
图5A示出了经由AHB接口502完成对总线基础设施520的数据访问的组件501。总线基础设施520包括AHB总线监测器505。AHB接口502提供AHB控制信号503和总线传输信号504给AHB总线监测器505。AHB控制信号503可以包括但不限于,TRANS[1]、HREADY、HSEL、HTRANS[1]和HREADY_OUT。AHB总线监测器505可以配置AHB信号503和504,以将事件信号507提供给计数器508进行计数。计数器508提供对应于总线传输504的计数的计数信号509。
图5B示出了经由AXI接口512完成对总线基础设施520的数据访问的组件511。总线基础设施520包括AXI总线监测器515。AHB接口512提供AXI控制信号503和总线传输信号514给AXI总线监测器515。AXI控制信号513可以包括但不限于WVALID、WREADY、RVALID和RREADY。AXI总线监测器515可以配置AXI信号513和514,以将事件信号517提供给计数器518进行计数。计数器518提供对应于总线传输514的计数的事件计数信号519。
在实施例中,可以为每个对应的总线接口配置总线监测器。在示例中,可以为每个对应的AHB接口实例化通用AHB总线监测器。在另一示例中,可以为每个对应的AXI接口实例化通用AXI总线监测器。在另一示例中,可以为每个对应的x86型接口实例化x86型总线监测器。总线监测器的使用消除了修改组件或提供定制逻辑的需要,从而为计数器提供适当的信号以计数总线接口处的传输。
在一些实施例中,组件可以具有多于一个总线接口。对应于总线接口类型的总线监测器可以耦合到每个总线接口。
对应的能量系数可以表示或对应于在给定的操作条件下每次数据传输消耗的能量的平均量。在示例中,对应于数据传输的能量系数可以取决于总线接口或在每个事件中传输的数据量。
图6A示出了对应于AHB总线接口的总线监测器块的实施例,并且图6B示出了对应于AXI总线接口的总线监测器块的实施例,其可以对应于上面提及的和图5A-5B中的总线监测器。应当注意,各个实施方式和实施例可使用各种并且有可能不同的组件来执行上面公开的方法的操作。因此,下面的描述和图6A-图6B中的电路应被视为说明性的而非限制性的含义。
图6A示出了AHB主设备601和AHB从设备602,它们被配置为经由AHB从设备接口603进行通信和传输数据。AHB总线监测器604可以被配置为接收AHB信号605,包括但不限于HSEL、HTRANS[1]、HREADY和HREADY_OUT、DATA 607和时钟信号606。AHB总线监测器604包含配置AHB信号605和607以提供事件信号609的逻辑。
图6B示出了AXI主设备611和AXI从设备612,它们被配置为经由AXI接口613进行通信和传输数据。AXI总线监测器614可以被配置为接收AXI控制信号615,包括但不限于WVALID、WREADY、RVALID和RREADY、DATA 617和时钟信号616。AXI总线监测器614包含逻辑以配置AXI信号615和617从而提供事件信号619。在实施例中,例如,在监测AXI DMA控制器的同时,一起监测AXI接口上的读和写访问。在另一实施例中,可以仅监测AXI读访问或仅监测AXI写访问;在该实施例中,另一信道的信号可以被绑定到0。在另一实施例中,AXI读和AXI写访问两者或仅AXI写访问可以被单独地监测;在该实施例中,可以使用两个AXI监测器块。
应当理解,其他总线监测器可以被配置为监测其他总线接口类型(包括但不限于AHB、AXI和x86型总线接口的其他配置)上的活动。
在实施例中,能量估计电路可以包括图5A-图5B示出的一些或全部元件,包括但不限于总线接口502、512、总线监测器505、515、总线基础设施520和计数器508、518。在实施例中,能量估计电路可以包括图6A-图6B示出的一些或全部元件,包括但不限于AHB总线监测器604和AXI总线监测器614。能量估计电路还可以包括逻辑电路,包括但不限于CPU,其可以根据上面描述的和图2中公开的方法来计算事件活动计数并估计能量消耗。
功率模式估计
如上所述,微控制器在低功率模式期间消耗的能量可以被估计为软件控制下的持续时间活动。功率模式可以包括但不限于“活动”、“睡眠”、“深睡眠”、“低功率活动”、“低功率睡眠”、“休眠”或“关闭”模式。
图7示出了几种示例功率模式和测量功率模式中的持续时间的方法。在实施例中,活动功率模式可以是高频内部时钟可用作自由运行计数器的参考的模式。活动功率模式可以包括但不限于活动、睡眠、低功率活动或低功率睡眠模式。可以使用类似于相对于图3B描述的方法的方法来测量给定活动功率模式下的持续时间,其中自由运行计数器的初始值对应于进入给定活动功率模式,并且最终值对应于退出给定活动功率模式。
在实施例中,非活动功率模式可以是高频内部时钟不可用但诸如实时时钟(“RTC”)的自由运行计数器可用的模式。非活动功率模式可以包括但不限于关闭或休眠模式。可以使用类似于相对于图3B描述的方法的方法来测量每个非活动功率模式下花费的持续时间,其中RTC的初始值对应于进入给定的非活动功率模式,并且最终值对应于退出给定的非活动功率模式。该方法需要自由运行计数器或RTC,当微控制器可以处于非活动功率模式时,该自由运行计数器或RTC保持活动状态。
在另一实施例中,短持续时间非活动功率模式可以是非活动功率模式,其中该模式下花费的持续时间短于自由运行计数器或RTC的分辨率。短持续时间非活动模式可以包括但不限于深睡眠模式。可以通过配置软件以读取RTC从而确定微控制器的总活动时间,然后从总活动时间中减去所有其他功率模式(使用上述方法测量)下花费的时间以产生短持续时间非活动功率模式下花费的时间,来计算在短持续时间非活动功率模式中花费的时间。
在给定的操作条件下,相应的能量系数可以对应于每个功率模式下每个持续时间消耗的能量的平均量。可以基于在每个功率模式下花费的持续时间和相应的能量系数来估计在每个功率模式下消耗的能量。
能量分析器单元
图8示出了能量分析器单元800的实施例,根据上面公开的技术,其可以在微控制器中实现以测量事件计数或持续时间。能量分析器单元800可以包括硬件组件,包括但不限于多个计数器单元801、能量分析器单元控制寄存器804、计数器单元配置寄存器805、中断寄存器806、计数器读取寄存器807和总线接口810。每个计数器单元801可以包括采样逻辑802和计数器803。在实施例中,能量估计电路可以包括能量分析器单元。应当注意,各个实施方式和实施例可以使用不同的组件或组件的组合来执行图8中的电路的操作。因此,下面的描述和图8中的电路应被视为说明性的而非限制性的含义。
计数器单元的数量可以由设计要求来确定。在实施例中,计数器的大小可以被选择为足够大以避免溢出(overflow),即使对于计数持续时间。在另一实施例中,计数器的大小可以被选择为以便能够在一次总线访问中读取计数器。在特定实施例中,计数器可以是32位。
在实施例中,计数器单元可以是第一计数器单元配置的多个实例。在另一实施例中,计数器单元可以包括不同配置的计数器单元。
能量分析器单元800可以使用分析器时钟811来对能量分析器单元800的组件进行计时。在实施例中,分析器时钟811可以是高频时钟,例如内部主振荡器时钟。在实施例中,分析器时钟811可以被用于对总线接口810进行计时,以便最小化读取计数器所需的时间。在特定实施例中,总线接口810可以是AHB、AXI或x86兼容接口。在实施例中,分析器时钟811可以被用于对计数器读取寄存器807进行计时,以便利于将计数器数据移动到总线接口810。
分析器时钟811可以被采样逻辑分频(divide),以生成至少与要被计数的同步事件的最高频率一样高的频率,以确保捕获所有活动信号。在实施例中,分析器时钟811可以被采样逻辑802分频以生成频率,其可以是要被计数的异步事件的最高频率的至少两倍,以确保捕获所有活动信号。
能量分析器单元800可以使用多个基准时钟813中的一个。在实施例中,能量分析器单元800可以使用多个基准时钟813中的一个作为持续时间活动或计数事件的基准时钟。在不使用边沿编码时对事件计数的实施例中,基准时钟813可以包括事件源时钟。在另一实施例中,能量分析器单元800可以使用多个事件源时钟使能信号中的一个。
图9示出了采样逻辑900的实施例,以根据上面公开的技术,采样逻辑900可以在能量分析器单元800中实现来处理活动和基准时钟信号。在其它组件中,采样逻辑可以包括多个多路复用器、同步门和控制逻辑。应当注意,各个实施方式和实施例可使用不同的组件或组件的组合来执行图9中的电路的操作。因此,下面的描述和图9中的电路应被视为说明性的而非限制性的含义。
采样逻辑900可以被配置为接收多个信号,包括活动信号901(指示事件或持续时间活动)、基准时钟902、分析器时钟904,以及包括事件/持续时间选择905、时钟源选择906和活动信号选择910的采样逻辑控制信号。在实施例中,活动信号901可以由总线监测器提供,对应于图6A中的事件信号609和图6B中的事件信号619。在另一实施例中,活动信号901可以是对应于在其期间组件可以是活动的持续时间的脉冲。
采样逻辑900可以准备活动信号901以由相应的计数器进行计数。活动信号选择910可以选择要被计数的活动信号。活动信号901可以是可以与分析器时钟904同步的异步信号。活动信号901可以是边沿编码的信号,采样逻辑900可以在其上执行边沿检测。事件/持续时间选择905可以选择对应于事件的信号或对应于持续时间的脉冲信号作为准备好的事件信号907。
采样逻辑900可以准备定时基准。采样逻辑可以选择多个基准时钟902中的一个。采样逻辑可以使基准时钟902与分析器时钟904同步。时钟源选择906可以选择准备好的时钟基准908。
采样逻辑900将准备好的事件信号907和准备好的时钟基准908进行组合,以提供对应于图8中的计数信号818的计数信号909。
返回到图8,能量分析器单元控制寄存器804可以被配置为接收信号以控制能量分析器单元800,包括启用/禁用和清除计数器单元801。能量分析器单元控制寄存器可以向计数器单元801提供控制信号820。
计数器单元配置寄存器805可以被配置为提供计数器单元控制信号819,以配置相应的计数器单元,包括事件/持续时间选择、事件边沿编码选择、以及时钟/时钟分频器选择信号。
中断寄存器806可以被配置为接收中断信号821,包括对应于计数器单元的计数器溢出中断信号。中断寄存器可以包括INTR、INTR_SET、INTR_MASK、INTR_MASKED,每个计数器一位。在实施例中,每个中断寄存器包括32位。
计数器读取寄存器807可以存储相应计数器的值,并将该值传输到总线接口810。
在接收到计数器单元配置信号819、能量分析器单元控制信号820和计数信号818时,计数器803可以对事件或持续时间进行计数。一旦计数器803被启用,计数器803将在计数信号818具有给定值(例如,“高”电平)的时间段期间对分析器时钟811的边沿进行计数,直到计数器被禁用。计数器803可以将最终计数器值传输到计数器读取寄存器807。计数器读取寄存器807可以将最终计数器值传输到总线接口810。
应当理解,可以使用不同的组件或组件的组合来实现能量分析器单元800,以执行上面公开的方法。在示例中,计数器的最终值可以被直接传输到总线接口810。在另一示例中,控制信号可以被直接提供给计数器单元,而无需插入(intervene)寄存器。在另一示例中,能量分析器单元800的组件可以不与分析器时钟811同步;在该示例中,可能需要附加的同步电路。在实施例中,计数器803可以被配置为自由运行计数器。
在实施例中,可以在微控制器中实现单个能量分析器单元。在另一实施例中,可以在微控制器中实现不同配置的多个能量分析器单元。在示例中,可以使用分析器时钟811以外的时钟作为能量分析器单元的基准时钟来实现能量分析器单元。
在实施例中,要被计数的每个事件活动或持续时间活动可以具有能量分析器单元800内相应的计数器单元801。在另一实施例中,事件或持续时间活动可以共享计数器单元801。在该实施例中,可能需要附加的逻辑电路来选择要被计数的活动。
在实施例中,如图8所示,能量估计电路可以包括能量分析器单元800的一些或全部元件。在实施例中,如图9所示,能量估计电路可以包括采样逻辑900的一些或全部元件。能量估计电路还可以包括逻辑电路,包括但不限于CPU,其可以根据上述描述的和图2中公开的方法来计算事件计数并估计能量消耗。
能量分析器结果
在实施例中,微控制器可以包括判定(decision)电路,其可以在运行时间操作期间使用本文描述的方法和装置估计的能量消耗的度量来动态地调整操作设置,以便管理功耗。在示例中,判定电路可以启用/禁用特定组件或外围设备,或者调整特定组件的操作频率,以基于组件能量消耗的估计的度量来限制峰值功耗或者限制平均功耗。当微控制器在操作期间使用这些结果时,可以不需要外部硬件。
在实施例中,耦合到微控制器的外部系统可以包括指示器(例如,灯或仪表)或显示器(例如,液晶显示器),其可以显示诸如估计的电池寿命、当前功耗或基于使用本文描述的方法和装置估计的功耗和能量消耗的度量的能量消耗的信息。
在实施例中,耦合到微控制器的外部系统包括能量估计电路,以使用本文描述的方法和装置来估计组件的能量消耗。在特定实施例中,外部系统可以是微控制器的调试环境,例如,在主机系统(通常是PC)上运行的集成开发环境(“IDE”)。微控制器可以通过调试接口(例如,ARM调试和跟踪端口)连接到主机系统。外部系统可以包括耦合到微控制器的仪表,以在操作期间测量微控制器的功耗。
外部系统可以访问微控制器的组件,包括总线监测器、计数器或能量分析器单元。在示例中,外部系统可以从微控制器获取信息,包括计数、持续时间、能量系数和能量消耗信息的测量结果中的一些或全部。在示例中,外部系统可以从微控制器获取计数、持续时间和能量系数。外部系统可以包括能量估计电路,以使用计数、持续时间和能量系数信息来估计微控制器的组件的能量消耗和微控制器的总能量消耗的度量。在另一示例中,外部系统可以从微控制器获取计数和持续时间,并从外部系统的用户获取能量系数。外部系统可以包括能量估计电路,以使用计数、持续时间和能量系数信息来估计微控制器的组件的能量消耗和微控制器的总能量消耗的度量。在另一示例中,外部系统可以从微控制器获取计数和持续时间信息,并从仪表获取测量的功耗。外部系统的用户可以使用计数、持续时间和测量的功耗信息来估计能量系数。在其他实施例中,调试软件可以访问由微控制器估计的能量消耗信息。
应用软件开发者可以使用能量消耗信息来微调软件以管理能量消耗,例如,最小化峰值能量消耗或最大化电池寿命。
图10A-图10B示出了作为上面公开的方法的结果,可由外部系统产生的视觉结果的两个实施例。应当注意,下面的描述和图10A-图10B示出的实施例应被视为说明性的,而不是限制性的含义。
图10A示出了根据时间的瞬时功耗的计算。功耗可以由垂直轴指示;时间可以在水平轴上指示。CPU在微控制器的不同能量模式(包括活动、深度睡眠和休眠模式)下可以消耗功率;CPU完成闪速存储器访问可以消耗功率;CPU完成任务可以消耗功率;并且组件完成活动可以消耗功率。如图10A的示例所示,CPU在活动模式(时间段A-C)下消耗的功率比在深度睡眠模式(时间段D)下更多。CPU以200MHZ(时间段A)操作时完成任务A消耗的功率比以100MHZ(时间段M)操作时完成任务A消耗的功率更多。峰值功耗发生在时间段H中,此时功率模式是活动的,存在闪速存储器访问,CPU以200MHZ操作时完成任务A,并且模拟块是活动的。
图10B示出了对应于图10A示出的活动的计数器值。在实施例中,计数器单元1可以被配置为对CPU活动进行计数、计数器单元2可以被配置为对闪速存储器活动进行计数、计数器3可以被配置为对USB活动进行计数、计数器单元4可以被配置为对SPI活动进行计数、计数器单元5可以被配置为对模拟块活动进行计数、并且计数器单元6可以被配置为对CPU活动进行计数。如图10B所示,当CPU在活动模式(例如,时间段A-C)下操作时,计数器单元6的计数值增加,但是当CPU处于深度睡眠模式(时间段D)时,计数值不增加。当CPU以200MHZ(时间段A)完成活动时,计数器单元1的计数值以比CPU以100MHZ(时间段B)完成活动时更快的速率增加。当CPU没有完成任何活动时(时间段D),计数器1的计数值不会增加。
在实施例中,在图10B中的时间1001处,所有计数器被启用,在时间1002处,所有计数器被禁用。在另一实施例中,计数器可以被永久地启用或禁用。在另一实施例中,可以独立于其他计数器来启用或禁用各个计数器。
在前述说明书中,已参考其特定示例性实施例对本发明进行了描述。然而明显的是,在不偏离如在所附权利要求中阐述的本发明的更宽的精神和范围的情况下,可对其做出各种修改和改变。因此,说明书和附图被视为说明性含义而不是限制性含义。
应当认识到,贯穿本说明书对“一个实施例”或“实施例”的引用意味着与实施例相关描述的特定的特征、结构或特性被包含在本发明的至少一个实施例中。因此,要强调且应认识到的是本说明书的各个部分中对“实施例”或“一个实施例”或“替代的实施例”的两个或更多个引用不一定都是指相同的实施例。此外,特定的特征、结构、或特性可以在本发明的一个或更多个实施例中进行合适的组合。类似地,应当认识到,在本发明的示例性实施例的上述描述中,为了简化本公开的目的,本发明的各种特征有时被一起分组在单个实施例、附图、或其描述中,以有助于对各种发明方面中的一个或更多个的理解。然而,本公开的该方法不被解释为反映权利要求需要比每个发明权利要求中明确叙述的更多的特征的意向。相反,如所附权利要求所反映的,发明的方面在于少于单一前述公开的实施例的所有特征。因此,在详细描述之后的权利要求由此被明确地并入本详细描述中,每个权利要求自身作为本发明的单独的实施例。

Claims (21)

1.一种集成电路IC设备,包括:
设置在所述IC设备内的组件,所述组件包括总线接口;以及
设置在所述IC设备内的能量估计电路,所述能量估计电路耦合到所述总线接口并且被配置为:
接收指示经由所述总线接口的数据传输的数据传输信号;
基于所述数据传输信号确定数据传输的第一数量;
基于所述数据传输的第一数量和第一能量系数确定所述组件的能量消耗的第一度量,其中,所述第一能量系数对应于与一次数据传输相关联的能量消耗量;以及
存储所述能量消耗的第一度量。
2.根据权利要求1所述的IC设备,还包括:
在所述总线接口和所述能量估计电路之间耦合的总线监测器,其中,所述总线监测器被配置为从所述总线接口接收总线接口信号,并基于所述总线接口信号向所述能量估计电路提供总线监测器信号,并且其中,所述数据传输信号包括所述总线监测器信号。
3.根据权利要求2所述的IC设备,其中,所述总线监测器被配置为从高级高性能总线(AHB)接口和高级可扩展接口(“AXI”)之一接收总线接口信号。
4.根据权利要求1所述的IC设备,其中,所述能量估计电路还包括被配置为接收所述数据传输信号的第一计数器电路。
5.根据权利要求1所述的IC设备,其中,所述能量估计电路还被配置为:
接收指示由所述组件执行的事件的事件信号;
基于所述事件信号确定执行的事件的第一数量;
基于所述事件的第一数量和第二能量系数确定所述组件的能量消耗的第二度量,其中,所述第二能量系数对应于与所述事件之一相关联的能量的量;
接收指示第一活动时间的持续时间活动信号,在所述第一活动时间期间,所述组件执行第一持续时间活动;
确定与所述第一持续时间活动相关联的所述第一活动时间的第一持续时间;以及
基于所述第一持续时间和第三能量系数确定所述组件的能量消耗的第三度量,其中,所述第三能量系数对应于与所述第一持续时间活动相关联的功率量;
其中,能量估计电路还被配置为存储所述能量消耗的第二度量和所述能量消耗的第三度量。
6.根据权利要求5所述的IC设备,其中,所述能量估计电路还包括被配置为接收所述数据传输信号的第一计数器电路、被配置为接收所述事件信号的第二计数器电路、以及被配置为接收所述持续时间活动信号的第三计数器电路。
7.根据权利要求1所述的IC设备,其中,所述能量估计电路还被配置为接收所述数据传输信号、确定所述能量消耗的第一度量、并且在运行时间操作期间存储所述能量消耗的第一度量。
8.根据权利要求7所述的IC设备,其中,所述IC设备的一个或更多个组件被配置为基于所述能量消耗的第一度量在运行时间操作期间调整操作设置。
9.根据权利要求1所述的IC设备,其中,所述第一能量系数还对应于第一操作条件。
10.一种装置,包括:
设置在集成电路IC设备上的微控制器,所述微控制器包括:
设置在所述微控制器内的组件,所述组件包括总线接口;以及
设置在所述微控制器内的能量估计电路,其中,所述能量估计电路耦合到所述总线接口,并且被配置为接收指示经由所述总线接口的数据传输的数据传输信号、基于所述数据传输信号确定数据传输的第一数量、以及提供指示所述数据传输的第一数量的数据传输计数信号;以及
外部系统,所述外部系统耦合到所述微控制器。
11.根据权利要求10所述的装置,其中,所述外部系统被配置为:
接收所述数据传输计数信号;
基于所述数据传输计数信号和第一能量系数确定所述组件的能量消耗的第一度量,其中,所述第一能量系数对应于与一次数据传输相关联的能量的量;以及
存储所述能量消耗的第一度量。
12.根据权利要求11所述的装置,其中,所述外部系统是在主机系统上运行的调试环境。
13.根据权利要求10所述的装置,其中,所述能量估计电路还被配置为:
基于所述数据传输信号和第一能量系数确定所述组件的能量消耗的第一度量,其中,所述第一能量系数对应于与一次数据传输相关联的能量的量;以及
存储所述能量消耗的第一度量;
其中,所述外部系统被配置为访问所述能量消耗的第一度量。
14.根据权利要求10所述的装置,其中,所述微控制器还包括在所述总线接口和所述能量估计电路之间耦合的总线监测器,其中,所述总线监测器被配置为从所述总线接口接收总线接口信号,并且向所述能量估计电路提供基于所述总线接口信号的总线监测器信号,并且其中,所述数据传输信号包括所述总线监测器信号。
15.根据权利要求11所述的装置,其中,所述能量估计电路还被配置为:
接收指示由所述组件执行的事件的事件信号;
基于所述事件信号确定执行的事件的第一数量;
提供指示所述执行的事件的第一数量的事件计数信号;
接收指示第一活动时间的持续时间活动信号,在所述第一活动时间期间,所述组件执行第一持续时间活动;
基于所述持续时间活动信号确定所述第一活动时间的第一持续时间;以及
提供指示所述第一持续时间的持续时间信号;以及
所述外部系统还被配置为:
接收所述事件计数信号,并基于所述事件计数信号和第二能量系数确定所述组件的能量消耗的第二度量,其中,所述第二能量系数对应于与所述事件之一相关联的能量的量;以及
接收所述持续时间活动信号,并基于所述持续时间活动信号和第三能量系数确定所述组件的能量消耗的第三度量,其中,所述第三能量系数对应于与所述第一持续时间活动相关联的功率量;
所述外部系统还被配置为存储所述能量消耗的第二度量和所述能量消耗的第三度量。
16.一种确定设置在集成电路IC设备内的组件的能量消耗的方法,所述方法包括:
由设置在所述IC设备内的能量估计电路接收指示在所述组件的总线接口处的数据传输的数据传输信号;
基于所述数据传输信号,由所述能量估计电路确定数据传输的第一数量;
基于所述数据传输的第一数量和第一能量系数,由所述能量估计电路确定所述能量消耗,其中,所述第一能量系数对应于由所述组件执行一次数据传输所消耗的能量的量;以及
由所述能量估计电路提供指示所述能量消耗的能量消耗信号。
17.根据权利要求16所述的方法,还包括:
由总线监测器从所述总线接口接收多个数据信号,所述数据信号指示在所述总线接口处的数据传输;
基于所述数据信号,由所述总线监测器提供总线监测器信号;以及
由所述能量估计电路接收所述总线监测器信号;
其中,所述数据传输信号包括所述总线监测器信号。
18.根据权利要求16所述的方法,其中,所述能量估计电路是所述IC设备的组件,并且其中,在运行时间操作期间执行所述接收、确定和提供。
19.根据权利要求18所述的方法,还包括基于所述能量消耗信号在运行时间操作期间调整所述IC设备的操作设置。
20.根据权利要求16所述的方法,其中,所述IC设备耦合到被配置为接收所述能量消耗信号的外部系统。
21.根据权利要求20所述的方法,其中,所述外部系统是在主机系统上运行的调试环境。
CN201780057313.2A 2016-11-16 2017-08-16 微控制器能量分析器 Active CN109716519B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662422739P 2016-11-16 2016-11-16
US62/422,739 2016-11-16
US15/585,890 US11023025B2 (en) 2016-11-16 2017-05-03 Microcontroller energy profiler
US15/585,890 2017-05-03
PCT/US2017/047205 WO2018093431A1 (en) 2016-11-16 2017-08-16 Microcontroller energy profiler

Publications (2)

Publication Number Publication Date
CN109716519A CN109716519A (zh) 2019-05-03
CN109716519B true CN109716519B (zh) 2023-10-10

Family

ID=62106635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780057313.2A Active CN109716519B (zh) 2016-11-16 2017-08-16 微控制器能量分析器

Country Status (4)

Country Link
US (2) US11023025B2 (zh)
CN (1) CN109716519B (zh)
DE (1) DE112017005778T5 (zh)
WO (1) WO2018093431A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11023025B2 (en) * 2016-11-16 2021-06-01 Cypress Semiconductor Corporation Microcontroller energy profiler
US10853204B2 (en) * 2018-10-26 2020-12-01 Dell Products, L.P. System and method to detect and recover from inoperable device management bus
US11895588B2 (en) * 2020-08-05 2024-02-06 Analog Devices, Inc. Timing precision maintenance with reduced power during system sleep

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192188A (zh) * 2006-11-30 2008-06-04 国际商业机器公司 用于处理器性能测量的加权事件计数系统及方法
US20110055836A1 (en) * 2009-08-31 2011-03-03 Imec Method and device for reducing power consumption in application specific instruction set processors
CN102576244A (zh) * 2009-10-07 2012-07-11 思科技术公司 自动亮度控制
US20140215241A1 (en) * 2013-01-31 2014-07-31 Hewlett-Packard Development Company, L.P. Computer power management

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6958706B2 (en) * 1990-07-27 2005-10-25 Hill-Rom Services, Inc. Patient care and communication system
US5761516A (en) * 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus
US6021381A (en) * 1996-06-05 2000-02-01 Sharp Kabushiki Kaisha System for detecting power consumption of integrated circuit
US6367023B2 (en) * 1998-12-23 2002-04-02 Intel Corporation Method and apparatus of measuring current, voltage, or duty cycle of a power supply to manage power consumption in a computer system
EP1182556B1 (en) 2000-08-21 2009-08-19 Texas Instruments France Task based adaptive profiling and debugging
US6667929B1 (en) * 2002-06-14 2003-12-23 International Business Machines Corporation Power governor for dynamic RAM
US20050046400A1 (en) * 2003-05-21 2005-03-03 Efraim Rotem Controlling operation of a voltage supply according to the activity of a multi-core integrated circuit component or of multiple IC components
US20060080076A1 (en) * 2004-10-12 2006-04-13 Nec Laboratories America, Inc. System-level power estimation using heteregeneous power models
US20060265485A1 (en) * 2005-05-17 2006-11-23 Chai Sek M Method and apparatus for controlling data transfer in a processing system
US7430673B2 (en) * 2005-06-30 2008-09-30 Intel Corporation Power management system for computing platform
US8681671B1 (en) * 2006-04-25 2014-03-25 Cisco Technology, Inc. System and method for reducing power used for radio transmission and reception
US8789052B2 (en) * 2007-03-28 2014-07-22 BlackBery Limited System and method for controlling processor usage according to user input
US7992017B2 (en) * 2007-09-11 2011-08-02 Intel Corporation Methods and apparatuses for reducing step loads of processors
JP4973490B2 (ja) * 2007-12-26 2012-07-11 富士通株式会社 消費電力監視プログラム
US8032317B2 (en) * 2008-05-15 2011-10-04 The Nielsen Company (Us), Llc System and methods for metering and analyzing energy consumption of events within a portable device
WO2011074029A1 (ja) * 2009-12-15 2011-06-23 富士通株式会社 集積回路消費電力計算装置,処理方法およびプログラム
US20110145612A1 (en) 2009-12-16 2011-06-16 International Business Machines Corporation Method and System to Determine and Optimize Energy Consumption of Computer Systems
CN102129414B (zh) * 2010-01-15 2013-12-04 华为技术有限公司 一种变频总线适配器、适配方法及系统
US9506963B2 (en) * 2010-04-15 2016-11-29 Yale University Consumption breakdown monitoring through power state sensing
WO2011130604A1 (en) * 2010-04-16 2011-10-20 Massachusetts Institute Of Technology Execution migration
KR101699770B1 (ko) * 2010-09-06 2017-02-13 삼성전자주식회사 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법
US9092219B2 (en) * 2010-11-02 2015-07-28 Advanced Micro Devices, Inc. Method and system of sampling to automatically scale digital power estimates with frequency
US9135213B2 (en) * 2011-01-13 2015-09-15 Xilinx, Inc. Extending a processor system within an integrated circuit and offloading processes to process-specific circuits
WO2013055354A1 (en) * 2011-10-14 2013-04-18 Intel Corporation Speculative system start-up to improve initial end-user interaction responsiveness
US20130318382A1 (en) * 2012-05-23 2013-11-28 Canon Kabushiki Kaisha Power management apparatus, image forming apparatus and power management method
US8683418B2 (en) * 2012-06-18 2014-03-25 International Business Machines Corporation Adaptive workload based optimizations to mitigate current delivery limitations in integrated circuits
KR20140020404A (ko) * 2012-08-08 2014-02-19 삼성전자주식회사 집적 회로의 소비 전력 모델링 방법 및 장치
US9310864B1 (en) 2012-09-19 2016-04-12 Amazon Technologies, Inc. Monitoring and real-time adjustment of power consumption settings
US20140278165A1 (en) * 2013-03-14 2014-09-18 Johnson Controls Technology Company Systems and methods for analyzing energy consumption model data
US9612879B2 (en) * 2013-08-01 2017-04-04 Texas Instruments Incorporated System constraints-aware scheduler for heterogeneous computing architecture
CN103455132A (zh) 2013-08-20 2013-12-18 西安电子科技大学 基于硬件性能计数器的嵌入式系统功耗估算方法
US9542179B2 (en) * 2013-09-06 2017-01-10 Texas Instruments Incorporated System and method for energy aware program development
US10707038B2 (en) * 2013-09-06 2020-07-07 Texas Instruments Incorporated System and method for energy monitoring
US9519522B1 (en) * 2013-09-30 2016-12-13 Veritas Technologies Llc Use of power data in the selection of resources for performance of processes
US20150355942A1 (en) * 2014-06-04 2015-12-10 Texas Instruments Incorporated Energy-efficient real-time task scheduler
US9733978B2 (en) * 2015-08-27 2017-08-15 Qualcomm Incorporated Data management for multiple processing units using data transfer costs
GB2542215B (en) * 2016-01-18 2018-04-11 Imagination Tech Ltd Dynamic power measurement using a formal verification tool
US10101796B2 (en) * 2016-05-27 2018-10-16 Taiwan Semiconductor Manufacturing Company, Ltd. Processor power estimation
US11023025B2 (en) * 2016-11-16 2021-06-01 Cypress Semiconductor Corporation Microcontroller energy profiler

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192188A (zh) * 2006-11-30 2008-06-04 国际商业机器公司 用于处理器性能测量的加权事件计数系统及方法
US20110055836A1 (en) * 2009-08-31 2011-03-03 Imec Method and device for reducing power consumption in application specific instruction set processors
CN102576244A (zh) * 2009-10-07 2012-07-11 思科技术公司 自动亮度控制
US20140215241A1 (en) * 2013-01-31 2014-07-31 Hewlett-Packard Development Company, L.P. Computer power management

Also Published As

Publication number Publication date
WO2018093431A1 (en) 2018-05-24
US20210373634A1 (en) 2021-12-02
US20180136706A1 (en) 2018-05-17
US11023025B2 (en) 2021-06-01
CN109716519A (zh) 2019-05-03
DE112017005778T5 (de) 2019-08-14
US11934245B2 (en) 2024-03-19

Similar Documents

Publication Publication Date Title
US11934245B2 (en) Microcontroller energy profiler
US11105851B2 (en) Combined analog architecture and functionality in a mixed-signal array
CN107092568B (zh) 在低功耗系统中处理数据的数据通信接口
Bedard et al. Powermon: Fine-grained and integrated power monitoring for commodity computer systems
US8547135B1 (en) Self-modulated voltage reference
US9250299B1 (en) Universal industrial analog input interface
KR100454014B1 (ko) 소비 전력 정보의 표시 방법 및 전자 기기
JP2004054932A (ja) ハードウェアベースの使用量計測装置
US9684367B2 (en) Power trace port for tracing states of power domains
JP2004519769A (ja) バス帯域幅消費量プロファイラ
US20140006824A1 (en) Using device idle duration information to optimize energy efficiency
Bertran et al. Application-level power and performance characterization and optimization on IBM Blue Gene/Q systems
KR20150112660A (ko) 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
Miah et al. Internet of Things (IoT) based automatic electrical energy meter billing system
Sayyah et al. Virtual platform-based design space exploration of power-efficient distributed embedded applications
US10578656B2 (en) Method and apparatus for monitoring energy consumption
US20090228736A1 (en) Technique for Promoting Determinism Among Multiple Clock Domains
Gerhorst et al. Energybudgets: Integrating physical energy measurement devices into systems software
US11842226B2 (en) System for generating power profile in low power processor
Sayyah et al. Network-aware design-space exploration of a power-efficient embedded application
Amirtharaj Energy measurement and profiling of Internet of Things devices
Gerhorst SOSP: U: EnergyTimers—Integrating Physical Energy Measurement Devices into Operating System Kernels
Agarwal et al. Designing for low power and estimating battery life for BLE applications
CN112000035A (zh) 一种多通道同步低频振动数据采集方法
CN111966012A (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
GR01 Patent grant
GR01 Patent grant