功耗时间同步的制作方法

文档序号:15307008发布日期:2018-08-31 21:09阅读:138来源:国知局

各个实施方式涉及一种方法以及对应的实体,该方法包括:在创建功率日志时将软件代码的执行和装置的功耗引用到全局定时基准。



背景技术:

能耗/功耗是产品设计的关键部分。具体地,在物联网(iot)领域中,预计越来越多的所连接的装置(终端)将变成由电池供电。例如,预计在几年内,全球将有多达500亿台装置连接至互联网。此处,很大一部分将具有电池能量供应。

对于由电池供电的装置来说,降低功耗至关重要,以便减少用户的维护工作,并且促进充电周期延长。而且,对于连接至非电池供电的市电电源(mainssupply)的装置,需要降低功耗。具体地,在环保和降低运营成本方面,有限的功耗通常是有利的。

在装置执行软件代码的情况下,有时很难将功耗与软件代码的某些码元联系起来,以找到在产品开发期间功耗增加的原因。通常,需要昂贵的测量设备以及解决具体问题的详细经验和专业知识来进行定制的优化。



技术实现要素:

因此,需要智能并且高效的解决方案来支持和指导开发者改进对软件代码的设计,从而使功耗降低。

该需求由独立权利要求的特征实现。从属权利要求限定实施方式。

根据各个实施方式,提供了一种方法。该方法包括以下步骤:接收全局定时基准的指示。该方法还包括以下步骤:接收装置的时间分辨功耗的指示。装置执行软件代码。该方法还包括以下步骤:在创建功率日志时,将软件代码的执行和功耗引用到全局定时基准。

根据各个实施方式,提供了一种实体。该实体包括:存储器。该存储器被配置为存储可由至少一个处理器执行的程序代码。该至少一个处理器与存储器联接,并且被配置为在执行程序代码时执行以下步骤:接收全局定时基准的指示;接收执行软件代码的装置的时间分辨功耗的指示;以及在创建功率日志时,将软件代码的执行和功耗引用到全局定时基准。

要明白,上面提到的特征和下面将要解释的特征不仅可以按照指示的相应组合使用,而且在不脱离本发明的范围的情况下,可以按照其它组合使用或者单独使用。

附图说明

图1是对执行软件代码并且在执行软件代码时消耗功率的装置的示意性说明,其中,图1进一步示意性地例示了提供全局定时基准的时间服务器。

图2示意性地例示了在创建功率日志时将软件代码的执行和功耗引用到全局定时基准。

图3示意性地例示了软件代码的执行的事件日志,其中,该事件日志包括通过软件代码实施的应用的应用事件,以及执行软件代码的装置的处理器的机器事件。

图4更详细地示意性地例示了事件日志的应用事件。

图5示意性地例示了分别包括软件代码的执行与功耗之间的引用、以及全局定时基准的功率日志。

图6示意性地例示了执行软件代码的第一装置和执行软件代码的第二装置,其中,第一装置是经由无线电链路与蜂窝网络的接入点连接的终端,其中,第二装置是接入点。

图7示意性地例示了包括存储器和至少一个处理器的实体,其中,该至少一个处理器被配置为在执行存储在存储器中的程序代码时执行创建功率日志的步骤。

图8是根据各个实施方式的方法的流程图。

具体实施方式

在下文中,将参照附图详细来描述本发明的实施方式。要明白,下面对实施方式的描述不是限制性的。本发明的范围不旨在由下文所描述的实施方式或者仅被视为说明性的附图限制。

附图应该被视为示意性的表示,并且附图中例示的元件不一定按比例示出。相反,各个元件被表示为使得其功能和通用目的对于本领域的技术人员而言变得显而易见。还可以通过间接连接或者联接来实施在附图中示出的或者本文描述的功能块、装置、组件、或者其它物理或者功能单元之间的任何连接或者联接。还可以通过无线连接来建立组件之间的联接。功能块可以实施在硬件、固件、软件、或者其组合中。

在下文中,参照附图来说明各个示例实施方式。具体地,在下文中,解释了创建功率日志(powerlog)的技术。功率日志引用软件代码的执行和执行软件代码的装置的功耗以及全局定时基准。

在一些示例中,可以将功率日志写入存储器,例如,非易失性存储器。在一些示例中,可以直接或者间接地将功率日志输出给用户,从而促进调试操作。

全局定时基准可以是与装置无关的。即,可能的是,全局定时基准独立于软件代码的执行。例如,可以从不同于装置的服务器接收全局定时基准。例如,可以根据网络时间协议或者精确时间协议来接收全局定时基准。全局定时基准可以按照人类可理解的格式,即,作为实时时钟来指定当前时间。

通过使用全局定时基准,提供了一种灵活的解决方案,该解决方案使得能够支持为各种类型和种类的装置创建功率日志。可以将这些功率日志呈现给用户。例如,如果与使用可以依赖于所使用的装置的本地定时基准的实施方式相比较,则可以促进对包括异构系统在内的各种系统的支持,这些异构系统包括不同数量的中央处理单元(cpu)内核等。

针对图1,例示了执行软件代码的装置110和提供全局定时基准133的指示的网络服务器120的多个方面。装置110包括处理器111,例如,单核cpu或者多核cpu。处理器111与存储器112(例如,非易失性存储器)联接。存储器112可以存储可以由处理器111执行的软件代码。例如,取决于处理器111的架构,软件代码可以是多核和/或多线程软件代码。

例如,执行软件代码可以使处理器111执行一种或者多种应用。这些应用可以,例如,经由装置110的人机接口(hmi)(图1中未示出)来向用户提供服务。应用可以包括控制装置110的硬件外围设备,例如,包含从包括以下的组中选择的元件:hmi、用于在无线电链路上进行通信的无线收发器、数据存储装置等。例如,hmi可以包括从包括以下的组中选择的元件:发光二极管(led)、语音接口、显示器、触敏显示器、鼠标、轨迹球、键盘等。应用还可以包括执行数据操作和/或计算。如上面概述的各种任务可以由应用在一段时间内按顺序地和/或并行地执行。这会使装置110的功耗可随时间变化。

随着由通过软件代码实施的应用执行的任务的数量和类型的改变,装置110的功耗会在一段时间内发生改变。装置110包括电源113,该电源113例如借助于ac或者dc电流来接收电力131。例如,电源113可以接收来自电池或者包括例如变压器的市电电源(图1中都未示出)的电流131。电流可以指示装置110的功耗,例如,结合工作电压。

能够接收装置110的时间分辨功耗131的相应指示。例如,市电电源或者电池可以经由相应控制接口来提供指示。在其它示例中,可替代地或者此外,可以采用利用装置110实施的片上诊断。在又一些示例中,可替代地或者此外,可以在向电源113进行馈送的信号路径内设置相应电流计或者电压计。这些指示可以包括:针对某些时间点明确地或者隐含地指定功耗的时间样本;可以通过装置或者测量设备的本地定时基准中的时间戳和/或已知的采样率,来识别时间点。功耗131的指示的采样率可以是固定的或者可以在一段时间内改变。

装置110还包括控制接口114。该控制接口114被配置为输出软件代码的执行的事件日志。事件日志可以在执行软件代码时,对由处理器111执行的某些事件或者任务进行高亮处理。同样,事件日志132可以指示软件代码的执行。事件日志中的事件可以与本地定时基准的时间戳相关联;可以通过用本地定时基准的时间戳来标记事件和/或通过使用通信协议来提供进行了时间校准的事件日志,来实现这种关联。例如,可以基于,例如,处理器111的cpu时钟频率,来从cpu时钟周期导出时间戳。控制接口114可以根据不同的通信协议(例如,uart或者tcp/ip)来进行操作。

现在参照提供全局定时基准133的指示的网络服务器120:该网络服务器120包括生成全局定时基准的时钟121。例如,时钟121可以是网络服务器120的本地时钟,或者可以与标准化基准时钟同步,例如,基于原子钟进行操作。例如,由时钟121提供的全局定时基准可以是实时时钟;该实时时钟可以按照人类可理解的单位来计时。

经由相应接口122,网络服务器120被配置为输出全局定时基准133的指示。该全局定时基准133的指示可以在不同示例中使用不同的格式。例如,在一些示例中,全局定时基准133的指示采用互联网时间的格式,即,“小时:分钟:秒:毫秒”,其中,每个字段具有例如两位数的精度。接口122可以根据不同的通信协议(例如,uart或者tcp/ip)来进行操作。

通过图1,显而易见的是:由网络服务器120提供的全局定时基准133可以独立于装置110,具体地,独立于处理器111执行软件代码。

图2例示了在创建功率日志500时将软件代码的执行和功耗引用到全局定时基准133的多个方面。如通过图2示意性地例示的,将时间分辨功耗133的指示、事件日志132、和全局定时基准133的指示全部馈送到实施所述引用的同步功能中。通过同步功能输出功率日志500。

然后可以存储功率日志500或者将功率日志500输出给用户。同样,在一些示例中,同步功能可以是渲染呈现给用户的功率日志500的输出视图的一部分。通常,同步功能可以被实施为由处理器执行的软件代码,或者可以至少部分地实现在硬件中。

如通过图2示意性地例示的同步功能可以执行不同的任务。例如,可能的是,同步功能利用全局定时基准来对与时间分辨功耗131的指示相关联和/或与事件日志132相关联的本地定时基准(图2中未示出)进行映射。同样,可能的是,所述将软件代码的执行和功耗引用到全局定时基准133,可以基于装置110的本地定时基准。

可替代地或者此外,同步功能可以对时间分辨功耗131的指示和/或事件日志132的条目可用的采样点执行内插,以促进对全局定时基准133的所述引用。

可替代地或者此外,同步功能可以实施一次或者多次过滤,用于从时间分辨功耗131和/或事件日志132的指示中过滤掉不需要的数据。

如上所述,在一些示例中,可能的是,事件日志中的各个事件与装置110的本地定时基准相关联。此处,解释将事件日志引用到全局定时基准的细节。所述将软件代码的执行引用到全局定时基准133可以包括:将本地定时基准映射至全局定时基准133。对于将本地定时基准映射至全局定时基准133的这些技术,可设想不同的技术。

映射可以包括:手动地使零时间戳与全局定时基准133的相应时间戳对准。同样,所述引用可以基于零时间戳。该零时间戳可以标记执行所述软件代码或者创建事件日志的开始。可替代地或者此外,零时间戳可以涉及执行在事件日志中可能容易被识别到的特征事件的时间点。

所述引用可以进一步基于相对于零时间戳的增量时间间隔。例如,可以依靠事件日志提供事件的固定预定义时间间隔,来推断针对零时间戳的时间增量(deltatime)。还可以通过依赖与事件日志中的事件相关联的时间戳的相对时间差,来推断针对零时间戳的增量时间,而不理会在装置110的本地定时基准中可能限定了时间戳的事实。

在其它场景中,还可以经由实施增量传输时间间隔序列的通信协议来接收事件日志132、132-1、132-2。具体地,传输时间间隔可以是固定长度的。示例可以是:通用异步收发器(uart)协议。这种uart协议可以,例如,根据rs-232来实施串行通信接口。然后,在将基准时间戳(诸如,零时间戳)映射至全局定时基准的情况下,可以通过将增量传输时间间隔相对于基准时间戳的固定长度视为增量时间来容易地推断出其它事件的时间戳。

图3更详细地例示了事件日志132、132-1、133-2的多个方面。具体地,如在图3中例示的,事件日志132可以包括不同级别的抽象和/或粒度。

例如,事件日志132可以包括高级别日志132-1,该高级别日志132-1包括通过软件代码实施的应用301的应用事件。应用事件可以是:影响可被装置110的用户感知的装置110行为的事件。

可替代地或者此外,事件日志132可以包括低级别日志132-2,该低级别日志132-2包括执行软件代码的装置110的机器层302的机器事件。例如,可以通过处理器111来实施机器层302。例如,机器层302可以实施低级别机器事件,诸如,布尔运算、数值运算、高速缓存读取/写入操作等。例如,在一些示例中,可以根据电气和电子工程师协会(ieee)标准1149.1来在联合测试行动组(jtag:jointtestactiongroup)中实施低级别事件日志132-2。

因此,如通过上文将了解到的,不同的日志132-1、132-2可以实施不同级别的抽象;即,当基于jtag的低级别事件日志132-2指示低级别的机器代码发生了什么情况时,可能不容易从用户的角度推断发生低级别事件日志132-2中的相应事件的原因;另一方面,这种信息可以容易地从高级别的基于应用的事件日志132-1推导出来。

图4示意性地例示了高级别事件日志4,该高级别日志4包括通过软件代码实施的应用301的应用事件401至404。如通过图4例示的,对应的事件是较低级别机器事件的抽象,并且涉及例如:上电401、启动社交网络应用402、打开通信端口403、以及打开led404。这些事件会影响用户体验。

图5例示了功率日志500的多个方面。图5是功率日志500的图形表示。在其它示例中,代替提供功率日志500的图形表示,可以提供功率日志500的文本表示或者混合文本/图形表示。可以将功率日志500输出给用户,或者可以将功率日志500作为文件存储在存储器中。

功率日志500可以包括功耗131与多个装置的软件代码的执行之间的引用。在图5的示例中,图5的功率日志500将功耗131例示为第一装置110a(图5中的实线)和第二装置110b(图5中的虚线)的时间的函数。

功率日志500中的事件401至404与装置110a、110b两者相关联。同样,在创建功率日志500时,将功耗131和由装置110a、110b中的每一个装置进行的软件代码的执行的事件日志132、132-1、132-2引用到全局定时基准133;在图5的示例中,所述引用基于与由装置110a、110b中的每一个装置进行的软件代码的执行的事件日志132、132-1、132-2的开始对应的零时间戳510。然而,在其它示例中,可以使用如上面公开的所述引用的其它技术。

如通过图5可以看出的,功率日志500指示功耗132在一段时间内变化。具体地,响应于事件401至404,观察功耗131的特征变化。可以使用如由功率日志500指示的功耗131的这种改变来定制软件代码,以实现通过软件代码实施的应用的整体降低的功耗。

如通过图5可以看出,第一装置110a和第二装置110b的功耗131是同步的。这可能是因为由第一装置110a和第二装置110b执行的软件代码实施两个时间一致的应用。例如,由装置110a、110b执行的应用可以彼此实施通信。

图6例示了装置110a、110b的多个方面。在图6的示例中,第一装置110a是经由无线电链路附接至无线网络110c的接入点110b的终端。第二装置是接入点110b。在又一些示例中,还可以为无线网络110c的(核心)的一个或者多个节点创建功率日志500。

如通过图5和图6可以看出,可以通过将第一装置110a的软件代码的执行、第一装置110a的功耗131、第二装置110b的软件代码的执行、第二装置110b的功耗131全部引用到全局定时基准133,来创建功率日志500。通过全局定时基准133来促进包括有关多个装置110、110a、110b、110c的信息的功率日志500的这种创建。具体地,如果与使用装置110、110a、110b、110c中的每一个装置的本地定时基准的场景相比较,可以独立于影响本地定时基准的低级别机器事件的特定属性来实施所述引用。在使用全局定时基准133的情况下,确保多个装置110、110a、110b、110c之间的互操作性。本地定时基准可以是程序计数器特定的,并且例如,可能受对不同的机器执行多核和/或多线程软件代码的影响。当依靠全局定时基准133时,可以避免由这种装置特定属性引起的时间差。进一步地,通过依靠全局定时基准133,可以减少用于使所涉及的装置110、110a、110b、110c的本地定时基准同步所需的控制信令;从而可以降低由用于进行同步的这种控制信令引起的时间分辨功耗131的不准确性。

图7例示了针对被配置为实施用于如本文解释的那样创建功率日志500的技术的实体710的多个方面。实体710包括处理器711和存储器712。实体710可以还包括人机接口(hmi)(图7中未示出);经由hmi,实体710可以将功率日志500输出给用户。例如,hmi可以包括从包括以下的组中选择的元件:语音接口;图形接口;显示器;鼠标;键盘;轨迹球;触摸屏。

存储器712被配置为存储可以由处理器711执行的程序代码。处理器711与存储器712联接,并且被配置为执行如本文参照创建功率日志500说明的技术。

例如,当处理器711执行存储在存储器712中的程序代码时,会引起执行如通过图8的流程图所例示的方法。

首先,在1001中,例如,经由网络时间协议或者精确时间协议,来接收全局定时基准133的指示。全局定时基准133可以是实时时钟,即,以人类可理解的格式来指定当前时间。全局定时基准133可以是与装置无关的,即,独立于装置110、110a、110b、110c的时钟周期。

在一些示例中,该方法可以还包括以下步骤:确定全局定时基准133的指示。此处,例如,可能会涉及到相应的时间网络服务器。

接下来,在1002中,接收时间分辨功耗131的指示。在1002中,可以接收每个记录的装置110、110a、110b、110c的功耗的指示。

在一些示例中,该方法可以还包括以下步骤:确定时间分辨消耗131的指示。此处,例如,可能会涉及到相应的测量设备。

可以在1002中经由实施增量传输时间间隔序列的通信协议来接收指示;例如,可以按照对应的固定时间间隔来对功耗131进行采样。然后,可以基于零时间戳510和相对于零时间戳510与传输时间间隔对应的增量时间间隔,来使功耗131与全局定时基准133同步。在其它示例中,功耗131的指示可能已经包括时间戳,例如,在本地定时基准中。此处,可以使本地定时基准与全局定时基准同步,该全局定时基准可以再次基于零时间戳510。

在1003中,创建功率日志500。为此,将软件代码的执行引用到全局定时基准133;进一步地,如上面解释的那样,将功耗131引用到全局定时基准133。

可以在不同的示例中用不同的属性来表征软件代码的执行。例如,在一些示例中,可以用事件日志132、132-1、132-2来表征软件代码的执行,例如,包括通过软件代码实施的应用301的应用事件401至404,和/或包括执行软件代码的装置110、110a、110b、110c的至少一个处理器111的机器事件。在又一些示例中,可以用软件代码的有效载荷数据输出、通过软件代码输出的通信消息、通过软件代码执行的读取/写入操作、通过软件代码控制的装置110、110a、110b、110c的外围设备的操作状态等,来表征软件代码的执行。可以在外部对这些属性进行采样或者测试,使得至少在一些示例中,不需要软件代码本身来提供用于提供事件日志的调试功能。在一些示例中,该方法可以还包括以下步骤:确定事件日志。

该方法可以还包括以下步骤:将功率日志输出给用户(图8中未示出)。在将功率日志输出给用户的情况下,所述在1003中创建功率日志的步骤可以是渲染输出的一部分。例如,可以向用户输出如参照图5公开的图形视图。可替代地或者此外,可以输出功率日志的文本表示。

例如,针对用户的所述输出可以包括与用户的交互。例如,如果满足特定预定义条件,用户或许能够设置停止执行软件代码的断点。例如,断点可以与超过特定阈值功耗的功耗131、特定应用和/或机器事件401至404的执行、或者其逻辑组合对应。断点可以包括可以通过逻辑操作组合的多个触发,例如,电压低于特定预定义阈值并且电流高于特定预定义阈值等。借助于断点,可以阐明功耗增加的原因。通过提供如上所述的断点,可以通过实施软件代码的步进来实施功耗调试,以识别导致相对较高的功耗131的软件代码块。在这点上,可以实施已知的调试技术。

针对用户的所述输出还可以包括过滤操作;例如,功率日志500可以是用于某些特定类型的事件401至404的过滤器,功耗131在预定义范围内或者等于预定义值,从而将向用户输出的信息局限于某些装置110、110a、110b、110c等。

通过如上面公开的输出功率日志500的技术,可以基于事件401至404的同一流程来呈现功率日志500的多个视图。具体地,这多个视图可以集中于创建了功率日志的不同装置110、110a、110b、110c。

总而言之,已经说明了上述创建功率日志的技术。功率日志是针对由一个或者多个装置进行的软件代码的执行引起的功耗所创建的。可以基于对全局定时基准的使用,来将多个装置的功耗组合成单个功率日志。因此,促进了由不同装置进行的软件代码的执行之间的对准,这使得能够同时从不同角度反映某一事件流程。具体地,在借助于功率日志记录了由相互关联的装置(诸如,接收器/发射机)进行的软件代码的执行的情况下,实现了降低总功耗的有力手段。

为了将功耗和软件代码的执行引用到全局定时基准,可能需要使装置特定的本地定时基准与全局定时基准同步。可以基于对与零时间戳相关联的特征事件的识别和/或基于经由hmi进行的手动调谐,来执行可以与各种装置的功耗和/或软件代码的执行相关联的本地定时基准的同步。

基于对全局定时基准的使用,将事件日志输出给用户可以实现使与第一装置相关联的事件和与第二装置相关联的事件交联。可以基于一个或者多个预定义标准来实施断点,可以基于逻辑操作来组合所述一个或者多个预定义标准。

虽然已经针对某些优选实施方式解释了本发明,但是范围仅受随附权利要求限制。

例如,虽然已经引用了经由无线电链路和对应的接入点附接至无线网络的终端,但是,在其它示例中,可以为不同种类和类型的装置创建功率日志。例如,在一些示例中,可以根据第三代合作伙伴计划(3gpp)长期演进(lte)协议来实施终端/接入点装置,并且因此,可以实施用户设备(ue)演进型节点b(enb)系统。在其它示例中,终端/接入点可以根据ieee802.11x协议进行操作并且可以实施站(sta)和接入点(ap)无线局域网(wlan)系统。其它技术包括蓝牙、家庭网络中的线程/无线个域网技术以及连接互联网的装置,诸如,服务器和客户端。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1