超低功率的自适应可重新配置的系统的制作方法

文档序号:24942099发布日期:2021-05-04 11:35阅读:153来源:国知局
超低功率的自适应可重新配置的系统的制作方法

相关申请

本申请是2019年3月29日提交的美国非临时申请16/369723号的国际申请,其要求2018年9月7日提交的美国临时申请62/728290号以及2018年11月21日提交的美国临时申请62/770382号的权益,所有这些申请通过引用整体并入本文。

本公开涉及具有可编程模拟块的集成电路(ic)设备;并且更具体地,涉及通过响应于变化的条件来重新配置可编程模拟块来优化ic设备的性能和功率管理。



背景技术:

集成电路设备可以包括模拟块和数字块两者。模拟块常常被制成可重新配置的,以便满足多任务处理的需求并且促进最佳功率管理。模拟块能够提供数字块不能提供的功能,例如进行测量以及执行测量的量的比较。在组合中,模拟块和数字块可以将由数字块执行的软件指令的灵活性与模拟硬件的速度相组合。尽管数字块在处理计算更繁重的任务方面更好,但是模拟块可以在速度和节能是关键的情况下提供优越的性能。因此,为了优化处理的速度、复杂度和能量效率,在模拟块与数字块之间仔细分配各种任务的执行是重要的。在集成电路用于医疗电子设备、物联网设备以及各种具有有限能源的便携式电子设备的情况下,以及有效功率管理的益处可能是特别地显著的情况下,这是尤其关键的。

附图说明

图1是可重新配置低功率可编程模拟子系统的一个示例性实施方式的块图。

图2a是示例性低功率可编程模拟子系统的连续时间块(或离散时间块)的一个示例性实施方式的块图。

图2b是示例性低功率可编程模拟子系统的逐次逼近寄存器模数转换器电路的一个示例性实施方式的块图。

图2c是示例性低功率可编程模拟子系统的模拟参考块的一个示例性实施方式的块图。

图3是与数字子系统、输入/输出子系统、系统范围资源和外围资源集成的可重新配置低功率可编程模拟子系统的另一示例性实施方式的块图。

图4是在一个可能的实施方式中,由与数字子系统集成的可重新配置低功率可编程模拟子系统处理具有各种输入电平的输入信号的一个示例性说明的块图。

图5a是使用无线电接收和发射的可重新配置低功率可编程模拟子系统的应用的一个示例性实施方式的块图。

图5b是示出了在一个示例性实施方式中用于语音识别的可重新配置低功率可编程模拟子系统的应用的块图。

图6是示出了在一个说明性实施方式中,对于两个子系统的各种示例性状态,包括可重新配置低功率可编程模拟子系统和包含中央处理单元(cpu)的数字子系统的系统的不同状态的相对功率电平的时序图。

图7是响应于输入信号重新配置低功率可编程模拟子系统的方法的一个可能的实施方式的流程图。

图8是响应于输入信号重新配置与数字子系统集成的低功率可编程模拟子系统的方法的一个可能的实施方式的流程图。

具体实施方式

本公开的方面和实施方式针对通过利用独立于数字处理器的模拟电路的自主可重新配置性来优化集成电路(ic)设备的性能和功率管理,该数字处理器可以保持在睡眠状态中或者执行不同的操作。该处理器可以位于与模拟电路相同的管芯/衬底中,或者可以被单独地实施。模拟电路可以被组合到可编程模拟子系统(pass)中,该pass可以与数字子系统组合使用,或者在一些实施方式中可以与数字子系统分开使用,该数字子系统可以包括中央处理单元(cpu)和存储器设备。在一些实施方式中,数字子系统可以是大规模计算设备、通用处理单元(gpu)或者应用处理单元(apu)。在其他实施方式中,数字子系统可以是具有cpu和存储器的微控制器单元(mcu),并且被设计为管理特定操作。微控制器单元可以是单独电路或者嵌入到更大系统中的电路。pass可以使用逻辑电路(在一些实施方式中,与一个或多个有限状态机结合)来进行关于重新配置一个或多个模拟设备的决策,一个或多个模拟设备例如输入-输出(io)设备、路由设备、连续时间块(ctb)、离散时间块、模数转换器(adc)。例如,在接收输入信号并且将其处理成一个或多个输出数据时,pass可以响应于该输出数据重新配置其可编程模拟电路中的一个或多个。如果cpu在睡眠状态中,则pass可以在不唤醒cpu的情况下执行这样的重新配置,或者如果cpu在活动状态中,则pass可以在不请求cpu指令的情况下执行这样的重新配置。pass可以继续接收和处理输入信号,并且监视进一步的输出数据。响应于这种进一步的输出数据,pass可以将唤醒指令传输到cpu。cpu可以执行处理,并且在一些实施方式中,可以将具有用于如何重新配置一个或多个pass模拟电路的附加指令的配置数据输出到pass。

现代计算设备(尤其是汽车、可穿戴、手持、计量、集成电器等等)需要越来越高效的功率管理。很多便携式设备将大量计算资源塞进到小的形状因子中。紧凑的尺寸可能限制便携式设备的能量存储能力。因此,在各种任务的执行期间优化能耗将变得越来越关键。一般地,通过最小数量的基本部件更快地执行任务导致更好地利用能量资源。ic可以由具有cpu的数字子系统(例如,微控制器单元)以及可重新配置模拟子系统组成。数字子系统可以保持在低功率睡眠模式中,同时模拟子系统可以在具有有限功能的模式中。模拟子系统可以通过其前端模块接收输入信号(例如,语音信号)并且在模拟处理(例如,解码、滤波和放大)之后将该信号提供到模数转换器,并且然后数字预处理。数字预处理输出可以指示该输入信号满足某个阈值标准或以其他方式指示事件。响应于这样的确定,模拟子系统可以将唤醒指令传输到cpu。随后,cpu可以执行存储在数字子系统的存储器中的指令,并且重新配置模拟子系统的参数,使得模拟电路可以提供更好地适应变化的条件的功能。

例如,模拟子系统可以监视输入信号是否出现一个或多个条件,例如,环境温度下降到低于某个预设最小值。在这种事件下,模拟块可以唤醒cpu,cpu在执行软件或固件时可以开启或者调整加热系统。另外,cpu可以重新配置模拟块。在加热系统被开启之后,模拟块可以被重新配置以监视温度升高超过某一预设最大值。然后,cpu和/或其他数字块可以返回低功率睡眠模式,同时被重新配置的模拟块可以进一步监视环境温度。在达到最大温度时,模拟块可以触发另一处理器唤醒,以用于进一步的数字处理(例如,控制加热系统)和/或模拟块重新配置。结果,可以大大降低功耗。

然而,这样的方法具有很多缺点。其依赖于cpu功能(处理能力和指令执行)来重新配置可编程模拟电路。但是即使在执行模拟子系统的最小重新配置时,cpu也可能消耗大量能量。此外,cpu可能花费相当多的时间从睡眠模式唤醒到活动状态,使得睡眠模式中的功率经济性可能以延迟的性能为代价。因此,在cpu保持在睡眠模式中时,模拟电路的这种可重新配置性的缺乏在功率管理和处理速度是必要的情况下可能是一个缺点。特别地,在可能调用cpu以响应多个错误警报的情况下,计算资源的利用可能变为次优。在各种模拟块具有固定的功能(例如,分辨率或者监视参数范围)并且仅可以在涉及cpu的情况下被重新配置时,这个问题进一步恶化。结果,在动态环境中,在监视的事件或条件之间的典型时间间隔变得比cpu唤醒和数据处理所需的时间短时,具有仅cpu可重新配置的模拟块的集成电路变得不能进行有效的功率管理。

本公开的方面和实施方式通过在没有主动cpu涉及或输入的情况下提供可编程模拟电路的动态可配置性来解决现有ic的这一和其他缺陷。各种模拟电路可以被组合到低功率(lp)可编程模拟子系统(pass)中,pass能够在无需cpu输入的情况下在多个状态之一中,该多个状态可以响应于一个或多个接收的输入信号或外部条件而选择。例如,lppass可以在cpu保持在睡眠状态中时将其自身重新配置为不同的配置。在一些实施方式中,cpu可以在活动状态中,但是lppass可以在不请求cpu指令的情况下执行重新配置。这可以允许cpu执行其他功能,例如,处理可能与lppass正在执行的任务有关或无关的数字任务。这可以允许更快地处理同一任务,如果lppass和cpu两者正在处理同一任务的不同部分,或者这可以允许lppass和cpu同时处理不同任务。

lppass的状态的选择可以通过从模数转换器(adc)电路或者从比较器接收数字信号的逻辑电路来完成。该adc电路可以接收由前端模拟电路预处理的一个或多个模拟信号。由lppass接收的输入信号可以表示各种的外部条件。在一些实施方式中,输入信号可以是无线电波、光信号、声波、运动指示、方向、速度、温度、机械接触、化学成分或者任何其他可以由环境传感器生成的表示lppass周围的物理或化学环境的状态的信号。在一些实施方式中,传感器可以检测位于距lppass很远的距离处的环境。

图1是可重新配置lppass的一个示例性实施方式100的块图。lppass102可以连接到一个或多个输入-输出(io)设备,以从一个或多个信号源接收输入信号。io设备可以包括一个或多个通用输入输出设备(gpio)端口104或者可编程输入输出(prgio)块106,它们可以包括多个引脚、开关或者能够如上所述将输入信号传递到lppass102的传感器。在一些实施方式中,io设备可以包括用于支持无线区域网、个域网或软件定义的无线电系统的无线电处理的射频(rf)前端。rf前端能够接收、发射和/或处理rf(或中频)信号,其包括放大、解码和/或无线电信号处理的其他传统部件。在一些实施方式中,各种io设备(例如,温度传感器)可以安装在与lppass102相同的芯片(例如,同一si衬底)上。在其他实施方式中,一些或者全部io设备可以在lppass102外部,但是与lppass102通信地耦合。

通过io设备输入的信号可以经由多个多路复用器(mux)路由到各个模拟块。图1示出了具有两个mux110和112的示例性系统。在其他实施方式中可以存在附加的mux,以将来自多个io设备的输入数据路由到lppass中的各个电路。用于输入信号的处理路径在图1中以实线示出,其中,箭头指示信号传播的方向。在一些实施方式中,一些输入信号可以被路由到连续时间块(ctb)120,以用于连续时域处理。在ctb120中,各种输入信号可以被解码、放大、转换(例如,从电流信号到电压信号,或者从电流信号到时间信号,或者从电压信号到时间信号,或者从电压信号到频率信号等等)、比较、缓冲或者类似地处理。在一些实施方式中,用于在离散时间进行信号处理的离散时间块(dtb)可以代替ctb或者在ctb之外使用。在一个示例性实施方式中,ctb/dtb120输出可以被输入到adc,例如,逐次逼近寄存器(sar)adc130。saradc130可以将输入模拟信号变换成数字信号。多路复用器的系统可以将一些输入信号直接路由到saradc130,而绕过ctb/dtb120。例如,在一些实施方式中,专用sarmux112可以用于路由旨在被直接提供到saradc130的输入信号。模拟路由块(aroute)114可以为lppass102的一些或全部mux提供控制数据(例如,开关的配置)。aroute114可以提供信号路由数据,以促进io设备与多个模拟块(例如,ctb/dtb120和saradc130)之间的连接。lppass102的不同配置可以具有不同的路由结构。例如,在一些旨在用于粗略语音检测的配置中,来自麦克风输入的声音输入信号可以通过sarmux112直接传递到saradc130。相反,在其他配置中,在旨在更精确的语音识别时,来自麦克风的声音输入可以首先被路由到ctb/dtb120,以用于连续或者离散的时间处理。作为另一示例,在烟雾检测的实例中,路由结构可以将输入信号引导到saradc130,但是一旦已经确定烟雾的存在,lppass102可以被重新配置为不同的配置,其中输入信号通过ctb/dtb120被路由,以用于旨在确定烟雾成分的附加处理。通过将控制信号提供到mux,aroute114可以促进这样的输入信号重新路由。在一些实施方式中,lppass102可以包括一条或多条总线。在一些实施方式中,lppass可以包括总线的结构。在一些实施方式中,可以通过aroute114将控制信号提供到mux110和112来控制经由总线的路由。在一些实施方式中,一些总线可以通过mux110和112将直接信号路由提供到lppass102的各个块。

saradc130可以将一个或多个信号(例如,连续时间信号)转换成一个或多个数字信号。saradc130可以使用具有取决于lppass102的特定配置的分辨率的二分查找。例如,在lppass的默认配置中,为了检测某一量a,saradc130可以被配置为仅输出具有与低于或高于某个预定阈值的量a相对应的值0或1的单个位。一旦量a在在某个时间量内(例如,累积地超过最后10秒中的5秒)高于阈值,则saradc130可以被重新配置为其中输出值用两个位(例如,状态00、01、10、11)、三个位(001、101等)或更多位来指定的状态,这取决于所需的分辨率。

在一些实施方式中,模拟电路(例如,mux、ctb、saradc)的功能可以由模拟参考块(aref)140来支持。aref140可以将参考电压和参考电流提供到其他模拟块。例如,aref140可以提供带隙电压、低电压和高电压等。在一些非限制性示例中,低电压可以是1.1v,而高电压则可以在范围2.7-5.5v内,或者任何其他值。aref140可以类似地将参考电流提供到各个模拟块。在一些实施方式中,参考电压和参考电流可以特定于其被提供到的模拟块。在一些实施方式中,参考电压和参考电流可以是与温度无关的。在一些实施方式中,参考电压和参考电流可以与温度成比例,或者可以具有某种其他预定温度依赖性。在一些实施方式中,aref140可以具有转发器能力,使得可以将多个参考电压(和/或电流)提供到各个模拟电路。aref140可以进一步为各个模拟电路提供时钟信号。在一些实施方式中,aref140可以将不同的时钟信号提供到不同的模拟电路。

由模拟块(以及这些块内的电路)处理的信号可以被输入到lppass102的数字处理块150中。例如,如图1中的实线所示,数字信号可以从saradc130被传递到数字处理块150的逻辑电路152。逻辑电路152可以包括多个互连的逻辑门。逻辑电路152能够执行存储在存储器设备154中的指令,此后存储器设备154简称为存储器154。在一些实施方式中,存储器154可以是只读存储器(rom)。在其他实施方式中,存储器154可以是随机存取存储器(ram)、或闪存存储器、或任何其他类型的存储器、或不同类型的存储器设备的组合。

逻辑电路152可以处理由saradc130提供的对应于lppass102的各种模拟输入的一个或多个数字输入信号。例如,语音识别数字输入信号可以与温度、湿度、大气压和其他数字输入信号一起被处理。在一些实施方式中,不同的数字输入信号可以由逻辑电路152的不同门处理。在其他实施方式中,不同的数字输入信号可以由逻辑电路152的相同门处理,但是在时间上顺序地处理,例如,使得数字输入信号s1的处理可以在时间间隔t1上发生,随后是数字输入信号s2在时间间隔t2上的处理,随后再次是数字输入信号s1的处理,等等。由逻辑电路152对各种数字输入的处理的数字输出可以被临时地或者永久地存储在存储器154中,或者直到下一次启动为止。

逻辑电路152的数字输出可以用于重新配置lppass102的各个模拟块和电路,如图1中的虚线示意性所指示。例如,从逻辑电路152和fsm158延伸到aroute114的虚线示意性地指示了可以如何执行重新配置aroute114。反过来,从aroute114到mux110和112的虚线指示了mux110和112的数据路由可以由aroute114例如通过重新配置一个或多个mux开关来重新配置。例如,lppass102可以在第一(例如,低功率)配置中,在第一配置中,模拟块(例如,ctb/dtb120、saradc130)可以被配置为以与lppass的最大能力相比低的分辨率来处理输入模拟信号。lppass102及其逻辑电路152仍然可以保持在能够监视输入模拟信号中的一些事件的指示的待机模式中。例如,lppass102可以正在监视人类语音实例的音频噪声。lppass102可能不能以最低lppass分辨率来结论性地辨别语音,但是逻辑电路152能够检测人类语音的标记。例如,存储器154可以以设定的低分辨率存储人类语音标准(例如,典型的音调和节奏)。如果lppass102正在监视输入模拟信号以获得某一事件的指示,并且这种指示是在超低功率配置(也可以是一种低分辨率模式)中获得的,则逻辑电路152可以将一个或多个模拟电路重新配置为lppass102的第二配置,以增加模拟信号处理和/或模数转换的分辨率。对应地,模拟电路在第二配置中可以具有比在第一配置中高的操作功率。在一些实施方式中,模拟电路在第二配置中可以具有比在第一配置中低的操作功率。例如,第一配置可以用于实施活动状态,而第二配置可以用于实施lppass的睡眠状态。如下文更详细讨论的,可以有若干活动状态(例如,活动1、活动2等等),它们的特征在于不同级别的lppass功能和不同级别的功耗。类似地,可以有不同的睡眠状态(例如,空闲、深睡眠等等)。

不同的lppass配置的特征可以在于输入信号的连续时间处理的不同分辨率以及输出数字信号的不同分辨率。例如,在lppass102被重新配置时,数字分辨率可以从8位增加到12位,并且从12位增加到16位。更高的分辨率可能需要更长的处理时间和/或更多的功耗。由于损失最低分辨率可能导致最快的处理和/或最低的功率转换,lppass102可以开始处理最低分辨率配置,但是响应于特定事件的标记的检测,重新配置其自身(例如,其saradc130)。

在一些实施方式中,为了将lppass102重新配置为第二配置,逻辑电路152可以重新配置块ctb/dtb120、saradc130、aref140、aroute114、mux110和sarmux112中的一些或全部。例如,为了增加连续时间处理的分辨率,逻辑电路152可以执行到aref140的指令,以增加由aref输出到ctb/dtb120的时钟信号的频率。在另一示例中,为了增加模数转换的分辨率,saradc130和ctb/dtb120可以从例如12位20ksps采样模式被重新配置到12位1msps采样模式。在一些实施方式中,采样速率可以保持相同,但是分辨率可以增加。相反,采样速率可以增加,但是分辨率可以不增加。

在一些实施方式中,lppass102可以包括有限状态机块(fsm)158。fsm158可以被硬件实施为与逻辑电路152分开的电路(或一组电路)。在一些实施方式中,fsm158可以被实施在与逻辑电路152相同的电路系统上。在一些实施方式中,fsm158可以被实施为由逻辑电路152执行的指令。fsm158能够从逻辑电路152的或者直接从saradc130的或者从这两者接收输入。响应于接收的输入,fsm158能够选择fsm状态中的一个或多个。fsm状态可以对应于模拟电路中的任何一个的设置、多个模拟电路的设置或者lppass102整体的设置。由fsm158选择的状态可以用于重新配置块ctb/dtb120、saradc130、aref140、aroute114、mux110和sarmux112中的一些或全部。

fsm158可以是有限状态变换器、智能逻辑电路、可编程逻辑设备、控制器、推理引擎、接受器、分类器或定序器类型或者其任何组合中的一个或多个。分类器fsm能够基于输入从多个可用状态中选择状态。例如,心脏监测设备使用的fsm可以根据患者的心率来选择是实施心律校正,实行心电图测量,还是向医疗专业人员分派通信。接受器fsm能够产生二进制输出。在一些实施方式中,状态0的输出意味着不改变lppass102的当前配置将被实施,而状态1的输出则意味着必须重新配置lppass102。在一些实施方式中,lppass配置的选择可以按顺序进行:例如,状态1的输出意味着要选择具有下一个可用分辨率(或功耗)的配置。作为说明性示例,saradc130的12位20ksps采样配置之后可以是12位1msps配置,之后是16位62.5ksps配置。作为示例,可以在语音识别中使用fms作为推理引擎,例如,在lppass102可以在寻找码字的标记的待机模式中时。fsm将研究在数字域中观察到的现象(在adc之后),并且将数据与存储器中的预加载的数据进行匹配以做出推断。这种fsm还可以充当推理引擎,从而在图像处理以及语音识别中做出关键决策。

图2a、图2b和图2c示出了连续时间块(ctb)、逐次逼近寄存器(saradc)和模拟参考块(aref)的一些可能的高级架构。图2a、图2b和图2c所示的一些部件以及后续的图3和图4中的那些部件可以与图1中相同。因此,仅有第一位数字不同的三位数字所引用的项目(例如,ctb/dtb120、220、320、420)可以指相同的部件。

图2a是示例性低功率可编程模拟子系统102的ctb/dtb220的一个示例性实施方式的块图。ctb/dtb220可以具有足够的带宽来支持指定的数字采样速率,例如以1msps进行12位采样或者以62.5ksps进行16位采样。在一些实施方式中,ctb/dtb220可以具有两个或更多个运算放大器221以及电阻器网络222。在一些实施方式中,ctb/dtb220还可以包括泵223,其可以是双电荷泵。泵223可以用于促进运算放大器221的运算。在一些实施方式中,ctb/dtb220可以包括内部逻辑电路224,以用固件可控制开关来控制内部路由。路由矩阵225可以具有多条总线、多个开关和多个锁存器。路由矩阵225还可以具有ctb/dtb220内部的不同于mux110的多路复用器。一些或全部路由开关可以由ctb/dtb220外部的部件控制,例如,逻辑电路152、fsm158和aroute114。在一些实施方式中,路由矩阵225可以将ctb/dtb220连接到诸如gpio104和prgio106的io设备的多个io引脚。gpio引脚可以被分组为可以表示单独的模拟端口的8个引脚。ctb/dtb220还可以包括用于处理编码的输入的解码器226。ctb/dtb220还可以具有用于离散时间处理的电容器电路229(例如,电容器阵列)。ctb/dtb220的部件(例如,运算放大器221和电阻器网络222)可以被配置为用作一个或多个缓冲器227或比较器228。图2a中所示的ctb/dtb220的一些部件可以是可选的,并且在一些实施方式中可以不使用。例如,在ctb/dtb220的连续时间块(ctb)实施方式中可以不存在电容器电路229。在一些实施方式中,可以使用具有与典型ctb相同或类似的功能但是具有较小能力的更紧凑的ctbm(ctb-mini)。

图2b是示例性低功率可编程模拟子系统102的逐次逼近寄存器模数转换器电路(saradc)230的一个示例性实施方式的块图。saradc230可以包括采样/保持电路231,以基于指定的采样频率捕获输入模拟信号(例如,来自sarmux112和/或ctb/dtb220的信号)。saradc230还可以具有参考缓冲器232,以存储由aref140提供的参考信号(例如,参考电压和电流)。saradc230还可以具有数模转换器(dac)233,其可以以离散时间间隔将模拟信号馈送到一个或多个比较器234中。dac233还可以包括或者耦合到电容器阵列235。(一个或多个)比较器234可以将存储在采样/保持电路231中的输入信号与dac233的输出进行比较,确定对应的差,并且将该差发送到sar逻辑电路236。sar逻辑电路236可以执行逐次逼近算法,直到存储在采样/保持电路231中的模拟信号被数字化到由saradc230的数字输出的位数(例如,8位、12位、16位,这取决于配置)所指定的准确度为止。saradc230可以使用时钟237来对输入模拟信号进行数字采样。时钟可以包括定时逻辑,其可以在模数转换的不同阶段处提供不同的采样速率。在一些实施方式中,saradc230可以进一步部署(一个或多个)电平移位器238,以将低压数字控制信号转换成较高的电压模拟控制信号,以用于提高信噪比并且降低saradc230的功耗。saradc230还可以包括功率控制单元239。图2b中所示的saradc230的一些部件可以是可选的,并且在一些实施方式中可以不使用。

图2c是示例性低功率可编程模拟子系统102的模拟参考块240的一个示例性实施方式的块图。aref240可以包括能够将多个可配置时钟参考提供到lppass102的模拟电路的时钟241。例如,时钟241可以将时钟参考提供到ctb/dtb220的泵223、提供到saradc230的时钟237等。电压参考块242可以将精确的电压参考提供到lppass102的一些或全部模拟块(以及块内的电路)。例如,电压参考块242可以提供带隙电压参考、模拟地电压参考和模拟电源电压参考等。不同的模拟块可以接收不同的电压参考。电流参考块243可以将精确的电流参考提供到一些或全部模拟块。例如,这可以包括与绝对温度成比例的电流(iptat)、与绝对温度无关的电流(iztat)、以及与绝对温度互补(即随绝对温度减小)的电流(ictat)。在一些实施方式中,可以通过可编程参考块(prb)244促进提供多个电压和电流参考值。prb244可以获取由电压参考块242(电流参考块243)提供的输入参考电压(或电流),将其乘以常数,并且输出所获得的电压(电流)值的多个被除版本,以在lppass的不同块中使用。输出参考电压(电流)可以通过aroute114路由到对应的模拟块。类似地,时钟241输出也可以通过aroute114传递到预期目的地。可以通过内部路由矩阵245促进上文所述的由aref240执行的操作,即电压/电流乘法和除法。prb244能够从逻辑电路152或fsm158接收重新配置指令。响应于接收到这样的指令,prb244可以调整由aref240产生并且输出的电压和电流参考。图2c中所示的aref240的一些部件可以是可选的,并且在一些实施方式中可以不使用。

图3是与数字子系统360、输入/输出子系统303和外围资源380集成的可重新配置低功率可编程模拟子系统(lppass)302的示例性实施方式300的块图。图3中所示的ic系统可以用于各种应用,例如但不限于物联网、可穿戴设备、运动检测器、语音激活控制电器、智能家用电器、便携式电器、电池操作的电器、汽车设备、化学感测、医疗电子设备(例如,葡萄糖、心脏监测)以及很多其他应用。在一些实施方式中,lppass302可以在多种配置之一中,这些配置在功能和功耗方面彼此不同并且可以用于实施lppass302的不同状态,例如,深睡眠、睡眠、活动。如果在特定应用中有利,则可以实施附加的状态。例如,一组活动状态可以包括多个不同状态,例如,活动1、活动2、活动3等等,它们在可以在由lppass302执行的处理的量和复杂性方面不同。例如,在活动1状态中的saradc可以以12位低采样模式操作,而在活动3状态中的saradc可以以16位高采样模式操作。数字子系统360可以类似地在多种状态之一中。在这种状态中的一种,即cpu关闭状态中,数字子系统的中央处理单元(cpu)362可以是不活动的。在另一状态中,cpu362可以是完全活动的,即cpu开启状态。在一些实施方式中,还可以实现附加中间状态,其中cpu362可以以不同程度的cpu功能而是部分地活动的。

lppass302可以包括与图1中所示的lppass102相同的块。一些块可以存在于多个一个副本中。例如,在图3中所示的实施方式中,有两组mux、ctb、saradc、存储器设备、寄存器和fsm。用添加到附图标记的字符(1)和(2)指定的每一组可以对通过io子系统303输入的模拟信号执行单独处理。每一组可以由逻辑电路352和组指定的fsm独立地重新配置,例如,用于左组的fsm358(1)和用于右组的fsm358(2)。在一些实施方式中,在图3中被指示为分开的一个或多个设备可以在两个组之间共享。例如,fsm358(1)和fsm358(2)实际上可以是服务于两个组的单个fsm。在其他实施方式中,图3中所示的系统还可以包括具有附加的ctb和saradc以及其他块的组。在其他实施方式中,可以存在附加的组(第三、第四…)。

多组lppass302的功能可以与单组lppass102的功能类似。io子系统可以包括gpio304、prgio306以及可编程互连(pi)308a。pi308a可以控制什么输入信号从gpio304和/或prgio306被传递到lppass102。lppass可以附加地具有作为lppass302的部分的pi308b。在一些实施方式中,pi308b可以在不同的模拟电路组之间分配传入的模拟信号。例如,化学和物理感测输入可以被引导到mux310(1),而音频信号可以被引导到mux310(2)。lppass302内的信号路由可以由aroute314和aref340提供的到两组模拟电路的参考值来完成。逻辑电路352可以被配置为从一些或全部ctb320接收数字输入,并且产生一个或多个数字输出值。一些输出值可以是输入模拟信号的二进制函数(0或1)。例如,如果输入包含码字,则输入声音信号可以导致二进制输出1,并且如果输入不包含码字,则输入声音信号可以导致二进制输出0。一些输出值可以是多位的数字,其可以以准连续方式表示输入模拟信号。例如,可以通过具有显著分辨率(准确度)的量来表示所检测的环境温度或者空气或水的化学成分。pi308b可以由逻辑电路352控制,逻辑电路352可以通过重新编程pi308b来控制输入信号如何在lppass302内分配,如图3中虚线示意性所示。lppass302还可以具有功率监控器359,以控制lppass的功率电平以及用于对lppass302的各个块加电/断电的定时。定时可以包括加电/断电(包括功率的完全和部分下降)的特定实例以及加电/断电转变的持续时间。功率监控器359可以向lppass302的模拟块以及数字处理块350两者提供监控功能。功率监控器359可以由逻辑电路352和/或fsm354控制。在一些实施方式中,功率监控器359可以具有其自身的内部逻辑,并且能够从逻辑电路352/fsm354自主地操作。

逻辑电路352或fsm358可以确定一个或多个输出值是否满足第一标准。在一些实施方式中,第一标准可以由第一阈值表示,并且如果输出值超过第一阈值,则满足第一标准。在一些实施方式中,如果输出值低于第一阈值,则满足第一标准。在本公开中,复数术语“标准”被理解为涵盖其词典复数含义和相关单数含义(“标准”)。因此,术语“第一标准”(或者“第二标准”等)涵盖其中可以将单个输出值与单个阈值进行比较的实施方式,以及其中可以将多个输出值与多个阈值进行比较的实施方式。类似地,单数术语“阈值”应当被理解为还涵盖具有多个阈值的实施方式。

第一阈值可以被存储在存储器354(1)或354(2)中。在一些实施方式中,第一阈值可以被存储在寄存器356(1)或356(2)中。在一些实施方式中,第一阈值可以被存储在fsm358(1)或358(2)的设置中。如果确定满足第一标准,则逻辑电路352和/或对应的fsm358可以将lppass302从第一pass配置重新配置为具有不同配置设置的第二pass配置。该配置设置可以包括确定至少一个可编程模拟电路的功能的参数,例如ctb/dtb320的时钟速率、saradc330的分辨率和采样速率、aroute314的路由结构、aref340的模拟参考等。可以将用于第二pass配置的(一个或多个)设置存储在存储器354、寄存器356或者fsm358的设置中。在一些实施方式中,寄存器356可以在rom中实施,并且存储在其中的配置设置可以不被修改。在一些实施方式中,寄存器356可以是ram实施的,并且可以由数字子系统360的cpu362修改。在一些实施方式中,一些配置设置可以被存储在ram(存储器354或寄存器356)中,而其他配置设置可以被存储在rom(存储器354或寄存器356)中。在一些实施方式中,配置设置可以被存储在寄存器356中,而lppass302收集的数据可以被存储到存储器354中。在一些实施方式中,配置设置可以表示ctb/dtb320、saradc330、aroute314和aref340等中的一个或多个的一个或多个开关的状态。

在lppass302在第一配置中时,数字子系统360的cpu362可以在cpu关闭状态中。在lppass302被重新配置为第二配置时,cpu可以保持在cpu关闭状态中。lppass302可以在第二配置中继续接收和处理模拟输入信号。逻辑电路352或fsm358可以随后确定第二配置中的一个或多个输出值满足第二标准。例如,逻辑电路352的输出值可以高于(或低于)第一第二阈值。如果发生这种情况,则逻辑电路352可以通过数字接口(未示出)将唤醒信号输出到cpu362,并且触发cpu到cpu开启状态的转变。在一些实施方式中,唤醒信号可以是用于cpu唤醒的指令,例如,数字指令。在其他实施方式中,唤醒信号可以是不包含到cpu362的指令但是使得cpu362唤醒的数据信号。在开启状态中,cpu362可以加载来自数字子系统360的存储器364的指令并且执行数字代码。作为代码执行的结果,cpu362可以将具有指令的配置数据发送到lppass302(例如,到逻辑电路352和/或到fsm358),以将lppass重新配置到第三pass配置。在一些实施方式中,用于第三配置的设置可以从lppass存储器354或寄存器356检索。在一些实施方式中,cpu362可以首先将配置设置存储到lppass302的一个或多个ram设备中(例如,到存储器354或寄存器356),并且指示逻辑电路352提取这些存储的设置。在一些实施方式中,cpu362可以在不涉及逻辑电路352的情况下直接修改lppass302的各个模拟块的设置。在一些实施方式中,cpu362可以在出现某一预定条件时将新的配置设置加载到存储器354或寄存器356中。例如,在lppass102检测到环境空气中的烟雾时,lppass102可以将唤醒信号输出到cpu362,并且cpu362可以加载新的配置设置,以将lppass102从烟雾的检测重新配置到其化学成分的确定。在一些实施方式中,cpu362可以独立于输入信号将新的配置设置加载到存储器354或寄存器356中,简单地作为更新的部分,例如,计划的(在一天中的特定时间)更新。

在一些实施方式中,在第二配置中的lppass302可以不接收第二模拟输入信号。相反,在重新配置时(并且在不唤醒cpu362的情况下),lppass302可以重新处理在第一pass配置中执行的初始处理期间存储的第一模拟输入信号。例如,第一模拟输入信号可以被存储在saradc330的采样/保持电路231中。在将lppass302重新配置为第二配置(例如,具有更高的saradc采样速率)之后,重新配置的saradc330和逻辑电路352可以以新的(更高的)分辨率处理存储的输入信号,以确定新的输出值。然后,可以将该新的输出值与第二阈值进行比较,并且可以做出是否将cpu362从其关闭状态唤醒的决策。

在一些实施方式中,在接收并且处理该模拟输入信号之后,lppass302可以将不同于唤醒信号的信号输出到cpu362。在一些实施方式中,输出到cpu362的信号是模式选择信号。例如,在一些实施方式中,cpu362可以最初在cpu开启状态中,并且逻辑电路352可以将使cpu362转变到cpu关闭状态的信号输出到cpu362。在一些实施方式中,模式选择信号可以使cpu362在不同活动模式(状态)之间转变。

在一些实施方式中,lppass302可以不向cpu输出唤醒指令,同时在cpu362最终被唤醒之前,经历多次重新配置为具有逐渐升级的功能(例如,速度、准确度和分辨率)和功耗的配置。例如,lppass状态的序列可以是:睡眠、活动1、活动2、活动3,随后是对cpu362的唤醒指令。在一些实施方式中,如果确定不需要活动的cpu涉及或输入,则lppass302可以在不唤醒cpu362的情况下逆转并且降级:活动1、活动2、活动3、活动2、活动1。在一些实施方式中,lppass302可以降级为睡眠(或深睡眠)状态。在一些实施方式中,lppass302可以在监视时间周期开始时周期性地将其自身重新配置为活动状态之一,并且在该周期结束时恢复为睡眠(或深睡眠)状态。

数字子系统360可以是通用处理系统或者被配置为执行有限数量的指令的专用处理系统。在一些实施方式中,数字子系统360可以是微控制器单元(mcu)。数字子系统360可以包括闪存存储器366、直接存储器存取电路(dma)368以及其他常规部件,例如监视器、io设备、网络适配器等。数字子系统360可以访问云储存器。由数字子系统360执行的一些或全部计算可以是远程(例如,云)计算。

系统300可以具有多个系统范围资源370,例如内部主振荡器372和参考块374,以将电压和电流提供到数字子系统的部件并且在一些实施方式中提供到aref340。系统范围资源还可以包括锁相环(pll)376,以生成锁相参考信号。系统300还可以包括多个外围资源380,其可以包括电容感测阵列382、看门狗定时器384、串行通信块386、液晶显示器388以及定时器计数器脉宽调制器(tcpwm)389。

在一些实施方式中,系统300的所有部件可以在相同的芯片(衬底)上实施,如虚线矩形低功率片上系统(soc)390所示。在一些实施方式中,系统300的一些部件可以在芯片外实施。例如,外围资源380和/或io子系统303中的一些或全部可以在芯片外实施,并且可以通过一条或多条总线(未示出)连接到托管lppass302和数字子系统360的芯片。在一些实施方式中,lppass302和数字子系统360可以被实施为不同的(例如,si)衬底上的单独soc。

图4是在一个可能的实施方式中,由与数字子系统460集成的可重新配置低功率可编程模拟子系统(lppass)402处理具有各种输入电平的输入信号的一个示例性说明400的块图。

lppass402可以是图1中所示的单组装置、图3中所示的两组装置或者多组装置。图4示出了在两种示例性情况下的lppass402的功能。在第一种情况下,输入信号401具有高于用于lppass402的重新配置的第一阈值标准的输入电平。然而,信号401的输入电平可以低于第二阈值标准。结果,lppass402重新配置其自身,但是不向cpu462输出信号。在一些实施方式中,术语“输入电平”可以指电压电平、电流电平、指示电荷的电平或者任何其他物理或化学量或者任何物理或化学量的变化。在第二种情况下,输入信号403具有高于用于将信号输出到cpu462的第二阈值标准的输入电平。输入信号401和/或403首先被前端接口405接收。前端接口405可以执行输入信号401和/或403的预处理。例如,前端接口405可以包括麦克风,以将音频信号转换成可以被lppass模拟电路系统识别的电信号,或者可以包括多个无线电电路和设备(天线、放大器、滤波器等),以将无线电波转换成电信号。前端接口405可以包括io子系统303和mux310、312的任何部件。由前端接口405预处理的信号可以被输入到ctb/dtb420,以用于连续或离散时间处理,并且然后被输入到saradc430,以用于转换成数字值。ctb/dtb420和/或saradc430最初可以具有对应于第一lppass配置的设置。由saradc430数字化的信号可以被输入到数字处理块450,更具体地可以被输入到逻辑电路452和/或fsm458。在一些实施方式中,逻辑电路452和/或fsm458可以生成一个或多个输出值,并且确定输出值是否满足一个或多个标准,例如,用于lppass402重新配置的第一标准以及用于将信号输出到cpu462的第二标准。如果逻辑电路452和/或fsm458确定对于输入信号401,满足第一标准,但是不满足第二标准,则逻辑电路452和/或fsm458可以将lppass402重新配置为第二pass配置。

在一些实施方式中,第一标准可以包括多个度量。根据多个度量对一个或多个输出值的应用,第二pass配置可以从多于一种可能的配置中选择。在一些实施方式中,如果满足第一标准的某个子集,则lppass402的重新配置可以在fsm458的预配置状态中的一个或多个的帮助下执行。fsm458可以用于促进lppass402的快速重新配置。如果不满足第一标准的任何子集,使得fsm458的预配置状态都不被选择,则lppass402的重新配置可以由逻辑电路452执行。在一些实施方式中,用于lppass402的第二配置的设置可以从lppass存储器454检索。在一些实施方式中,lppass存储器454可以包括一个或多个rom寄存器,例如,用于存储配置设置的寄存器356。

用于所选择的第二pass配置的设置可以被应用于前端接口405、ctb/dtb420、saradc430以及在图4中未明确示出的其他lppass块(例如,aroute、aref),如空心箭头所示。随后,lppass402可以处理附加的输入。在一些实施方式中,lppass402可以首先以增加的分辨率重新处理初始输入信号(例如,输入信号401)。输入信号可以被存储在lppass402的一个或多个缓冲器中(例如,在采样/保持缓冲器231中),以用于这样的随后的处理。

在超阈值输入201被lppass402处理时,逻辑电路452和/或fsm458可以确定(一个或多个)输出值满足第二标准。响应于确定满足第二标准,数字处理块可以经由数字接口455将唤醒指令输出到数字子系统460,以将cpu462从其cpu关闭状态唤醒。响应于来自lppass102的信号,cpu462可以转变为cpu开启状态。唤醒指令可以包含描述唤醒原因的中断消息。然后,cpu462可以响应于包含在中断消息中的特定原因而(例如,从存储器464)加载并且执行特定代码。在一些实施方式中,cpu462可以将指令输出到lppass402,以转变为第三pass配置。在一些实施方式中,第三pass配置可以用于实施活动lppass状态之一。在其他实施方式中,第三pass配置可以用于实施睡眠或深睡眠状态。在一些实施方式中,cpu462可以不向lppass402输出任何重新配置指令,但是lppass402可以根据上文描述的过程之一将其自身配置为第三配置。

在一些实施方式中,在lppass402在其活动状态之一中,并且cpu462在其cpu开启状态中时,lppass402和cpu462可以正在处理相同的任务,例如,语音识别。在其他实施方式中,lppass402和cpu462可以正在处理不同的任务。例如,lppass402可以正在监视空气湿度,而cpu462正在调整加热系统。作为另一示例,lppass402可以正在监视通过智能窗户传送的自然光的亮度,而cpu462正在优化空调参数。在已经完成当前任务时,cpu462可以转变到cpu关闭状态,并且将进一步的配置指令输出到lppass402。在一些实施方式中,lppass可以接收cpu462已经转变到cpu关闭状态的指示,并且在没有cpu涉及或输入的情况下将其自身重新配置到默认状态(例如,睡眠或活动1)。

在一些实施方式中,由lppass102输出到cpu462的信号可以是唤醒指令。响应于接收这样的指令,cpu462可以从其cpu关闭状态唤醒。在一些实施方式中,输出信号可以是到cpu462的中断信号,cpu462可以在cpu开启状态中但是正在处理其他任务(例如,与lppass402执行的任务无关的任务)。响应于接收中断指令,cpu462可以不改变其状态,但是可以中断其当前正在执行的任务,并且切换到不同任务,例如,重新配置lppass402,如上文所解释的。在一些实施方式中,输出信号可以是到cpu462的“睡眠”信号,以切换到cpu关闭状态。例如,这种信号可以由lppass402响应于在预定时间周期内某个事件的未发生而输出。

图5a是使用无线电接收和发射的可重新配置低功率可编程模拟子系统(lppass)的应用的一个示例性实施方式500(a)的块图。所示实施方式可以被用作物联网控制器的部分。所示的实施方式可以用作与云或其他数字和/或模拟设备的接口,该其他数字和/或模拟设备使用局域网、个域网或者基于无线电接收和/或发射的任何其他网络和协议。一个或多个天线501可以用于通过接收器502和发射器504进行无线电波的接收和发射。在一些实施方式中,接收器502可以使用接收器天线501(r),而发射器504则可以使用单独的发射器天线501(t)。在其他实施方式中,单个天线可以用于发射和接收两者。例如,天线可以是多输入且多输出(mimo)天线。通过天线501(r)接收的无线电信号可以被馈送到接收器前端模块(fem-r)506(r)。fem-r506(r)可以包括多路复用器、滤波器(例如,带通滤波器)、低噪声射频放大器、(一个或多个)下变频混频器、频移和/或幅移键控模块以及可以用于处理无线电信号的其他电路系统。在一些实施方式中,fem-r506(r)的输出可以由解码器508处理。

接收器502的输出可以被提供到lppass512。lppass512可以是lppass102、302、402等的任一个。lppass512可以在低功率状态中的一种中,如上文所公开的。lppass512能够响应于天线501(r)所接收的信号的模拟和数字处理而重新配置其自身以及fem-r506(r)。在一些实施方式中,lppass512能够经由发射器504和天线501(t)发射无线电信号。要发射的信号可以被存储在lppass512的存储器中,并且在lppass512的数字输出满足一个或多个预定标准时,由lppass512的fsm选择。在一些实施方式中,可以由lppass512的逻辑电路确定要发射的信号。可以由数模转换器(dac)模块516将该信号转换为模拟形式。在一些实施方式中,可以由编码器518对该信号编码,并且将其提供到发射器前端模块fem-t506(t)。fem-t506(t)可以包括多路复用器、滤波器(例如,带通滤波器)、低噪声射频放大器、(一个或多个)下变频混频器、频移和/或幅移键控模块以及其他电路。

lppass512可以与数字子系统514一起被制造在同一芯片(例如,同一si衬底)上,例如,作为低功率片上系统(soc)516。在一些实施方式中,soc516可以是soc390。数字子系统514可以包括cpu、存储器和数字接口。在一些实施方式中,数字子系统514可以是mcu。在上文描述的无线电信号处理期间,数字子系统514可以在cpu关闭状态中。在一些实施方式中,在lppass512的数字输出满足用于唤醒cpu的一个或多个标准时,数字子系统514可以接管无线电接收和/或无线电发射。数字子系统514还可以重新配置lppass512,如上文参考图3和图4所述。

在一些实施方式中,接收器502和发射器504可以被安装在同一芯片(例如,收发器soc520)上。在一些实施方式中,收发器soc520可以是物联网(iot)芯片。在一些实施方式中,接收器502、发射器504和lppass512可以被安装在同一芯片上。在一些实施方式中,接收器502和发射器504可以共享一些部件。例如,fem-r506(r)和fem-t506(t)可以共享滤波器、放大器和/或其他部件,或者可以被实施为单个模块。在一些实施方式中,接收器502、发射器504和lppass512可以被安装在同一芯片上。在一些实施方式中,接收器502、发射器504、lppass512和数字子系统514可以被安装在同一芯片上。在一些实施方式中,可以使用一个或多个网络适配器代替接收器502和发射器504,并且可以使用数据流(例如,去往/来自网络、云)来代替无线电接收/发射。

图5b是用于语音识别的可重新配置低功率可编程模拟子系统的应用的一个示例性实施方式500b的块图。实施方式500b可以被使用(包括但不限于)在可穿戴设备、物联网、汽车或通用应用的上下文中。在图5b的示例性示图中,可以由麦克风530检测声音信号,并且通过模拟接口540将其传送到可以包括lppass552和数字子系统554的低功率自适应感测系统550。在一个示例性实施方式中,低功率自适应感测系统550可以用在噪声环境中,以帮助检测和辨别人类语音。数字子系统554可以具有cpu,在当前未检测到活动语音时,该cpu可以在cpu关闭状态中。在一些实施方式中,lppass552可以在活动状态之一中,或者在睡眠或深睡眠状态之一中。例如,在睡眠状态中的lppass552可以使其逻辑电路关闭,并且其saradc被配置为具有最小分辨率(例如,8位1ksps)和最低采样速率。在检测到特定事件时,例如,在检测到人类语音的签名时,lppass552可以将其自身重新配置为活动状态之一。例如,lppass552的fsm可以响应于人类语音的签名,并且将lppass552移转到活动状态之一。在一个说明性非限制性实施方式中,在新的配置中,lppass552的逻辑电路可以被唤醒,并且saradc的数字分辨率和采样速率可以被增加到例如16位44.1ksps。在该新状态中,lppass552可以继续监视通过模拟接口540传递的输入音频信号,以获得人类语音的另外签名。如果未检测到语音,则lppass552可以在经过了某个预定时间之后恢复到默认模式(例如,8位1ksps)。

然而,如果检测到更多语音,则lppass552可以唤醒数字子系统554的cpu。cpu可以进一步重新配置lppass552和/或模拟接口540,并且开始通过数字接口560将检测到的语音输出到语音识别系统570。在一些实施方式中,可以没有数字子系统554,并且在已经做出了检测到语音的肯定确定时,lppass552可以唤醒语音识别系统570,并且通过接口560输出(数字化的)音频信号。

在一些实施方式中,麦克风530可以用无线电前端或网络适配器或者能够传递音频信号的任何其他设备来代替。在一些实施方式中,模拟接口540和数字接口560可以与lppass552安装在同一芯片上。

图6是示出了在一个说明性实施方式中,对于两个子系统的各种示例性状态,包括可重新配置低功率可编程模拟子系统和包含中央处理单元(cpu)的数字子系统的系统的不同状态的相对功率电平的时序图600。图6可以定性地示出在适用时图3、图4、图5a和图5b所示的系统中的任何一个的功率电平。上图以概念形式而不是限制的方式示出了数字子系统的功率电平,该功率电平取决于其cpu状态。下图以概念形式而不是限制的方式示出了lppass的功率电平,该功率电平取决于lppass的状态,该lppass的状态可以取决于其块的配置。时间t1定性地示出了用于cpu(或者整个数字子系统)从cpu关闭状态转变到cpu开启状态的cpu唤醒612的时间。时间t2定性地示出了用于lppass从lppass睡眠转换到lppass活动状态之一的lppass唤醒622的时间。如图6中所示,时间t2可以显著短于时间t1。此外,数字子系统在cpu开启状态中的功耗可以显著大于在lppass活动状态(或配置模式)之一中的功耗,如两图的高度示意性所描绘。

根据唤醒lppass的触发事件,lppass可以被重新配置为活动状态之一,例如活动1、活动2、活动3等等。在没有触发事件的情况下,lppass可以按照唤醒时间表以指定的时间间隔转变到活动状态之一(通过改变一个或多个块的配置)。例如,每1秒,lppass可以从lppass睡眠状态转变到lppass活动1状态,并且每10秒,lppass可以从lppass睡眠状态转变到lppass活动2状态。各种lppass状态可以在lppass功能和功耗方面不同。在一些实例中,唤醒lppass可以跟随唤醒数字子系统(并且由其导致)。

在其他实施方式中,时间间隔的长度可以短得多。例如,在一个实施方式中,lppass的工作循环的周期可以是50μs,其中,每个循环的前44μs花费在lppass睡眠状态中,并且下一个6μs花费在lppass活动1状态中。在睡眠状态中,lppass可以在等待唤醒中断的超低功率状态中。在活动1状态中,lppass可以使模拟前端(例如,ctb)活动,其中,saradc被配置为执行单个转换,将结果存储在lppass存储器中,并且将其与lppass重新配置标准或cpu唤醒标准进行比较。每n个周期(例如n=10)一次,lppass可以被重新配置为具有lppass电路的更高(或者最终)功能的活动2(或活动3)状态。lppass可以保持在这种状态20μs(或者任何其他预定时间),然后恢复到睡眠状态。

图6以示例的方式示出了多种不同的可能性。在时间线开始之前,cpu(或者整个数字子系统)在关闭状态中,并且lppass在睡眠状态中。在所指示的时间线的开始处,cpu被唤醒,并且经历到开启状态614的转变。该转变612可以由用户、由外部事件(例如,通过网络接收的唤醒调用)引起,或者可以根据唤醒时间表发生。在cpu唤醒612之后,cpu可以向lppass发送唤醒调用622,并且将lppass重新配置为其活动状态之一624(活动2),如图所示。在处理任务完成时,cpu可以将lppass重新配置回lppass睡眠状态626。随后,cpu自身经历到cpu关闭状态616的转变。在cpu在关闭状态中的情况下,lppass可以经历一系列到其活动状态中的一个或多个的转变。它们在图6中被示为lppass活动1628状态。这些状态中的一些可以如上文的所公开地执行。例如,lppass可以监视外部模拟输入,生成数字输出,将数字输出与一个或多个标准(例如,阈值)进行比较,以确定是否重新配置lppass。一些重新配置可以在输出值不满足重新配置标准的情况下,在预定时间间隔过去之后发生。在lppass在其活动628节制期间已经完成了必要的任务(例如,语音监视或者调整加热/空调设置)之后,lppass可以返回到lppass睡眠状态626。在一些实例中,输出值可以使得用于将lppass重新配置为第三状态(例如,lppass活动3630)的标准被满足。除了将其自身重新配置为活动3之外,lppass还可以(如图6中所示)将唤醒指令发送到cpu,并且使得其转变到cpu开启状态614。图6所示的示例不是穷举的,因为很多其他组合和情境是可能的。例如,除了两种cpu状态(cpu开启和pcu关闭)之外,数字子系统的其他附加状态也是可能的,这些状态可以在cpu功能和功耗的水平方面上不同。图6的附图是说明性的,并且不被限制性地解释。例如,尽管三种lppass状态中的功耗被示出为处于相同水平,但是一般地不必如此,并且各种lppass状态的特征可以在于不同的功耗水平。

图7是响应于输入信号重新配置低功率可编程模拟子系统的方法700的一个可能实施方式的流程图。方法700可以由lppass的可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件、固件或其组合的逻辑电路和/或fsm执行。该lppass可以是lppass102、302、402、512或552之一。该逻辑电路可以是逻辑电路152、352或452之一。该fsm可以是fsm158、358或458之一。方法700可以包括由耦合到io设备的pass从io设备接收第一输入信号,该pass具有多个可重新配置模拟电路以及用于与cpu传输数据的接口(710)。io设备可以是能够输入模拟信号的任何设备,包括一个或多个引脚、开关或传感器。在一些实施方式中,io设备可以包括无线电前端处理、同轴电缆、光电纤维等等。

方法700可以在pass在第一pass配置中的情况下,继续通过多个可重新配置模拟电路处理第一输入信号,其中,多个可重新配置模拟电路在第一pass配置中具有第一配置设置(720)。可重新配置pass电路可以包括图1-图4中所示的电路中的一些或全部,例如ctb、saradc、aroute、aref、多个多路复用器等。方法700可以继续基于第一输入信号生成第一输出值(730)。例如,saradc可以提供数字输入到pass的逻辑电路和/或fsm。逻辑电路和/或fsm可以生成可以表示到pass的模拟输入的第一数字输出值。方法700可以继续将多个可重新配置模拟电路重新配置为具有第二配置设置的第二pass配置,其中,第二配置设置不同于第一配置设置(740)。第二pass配置的重新配置可以响应于第一输出值而被执行。pass可以维持各种输出值与响应于特定输出值而选择的pass配置之间的对应关系。在一些实施方式中,该对应关系可以是存储在pass的一个或多个寄存器(例如,基于rom的寄存器)中的和/或存储在pass的一个或多个存储器设备(例如,ram)中的索引。在一些实施方式中,该对应关系可以参考由pass存储的一个或多个阈值。在一些实施方式中,如果第一输出值大于阈值,则将选择pass配置。在一些实施方式中,如果第一输出值小于阈值,则将选择pass配置。在一些实施方式中,在fsm的电路中编码该对应关系。

在一些实施方式中,将多个可重新配置模拟电路重新配置为第二pass配置可以通过选择fsm状态之一而执行。在一些实施方式中,用于pass的模拟电路中的一些或全部的设置可以基于选择的fsm状态而获得。在一些实施方式中,用于pass的模拟电路中的一些或全部的设置可以由pass的逻辑电路提供。在一些实施方式中,用于pass的模拟电路中的一些的设置可以由fsm提供,而用于其他模拟电路的设置则可以由逻辑电路提供。在一些实施方式中,用于一些模拟电路的设置可以在两种或更多种不同pass配置之间保持相同。

图8是响应于输入信号重新配置与数字子系统集成的低功率可编程模拟子系统的方法800的一个可能实施方式的流程图。方法800可以由上面关于方法700描述的相同设备和电路执行。方法800可以包括由耦合到io设备的pass从io设备接收第一输入信号(810)。该pass可以具有多个可重新配置模拟电路以及用于与cpu传输数据的接口。方法800可以在pass在第一pass配置中的情况下,通过多个可重新配置模拟电路继续处理第一输入信号(820)。方法800可以继续基于第一输入信号生成第一输出值(830)。在一些实施方式中,块810-块830可以与方法700的块710-块730相同。

方法800可以继续进行决策块,其中可以确定第一输出值是否满足第一阈值标准(835)。例如,可以由逻辑电路和/或fsm确定一氧化碳浓度是否已经达到了可检测水平。如果不满足第一阈值标准,则pass可以保持在第一pass配置中(840)。然而,如果确定满足第一阈值标准,则方法800可以继续确定是否满足第二阈值标准(845)。例如,在块845处,可以确定一氧化碳浓度是否已经达到了危险水平。如果不满足第二阈值标准,则方法800可以继续将多个可重新配置模拟电路重新配置为具有第二配置设置的第二pass配置(850)。在一些实施方式中,块850可以类似于方法700的块740被执行。例如,第一配置可以用于实施lppass睡眠状态,并且第二配置可以用于实施lppass活动1状态。在其他实例中,第一配置可以用于实施lppass活动1状态,并且第二配置可以用于实施lppass活动2状态。方法800可以继续lppass从io设备接收随后的(例如,第二)输入信号。在一些实施方式中,第二输入信号可以与第一输入信号相同,但是由一个或多个模拟电路存储,以用于后续在第二配置中的pass进行再处理(其可以具有更高的分辨率和/或处理准确度)。

方法800可以在pass在第二pass配置中的情况下,通过多个可重新配置模拟电路继续处理第二输入信号(870),并且继续基于第二输入信号生成第二输出值(880)。块870-块880中的动作可以类似于块810-块830中的动作被执行。然后,该方法可以循环回到进行决策块845,并且再次将第二输出与第二阈值标准进行比较。在已经不满足第二阈值标准的情况下,该方法可以继续将pass保持在第二配置中,并且根据需要重复块850-块880和块845。在已经满足第二阈值标准的情况下,方法800可以继续通过接口(例如,数字接口455)将信号(一些实施方式中,例如唤醒或中断指令)(890)输出到cpu。如果确定在pass仍然在第一pass配置中时,第一标准(块835)和第二标准(块845)都被满足,则方法800可以继续唤醒cpu(890),并且还(如虚线所示)将pass重新配置为第二pass配置。在一些实施方式中,该动作可以是可选的,并且方法800可以在cpu接管输入信号处理时结束。

应当理解,以上描述旨在是说明性的,而不是限制性的。在阅读和理解以上描述之后,许多其他实施方式对于本领域技术人员将是显而易见的。尽管本公开描述了具体示例,但是将认识到,本公开的系统和方法不限于本文描述的示例,而是可以在所附权利要求的范围内用修改来实践。因此,说明书和附图将被视为说明性意义而不是限制性意义。因此,本公开的范围应当参考所附权利要求以及这些权利要求所授权的等同物的全部范围来确定。

以上阐述的方法、硬件、软件、固件或代码的实施方式可以经由存储在机器可访问、机器可读、计算机可访问或计算机可读介质上的可由处理元件执行的指令或代码来实施。“存储器”包括以机器(例如计算机或电子系统)可读的形式提供(即存储和/或传送)信息的任何机制。例如,“存储器”包括随机存取存储器(ram),例如静态ram(sram)或动态ram(dram);rom;磁或光存储介质;闪存存储器设备;电气存储设备;光学存储设备;声学存储设备和适于以机器(例如,计算机)可读的形式存储或传送电子指令或信息的任何类型的有形机器可读介质。

在整个说明书中对“一个实施方式”或“实施方式”的引用意味着结合该实施方式描述的特定特征、结构或特性被包括在本公开的至少一个实施方式中。因此,在整个说明书中的各个地方出现的短语“在一个实施方式中”或“在实施方式中”不一定全部指代相同的实施方式。此外,特定特征、结构或特性可以以任何合适的方式组合在一个或多个实施方式中。

在前述说明书中,已经参考具体示例性实施方式给出了具体实施方式。然而,很明显,在不脱离所附权利要求中阐述的本公开的更宽的精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图应将被视为说明性意义而不是限制性意义。此外,实施方式、实施方式和/或其他示例性语言的前述使用不一定指代相同的实施方式或相同的示例,而是可以指代不同的和相异的实施方式以及潜在地相同的实施方式。

词语“示例”或“示例性”在本文中用于意味着用作示例、实例或说明。本文描述为“示例”或“示例性”的任何方面或设计不一定将解释为比其他方面或设计优选或有利。相反,词语“示例”或“示例性”的使用旨在以具体的方式呈现概念。如本申请中所使用的,术语“或”旨在意味着包括性的“或”而不是排他性的“或”。也就是说,除非另外指定,或者从上下文中清楚,否则“x包括a或b”旨在意味着任何自然的包括性排列。也就是说,如果x包括a;x包括b;或者x包括a和b两者,则“x包括a或b”在任何前述情况下都满足。另外,除非另外指定或从上下文中清楚针对单数形式,否则本申请和所附权利要求中使用的冠词“一”一般地应当被解释为意味着“一个或多个”。此外,除非如此描述,否则通篇中术语“实现”或“一个实现”或“实施方式”或“一个实施方式”的使用不旨在意味着相同的实现或实施方式。此外,如本文所用的术语“第一”、“第二”、“第三”、“第四”等意在作为区分不同元件的标记,并且可以不一定具有根据其数字指定的序数含义。

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