用于智能备用电容器管理的方法和装置与流程

文档序号:15829066发布日期:2018-11-03 00:16阅读:133来源:国知局

本主体申请涉及用于智能备用电容器管理的方法和装置。

背景技术



技术实现要素:

本公开涉及用于智能管理存储设备中的备用电容器以便延长电容器寿命的方法、系统和装置。根据一些实施方案,一种方法,所述方法包括以下步骤:监测设备的功率消耗以便确定当前备用能量需求,该当前备用能量需求包括在设备主电源中断的情况下为设备供电以用于数据备份和掉电操作所需能量的量。基于当前备用能量需求,设备的多个备用电容器中的一个或多个备用电容器可被接通或关闭,其中多个备用电容器被配置为使得多个备用电容器中保持开启状态的那些备用电容器在主电源中断期间为设备提供备用能量。

根据其他实施方案,一种计算机可读存储介质,所述计算机可读存储介质包含处理器可执行指令,该处理器可执行指令被配置为使存储设备的控制器接收来自功率监测器部件的与存储设备相关的功率消耗数据,并基于功率消耗数据来确定存储设备的当前备用能量需求。然后,控制器可基于当前备用能量需求接通或关闭存储设备的多个备用电容器中的一个或多个备用电容器。控制器定期重复执行接收、确定和接通或关闭操作。如果控制器检测到存储设备中的电源故障,则控制器执行数据备份和掉电操作,而多个备用电容器中保持开启状态的那些备用电容器为存储设备供电。

根据其他实施方案,固态驱动器(“ssd”)装置包括控制器、将ssd装置的电源电路连接到主机设备以及从主机设备向ssd装置提供功率的电源连接器、插置在电源连接器与ssd装置的其他部件之间并且被配置为监测ssd装置的功率消耗并且向控制器提供功率消耗数据的功率监测器、连接到电源电路并且被配置为在来自主机设备的ssd装置的电力中断的情况下向ssd装置提供备用能量的多个备用电容器,以及多个切换部件,所述多个切换部件被配置为由控制器控制并且将多个备用电容器中对应的一个备用电容器切换到ssd装置的电源电路中或切换出电源电路。控制器被配置为接收来自功率监测器的功率消耗数据并且至少部分地基于功率消耗数据来确定ssd装置的当前备用能量需求。当前备用能量需求表示在来自主机设备的电力中断的情况下为ssd装置供电以进行数据备份和掉电操作所需能量的量。基于当前备用能量需求,控制器可将多个备用电容器中的一个或多个备用电容器切换到ssd装置的电源电路中或切换出电源电路。控制器定期重复执行接收、确定和切换步骤。

通过阅读以下具体实施方式并查看附图,各种实施方案的这些和其他特征和方面将变得显而易见。

附图说明

在下面的具体实施方式中,参考形成本文一部分的附图,并且通过举例说明的方式示出具体实施方案或示例。本文的附图不是按比例绘制的。在若干个附图中,类似的数字表示类似的元件。

图1是示出了根据本文所述的实施方案的用于智能管理存储设备中的备用电容器以便延长电容器寿命的一种方法的流程图。

图2是示出了根据本文所述的实施方案的用于智能管理备用电容器的示例性存储设备的框图。

图3是示出了根据本文所述的实施方案的用于智能管理备用电容器的一些参数的数据结构图。

具体实施方式

以下具体实施方式涉及用于智能管理诸如固态驱动器(“ssd”)的存储设备中的备用电容器以便延长备用电容器寿命的方法、装置和系统。ssd和其他存储设备中的备用电容器(在此可互换地称为“备用电容器”、电容器组”等)用于在设备电力中断期间进行信息备份。备用电容器提供了完成将待写事务(诸如未完成的nand事务)写入存储信道并执行安全掉电的足够的能量。在ssd中,这些数据备份和掉电操作可能只需要几毫秒即可完成。

备用电容器或电容器组的电容通常基于存储设备最坏情况下的峰值运行功率需求进行设计。此外,添加到系统中的备用电容器/电容器组可提供超过峰值需求的过剩容量,以便在一个或多个电容器/电容器组发生故障时仍然有足够的电力用于备份操作并在峰值功率需求下关机。在传统的存储设备中,备用电容器在存储设备的整个运行时间期间“始终开启”,并且这种延长的“开启时间”可能会降低设备使用寿命期间备用电容器的可靠性。

利用本文所述的实施方案,可实现包括备用电容器或电容器组的ssd或其他存储设备,其中在任何给定时间,基于存储设备的功率需求将备用电容器/电容器组切换进和切换出系统,从而提高备用电容器的可靠性。在发生功率损失的情况下实现数据备份和掉电操作所需能量的量取决于功率损失时设备的运行功率。由于设备在其使用寿命期间并不总是以峰值运行功率工作,因此无需持续为所有备用电容器充电。

根据实施方案,可在ssd或其他存储设备中实现功率监测器以测量设备控制器和存储信道的功率消耗。与在设备运行期间所有备用电容器/电容器组都被连接不同,如在传统存储设备中那样,基于来自功率监测器的实时功率消耗细节将备用电容器/电容器组切换进或切换出系统。如果功率消耗小于峰值,则更少的电容器/电容器组可被“接通”,即,切换到设备的电源电路中,而其余电容器被“关闭”,即,切换出电源电路。这显著减少了电容器的总体运行时间(及其压力),从而增加了设备在其使用寿命期间的可靠性。在一些情况下具有可靠备用电容的设备使用寿命可增加30%至40%。

图1示出了根据一些实施方案的智能管理存储设备中(诸如ssd设备中)的备用电容器以便延长电容器寿命的一种方法。例程100可在例如设备的正常操作或“用户模式”期间执行。根据一些实施方案,例程100可由以存储设备的控制器中的软件和/或电路形式实现的备用电容器管理模块来执行。例程100包括步骤102,其中在设备通电时,设备的所有备用电容器或电容器组被充电到100%容量。根据一些实施方案,在充满电时将电容器切换出电源电路进一步增加了电容器的可靠性和使用寿命。在其他实施方案中,一些电容器/电容器组可在上电时接通并且允许随时间推移进行充电。

接下来,在步骤104,在正常操作期间监测存储设备的功率消耗,以便确定执行数据备份和掉电操作所需的备用能量。在一些实施方案中,备用能量需求可根据在电力输入处测量的设备的当前功率消耗来确定。例如,ssd设备的备份时间t可在设备设计期间确定,并且可以在几毫秒到几秒的范围内。如果在电力输入处获得来自功率监测器的设备瞬时功率消耗pinst,则当前备用能量需求ereq可计算为ereq=pinst*t。在其他实施方案中,设备的备用能量需求可基于设备的当前功率消耗、由设备处理的操作速率、设备高速缓存中的nand操作数量等中的一个或多个来计算。

根据一些实施方案,可定期确定设备的备用能量需求。例如,可以每1微秒至5微秒确定设备的备用能量需求,以便提供可用于设备的备用电力的电容的基本上实时的调节。这在具有多核处理器的存储设备中可能是可取的,在该多核处理器中一个内核不常使用并且可用于近乎连续地监测设备的备用能量需求。在其他示例中,可以较不频繁地确定备用能量需求,诸如每天一次或多次。这在设备的功率需求保持相对恒定的情况下可能是可取的。在其他实施方案中,确定设备的备用能量需求的频率可基于设备的操作条件而变化。例如,设备的备用能量需求可以在设备的控制器内存在活动时以第一时间间隔确定,诸如每1微秒至5微秒。当未检测到控制器中的活动时,可以以较不频繁的时间间隔确定备用能量需求,诸如每秒一次。本领域的技术人员应当理解,可使用任何时间段来确定备用能量需求,并且意图将所有这些时间段包括在本公开的范围之内。

例程100前进至步骤106,其中基于设备的备用能量需求,设备中的备用电容器/电容器组中的一个或多个备用电容器/电容器组被接通或关闭,即,切换到存储设备的电源电路中或切换出电源电路。根据实施方案,存储设备的备用电容器可被分为独立的电容器或电容器组,每个电容器/电容器组具有已知的能量存储容量。如果备用电容器/电容器组具有总电容c,则由备用电容器提供的备用能量ebc可由ebc=0.5*c*v2计算,其中v是电容器两端的电压。例如,对于最大备用能量需求n,存储设备的备用电容器可被分为包括1/2n、1/2n、1/4n和1/4n能量存储容量的4个电容器/电容器组。每个独立的电容器/电容器组能够通过控制器切换到存储设备的电源电路中或切换出电源电路。

基于在步骤104中计算出的设备的备用能量需求ereq,控制器可接通或关闭各个电容器/电容器组中的一个或多个。例如,可通过将当前处于开启状态的所有备用电容器的各个备用能量ebc相加来获得可用的总备用能量etotal。只要etotal>ereq,就应当有足够的备用能量可用于在电源故障时实现数据备份和掉电操作,同时防止不需要的电容器/电容器组保持在恒定的充电周期中,从而延长电容器的使用寿命。根据一些实施方案,断开的电容器以完全充电状态保持开启。如果需要最大备用能量需求,则所有的备用电容器/电容器组都将接通。在其他实施方案中,还可基于轮换时间表接通或关闭各个电容器/电容器组,该轮换时间表被配置为使得每个独立的电容器/电容器组的开启状态(持续充电)的时间基本上相等,从而进一步增加备用电容器的可靠性和存储设备的使用寿命。

如图1所示,在存储设备的正常操作期间,连续地重复以下过程:监测备用能量需求,以及接通或关闭适当的备用电容器/电容器组。然而,如果发生电源故障,如步骤108所示,例程100前进至步骤110,其中存储设备执行所需的数据备份操作。例如,这可包括处理ssd中所有缓存的nand操作。在其他存储设备中,这可包括将写入高速缓存刷新到记录介质。根据实施方案,存储设备将具有来自当前开启的备用电容器/电容器组的足够的能量,以便完成数据备份操作并且实现设备的正常掉电以保证所有数据的安全。例程100在步骤110处结束

图2以及下面的描述旨在提供一般适用环境的描述,其中可以实现本文所述的实施方案。具体地讲,图2示出了根据本文所提供的实施方案的例示性存储设备200,诸如ssd设备,以及用于智能管理设备中的备用电容器的硬件、软件和部件。存储设备200可包括控制存储设备的操作的控制器/处理器210。存储设备200还可包括主机接口212,其允许存储设备200与主机设备或其他部件通信,其他部件诸如服务器计算机、个人计算机(“pc”)、膝上型电脑、平板电脑、游戏机、机顶盒或可通信地耦接到存储设备200以存储和检索来自存储设备的数据的任何其他电子设备。控制器210可通过存储信道214处理来自主机设备的读/写命令,该存储信道可包括固态介质、磁性介质、光学介质和/或这些介质与本领域中已知的其他数据存储介质的任意组合。

控制器/处理器210还可包括用于存储处理器可执行指令、数据结构和其他信息的计算机可读存储介质或“存储器”210。存储器210可包括诸如只读存储器(“rom”)和/或闪存存储器的非易失性存储器以及诸如动态随机存取存储器(“dram”)或同步动态随机存取存储器(“sdram”)的随机存取存储器(“ram”)。存储器210还可包括存储设备200的存储信道214中的存储介质的一部分。例如,存储器216可存储包括执行存储设备200的操作所需的命令和数据的固件。根据一些实施方案,存储器216可存储处理器可执行指令,该处理器可执行指令在由处理器执行时执行智能管理存储设备200中的备用电容器的例程100的步骤102至110中的一些或全部步骤,如本文所述。

除了存储器216之外,环境可包括存储程序模块、数据结构和本文所述的用于在存储设备200中的多个电压源之间共享电力负载的其他数据的其他计算机可读介质。本领域的技术人员应当理解,计算机可读介质可以是可由控制器/处理器210或其他计算系统(包括计算机可读存储介质和通信介质)访问的任何可用介质。通信介质包括瞬态信号。计算机可读存储介质包括以任何方法或技术实现的用于非暂态存储信息的易失性和非易失性、可移动和不可移动的存储介质。例如,计算机可读存储介质包括但不限于ram、rom、可擦除可编程rom(“eprom”)、电可擦除可编程rom(“eeprom”)、闪存存储器或其他固态存储器技术、光盘rom(“cd-rom”)、数字通用光盘(“dvd”)、高清dvd(“hd-dvd”)、蓝光光盘或其他光学存储器、磁带盒、磁带、磁盘存储器或其他磁性存储设备等。

存储设备200可通过标准电源连接器220(诸如sata电源连接器、电源连接器、串行连接的scsi(“sas”)连接器等)由主机设备提供用于操作的电力。在一些实施方案中,主机可向存储设备200的电源电路提供多个电压以便操作设备的各种部件。例如,ssd存储设备200可利用在sata电源连接器220处提供的+5v来操作控制器/处理器210,并且利用+3.3v来操作存储信道214中的nand闪存存储器。根据一些实施方案,存储设备200的电源电路包括电子熔丝电路或电熔丝222,以向各种部件分配电力并保护设备的部件免受电源造成的损害并且在电力中断期间使用备用电容器启用备用电力,如本文所述。

根据其他实施方案,存储设备200的电源电路还包括可以监测存储设备200的瞬时功率消耗的功率监测器224。在一些实施方案中,功率监测器224可包括在电熔丝222中实现或者结合在电熔丝222与电源连接器220之间的电路。如本文所述,功率监测器224可被配置为向控制器/处理器210提供功率消耗数据以管理备用电容器。

存储设备200的电源电路还包括多个备用电容器226a至226n(在本文中通常称为备用电容器226)。每个独立的备用电容器,诸如备用电容器226a,可包括并联连接的独立电容器部件或电容器组部件,并且被设计为存储预定量的能量。电容器部件可包括钽电容器、铌电容器、超级电容器和/或这些电容器与本领域已知的其他电容器部件的任意组合。如下所述,可选择每个备用电容器226a至226n的能量存储容量以便在存储设备200的电力中断时提供足够并且有弹性的备用能量,但是最小化在电容器的管理中所利用的切换控制。例如,对于最大备用能量需求n,存储设备可包括分别具有1/2n、1/2v、1/4n以及1/4n能量存储容量的4个备份电容器226。这提供了最大备用能量需求的150%,同时将独立的备用电容器226的数量限制为四个,因此根据本文所述的实施方案仅需要四个切换部件用于智能管理备用电容器。应当理解,备用电容器226的类型、数量、容量和配置并非旨在受到本公开的限制,并且可以是在存储设备200的设计和制造期间做出的设计选择的结果,或者是基于设备的功率要求、设备使用的存储信道214的类型、由设备缓存的操作的数量和类型等的一类存储设备。

根据实施方案,每个备用电容器226a至226n可被切换到存储设备200的电源电路或切换出电源电路,在本文中也指分别由对应的切换部件228a至228n(在此通常称为切换部件228)“接通”或“关闭”。切换部件228可包括用于将对应的备用电容器226a至226n连接到用于一个或多个备用电容器充电和放电的电源总线或断开对应的备用电容器的固态继电器、晶体管等。在一些实施方案中,切换部件228可由存储设备的控制器/处理器210控制。例如,控制器/处理器210可直接或通过多路复用器电路(mux)(未示出)利用可用的通用i/o(gpio)引脚来控制切换部件228。在其他实施方案中,切换部件228可由专用电路来控制。

在另外的实施方案中,存储设备可包括备用电容器管理模块230。备用电容器管理模块230可执行本文所述的用于智能管理存储设备200的备用电容器226以便延长电容器的可靠性和使用寿命的方法和过程。例如,备用电容器管理模块230可定期接收来自功率监测器224的功率消耗数据,至少部分地基于功率消耗数据计算存储设备200的瞬时备用能量需求然后利用切换部件228基于设备的当前备用能量需求接通或关闭适当的备用电容器226。根据一些实施方案,备用电容器管理模块230可被实现为用于在控制器/处理器210中执行并存储在存储器216中作为存储设备200的固件的一部分的软件。在另外的实施方案中,备用电容器管理模块230可在存储设备200的电源电路中的硬件部件和控制器/处理器210中的软件的组合中实现。

备用电容器管理模块230可利用各种备用电容器管理参数232来智能管理备用电容器226。根据一些实施方案,备用电容器管理参数232可存储在存储设备200的存储器216中。例如,如图3所示,备用电容器管理参数232可包括多个备用能量需求阈值302a至302n(在此通常被称为备用能量需求阈值302)。每个备用能量需求阈值302可指定备用能量需求阈值以及必须由备用电容器管理模块230接通以便满足备用能量需求的备用电容器226的数量或尺寸的规格。当当前备用能量上升到阈值以上并且/或者将至阈值以下时,可相应地接通或关闭指定的备用电容器,以确保在设备电力中断的情况下有充足的备用能量可用于存储设备200。

备用电容器管理参数232还可包括备用电容器轮换时间表304。备用电容器轮换时间表304可指定用于备用电容器226的轮换时间表,该轮换时间表由备用电容器管理模块230用来为各种备用能量需求阈值302接通或关闭不同的备用电容器/电容器组,使得在大多数时间里没有备用电容器保持开启状态(即持续充电),从而均衡各种备用电容器的使用寿命。例如,每个独立的备用电容器226的“开启状态”的时间(也称为充电时间)可由计数器监测。如果独立的备用电容器的计数器超过某个阈值时间值t,则备用电容器可被关闭,并且相等能量容量的下一个备用电容器可被接通。该备用电容器的定时器然后可被重置。例如,备用电容器226的这种充电时间信息可与其他备用电容器管理参数232一起存储在控制器210的存储器216的非易失性部分中。定期读取并更新充电时间信息可用于基于设备的瞬时功率消耗来选择待接通的备用电容器,从而均衡备用电容器的使用寿命。应当理解,除了图中所示和本文所述的那些备用电容器管理参数之外,备用电容器管理模块230可附加地或另选地使用许多其他备用电容器管理参数232来智能管理备用电容器226。

回到图2,应当理解,存储设备200的结构和/或功能可不同于附图中所示和本文所述的结构和/或功能。例如,存储设备200的控制器/处理器210、主机接口212、存储信道214的一部分、存储器216、电熔丝222、功率监测器224、备用电容器226、切换部件228以及其他部件和电路可集成在诸如片上系统(“sos”)的通用集成电路封装件内,或者它们可分布在多个集成电路封装之中。类似地,所示出的连接路径被提供用于说明而非限制的目的,并且为了清楚起见可以省略一些部件和/或互连。应当进一步理解,存储设备200可不包括图2中所示的所有部件,可包括未在图2中明确示出的其他部件或者可利用与图2所示架构完全不同的架构。

仿真表明,利用本文所述的技术,典型企业ssd设备中的任一备用电容器226的利用率(开启/充电/放电状态的时间)可降低到35%,尽管实际利用率可取决于智能管理和备用电容器轮换算法的实现和效率。这将导致单个备用电容器和对应的备用电容器组的可靠性提高。此外,本文所述的部件可添加到现有的驱动器设计和架构中,而驱动器的性能或操作没有任何退化或变化。

基于前文所述,应当理解,本文呈现了用于智能管理存储设备中的备用电容器以延长电容器使用寿命的方法和装置。虽然本文所示的实施方案是参照存储设备并且更具体地参照ssd描述的,但是应当理解,本文所述的方法、装置和系统可与在设备的主电源中断期间使用备用电容器用于备用电力的任何设备一起使用。这包括硬盘驱动器(“hdd”)设备、固态混合驱动器(“sshd”)设备、光学存储设备、通信和联网设备、服务器计算机设备等。意图是所有这些设备都包括在本公开的范围内。

作为方法、过程或例程的一部分的本文所述的逻辑步骤、功能或操作可实现为(1)互连的数字电路或部件和/或(2)处理器实现的动作的序列、软件模块或在控制器或计算系统上运行的代码部分。具体实施是取决于系统的性能和其他要求的选择问题。其中操作、功能或步骤可能根本不被包括或执行的所包括的另选具体实施可以与所示或所讨论的顺序无关地执行,包括取决于所涉及的功能基本上同时或以相反的顺序执行,如本公开领域的合理技术人员将理解的那样。

应当进一步理解,除非特别声明或在所使用的上下文中以其他方式理解,否则诸如“可以”、“能够”、“可能”或“可”的条件语言通常旨在表示某些实施方案包括某些特征、元件和/或步骤,而其他实施方案不包括某些特征、元件和/或步骤。因此,此类条件语言通常不旨在暗示特征、元件和/或步骤以任何方式对于一个或多个特定实施方案是必需的,或者一个或多个特定实施方案必然包括用于在有或者没有用户输入或提示的情况下决定这些特征、元件和/或步骤是否包括在任何特定实施方案中或者将在任何特定实施方案中执行的逻辑。

在不脱离本公开的实质和原理的情况下,可以对上述实施方案做出许多改变和修改。此外,本公开的范围旨在覆盖以上讨论的所有元件、特征和方面的任何和所有组合和子组合。所有此类修改和改变旨在被包括在本公开的范围内,并且各个方面或元件或步骤的组合的所有可能的权利要求旨在由本公开支持。

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