功率管理系统和方法
1.关于联邦资助的研究或开发的声明
2.本发明是根据由darpa授予的第hr0011-17 9-0025号协议在政府支持下进行的。政府拥有本发明的特定权利。
技术领域
3.本公开整体涉及功率管理系统和方法。
背景技术:4.本节旨在提供背景信息,以便于更好地理解本文所述的各种技术。正如本节标题所暗示,这是对相关技术的讨论。这种技术的相关性并不意味着它是现有技术。相关技术可以是也可以不是现有技术。因此,应当理解,本节中的陈述应按此意义来理解,并且不作为对现有技术的认可。
5.在由操作系统执行管理的移动/桌面应用处理器中,已使用动态电压频率缩放(dvfs)来优化动态功率消耗。在操作中,dvfs是一种通过利用cpu的离散频率和电压设置动态调整计算机处理单元(cpu)的电压和频率来降低功率消耗的技术。然而,尽管小型电池操作会带来能量限制,但这种dvfs技术尚未广泛应用于嵌入式微控制器单元(mcu)。
6.相反,针对mcu实施的一种功率管理方法包括功率门控(具有或不具有本地状态保留)。当前,在mcu处于待机模式时,已使用功率门控来降低泄漏功率。此外,对于cortex-m系统,进入此类低泄漏模式可能需要通过等待中断(wfi)指令来发起。
7.然而,由于mcu的任务是进行强度不断增加的操作或“始终在线”的活动(例如,语音检测),因此采用高效的活动功率管理非常重要。因此,本领域需要更优化的活动功率管理。此外,将dvfs用于mcu功率管理的一个特殊挑战是确定何时运行dvfs性能曲线上的每个频率。虽然这种考虑可由软件开发人员独立执行,但尚未开发出全面的基于硬件的解决方案。
附图说明
8.将参考如附图所示的本发明的实施方案,以举例的方式进一步描述本技术。然而,应当理解,附图仅示出了本文所述的各种具体实施,并且不旨在限制本文所述的各种技术、方法、系统或装置的范围。
9.图1示出了根据本文所述的各种技术的具体实施的图形表示。
10.图2示出了根据本文所述的各种技术的具体实施的系统的框图。
11.图3示出了根据本文所述的各种技术的具体实施的流程图。
12.图4a至图4b示出了根据本文所述的各种技术的具体实施的示例图。
13.图5a至图5b示出了根据本文所述的各种技术的具体实施的示例图。
14.图6a至图6b示出了根据本文所述的各种技术的具体实施的示例图。
15.图7是根据本文所述的各种技术的具体实施的方法的特定例示性方面。
16.在以下详细描述中参考了附图,附图形成描述的一部分,在整个描述中,类似的数字可表示类似的部件,这些部件是对应的和/或相似的。应当理解,附图未必按比例绘制,诸如为了简化和/或清楚地示出。例如,一些方面的尺寸相对于其他方面可能有所放大。此外,应当理解,可利用其他实施方案。此外,在不脱离要求保护的主题的情况下,可进行结构和/或其他改变。本说明书通篇提及的“要求保护的主题”是指旨在由一项或多项权利要求或其任何部分所涵盖的主题,并且不一定旨在指完整的权利要求集、权利要求集的特定组合(例如,方法权利要求、设备权利要求等)或特定权利要求。还应当指出的是,方向和/或参考(例如,诸如上、下、顶部、底部等)可用于促进对附图的讨论,并且不旨在限制要求保护的主题的应用。因此,以下详细说明不应理解为限制要求保护的主题和/或等同物。
具体实施方式
17.根据本公开的一个具体实施,公开了一种功率管理方法。该方法包括:在活动模式操作中由中央处理单元计算软件工作负载的软件指令,该软件工作负载对应于性能模式的性能曲线上的第一操作点;从该活动模式操作的实例转变为该cpu的待机模式操作的实例,并由时间跟踪元件记录多个待机进入数据点中的每个待机进入数据点;从该待机模式操作的该实例转变为该cpu的该活动模式操作的该实例,并由该时间跟踪元件记录多个待机退出数据点中的每个待机退出数据点;以及基于该记录的待机进入数据点和该记录的待机退出数据点确定该性能模式的该性能曲线上的第二操作点。
18.根据本公开的另一具体实施,公开了一种系统。该系统包括:中央处理器单元(cpu);功率管理单元(pmu),该pmu耦合到该cpu;和时间跟踪元件,该时间跟踪元件耦合到该cpu和该pmu。该pmu可被配置为控制该时间跟踪元件以记录软件工作负载的一个或多个码相的待机进入数据点和待机退出数据点。此外,该cpu可被配置为基于该记录的待机进入数据点和待机退出数据点确定性能曲线上的操作点。
19.根据本公开的另一具体实施,公开了一种方法。该方法包括:由功率管理单元(pmu)的微控制器设备在功率模式改变时对软件工作负载的待机时间值进行采样;以及基于采样的待机值确定对应于性能曲线上的特定操作点的性能模式。
20.根据本公开的一个具体实施,公开了一种功率管理方法。该方法包括:在活动模式操作中由中央处理单元计算软件工作负载的软件指令,该软件工作负载对应于性能模式的性能曲线上的第一操作点;从该活动模式操作的实例转变为该cpu的待机模式操作的实例;从该待机模式操作的该实例转变为该cpu的该活动模式操作的该实例;以及基于多个待机进入数据点的至少一部分和多个待机退出数据点的至少一部分来确定该性能模式的该性能曲线上的第二操作点。此外,该多个待机进入数据点可对应于从该活动模式操作到该待机模式操作的该转变,并且该多个待机退出数据点可对应于从该待机模式操作到该活动模式操作的该转变。
21.根据本公开的另一具体实施,公开了一种计算机系统。该计算机系统包括计算机处理器单元(cpu)和该cpu可访问的存储器。该存储器可存储指令,该指令可由该cpu执行以执行包括以下各项的操作:提供时间跟踪元件以在功率模式改变时对软件工作负载的待机时间值进行采样;将采样的待机时间值存储到可编程存储器中;以及基于存储的待机时间值修改后续待机时间值。
22.下面参考附图描述本公开的特定具体实施。在描述中,共同特征在整个附图中由共同的附图标记表示。
23.在示例性方面,本公开的系统和方法提供运行时功率管理以优化实时功率性能。有利地,在某些具体实施中,基于待机跟踪特征,这些系统和方法可自动“调整”(即,更新、偏移)特定性能模式(例如,dvfs模式配置)的操作点。此外,在调整操作点时,如本文所述的系统和方法可针对单相或多相软件工作负载自动执行“优化”性能模式。因此,例如,在“学习”(通过数据点聚合)活动功率操作可在较低功率电平下运行较长时间间隔时,系统和计算机实现的方法将被引导这样做。作为另一个优点,这些系统和方法可实现用于嵌入式微控制器(例如,“始终在线”功率控制器)以及其他另选的操作系统管理的计算机系统。
24.有利地,无论是通过计算机实现的软件(在中央处理单元(cpu)中)还是通过硬件(在功率管理单元(pmu)中),当嵌入式微控制器(或其他受管理的计算机系统)进入睡眠模式或从睡眠模式“唤醒”时,本公开的系统(以及根据本发明的方法)可实时监测(即,检查)和记录数据值。在这样做时,根据一个示例,在确定的时间段内,本发明的系统将获得“信心”,因为活动功率尚未偏离当前模式(将具有足够的剩余待机时间),因此可确定特定软件工作负载可在较低电压电平下以较慢模式运行。
25.在某些具体实施中,如本文所述,dvfs作为一种性能模式,可用于利用速度与功率消耗之间的关系作为功率供应电压的函数。例如,cmos逻辑的速度可与功率供应电压成比例,并且cmos逻辑的功率消耗可与功率供应电压的平方(v2)成比例。因此,通过将功率供应电压降低到可提供所需性能的示例性最低电平,可显著降低功率消耗。
26.参考图1,示出了示例性功率管理性能曲线图/标测图100。如所描绘的,功率管理性能标测图100(即,曲线图100)包括y轴110上的频率范围(khz)(约10至100,000),作为x轴120上的电压范围(v)(约0.3至1.1)的函数。在一个示例中,如图1所示,一系列预期操作点132(即,多个操作点)在性能标测图100上形成性能曲线130(即,性能谱)。在各种具体实施中,性能曲线130可表示计算机系统(例如,嵌入式微控制器)的特定功率消耗模式的不同性能点。在第一示例中,参考图1,性能曲线130可对应于动态电压和频率缩放(dvfs)模式(例如,第一性能模式)。在第二示例(未示出)中,性能曲线可对应于iso电压下通过体偏置进行频率缩放模式(例如,第二性能模式)。在第二示例中,功率管理性能标测图100将包括y轴上的频率范围(khz),其作为x轴上的体偏置范围的函数。因此,以这种方式,对于各种性能模式,操作频率的降低将提示确定新的性能操作点。因此,在某些方案中,这些系统和方法还可用于决定何时运行特定性能曲线(例如,dvfs性能曲线)上的每个特定频率。
27.参考图2,示出了示例性系统200。系统200(例如,计算机系统)包含中央处理器单元(例如,cpu、cpu子系统)210、功率管理单元(pmu)220和时间跟踪元件230(例如,待机跟踪设备,诸如实时时钟(rtc))。cpu 210、pmu 220和时间跟踪元件230可彼此电耦合。在某些具体实施中,pmu 220可被配置为控制时间跟踪元件230,以记录软件工作负载的一个或多个码相的待机进入数据点和待机退出数据点(即,统计值、量度)。此外,cpu 220可被配置为基于记录的待机进入数据点和待机退出数据点来确定特定性能模式的操作点(例如,动态电压频率缩放(dvfs)曲线130的操作点132)。
28.在一个具体实施中,码相可包括软件工作负载的特定占空比(例如,活动模式的一个实例(即,活动功率模式、活动相)和待机模式操作的一个实例(即,待机功率模式、待机
210实际上已转变为待机模式的指令(即,“cpu正在睡眠”)时,pmu 220可发起时间跟踪元件230(例如,rtc)的“采样”。在这样做时,pmu 220可记录待机进入数据点和待机退出数据点中的每一者(即,数据量度、数据统计值)(例如,传感器数据读数的“抓取”)。在某些具体实施中,待机进入数据点和待机退出数据点可存储和聚合在系统200的cpu 210的可编程存储器(例如,非易失性存储器(nvm)或保留sram)中。参考图6进一步描述“采样”操作。在步骤340处,pmu 210可被配置为将cpu 210排序为待机模式操作。在某些具体实施中,cpu 210的排序可考虑特定待机模式操作间隔的确定的长度(例如,以ms为单位)和确定的活动功率(例如,以mhz为单位)和活动模式操作间隔的长度(例如,以ms为单位)。在步骤350处,在时间跟踪元件230(例如,rtc)发出警报时,pmu 220将唤醒cpu 210,再次对时间跟踪元件230(例如,rtc)进行采样,并更新待机进入数据点和待机退出数据点(即,待机统计值)。接下来,在步骤360处,pmu 2020将在“学习”(如下段所述)的同时提供更新的操作点(例如,“最高”dvfs操作点)(即,确定“第二”操作点),并将设置最佳dvfs模式(即,基于第二操作点执行性能模式)。在步骤360之后,过程300可继续回到步骤310并再次开始该过程。
38.在一些具体实施中,第二操作点可通过以下一个或多个步骤(在下一段中)来确定:1)将活动性能(即,活动功率)降低到可接受的服务质量的最低水平,该最低水平不会延迟下一个“唤醒”事件(即,转变为活动相);或另选地,2)增加活动性能,使得可实现最佳性能。因此,第二操作点可对应于相对第一操作点的增加或减少(参考性能操作标测图(例如,标测图100)的性能模式曲线(例如,性能模式曲线130)),由此增加(相对第一操作点)将对应于活动相操作的延长(即,活动模式操作),而减小(相对第一操作点)将对应于活动相操作的缩短。
39.这些步骤可包括:1)评估记录的待机进入数据点和记录的待机退出数据点(基于待机周期性和待机规律性);2)确定成本(即,改变dvfs操作点的“性能或能量开销”(例如,参考图6a至图6b));3)功率供应延迟(即,直流到直流转换器(dc-dc转换器)(例如,集成电压调节器(ivr)延迟);4)确定软件工作负载的时间间隔(即,任务间隔的“大小”);和/或5)确定从活动模式操作到待机模式操作的转变的时间间隔,反之亦然。
40.在一个具体实施中,评估记录的待机进入数据点和记录的待机退出数据点还可包括计算待机模式操作的占空比和最小时间间隔,其中占空比对应于软件工作负载的加权活动时间间隔和加权待机时间间隔的商。
41.参考图4a至图4b,示出了在根据本发明的方面的活动功率管理之前(图4a中的400)和之后(图4b中的450)的一个或多个码相410的一个示例图。如图所示,可针对特定感测示例,描绘某一时间段(即,毫秒(ms))上的功率模式(例如,活动模式412或待机模式操作414)(即,软件工作负载的软件指令的执行)。如图所示,示例性码相410可表示以固定间隔从活动模式操作412的实例转变为待机模式操作414的实例(即,待机相)(例如,固定低功率操作)的单相(例如,软件工作负载)的重复性单一任务。
42.如图4a所示,在活动功率管理过程(例如,过程300、700,参考图2、图3和图7)之前,在一个示例中,活动模式操作412(即,活动相)中的每个活动模式操作均可在40mhz下运行0.1ms的持续时间。在图4b中,在活动功率管理过程400(例如,参考图2、图3和图7)之后,活动模式操作412将被优化(例如,基于待机数据点聚合调整/更新的操作点),使得每个活动相412均可被“拉伸”到相应的待机相414(即,待机模式操作)。因此,如图4b所示,在优化时,
在特定示例中,活动模式操作412可在4mhz下运行较长持续时间。因此,有利地,通过监测特定重复性感测任务的活动时间和待机时间(例如,根据本文所述的示例性过程300、700记录和聚合(存储)待机数据点,包括诸如以下各项的步骤:以固定间隔“唤醒”;“抓取”传感器数据读数;执行健全性检查;以及存储/聚合传感器数据读数),可实现将时钟操作速度降低近90%并将活动能量减少约75%的机会。
43.有利地,通过计算机实现的软件(在中央处理单元(cpu)中)或通过硬件(在功率管理单元(pmu)中),当嵌入式微控制器(或其他受管理的计算机系统)进入睡眠模式或从睡眠模式“唤醒”时,本公开的系统(以及根据本发明的方法)可实时记录(即,采样)和聚合数据值。在这样做时,在确定的时间段内(例如,一小时、一天),本发明的系统将获得“信心”,因为活动功率尚未偏离当前模式(将具有足够的剩余待机时间),因此软件工作负载可在较低电压电平下以较慢模式运行。
44.参考图5a至图5b,示出了在根据本发明的方面的活动功率管理之前(图5a中的500)和之后(图5b中的550)的两个或更多个不同码相510、511的一个示例。如图所示,可针对特定感测示例,描绘某一时间段(即,毫秒(ms))上的功率模式(例如,活动模式操作512、513或待机模式操作514、515)(即,两个或更多个软件工作负载的软件指令的执行)。示例性码相510、511可表示以不同间隔从活动模式操作512、513转变为待机模式操作514、515(例如,低功率操作)的多个相(即,多相)(例如,两个或更多个软件工作负载)的重复性单一任务。
45.如图5a所示,在活动功率管理过程(例如,过程300、700,参考图2、图3和图7)之前,两个或更多个活动模式操作(例如,第一活动模式操作512和第二活动模式操作513)可分别在40mhz下运行0.1ms和0.5ms的持续时间。在图5b中,在活动功率管理过程(例如,过程300、700,参考图2、图3和图7,以及基于“最坏情况”相)之后,活动模式操作512、513将被优化(即,基于待机数据点聚合调整/更新的两个或更多个操作点)(例如,对应于相应的第一dvfs模式和第二dvfs模式的第一操作点和第二操作点),使得活动相512、513可被“拉伸”到相应的待机相514、515。因此,如图5b所示,在优化时,在特定示例中,活动模式操作512、513可分别在20mhz下运行0.1ms和0ms的持续时间。
46.在图5中,此特定场景的功率管理优化对应于“最坏情况”相(即,最活动相)。因此,为了说明此类场景,如本文所述的系统和方法可根据cpu的指令指针(即,程序计数器)区分开不同的活动相,并利用聚合的待机数据来降低频率(并在示例性性能曲线上移动到更低的位置;因此,降低电压),但仍确保一个或多个软件工作负载将满足任何时间期限(例如,下一次“唤醒”,随后转变到活动相)。对应地,例如,第二dvfs模式可被配置为将活动模式操作512、513设置为基本上等于具有最长时间间隔的码相的活动模式(即,“最坏情况”码相:将对其进行分析以提供不会违反最短待机相的性能,并因此针对最长码相进行优化)。在某些具体实施中,用于确定判定阈值的参数包括但不限于:1)改变dvfs水平的性能或能量开销(即,成本);2)ivr延迟;以及3)任务间隔的大小。
47.因此,有利地,通过监测多相(即,多个软件工作负载)的重复性单一任务的活动时间和待机时间(例如,根据本文所述的示例性过程300、700记录和聚合待机数据点)(例如,包括以下步骤:以固定间隔“唤醒”;“抓取”传感器数据读数;执行健全性检查;然后存储/聚合传感器数据读数;偶尔对累积传感器数据读数的“束”进行突发处理),可实现将时钟操作
速度降低近50%,并因此将活动能量减少约40%的机会。
48.在特定示例性用例中,多相(即,一个或多个软件工作负载)可为但不限于心电图(ecg)心率监测器、会议室人员计数器、音频关键字定位等。与单相相比,多相可能是更复杂的情况,例如,设计者/编程器可按顺序运行以下各项:20k指令的100个唤醒/睡眠样本,然后是单一100k指令相,然后回到20k指令的100个唤醒/睡眠样本。
49.在某些具体实施中,当软件工作负载包括多相工作负载时,操作将进一步包括以下步骤:1)对多相工作负载的码相中的每个码相进行分类,其中每个码相均可对应于多相工作负载的特定软件工作负载;2)通过记录对应于分类的软件工作负载的待机进入数据点和待机退出数据点来跟踪码相中的每个码相;以及针对跟踪的码相中的每个码相确定相应性能曲线上的不同操作点。
50.参考图6a至图6b,在一个示例中,图5a中的两个或更多个不同示例性码相510、511被示为在根据本发明方面的活动功率管理之前(图6a中的600)和之后(图6b中的650)的两个或更多个不同示例性码相610、611。如图所示,在图6a中,可针对特定感测实例,描绘某一时间段(即,毫秒(ms))上的功率模式(例如,活动模式操作612、613和待机模式操作614、615)(即,两个或更多个软件工作负载的软件指令的执行)。示例性码相610、611可表示以不同间隔从活动模式操作612、613转变为待机模式操作614、615(例如,低功率操作)的多个相(即,多相)(例如,两个或更多个软件工作负载)的重复性单一任务。
51.进一步参考图5a,在图6a中,还可考虑与进入和退出待机模式操作相关联的能量成本630。在某些情况下,由于能量成本630(例如,由于允许去耦电容崩溃,因此可能需要再充电,以及由于“上电”期间的相关联逻辑故障),只有在一定的“盈亏平衡”时间之后,才能节省整体能量。如图6a所示,在640处,进入和退出待机模式操作所消耗的能量(e
entry-exit
)被示为远小于节省的能量(e
save
)(e
entry-exit
《《e
save
)。因此,如图6b所示,将执行到待机操作的转变,因为将实现能量节省。然而,如图6a所示,在650处,进入和退出待机模式操作所消耗的能量(e
entry-exit
)被示为大于节省的能量(e
save
)(e
entry-exit
》e
save
)。因此,如图6b所示,在优化时,第二码相611的活动模式操作可被“拉伸”,以在第二码相611与第一码相610的以下实例之间完全结合特定待机模式操作。有利地,在遵守服务质量(qos)要求的同时会发生这种活动相的优化。因此,例如,如果优化的待机操作时间(即,dvfs后待机时间)可被预测为低于盈亏平衡时间(例如,e
save
),则进入和退出待机操作可能不是有益的,因此,可避免这种开销(即,成本)。
52.参考图7,示出了基于根据操作点的待机模式使用的统计值(即,待机进入数据点和待机退出数据点、量度)调整/更新这些操作点来自动优化性能模式的方法700。在某些情况下,方法700可用于微控制器的活动功率管理。
53.在框710处,方法700包括由计算机处理单元(cpu、cpu子系统)在活动模式(即,活动功率模式)操作中计算(即,执行、初始化)软件工作负载的软件指令(即,感测任务),该软件工作负载对应于性能模式的第一操作点(例如,基于嵌入式微控制器单元(mcu)的dvfs曲线(例如,基于嵌入式微控制器单元(mcu)的dvfs曲线(即,dvfs谱)上的预定或预定义第一操作点的dvfs模式)。例如,参考如图1至图6所描述的各种具体实施,cpu 210将执行对应于特定性能模式(例如,dvfs模式)的多个操作点132中的第一操作点的软件工作负载。
54.在框720处,方法700包括从活动模式操作的实例转变为cpu的待机模式操作的实
例(即,低功率模式),以及由时间跟踪元件(例如,可编程实时时钟(rtc)警报)记录(即,采样、“跟踪/抓取”传感器数据读数、详细信息、日志)多个待机进入数据点中的每个待机进入数据点(即,量度、状态)。例如,在如参考图1至图6所描述的各种具体实施中,pmu 220可被配置为将cpu 210从活动模式操作中排序为待机模式操作,反之亦然。此外,时间跟踪元件230可被配置为对待机进入数据点进行采样。
55.在框730处,该方法包括从待机模式操作的实例转变为cpu的活动模式操作的实例(例如,未来的“唤醒”),以及由时间跟踪元件记录(即,采样、“跟踪/抓取”传感器数据读数、详细信息、日志)多个待机退出数据点中的每个待机退出数据点(即,量度、状态)。例如,在如参考图1至图6所描述的各种具体实施中,pmu 220可被配置为将cpu 210从待机模式操作中唤醒到活动模式操作,反之亦然。此外,时间跟踪元件230可被配置为对待机退出数据点进行采样。
56.在框740处,该方法包括基于记录的待机进入数据点和记录的待机退出数据点确定性能模式的第二操作点。例如,在如参考图1至图6所描述的各种具体实施中,pmu 220可被配置为提供更新的(“优化的”)操作点(例如,“最高”dvfs操作点)。
57.在示例性具体实施中,该方法包括基于多个待机进入数据点的至少一部分和多个待机退出数据点的至少一部分确定性能模式的性能曲线上的第二操作点,其中多个待机进入数据点对应于从活动模式操作到待机模式操作的转变,并且其中多个待机退出数据点对应于从待机模式操作到活动模式操作的转变。例如,在如参考图1至图6所描述的各种具体实施中,pmu220可被配置为将cpu 210从活动模式操作中排序为待机模式操作,反之亦然。此外,时间跟踪元件230可被配置为对待机进入数据点和待机退出数据点进行采样,这些数据点对应于从活动模式操作到待机模式操作的相应转变,反之亦然。
58.在另外的例示性方面,该方法包括基于第二操作点执行性能模式,其中执行性能模式包括由pmu向cpu提供操作电压和时钟信号。例如,参考图1至图6,可通过向cpu 210提供(即,控制电压源来供应)(由pmu220)操作电压(即,“更高”或“更低”电压(例如,图2中的vdd))和时钟信号(例如,图2中的时钟)来执行性能模式(例如,在步骤360处,设置最佳dvfs模式)。
59.在另外的例示性方面,确定第二操作点可包括以下各项中的一者或多者:1)基于待机周期性和待机规律性评估记录的待机进入数据点和记录的待机退出数据点;2)确定成本(即,改变操作点的“性能或能量开销”(例如,如参考图6a至图6b所述));3)确定功率供应延迟(即,直流到直流转换器(dc-dc转换器)(例如,集成电压调节器(ivr)延迟);4)确定软件工作负载的时间间隔(即,任务间隔的“大小”);和/或5)确定从活动模式操作到待机模式操作的转变的时间间隔,反之亦然。
60.在另外的例示性方面,评估记录的待机进入数据点和记录的待机退出数据点(即,记录的统计值、记录的量度)可包括计算待机模式操作的占空比和最小时间间隔,其中占空比将对应于特定软件工作负载的加权活动时间间隔和加权待机时间间隔的商。
61.在一些具体实施中,即使在牺牲效率的情况下,本发明的操作也可能需要较早的计算结果(例如,与先前操作点相关联)。有利地,在此类情况下,操作(通过软件)可设置超控位以禁用对性能的自动调整。在这样做时,该操作还将被配置为禁用相关联的活动模式和待机模式记录(例如,分析、监测),以免在其他码相中“污染”统计信息收集(例如,数据点
聚合)。有利地,此类具体实施在射频识别(rfid)传感器网络中可能有用,其中当前可能仅一个标签处于活动状态,并且rfid读取器可能希望更早地关闭以节省1瓦至2瓦的射频(rf)传输功率。
62.根据特定方案和技术,可在硬件或软件中执行各种具体实施。在一个示例中,特定硬件具体实施将包括“始终在线”功率控制器(例如,包括处理器和存储器),以在功率控制器“动作”(例如,发起、调度)功率模式改变请求(例如,等待中断(wfi)的待机条目和内部或外部的“唤醒”)的情况下采样和存储数据值(即,数据点、量度中断)。在这样做时,功率控制器然后可确定优化(即,基于待机模式使用的统计值对性能模式的操作点的调整)并实现优化。在另一示例中,一种计算机实现的软件具体实施可包括处理器可访问的存储器,其中该存储器可存储指令,这些指令可由cpu执行以执行操作。这些操作将包括:提供时间跟踪元件(例如,待机跟踪设备),以在功率模式改变(例如,改变请求)时对软件工作负载的待机时间值(例如,待机时间间隔)进行采样;以及将采样的待机时间值(即,所得数据)存储到可编程存储器(例如,nvm或保持sram)中。
63.本公开的各方面可结合在系统、方法和/或计算机程序产品中。计算机程序产品可包括一个或多个计算机可读存储介质,在该一个或多个计算机可读存储介质上具有计算机可读程序指令,用于使处理器执行本公开的各方面。计算机可读存储介质可以是可保留并存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可为例如但不限于电子存储设备、磁性存储设备、光学存储设备、电磁存储设备、半导体存储设备或前述设备的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存存储器)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备(诸如上面记录有指令的凹槽中的穿孔卡或凸起结构)以及前述各项的任何合适组合。如本文所用,计算机可读存储介质不应被解释为本身是暂时性信号,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆传递的光脉冲)或通过导线传输的电信号。例如,系统200中的cpu 210或pmu 220的存储器和/或存储设备可包括有形的非暂态计算机可读介质或存储设备。
64.本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应计算/处理设备,或者经由网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。该网络可包括铜缆传输电缆、光纤传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以便存储在相应计算/处理设备内的计算机可读存储介质中。
65.用于执行本公开的操作的计算机可读程序指令可为汇编指令、指令集体系结构(isa)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据,或者是以一种或多种编程语言的任意组合编写的源代码或目标代码,这些编程语言包括诸如smalltalk、c++等面向对象编程语言和诸如“c”编程语言或类似编程语言等程序化编程语言。计算机可读程序指令可完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机上以及部分在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计
算机,或者可连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些具体实施中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla))可通过利用计算机可读程序指令的状态信息个性化电子电路来执行计算机可读程序指令,以便执行本公开的各方面。
66.在本文参考根据本公开的实施方案的方法、装置(系统)和计算机程序产品的流程图图解和/或框图来描述本公开的各方面。应当理解,流程图图解和/或框图的每个框以及流程图图解和/或框图中的框的组合可通过计算机可读程序指令来实现。
67.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行指令。机器是用于实现流程图和/或框图中指定的功能/动作的装置的示例。计算机可读程序指令还可存储在计算机可读存储介质中,该存储介质可指示计算机、可编程数据处理装置和/或其他设备以特定方式作用,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中指定的功能/动作的各方面的指令。
68.计算机可读程序指令还可加载到计算机、其他可编程数据处理装置或其他设备上,以使在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以执行计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中指定的功能/动作。
69.术语“处理器”在本文一般用来指集成在单个集成电路或芯片中的微处理器或处理设备,其在软件代码的控制下以预设顺序系统地执行操作。术语“片上系统”(soc)在本文一般用来指将各种功能块(例如,中央处理单元(cpu)、存储器、接口单元、数字信号处理电路、模拟信号处理电路等)集成在单个或几个半导体集成电路(ic)中以使用有限数量的集成电路来实现诸如计算机系统的电子系统的处理装置。soc可包括各种功能,诸如处理器功能、多媒体功能、图形功能、接口功能和安全功能。
70.图中的流程图和框图示出了根据本公开的各种具体实施的系统、方法和计算机程序产品的可能具体实施的架构、功能和操作。就这一点而言,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。在一些另选的具体实施中,图中的框中标注的功能可能与图中标注的顺序不符。例如,连续示出的两个框可基本上同时执行,或者这些框有时可以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图的每个框以及框图和/或流程图中的框的组合可由基于专用硬件的系统来实现,这些系统执行指定的功能或动作,或者执行专用硬件和计算机指令的组合。
71.在以下描述中,阐述了许多具体细节以提供对所公开概念的透彻理解,这些概念可在没有这些细节中的一些或全部的情况下实施。在其他情况下,已省略已知设备和/或过程的细节,以避免不必要地模糊本公开。虽然将结合具体示例描述一些概念,但应理解,这些示例并非旨在进行限制。
72.除非另有说明,否则术语“第一”、“第二”等在本文仅用作标签,并且不旨在对这些术语所指的项施加序数、位置或层次要求。此外,对例如“第二”项的引用并不要求或排除例如“第一”或编号较低的项和/或例如“第三”或编号较高的项的存在。
73.本文对“一个示例”的引用意味着结合该示例描述的一个或多个特征、结构或特性
包括在至少一个具体实施中。说明书中不同地方的短语“一个示例”可指代,也可不指代同一示例。
74.下面提供了根据本公开的主题的例示性的、非详尽的示例,这些示例可要求保护,也可不要求保护。本文公开的设备和方法的不同示例包括多种部件、特征和功能。应当理解,本文公开的设备和方法的各种示例可包括本文公开的设备和方法的任何其他示例的任何部件、特征和功能的任意组合,并且所有此类可能性都旨在落入本公开的范围内。本公开所属领域的技术人员将想到本文阐述的示例的许多修改,其受益于前述描述和相关联附图中呈现的教导内容。
75.因此,应理解,本公开不限于所示的具体示例,并且修改和其他示例旨在包括在所附权利要求的范围内。此外,尽管前述描述和相关联附图在元素和/或功能的某些例示性组合的上下文中描述了本公开的示例,但应当理解,在不脱离所附权利要求的范围的情况下,可通过另选的具体实施来提供元素和/或功能的不同组合。因此,所附权利要求中的括号内的附图标记仅出于例示性目的而呈现,并不旨在将所要求保护的主题的范围限制于本公开中提供的具体示例。