硬功率故障架构的制作方法

文档序号:11142233阅读:523来源:国知局
硬功率故障架构的制造方法与工艺

所公开的实施例总体上涉及存储器系统,具体地说,涉及数据存储设备中的功率排序(sequencing)和数据固化(hardening)。



背景技术:

包括闪速存储器的半导体存储器设备典型地利用存储器单元以将数据存储为电值、例如电荷或电压。闪速存储器单元例如包括具有用于存储表示数据值的电荷的浮置栅极的单个晶体管。闪速存储器是可以受电擦除并且重新编程的非易失性数据存储设备。更一般地,非易失性或持久存储器(例如闪速存储器以及使用任何各种技术实现的其它类型的非易失性存储器)甚至当未受供电时也保留所存储的信息,与需要电力以保存所存储的信息的易失性存储器相反。

数据固化——易失性存储体中所保存的数据和任务关键元数据的贮存——是存储设备的整体部分。当存在功率故障时,任务关键数据可能驻留在多个子系统组件中的易失性存储器中。协调并且管理多个子系统组件以确保易失性数据得以成功地贮存对于保护存储设备中的数据是重要的。



技术实现要素:

所附权利要求的范围内的系统、方法和设备的各种实现方式均具有若干方面,并非仅其中的单个方面负责在此所描述的属性。在不限制所附权利要求的范围的情况下,在考虑本公开之后,并且尤其在考虑题为“具体实施方式”的部分之后,我们将理解各个实现方式的方面如何用于使得能够在数据存储设备中进行功率排序和数据固化。在一个方面中,根据确定提供给存储设备的电源电压大于过电压阈值来执行功率故障操作。

附图说明

为了更详细地理解本公开,可以通过参照各个实现方式的特征进行更具体的描述,其中的一些示出于附图中。然而,附图仅示出本公开的更多有关的特征,并且因此并非看作限制,因为描述可以许可其它有效特征。

图1是示出根据一些实施例的数据存储系统的实现方式的框图。

图2是示出根据一些实施例的数据固化模块的实现方式的框图。

图3是示出根据一些实施例的存储控制器的实现方式的框图。

图4是示出根据一些实施例的NVM控制器的实现方式的框图。

图5是示出根据一些实施例的数据固化模块的实现方式的框图。

图6A-图6F示出根据一些实施例的保护存储设备中的数据的方法的流程图表示。

根据惯用实践,附图所示的各个特征可以不是按比例绘制的。相应地,为了清楚,各个特征的尺寸可以任意扩展或减少。此外,一些附图可以不描述给定的系统、方法或设备的所有组件。最后,相同标号可以用于贯穿说明书和附图表示相同特征。

具体实施方式

在此所描述的各个实现方式包括用于使得能够在数据存储设备中进行功率排序和数据固化的系统、方法和/或设备。一些实现方式包括用于执行确定提供给存储设备的电源电压是否大于过电压阈值来执行功率故障操作的系统、方法和/或设备。

更具体地说,一些实现方式包括一种保护存储设备中的数据的方法。在一些实现方式中,所述方法包括:确定提供给所述存储设备的电源电压是否大于过电压阈值。所述方法还包括:根据确定所述电源电压大于所述过电压阈值,执行功率故障操作,所述功率故障操作包括:(1)将功率故障状况信传(signal)到所述存储设备上的多个控制器;(2)将易失性存储器中所保存的数据传送到非易失性存储器;以及(3)从所述存储设备上的所述多个控制器消除(remove)功率。

在一些实施例中,所述存储设备上的所述多个控制器包括存储控制器(有时在此称为存储器控制器)以及一个或多个非易失性存储器(NVM)控制器,所述一个或多个NVM控制器通过所述存储控制器耦合到所述存储设备的主机接口。

在一些实施例中,将易失性存储器中所保存的数据传送到非易失性存储器包括:(1)将数据从所述存储控制器传送到所述一个或多个NVM控制器;以及(2)将数据从所述一个或多个NVM控制器传送到所述非易失性存储器。

在一些实施例中,从所述存储设备上的所述多个控制器消除功率包括:(1)在将数据从所述存储控制器传送到所述一个或多个NVM控制器之后,重置所述存储控制器;以及(2)在重置所述存储控制器之后,从所述存储控制器消除功率。

在一些实施例中,所述一个或多个NVM控制器包括第一NVM控制器和第二NVM控制器,并且从所述存储设备上的所述多个控制器消除功率包括:(1)在将数据从所述第一NVM控制器传送到所述非易失性存储器之后,重置所述第一NVM控制器;(2)在将数据从所述第二NVM控制器传送到所述非易失性存储器之后,重置所述第二NVM控制器;以及(3)在重置所述第一NVM控制器和所述第二NVM控制器之后,从所述第一NVM控制器和所述第二NVM控制器消除功率。

在一些实施例中,从所述第一NVM控制器和所述第二NVM控制器消除功率是在从所述存储控制器消除功率之后。

在一些实施例中,无论所述电源电压是否返回到小于或等于所述过电压阈值的电压,所述功率故障操作都得以执行到完成。

在一些实施例中,所述电源电压是主机系统所提供的电压。

在一些实施例中,所述电源电压是对串行存在性检测(SPD)功能性所提供的电压。

在一些实施例中,所述电源电压包括第一电压和第二电压,并且执行所述功率故障操作包括:(1)根据确定所述第一电压大于第一过电压阈值来执行所述功率故障操作;以及(2)根据确定所述第二电压大于第二过电压阈值来执行所述功率故障操作。

在一些实施例中,使用来自保留能量存储设备的功率来执行功率故障操作。

在一些实施例中,使用来自所述存储设备上的能量存储设备的功率来执行所述功率故障操作。

在一些实施例中,所述能量存储设备包括一个或多个电容器。

在一些实施例中,所述方法还包括:(1)监控所述能量存储设备,以确保所述能量存储设备中的电容器充电到至少第一充电水平;以及(2)在所述存储设备的操作期间有选择地测试来自所述能量存储设备的一个或多个电容器。

在一些实施例中,所述方法还包括:在确定提供给所述存储设备的所述电源电压是否大于所述过电压阈值之前:(1)使用比提供给所述存储设备的电源电压更高的电压来对所述能量存储设备进行充电;(2)确定所述能量存储设备是否在预定充电时间内满足最小充电水平阈值;以及(3)根据确定所述能量存储设备并未在所述预定充电时间中满足最小充电水平阈值,防止所述存储设备的操作。

在一些实施例中,防止所述存储设备的操作包括:将故障消息传递到主机系统。

在一些实施例中,所述方法还包括:在从所述存储设备上的所述多个控制器消除功率之后,对所述能量存储设备进行放电。

在一些实施例中,所述非易失性存储器包括一个或多个NVM设备。

在一些实施例中,所述存储设备包括双列直插存储器模块(DIMM)设备。

在一些实施例中,所述存储设备上的所述多个控制器包括至少一个非易失性存储控制器以及除了所述至少一个非易失性存储控制器之外的至少一个另外存储控制器。

在一些实施例中,所述存储设备上的所述多个控制器之一将双数据率(DDR)接口命令映射为串行高级技术附连(SATA)接口命令。

在另一方面中,通过存储设备执行上述任何方法,所述存储设备包括:(1)接口,用于将所述存储设备耦合到主机系统;(2)多个控制器,所述多个控制器中的每一个被配置为:将易失性存储器中所保存的数据传送到非易失性存储器;以及(3)数据固化模块,包括能量存储设备,所述数据固化模块被配置为:(a)确定提供给所述存储设备的电源电压是否大于过电压阈值;以及(b)根据确定所述电源电压大于所述过电压阈值,执行功率故障操作,所述功率故障操作包括:(i)将功率故障状况信传到所述多个控制器,使得所述多个控制器将易失性存储器中所保存的数据传送到非易失性存储器;以及(ii)从所述存储设备上的所述多个控制器消除功率。

在一些实施例中,所述过电压阈值是可编程的。

在一些实施例中,所述数据固化模块包括一个或多个处理器。

在一些实施例中,其中,将所述功率故障状况信传到所述存储设备上的所述多个控制器包括:分离地将所述功率故障状况信传到所述多个控制器中的每一个。

在一些实施例中,所述方法还包括:将关于所述功率故障操作的数据记录到非易失性存储器。

在一些实施例中,所述方法还包括:执行功率故障测试操作,所述功率故障测试操作包括:(1)将所述功率故障状况信传到所述存储设备上的所述多个控制器中的一个或多个控制器;对于所述一个或多个控制器,将易失性存储器中所保存的数据传送到非易失性存储器;(3)从所述存储设备上的所述一个或多个控制器消除功率;以及(4)记录关于所述功率故障测试操作的数据。

在一些实施例中,所述存储设备被配置为:执行任何上述方法。

在又一方面中,通过可操作为保护数据的存储设备执行上述任何方法。在一些实施例中,所述设备包括:(1)接口,用于将所述存储设备耦合到主机系统;(2)用于确定提供给所述存储设备的电源电压是否大于过电压阈值的装置;以及(3)用于根据确定所述电源电压大于所述过电压阈值来执行功率故障操作的装置,所述用于执行功率故障操作的装置包括:(a)用于将功率故障状况信传到所述存储设备上的多个控制器的装置;(b)用于将易失性存储器中所保存的数据传送到非易失性存储器的装置;以及(c)用于从所述存储设备上的所述多个控制器消除功率的装置。

在又一方面中,一种非瞬时计算机可读存储介质,存储用于由具有多个控制器和数据固化模块的存储设备的一个或多个处理器运行的一个或多个程序,所述一个或多个程序包括用于执行任何上述方法的指令。

在一些实施例中,所述非瞬时计算机可读存储介质包括与所述存储设备上的所述多个控制器中的每一个关联的非瞬时计算机可读存储介质以及与所述数据固化模块关联的非瞬时计算机可读存储介质。

在此描述大量细节以提供附图所示的示例实现方式的透彻理解。然而,可以在没有很多具体细节的情况下实践一些实施例,并且权利要求的范围仅由权利要求中具体陈述的这些特征和方面限定。此外,尚未全面详细地描述公知方法、组件和电路,以免不必要地模糊在此所描述的实现方式的更有关的方面。

图1是示出根据一些实施例的数据存储系统100的实现方式的框图。虽然示出一些示例特征,但各个其它特征出于简明的原因尚未示出,并且以免模糊在此所公开的示例实现方式的更有关的方面。为此,作为非限定性示例,数据存储系统100包括存储设备120(有时又称为信息存储设备或数据存储设备或存储器设备),其包括主机接口122、串行存在性检测(SPD)设备124、数据固化模块126、存储控制器128、一个或多个非易失性存储器(NVM)控制器130(例如闪速控制器)以及非易失性存储器(例如一个或多个NVM设备140、142(例如一个或多个闪速存储器设备)),并且与计算机系统110结合而得以使用。在一些实现方式中,存储设备120包括单个NMV设备,而在其它实现方式中,存储设备120包括多个NVM设备。在一些实现方式中,NVM设备140、142包括NAND型闪速存储器或NOR型闪速存储器。此外,在一些实现方式中,NVM控制器130是固态驱动器(SSD)控制器。然而,根据各种实现方式的方面,可以包括一种或多种其它类型的存储介质。

计算机系统110通过数据连接101耦合到存储设备120。然而,在一些实现方式中,计算机系统110包括存储设备120作为组件和/或子系统。计算机系统110可以是任何合适的计算机设备(例如个人计算机、工作站、计算机服务器或任何另外计算设备)。计算机系统110有时称为主机或主机系统。在一些实现方式中,计算机系统110包括一个或多个处理器、一种或多种类型的存储器,可选地包括显示器和/或其它用户接口组件(例如键盘、触摸屏显示器、鼠标、轨迹板、数码相机和/或任何多个附属设备),以加入功能性。此外,在一些实现方式中,计算机系统110在控制线路111上将一个或多个主机命令(例如读取命令和/或写入命令)发送到存储设备120。在一些实现方式中,计算机系统110是服务器系统(例如数据中心中的服务器),并且没有显示器和其它接口组件。

在一些实现方式中,存储设备120包括NVM设备140、142(例如闪速存储器设备(例如NVM设备140-1至140-n以及NVM设备142-1至142-k))以及NVM控制器130(例如NVM控制器130-1至130-m)。在一些实现方式中,NVM控制器130中的每个NVM控制器包括一个或多个处理单元(有时又称为CPU或处理器或微处理器或微控制器),被配置为:运行(例如NVM控制器130中的)一个或多个程序中的指令。在一些实现方式中,一个或多个处理器由NVM控制器130内的一个或多个组件共享,并且在一些情况下,超越NVM控制器130的功能。NVM设备140、142通过典型地除 了数据之外还传送命令并且可选地除了待存储在NVM设备140、142中的数据值以及从NVM设备140、142读取的数据值之外还传送元数据、纠错信息和/或另外信息的连接耦合到NVM控制器130。例如,NVM设备140、142可以被配置用于适合于例如云计算的应用或适合于缓存次级存储体(例如硬盘驱动器)中所存储(或待存储)的数据的企业存储体。附加地和/或替代地,闪速存储器(例如NVM设备140、142)也可以被配置用于相对较小规模应用(例如关于个人计算机、膝上型计算机和平板计算机的个人闪速驱动器或硬盘更换)。虽然闪速存储器设备和闪速控制器在此用作示例,但在一些实施例中,存储设备120包括其它非易失性存储器设备和对应非易失性存储器控制器。

在一些实现方式中,存储设备120还包括主机接口122、SPD设备124、数据固化模块126和存储控制器128。存储设备120可以包括出于简明的原因并且避免模糊在此所公开的示例实现方式的更有关的特征而尚未示出的各种附加特征,并且特征的不同布置可以是可能的。主机接口122通过数据连接101提供对计算机系统110的接口。

在一些实现方式中,数据固化模块126包括一个或多个处理单元(有时又称为CPU或处理器或微处理器或微控制器),被配置为:运行(例如数据固化模块126中的)一个或多个程序中的指令。在一些实现方式中,一个或多个处理器由数据固化模块126内的一个或多个组件共享,并且在一些情况下,超越数据固化模块126的功能。数据固化模块126耦合到主机接口122、SPD设备124、存储控制器128和NVM控制器130,以协调这些组件的操作,包括监督和控制功能,例如上电、下电、数据固化、对能量存储设备进行充电、数据日志记录以及存储设备120上的管理功能的其它方面。

存储控制器128耦合到主机接口122、数据固化模块126和NVM控制器130。在一些实现方式中,在写入操作期间,存储控制器128通过主机接口122从计算机系统110接收数据,并且在读取操作期间,存储控制器128通过主机接口122将数据发送到计算机系统110。此外,主机接口122提供存储控制器128与计算机系统110之间的通信所需的附加数据、信号、电压和/或另外信息。在一些实施例中,存储控制器128和主机接口122使用所定义的用于通信的接口标准(例如双数据率类型三同步动态随机存取存储器(DDR3))。在一些实施例中,存储控制器128和NVM控制器130使用所定义的用于通信的接口标准(例如串行高级技术附连(SATA))。在一些其 它实现方式中,存储控制器128用于与NVM控制器130进行通信的设备接口是SAS(串行附连SCSI)或另外存储接口。在一些实现方式中,存储控制器128包括一个或多个处理单元(有时又称为CPU或处理器或微处理器或微控制器),被配置为:运行(例如存储控制器128中的)一个或多个程序中的指令。在一些实现方式中,一个或多个处理器由存储控制器128内的一个或多个组件共享,并且在一些情况下,超越存储控制器128的功能。

SPD设备124耦合到主机接口122和数据固化模块126。串行存在性检测(SPD)指代用于自动地存取关于计算机存储器模块(例如存储设备120)的信息的标准化方式。例如,如果存储器模块具有故障,则该故障可以通过SPD设备124与主机系统(例如计算机系统110)进行通信。

图2是示出根据一些实施例的数据固化模块126的实现方式的框图。数据固化模块126包括功率存储和分发模块250(包括能量存储设备204)。在一些实施例中,数据固化模块还包括:一个或多个处理器(有时又称为CPU或处理单元或微处理器或微控制器)202,用于运行存储器206中所存储的模块、程序和/或指令,并且由此执行处理操作;存储器206;以及一个或多个通信总线208,用于互连这些组件。然而,在一些其它实施例中,处理器202所执行的下述功能另外由存储控制器128执行。

在一些实现方式中,功率存储和分发模块250包括用于监控、存储并且分发用于存储设备(例如存储设备120,图1)的功率的电路,包括对能量存储设备204进行监控、控制、充电和/或测试。在一些实施例中,能量存储设备204包括一个或多个电容器。在其它实施例中,能量存储设备204包括一个或多个电感器或任何存储能量的其它无源元件。

通信总线208可选地包括互连并且控制各系统组件之间的通信的电路(有时称为芯片集)。数据固化模块126通过通信总线208耦合到主机接口122、SPD设备124、存储控制器128和NVM控制器130(例如NVM控制器130-1至130-m)。存储器206包括高速随机存取存储器(例如DRAM、SRAM、DDR RAM或其它随机存取固态存储器设备);并且可以包括非易失性存储器(例如一个或多个磁盘存储设备、光盘存储设备、闪速存储器设备或其它非易失性固态存储设备)。存储器206可选地包括位于远离处理器202的一个或多个存储设备。存储器206,或替代地,存储器206内的非易失性存储器设备包括非瞬时计算机可读存储介质。在一些实现方式中,存储器206 或存储器206的计算机可读存储介质存储以下程序、模块和数据结构或其子集:

·监控模块210,其用于监控提供给存储设备(例如存储设备120,图1)的信号,例如,以监控并且确定提供给存储设备的电源电压是否大于过电压阈值;

·能量存储设备模块212,其用于对存储设备上的能量存储设备(例如能量存储设备204)进行监控、控制、充电和/或测试;

·测试模块214,其用于测试存储设备的一个或多个功能;

·功率开关模块216,其用于确定并且控制用于将功率提供给存储设备的电压;以及

·功率故障模块218,其用于根据确定提供给存储设备的电源电压大于过电压阈值来执行功率故障操作。

在一些实施例中,存储器206或存储器206的计算机可读存储介质进一步存储用于配置存储设备120和数据固化模块126的配置模块和/或用于配置数据固化模块126的配置值(例如一个或多个过电压阈值),其皆未明确示出于图2中。在一些实现方式中,在上电时以及在重置时,配置模块根据存储设备120的组件和/或包括存储设备120的数据存储系统100的特性来自动地设置存储设备120的一个或多个配置参数(例如存储设备120中的非易失性存储器组件的类型)的值(并且可选地,确定使用两个或更多个功率故障模块、测试模块等中的哪个)。

在一些实施例中,监控模块210还用于监控并且确定提供给存储设备的电源电压是否小于欠电压阈值。

在一些实施例中,功率故障模块218可选地包括以下模块或子模块或其子集:

·信传模块220,其用于将功率故障状况信传到存储设备上的多个控制器(例如存储控制器128和NVM控制器130,图1);

·重置模块222,其用于重置存储设备上的多个控制器;

·功率消除模块224,其用于从存储设备上的多个控制器消除功率;

·保护带(guard banding)模块226,其用于包容提供给存储设备的电源电压的功率波动;以及

·放电模块228,其用于对存储设备上的能量存储设备进行放电。

以上所标识的元件中的每一个可以存储在先前所述的存储器设备中的一个或多个中,并且与用于执行上述功能的指令集合对应。以上所标识的模块或程序(即指令集合)无需实现为分离的软件程序、过程或模块,并且因此这些模块的各个子集可以在各个实施例中组合或另外重新布置。在一些实施例中,存储器206可以存储以上所标识的模块和数据结构的子集。此外,存储器206可以存储以上未描述的附加模块和数据结构。在一些实施例中,存储器206或存储器206的计算机可读存储介质中所存储的程序、模块和数据结构提供用于实现以下参照图6A-图6F描述的任何方法的指令。

虽然图2示出数据固化模块126,但图2目的更是作为可以在数据固化模块中出现的各个特征的功能性描述而非作为在此所描述的实施例的结构性示意。在实践中,并且本领域技术人员应理解,分离地示出的条目可以组合,并且一些条目可以分离。

图3是示出根据一些实施例的存储控制器128的实现方式的框图。存储控制器128典型地包括:一个或多个处理器(有时又称为CPU或处理单元或微处理器或微控制器)302,用于运行存储器306中所存储的模块、程序和/或指令,并且由此执行处理操作;存储器306;以及一个或多个通信总线308,用于互连这些组件。通信总线308可选地包括互连并且控制各系统组件之间的通信的电路(有时称为芯片集)。存储控制器128通过通信总线308耦合到主机接口122、数据固化模块126和NVM控制器130(例如NVM控制器130-1至130-m)。存储器306包括高速随机存取存储器(例如DRAM、SRAM、DDR RAM或其它随机存取固态存储器设备);并且可以包括非易失性存储器(例如一个或多个磁盘存储设备、光盘存储设备、闪速存储器设备或其它非易失性固态存储设备)。存储器306可选地包括位于远离处理器302的一个或多个存储设备。存储器306、或替代地、存储器306内的非易失性存储器设备包括非瞬时计算机可读存储介质。在一些实现方式中,存储器306或存储器306的计算机可读存储介质存储以下程序、模块和数据结构或其子集:

·接口模块310,其用于与其它组件(例如主机接口122、数据固化模块126和NVM控制器130)进行通信;

·重置模块312,其用于重置存储控制器128;以及

·功率故障模块314,其用于执行功率故障操作。

在一些实施例中,功率故障模块314可选地包括传送模块316,其用于将易失性存储器中所保存的数据传送到非易失性存储器。

以上所标识的元件中的每一个可以存储在先前所述的存储器设备中的一个或多个中,并且与用于执行上述功能的指令集合对应。以上所标识的模块或程序(即指令集合)无需实现为分离的软件程序、过程或模块,并且因此这些模块的各个子集可以在各个实施例中组合或另外重新布置。在一些实施例中,存储器306可以存储以上所标识的模块和数据结构的子集。此外,存储器306可以存储以上未描述的附加模块和数据结构。在一些实施例中,存储器306或存储器306的计算机可读存储介质中所存储的程序、模块和数据结构提供用于实现以下参照图6A-图6F描述的方法中的各个操作的指令。

虽然图3示出存储控制器128,但图3目的更是作为可以在存储控制器中出现的各个特征的功能性描述而非作为在此所描述的实施例的结构性示意。在实践中,并且本领域技术人员应理解,分离地示出的条目可以组合,并且一些条目可以分离。

图4是示出根据一些实施例的NVM控制器130-1(例如闪速控制器)的实现方式的框图。NVM控制器130-1典型地包括:一个或多个处理器(有时又称为CPU或处理单元或微处理器或微控制器)402,用于运行存储器306中所存储的模块、程序和/或指令,并且由此执行处理操作;存储器406;以及一个或多个通信总线408,用于互连这些组件。通信总线408可选地包括互连并且控制各系统组件之间的通信的电路(有时称为芯片集)。NVM控制器130-1通过通信总线408耦合到存储控制器128、数据固化模块126和NVM设备140(例如NVM设备140-1至140-n(例如闪速设备))。存储器406包括高速随机存取存储器(例如DRAM、SRAM、DDR RAM或其它随机存取固态存储器设备);并且可以包括非易失性存储器(例如一个或多个磁盘存储设备、光盘存储设备、闪速存储器设备或其它非易失性固态存储设备)。存储器406可选地包括位于远离处理器402的一个或多个存储设备。存储器406,或替代地,存储器406内的非易失性存储器设备包括非瞬时计算机可读存储介质。在一些实现方式中,存储器406或存储器406的计算机可读存储介质存储以下程序、模块和数据结构或其子集:

·接口模块410,其用于与其它组件(例如存储控制器128、数据固化模块126和NVM设备140)进行通信;

·重置模块412,其用于重置NVM控制器130-1;以及

·功率故障模块414,其用于执行功率故障操作。

在一些实施例中,功率故障模块414可选地包括传送模块416,其用于将易失性存储器中所保存的数据传送到非易失性存储器。

以上所标识的元件中的每一个可以存储在先前所述的存储器设备中的一个或多个中,并且与用于执行上述功能的指令集合对应。以上所标识的模块或程序(即指令集合)无需实现为分离的软件程序、过程或模块,并且因此这些模块的各个子集可以在各个实施例中组合或另外重新布置。在一些实施例中,存储器406可以存储以上所标识的模块和数据结构的子集。此外,存储器406可以存储以上未描述的附加模块和数据结构。在一些实施例中,存储器406或存储器406的计算机可读存储介质中所存储的程序、模块和数据结构提供用于实现以下参照图6A-图6F描述的方法中的各个操作的指令。

虽然图4示出NVM控制器130-1,但图4目的更是作为可以在NVM控制器中出现的各个特征的功能性描述而非作为在此所描述的实施例的结构性示意。在实践中,并且本领域技术人员应理解,分离地示出的条目可以组合,并且一些条目可以分离。此外,虽然图4示出NVM控制器130-1,但图4的描述相似地应用于存储设备120(图1)中的其它NVM控制器(例如NVM控制器130-2至130-m)。

图5是示出根据一些实施例的数据固化模块126的实现方式的框图。虽然示出一些示例特征,但各个其它特征出于简明的原因尚未示出,并且以免模糊在此所公开的示例实现方式的更有关的方面。为此,作为非限定性示例,数据固化模块126包括处理器202、上拉(boost)电路520、能量存储设备522、晶体管511-512、保持器(keeper)电路524、电压Vdd 502、VSPD 504、Vholdup 506和Vswitched 508以及连接530。在一些实现方式中,Vdd 502是主机系统(例如计算机系统110,图1)所提供的电压,并且具有1.5伏特或更小的目标值。在一些实现方式中,Vholdup 506是从Vdd 502上拉的(boosted up)电压,并且具有5.7伏特的目标值。在一些实施例中,Vholdup 506用于对能量存储设备522进行充电。在一些实现方式中,VSPD 504是提供用于串行存在性检测(SPD)功能性的电压,并且具有3.3伏特的目标值。此外,在一些实现方式中,在任何一个时间仅启用晶体管511、512之一。例如,每当晶体管512启用时,晶体管511就禁用(开路(open)状态),从而确保来自数据固化模块的能量存储设备522的功率不泄漏到主机系统。此外,每当晶体管511启用,将功率从主机系统提供给存储设备120的组件时,晶体管512 就禁用。在一些实现方式中,数据固化电路的能量存储设备522在检测功率故障状况之前立即在存储设备120中每NVM控制器130存储至少近似30到70毫焦(millijoules)的能量。

在一些实现方式中,处理器202监控并且管理数据固化模块126中的功能性。例如,处理器202监控电压Vdd 502和VSPD 504。如果Vdd 502或VSPD504任一上升得大于对应过电压阈值,则处理器202将功率故障状况信传到存储设备120上的多个控制器(例如存储控制器128和NVM控制器130,图1)。在一些实施例中,过电压阈值取决于电压的目标值而变化。例如,如果用于Vdd 502的目标电压是1.5伏特,则过电压阈值可以是1.5伏特加上5%(即1.575伏特),因此如果Vdd 502大于1.575伏特,则处理器202将信传功率故障状况。在一些实现方式中,用于Vdd 502的过电压阈值不同于用于VSPD 504的过电压阈值。在一些实施例中,如果Vdd 502或VSPD 504任一下降得小于对应欠电压阈值(例如,当用于Vdd 502的目标电压是1.5伏特时为1.425伏特,当用于VSPD 504的目标电压为3.3伏特时是3.135伏特),则处理器202将功率故障状况信传到存储设备120上的多个控制器(例如存储控制器128和NVM控制器130,图1)。

在一些实施例中,在存储设备120的规律操作期间,Vdd 502用于将功率提供给存储设备120。然而,在功率故障操作期间,能量存储设备522用于将功率提供给存储设备120。在一些实现方式中,处理器202控制晶体管511-512,以将Vswitched 508控制为(例如在规律操作期间)来自Vdd 502的电压或(例如在功率故障操作期间)来自能量存储设备522的电压。例如,在存储设备120的规律操作期间,Vdd 502用于将功率提供给存储设备120,从而晶体管511打开(例如,以完成Vdd 502与Vswitched 508之间的连接),并且晶体管512关闭(例如,以禁用能量存储设备522与Vswitched 508之间的连接)。然而,在功率故障操作期间,能量存储设备522用于将功率提供给存储设备120,从而晶体管511关闭(例如,以禁用Vdd 502与Vswitched 508之间的连接),并且晶体管512打开(例如,以启用能量存储设备522与Vswitched508之间的连接)。虽然图5中示出单个能量存储设备522,但包括一个或多个电容器、一个或多个电感器或一个或多个存储能量的其它无源元件的任何能量存储设备可以用于存储待在功率故障操作期间使用的能量。

在一些实现方式中,使用Vholdup 506——大于Vdd 502的电压——对能量存储设备522进行充电。在一些实现方式中,使用上拉电路520将Vdd 502 上拉到Vholdup 506(例如,1.35伏特或1.5伏特上拉到5.7伏特)。在一些实现方式中,处理器202控制并且启用上拉电路520。此外,在一些实施例中,Vswitched 508用作对保持器电路524的输入,其连同VSPD 504一起将功率提供给处理器202。在功率故障操作期间,Vswitched 508经由保持器电路524提供给处理器202,从而在功率故障操作期间将功率提供给处理器202。在一些实现方式中,处理器202具有一个或多个连接530,用于监控并且控制存储设备120内的其它功能。在一些实现方式中,VSPD 504将功率提供给保持器电路524。此外,在一些实现方式中,VSPD 504提供给存储设备120,然后Vdd 502提供给存储设备120,允许存储设备120中的设备在主功率Vdd 502提供给存储设备120之前操作。

图6A-图6F示出根据一些实施例的保护存储设备中的数据的方法的600流程图表示。存储设备(例如存储设备120,图1)协调并且管理多个子系统组件,以保护数据,这样发起执行方法600。至少在一些实现方式中,由存储设备(例如存储设备120,图1)或存储设备的一个或多个组件(例如数据固化模块126、存储控制器128和/或NVM控制器130,图1)执行方法600。在一些实施例中,由非瞬时计算机可读存储介质中存储的并且设备的一个或多个处理器(例如数据固化模块126的一个或多个处理器202、存储控制器128的一个或多个处理器302和/或NVM控制器130的一个或多个处理器402,如图2-图4所示)运行的指令来掌控(govern)方法600。

存储设备(例如存储设备120,图1)确定(602)提供给存储设备的电源电压是否大于过电压阈值。在一些实施例中,过电压阈值(有时又称为跳变点)取决于电压的目标值而变化。例如,如果电源电压的目标值是1.5伏特,则过电压阈值可以是1.5伏特加上5%(即1.575伏特),并且存储设备确定电源电压是否大于1.575伏特。在一些实现方式中,监控模块(例如监控模块210,图2)用于确定提供给存储设备的电源电压是否大于过电压阈值,如以上关于图2所描述的那样。在一些实施例中,存储设备(例如存储设备120,图1)确定提供给存储设备的电源电压是否小于欠电压阈值。例如,如果电源电压的目标值是1.5伏特,则欠电压阈值可以是1.5伏特减去5%(即1.425伏特),并且存储设备确定电源电压是否小于1.425伏特。

在一些实施例中,电源电压是(604)主机系统所提供的电压。在一些实现方式中,主机系统所提供的电压(例如Vdd 502,图5)具有1.5伏特或 更小的目标值。例如,对于双数据率类型三(DDR3)接口规范,供电电压是1.5伏特或1.35伏特。

在一些实施例中,电源电压是(606)对串行存在性检测(SPD)功能性所提供的电压。在一些实现方式中,对SPD功能性所提供的电压(例如VSPD 504,图5)具有3.3伏特的目标值。

在一些实施例中,存储设备包括(608)双列直插存储器模块(DIMM)设备。在一些实现方式中,存储设备与DIMM存储器槽兼容。例如,在一些实现方式中,存储设备与使用DDR3接口规范的240针DIMM存储器槽兼容。

在一些实施例中,过电压阈值是可编程的(610)。在一些实现方式中,过电压阈值根据电源电压的测量是可编程的。例如,可编程过阈值或对应参数可以存储在非易失性存储器(例如SPD 124)中。可选地,对于不同的电源电压电平建立不同的过阈值电压。例如,当电源电压为1.35伏特时比当电源电压为1.5伏特建立更低的过阈值电压。在一些实现方式中,过电压阈值是可由主机设备(例如计算机系统110,图1)编程的。

在一些实现方式中,根据存储设备(例如存储设备120,图1)的一个或多个特性(例如在功率故障操作期间待传送到非易失性存储器的最大数据量、用于在功率故障操作期间提供功率的能量存储设备(例如能量存储设备204,图2)的可用性和充电水平和/或其它DIMM有关属性),过电压阈值是可编程的。相似地,在使用过电压阈值和欠电压阈值二者的一些实现方式中,欠电压阈值也是可编程的,并且可选地根据上述存储设备的任何特性是可编程的。

接下来,存储设备根据确定电源电压大于过电压阈值来执行(612)功率故障操作。使用电源电压的目标值为1.5伏特并且过电压阈值为1.575伏特的以上示例,根据确定电源电压大于1.575伏特,存储设备执行功率故障操作。在一些实现方式中,功率故障模块(例如功率故障模块218,图2)用于根据确定电源电压大于过电压阈值来执行功率故障操作,如以上关于图2所描述的那样。此外,在一些实施例中,存储设备根据确定电源电压小于欠电压阈值或大于过电压阈值来执行功率故障操作。

在一些实施例中,关于过电压阈值而监控一个或多个电源电压,并且如果任何受监控的电源电压上升得大于它们的各个过电压阈值,则执行功率故障操作。例如,如果关于过电压阈值(例如分别第一过电压阈值和第二过电 压阈值)监控两个电源电压(例如第一电源电压和第二电源电压),则根据确定第一电源电压大于第一过电压阈值来执行功率故障操作,并且根据确定第二电源电压大于第二过电压阈值来执行功率故障操作。过电压阈值(有时称为“跳变点(trip point)”)基于电源电压的目标值而变化。在一些实施例中,第一电源电压是主机系统所提供的电压(例如,具有1.5伏特或更小的目标值),第二电源电压是对串行存在性检测(SPD)功能性所提供的电压(例如,具有3.3伏特的目标值)。此外,在一些实施例中,关于过电压阈值和欠电压阈值二者监控一个或多个电源电压,并且如果任何受监控的电源电压上升得大于它们的各个过电压阈值或下降得小于它们的各个欠电压阈值,则执行功率故障操作。

首先,功率故障操作包括(612):将功率故障状况信传(614)到存储设备上的多个控制器(例如存储控制器128和NVM控制器130,图1)。在一些实现方式中,信传模块(例如信传模块220,图2)用于将功率故障状况信传到存储设备上的多个控制器,如以上关于图2所描述的那样。

在一些实施例中,存储设备上的多个控制器包括(616)存储控制器(例如存储控制器128,图1)以及一个或多个NVM控制器(例如NVM控制器130,图1),所述一个或多个NVM控制器通过存储控制器耦合到存储设备的主机接口(例如主机接口122,图1)。

在一些实施例中,存储设备上的多个控制器包括(618)至少一个非易失性存储控制器以及除了所述至少一个非易失性存储控制器之外的至少一个另外控制器(例如存储控制器)。在一些实现方式中,所述至少一个非易失性存储控制器是闪速控制器(例如NVM控制器130-1,图1)。在其它实现方式中,所述至少一个非易失性存储控制器控制一种或多种其它类型的非易失性存储器设备。

在一些实施例中,存储设备上的多个控制器之一将双数据率(DDR)接口命令映射(620)为串行高级技术附连(SATA)接口命令。例如,存储控制器(例如存储控制器128,图1)将双数据率类型三(DDR3)接口命令映射为SATA接口命令。在一些实现方式中,存储控制器(例如存储控制器128,图1)使用所定义的接口标准(例如DDR3),以与主机接口(例如主机接口122,图1)进行通信,并且使用所定义的接口标准(例如SATA),以与存储设备上的其它控制器(例如NVM控制器130,图1)进行通信。

在一些实施例中,将功率故障状况信传(614)到存储设备上的多个控制器包括:分离地将功率故障状况信传(622)到多个控制器中的每一个。在一些实现方式中,对多个控制器中的每一个的单独功率故障信传允许遍历多个控制器对功率故障操作依次排序(sequencing),遍历多个控制器并行执行功率故障操作、或关于功率故障操作的依次排序和并行排序的组合。在依次排序的非限定性示例中,用于第一NVM控制器(例如NVM控制器130-1,图1)的功率故障操作将在时间上超前于用于第二NVM控制器(例如NVM控制器130-m,图1)的功率故障操作而得以执行或开始。此外,在依次排序和并行排序的组合的非限定性示例中,两个或更多个NVM控制器(例如NVM控制器130-1至130-m中的两个或更多个,图1)的功率故障操作得以同时执行,而用于存储控制器(例如存储控制器128,图1)的功率故障操作超前于前述NVM控制器的并行功率故障操作而得以执行或开始。

接下来,功率故障操作包括(612):将易失性存储器中所保存的数据传送(624)到非易失性存储器(例如NVM设备140、142,图1)。在一些实现方式中,一个或多个控制器上的功率故障模块(例如功率故障模块314,图3,以及功率故障模块414,图4)用于将易失性存储器中所保存的数据传送到非易失性存储器,如以上关于图3-图4所描述的那样。

在一些实施例中,将易失性存储器中所保存的数据传送到非易失性存储器包括:将数据(例如易失性数据318,图3)从存储控制器(例如存储控制器128,图1)传送(626)到一个或多个NVM控制器(例如NVM控制器130,图1)。在一些实现方式中,从存储控制器传送到一个或多个NVM控制器的数据包括从主机接口(例如主机接口122,图1)飞行到存储控制器的数据、所贮存(例如,存储在非易失性存储或写入缓存中)的已经信传到主机(例如计算机系统110,图1)数据和/或存储控制器中的易失性存储器中所存储的元数据。在一些实现方式中,传送模块(例如传送模块316,图3)用于将数据从存储控制器传送到一个或多个NVM控制器,如以上关于图3所描述的那样。

在一些实施例中,将易失性存储器中所保存的数据传送到非易失性存储器包括:将数据(例如易失性数据418,图4)从一个或多个NVM控制器(例如NVM控制器130,图1)传送(628)到非易失性存储器(例如NVM设备140、142、图1)。在一些实现方式中,从一个或多个NVM控制器传送到非易失性存储器的数据包括飞行到(in flight to)一个或多个NVM控制 器的数据和/或一个或多个NVM控制器中的易失性存储器中所存储的元数据(例如未写入的奇偶校验数据、关于NVM(例如闪速存储器)设备的当前年龄的信息、转译表等)。在一些实现方式中,传送模块(例如传送模块416,图4)用于将数据从一个或多个NVM控制器传送到非易失性存储器,如以上关于图4所描述的那样。

在一些实施例中,非易失性存储器包括(630)一个或多个NVM设备(例如NVM设备140、142,图1)。在一些实现方式中,非易失性存储器包括单个NMV设备,而在其它实现方式中,非易失性存储器包括多个NVM设备。在一些实现方式中,非易失性存储器包括NAND型闪速存储器或NOR型闪速存储器。在其它实施例中,非易失性存储器包括一种或多种其它类型的非易失性存储设备。

接下来,功率故障操作包括(612),从存储设备上的多个控制器(例如存储控制器128和NVM控制器130,图1)消除(632)功率。在一些实现方式中,从存储设备上的多个控制器消除功率包括:坚决地从多个控制器消除功率(与允许多个控制器自动地损耗功率相反)。在一些实现方式中,功率消除模块(例如功率消除模块224,图2)用于从存储设备上的多个控制器消除功率,如以上关于图2所描述的那样。

在一些实施例中,从存储设备上的多个控制器消除功率包括:在将数据从存储控制器传送到一个或多个NVM控制器之后,重置(634)存储控制器。在一些实现方式中,存储控制器(例如存储控制器128,图1)当其已经完成将数据传送到一个或多个NVM控制器(例如NVM控制器130,图1)时将信号发送到数据固化模块(例如数据固化模块126,图1)。当数据固化模块接收到该信号(例如数据固化完成(data hardening done)信号)时,其可以于是重置存储控制器。在一些实现方式中,重置存储控制器将存储控制器置于预定低功率状态下。在一些实现方式中,重置存储控制器受控于数据固化模块,重置功能性在数据正传送到非易失性存储器的同时被禁用(例如,当存储控制器正将易失性存储器中所保存的数据传送到非易失性存储器时,数据固化模块防止存储控制器受重置)。在一些实现方式中,在将数据从存储控制器传送到一个或多个NVM控制器之后,数据固化模块中的重置模块(例如重置模块222,图2)与存储控制器中的重置模块(例如重置模块312,图3)结合而用于重置存储控制器,如以上关于图2-图3所描述的那样。

接下来,在一些实施例中,从存储设备上的多个控制器消除功率包括:在重置存储控制器之后,从存储控制器消除(636)功率。在一些实现方式中,存储控制器(例如存储控制器128,图1)处于与一个或多个NVM控制器(例如NVM控制器130,图1)分离的功率域中。因此,无论NVM控制器是否仍正将数据传送到非易失性存储器,都可以从存储控制器消除功率。这些独立的功率域允许数据固化模块(例如数据固化模块126,图1)有选择地从存储设备(例如存储设备120,图1)上的各个控制器消除功率。通过随着控制器就绪而有选择地消除对它们的功率,数据固化模块保留能量存储设备(例如能量存储设备204,图2)中所存储的功率,以用于功率故障操作中的其余任务。在一些实现方式中,功率消除模块(例如功率消除模块224,图2)用于在重置存储控制器之后从存储控制器消除功率,如以上关于图2所描述的那样。

在一些实施例中,一个或多个NVM控制器包括(638)第一NVM控制器和第二NVM控制器(例如第一闪速控制器和第二闪速控制器),并且从存储设备上的多个控制器消除功率包括:在将数据从第一NVM控制器传送到非易失性存储器之后重置(640)第一NVM控制器。在一些实现方式中,第一NVM控制器(例如NVM控制器130-1,图1)当其已经完成将数据传送到非易失性存储器(例如NVM设备140)时将信号发送到数据固化模块(例如数据固化模块126,图1)。当数据固化模块接收到该信号(例如数据固化完成信号)时,于是其可以重置第一NVM控制器。在一些实现方式中,重置第一NVM控制器将第一NVM控制器置于预定低功率状态下。在一些实现方式中,当第一NVM控制器正将易失性存储器中所保存的数据传送到非易失性存储器时,数据固化模块防止第一NVM控制器受重置。在一些实现方式中,在将数据从第一NVM控制器传送到非易失性存储器之后,数据固化模块中的重置模块(例如重置模块222,图2)与第一NVM控制器中的重置模块(例如重置模块412,图4)结合而用于重置第一NVM控制器,如以上关于图2和图4所描述的那样。

在一些实施例中,一个或多个NVM控制器包括(638)第一NVM控制器和第二NVM控制器(例如第一闪速控制器和第二闪速控制器),并且从存储设备上的多个控制器消除功率还包括:在将数据从第二NVM控制器传送到非易失性存储器之后重置(642)第二NVM控制器。以上结合(在操作640中)重置第一NVM控制器所提供的解释同样可应用于重置第二NVM 控制器。在一些实现方式中,在将数据从第二NVM控制器传送到非易失性存储器之后,数据固化模块中的重置模块(例如重置模块222,图2)与第二NVM控制器中的重置模块(例如重置模块412,图4)结合而用于重置第二NVM控制器,如以上关于图2和图4所描述的那样。

在一些实施例中,一个或多个NVM控制器包括(638)第一NVM控制器和第二NVM控制器(例如第一闪速控制器和第二闪速控制器),并且从存储设备上的多个控制器消除功率还包括:在重置第一NVM控制器和第二NVM控制器之后从第一NVM控制器和第二NVM控制器消除(644)功率。在一些实施例中,第一NVM控制器和第二NVM控制器共享同一功率域,并且功率在第一NVM控制器和第二NVM控制器都已经得以重置之后得以从第一NVM控制器和第二NVM控制器消除。在一些实施例中,第一NVM控制器处于第一功率域中,第二NVM控制器处于第二功率域中,并且功率独立于何时从第二NVM控制器消除功率而得以从第一NVM控制器消除。在一些实现方式中,功率消除模块(例如功率消除模块224,图2)用于在重置第一NVM控制器和第二NVM控制器之后从第一NVM控制器和第二NVM控制器消除功率,如以上关于图2所描述的那样。

在一些实施例中,在从存储控制器消除功率之后从第一NVM控制器和第二NVM控制器消除(646)功率。如上所述,存储设备上的独立功率域允许数据固化模块(例如数据固化模块126,图1)有选择地从存储设备上的各个控制器(例如存储控制器128和NVM控制器130,图1)消除功率。在一些实现方式中,由于NVM控制器直到它们已经接收到需待从存储控制器传送的所有易失性数据才可以完成固化数据,因此数据固化是以级联方式完成的。因此,存储控制器将首先完成其数据固化,并且因此,将从存储控制器消除功率,然后从第一NVM控制器和第二NVM控制器消除功率。

在一些实施例中,无论电源电压是否返回到小于或等于过电压阈值的电压,功率故障操作都得以执行(648)到完成。在一些实现方式中,即使功率故障状况是临时的(例如闪电式(lightning strike),其简短地使得电源电压闪变(flicker)得大于过电压阈值),功率故障操作也得以执行到完成。在一些实现方式中,一旦功率故障操作开始,数据固化模块(例如数据固化模块126,图1)就有效地与提供给存储设备的电源电压断连,并且忽略电源电压,直到功率故障操作完成。在一些实施例中,无论电源电压是否返回到既大于 或等于欠电压阈值又小于或等于过电压阈值的电压,功率故障操作都得以执行到完成。

在一些实施例中,电源电压包括(650)第一电压和第二电压,并且执行功率故障操作包括(612):根据确定第一电压大于第一过电压阈值来执行(652)功率故障操作。在一些实施例中,第一电压是主机系统所提供的电压(例如Vdd 502,图5),并且第一电压具有1.5伏特或更小的目标值。例如,对于双数据率类型三(DDR3)接口规范,主机系统所提供的第一电压是1.5伏特或1.35伏特。此外,在一些实施例中,执行功率故障操作包括:根据确定第一电压是小于第一欠电压阈值、还是大于第一过电压阈值来执行功率故障操作。

接下来,在电源电压包括(650)第一电压和第二电压的情况下,执行功率故障操作包括(612):根据确定第二电压大于第二欠阈值电压来执行(654)功率故障操作。在一些实施例中,第二电压是对串行存在性检测

(SPD)功能性所提供的电压(例如VSPD 504,图5),并且第二电压具有3.3伏特的目标值。此外,在一些实施例中,执行功率故障操作包括:根据确定第二电压是小于第二欠电压阈值、还是大于第二过电压阈值来执行功率故障操作。

在一些实施例中,使用来自存储设备(例如存储设备120,图1)上的能量存储设备(例如能量存储设备204,图2)的功率来执行功率故障操作(658)。替代地,使用来自存储设备外部的保留能量存储设备的功率来执行(656)功率故障操作。如以上关于图5所描述的那样,在功率故障操作期间,能量存储设备522用于将功率提供给存储设备,并且数据固化模块(例如数据固化模块126,图1和图5)用于连接而且断连适当的功率源(例如,禁用Vdd 502与Vswitched 508之间的连接,以及启用能量存储设备522与Vswitched508之间的连接,图5)。

在一些实施例中,能量存储设备包括(660)一个或多个电容器。例如,在一些实现方式中,能量存储设备522包括单个电容器,而在其它实现方式中,能量存储设备包括多个电容器。在其它实现方式中,能量存储设备包括一个或多个电感器。在一些实现方式中,能量存储设备包括存储能量的一个或多个其它无源元件。

可选地,存储设备监控(662)能量存储设备,以确保能量存储设备中的电容器充电到至少第一充电水平。在一些实现方式中,数据固化模块(例 如数据固化模块126,图1)执行用于能量存储设备的健康监控,并且监控能量存储设备中的电容器。例如,如果第一充电水平是充电容量的98%(或替代地,95%或90%),则数据固化模块监控能量存储设备,以确保能量存储设备中的电容器充电到充电容量的至少98%(或替代地,95%或90%)。在一些实现方式中,如果能量存储设备的一个或多个电容器并未充电到至少第一充电水平,则存储设备执行一个或多个补救动作(例如,进一步对一个或多个电容器进行充电)。在一些实现方式中,能量存储设备模块(例如能量存储设备模块212,图2)用于监控能量存储设备,以确保能量存储设备中的电容器充电到至少第一充电水平,如以上关于图2所描述的那样。

此外,存储设备在存储设备的操作期间有选择地测试(664)来自能量存储设备的一个或多个电容器。在一些实现方式中,数据固化模块(例如数据固化模块126,图1)使用算法,以在存储设备的操作期间有选择地测试来自能量存储设备的一个或多个电容器。在一些实现方式中,在存储设备的规律操作期间测试来自能量存储设备的一个或多个电容器(与在功率故障操作期间相反)。由于测试电容器将对电容器进行放电,因此数据固化模块管理测试电容器的协调性,以确保测试来自能量存储设备的电容器不干扰潜在功率故障操作。在一些实现方式中,能量存储设备模块(例如能量存储设备模块212,图2)用于在存储设备的操作期间有选择地测试来自能量存储设备的一个或多个电容器,如以上关于图2所描述的那样。

可选地,在确定(666)提供给存储设备的电源电压是否大于过电压阈值之前,存储设备使用比提供给存储设备的电源电压更高的电压来对能量存储设备进行充电(668)。如以上关于图5所描述的那样,使用比提供给存储设备的电源电压(例如Vdd 502或VSPD 504,图5)更高的电压(例如Vholdup506,图5)来对能量存储设备522进行充电。例如,在一些实现方式中,使用Vholdup(例如Vholdup 506,图5,具有5.7伏特的目标值)(其为比Vdd 502或VSPD 504(图5,分别具有1.35/1.5伏特和3.3伏特的目标值)更高的电压)来对能量存储设备进行充电。在一些实现方式中,通过动态浪涌电流控制来对能量存储设备进行充电。在一些实现方式中,能量存储设备模块(例如能量存储设备模块212,图2)用于使用比提供给存储设备的电源电压更高的电压来对能量存储设备进行充电,如以上关于图2所描述的那样。在一些实施例中,在确定提供给存储设备的电源电压是小于欠电压阈值、还是大于过 电压阈值之前,存储设备使用比提供给存储设备的电源电压更高的电压来对能量存储设备进行充电。

接下来,存储设备确定(670)能量存储设备(例如能量存储设备204,图2)是否在预定充电时间内满足最小充电水平阈值。例如,如果最小充电水平阈值是95%充电容量,并且预定充电时间是25ms,则存储设备确定能量存储设备是否在25ms内充电到至少95%充电容量。在一些实现方式中,能量存储设备模块(例如能量存储设备模块212,图2)用于确定能量存储设备是否在预定充电时间内满足最小充电水平阈值,如以上关于图2所描述的那样。

此外,根据确定能量存储设备并未在预定充电时间中满足最小充电水平阈值,存储设备防止(672)存储设备的操作。在一些实现方式中,确定能量存储设备并未在预定充电时间中满足最小充电水平阈值指示:当在未来执行功率故障操作(例如预测性故障检测)时,将存在数据固化故障。因此,防止存储设备的操作,以避免未来数据固化故障。在一些实现方式中,能量存储设备模块(例如能量存储设备模块212,图2)用于根据确定能量存储设备并未在预定充电时间中满足最小充电水平阈值来防止存储设备的操作,如以上关于图2所描述的那样。

在一些实施例中,防止存储设备的操作包括:将故障消息传递(674)到主机系统(例如计算机系统110,图1)。在一些实现方式中,故障消息通过SPD设备(例如SPD设备124,图1)或SPD总线控制器与主机系统进行通信。

可选地,在从存储设备上的多个控制器消除功率之后,存储设备对能量存储设备进行放电(676)。在一些实现方式中,在从存储设备(例如存储设备120,图1)上的多个控制器(例如存储控制器128和NVM控制器130,图1)消除功率之后,存储设备对能量存储设备(例如能量存储设备,图2)进行放电,并且存储设备关断(比如有规律的硬下电(hard power down))。在一些实现方式中,对能量存储设备进行放电包括:对能量存储设备的一个或多个电容器进行放电。在一些实现方式中,放电模块(例如放电模块228,图2)用于在从存储设备上的多个控制器消除功率之后对能量存储设备进行放电,,如以上关于图2所描述的那样。

在一些实施例中,保护存储设备中的数据的方法600还包括:将关于功率故障操作的数据(678)记录到非易失性存储器。在一些实现方式中,记 录关于功率故障操作的数据包括:记录以下项中的一个或多个:哪个电源电压导致了功率故障操作(例如Vdd 502或VSPD 504)、什么状况导致了功率故障操作(例如小于欠电压阈值或大于过电压阈值)、功率故障事件发生的真实时间(例如2013年10月15日早上12:03:17)、功率故障操作进行到完成的时间的长度、功率故障操作是否成功以及可选地关于功率故障操作的另外信息。

在一些实施例中,保护存储设备中的数据的方法600还包括:执行功率故障测试操作(680)。可以在没有实际产生功率故障的情况下发起功率故障测试操作。例如,可以通过来自主机系统的命令或当检测到里程碑事件时(匹配所调度的测试时间的真实时间时钟)发起功率故障测试操作,而无需实际产生功率故障。功率故障测试操作包括:将功率故障状况信传(682)到存储设备上的多个控制器中的一个或多个控制器;将易失性存储器中所保存的数据传送(684)到用于一个或多个控制器的非易失性存储器;从存储设备上的一个或多个控制器消除(686)功率;以及记录(688)关于功率故障测试操作的数据。在一些实现方式中,所记录的关于功率故障测试操作的数据包括以下项中的一个或多个:功率故障测试操作进行到完成的时间的长度、功率故障操作是否成功、以及可选地关于功率故障测试操作的另外信息。

在一些实现方式中,关于上述任何方法,非易失性存储器是单个NVM设备(例如一个闪速存储器设备),而在其它实现方式中,非易失性存储器包括多个NVM设备(例如多个闪速存储器设备)。

在一些实现方式中,关于任何上述方法,存储设备包括:(1)接口,用于将存储设备耦合到主机系统;(2)多个控制器,所述多个控制器中的每一个被配置为:将易失性存储器中所保存的数据传送到非易失性存储器;以及(3)数据固化模块,包括一个或多个处理器和能量存储设备,所述存储设备被配置为:执行或控制任何上述方法的执行情况。

应理解,虽然术语“第一”、“第二”等在此可以用于描述各个要素,但这些要素不应受限于这些术语。这些术语仅用于将要素彼此区分。例如,只要“第一接触”的所有出现一致地更名并且第二接触的所有出现一致地更名,第一接触就可以称为第二接触,并且相似地,第二接触就可以称为第一接触,这样改变描述的意义。第一接触和第二接触都是接触,但它们不是同一接触。

在此所使用的术语仅用于描述特定实施例的目的,而并非意图限制权利要求。如在具体实施方式和所附权利要求中所使用的那样,单数形式“一个 ”、“某个”以及“所述”意图同样包括复数形式,除非上下文另外清楚指明。还应理解,在此所使用的术语“和/或”指代并且囊括关联列出的项中的一个或多个的任何以及所有可能组合。还应理解,术语“包括”和/或“包含”当在本发明中使用时用于指定所声明的特征、整体、步骤、操作、要素和/或组件的存在性,但不排除一个或多个其它特征、整体、步骤、操作、要素、组件或其群组的存在性或添加性。

如在此使用的那样,取决于上下文,术语“如果”可以理解为表示“当所声明的条件前提成立时”或“在所声明的条件前提成立时”或“根据确定所声明的条件前提成立”或“响应于检测到所声明的条件前提成立”。相似地,取决于上下文,短语“如果确定[所声明的条件前提成立]”或“如果[所声明的条件前提成立]”或“当[所声明的条件前提成立]时”可以理解为表示“在确定所声明的条件前提成立时”或“响应于确定所声明的条件前提成立”或“根据确定所声明的条件前提成立”或“在检测到所声明的条件前提成立时”或“响应于检测所声明的条件前提成立”。

为了解释,已经参照具体实现方式描述了前面的描述。然而,以上说明性讨论并非意图是囊括性的或将权利要求限制为所公开的精确形式。根据以上教导,很多修改和变化是可能的。选取并且描述实现方式,以最佳地解释操作原理和实际应用,以由此启发本领域技术人员。

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