CN106415503A - 硬功率故障架构 - Google Patents

硬功率故障架构 Download PDF

Info

Publication number
CN106415503A
CN106415503A CN201480071209.5A CN201480071209A CN106415503A CN 106415503 A CN106415503 A CN 106415503A CN 201480071209 A CN201480071209 A CN 201480071209A CN 106415503 A CN106415503 A CN 106415503A
Authority
CN
China
Prior art keywords
storage device
controller
power failure
data
power
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480071209.5A
Other languages
English (en)
Other versions
CN106415503B (zh
Inventor
G.S.卢卡斯
K.B.德尔帕帕
L.J.赫尔曼
R.W.埃利斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Data Technology Co.,Ltd.
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN106415503A publication Critical patent/CN106415503A/zh
Application granted granted Critical
Publication of CN106415503B publication Critical patent/CN106415503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • G06F1/305Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations in the event of power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems

Abstract

在此所描述的各个实现方式包括用于使得能够在存储设备中进行功率排序和数据固化的系统、方法和/或设备。在一个方面中,所述方法包括:确定提供给所述存储设备的电源电压是否大于过电压阈值。所述方法还包括:根据确定所述电源电压大于所述过电压阈值,执行功率故障操作,所述功率故障操作包括:(1)将功率故障状况信传到所述存储设备上的多个控制器;(2)将易失性存储器中所保存的数据传送到非易失性存储器;以及(3)从所述存储设备上的所述多个控制器消除功率。

Description

硬功率故障架构
技术领域
所公开的实施例总体上涉及存储器系统,具体地说,涉及数据存储设备中的功率排序(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)数据固化模块,包括一个或多个处理器和能量存储设备,所述存储设备被配置为:执行或控制任何上述方法的执行情况。
应理解,虽然术语“第一”、“第二”等在此可以用于描述各个要素,但这些要素不应受限于这些术语。这些术语仅用于将要素彼此区分。例如,只要“第一接触”的所有出现一致地更名并且第二接触的所有出现一致地更名,第一接触就可以称为第二接触,并且相似地,第二接触就可以称为第一接触,这样改变描述的意义。第一接触和第二接触都是接触,但它们不是同一接触。
在此所使用的术语仅用于描述特定实施例的目的,而并非意图限制权利要求。如在具体实施方式和所附权利要求中所使用的那样,单数形式“一个”、“某个”以及“所述”意图同样包括复数形式,除非上下文另外清楚指明。还应理解,在此所使用的术语“和/或”指代并且囊括关联列出的项中的一个或多个的任何以及所有可能组合。还应理解,术语“包括”和/或“包含”当在本发明中使用时用于指定所声明的特征、整体、步骤、操作、要素和/或组件的存在性,但不排除一个或多个其它特征、整体、步骤、操作、要素、组件或其群组的存在性或添加性。
如在此使用的那样,取决于上下文,术语“如果”可以理解为表示“当所声明的条件前提成立时”或“在所声明的条件前提成立时”或“根据确定所声明的条件前提成立”或“响应于检测到所声明的条件前提成立”。相似地,取决于上下文,短语“如果确定[所声明的条件前提成立]”或“如果[所声明的条件前提成立]”或“当[所声明的条件前提成立]时”可以理解为表示“在确定所声明的条件前提成立时”或“响应于确定所声明的条件前提成立”或“根据确定所声明的条件前提成立”或“在检测到所声明的条件前提成立时”或“响应于检测所声明的条件前提成立”。
为了解释,已经参照具体实现方式描述了前面的描述。然而,以上说明性讨论并非意图是囊括性的或将权利要求限制为所公开的精确形式。根据以上教导,很多修改和变化是可能的。选取并且描述实现方式,以最佳地解释操作原理和实际应用,以由此启发本领域技术人员。

Claims (31)

1.一种保护存储设备中的数据的方法,所述方法包括:
确定提供给所述存储设备的电源电压是否大于过电压阈值;以及
根据确定所述电源电压大于所述过电压阈值,执行功率故障操作,所述功率故障操作包括:
将功率故障状况信传到所述存储设备上的多个控制器;
将易失性存储器中所保存的数据传送到非易失性存储器;以及
从所述存储设备上的所述多个控制器消除功率。
2.如权利要求1所述的方法,其中,所述存储设备上的所述多个控制器包括存储控制器以及一个或多个非易失性存储器(NVM)控制器,所述一个或多个NVM控制器通过所述存储控制器耦合到所述存储设备的主机接口。
3.如权利要求2所述的方法,其中,将易失性存储器中所保存的数据传送到非易失性存储器包括:
将数据从所述存储控制器传送到所述一个或多个NVM控制器;以及
将数据从所述一个或多个NVM控制器传送到所述非易失性存储器。
4.如权利要求3所述的方法,其中,从所述存储设备上的所述多个控制器消除功率包括:
在将数据从所述存储控制器传送到所述一个或多个NVM控制器之后,重置所述存储控制器;以及
在重置所述存储控制器之后,从所述存储控制器消除功率。
5.如权利要求3所述的方法,其中,所述一个或多个NVM控制器包括第一NVM控制器和第二NVM控制器,并且其中,从所述存储设备上的所述多个控制器消除功率包括:
在将数据从所述第一NVM控制器传送到所述非易失性存储器之后,重置所述第一NVM控制器;
在将数据从所述第二NVM控制器传送到所述非易失性存储器之后,重置所述第二NVM控制器;以及
在重置所述第一NVM控制器和所述第二NVM控制器之后,从所述第一NVM控制器和所述第二NVM控制器消除功率。
6.如权利要求5所述的方法,其中,从所述第一NVM控制器和所述第二NVM控制器消除功率是在从所述存储控制器消除功率之后的。
7.如权利要求1-6中的任一项所述的方法,其中,无论所述电源电压是否返回到小于或等于所述过电压阈值的电压,所述功率故障操作都得以执行到完成。
8.如权利要求1-7中的任一项所述的方法,其中,所述电源电压是主机系统所提供的电压。
9.如权利要求1-7中的任一项所述的方法,其中,所述电源电压是对串行存在性检测(SPD)功能性所提供的电压。
10.如权利要求1-9中的任一项所述的方法,其中,所述电源电压包括第一电压和第二电压,并且其中,执行所述功率故障操作包括:
根据确定所述第一电压大于第一过电压阈值来执行所述功率故障操作;以及
根据确定所述第二电压大于第二过电压阈值来执行所述功率故障操作。
11.如权利要求1-10中的任一项所述的方法,其中,使用来自保留能量存储设备的功率来执行所述功率故障操作。
12.如权利要求1-10中的任一项所述的方法,其中,使用来自所述存储设备上的能量存储设备的功率来执行所述功率故障操作。
13.如权利要求12所述的方法,其中,所述能量存储设备包括一个或多个电容器。
14.如权利要求12-13中的任一项所述的方法,还包括:
监控所述能量存储设备,以确保所述能量存储设备中的电容器充电到至少第一充电电平;以及
在所述存储设备的操作期间有选择地测试来自所述能量存储设备的一个或多个电容器。
15.如权利要求12-14中的任一项所述的方法,还包括:
在确定提供给所述存储设备的所述电源电压是否大于所述过电压阈值之前:
使用比提供给所述存储设备的电源电压更高的电压来对所述能量存储设备进行充电;
确定所述能量存储设备是否在预定充电时间内满足最小充电水平阈值;以及
根据确定所述能量存储设备在所述预定充电时间中不满足最小充电水平阈值,防止所述存储设备的操作。
16.如权利要求15所述的方法,其中,防止所述存储设备的操作包括:将故障消息传递到主机系统。
17.如权利要求12-16中的任一项所述的方法,还包括:在从所述存储设备上的所述多个控制器消除功率之后,对所述能量存储设备进行放电。
18.如权利要求1-17中的任一项所述的方法,其中,所述非易失性存储器包括一个或多个NVM设备。
19.如权利要求1-18中的任一项所述的方法,其中,所述存储设备包括双列直插存储器模块(DIMM)设备。
20.如权利要求1-19中的任一项所述的方法,其中,所述存储设备上的所述多个控制器包括至少一个非易失性存储控制器以及除了所述至少一个非易失性存储控制器之外的至少一个另外存储控制器。
21.如权利要求1-20中的任一项所述的方法,其中,所述存储设备上的所述多个控制器将双数据率(DDR)接口命令映射为串行高级技术附连(SATA)接口命令。
22.如权利要求1-21中的任一项所述的方法,其中,所述过电压阈值是可编程的。
23.如权利要求1-22中的任一项所述的方法,其中,将所述功率故障状况信传到所述存储设备上的所述多个控制器包括:分离地将所述功率故障状况信传到所述多个控制器中的每一个。
24.如权利要求1-23中的任一项所述的方法,还包括:将关于所述功率故障操作的数据记录到非易失性存储器。
25.如权利要求1-24中的任一项所述的方法,还包括:执行功率故障测试操作,所述功率故障测试操作包括:
将所述功率故障状况信传到所述存储设备上的所述多个控制器中的一个或多个控制器;
对于所述一个或多个控制器,将易失性存储器中所保存的数据传送到非易失性存储器;
从所述存储设备上的所述一个或多个控制器消除功率;以及
记录关于所述功率故障测试操作的数据。
26.一种存储设备,包括:
接口,用于将所述存储设备耦合到主机系统;
多个控制器,所述多个控制器中的每一个被配置为:将易失性存储器中所保存的数据传送到非易失性存储器;以及
数据固化模块,包括能量存储设备,所述数据固化模块被配置为:
确定提供给所述存储设备的电源电压是否大于过电压阈值;以及
根据确定所述电源电压大于所述过电压阈值,执行功率故障操作,所述功率故障操作包括:
将功率故障状况信传到所述多个控制器,使得所述多个控制器将易失性存储器中所保存的数据传送到非易失性存储器;以及
从所述存储设备上的所述多个控制器消除功率。
27.如权利要求26所述的存储设备,进一步被配置为:根据如权利要求2-25中的任一项所述的方法而操作。
28.一种非瞬时计算机可读存储介质,存储一个或多个程序,以用于由具有多个控制器和数据固化模块的存储设备的一个或多个处理器运行,所述一个或多个程序包括指令,当运行时使得所述存储设备:
确定提供给所述存储设备的电源电压是否大于过电压阈值;以及
根据确定所述电源电压大于所述过电压阈值,执行功率故障操作,所述功率故障操作包括:
将功率故障状况信传到所述存储设备上的多个控制器;
将易失性存储器中所保存的数据传送到非易失性存储器;以及
从所述存储设备上的所述多个控制器消除功率。
29.如权利要求28所述的非瞬时计算机可读存储介质,进一步被配置为:根据如权利要求2-25中的任一项所述的方法而操作。
30.一种可操作为保护数据的存储设备,包括:
接口,用于将所述存储设备耦合到主机系统;
用于确定提供给所述存储设备的电源电压是否大于过电压阈值的装置;以及
用于根据确定所述电源电压大于所述过电压阈值来执行功率故障操作的装置,所述用于执行功率故障操作的装置包括:
用于将功率故障状况信传到所述存储设备上的多个控制器的装置;
用于将易失性存储器中所保存的数据传送到非易失性存储器的装置;以及
用于从所述存储设备上的所述多个控制器消除功率的装置。
31.如权利要求30所述的存储设备,进一步被配置为:根据如权利要求2-25中的任一项所述的方法而操作。
CN201480071209.5A 2013-11-27 2014-11-25 硬功率故障架构 Active CN106415503B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361909924P 2013-11-27 2013-11-27
US61/909,924 2013-11-27
US14/135,417 US9122636B2 (en) 2013-11-27 2013-12-19 Hard power fail architecture
US14/135,417 2013-12-19
PCT/US2014/067476 WO2015081129A2 (en) 2013-11-27 2014-11-25 Hard power fail architecture

Publications (2)

Publication Number Publication Date
CN106415503A true CN106415503A (zh) 2017-02-15
CN106415503B CN106415503B (zh) 2019-07-09

Family

ID=53183726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480071209.5A Active CN106415503B (zh) 2013-11-27 2014-11-25 硬功率故障架构

Country Status (4)

Country Link
US (1) US9122636B2 (zh)
CN (1) CN106415503B (zh)
DE (1) DE112014005417T5 (zh)
WO (1) WO2015081129A2 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9443601B2 (en) * 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US10296232B2 (en) * 2015-09-01 2019-05-21 Western Digital Technologies, Inc. Service level based control of storage systems
CN106328059B (zh) * 2016-09-07 2017-10-27 京东方科技集团股份有限公司 用于电学补偿的存储器中数据更新的方法和装置
CN106776095B (zh) * 2016-12-22 2020-01-03 湖南国科微电子股份有限公司 Ssd固态硬盘数据可靠性智能检测方法及检测装置
JP6818603B2 (ja) * 2017-03-23 2021-01-20 キオクシア株式会社 メモリシステム、及びメモリシステムの制御方法
US11099961B2 (en) * 2019-03-14 2021-08-24 Dell Products L.P. Systems and methods for prevention of data loss in a power-compromised persistent memory equipped host information handling system during a power loss event
US11157439B2 (en) 2019-07-25 2021-10-26 Western Digital Technologies, Inc. Method for delaying fundamental reset in power loss protection (PLP) enabled devices
CN111722690B (zh) * 2020-06-12 2022-04-22 苏州浪潮智能科技有限公司 服务器电源模块监控方法、装置、服务器和存储介质
EP4075434B1 (en) * 2021-04-12 2023-11-08 Samsung Electronics Co., Ltd. Overvoltage detection in storage device and provision of status information

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102263303A (zh) * 2011-06-02 2011-11-30 福州天和新能电子科技有限公司 模块化锂动力电池及其管理系统和管理方法
EP1956489B1 (en) * 2007-02-07 2011-12-21 Hitachi, Ltd. Storage control unit and data management method
US20130019176A1 (en) * 2011-07-11 2013-01-17 Sony Corporation Information processing apparatus, information processing method, and program
US20130125685A1 (en) * 2011-11-18 2013-05-23 Lincoln Global, Inc. Tractor unit drive gear engagement device

Family Cites Families (175)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4600962A (en) * 1983-02-03 1986-07-15 Sentec Inc. Apparatus for monitoring and protecting a device against a plurality of fault conditions
US4916652A (en) 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US5193176A (en) 1990-10-17 1993-03-09 Powercard Supply C.A. Computer work saving during power interruption
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5416915A (en) 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5537555A (en) 1993-03-22 1996-07-16 Compaq Computer Corporation Fully pipelined and highly concurrent memory controller
US5519847A (en) 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
GB9419246D0 (en) 1994-09-23 1994-11-09 Cambridge Consultants Data processing circuits and interfaces
US5666114A (en) 1994-11-22 1997-09-09 International Business Machines Corporation Method and means for managing linear mapped address spaces storing compressed data at the storage subsystem control unit or device level
US5530705A (en) 1995-02-08 1996-06-25 International Business Machines Corporation Soft error recovery system and method
US6393584B1 (en) 1995-04-26 2002-05-21 International Business Machines Corporation Method and system for efficiently saving the operating state of a data processing system
WO1997000518A1 (fr) 1995-06-14 1997-01-03 Hitachi, Ltd. Memoire a semiconducteurs, unite de memoire et carte de memoire
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6134148A (en) 1997-09-30 2000-10-17 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
US5943692A (en) 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JPH11126497A (ja) 1997-10-22 1999-05-11 Oki Electric Ind Co Ltd 不揮発性半導体記憶装置
US7111293B1 (en) 1998-06-03 2006-09-19 Ants Software, Inc. Method for increased concurrency in a computer system
US6505305B1 (en) 1998-07-16 2003-01-07 Compaq Information Technologies Group, L.P. Fail-over of multiple memory blocks in multiple memory modules in computer system
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6295592B1 (en) 1998-07-31 2001-09-25 Micron Technology, Inc. Method of processing memory requests in a pipelined memory controller
US6438661B1 (en) 1999-03-03 2002-08-20 International Business Machines Corporation Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache
US6449625B1 (en) 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
US6564271B2 (en) 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US7318117B2 (en) 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US20080282128A1 (en) 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US20050114587A1 (en) 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US6484224B1 (en) 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
DE19961138C2 (de) 1999-12-17 2001-11-22 Siemens Ag Multiport-RAM-Speichervorrichtung
US7082056B2 (en) 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
US8037234B2 (en) 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US20020152305A1 (en) 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US6615307B1 (en) 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
US20030188045A1 (en) 2000-04-13 2003-10-02 Jacobson Michael B. System and method for distributing storage controller tasks
US6678788B1 (en) 2000-05-26 2004-01-13 Emc Corporation Data type and topological data categorization and ordering for a mass storage system
US6442076B1 (en) 2000-06-30 2002-08-27 Micron Technology, Inc. Flash memory with multiple status reading capability
US6738870B2 (en) 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
US20020178162A1 (en) 2001-01-29 2002-11-28 Ulrich Thomas R. Integrated distributed file system with variable parity groups
US7017107B2 (en) 2001-04-30 2006-03-21 Sun Microsystems, Inc. Storage array employing scrubbing operations at the disk-controller level
US6938253B2 (en) 2001-05-02 2005-08-30 Portalplayer, Inc. Multiprocessor communication system and method
US6757768B1 (en) 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US7068603B2 (en) 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US6836815B1 (en) 2001-07-11 2004-12-28 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
TW539946B (en) 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
JP4437519B2 (ja) 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US7028213B2 (en) 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
JP3963692B2 (ja) 2001-10-15 2007-08-22 富士通株式会社 複数の情報処理装置の電源制御方法、その情報処理装置、及びプログラム
US7032123B2 (en) 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
JP3663377B2 (ja) 2001-10-23 2005-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法
US7380085B2 (en) 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US6738268B1 (en) * 2001-11-28 2004-05-18 Emc Corporation Method and apparatus for providing power signals to operating circuitry mounted on circuit boards
US6798696B2 (en) 2001-12-04 2004-09-28 Renesas Technology Corp. Method of controlling the operation of non-volatile semiconductor memory chips
US6990603B2 (en) 2002-01-02 2006-01-24 Exanet Inc. Method and apparatus for securing volatile data in power failure in systems having redundancy
US6871257B2 (en) 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US6836808B2 (en) 2002-02-25 2004-12-28 International Business Machines Corporation Pipelined packet processing
KR100476888B1 (ko) 2002-04-04 2005-03-17 삼성전자주식회사 온도보상기능을 가진 멀티비트 플래쉬메모리
JP4079684B2 (ja) 2002-05-08 2008-04-23 株式会社日立製作所 ヒープメモリ管理方法およびそれを用いた計算機システム
US6895464B2 (en) 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US7051155B2 (en) 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US6978343B1 (en) 2002-08-05 2005-12-20 Netlogic Microsystems, Inc. Error-correcting content addressable memory
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7043505B1 (en) 2003-01-28 2006-05-09 Unisys Corporation Method variation for collecting stability data from proprietary systems
US7162678B2 (en) 2003-03-14 2007-01-09 Quantum Corporation Extended error correction codes
KR100543447B1 (ko) 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
WO2004099985A1 (ja) 2003-05-09 2004-11-18 Fujitsu Limited 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体
EP2511787B1 (en) 2003-05-23 2017-09-20 IP Reservoir, LLC Data decompression and search using FPGA devices
US7877647B2 (en) 2003-05-23 2011-01-25 Hewlett-Packard Development Company, L.P. Correcting a target address in parallel with determining whether the target address was received in error
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US20040252670A1 (en) 2003-06-12 2004-12-16 Nokia Corporation Adaptive power margin adjustment for a 1xEV-DV system
US7054968B2 (en) 2003-09-16 2006-05-30 Denali Software, Inc. Method and apparatus for multi-port memory controller
US7100002B2 (en) 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7523157B2 (en) 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7173852B2 (en) 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7376887B2 (en) 2003-12-22 2008-05-20 International Business Machines Corporation Method for fast ECC memory testing by software including ECC check byte
JP4477365B2 (ja) 2004-01-29 2010-06-09 株式会社日立製作所 複数インタフェースを有する記憶装置、および、その記憶装置の制御方法
US7350044B2 (en) 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7389465B2 (en) 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US20080147964A1 (en) 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US20050273560A1 (en) 2004-06-03 2005-12-08 Hulbert Jared E Method and apparatus to avoid incoherency between a cache memory and flash memory
US7334179B2 (en) 2004-06-04 2008-02-19 Broadcom Corporation Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems
US7159069B2 (en) 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device
JP2008511929A (ja) 2004-08-30 2008-04-17 シリコン ストレージ テクノロジー、 インク. 携帯電話の不揮発性メモリを管理するシステムおよび方法
US20060156177A1 (en) 2004-12-29 2006-07-13 Sailesh Kottapalli Method and apparatus for recovering from soft errors in register files
US7657696B2 (en) 2005-02-25 2010-02-02 Lsi Corporation Method to detect NAND-flash parameters by hardware automatically
US7707232B2 (en) 2005-05-13 2010-04-27 Microsoft Corporation Implementation for collecting unmanaged memory
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
KR100705220B1 (ko) 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
JP2009510585A (ja) 2005-09-27 2009-03-12 エヌエックスピー ビー ヴィ 誤り検出/訂正回路及び方法
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
KR100715147B1 (ko) 2005-10-06 2007-05-10 삼성전자주식회사 전류소모를 감소시키는 내부전원전압 발생회로를 가지는멀티칩 반도체 메모리 장치
US20070083697A1 (en) 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
JP4764696B2 (ja) 2005-10-07 2011-09-07 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US8223553B2 (en) 2005-10-12 2012-07-17 Macronix International Co., Ltd. Systems and methods for programming a memory device
US7500062B2 (en) 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
WO2007058617A1 (en) 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
US7546515B2 (en) 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US7562283B2 (en) 2005-12-27 2009-07-14 D.S.P. Group Ltd. Systems and methods for error correction using binary coded hexidecimal or hamming decoding
US7349264B2 (en) 2005-12-28 2008-03-25 Sandisk Corporation Alternate sensing techniques for non-volatile memories
WO2007080586A2 (en) 2006-01-10 2007-07-19 Saifun Semiconductors Ltd. Rd algorithm improvement for nrom technology
KR100725410B1 (ko) 2006-01-20 2007-06-07 삼성전자주식회사 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법
US20070234143A1 (en) 2006-01-25 2007-10-04 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices
JP4859471B2 (ja) 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ
US7870326B2 (en) 2006-07-28 2011-01-11 Samsung Electronics Co., Ltd. Multiprocessor system and method thereof
US7681106B2 (en) 2006-03-29 2010-03-16 Freescale Semiconductor, Inc. Error correction device and methods thereof
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US20070245061A1 (en) 2006-04-13 2007-10-18 Intel Corporation Multiplexing a parallel bus interface and a flash memory interface
US7685494B1 (en) 2006-05-08 2010-03-23 Marvell International, Ltd. Error correction coding for varying signal-to-noise ratio channels
US7707481B2 (en) 2006-05-16 2010-04-27 Pitney Bowes Inc. System and method for efficient uncorrectable error detection in flash memory
US20070300130A1 (en) 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US7606084B2 (en) 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
JP4842719B2 (ja) 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
US7774684B2 (en) 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
JP2008047273A (ja) 2006-07-20 2008-02-28 Toshiba Corp 半導体記憶装置およびその制御方法
TW200813724A (en) 2006-07-28 2008-03-16 Samsung Electronics Co Ltd Multipath accessible semiconductor memory device with host interface between processors
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US8171380B2 (en) 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
JP2008117195A (ja) 2006-11-06 2008-05-22 Hitachi Ltd 半導体記憶装置
TWI307100B (en) 2006-11-07 2009-03-01 Macronix Int Co Ltd Memory and method for reading error checking thereof
KR100881669B1 (ko) 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
KR100842680B1 (ko) 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
KR100855587B1 (ko) 2007-01-17 2008-09-01 삼성전자주식회사 메일박스 영역을 가지는 멀티 패스 액세스블 반도체 메모리장치 및 그에 따른 메일박스 액세스 제어방법
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7913022B1 (en) 2007-02-14 2011-03-22 Xilinx, Inc. Port interface modules (PIMs) in a multi-port memory controller (MPMC)
KR100918707B1 (ko) 2007-03-12 2009-09-23 삼성전자주식회사 플래시 메모리를 기반으로 한 메모리 시스템
JP4897524B2 (ja) 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
KR100907218B1 (ko) 2007-03-28 2009-07-10 삼성전자주식회사 읽기 레벨 제어 장치 및 그 방법
WO2008121553A1 (en) 2007-03-29 2008-10-09 Sandisk Corporation Non-volatile storage with decoding of data using reliability metrics based on multiple reads
WO2008121577A1 (en) 2007-03-31 2008-10-09 Sandisk Corporation Soft bit data transmission for error correction control in non-volatile memory
US8032724B1 (en) 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US7996642B1 (en) 2007-04-25 2011-08-09 Marvell International Ltd. Digital locked loop on channel tagged memory requests for memory optimization
US8073648B2 (en) 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
KR100891005B1 (ko) 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
KR101239690B1 (ko) 2007-10-31 2013-03-06 에이저 시스템즈 엘엘시 다중―레벨 플래시 메모리를 위한 체계적 에러 정정
US8001419B2 (en) 2007-11-13 2011-08-16 Rockwell Automation Technologies, Inc. Energy storage module
US8429492B2 (en) 2007-11-30 2013-04-23 Marvell World Trade Ltd. Error correcting code predication system and method
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
US20090172335A1 (en) 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8159874B2 (en) 2008-01-22 2012-04-17 Micron Technology, Inc. Cell operation monitoring
US8271515B2 (en) 2008-01-29 2012-09-18 Cadence Design Systems, Inc. System and method for providing copyback data integrity in a non-volatile memory system
JP4617405B2 (ja) 2008-02-05 2011-01-26 富士通株式会社 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US8185706B2 (en) 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
KR101412690B1 (ko) 2008-05-28 2014-06-27 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
KR101412974B1 (ko) 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
US8627169B2 (en) 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
US8325554B2 (en) 2008-07-10 2012-12-04 Sanmina-Sci Corporation Battery-less cache memory module with integrated backup
US8130552B2 (en) 2008-09-11 2012-03-06 Sandisk Technologies Inc. Multi-pass programming for memory with reduced data storage requirement
US7934124B2 (en) * 2008-10-10 2011-04-26 Oracle America, Inc. Self-contained densely packed solid-state storage subsystem
KR101484556B1 (ko) 2008-10-28 2015-01-20 삼성전자주식회사 독출 보상 회로
US8645749B2 (en) 2009-02-04 2014-02-04 Micron Technology, Inc. Systems and methods for storing and recovering controller data in non-volatile memory devices
KR20100090439A (ko) 2009-02-06 2010-08-16 주식회사 하이닉스반도체 불휘발성 메모리 장치의 독출 방법 및 이를 구현하는 불휘발성 메모리 장치
KR20100093885A (ko) 2009-02-17 2010-08-26 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
KR101575248B1 (ko) 2009-04-30 2015-12-07 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
US20100281207A1 (en) 2009-04-30 2010-11-04 Miller Steven C Flash-based data archive storage system
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US7941696B2 (en) 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US8468370B2 (en) 2009-09-16 2013-06-18 Seagate Technology Llc Systems, methods and devices for control of the operation of data storage devices using solid-state memory and monitoring energy used therein
JP5197544B2 (ja) 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
US8526605B2 (en) 2009-10-09 2013-09-03 Seagate Technology Llc Data encryption to provide data security and memory cell bit wear leveling
CN101699406B (zh) 2009-11-12 2011-12-14 威盛电子股份有限公司 数据储存系统与方法
US8130553B2 (en) 2009-12-02 2012-03-06 Seagate Technology Llc Systems and methods for low wear operation of solid state memory
US8213255B2 (en) 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8737136B2 (en) 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
US10157002B2 (en) 2010-08-26 2018-12-18 International Business Machines Corporation Migrating an encoded data slice based on an end-of-life memory level of a memory device
US8738846B2 (en) 2010-10-15 2014-05-27 Arkologic Limited File system-aware solid-state storage management system
US9569633B2 (en) 2012-06-29 2017-02-14 Intel Corporation Device, system, and method for processor-based data protection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1956489B1 (en) * 2007-02-07 2011-12-21 Hitachi, Ltd. Storage control unit and data management method
CN102263303A (zh) * 2011-06-02 2011-11-30 福州天和新能电子科技有限公司 模块化锂动力电池及其管理系统和管理方法
US20130019176A1 (en) * 2011-07-11 2013-01-17 Sony Corporation Information processing apparatus, information processing method, and program
US20130125685A1 (en) * 2011-11-18 2013-05-23 Lincoln Global, Inc. Tractor unit drive gear engagement device

Also Published As

Publication number Publication date
CN106415503B (zh) 2019-07-09
DE112014005417T5 (de) 2016-09-15
US20150149806A1 (en) 2015-05-28
US9122636B2 (en) 2015-09-01
WO2015081129A2 (en) 2015-06-04
WO2015081129A3 (en) 2015-07-23

Similar Documents

Publication Publication Date Title
CN106415503A (zh) 硬功率故障架构
US20210173567A1 (en) Non-volatile memory storage for multi-channel memory system
US9250676B2 (en) Power failure architecture and verification
CN106537365B (zh) 用于交错存储器操作的方法和系统
US10229019B2 (en) Power fail circuit for multi-storage-device arrays
CN103635968B (zh) 包含存储器系统控制器的设备和相关方法
CN103218274B (zh) 一种预防故障累加的方法和固态硬盘
US7904647B2 (en) System for optimizing the performance and reliability of a storage controller cache offload circuit
CN101465164B (zh) 一种擦除数据的方法、装置及系统
CN109390004A (zh) 热量疏导期间对数据块进行路由
CN106445724A (zh) 与受保护数据分开存储奇偶校验数据
US9665451B2 (en) Method and device for distributing holdup energy to memory arrays
CN107799150A (zh) 3d nand闪存的错误缓解
CN106663457A (zh) 连续的电容器健康监视和电源系统
DE112016000696B4 (de) Ablaufplanungsschema(ta) für eine Mehrchip-Speichervorrichtung
CN101645027A (zh) 对象存储控制器及其掉电保护装置和保护方法
CN109643575B (zh) 以子块粒度管理固态驱动器缺陷冗余
US9443601B2 (en) Holdup capacitor energy harvesting
US20160210210A1 (en) Solid-state storage system, apparatus and method of writing data
US9280429B2 (en) Power fail latching based on monitoring multiple power supply voltages in a storage device
US9244785B2 (en) Simulated power failure and data hardening
CN106133837A (zh) 用于在储存装置中调整跳闸点的系统和方法
US9323637B2 (en) Power sequencing and data hardening architecture
CN103198861B (zh) 存储器储存装置、存储器控制器与控制方法
CN103677669B (zh) 调度io的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240305

Address after: San Jose, California, USA

Patentee after: Western Data Technology Co.,Ltd.

Guo jiahuodiqu after: Mei Guo

Address before: texas

Patentee before: SANDISK TECHNOLOGIES LLC

Guo jiahuodiqu before: Mei Guo

TR01 Transfer of patent right