处理设备中的非易失性逻辑阵列和电源域分割的制作方法

文档序号:13987263阅读:216来源:国知局
处理设备中的非易失性逻辑阵列和电源域分割的制作方法
本发明总体涉及非易失性存储器单元及其在系统中的使用,特别涉及与逻辑阵列组合,以提供非易失性逻辑模块。
背景技术
:许多便携式电子设备依靠电池操作,例如手机、数码相机/摄像机、个人数字助理、膝上型电脑和视频游戏。在不活动周期期间,设备可能不执行处理操作,并且可能被置于断电模式或待机功率模式以保存电力。在低功耗待机功率模式下,提供给电子设备内一部分逻辑的电源可能被关闭。然而,在待机功率模式期间漏电流的存在代表了对设计便携式、电池操作的设备的挑战。设备内的数据保持电路(例如触发器和/或锁存器)可以被用来在设备进入待机功率模式之前存储状态信息以便以后使用。数据保持锁存器(其还可以被称为阴影锁存器或气球锁存器)通常由单独的“常开”电源供电。用于在不活动周期期间减少漏电流的已知技术利用多阈值CMOS(MTCMOS)技术来实现阴影锁存器。在这种方法中,阴影锁存器利用厚栅氧化物晶体管和/或高阈值电压(Vt)晶体管来减少待机功率模式中的漏电流。阴影锁存器在正常操作期间(例如在有效功率模式期间)通常与电路的其余部分脱离,以维持系统性能。为了在“主从”触发器拓扑中保持数据,第三锁存器(例如阴影锁存器)可以被添加到主锁存器和从锁存器,用于数据保持。在其他情况下,从锁存器可以被配置为在低功耗操作期间作为保持锁存器操作。然而,仍然需要一些功率来保持所保存的状态。例如,参见美国专利7,639,056“UltraLowAreaOverheadRetentionFlip-FlopforPower-DownApplications”,其通过引用并入到此。片上系统(SoC)是已经存在了很长时间的概念;基本方法是将越来越多的功能集成到给定的设备。这种集成可以采取硬件或解决方案软件的形式。传统上通过增加的时钟速率和更先进的工艺节点来实现性能增益。许多SoC设计将微处理器核或多个核与各种外围设备和存储器电路配对。能量收集(也被称为功率收集或能量采集)是从外部源得到、捕获能量并且存储用于小型无线自治设备(例如用在可佩带电子器件和无线传感器网络中的那些设备)的过程。收集的能量可以从各种源得到,例如:太阳能、热能、风能、盐度梯度和动能等。然而,典型的能量收集器为低能量的电子器件提供非常少量的功率。能量收集器的能量源作为周围背景而存在,并且可供使用。例如,温度梯度存在于内燃机的操作中,而在城区,由于无线电和电视广播等,环境中存在大量的电磁能量。附图说明图1是根据本发明各种实施例配置的一部分示例片上系统(SoC)的功能方框图;图2是图1的SoC中使用的一个触发器群的更详细的方框图;图3是示出由铁电电容器展示的极化磁滞的图;图4-7是示出根据本发明的各种实施例配置的示例铁电非易失性位单元的原理图和时序图;图8-9是示出根据本发明的各种实施例配置的另一个示例铁电非易失性位单元的原理图和时序图;图10是示出图1的SoC中使用的示例NVL阵列的方框图;图11A和图11B是图10的NVL阵列中使用的输入/输出电路的更详细的原理图;图12A是示出根据本发明的各种实施例配置的在读取周期期间的示例偏移电压测试的时序图;图12B是示出根据本发明的各种实施例配置的在偏移电压的示例扫描期间生成的直方图;图13是示出图10的NVL阵列中奇偶校验生成的原理图;图14是示出根据本发明的各种实施例配置的NVL阵列内的示例电源域的方框图;图15是根据本发明的各种实施例配置的在NVL阵列中使用的示例电平转换器的原理图;图16是示出根据本发明的各种实施例配置的在铁电位单元内使用感测放大器的电平移位的示例操作的时序图;图17是根据本发明的各种实施例配置的示例功率检测布置的方框图;图18是示出根据本发明的各种实施例配置的向处理设备供电的的示例操作的流程图;图19是示出根据本发明的各种实施例配置的向处理设备供电的的另一个示例操作的流程图;以及图20是根据本发明的各种实施例配置的包括NVL阵列的另一个示例SoC的方框图。具体实施方式虽然现有技术系统使用保持锁存器来保持低功耗操作期间逻辑模块中的触发器的状态,但是仍然需要一些功率来保持状态。相比之下,在完全去除电源时,非易失性元件可以保持逻辑模块中的触发器的状态。这类逻辑元件在此将被称为非易失性逻辑(NVL)。在SoC(片上系统)内用NVL实现的微控制单元(MCU)可以具有在不损失功能的情况下停止、断电和加电的能力。在完全去除电源后,不需要系统复位/重启来恢复操作。这种能力对新兴的能量收集应用(例如近场通信(NFC)、射频识别(RFID)应用和嵌入式控制和监测系统)来说是理想的,例如,在这些应用中,复位/重启过程的时间和功率消耗(或称为成本)会消耗许多可用能量,从而为有用的计算、感测或控制功能留下很少能量或没有留下能量。虽然本说明书讨论了包含可编程MCU以便对SOC状态机进行排序的SOC,但本领域技术人员可以明白,NVL可以应用于硬编码到普通逻辑门或基于ROM、PLA或PLD的控制系统的状态机。在一种方法中,SoC包括一个或多个非易失性逻辑块。例如,基于非易失性逻辑(NVL)的SoC可以在接收到电力中断后备份其工作状态(所有触发器),在睡眠模式下具有零泄漏,以及在加电后需要小于400ns来恢复系统状态。没有NVL,芯片将必须在至少一个低功耗保持状态(即使在待机模式下,该状态也需要持续的电源)下保持所有触发器供电,或者必须在加电后浪费能量和时间重启。对于能量收集应用,NVL是有用的,因为没有保存触发器(FF)状态所需的恒定电源,并且即使当间歇性的电源可用时,引导代码也会独自消耗所有的收集的能量。对于具有有限的冷却和电池容量的手持设备来说,具有“瞬时接通(instant-on)”能力的零泄漏IC(集成电路)是理想的。铁电随机存取存储器(FRAM)是与DRAM(动态随机存取存储器)具有相似行为的非易失性存储器技术。可以访问每个单独的位,但是不像EEPROM(电可擦除可编程只读存储器)或闪存,FRAM不需要特殊的序列来写数据,其也不需要电荷泵来实现所需的较高编程电压。每个铁电存储器单元包含一个或多个铁电电容器(FeCap)。各铁电电容器可以用作此处所述的NVL电路中的非易失性元件。图1是示出一部分计算设备的功能方框图,在这种情况下,示例片上系统(SoC)100提供基于非易失性逻辑的计算特征。虽然术语SoC在此被用来指包含一个或多个系统元件的集成电路,但是本公开的教导可以应用于如下各种类型的集成电路,这些集成电路包含功能逻辑模块,例如锁存器、集成的时钟门控单元以及提供非易失性状态保持的触发器电路元件(FF)。在大阵列的受控环境外部嵌入非易失性存储元件对可靠性和制造性提出了挑战。通常针对任意NV-存储器技术所需的最大读取信号裕量和原位裕量可测试性而设计基于NVL位单元的NVL阵列。然而,依据面积开销,向各个NVLFF增加可测试性特征可能是禁止的。为了摊销测试特征成本并提高可制造性,参考图1和图2的示例,布置多个非易失性逻辑元件阵列或NVL阵列110和多个易失性存储元件220。至少一个非易失性逻辑控制器106被配置为控制该多个NVL阵列110以存储由多个易失性存储元件220表示的机器状态,并从该多个NVL阵列110将存储的机器状态读出到多个易失性存储元件220。例如,至少一个非易失性逻辑控制器106被配置为生成用于保存机器状态至多个NVL阵列110或从多个NVL阵列110获取机器状态的控制序列。多路复用器(MUX)212被连接以将易失性存储元件220中的各个元件可变地连接到NVL阵列110中的一个或多个对应的单独的阵列。在所示的示例中,计算设备装置被布置在单个芯片上,此处是使用基于FeCap(铁电电容)的位单元的256b迷你阵列110(此处将被称为NVL阵列)实现的SoC100,基于FeCap的位单元被分散在整个逻辑群(cloud)中以当电源被移除时保存各种触发器120的状态。FF120的每一群102-104包括关联的NVL阵列110。这种分散使得NVL阵列110的各个阵列在物理上被靠近布置并且连接以从易失性存储元件220中的对应各个元件接收数据。中央NVL控制器106控制所有的阵列和它们与FF120的通信。虽然此处示出三个FF群102-104,但是SoC100可以具有全部由NVL控制器106控制的额外的或更少的FF群。SOC100可以被划分成多于一个的NVL域,在其中有专用NVL控制器用于管理每个单独的NVL域中的NVL阵列110和FF120。现有的NVL阵列实施例使用256位的迷你阵列,但是阵列可以根据需要具有更多或更少数量的位。使用包含如下电路系统的经修改的保持触发器120来实现SoC100,所述电路系统被配置为使得数据能够从多个非易失性逻辑元件阵列的各个阵列回写至多个触发器电路的各个电路。有各种已知的方法来实现保持触发器。例如,数据输入可以由第一锁存器锁存。当第一锁存器在待机功率模式中不工作时,耦合到第一锁存器的第二锁存器可以接收用于保持的数据输入。第一锁存器从第一电源线接收电力,在待机功率模式期间第一电源线被关断。第二锁存器从第二电源线接收电力,在待机模式期间第二电源线保持接通。控制器接收时钟输入和保持信号,并提供时钟输出到第一锁存器和第二锁存器。保持信号的变化指示转换到待机功率模式。控制器继续将时钟输出保持在预定的电压电平,而第二锁存器继续在待机功率模式中从第二电源线接收电力,由此保持该数据输入。在美国专利7,639,056“UltraLowAreaOverheadRetentionFlip-FlopforPower-DownApplications”中更详细地描述了这种保持锁存器。图2示出示例保持触发器架构,该保持触发器架构不要求时钟在保持期间保持在特定的状态。在这种“时钟无关(clockfree)”NVL触发器设计中,时钟值在保持期间是“无关的或称为不关心的(don’tcare)”。在SoC100中,经修改的保持FF120包括简单的输入和控制修改,以允许例如当系统被转换到断电状态时,每个FF的状态被保存在NVL阵列110中关联的FeCap位单元中。当系统恢复时,则将保存的状态从NVL阵列110转移回到每个FF120。通过实现特定的功率配置,可以提高功率节约和数据完整性。在这样的一种方法中,各保持触发器电路包括由第一电源域(例如下述示例中的VDDL)供电的主逻辑电路部分(主级或主锁存器)以及由第二电源域(例如下述示例中的VDDR)供电的从级电路部分。在这种方法中,在从多个NVL阵列向多个易失性存储元件回写数据期间,第一电源域被配置为断电而第二电源域有效。多个非易失性逻辑元件被配置为由第三电源域(例如下述示例中的VDDN)供电,第三电源域在计算设备装置的常规操作期间被配置为断电。借助这种配置,可以实现多个电源域,这些电源域以可以专门设计以适合给定实现的方式独立地加电或断电。因此,在另一个方面,计算装置包括第一电源域和第二电源域,第一电源域被配置为向计算设备装置的切换逻辑元件供电,第二电源域被配置向如下逻辑元件供电,这些逻辑元件被配置为控制信号,以便将数据存储到多个非易失性逻辑元件阵列或从多个非易失性逻辑元件阵列读取数据。当多个易失性存储元件包括保持触发器时,第二电源域被配置为向保持触发器中的各触发器的从级供电。第三电源域为多个非易失性逻辑元件阵列供电。除了电源域,NVL阵列可以被定义为与特定功能有关的域。例如,多个非易失性逻辑元件阵列中的至少一个阵列中的第一组可以与计算设备装置的第一功能关联,并且多个非易失性逻辑元件阵列中的至少一个阵列中的第二组可以与计算设备装置的第二功能关联。多个非易失性逻辑元件阵列中的至少一个阵列中的第一组的操作独立于多个非易失性逻辑元件阵列中的至少一个阵列中的第二组的操作。经这样配置,对分离的NVL阵列域或组的控制和处理的灵活性允许对计算设备整体功能进行更多粒度地控制。这种更具体的控制也可以应用于电源域。在一个示例中,第一电源域被划分成第一部分和第二部分,第一部分被配置为向与第一功能关联的切换逻辑元件供电,第二部分被配置为向与第二功能关联的切换逻辑元件供电。第一电源域的第一部分和第二部分被单独地配置为独立于第一电源域的其它部分而被加电或断电。类似地,第三电源域可以被划分成第一部分和第二部分,第一部分被配置为向与第一功能关联的非易失性逻辑元件阵列供电,第二部分被配置为向与第二功能关联的非易失性逻辑元件阵列供电。与第一电源域一样,第三电源域的第一部分和第二部分被单独地配置为独立于第三电源域的其它部分而被加电或断电。经如此配置,如果个别的功能未用于给定设备,则与未使用的功能关联的触发器和NVL阵列可以分别与其他触发器和NVL阵列分开地断电和操作。功率和操作管理的这种灵活性允许关于功率使用和功能调整计算设备功能。这可以在下面的示例设计中进一步示出,该示例设计具有CPU、三个SPI接口、三个UART接口、三个I2C接口和仅一个逻辑电源域(VDDL)。逻辑电源域区别于保持或NVL电源域(分别为VDDR和VDDN),虽然这些教导也可以应用到那些电源域。虽然这个示例设备只有一个逻辑电源域,但该设备的给定应用可能仅使用三个SPI单元中的一个、三个UART中的一个和三个I2C外围设备中的一个。为了允许应用优化NVL应用唤醒和睡眠时间以及能量成本,VDDL电源域可以被划分为10个单独的NVL域(一个CPU、三个SPI、三个UART、三个I2C,共计10个NVL域),每个域可以独立于其他域而被启用/禁用。因此,客户可以针对其具体应用启用CPU、一个SPI、一个UART和一个I2C的NVL能力,同时禁用其他域。此外,该划分还允许时间以及能量的灵活性,并且不同的NVL域可以在不同的时间点保存和恢复状态。为了进一步增加灵活性,NVL域可以与电源域交叠。参照上面的示例,可以定义四个电源域:CPU、SPI、UART和I2C各自一个(每个外围设备电源域具有三个功能单元),同时在每个外围设备域内定义三个NVL域,以及定义一个用于CPU(再次总共有10个NVL域)。在这种情况下,除了控制每个电源域内的NVL域外,各电源域开启或关闭,以便增加功率节省和唤醒/睡眠时序的灵活性。此外,第一电源域、第二电源域和第三电源域中的每个电源域被配置为独立于第一电源域、第二电源域和第三电源域中的其他电源域而断电或加电。例如,一体的电源门(powergate)可以被配置为经控制以断电第一电源域、第二电源域和第三电源域中的每个电源域。如下表1中所述,第三电源域被配置为在计算设备装置的常规操作期间断电,而第二电源域被配置为在从多个非易失性逻辑元件阵列向多个易失性存储元件回写数据期间断电。第四电源域可以被配置为向实时时钟和唤醒中断逻辑供电。可以参考示出的示例SoC100进一步理解这些方法,其中NVL阵列110和控制器106在被称为VDDN的NVL电源域上操作,并在常规操作期间关断。所有的逻辑、诸如ROM(只读存储器)和SRAM(静态随机存取存储器)的存储器块107以及FF的主级在被称为VDDL的逻辑电源域上。FRAM(铁电随机存取存储器)阵列直接连接到专用全局供电轨(VDDZ),其维持在FRAM所需的较高固定电压(即VDDL<=VDDZ,其中VDDZ是固定的电源,而VDDL可以是变化的,只要VDDL保持在比VDDZ低的电势)。注意到,103中所示的FRAM阵列通常包含集成的电源开关,该电源开关允许FRAM阵列根据需要而被断电,但是容易看出,没有内部电源开关的FRAM阵列可以与FRAM阵列外部的电源开关结合使用。保持FF的从级在被称为VDDR域的保持电源域上,以使得在待机操作模式下能够常规保持。表1总结了正常操作、系统备份到NVL阵列、睡眠模式、系统从NVL阵列恢复以及返回到正常操作期间的电源域操作。表1还指定待机空闲模式期间使用的域,可以在系统软件的控制下启动待机空闲模式,以便使用保持触发器的易失性保持功能进入功率降低的状态。在108处指示的一组开关用于控制各种电源域。可能存在多个开关108,这些开关可以分布在整个SoC100上并由软件控制,所述软件由SoC100上的处理器和/或由SoC100内的硬件控制器(未示出)执行。除了此处示出的三个域外,还可能存在额外的域,如后面将描述的。SoC模式触发器触发器源VDDLVDDRVDDN常规操作nanaONONOFF系统备份到NVL电源坏外部ONONON睡眠模式备份完成NVL控制器OFFOFFOFF系统从NVL恢复电源好外部OFFONON常规操作恢复完成NVL控制器ONONOFF待机保持模式空闲系统软件OFFONOFF表1-系统功率模式状态信息可以被保存在大型的集中式FRAM阵列中,但将需要更多的时间来进入睡眠模式,较长唤醒时间,过度路由以及由不能并行访问系统FF所造成的功率消耗。图2是SoC100中使用的一个FF群102的更详细的方框图。在此实施例中,每个FF群包括多达248个触发器,并且每个NVL阵列被组织成8×32位的阵列,但在此实施例中一位用于奇偶校验。然而,在其它实施例中,触发器的数量和NVL阵列的组织形式可以具有不同的配置,如4×m,16×m等,其中m被选作匹配FF群的尺寸。在一些实施例中,各种群中的所有NVL阵列可以是相同大小,而在其他方法中,在同一SoC中可能有不同大小的NVL阵列。模块220是每个保持FF120的更详细的原理图。若干信号具有由后缀“B”(指“bar”或/)指示的反相版本,例如RET和RETB、CLK和CLKB等。每个保持FF包括主锁存器221和从锁存器222。从锁存器222由反相器223和反相器224形成。反相器224包括由保持信号(RET、RETB)控制的一组晶体管,该组晶体管用于在低功耗睡眠周期期间保持FF状态,在该低功耗睡眠周期期间,电源域VDDR仍然接通,而电源域VDDL关闭,如上面和表1中所述。NVL阵列110与其在群102中服务的248个FF逻辑连接。一般而言,为了使数据能够从NVL阵列传送到FF,各FF包括被配置为使得能够从多个NVL阵列110中的各个阵列回写数据的电路系统。在示出的示例中,在每个FF的从锁存器222上提供两个额外的端口,如模块220中所示。数据输入端口(门225)被配置为将数据ND从NVL阵列110中的一个插入到关联的易失性存储元件220。数据输入端口被配置为通过响应于在数据输入使能端口上接收到来自至少一个非易失性逻辑控制器106的更新信号NU以触发数据输入端口,从而允许与存储数据相关的信号从NVL阵列中的一个传送到关联的触发器电路的从级,来插入数据ND。反相器223被配置为响应于接收到反相的NVL更新信号NUZ而被禁用,以避免三态反相器223和NVL数据端口输入三态反相器225之间的电冲突。更具体地,在示出的示例中,反相器-反相器反馈对(223和224)本身形成锁存器。这些反相器构成用于保持数据状态的非常稳定的配置,并将对抗改变锁存器状态的任意企图,除非至少一个反相器被禁用,以防止当通过其中一个数据端口尝试用下一状态改写当前状态时的电冲突。与常规触发器包括一个数据端口相比,示出的NVLFF220包括访问从锁存器222的两个数据端口。一个端口通过时钟控制的cmos传输门将数据从主级221传送到从级222。当使用此端口更新从级222时,驱动到由CLK控制的传输门的输出节点的反相器224被禁用以避免电冲突,而反相器223被启用以将下一状态传送到锁存器的另一侧,使得锁存器的两侧具有下一状态,准备用于在时钟变低(对于上升沿FF)时保持数据。由于相同的原因,当ND数据端口由转换到有效高状态的NU激活时,反相器223被禁用,以避免ND端口上的电冲突。第二反相器224被启用,以将下一状态传送到锁存器的另一侧,使得锁存器的两侧具有下一状态,以当NU变低时被锁存。在这个示例中,NU端口没有以任何方式影响由时钟控制的其他数据端口。在双端口FF上,两个端口同时有效是非法的控制条件,产生的端口冲突意味着产生的下一状态将是不确定的。为了避免端口冲突,如果从状态被更新同时处于功能模式,则系统保持时钟处于无效状态。在保持模式中,RET信号和FF内的支持电路用于在处于保持模式时防止电冲突,而不管CLK状态如何(见主级中由RETB控制的反相器)。如所示,这些额外的元件被布置在关联的FF的从级222中。然而,额外的晶体管不在FF的关键路径上,而且在此特定实施中对正常FF性能和功率(模拟数据)仅具有1.8%和6.9%的影响。当来自NVL阵列的数据在ND(NVL-数据)端口上有效时,NU(NVL-更新)控制输入被脉冲到高电平持续一个周期以写入到FF。NVL阵列的三十一位数据输出扇出到8个三十一位FF组的ND端口。为了保存触发器状态,多路复用器被配置为传送来自多个易失性存储元件220中的多个单独的易失性存储元件元件的状态,以便基本同时存储在多个NVL阵列110中的单独一个NVL阵列中。例如,多路复用器可以被配置为连接到N组易失性存储元件,每组具有多个易失性存储元件中的M个易失性存储元件,并且连接到多个NVL阵列中N×M大小的NVL阵列。在此配置中,多路复用器将N组中的一组连接到N×M大小的NVL阵列,以将来自M个易失性存储元件的数据一次存储到N×M大小的NVL阵列的一行中。在示出的示例中,248个FF的Q输出通过31b宽的8-1多路复用器212连接到NVL阵列110的31b并行数据输入。为了最小化FF加载,可以基于FF群的布局将多路复用器分解为更小的多路复用器,并且被放置得靠近它们服务的FF。再次,NVL控制器同步对NVL阵列的写入以及8-1多路复用器212的选择信号MUX_SEL<2:0>。当FF在保持模式下操作时,计算设备的时钟CLK是“无关的或不关心的”,使得对于易失性存储元件来说,时钟CLK相对于每当NU信号有效时更新从级状态是不相关的,由此非易失性逻辑控制器被配置为控制和执行从易失性存储元件中的各元件到非易失性存储元件中的各元件的数据存储。换句话说,在保持模式期间NVL数据恢复的过程中不需要时钟CLK控制,但是一旦恢复系统状态,刚好在保持模式和功能模式之间的过渡之前,时钟CLK应被控制在系统级。在另一种方法中,当系统处于功能模式时,NVL状态可以被恢复到易失性存储元件。在VDDL电源有效的这种情况下,在自NVL阵列的数据恢复期间,对于易失性存储元件,时钟CLK被保持在无效状态,由此非易失性逻辑控制器被配置为控制和执行从非易失性存储元件中的各元件到易失性存储元件中的各元件的数据传输。例如,对于基于上升沿FF的逻辑,系统时钟CLK通常被保持在低电平,而对于基于下降沿FF的逻辑,系统时钟CLK通常被保持在高电平。一般来说,为了从常规操作移动到系统备份模式,第一步是将系统时钟(一个或多个)停止在无效状态以冻结机器状态,以便在备份进行时不改变。时钟被保持在无效状态直到备份完成。备份完成后,所有的电源域被断电,并且时钟的状态按照定义在睡眠模式中变为“无关的或不关心的”。当从NVL阵列恢复状态时,FF被置于保持状态(参见下面的表2),在保持状态中,只要RET信号是有效的,时钟就继续是“无关的或不关心的”(借助增加到每个保持FF的特殊晶体管,时钟可以是“无关的或不关心的”,并且由RET信号控制)。当恢复NVL状态时,触发器仍然处于保持模式,所以时钟仍然是“无关的或不关心的”。一旦NVL状态被恢复,控制系统时钟状态的机器逻辑的状态也将被恢复到它们原来在状态备份时所处的状态,这也意味着对于这个示例,将系统时钟置于无效状态的所有控制(包括易失性存储元件或FF)现在已被恢复,使得在NVL数据恢复完成后,系统时钟将仍然处于无效状态。现在RET信号可以被停用,并且系统将在时钟停用的情况下处于静止,直到NVL控制器向电源管理控制器发送恢复完成的信号,响应于此,电源管理控制器将再次使能时钟。为了在恢复期间恢复触发器状态,NVL控制器106读取NVL阵列110中的一行NVL,然后为适当的触发器组脉冲NU信号。在系统恢复期间,保持信号RET被保持在高电平,并且在电源域VDDL未被供电的情况下从ND对从锁存器进行写入;此时,系统时钟CLK的状态是“无关的或不关心的”。在VDDL=0V且VDDR=VDD的情况下将FF置于保持状态,以便抑制与假数据切换有关的过多功耗,所述假数据切换发生在NVL阵列读取操作期间更新每组31个FF时。适当修改的非保持触发器可以用于基于NVL的SoC中,其代价是在NVL数据恢复操作期间功耗较高。一旦VDDL上升,系统时钟CLK就应该从低电平开始,其后用FF中的更新信息继续正常的同步操作。可以以串行方式或并行方式或其任何组合完成NVL阵列和其相应的FF之间的数据传输,以权衡峰值电流和备份/恢复时间。因为直接访问被提供给由至少一个非易失性逻辑控制器控制的FF,该至少一个非易失性逻辑控制器与用于计算设备装置的中央处理单元分离,所以对于NVL操作不需要来自微控制器处理单元(CPU)的干预;因此该实现是SoC/CPU架构不可知的。表2总结了NVL触发器的操作。表2-NVL触发器真值表因为该至少一个非易失性逻辑控制器被配置为基于输入信号,以并行方式、顺序方式或其任何组合可变地控制向多个非易失性阵列的数据传输或从多个非易失性阵列的数据读取,所以关于针对特定需求调整系统操作规范,系统设计人员具有额外选择。例如,因为在系统进入低功耗系统状态或从低功耗状态唤醒的时间期间,在MCUSoC上不会发生计算,所以最小化唤醒时间或进入睡眠的时间是有利的。另一方面,非易失性状态保持是功率密集型的,因为需要大量的能量来将状态保存到非易失性元件(例如铁电电容器),或从非易失性元件恢复状态。保存和恢复系统状态所需的功率能够超出电力输送系统的容量并引起问题,例如电迁移引起的电网退化、由于过度峰值电流汲取而导致的电池寿命减少、或者在电源系统上产生能够降低管芯上的信号完整性的高电平噪声。因此,允许系统设计者能够在这两个关注点之间进行平衡是期望的。在一个这种方法中,该至少一个非易失性逻辑控制器106被配置为通过用户接口(U/I)125(例如,本领域技术人员已知的那些接口)接收输入信号。在另一个方法中,该至少一个非易失性逻辑控制器被配置为从可能正在执行应用的单独的计算元件130接收输入信号。在一个这种方法中,该单独的计算元件被配置为执行应用,以至少部分地基于用于计算设备装置130的功率和计算资源需求的确定来确定对多个非易失性阵列的读取序列。经如此配置,系统用户能够掌控系统状态存储和获取过程,以适应给定的设计。图3是示出由铁电电容器表现出的极化磁滞的绘图。铁电位单元的一般操作是已知的。当大多数材料被极化时,所感应的极化P几乎精确地与所施加的外部电场E成比例;所以该极化是线性函数,被称为介电极化。除了是非线性的,当所施加的电场E是零时,铁电材料还展示出如图3中所示的自发非零极化。铁电体的不同特征是:自发极化可以由所施加的电场反转;极化不仅依赖于当前的电场,而且还依赖于它的历史,从而产生磁滞回线。术语“铁电”用于指示具有自发磁化并且也表现出磁滞回线的铁磁材料的类似物。由于铁电材料的晶体结构中形成的半永久性电偶极子的影响,铁电电容器的介电常数通常远高于线性电介质的介电常数。当外部电场被施加到铁电电介质上时,偶极子趋向于将它们与电场方向对齐,在原子位置中产生小偏移,其导致晶体结构中电荷分布的偏移。去除电荷后,偶极子保持它们的极化状态。二进制“0”和“1”被存储在每个数据存储单元中,作为两个可能的电极化之一。例如在图中,可以使用负剩余极化302编码“1”,并可以使用正剩余极化304编码“0”,或反之亦然。已经以若干配置实现了铁电随机存取存储器。FeRAM阵列中一晶体管、一电容器(1T-1C)的存储单元设计在结构上与广泛使用的DRAM中的存储单元的类似之处在于,两种单元类型包括一个电容器和一个存取晶体管。在DRAM单元电容器中使用线性电介质,而在FeRAM单元电容器中,介电结构包括铁电材料,典型地是锆钛酸铅(PZT)。由于访问DRAM型阵列的开销,1T-1C单元很少期望用于诸如NVL阵列110的小阵列中。四电容器、六晶体管(4C-6T)单元是更易于用在小阵列中的常见类型单元。现在将描述改进的四电容器单元。图4是示出包括四个电容器和十二个晶体管(4C-12T)的铁电非易失性位单元400的一个实施例的原理图。四个FeCap被布置成差分布置中的两对。FeCapC1和C2串联连接以形成节点Q404,而FeCapC1'和C2'串联连接以形成节点QB405,其中经由位线BL将数据位写入到节点Q并存储在FeCapC1和C2中,并且经由反相位线BLB将数据位的反相写入到节点QB并存储在FeCapC1'和C2'中。感测放大器410耦合到节点Q和节点QB,并被配置为当读取位单元时感测节点Q、QB上出现的电压差。感测放大器410中的四个晶体管被配置为两个交叉耦合的反相器,以形成锁存器。传输门402被配置为将节点Q耦合到位线B,而传输门403被配置为将节点QB耦合到位线BLB。使用并联连接的PMOS器件和NMOS器件实现每个传输门402、403。该布置降低了在写操作期间传输门两端的电压降,使得在写期间节点Q、QB上呈现较高的电压,由此将较高的极化赋予FeCap。极板线1(PL1)耦合到FeCapC1和C1',而极板线2(PL2)耦合到FeCapC2和C2'。极板线用于在读写操作期间向FeCap提供偏置。替代地,在另一实施例中,可以用NMOS传输门取代cmos传输门,所述NMOS传输门使用电压高于VDDL的传输门使能端。较高的电压幅度必须大于通常的NMOS的Vt,以便将未退化的信号从位单元Q/QB节点传送到位线BL/BLB或从位线BL/BLB传送未退化的信号(即V传输_门_控制(Vpass_gate_control)必须大于VDDL+Vt)。典型地,将存在位单元400的阵列。然后可能存在多列类似的位单元,以形成n行×m列的阵列。例如在SoC100中,NVL阵列是8×32;然而,如之前所讨论的,可以实现不同的配置。图5和图6是分别示出用于读取逻辑0的数据值和写入逻辑0的数据值的读取波形和写入波形的时序图。对NVL阵列的读取和写入是多周期过程,该多周期过程可以由NVL控制器控制并由NVL时钟同步。在另一实施例中,例如从触发信号开始,波形可以由固定或可编程的延迟排序。在常规操作期间,典型的4C-6T位单元容易受到由于在存储“1”的一侧上FeCap两端的恒定DC偏置导致的依赖时间的介电击穿(TDDB)的影响。在差分位单元中,由于还存储了数据值的反相版本,因此一侧或另一侧将始终存储“1”。为了避免TDDB,当不访问该单元时,极板线PL1、极板线PL2、节点Q和节点QB被保持在静态的低值,如图5和图6中在时间段s0期间所示。电源断开晶体管MP411和MN412允许感测放大器410响应于感测放大器使能信号SAEN和SAENB而在时间段s0期间与电源断开。钳位晶体管MC406耦合到节点Q而钳位晶体管MC’407耦合到节点QB。钳位晶体管406、407被配置为在非访问时间段s0期间响应于清零信号CLR而将Q和QB节点钳位到约等于极板线上的低逻辑电压(在本实施例中等于0伏(地电位))的电压。以这种方式,在不访问位单元以进行读取或写入期间,没有电压被施加到FeCap两端,因此基本上消除了TDDB。钳位晶体管还用来防止由于寄生漏电流而导致的在节点Q和QB上累计的任何杂散电荷(straycharge)。杂散电荷的累计可能会使Q或QB上的电压升至0伏以上,从而在Q或QB和PL1和PL2之间的FeCap两端导致电压差。这会导致对FeCap剩余极化的非预期去极化,并可能潜在地破坏存储在FeCap中的逻辑值。在此实施例中,Vdd是1.5伏,而地参考平面具有0伏的值。逻辑高具有大约1.5伏的值,而逻辑低具有大约0伏的值。使用与地为逻辑0(低)以及Vdd为逻辑1(高)不同的逻辑电平的其它实施例将节点Q、QB钳位到对应于静态极板线电压的电压,使得在不访问位单元时,FeCap两端等效地没有电压。在另一实施例中,可以使用两个钳位晶体管。这两个晶体管中的每一个都用于将每个FeCap两端的电压钳位到不大于一个晶体管的Vt(阈值电压)。每个晶体管用于短路FeCap。在这种情况下,对于第一晶体管,一个端子连接到Q而另一个端子连接到PL1,而对于晶体管二,一个端子连接到Q而另一个端子连接到PL2。晶体管可以是NMOS或PMOS,但是更有可能使用NMOS。典型地,使用两晶体管解决方案的位单元不比一晶体管解决方案消耗明显更多的面积。单个晶体管解决方案假定PL1和PL2将保持在与到单个钳位晶体管的本地VSS连接相同的地电位,这通常是一个很好的假定。然而,可能出现噪声或其他问题(尤其是在加电期间),噪声或其他问题可能导致PL1或PL2的毛刺或者在PL1/PL2驱动器输出和VSS之间具有DC偏移持续短暂的时期;因此,两晶体管设计可以提供更鲁棒的解决方案。为了读取位单元400,将极板线PL1从低电平切换到高电平,同时保持极板线PL2为低电平,如时间段s2中所示。这在节点Q、QB上感应出电压,其值分别取决于C1-C2和C1'-C2'之间的电容器比率。感应的电压继而取决于在对位单元中的FeCap的上一次数据写入操作期间形成的每个FeCap的剩余极化。剩余极化实际上“改变”了每个FeCap的有效电容值,该有效电容值为FeCap如何提供非易失性存储。例如,当逻辑0被写入到位单元400时,C2的剩余极化使其具有较低的有效电容值,而C1的剩余极化使其具有较高的有效电容值。因此,当通过切换极板线PL1到高电平同时保持极板线PL2为低电平而将电压施加到C1-C2两端时,节点Q上生成的电压符合公式(1)。类似的公式也适用于节点QB,但是C1'和C2'的剩余极化顺序是相反的,使得节点Q和QB上生成的电压提供对位单元400中所存储的数据值的差分表示,如图5中502、503处所示。然后在时间段s3期间使能本地感测放大器410。在感测差分值502、503后,感测放大器410产生全轨信号504、505。在时间段s4期间,通过断言传输门使能信号PASS、PASSB以使能传输门402、403,将得到的全轨信号传送到位线BL、BLB,并且由此响应于例如位于NVL阵列110的外围的锁存器使能信号LAT_EN而将该全轨信号传送到输出锁存器。图6是示出将逻辑0写入到位单元400的时序图。写入操作开始于在时间段s1期间将两个极板线提高到Vdd。这被称为主存储方法。PL1和PL2上的信号转换容性地耦合到节点Q和QB,从而有效地将两个存储节点几乎一直拉到VDD(1.5V)。在时间段s2-s4期间,在位线BL、BLB上提供数据并且由传输信号PASS使能传输门402、403,以将数据位及其反相值从位线传输到节点Q、QB。在时间段s3、s4期间,由感测放大器使能信号SAEN、SAENB使能感测放大器410,以在写入数据驱动器在时间段s2期间在Q/QB上已强加足够的差分之后提供额外的驱动。然而,为了避免从感测放大器到1.2v驱动器电源的短路,在时间段s3、s4期间开启感测放大器之前,在时间段s2结束时关闭写入数据驱动器。在被称为二次存储方法的替换实施例中,在整个数据写入操作中,写入操作将PL2保持在0v或地。这可以在数据写入操作期间节省功率,但是将得到的读信号裕量降低了50%,因为C2和C2'不再经由剩余极化保持数据,而只向C1和C2FeCap提供线性的电容负载。关键状态,例如在读取期间,在s2期间PL1高到SAEN高,在s3期间SAEN高脉冲,以及在写入期间,在s3-4期间FeCap的DC偏置状态,可以选择性地进行多个周期,以提供更高的鲁棒性而不减慢NVL时钟。对于基于FeCap的电路,从FeCap读取数据可能部分地去极化电容器。出于这个原因,从FeCap读取数据被认为本质上是破坏性的,即读取数据可能破坏FeCap的内容或至少降低数据完整性。出于这个原因,如果包含在FeCap中的数据在读取操作已经发生后被预计仍然有效,则数据必须写回到FeCap。在某些应用中,可以指派特定的NVL阵列来存储在一段时间内不会改变的特定信息。例如,某些系统状态可以被保存为默认的返回状态,其中返回到该状态对完全重新启动设备是优选的。用于最先进的超低功耗SoC的重新启动和配置过程会花费1000-10000个时钟周期或更长来达到控制被移交给主应用程序代码线程的点。对于电力是间歇性的、不可靠的并且数量有限的能量收集应用来说,这个启动时间变得至关重要。重新启动的时间和能量成本会消耗大部分或全部的可供计算使用的能量,从而阻止了可编程器件(例如MCU)被用在能量收集应用中。示例应用将是能量收集光开关。从按压光开关上的按钮收集的能量表示可供完成以下任务的整个能量:1)确定期望的功能(开/关或调光水平),2)将请求格式化为命令包,3)唤醒无线电并经由RF链路将包注射(squirt)到发光系统。由于严格的能量限制,具有硬编码状态机的已知定制ASIC芯片经常用于此应用,这使得系统改变缺乏灵活性且昂贵,因为每当期望任何改变时,必须设计和制造新的ASIC芯片。可编程MCUSOC将更适合该应用,除了启动过程的功率消耗消耗了大部分的可用能量,没有为执行所需的应用代码留下预算。为了解决这个问题,在一种方法中,多个非易失性逻辑元件阵列中的至少一个被配置为在完成给定量的启动过程后,存储表示计算设备装置状态的启动状态。这种方法中的至少一个非易失性逻辑控制器被配置为响应于检测到之前的系统复位或计算设备装置的功率丢失事件,而控制代表启动状态的数据从多个非易失性逻辑元件阵列中的至少一个到多个易失性存储元件中对应的易失性存储元件的恢复。为了在典型的读取/写入操作期间为NVL阵列节省功率,该至少一个非易失性逻辑控制器可以被配置为执行往返(round-trip)数据恢复操作,该操作在从单独的非易失性逻辑元件读取数据之后自动将数据回写到该单独的非易失性逻辑元件,而不需要完成分开的读取操作和写入操作。图7中示出了往返数据恢复操作的示例执行,其示出了位单元400上的回写操作,其中位单元被读取,然后被写入相同的值。如所示,通过将第一极板线PL1切换到高电平,以基于对应的铁电电容器位单元的铁电电容器的电容比率而在该对应的铁电电容器位单元的节点上感应出电压,在第一时间S1处开始启动从单独的非易失性逻辑元件读取数据。如果钳位开关用于将铁电电容器的节点接地,则在该第一时间S1处将清零信号CLR从高电平切换到低电平,以将该单独的非易失性逻辑元件的那些方面(aspect)从电气地松开。在第二时间S2处,感测放大器使能信号SAEN被切换到高电平,使得感测放大器能够检测节点上感应出的电压,并且提供对应于在该单独的非易失性逻辑元件中存储的数据的输出信号。在第三时间S3处,传输线PASS被切换到高电平,以打开传输门,从而提供对应于该单独的非易失性逻辑元件中存储的数据的输出信号。在第四时间S4处,第二极板线PL2被切换到高电平,从而在铁电电容器两端感应出极化信号,以将数据回写到对应于在该单独的非易失性逻辑元件中存储的数据的对应的铁电电容器位单元。为了该单独的非易失性逻辑元件到在其中存储有相同数据的非易失性存储状态,在第五时间S5处,第一极板线PL1和第二极板线PL2被切换到低电平,传输线PASS在第六时间S6处被切换到低电平,并且感测放大器使能信号SAEN在第七时间S7处被切换至低电平。如果钳位开关用于将铁电电容器的节点接地,则在第七时间处将清零信号CLR从低电平切换到高电平,以将该单独的非易失性逻辑元件的各方面钳位到电气地,从而帮助维持数据完整性,如在此所讨论的。与不同的且分开的读取和写入操作(读取,然后写入)所需的转换相比,这个过程包括总数更少的转换。这降低了总体的能量消耗。位单元400被设计为最大化Q/QB两端的读取差值,以便提供高度可靠的第一代的NVL产品。在每一侧上使用两个FeCap,而不是使用一个FeCap和恒定的BL电容作为负载,因为这倍增了供给感测放大器的差分电压。感测放大器被置于位单元内,以防止由于节点Q和BL电容之间的电荷共享而导致的差值损失,并且避免传输门两端的电压降。感测的电压大约是VDD/2,并且HVT传输门花费较长时间来将它们传递到BL。位单元400帮助实现两倍的本领域已知的常规FRAM位单元的信号裕量,并且在FeCap两端不允许任何DC压力。图5和图6中所示的信号时序用于说明目的。各种实施例可以发送根据时钟速率、工艺参数、设备尺寸等而变化的信号序列。例如,在另一实施例中,控制信号的时序可以如下操作。在时间段S1期间:PASS从0变到1并且PL1/PL2从0变到1。在时间段S2期间:SAEN从0变到1,在此时间期间,感测放大器可以执行后面将描述的电平移位,或者为非电平移位的设计提供额外的驱动强度。在时间段S3期间:PL1/PL2从1变到0,而波形的其余部分保持相同,但前移了一个时钟周期。此序列比图6示出的序列短一个时钟周期。在另一替换中,控制信号的时序可以如下操作。在时间段S1期间:PASS从0变到1(BL/BLB、Q/QB分别为0V和VDDL)。在时间段S2期间:SAEN从0变到1(BL/BLB、Q/QB分别为0V和VDDN)。在时间段S3期间:PL1/PL2从0变到1(BL/Q通过PL1/PL2耦合到地电平以上,并由SA和BL驱动器驱动回到低电平)。在时间段S4期间:PL1/PL2从1变到0,而波形的其余部分保持相同。图8-9是示出铁电非易失性位单元800(基于2C-3T自参考的NVL位单元)的另一个实施例的原理图和时序图。与标准的1C-1TFRAM位单元相比,先前所述的基于4-FeCap的位单元400在感测放大器的每一侧上使用两个FeCap,以得到具有双倍裕量的差分读取。然而,基于4-FeCap的位单元具有较大的面积,并且可能具有较大的变化,因为它使用了更多的FeCap。通过使用自身作为参考(此处称为自参考),位单元800有助于在较小面积下实现类似差分4-FeCap的裕量。通过使用较少的FeCap,它还比4FeCap的位单元具有较少的变化。典型地,单侧单元需要使用处于位单元的操作范围中间的参考电压。和双侧单元相比,这继而将读取裕量降低一半。然而,随着电路制造工艺的推进,参考值可能变得偏斜,从而进一步降低了读取裕量。自参考方案允许单侧单元与自身进行比较,由此提供更高的裕量。对此处所述的自参考单元的测试已经提供了相对于固定参考单元至少是两倍的裕量。位单元800具有两个FeCapC1、C2,它们串联连接以形成节点Q804。极板线1(PL1)耦合到FeCapC1而极板线2(PL2)耦合到FeCapC2。极板线用于在读写操作期间向FeCap提供偏置。传输门802被配置为将节点Q耦合到位线B。使用并联连接的PMOS器件和NMOS器件实现传输门802。这种布置降低了在写入操作期间传输门两端的电压降,使得在写入期间节点Q、QB上呈现较高的电压,由此将较高的极化赋予FeCap。替换地,可以以提升的字线电压使用NMOS传输门。在这种情况下,PASS信号将被提升一个NFET的Vt(阈值电压)。然而,这可能会导致可靠性问题和过多的功耗。使用CMOS传输门向位单元增加额外的面积,但改善了速度和功耗。钳位晶体管MC806耦合到节点Q。钳位晶体管806被配置为在非访问时间段s0期间响应于清零信号CLR而将Q节点钳位到约等于极板线上的低逻辑电压(在此实施例中为0伏(地))的电压。以此方式,在没有访问位单元以便进行读取或写入期间,在FeCap两端没有施加电压,因此基本上消除了TDDB和非预期的部分去极化。节点Q、极板线PL1和PL2的初始状态均为0,如图9时间段s0处所示,所以当没有访问位单元时,在FeCap两端没有DC偏置。为了开始读取操作,PL1被切换到高电平而PL2保持在低电平,如时间段s1期间所示。基于FeCap根据先前写入到单元的最后一个数据值所保持的极化,在节点Q上根据电容比率形成信号902,如上面关于等式1所述的。通过将电压通过传输门802传输到位线BL上,然后响应于第二使能信号EN1而传送通过传输门822,该电压被存储在位单元外部的读取电容器820上。注意到,在传输门802、822和823被使能之前,BL和读取电容器被预充电到VDD/2,以便当经由BL将Q上恢复的信号传输到读取存储电容器820和821时,最小化经由电荷共享而造成的信号损失。然后,在时间段s2期间,PL1被切换回低电平,并且使用钳位晶体管806将节点Q放电。接下来,在时间段s3期间,PL2被切换为高电平并保持PL1为低电平。新的电压904在节点Q上形成,但是这次是以相反的电容器比率形成。然后,经由传输门823将此电压存储在另一个外部读取电容器821上。因此,相同的两个FeCap用于读取高信号和低信号。然后,感测放大器810可以通过使用存储在外部读取电容器820、821上的电压来确定位单元的状态。典型地,将存在位单元800的阵列。图8中示出了经由位线801耦合到读取传输门822、823的一列位单元800-800n。然后可以存在多列相似的位单元以形成n行×m列的阵列。例如,在SoC100中,NVL阵列是8×32;然而,如之前所述,可以实现不同的配置。例如读取电容和感测放大器可以位于存储器阵列的外围。图10是更详细地示出NVL阵列110的方框图。在大阵列的受控环境外嵌入非易失性元件呈现出可靠性和制造的挑战。如之前参照图1所述,在面积开销方面,向各NVLFF增加可测性特征可能是禁止的。为了摊销测试特征成本并提高可制造性,使用分散在整个逻辑群中的基于FeCap的位单元的256b迷你-NVL阵列110来实现SoC100,以便当电源被移除时保存各种触发器120的状态。FF120的每个群102-104包括关联的NVL阵列110。中央NVL控制器106控制所有的阵列和他们与FF120的通信。虽然可以以任意数量的n行m列配置实现NVL阵列,但是在这个示例中,用八行和三十二位列的位单元的阵列1040实现NVL阵列110。每个单独的位单元(例如位单元1041)耦合到由行驱动器1042提供的一组控制线。之前所述的控制信号,包括极板线(PL1,PL2)、感测放大器使能信号(SEAN)、传输门使能信号(PASS)和清零信号(CLR),均由行驱动器驱动。对于每一行位单元,有一组行驱动器。每个单独的位单元(例如位单元1041)还经由位线耦合到一组输入/输出(IO)驱动器1044。在此实现中,存在32组IO驱动器,例如IO驱动器组1045。每个驱动器组产生输出信号1047,当读取一行位线时,输出信号1047提供数据值。每条位线行进一列位单元的长度,并耦合到用于该列的IO驱动器。每个位单元可以被实现为例如2C-3T位单元800。在这种情况下,单个位线将被用于每一列,并且感测放大器和读取电容器将位于IO驱动器模块1044中。在NVL阵列110的另一个实现中,每个位单元可以被实现为4C-12T位单元400。在这种情况下,位线将是针对每列具有两个IO驱动器的差分对。比较器接收位线的差分对并产生最终的单个位线,这个位线被提供给输出锁存器。NVL阵列110的其他实现可以结合将在下面更详细描述的行驱动器和IO驱动器使用其他已知的或以后开发的位单元。时序逻辑1046生成时序信号,时序信号用于控制读取驱动器,以针对每个读写操作生成控制信号序列。可以使用同步或异步状态机,或者其它已知或以后开发的逻辑技术来实现时序逻辑1046。一个潜在的替换实施例利用具有多个输出的延迟链,多个输出在期望的间隔处从延迟链“抽头(tap)”,以生成控制信号。多路复用器可以用于为每个控制信号提供多个时序选择。另一个潜在的实施例使用可编程延迟发生器,可编程延迟发生器以期望的间隔使用连接到合适控制信号的专用输出产生边缘。图11A和图11B是图10的NVL阵列中使用的一组输入/输出电路1150的更详细的原理图。返回来参照图10,IO模块1044中的三十二个驱动器的每个IO组1045类似于IO电路1150。I/O模块1044提供若干特征以有助于NVL位的可测试性。现在参照图11A和图11B,第一锁存器(L1)1151在读取期间用作输出锁存器,并且还与第二锁存器(L2)1152结合以形成扫描触发器。扫描输出(SO)信号被路由到写入驱动器模块1158中的多路复用器1153,以在调试期间允许将扫描的数据写入到阵列中。扫描输出(SO)还耦合到下一组IO驱动器的扫描输入(SI),以形成32位扫描链,该32位扫描链可以用于读取或写入NVL阵列110的完整的一行比特。在SoC100内,每个NVL阵列的扫描锁存器以串联方式连接以形成扫描链,从而允许使用扫描链访问所有的NVL阵列。替换地,可以以并行方式操作每个NVL阵列内的扫描链(N个阵列将生成N个链),以减少每个链上的内部扫描触发器位的数量,以便加快扫描测试。链的数量和每条链上NVL阵列的数量可以根据需要而改变。典型地,SoC100内的所有的存储锁存器和触发器包括扫描链,以允许完成SoC100的测试。扫描测试是公知的,此处不需要更详细地描述。在此实施例中,NVL链与芯片上的逻辑链隔离,使得可以独立地训练(exercise)链,并且NVL阵列可以在没有对逻辑链组织、实现或控制的任何依赖的情况下被测试。NVL扫描链的最大总长度将总是小于逻辑链的总长度,因为NVL链长度被减小一个因子(divisor),该因子等于NVL阵列中的行数。在当前实施例中,每个NVL阵列有8个条目(entry),所以NVL扫描链的总长度是逻辑扫描链总长度的1/8。这减少了访问和测试NVL阵列所需的时间,并且因此减少了测试成本。同样,它消除了确定逻辑触发器、它们在逻辑扫描链上的位置以及它们对应的NVL阵列位的位置(识别阵列、行和列位置)之间的映射的需要,从而极大简化了NVL测试、调试和失效分析。虽然扫描测试是有用的,但它并不为SoC100的生产测试提供良好的机制,因为它可能花费相当大量的时间来扫描几百或几千个位,以便测试SoC100内的各种NVL阵列。这是因为不存在对NVL阵列内的位的直接访问。每个NVL位单元耦合到关联的触发器,并通过保存触发器的状态而被仅写入到关联的触发器。因此,为了将模式测试从关联的触发器加载到NVL阵列,必须使用扫描链设置对应的触发器。确定扫描链上的哪些位必须被设置或清除以便控制NVL阵列中的特定行的内容是复杂的任务,因为连接是基于硅管芯上的任意触发器组的物理位置而不是基于任何常规算法进行的。因此,触发器到NVL位置的映射无需被控制,并且通常有些随机。在IO驱动器1150内提供一种改进的测试技术。返回来参照图1,NVL控制器106具有状态机(一个或多个),以针对芯片上的所有NVL阵列执行快速通过/失败测试,从而筛选坏管芯。在这样一种方法中,至少一个非易失性逻辑控制器被配置为控制内建自测试模式,在该模式下,所有的0或所有的1被写入到多个NVL阵列中的至少一部分NVL阵列,然后确定从该至少一部分NVL阵列读取的数据是全1还是全0。这通过以下步骤来完成:首先使用全0/1写入驱动器1180将全0或全1写入到一行,施加偏移扰动电压(V_Off),然后使用并行读取测试逻辑1170读取同一行。如果来自数据锁存器1151的数据输出信号(OUT)为高电平,并且来自相邻列的IO驱动器的并行读测试逻辑“与(AND)”门G1的信号corr_1为高电平,则来自“与”门G1的信号corr_1变为高电平。以这种方式,NVL阵列110中的32组I/O模块1150的G1“与”门实现大的32输入“与”门,该32输入“与”门告诉NVL控制器,对于NVL阵列110的选定行,所有的输出是否为高。对于读取0,“或(OR)”门G0做相同的动作。以这种方式,NVL控制器可以指导SoC100内的所有的NVL阵列对选定行同时执行全1写入,然后指导所有的NVL阵列同时读取该选定行,并仅使用少量的控制信号提供通过/失败指示,而不将任何明确的测试数据从NVL控制器传输到NVL阵列。在典型的存储器阵列BIST(内建自测试)实现中,BIST控制器必须访问所有的存储器输出值,使得可以比较每个输出位和预期的值。假定在典型的硅SOC芯片上有几千个逻辑触发器,NVL阵列输出的总数也可以以千计地度量。使用普通的BIST逻辑电路来测试这些阵列将是不切实际的,这是因为需要大量的数据连接和数据比较器。对于具有八行的NVL阵列来说,那么NVL测试方法会重复八次(重复的次数将根据阵列组织而变化。在一个示例中,10条目NVL阵列实现将重复该测试方法10次),使得SoC100中所有的NVL阵列可以被测试,以便在仅八个写入周期和八个读取周期中校正全1操作。类似地,SoC100中所有的NVL阵列可以被测试,以便在仅八个写入周期和八个读取周期中校正全0操作。所有的NVL阵列的结果可以被缩减为单个信号,该单个信号通过额外的“与”门和“或”门指示通过或失败,额外的“与”门和“或”门从每个NVL阵列接收corr_0和corr_1信号并产生单个信号corr_0和corr_1信号,或者NVL控制器可以查看每个单独的corr_0和corr_1信号。全0/1写入驱动器1180包括PMOS器件M1、M3和NMOS器件M2、M4。器件M1和M2串联连接以形成耦合到位线BL的节点,而器件M3和M4串联连接以形成耦合到反相位线BLB的节点。由NVL控制器106生成控制信号“all_1_A”和反相的“all_1_B”。当在写入周期期间断言时,它们激活器件M1和M4,使位线BL和BLB被上拉,以表示逻辑1的数据值。类似地,由NVL控制器106生成控制信号“all_0_A”和反相的“all_0_B”。当在写入周期期间有效时,它们激活器件M2和M3,使位线BL和BLB被上拉,以表示逻辑0的数据值。以这种方式,32个驱动器可操作为响应于控制信号而将全1写入到一行位单元,并响应于另一个控制信号而将全0写入到一行位单元。本领域技术人员可以很容易地设计其他电路拓扑来完成相同的任务。当前实施例是优选的,因为它仅需要4个晶体管来完成所需的数据写入。在正常写入操作期间,写入驱动器块1158接收要被存储到数据输入(data_in)信号上的数据位值。写入驱动器1156、1157将互补的数据信号耦合到位线BL、BLB,由此耦合到选定的位单元。写入驱动器1156、1157由写入使能信号STORE使能。图12A是示出读取周期期间偏移电压测试的时序图。为了将扰动电压施加到位单元,在读取期间修改状态s1。该附图示出用于读取数据值“0”(节点Q)的电压扰动测试;用于数据值“1”的电压扰动测试是相似的,但是将扰动电压注入到感测放大器的另一侧(节点QB)。因此,在本实施例中,基于正在读取的逻辑值,扰动电压被注入到感测放大器的低压侧。传输门1154、1155耦合到位线BL、BLB。由NVL控制器106、由片外测试控制器或者经由外部生产测试器编程未示出(例如可能在片上,或者在片外,在外部测试器中)的数模转换器,以产生期望量的偏移电压V_OFF。NVL控制器106可以在s1时间段期间断言用于位线侧存储“0”的Vcon控制信号,由此使能Vcon传输门1154、1155,在s1期间使用M2/M4放电另一条位线,并在s1期间断言控制信号PASS以开启传输门402、403。这将“0”存储侧的节点Q/QB上的电压初始化到偏移电压V_Off,如1202处所示。该预充电的电压降低了在s3期间供给到SA的差值,如1204处所指示,从而使位单元更接近失效。对于快速生产测试,V_Off可以被设置到所需的裕量值,然后使用G0-1的通过/失败测试可以用于筛选出任何失效的管芯。图12B示出了偏移电压扫描期间生成的直方图。可以通过扫描V_Off并使用读取周期序列扫描出读取数据位来研究位级失效裕量,如上所述。在这个示例中,最坏情况的读取裕量是550mv,平均值是597mv,而标准方差是22mv。以这种方式,可以容易地确定SoC上每个NVL阵列中的所有位单元的操作特性。如上所述,在大阵列的受控环境外部嵌入非易失性元件呈现出可靠性和制造挑战。应当针对任意NV-存储器技术所需的最大读取信号裕量和原位可测试性来设计NVL位单元。然而,NVL实现不能依靠像SRAM的内建自测试(BIST),因为NVL阵列分布在逻辑群内部。上述NVL实现包括由中央NVL控制器106控制的NVL阵列。当为满意的行为筛选管芯时,NVL控制器106运行片上执行的一系列步骤而无需任何外部测试器介入。该测试器只需要发出开始信号,并施加对应于期望的信号裕量的模拟电压。控制器首先向NVL阵列中的所有位写入全0或全1。然后,它开始读取阵列,一次一行。NVL阵列读取操作不必紧跟NVL阵列写入操作。通常,高温烘烤周期被插入到数据写入操作和数据读取操作之间,以便加快依赖时间和温度的失效机制,使得可以在与制造相关的测试期间筛选出将影响长期数据保持性的缺陷。如上更详细描述的,该阵列包含对阵列的所有输出进行“与”运算和“或”运算的逻辑。这两个信号被发送到控制器。在读取每一行之后,控制器查看来自阵列的两个信号,并基于它先前所写的内容决定在扰动电压的存在下数据读取是否正确。如果数据不正确,则它发出失败信号到测试器,此时,测试器可以排除该管芯。如果该行通过,则控制器移动到阵列中的下一行。可以以正常NVL时钟频率并行测试所有阵列。这使得能够对NVL阵列进行高速片上测试,其中测试器只发出开始信号并提供期望的读取信号裕量电压,而NVL控制器在内建测试过程结束时报告通过,或者每当首次检测到失效行时生成失败信号。失败被立即报告,所以测试器可以在首次失败时中止测试过程,而不是浪费额外的测试时间来测试剩余的行。这是很重要的,因为用于所有非易失性存储器(NVM)的测试时间和测试成本通常占据了具有嵌入式NVM的SOC的整个测试成本的主要部分。如果NVL控制器激活“完成(done)”信号而失败信号在测试过程期间的任意时刻未被激活,则经历测试的管芯已经通过了所需的测试。为了进一步的失效分析,控制器还可以具有调试模式。在这种模式下,测试器可以指定阵列和行数,然后NVL控制器可以仅对该行进行读取或写入。可以使用NVL扫描链扫描出读取内容。这种方法提供了对管芯上的任意NVL位的读取或写入访问,而无需CPU干预或无需使用长的复杂SOC扫描链,在该扫描链中,NVL阵列位到各触发器的映射是随机的。此外,这可以与施加用于读取信号裕量确定的模拟电压配合完成,所以可以测量用于各个位的精确裕量。这些能力有助于使NVL实用,因为在没有可测试性特征的情况下,在产品中使用非易失性逻辑元件将是有风险的。此外,在管芯上进行通过/失败测试而与测试器交互最小减小了测试时间,由此减小了成本。使用分布在逻辑群中的迷你阵列的NVL实现意味着类似ECC的复杂错误检测方法将需要在每个阵列基上使用大量的额外存储器列和控制逻辑,从面积的观点看,这可能是禁止的。然而,为了提供增强的可靠性水平,SoC100的NVL阵列可以包括奇偶校验保护作为低成本错误检测方法,如现在将要更详细描述的。图13是示出NVL阵列110中奇偶校验生成的原理图,NVL阵列110示出了具有32列位(0:31)的示例NVL阵列,奇偶校验生成将输入数据值DATA_IN1151与前一列的IO驱动器的类似“异或(XOR)”门的输出进行“异或”运算。再次参照图11A,NVL阵列的每个IO驱动器部分(例如部分1350)可以包含“异或”门1160。在行写入期间,列30中的“异或”门1160的输出是正在写入到位列0:30中的该行数据的整体奇偶校验值,并且被用于通过将其输出馈送给NVL迷你阵列的列31的数据输入端而将奇偶校验值写入到最后一列,如图11B中XOR_IN所示。以类似的方式,在读取期间,“异或”门1160将经由多路复用器1161来自读取锁存器1151的数据值DATA_OUT(参见图11A和图11B)与前一列的IO驱动器的类似的“异或”门的输出进行异或运算。在位列30中的“异或”门1160的输出是从位列0:30读取的该行数据的整体奇偶校验值,并且用于与从位列31中读取的奇偶校验值在奇偶校验错误检测器1370中进行比较。如果从读取的数据中确定的整体奇偶校验值与从列31中读取的奇偶校验位不匹配,则声明奇偶校验错误。当检测到奇偶校验错误时,其指示存储的FF状态值是不可信的。因为NVL阵列通常是在SoC处于电源关闭状态后重新启动操作时进行读取,因此检测到奇偶校验错误指示需要执行完整的启动操作,以便重新生成正确的FF状态值。然而,例如,如果在关闭电源之前没有正确地存储FF状态,或者这是全新的器件,则可能存在不确定的状况。例如,如果NVL阵列为空,则通常所有位可能具有值0,或者它们可能全部具有值1。在全0的情况下,为全0生成的奇偶校验值将是零,这将匹配奇偶校验位值0。因此,奇偶校验测试将错误地指示FF状态是正确的且不需要启动操作,而其事实上需要启动操作。为了防止这种情形发生,例如奇偶校验位的反相版本可以由位线驱动器1365写入到列31。再次参照图11A,注意到,虽然用于列0-30的位线驱动器1156也将输入数据位反相,但是当data_in位被接收到时多路复用器1153将它们反相,所以结果是列0-30中的数据被存储为未反相的。在另一个实施例中,例如可以反相数据位而不反相奇偶校验错误。在全1的情况下,如果有偶数个列,则计算出的奇偶校验将等于0,并且反相值1将被存储在奇偶校验列中。因此,在偶数个数据列均为全1的NVL阵列中将不会检测到奇偶校验错误。为了防止这种情形发生,NVL阵列110被限制为具有奇数个数据列。例如在此实施例中,有31个数据列和1个奇偶校验列,共有32个位单元列。在一些实施例中,当NVL读取操作发生时,用于NVL阵列的控制逻辑使奇偶校验位被读取、反相和回写。这允许NVL阵列检测先前的NVL阵列写入何时是不完整的或无效的/受损的。剩余极化没有被单个读取周期彻底地擦除。通常,花费5-15个读取周期来完全去极化FeCap,或者将数据破坏得足以可靠地触发NVL读取奇偶校验。例如,如果由于电力丢失而在最后一个NVL存储操作期间仅写入8个NVL阵列行中的4行,则这将最有可能导致不完整地捕捉先前的机器状态。然而,由于剩余极化,在最近的状态存储序列中未被写入的4行将可能仍然包含来自以前(例如两个NVL存储事件之前)的陈旧数据,而不是来自最近的NVL数据存储事件的数据。来自这4行的奇偶校验和陈旧数据将可能被读取作为有效数据而不是无效数据。当在下一个唤醒/加电事件期间从NVL阵列恢复机器状态时,这极有可能导致机器死锁或崩溃。因此,通过在读取每个条目之后回写反相的奇偶校验位,每一行的陈旧数据基本上被强制无效。将数据回写到NVL条目是功率密集型的,所以优选不要将数据回写到所有位,而只是奇偶校验位。阵列的当前实施例禁用PL1、PL2以及用于所有非奇偶校验位(即数据位)的感测放大器使能信号,以最小化该特征的寄生功耗。用这种方式,每次SoC从无电状态转换到加电状态时,可以作出有效确定,即从NVL阵列读取的数据包含有效的FF状态信息。如果检测到奇偶校验错误,则可以执行启动操作,而不是从NVL阵列恢复FF状态。返回来参照图1,低功耗SoC100具有多个电压和电源域,例如用于NVL阵列的VDDN_FV、VDDN_CV,用于睡眠模式保持锁存器和阱供电的VDDR,以及用于形成系统微控制器、各种外围设备、SRAM、ROM等的逻辑块的体区的VDDL,如之前关于表1和表2所述。FRAM具有内部电源开关并连接到常开电源VDDZ。此外,VDDN_FV域可以被设计为在一个电压下操作,例如FeCap位单元所需的1.5伏,而VDDL和VDDN_CV域可以被设计为在较低的电压下操作以节约功率,例如0.9-1.5伏。这种实现需要在适当区域中使用电源开关108、电平转换和隔离。现在将更详细地描述关于NVL模块110所需的隔离和电平转换这两方面。电路被设计为使得VDDL/VDDN_CV可以是小于或等于VDDN_FV的任意有效电压,并且该电路将正确运转。图14是示出NVL阵列110内电源域的方框图。可以如表3中所示布置各种逻辑和存储器模块。表3-示例全芯片电源域使用单独的一组电源开关(例如之前所述的开关108)控制表3中描述的电源域VDDL、VDDN_CV、VDDN_FV和VDDR。然而,对于某些情况可能需要隔离。IO缓冲器模块1044内的数据输出缓冲器在NVL逻辑电源域VDDN_CV中,因此在芯片正常操作期间,在域VDDR(或VDDL,这取决于具体的实现)为接通时,数据输出缓冲器可能保持关闭。在这样的情况下,ISO-低隔离被实现为将所有这种信号接地。虽然VDDN_CV关闭,但是如果来自VDDN_CV域的任意信号是悬浮的(当VDDN_CV域断电时未被驱动)并且他们未被隔离,则连接到随机逻辑区域中的VDDR(或VDDL,这取决于具体的实现)域中的数据输出的逻辑可能在内部电路中的电源和地之间生成短路电流。这同样适用于NVL阵列的correct_0/1输出和扫描输出。此处总的想法是,当NVL阵列未被供电时,NVL阵列的任意输出将被隔离。假使在芯片中存在常开逻辑,则必须在VDD域外围处使用输入隔离将从VDDL或VDDN_CV到VDD的所有信号隔离。额外的内建隔离存在于NVL触发器的ND输入处。这里,输入行进到传输门,传输门的控制信号NU由常开信号驱动。当预期输入是不确定的时,NU被置为低电平,由此禁用ND输入端口。类似的内建隔离存在于NVL阵列的数据输入和扫描输入上。在NVL恢复期间当VDDL为关闭时将需要此隔离。此外,信号NU和NVL数据输入多路复用器使能信号(mux_sel)必须仅在VDDR域中被缓冲。这同样适用于保持使能信号。为了使能各种节电操作模式,VDDL和VDDN*域在各种时间被关闭,并且隔离使得这是可能的而不产生短路电流。在NVL阵列的行进到NVL位单元的控制输入(例如:行使能信号、PL1、PL2、恢复信号、返回(recall)信号和清零信号)上需要从较低电压VDDL域到较高电压VDDN域的电平转换。通过允许能够在较低电压下操作的SOC逻辑模块和NVL逻辑门这样操作,这能够降低系统功耗。对于位单元阵列1040中的每一行位单元,有一组字线驱动器1042驱动每行位单元的信号,例如包括极板线PL1、PL2、传输门使能信号PASS、感测放大器使能信号SAEN、清零使能信号CLR和电压裕量测试使能信号VCON。位单元阵列1040和字线电路模块1042由VDDN供电。到1042的输入信号的电平移位由专用电平移位器处理(参见图15),而到位单元阵列1040的输入的电平移位由NVL位单元内电路的特殊序列处理,而无需增加任何额外的专用电路到阵列数据路径或位单元。图15是NVL阵列110中使用的电平转换器1500的原理图。图15示出一个字线驱动器,其可能是一组字线驱动器1402的一部分。电平转换器1500包括PMOS晶体管P1、P2和NMOS晶体管N1、N2,它们形成在1.5伏VDDN域中的区域1502中,用于字线驱动器1042。然而,时序和控制模块1046中的控制逻辑位于1.2vVDDL域(1.2v用于表示范围可以从0.9V到1.5V的可变VDDL核心电源)中的区域1503中。1.2伏信号1506表示由控制模块1046生成的行控制信号中的任一个,用于访问NVL位单元阵列1040。反相器1510在区域1503中形成一对互补的控制信号1511、1512,它们接着被路由到电平转换器1500中的晶体管N1和N2。在操作中,当1.2伏信号1506变为高电平时,NMOS器件N1将PMOS器件P2的栅极拉低,这使P2将信号1504上拉到1.5伏。类似地,当1.2伏信号1506变为低电平时,互补信号1512使NMOS器件N2将PMOS器件P1的栅极拉低,这上拉PMOS器件P2的栅极并允许信号1504变为低电平,大约0伏。NMOS器件必须比PMOS强壮,所以转换器不被卡住。以这种方式,电平移位可以在电压域上完成,并且可以通过将控制逻辑(包括反相器1510)放置在较低的电压域1503中,来节省功率。对于每个信号,控制器通过两个互补控制信号1511、1512耦合到每个电平转换器1500。图16是示出使用铁电位单元内的感测放大器的电平移位操作的时序图。再次参照图2,在写入操作期间,从多路复用器212提供给NVL阵列110的输入数据也需要从1.2v的VDDL域被电平移位到FeCap在1.5伏的VDDN域中最佳操作所需的1.5伏。这可以使用例如位单元400的感测放大器完成。再次参照图4和图13,注意到,每个位线BL(例如BL1352,其来自1.2伏的VDDL域)耦合到位单元400内的传输门402或403。感测放大器410在1.5v的VDDN电源域中操作。现在参见图16,注意到,在时间段s2期间,在位线BL、BLB上提供数据,并且在时间段s2期间由传输信号PASS使能传输门402、403,以将数据位及其反相值从位线传输到差分节点Q、QB。然而,如1602处所示,传输的电压电平仅限于小于1.5伏的电平,因为位线驱动器位于1.2v的VDDL域内。在写入数据驱动器(例如写驱动器1156、1157)在时间段s2期间在Q/QB上强加足够的差分1602之后,在时间段s3、s4期间由感测放大器使能信号SAEN、SAENB使能感测放大器410以提供额外的驱动,如1604处所示。由于感测放大器由较高电压(VDDN)供电,因此感测放大器将对由写入数据驱动器在感测放大器两端建立的差分进行响应,并将感测放大器的逻辑0侧钳位到VSS(Q或QB),而包含逻辑1的另一侧被上拉至VDDN电压电平。以这种方式,现有的NVL阵列硬件被重复使用,以提供NVL存储操作期间的电压电平移位功能。然而,为了避免从感测放大器到1.2v驱动器电源的短路,在时间段s3、s4期间开启感测放大器之前,在时间段s2期间结束时将写入数据驱动器与感测放大器隔离。这可以通过在时间段s2后去断言STORE信号而关闭位线驱动器来完成,和/或也可以通过在时间段s2后去断言PASS而禁用传输门来完成。使用上述布置,在处理或计算设备操作周期中的各个点处最大化功率节省或利用率的各种配置是可能的。在这样一种方法中,计算设备可以被配置为在一系列电源中断下连续操作而不丢失数据或重新启动。参照图17中所示的示例,如上所述的处理设备1700包括多个非易失性逻辑元件阵列1710、多个易失性存储元件1720以及至少一个非易失性逻辑控制器1730,该至少一个非易失性逻辑控制器1730被配置为控制所述多个非易失性逻辑元件阵列1710以存储由所述多个易失性存储元件1720表示的机器状态,并将存储的机器状态从所述多个非易失性逻辑元件阵列1710读取到所述多个易失性存储元件1720。电压或电流检测器1740被配置为感测来自输入电源1750的电力质量。电源管理控制器1760与电压或电流检测器1740通信以接收关于来自电压或电流检测器1740的电力质量的信息。电源管理控制器1760还被配置为与至少一个非易失性逻辑控制器1710通信以提供实现将机器状态存储至多个非易失性逻辑元件阵列1710和从多个非易失性逻辑元件阵列1710恢复机器状态的信息。电压调节器1770经连接以从输入电源1750接收电力并提供电力到输出电源轨1755,输出电源轨1755被配置为提供电力到处理设备1700。电压调节器1770被进一步配置为与电源管理控制器1760通信,并且响应于确定电力质量低于阈值而将输出电源轨1755与输入电源1750断开(例如通过控制开关1780)。电源管理控制器1760和电压或电流检测器1740与至少一个非易失性逻辑控制器1730和电压调节器1770一起工作,以独立于主计算路径而管理数据备份和恢复过程。在一个这样的示例中,电源管理控制器1760被配置为响应于确定电力质量低于阈值而发送信号,以实现用于处理设备1700的时钟的停止。接着,响应于将输出电源轨1755与输入电源1750断开,电压调节器1770可以发送断开信号到电源管理控制器1760。响应于接收到断开信号,电源管理控制器1760发送备份信号到至少一个非易失性逻辑控制器1710。在完成系统状态备份到NVL阵列后,可以从SOC去除电源,或者电源可以继续降级而没有机器状态的丢失的进一步问题。在不同的方法中,确定电力质量的各元件可以不同。例如,电压调节器1770可以被配置为检测电力质量升到高于阈值,并响应于此,发送良好电源信号到电源管理控制器1760。作为响应,电源管理控制器1760被配置为发送信号以提供电力到多个非易失性逻辑元件阵列1710和至少一个非易失性逻辑控制器1730,以有助于机器状态的恢复。电源管理控制器1760被配置为确定加电完成,并且响应于此,发送信号以实现用于处理设备1700的时钟的释放,其中处理设备1700在确定电力质量低于阈值之前从机器状态恢复操作。为了确保处理设备1700具有足够的功率来完成备份过程,电荷存储元件1790被配置为提供足够的临时电源到处理设备1700,以在输出电源轨1755与输入电源1750断开后为它供电足够长,从而在多个非易失性逻辑元件阵列1710中存储机器状态。电荷存储元件1790可以是被设计为存储这种应急电源的至少一个专用管芯上(或管芯外)的电容器。在另一种方法中,电荷存储元件1790可以是自然产生的寄生电荷在管芯中累积的电路,其中从电路到地的电荷耗散提供足够的功率来完成备份操作。图18示出NVL域和电源域单独控制的示例方法的方面。该方法包括操作使用多个易失性存储元件的处理设备1802和将存储在多个易失性存储元件中的数据存储到多个非易失性逻辑元件阵列中。多个非易失性逻辑元件阵列中的至少一个阵列中的第一组与处理设备的第一功能关联,而多个非易失性逻辑元件阵列中的至少一个阵列中的第二组与处理设备的第二功能关联。相应地,该方法包括控制多个非易失性逻辑元件阵列中的至少一个阵列中的第一组的操作独立于多个非易失性逻辑元件阵列中的至少一个阵列中的第二组的操作1804。能够借助被配置为独立地控制多个NVL阵列的专用非易失性逻辑元件阵列控制器,通过使单独的非易失性逻辑元件阵列控制器独立地控制关联的一个或更多个NVL阵列或其组合,来提供这种独立的控制。此外,可选地或可替代地,可以将具有独立的NVL阵列控制的各电源域隔开,其中不同的隔离物能够独立地被加电或断电。例如,多个易失性存储元件中的各个元件的主逻辑电路部分由第一电源域供电,其中与第一功能关联的切换逻辑元件由第一电源域的第一部分供电1806。与第二功能关联的切换逻辑元件由第一电源域的第二部分供电1808。在这种情况下,该方法包括独立于第一电源域的其他部分单独地加电或断电第一电源域的第一部分和第二部分1810。因此,在第二部分被断电时第一部分可以被加电。类似地,能够将其他的电源域隔开。例如,与第一功能关联的非易失性逻辑元件阵列能够由第三电源域的第一部分供电1812,而与第二功能关联的非易失性逻辑元件阵列由第三电源域的第二部分供电1814。在这种情形下,该方法包括独立于第一电源域的其他部分单独地加电或断电第三电源域的第一部分和第二部分1816。此外,可以独立地控制各电源域。在这个示例中,多个易失性存储元件中的各个元件的主逻辑电路部分由第一电源域供电。逻辑元件由第二电源域供电,其被配置为控制信号,以便将数据存储到多个非易失性逻辑元件阵列或从多个非易失性逻辑元件阵列读取数据,且多个非易失性逻辑元件阵列由第三电源域供电。该方法可以接着包括独立于第一电源域、第二电源域和第三电源域中的其他电源域加电或断电第一电源域、第二电源域和第三电源域中的每个电源域。在该方法中,处理设备可以按照下面的方式操作。响应于接收到指示系统电力中断的信号,处理设备进入系统备份模式以及加电第三电源域。响应于至少一个非易失性逻辑控制器确定系统备份模式完成,处理设备进入睡眠模式并断电第一电源域、第二电源域和第三电源域。响应于在睡眠模式接收到指示电力恢复的信号,处理设备进入系统恢复模式以及通电第二电源域和第三电源域并维持第一电源域断电。响应于至少一个非易失性逻辑控制器确定系统恢复模式完成,处理设备进入常规操作模式,加电第一电源域和第二电源域并断电第三电源域。经如此配置,能够实现电力控制的各种组合,从而改善处理设备中的效率。图19是示出向计算设备供电的操作的流程图,该计算设备具有多个非易失性逻辑元件阵列、多个易失性存储元件和至少一个非易失性逻辑控制器。计算设备包括第一电源域,其被配置为向计算设备的切换逻辑元件供电;第二电源域,其被配置为向逻辑元件供电,其中逻辑元件被配置为控制信号,以便将数据存储到多个非易失性逻辑元件阵列或从多个非易失性逻辑元件阵列读取数据;和第三电源域,其被配置为向多个非易失性逻辑元件阵列供电。该方法包括接收到指示系统电力中断(例如电力减弱或完全丧失)的信号1902,而作为响应,进入系统备份模式并加电第三电源域,并且维持第一和第二电源域通电1904。在备份模式期间,易失性存储元件的机器状态被存储在如上面讨论的非易失性逻辑元件阵列中。至少一个非易失性逻辑控制器确定系统备份模式完成1906,而作为响应,设备进入睡眠模式并断电第一电源域、第二电源域和第三电源域1908。响应于在睡眠模式接收到指示电力恢复的信号1910,该方法进一步包括进入系统恢复模式、通电第二电源域和第三电源域并维持第一电源域断电1912,从而避免状态被恢复到易失性存储元件时的多余数据切换电源使用。至少一个非易失性逻辑控制器确定系统恢复模式完成1914。作为响应,该方法包括进入常规操作模式、加电第一电源域和第二电源域并断电第三电源域,以便消除泄露到NVL阵列的电力。经如此配置,减少了多余逻辑切换的多余电力损失和在系统状态恢复期间NVL存储的伴随寄生电力消耗。系统示例图20是包括如上所述的NVL阵列的另一个SoC2000的方框图。SoC2000的特征在于,Cortex-M0处理器核2002、通用异步接收器/传送器(UART)1904和SPI(串行外围接口)2006接口以及10KBROM2010、8KBSRAM2012、64KB(铁电RAM)FRAM2014存储器块,这些表征了商业超低功率(ULP)微控制器。基于130nmFRAM工艺的SoC使用单个1.5V电源、8MHz的系统时钟和用于NVL操作的125MHz时钟。SoC消耗75uA/MHz和170uA/MHz,并且分别运行来自SRAM和FRAM的代码。备份和恢复2537个FF的整个系统状态的能量和时间成本分别只需要4.72nJ和320ns以及1.34nJ和384ns,其为这类设备设置了行业标准。SoC2000为每个NVL位提供了测试能力,如上更详细地描述的,并且提供了550mV的原位读取信号裕量。SoC2000具有由10个NVL阵列服务的2537个FF和锁存器。中央NVL控制器控制所有阵列及其与FF的通信,如上面更详细地描述的。分布式NVL迷你阵列系统架构有助于摊销测试特征成本,从而实现仅3.6%开销的SoC面积,同时具有每位2.2pJ/0.66pJ的异常低的系统级睡眠/唤醒能量成本。虽然本发明特别适用于例如在片上系统(SoC)上实现的微控制器(MCU),但是其也适用于其他形式的处理器。SoC可以包含一个或多个模块,每个模块包括与由设计库提供的与预先设计的功能电路结合的定制设计的功能电路。虽然本发明已参照说明性实施例进行描述,但该描述并不旨在被解释为限制意义。在参考此说明后,本发明的其它各种实施例对本领域技术人员将是显而易见的。例如,其他便携式或移动系统(例如遥控器、门禁卡和钥匙扣、智能信用/借记卡和仿真器、智能手机、数字助理,以及现在已知的或以后开发的其他任何便携式或嵌入式系统)可以包括此处所述的NVL阵列,以允许从完全断电状态几乎立即恢复到完全操作状态。虽然在此描述了耦合到非易失性FeCap位单元的保持锁存器的实施例,但是在另一个实施例中,来自NVL阵列的非易失性FeCap位单元可以耦合到不包括低功耗保持锁存器的触发器或锁存器。在这种情况下,例如,系统将在全功率状态或另外的基于降低的电压或时钟速率的降低的功率状态以及完全断电状态之间转换。如上所述,在关闭电源之前,触发器和锁存器的状态将被保存在分布式NVL阵列中。当电源恢复时,将经由关联的NVL阵列位单元提供的输入初始化触发器。可以以硬件、软件、固件或其任意组合实现此公开中所述的技术。如果在软件中实现,则可以在一个或多个处理器(例如微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或数字信号处理器(DSP))中执行该软件。执行该技术的软件最初可以存储在计算机可读介质中并在处理器中加载和执行,计算机可读介质例如是光盘(CD)、软盘、磁带、文件、存储器或其他任意的计算机可读存储设备。在一些情况下,该软件也可以在计算机程序产品中销售,其包括计算机可读介质和用于该计算机可读介质的包装材料。在一些情况下,可以通过可移动的计算机可读介质(例如软盘、光盘、快闪存储器、USB密钥)、通过来自另一种数字系统上的计算机可读介质的传输路径等分布所述软件指令。虽然此处以顺序方式呈现和描述方法步骤,但是所示和所述的一个或多个步骤可以被省略、重复、同时执行和/或以不同于图中所示和/或此处所述的顺序的顺序执行。因此,发明的实施例不应被认为是限制图中所示和/或此处所述的具体步骤顺序。因此,可预期的是,权利要求将覆盖落入发明真实范围内的实施例的任意此类修改。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1