为具有非易失性存储器的系统动态地分配功率预算的方法及装置的制作方法

文档序号:6433517阅读:204来源:国知局
专利名称:为具有非易失性存储器的系统动态地分配功率预算的方法及装置的制作方法
技术领域
本申请可以涉及基于系统的一个或多个功率状态为具有非易失性存储器的系统动态地分配功率。
背景技术
NAND闪存,以及其它类型的非易失性存储器(“NVM”),通常用作大容量存储器。 例如,电子设备(诸如便携式媒体播放器或者蜂窝电话)通常包括未写入数据的闪存或者是存储音乐、视频、和其它媒体的闪光卡。电子设备可以使用通过诸如电池的内部电源提供的功率来操作,这需要一次又一次地充电来补充内部电源。内部电源可以通过耦合该电子设备到电源充电设备(例如,通过物理地连接电源充电设备的端子到该电子设备的端子)被再充电。然而当电源充电设备第一次被耦合到该电子设备时,可能会存在一个时间间隔,在此期间电子设备会从该电源充电设备仅仅吸收有限量的功率。在该时间间隔期间,电子设备的某些组件或这些组件的组合不能够运行,或在该有限功率预算下操作时可能不能完全运行。

发明内容
公开了用于基于一个或多个功率状态为系统动态地分配功率的系统和方法。该系统可以包括电子设备(例如,便携式媒体播放器或蜂窝电话),该电子设备可以包括处理器、非易失性存储器("NVM")、以及功率预算管理器。该NVM可以是任何合适类型的存储器,例如,闪存(例如,NAND闪存)。该NVM可以包括一个或多个NVM管芯和能够访问并操作这些管芯的相关电路。在一些实施例中,该 NVM还可以包括其自身的控制器以及其它组件,例如纠错编码模块。功率预算管理器(例如,在设备处理器或在NVM上执行)可以监控可得到的功率量并将功率预算动态地分配给每个处理器NVM,以及系统中的任何其它组件或者是处理器和/或NVM中的组件。例如,在一个实施例中,功率预算管理器可以检测到系统在低功率状态下操作。低功率状态,如这里所定义的,是当系统正从外部电源充电源接收较小量的功率 (例如,IOOmA的预定功率电平)以及该系统的内部电源(例如,电池)不能为该电子设备供电的状态。这样的低功率状态可能例如出现在电子设备和外部电源充电设备之间的通用串行总(“USB”)协议握手序列期间。响应于检测低功率状态,功率预算管理器可以将相应的功率预算动态地分配给系统的一个或多个组件中的每个组件。例如,功率预算管理器可以将功率预算动态地分配给处理器和NVM中的每一个使得处理器和NVM可以共同地操作而不超出在低功率状态期间可得到的功率。用于相应组件(例如,处理器或NVM)的功率预算可以通过使用任何数量的技术而被加强。例如,在一个实施例中,功率预算管理器可以使处理器停止,这防止处理器操作,借此保存功率以坚持功率预算。可以通过许多技术使处理器停止,例如时钟门控(例如,通过CN 102375788 A
说明书
2/12
禁用处理器电路的一个或多个部分)。作为另一个例子,使其时钟速率减速来停止处理器 (例如,将其时钟速率降低到预定水平)。作为另一个例子,功率预算管理器可以通过例如将功率细分给NVM的一个或多个组件来控制NVM的功耗。功率预算管理器还可以利用任何适当的技术中断处理器的停止。例如,功率预算管理器可以响应于接收NVM控制器发出的一个或多个标志来中断处理器的停止,其中一个或多个标志可以指示一个或多个存储操作何时已经完成。作为另一个例子,功率预算管理器可以响应于从NVM控制器接收中断请求来中断处理器的停止。在一些实施例中,如果功率预算管理器检测到当前的功率电平超过了低功率状态的功率电平,则功率预算管理器会撤销分配给系统的一个或多个组件中的每个组件的相应功率预算。在撤销相应功率预算以后,系统的组件可以从外部电源充电设备吸取足够需要的电流。在其它的实施例中,功率预算管理器可以监控系统的各个组件的功耗并相应分配功率。


本发明的上述及其它方面和优点结合附图基于下面详细描述的考虑将变得更加明显,其中贯穿全文相同的附图标记表示相同的部分,其中图1和2示出了根据本发明的各个实施例配置的电子设备的示意图;图3示出了根据本发明的各个实施例配置的示例性的电子系统的示意图;图4示出了根据本发明的各个实施例用于电子设备的组件的示例性功率预算分配的图表;图5示出了根据本发明的各个实施例用于动态功率分配的示例性过程的流程图;图6示出了根据本发明的各个实施例用于分配系统中的功率预算的示例性过程的流程图。
具体实施例方式图1是电子设备100的示例图。在一些实施例中,电子设备100可以是或可以包括便携式媒体播放器(例如,通过加拿大Cupertino的Apple公司可得到的iPod )、蜂窝电话 (例如,通过Apple公司可得到的iPhone )、袖珍的个人计算机、个人数字助理(“PDA”)、 台式计算机、膝上型计算机、以及任何其它合适类型的电子设备。电子设备100可以包括片上系统(“SoC”) 110和非易失性存储器(〃 NVM〃 ) 120。 NVM120可以包括基于浮置栅极或电荷捕捉技术的NAND闪存、NOR闪存、可擦可编程序只读存储器("EPROM“)、电可擦可编程序只读存储器(“EEPROM“)、铁电存储器(“FRAM”)、 磁阻式随机存储器("MRAM“)、任何其它已知的或未来类型的非易失性存储技术、或其任何组合。在一些实施例中,NVM 120可以包括NVM控制器122,用于利用内部芯片选择信号通过内部通道(例如,NVM控制器122和NVM管芯IM之间的一个或多个数据路径)访问并管理NVM管芯124。在一些情况下,NVM控制器122可以选择性地启动NVM管芯124中的任何管芯。例如,响应于接收来自设备处理器112的请求(例如,读取、编程、或擦除请求) 来访问NVM管芯124的特定管芯,NVM控制器122可以选择性地启动设备处理器112所请求的管芯。NVM控制器122可以执行存储管理功能,例如平均抹写、坏损区块管理、以及逻辑到物理转换操作。NVM 120可以包括纠错编码(“ECC”)引擎126,用于检测和校正数据错误(例如,翻转位)。ECC引擎1 用虚线框示出来表示它的功能可以在不同位置被执行。 在一些实施例中,ECC引擎1 可以被实施为NVM控制器122中的硬件组件或被实施为由 NVM控制器122执行的软件组件。在一些实施例中,ECC引擎126可以是NVM 120中的独立模块。可以理解由NVM控制器122执行的一个或多个功能可以由SoC 110执行。因此,在一些实施例中,NVM控制器122可以被包括为SoC 110的一部分。在这样的实施例中,NVM 120可以包括管芯IM和关联电路(例如,充电泵、行和列解码器等),但是不包括NVM控制器。
NVM管芯IM可以被安排在“块”内,它是最小的擦除单元,并且进一步被安排在 “页”内,它是最小的可编程和可读单元。每个管芯1 可以包括多个块,其可以被配置在一个或多个平面(或存储体)内。来自每个平面或管芯的块实质上可以彼此链接以形成“超级块”。NVM管芯124的每个存储位置(例如,页或块)可以利用物理地址(例如,物理页地址或物理块地址)被寻址。图1与后面的图以及各个公开的实施例一样,有时可以按照使用闪存技术来描述。然而,这不意味着是限制性的,作为代替可以执行任何其它类型的非易失性存储器。电子设备100可以例如包括其它组件,例如电源或任何用户输入或输出组件,其没有在图1中被绘出以简化图形。SoC 110可以包括设备处理器112、存储器114、以及NVM接口 118。设备处理器 112可以控制SoC 110的一般操作和功能以及设备100或SoC 110的其它组件。例如,响应于用户输入和/或应用或操作系统的指令,设备处理器112可以发出读取或写入命令到 NVM接口 118以获取来自NVM 120中的数据或将数据存储到NVM 120中。也就是,NVM接口 118可以启动NVM 120和设备处理器112之间的通信。为了简化,设备处理器112可以请求存储或检索的数据可以被称为“用户数据”,虽然该数据不是直接地与用户或用户应用相关联。此外,该用户数据可以是由设备处理器112产生或者获取的任何合适的数字信息序列 (例如,经由应用或操作系统)。设备处理器112可以包括任何以下的组合,硬件、软件、和固件、以及操作为驱动电子设备100的功能的任何组件、电路、或逻辑装置。例如,设备处理器112可以包括一个或多个处理器,其在NVM 120或存储器114中存储的软件/固件的控制下来操作。在一些实施例中,设备处理器112可以包括功率预算管理器128,其可以动态地分配功率预算给电子设备100的一个或多个组件。该一个或多个组件可以包括,例如,设备处理器112、NVM 120、NVM接口 118、以及电子设备100的任何其它合适的组件。在一些实施例中,可以基于可用于电子设备100或可用于SoC 110和NVM 120的总功率量来分配该功率预算。尽管被示为在图1中的设备处理器112上实施功率预算管理器128,但本领域技术人员将理解也可以另外或替换地在NVM控制器122上实施功率预算管理器128。将结合图 3-5更详细地讨论动态的功率分配。存储器114可以包括任何合适类型的易失性或非易失性存储器,例如动态随机存取存储器(“DRAM”)、同步动态随机存取存储器(“SDRAM”)、双倍数据速率(“DDR”)RAM、 缓冲存储器、只读存储器(“ROM”)、或其任何组合。存储器114可以包括数据源,其可临时性地存储用于编程到NVM 120或从NVM 120读取的用户数据。在一些实施例中,存储器114 可以用作为设备处理器112的一部分执行的任何处理器的主存储器。NVM接口 118可以包括硬件、软件、和/或固件的任何适当的组合,其被配置为用作设备处理器112和NVM 120之间的接口或驱动器。对于NVM接口 118中包括的任何软件模块,相应的程序代码可以被存储在NVM 120或存储器114中。NVM接口 118可以执行各种不同的功能,其允许设备处理器112访问NVM120并管理NVM120的存储位置(例如,页、块、超级块、集成电路)以及存储在其中的数据(例如,用户数据)。例如,NVM接口 118可以中断来自设备处理器112的读取或写入命令,执行平均抹写,以及产生与NVM 120的总线协议兼容的读取和编程指令。当NVM接口 118和设备处理器112被显示为单独的模块的同时,这是指仅是为了简化本发明的实施例的描述。应当理解的是,这些模块可以共享硬件组件、软件组件、或二者。例如,实施为设备处理器112的一部分的处理器可以执行用于NVM接口 118的基于软件的存储器驱动器。相应地,设备处理器112和NVM接口 118的一部分有时可以被总称为 “处理器”。图1示出了 NVM 120可以具有其自己的控制器(例如,NVM控制器122)的电子设备。在一些实施例中,电子设备100可以包括目标设备,例如闪存或SD卡,它包括NVM 120 和一些或全部NVM接口 118(例如,下面讨论的转换层)。在这些实施例中,SoC 110或设备处理器112可以用作用于目标设备的主控制器。例如,作为主控制器,SoC 110可以发出到目标设备的读取和写入请求。图2是电子设备200的示意图,其更详细地表明了根据一个或多个实施例的电子设备100(图1)的固件、软件和/或硬件组件中的一些。电子设备200可以具有与图1中所示的设备100相关的上述任何特征和功能,反之亦然。电子设备200可以包括文件系统 210、NVM驱动器212、NVM总线控制器216、以及NVM220。在一些实施例中,文件系统210和 NVM驱动器212可以是软件或固件模块,以及NVM总线控制器216和NVM 220可以是硬件模块。相应地,在这些实施例中,NVM驱动器212可以表示NVM接口 218的软件或固件方面, 以及NVM总线控制器216可以表示NVM接口 218的硬件方面。文件系统210可以包括任何合适类型的文件系统并且可以是电子设备200的操作系统的一部分(例如,图1的设备处理器112的一部分)。在一些实施例中,文件系统210 可以包括快闪文件系统,它可以提供到页面的物理映射的逻辑。文件系统210可以执行下面讨论的NVM驱动器212中的一些或所有功能,因此文件系统210和NVM驱动器212可以是或可以不是单独的模块。文件系统210可以为应用和/或操作系统管理文件和文件夹结构。文件系统210 可以在电子设备200上运行的应用或操作系统的控制下操作,并且可以在应用或操作系统请求从NVM 220读取的数据或存储在NVM 220中的信息时提供到NVM驱动器212的写入和读取命令。与每个读取或写入命令一起,文件系统210可以提供逻辑地址以表示用户数据应该在哪里被读取或写入,例如具有页偏移的逻辑块地址或逻辑页地址。文件系统210可以提供到不直接与NVM220兼容的NVM驱动器212的读取和写入请求。例如,逻辑地址可以使用基于硬盘驱动器的系统的典型的规范或协议。基于硬盘驱动器的系统,不像闪存,可以重写存储位置而不需要首先执行块擦除。此外,硬盘驱动器可能不需要平均抹写来增加设备的寿命或专门基于闪存设备的其它技术。因此,NVM接口 218 可以执行任何功能,它们是存储特殊化、厂商特殊化、或两者以便以合适NVM 220的方式用来处理文件系统请求并执行其它管理功能。NVM驱动器212可以包括转换层214。在一些实施例中,转换层214可以是或包含闪存转换层(“FTL”)。在写入操作时,转换层214可以将所提供的逻辑地址映射到NVM 220上空闲的、擦除的物理位置。在读取操作时,转换层214可以使用所提供的逻辑地址以确定被请求的数据所存储的物理地址。因为每个NVM可以根据NVM的厂商或尺寸具有不同的布局,这种映射操作可以是存储和/或厂商特殊化。转换层214可以执行除了逻辑到物理地址映射之外的任何其它合适的功能。例如,转换层214可以执行任何其它功能,它可以是典型的闪存转换层,例如无用单元收集和平均抹写。NVM驱动器212可以与NVM总线控制器216接口以完成NVM访问请求(例如,编程、读取、和/或擦除请求)。总线控制器216可以用作与NVM220接口的硬件,并且可以利用NVM220的其它规范、总线协议、和/或数据速率与NVM220通信。NVM接口 218可以基于存储器管理数据来管理NVM220,有时在这里被称为“元数据”。元数据可以由NVM驱动器212产生或者可以由NVM驱动器212控制下操作的模块产生。例如,元数据可以包括任何用于管理逻辑和物理地址、坏损块管理、平均抹写、“ECC”数据,或其任何组合之间映射的信息。元数据可以包括连同用户数据一起由文件系统210提供的数据,例如逻辑地址。因此,通常来说,“元数据”可以指任何关于用户数据或与用户数据相关的信息或者通常用来管理操作以及非易失性存储器的存储位置。NVM接口 218可以被配置为在NVM220中存储元数据。在一些实施例中,NVM接口 218可以将与用户数据相关的元数据存储在用户数据被存储的相同存储位置上(例如, 页)。例如,NVM接口 218可以将用户数据、关联的逻辑地址、以及用户数据的ECC数据存储在NVM 220的一个或多个存储位置上。NVM接口 218还可以将关于用户数据的其它类型的元数据存储在相同的存储位置中。例如,元数据可以包含表示存储的数据是否是好数据的标志οNVM接口 218可以存储逻辑地址以及关联的用户信息本身,使得在NVM220加电时或在NVM220的操作期间,电子设备200可以确定什么数据存在于指定位置。具体地,因为文件系统210可以根据它的逻辑地址而不是它的物理地址引用用户数据,NVM接口 218可以一起存储用户数据和逻辑地址以保持他们的关联性。例如,在NVM接口 218直接映射逻辑扇区到物理页的实施例中,NVM接口 218可以存储NVM的页面中的逻辑到物理映射,像信息本身一样。现在选择参考图3,示出了图示性电子系统的示意图。电子系统300可以包括电子设备302以及外部电源充电源310。在一些实施例中,电子设备302可以与图1的电子设备 100和/或图2的电子设备200相同或本质上相似。例如,电子设备302可以包括主系统或处理器304(例如,图1的SoC 110)以及 NVM306 (例如,图1的NVM 120或图2的NVM220)。在一些情况下,电子设备302可以包括电池308,该电池在被充电到至少预定电平时可以给电子设备302供电。然而,当电子设备302已经保持不充电达一段延长的时间段时,电池308最终可以充分耗尽基本上其所有的电荷。在这种状态下,电池308可能不能为电子设备302以及一个或多个其组件供电。在一些实施例中,电子设备302可以经由一个或多个电源连接336通过将电子设备302耦合到外部电源充电设备310而被再充电。外部电源充电设备310可以包括任何合适的电子充电设备或能够为电子设备302供电的系统。例如,外部电源充电设备310可以包括膝上型计算机、电源、或插接站。此外,电源连接336可以包括,例如,通用串行总线 (“USB”)连接、USB2.0连接、串行连接、并行连接、FireWire连接、任何其它合适的有线或无线电源连接、和/或其任何组合。但是,当电子设备302经由电源连接336首次被耦合到外部电源充电设备310时, 从外部电源充电设备310吸取的电流量可能是有限的。例如,如果电子设备302利用USB 连接被耦合到外部电源充电设备310,则电子设备302会在可以从外部电源充电设备310吸取最大量的功率(例如,500mAmps、lAmp,或2Amps的最大电流)之前需要首次完成与外部电源充电设备310的握手阶段。该握手阶段可以是电子设备302和外部电源充电设备310 之间的协商过程,以确定电子设备302可以从电源充电设备310吸取多少电流。在握手阶段期间,提供有限量的功率,但是在握手完成之后,能提供“商定”的功率电平。作为结果,在完成握手阶段之前,电子设备302仅仅会从外部电源充电设备310 吸取有限量的功率(例如,在正常操作期间的IOOmAmps的最大电流与500mAmps的最大电流)。因此,给定有限功率预算,处理器304可能需要动态地在其不同组件(例如,NVM和处理器)之间分配功率以确保提供足够的功率以启动选择的组件的操作。本领域技术人员会想到除了动态地分配功率给处理器304和NVM306以外,或作为动态地分配功率给处理器304和NVM306的替代,功率可以被动态地分配给电子设备302的任何其它组件。本领域技术人员还会想到尽管该论述是直接针对起于USB协议的低功率状态,但电子设备302可以通过在其不同组件之间动态地分配功率来响应任何低功率方案。 因此,低功率状态可以是外部电源(例如,电池308)不能将足够的功率提供给电子设备302 的任何状态,以便电子设备302能够以其正常操作模式来操作(例如,播放音乐或方便蜂窝电话呼叫)。与此同时,外部电源充电设备(例如,外部电源充电设备310)还可以将较低量的功率(例如,IOOmA的预定功率电平)提供给电子设备302。图4示出了用于电子设备(例如,图1的电子设备100、图2的电子设备200、或图 3的电子设备30 的组件的示例性功率预算分配400的图表。本领域技术人员会想到时间间隔、到t5不是按比例被绘出,并且因此,在一些情况下,一些时间间隔可能实际上会比其它时间间隔更长或更短。在时间t(l,功率预算管理器(例如,图1的功率预算管理器128)可以确定存储器系统在低功率状态下操作。作为结果,功率预算管理器能够分配功率预算402给处理器(例如,图1的SoC 110或图3的处理器304)以及分配功率预算404给NVM(例如,图1的NVM 120、图2的NVM220、或图3的NVM306)。功率预算402和404的组合可以等于或小于功率电平420。在时间、和、之间,功率电平420可以是在握手阶段期间提供的功率电平(例如,IOOmAmp),并且在时间t5之后,功率电平422可以是握手阶段完成之后期间提供的功率电平(例如,500mAmp、lAmp、或2Amps)。另外,因为处理器可能初始需要使用较多的功率(例如,用于发出一个或多个请求的额外的功率),所以功率预算402可能高于功率预算404。
接着,在时间、和时间、之间,处理器可以发出请求(例如,读取、擦除、或编程请求)来访问NVM。在一个实施例中,处理器可以发出一个用于NVM的请求以载入用于系统启动的一个或多个程序(例如,操作系统)。在已经发出请求之后,在时间、,功率预算管理器可以分别将功率预算406和408 分配给处理器和NVM。功率预算406和408的组合可以等于或小于功率电平420。在一些情况下,较低量的功率可以在时间、被分配给处理器,因为该处理器不需要在发出请求之后执行任何其它重要的操作。因此,功率预算406可能低于功率预算402。相反,因为NVM可以在接收到来自处理器的请求(例如,载入用于系统启动的一个或多个程序)之后执行大部分系统操作,所以该NVM可以需要较处理器而言额外的功率。因此,功率预算408可能高于功率预算406。在一些实施例中,为了使处理器在时间、和t2之间满足功率预算406,该功率预算管理器可以停止该处理器。例如,该功率预算管理器能够通过时钟门控处理器来使处理器(例如,通过禁用该处理器电路的一个或多个部分)停止。作为另一个例子,功率预算管理器能够通过使该处理器的时钟速率减速(例如,将脉冲速率降低到最低水平)来使该处
理器停止。接着,在时间t2,功率预算管理器可以响应于接收中断请求来中断该处理器的停止。例如,功率预算管理器可以从电子系统(例如,图3的电子系统300)的一个或多个组件接收中断请求。在一些实施例中,功率预算管理器可能已经从NVM接收到中断请求。例如,NVM控制器(例如,图1的NVM控制器12 能够提供中断请求给该处理器,其指令处理器以较高功率电平操作。作为另一个例子,NVM控制器可以发出一个或多个标志,该一个或多个标志能够指示一个或多个存储器操作何时已经完成。如果功率预算管理器确定已经接收到中断停止该处理器的请求,则该功率预算管理器会分别分配功率预算402和404给处理器和NVM。因此,在一些实施例中,在时间t2和时间t3之间分配的功率预算与在时间、和t2之间分配的功率预算相同或相似。较大量的功率会在时间t2被分配给处理器因为该处理器可能需要额外的功率以便继续执行系统操作(例如,执行一个或多个系统应用)。相应地,因为处理器可以在停止已经被中断之后执行大部分系统操作,所以功率预算402可能高于功率预算404。本领域技术人员会理解功率预算分配400中示出的功率预算只不过是示例性的, 并且分配给系统的每个组件的实际功率预算可以依赖于一个或多个因素。该一个或多个因素可以包括,例如,系统的当前状态、系统的一个或多个未来的状态、可得到的总功率、处理器发出的请求类型(例如,读取、编程、或擦除请求)、任何其它合适的因素、和/或其任何组合。因此,例如,在时间t3和时间、之间,功率预算管理器可以将几乎所有的可得到的功率分配给处理器(例如,功率预算410),它可以使得处理器能够执行额外的操作。此外, 在时间t4和时间t5之间,功率预算管理器可以将几平所有可得到的功率分配给NVM(例如, 功率预算412),它可以使得NVM能够执行额外的操作。接着,在时间t5,握手操作完成并且功率预算管理器不再限于低功率状态下的操作。在这一点上,功率预算管理器可以根据新的功率电平422分配功率。现在参考图5和6,根据本发明的各个实施例示出的示例性过程的流程图。这些过程可以由系统(例如,图1的系统100)中的一个或多个组件来执行。例如,功率预算管理器(例如,图1的功率预算管理器128)可以执行这些过程中的一个或多个步骤。首先回到图5,示出用于动态的功率分配的过程500。过程500可以在步骤502开始,其中功率预算管理器可以是监控系统(例如,图3的电子设备302)的可得到的功率量。在步骤504,功率预算管理器可以确定可用于系统(例如,图3的电子设备302)的功率总量是否低于预定的功率电平。如果,在步骤504,功率预算管理器确定可用于系统的总功率量不低于预定的功率电平,则过程500可以在步骤506结束。如果,在步骤504,功率预算管理器改为确定可用于系统的总功率量低于预定功率电平,则过程500会进行到步骤508。例如,功率预算管理器可能已经检测到系统在低功率状态下操作。在低功率状态期间,电子设备(例如,图1的电子设备100、图2的电子设备 200、和/或图3的电子设备302)的电池(例如,图3的电池308)不能给系统供电。与此同时,电子设备还可以从外部电源充电设备(例如,图3的外部电源充电设备310)接收较低量的功率(例如,IOOmA的预定功率电平)。例如,功率预算管理器可以通过检测电子设备正在经由USB协议与外部电源充电设备通信来检测低功率状态,并且USB协议的握手阶段还没有完成。接着,在步骤508,功率预算管理器可以将相应的功率预算动态地分配给系统的一个或多个组件中的每个组件。在一些实施例中,功率预算管理器可以基于可得到的功率量分配相应的功率预算。例如,功率预算管理器可以将功率预算动态地分配给每个处理器 (例如,图1的SoC 110或图3的处理器304)以及NVM(例如,图1的NVM 120、图2的NVM 220、或图3的NVM 306)使得处理器和NVM能够选择性地操作而不需要超过预定的功率电平。换句话说,功率预算管理器可以监控NVM和处理器的累计功耗,并确保该累计功耗不会超过预定的功率电平。在其它的实施例中,功率预算管理器可以通过例如将分配给NVM的功率细分给该 NVM的一个或多个组件(例如,一个或多个图1的NVM管芯IM或图1的NVM控制器122) 来控制NVM的功耗。在一些情况下,功率预算管理器可以基于NVM的当前操作状态在NVM 的组件之间细分功率。因此,根据该NVM的哪些组件需要较大的功率,功率预算管理器会相应地将较大的功率预算分配给那些组件并且将较小的功率预算分配给剩余的组件。在另外的实施例中,功率预算管理器可以监控该系统的各个组件的功耗并相应地分配功率。因此,响应于检测到该系统的特定组件是或需要消耗大部分功率,功率预算管理器可以将相应地较大的功率预算分配给那个组件。通过动态地分配不同的功率预算给系统的各个组件,功率预算管理器可以增强系统的性能。例如,如果NVM当前未被使用,则功率预算管理器会将较大的功率预算分配给处理器。处理器接着会通过执行额外的操作来利用这个较大的功率预算。该性能的增强对于为存储器组件分配固定的功率阈值达预定的时间段的系统而言是不能达到的。继续到步骤510,功率预算管理器可以确定可用于系统的总功率量是否高于预定功率电平。如果,在步骤510,功率预算管理器确定可用于系统的总功率量不高于预定功率电平,则过程500可以返回到步骤508。在步骤508,功率预算管理器会继续将功率预算动态地分配给该系统的组件。如果,在步骤510,功率预算管理器改为确定可用于系统的总功率量高于预定的功
1率电平,过程500会进行到步骤512。例如,功率预算管理器可能已经检测到系统在大功率状态下操作。在大功率状态期间,电子设备可以从外部电源充电设备接收大量的功率(例如,500mA)。然而,电子设备的电池仍然不能提供任何功率或足以给系统供电的功率。在一些实施例中,功率预算管理器可以通过检测到外部电源充电设备和电子设备之间的USB协议的握手阶段已经完成来检测大功率状态。作为另一个例子,功率预算管理器可能已经检测到该系统在全功率状态下操作。 在全功率状态期间,电子设备可以从外部电源充电设备和/或电池接收全部功率。在一些实施例中,功率预算管理器能够通过检测电子设备的电池完全充电而检测到该系统是在全功率状态下操作。接着,在步骤512,功率预算管理器可以移除分配给系统的一个或多个组件中的每个组件的相应功率预算。在相应功率预算已经被移除之后,系统的组件能够从外部电源充电设备吸取足够需求的电流。过程500然后在步骤506结束。现在参考图6,示出用于分配系统中的功率预算的过程600(例如,图3的电子设备30幻。在一些实施例中,过程600可以代表过程500的步骤508(图幻的更详细的观点。 因此,该系统可以在低功率状态下操作,该系统从外部电源充电设备(例如,图3的外部电源充电设备310)接收功率并且内部电源(例如,图3的电池308)不能够独立地给系统供电。在一些实施例中,总接收到的功率可以具有预定的功率电平(例如,100mA)。尽管下面的讨论涉及响应于低功率状态停止处理器(例如,图1的SoC 110或图3的处理器304),但本领域技术人员会想到类似的方法也可以应用于NVM(例如,图1的 NVMl20,图2的NVM220、或图3的NVM306)的处理器,例如NVM控制器(例如,图1的NVM控制器12 。因此,如果低功率状态继续一段较长的时间,则该处理器和该NVM控制器会交替停止过程以便增强系统的性能。过程600可以在步骤602开始。在步骤604,功率预算管理器(例如,图1的功率预算管理器128)会将第一功率预算(例如,图4的功率预算40 分配给处理器。接着,在步骤606,该处理器可能会发出请求(例如,读取、擦除、或编程请求)以访问NVM(例如,图1的NVM 120、图2的NVM 220、或图3的NVM306)。例如,处理器可以发出读取请求以访问存储在一个或多个NVM管芯(例如,图1的NVM管芯124)的存储位置中的数据。作为另一个例子,处理器会发出编程请求以将数据编程到一个或多个NVM管芯的存储位置。在一些实施例中,为了在低功率状态下操作的同时保存功率,处理器或NVM控制器 (例如,图1的NVM控制器122)会限制请求以在一个时间点访问仅一个NVM管芯。在其它的实施例中,当输入/输出(“I/O”)信号正在处理器和NVM控制器之间传输时会阻断其它系统操作。继续到步骤608,功率预算管理器可以将第二功率预算(例如,图4的功率预算 406)分配给处理器,其中第二功率预算可能低于第一功率预算。较低量的功率可以被分配给处理器,因为在发出请求之后,处理器可能不需要执行任何其它重要的操作。在步骤610,功率预算管理器可以将第三功率预算(例如,图4的功率预算408)分配给NVM,其中第二和第三功率预算的组合等于或小于预定的功率电平(例如,图4的功率电平420)。在一些情况下,因为NVM可以在从处理器接收请求之后执行大部分系统操作,所以相对于处理器而言NVM可以请求额外的功率。因此,第三功率预算可能高于第二功率预笪弁。接着,在步骤612,功率预算管理器可以停止处理器以限制功耗,使得处理器不超过第二功率预算。例如,处理器可以通过时钟门控(例如,通过禁用处理器电路的一个或多个部分)停止。作为另一个例子,处理器通过使其时钟速率减速来停止(例如,将它的时钟速率降低到最小水平)。继续到步骤614,功率预算管理器可以确定中断该处理器停止的请求是否已经被收到。例如,功率预算管理器可以从电子系统(例如,图3的电子系统300)中的一个或多个组件接收中断请求。例如,功率预算管理器(和/或处理器)可以从电子设备(例如,图 1的电子设备100、图2的电子设备200、和/或图3的电子设备302)的组件或耦合到电子设备的外部电源充电设备(例如,图3的外部电源充电设备310)接收中断请求。在一些实施例中,功率预算管理器可以从NVM接收中断请求。例如,NVM控制器可以提供中断请求给处理器,该中断请求指示处理器以较高的功率电平操作。在一些实施例中,中断请求可以被传输以便使得能够在处理器和NVM控制器之间传输I/O信号。作为另一个例子,NVM控制器可以发出一个或多个标志,其中一个或多个标志可以表示一个或多个存储操作何时已经完成。如果,在步骤614,功率预算管理器确定还没有接收到中断该停止的请求,过程 600可以返回到步骤612。在步骤612,功率预算管理器可以继续使处理器停止。如果,在步骤614,功率预算管理器改为确定已经接收到中断该停止的请求,则过程600可以进行到步骤616。在步骤616,功率预算管理器可以将第一功率预算分配给处理器。在一些实施例中,可以分配第一功率预算因为处理器可以需要大量的功率以便继续执行系统操作(例如,传输I/O信号到NVM控制器或从NVM控制器传输I/O信号)。接着,在步骤618,功率预算管理器可以将第四功率预算(例如,图4的功率预算 404)分配给NVM,其中第一和第四功率预算的组合等于或小于预定功率电平。在一些情况下,因为处理器在已经中断停止之后执行大部分系统操作,所以相对于NVM而言处理器可能需要额外的功率。因此,第一功率预算可能高于第四功率预算。过程600接着在步骤620结束。要理解的是,图5和图6的过程500和600分别仅仅是示例性的。在不背离本发明的范围的情况下,可以删除、修改、或组合任何步骤,并且可以添加任何额外的步骤。在本公开的一个实施例中,提供了一种用于动态管理包括处理器和非易失性存储器(“NVM”)的系统中的功率的方法,该方法包括在低功率状态下操作该系统,其中该系统从外部电源充电设备接收功率,接收到的功率在系统和外部电源充电设备之间的握手阶段期间具有预定的功率电平;执行该握手阶段;并且动态地分配功率预算给处理器和NVM中的每一个使得在不超过该预定的功率电平的情况下处理器和NVM共同操作。根据本实施例的一个方面,系统的电池不能为系统独立提供足够的功率使得系统可以在正常模式下操作。根据本实施例的一个方面,动态地分配功率预算进一步包括分配第一功率预算给处理器;从该处理器发出访问NVM的请求;分配第二功率预算给处理器,其中第二功率预算低于第一功率预算;以及
1
使处理器停止来限制处理器的功耗使得该功耗不会超过该第二功率预算。根据本实施例的一个方面,发出请求包括同时限制访问NVM的所有可得到的管芯的子集合的请求,该子集合包括少于能够同时被访问的所有管芯的多个管芯。根据本实施例的一个方面,该停止进一步包括时钟门控处理器。根据本实施例的一个方面,该停止进一步包括使该处理器的时钟速率减速。根据本实施例的一个方面,该方法进一步包括将第三功率预算分配给NVM,其中第二和第三功率预算的组合等于或小于预定的功率电平。根据本实施例的一个方面,该第三功率预算高于该第二功率预算。根据本实施例的一个方面,该方法进一步包括接收中断该处理器的停止的请求; 以及响应于接收到中断处理器的停止的请求,将第一功率预算分配给该处理器。根据本实施例的一个方面,该接收中断请求进一步包括接收标志,其中该标志表示至少一个存储器操作何时已经完成。根据本实施例的一个方面,该方法进一步包括将第四功率预算分配给NVM,其中第一和第四功率预算的组合等于或小于该预定的功率电平。根据本实施例的一个方面,第一功率预算高于第四功率预算。在本公开的一个实施例中,提供一种系统包括用于控制系统的操作的处理器; 操作为与该处理器通信的非易失性存储器(“NVM”),该NVM包括NVM控制器和多个NVM管芯,该NVM控制器操作为选择性地启动该多个NVM管芯中的任何一个;以及包括在处理器中的功率预算管理器,操作为将相应的功率预算动态地分配给该处理器和NVM使得该处理器和该NVM的累积功耗不超过预定的功率电平。根据本实施例的一个方面,可以在处理器和NVM控制的至少一个上执行功率预算
管理器。根据本实施例的一个方面,该NVM控制器操作为向处理器提供中断请求,所述中断请求指令该处理器以较大功率电平操作。根据本实施例的一个方面,功率预算管理器操作为监控可得到的功率量;并且基于该可得到的功率量将功率预算分配给该系统的多个组件中的每个组件。根据本实施例的一个方面,该系统的多个组件包括处理器和NVM中的至少一个。根据本实施例的一个方面,功率预算管理器操作为检测与可得到的功率量相关联的状态。在本公开的一个实施例中,提供一种在电子设备中分配功率预算的方法,该方法包括确定可用于电子设备的总功率量低于预定的功率电平;并且将相应的功率预算动态地分配给该电子设备的多个组件中的每个组件。根据本实施例的一个方面,动态地分配相应的功率预算还包括将分配给非易失性存储器的功率预算细分给该非易失性存储器的一个或多个组件。根据本实施例的一个方面,确定可得到的总功率量包括检测低功率状态,其中电子设备从外部电源充电设备接收低量的功率并且该电子设备的电池不能独立地给该电子设备供电。根据本实施例的一个方面,检测到低功率状态包括检测到该电子设备经由通用串行总线(“USB”)协议与该外部电源充电设备通信;以及检测到该USB协议的握手阶段还没有完成。根据本实施例的一个方面,该方法进一步包括确定可用于系统的总功率量高于预定的功率电平;并且移除分配给该系统的多个组件中的每个组件的相应的功率预算。根据本实施例的一个方面,确定可得到的总功率量包括检测到外部电源充电设备与电子设备之间的USB协议的握手阶段已经完成。根据本实施例的一个方面,该多个组件包括设备处理器和非易失性NAND闪存,其中第一功率预算被分配给该设备处理器以及第二功率预算被分配给NAND闪存。在本公开的一个实施例中,提供一种系统包括用于控制该系统的操作的处理器; 以及操作为与该处理器通信的非易失性存储器(“NVM”),该NVM包括NVM控制器以及多个NVM管芯,该NVM控制器操作为选择性地启动多个NVM管芯中的任何一个;以及包括在该处理器中的功率预算管理器,操作为确定可用于该电子设备的总功率量低于预定的功率电平,并且将相应的功率预算分配给该电子设备的多个组件中的每个组件。根据本实施例的一个方面,该NVM控制器操作为向处理器提供中断请求,其指令该处理器以较高的功率电平操作。根据本实施例的一个方面,该功率预算管理器操作为监控可得到的功率量,并且基于该可得到的功率量将功率预算分配给该系统的多个组件中的每个组件。本发明的所描述的实施例是为了示例性的目的而不是限制性的目的。
权利要求
1.一种用于动态管理包括处理器和非易失性存储器(“NVM”)的系统中的功率的方法, 所述方法包括在低功率状态下操作所述系统,其中所述系统从外部电源充电设备接收功率,所接收到的功率在系统和外部电源充电设备之间的握手阶段期间具有预定的功率电平;执行握手阶段;以及动态地分配功率预算给处理器和NVM中的每一个使得在不超过预定的功率电平的情况下处理器和NVM共同操作。
2.权利要求1所述的方法,其中,系统的电池不能独立地给系统提供足够的功率使得该系统能够在正常模式下操作。
3.权利要求1所述的方法,其中,动态地分配功率预算进一步包括分配第一功率预算给处理器;从所述处理器发出访问NVM的请求;分配第二功率预算给处理器,其中,第二功率预算低于第一功率预算;以及使处理器停止来限制处理器的功耗使得所述功耗不超过第二功率预算。
4.权利要求3所述的方法,其中,发出请求包括同时限制访问NVM的所有可得到的管芯的子集合的请求,所述子集合包括少于能够同时被访问的所有管芯的多个管芯。
5.权利要求3所述的方法,其中,所述停止进一步包括时钟门控处理器或使该处理器的时钟速率减速。
6.权利要求3所述的方法,进一步包括将第三功率预算分配给NVM,其中第二和第三功率预算的组合等于或小于预定的功率电平。
7.权利要求6所述的方法,其中,第三功率预算高于第二功率预算。
8.权利要求6所述的方法,进一步包括接收中断处理器的停止的请求;以及响应于接收到中断处理器的停止的请求,将第一功率预算分配给处理器。
9.权利要求3所述的方法,其中,接收中断的请求进一步包括接收标志,其中所述标志表示至少一个存储器操作何时已经完成。
10.权利要求8所述的方法,进一步包括将第四功率预算分配给NVM,其中第一和第四功率预算的组合等于或小于预定的功率电平。
11.权利要求10所述的方法,其中,第一功率预算高于第四功率预算。
12.—种系统,包括用于控制系统的操作的处理器;和操作为与处理器通信的非易失性存储器(“NVM”),所述NVM包括NVM控制器和多个 NVM管芯,所述NVM控制器操作为选择必地启动所述多个NVM管芯中的任何一个;以及功率预算管理器,与处理器和NVM耦合并且操作为将相应的功率预算动态地分配给处理器和NVM使得处理器和NVM的累积功耗不超过预定的功率电平。
13.权利要求12所述的系统,其中,NVM控制器操作为向处理器提供中断请求,所述中断请求指令处理器以较高的功率电平操作。
14.权利要求12所述的系统,其中,功率预算管理器操作为监控可得到的功率量;并且基于所述可得到的功率量将功率预算分配给系统的多个组件中的每个组件。
15.一种在电子设备中分配功率预算的方法,所述方法包括确定可用于电子设备的总功率量低于预定的功率电平;并且将相应的功率预算动态地分配给所述电子设备的多个组件中的每个组件。
16.权利要求15所述的方法,其中,动态地分配相应的功率预算还包括将分配给非易失性存储器的功率预算细分给非易失性存储器的一个或多个组件。
17.权利要求15所述的方法,其中,确定可得到的总功率量包括检测低功率状态,其中,电子设备从外部电源充电设备接收低量的功率并且电子设备的电池不能独立地给电子设备供电。
18.权利要求16所述的方法,其中,检测低功率状态包括检测到电子设备经由通用串行总线(“USB”)协议与外部电源充电设备通信;以及检测到USB协议的握手阶段还没有完成。
19.权利要求15所述的方法,进一步包括确定可用于系统的总功率量高于预定的功率电平;并且移除分配给系统的多个组件中的每个组件的相应的功率预算。
20.权利要求19所述的方法,其中,确定可得到的总功率量包括检测到外部电源充电设备与电子设备之间的USB协议的握手阶段已经完成。
21.权利要求15所述的方法,其中,所述多个组件包括设备处理器和非易失性NAND闪存,其中第一功率预算被分配给设备处理器以及第二功率预算被分配给NAND闪存。
22.—种系统,包括用于控制系统的操作的处理器;以及操作为与处理器通信的非易失性存储器(“NVM”),所述NVM包括NVM控制器以及多个 NVM管芯,所述NVM控制器操作为选择性地启动多个NVM管芯中的任何一个;以及功率预算管理器,与处理器和NVM耦合并且操作为确定可用于电子设备的总功率量低于预定的功率电平,并且将相应的功率预算动态地分配给电子设备的多个组件中的每个组件。
23.权利要求22所述的系统,其中,NVM控制器操作为向处理器提供中断请求,所述中断请求指令该处理器以较高的功率电平操作。
24.权利要求22所述的系统,其中,功率预算管理器操作为监控可得到的功率量,并且基于所述可得到的功率量将功率预算分配给系统的多个组件中的每个组件。
25.一种用于动态地控制非易失性存储器中的操作的设备,所述非易失性存储器包括用于执行权利要求1-11以及15-21中的任何一个所述的方法中的每个步骤的装置。
全文摘要
本发明涉及用于为具有非易失性存储器的系统动态地分配功率的系统和方法。系统的功率预算管理器可以确定可用于系统的总功率量是否低于预定的功率电平(例如,低功率状态)。在系统在低功率状态下操作的同时,功率预算管理器可以在系统的多个组件之间动态地分配功率(例如,处理器和非易失性存储器)。
文档编号G06F13/18GK102375788SQ20111027853
公开日2012年3月14日 申请日期2011年7月26日 优先权日2010年7月26日
发明者K·赫曼, M·拜奥姆, N·J·瓦克拉特 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1