CN113711189B - 用于管理固态驱动器上的降低电力故障能量需求的系统及方法 - Google Patents

用于管理固态驱动器上的降低电力故障能量需求的系统及方法 Download PDF

Info

Publication number
CN113711189B
CN113711189B CN202080026771.1A CN202080026771A CN113711189B CN 113711189 B CN113711189 B CN 113711189B CN 202080026771 A CN202080026771 A CN 202080026771A CN 113711189 B CN113711189 B CN 113711189B
Authority
CN
China
Prior art keywords
write commands
ssd
volatile memory
unexecuted
power failure
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.)
Active
Application number
CN202080026771.1A
Other languages
English (en)
Other versions
CN113711189A (zh
Inventor
史蒂文·威尔斯
罗伯特·瑞德
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.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Priority to CN202311659061.4A priority Critical patent/CN117519450A/zh
Publication of CN113711189A publication Critical patent/CN113711189A/zh
Application granted granted Critical
Publication of CN113711189B publication Critical patent/CN113711189B/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/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/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • 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/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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J9/00Circuit arrangements for emergency or stand-by power supply, e.g. for emergency lighting
    • H02J9/04Circuit arrangements for emergency or stand-by power supply, e.g. for emergency lighting in which the distribution system is disconnected from the normal source and connected to a standby source
    • H02J9/06Circuit arrangements for emergency or stand-by power supply, e.g. for emergency lighting in which the distribution system is disconnected from the normal source and connected to a standby source with automatic change-over, e.g. UPS systems
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/30Systems integrating technologies related to power network operation and communication or information technologies for improving the carbon footprint of the management of residential or tertiary loads, i.e. smart grids as climate change mitigation technology in the buildings sector, including also the last stages of power distribution and the control, monitoring or operating management systems at local level
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P80/00Climate change mitigation technologies for sector-wide applications
    • Y02P80/10Efficient use of energy, e.g. using compressed air or pressurized fluid as energy carrier
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S20/00Management or operation of end-user stationary applications or the last stages of power distribution; Controlling, monitoring or operating thereof
    • Y04S20/20End-user application control systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Emergency Management (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)

Abstract

本发明涉及一种用于响应于SSD的主电力供应器的电力故障事件而控制所述SSD的系统及方法。所述方法包含:接收用于在SSD上执行的写入命令及相关联数据有效负载并将其存储于易失性存储器中;检测所述SSD上的所述电力故障事件;在所述电力故障事件期间向所述SSD供应备用电源;及通过使用所述备用电源将所述相关联数据有效负载存储于所述SSD上的非易失性存储器中而执行存储于所述易失性存储器中的一或多个写入命令。响应于所述执行,从高速缓冲存储器移除所述一或多个写入命令,使得一或多个未经执行写入命令及所述相关联数据有效负载保留在高速缓冲存储器中,且使用所述备用电源将所述一或多个未经执行写入命令的列表但不将所述相关联数据有效负载存储于非易失性存储器中。

Description

用于管理固态驱动器上的降低电力故障能量需求的系统及 方法
技术领域
本发明一般来说涉及固态存储器驱动器且更特定来说涉及用于管理固态驱动器上的降低电力故障能量需求的系统及方法。
背景技术
非易失性存储器(NVM)是即使在电力循环—将装置关闭电源且接着再次打开电源之后仍保持所存储信息的一种类型的计算机存储器。相比来说,易失性存储器是需要电力来维持所存储信息的一种类型的计算机存储器,当电力被关断或中断时,所存储数据丢失。传统类型的非易失性存储器是硬盘驱动器(HDD),其使用涂覆有磁性材料的一或多个旋转磁盘(盘片)来存储并存取数据。
另一类型的存储存储器是固态驱动器(SSD),其与HDD的不同之处在于使用电子电路来存储并检索数字数据,而无需任何移动机械部分。可基于易失性存储器(例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM))或非易失性存储器(例如NAND快闪存储器)两者而使用SSD。已广泛地采用具有NAND快闪存储器的SSD以供用于消费产品及企业数据中心中。
典型SSD包含存储器控制器及若干个NAND快闪存储器装置。存储器控制器通过位于一侧上的主机接口而与主机进行通信且通过位于另一侧上的通常称为信道的多个接口而与NAND快闪存储器装置进行通信。存储器控制器通过共同共享总线接口(信道)而存取多个NAND快闪存储器装置。当主机将写入命令写入到SSD时,存储器控制器接收写入命令、将写入命令及相关联数据有效负载暂时存储于易失性存储器中的缓冲器或高速缓冲存储器中,且将写入命令的应答发送到主机。接着随后从高速缓冲存储器处理每一写入命令,且将对应于写入命令的数据有效负载存储于非易失性存储器中,并从高速缓冲存储器移除写入命令。
然而,在SSD的电力损失后,存储于易失性存储器中的高速缓冲存储器中的写入命令及其数据有效负载即刻有丢失的风险。为防止在意外电力损失期间高速缓冲存储器中的可能数据丢失,将SSD设计为具有备用电源。在先前系统中,SSD已被设计为具有有限备用电源(例如电池、电容器或超级电容器),所述有限备用电源经定大小以处置将与高速缓冲存储器中的写入命令对应的所有数据有效负载写入到非易失性存储器中。然而,在具有较高写入命令吞吐率的较新SSD系统中,对备用电源进行定大小以处置较高吞吐率的写入命令具挑战性;增加备用电源的量会占用SSD上的更大比例的电路板空间,且增加备用电源的量会提高制造SSD的成本。需要系统及方法,所述系统及方法用于针对具有高写入命令吞吐率及经定大小以用于较小高速缓冲存储器的经减小备用电源的系统而管理固态驱动器上的降低电力故障能量需求,使得高速缓冲存储器中的数据不会丢失。
发明内容
在一方面中,一种用于响应于固态驱动器(SSD)的主电力供应器的电力故障事件而控制所述SSD的方法包含:在所述SSD的主机接口处接收用于在所述SSD上执行的多个写入命令及相关联数据有效负载。所述方法还包含:将所述多个写入命令及相关联数据有效负载存储于所述SSD上的易失性存储器中;检测所述SSD上的所述电力故障事件;在所述电力故障事件期间从所述SSD上的备用电源向所述SSD供应电力;及在所述电力故障事件期间通过使用所述备用电源将存储于所述易失性存储器中的一或多个写入命令的相关联数据有效负载存储于所述SSD上的非易失性存储器中而执行所述一或多个写入命令。而且响应于所述执行,从高速缓冲存储器移除所述一或多个写入命令,使得一或多个未经执行写入命令及所述相关联数据有效负载保留在所述高速缓冲存储器中,且在所述电力故障事件期间使用所述备用电源将所述一或多个未经执行写入命令的列表但不将所述相关联数据有效负载存储于所述SSD上的所述非易失性存储器中。
在另一方面中,一种用于响应于SSD的主电力供应器的电力故障事件而控制所述SSD的系统包含:控制器;备用电源,其经配置以在所述电力故障事件期间向所述SSD供应电力;非易失性存储器;易失性存储器及主机接口。所述控制器经配置以:在所述主机接口处接收用于执行的多个写入命令及相关联数据有效负载;将所述多个写入命令及相关联数据有效负载存储于易失性存储器中;及检测所述电力故障事件。在检测到所述电力故障事件之后,所述控制器经配置以通过将存储于所述易失性存储器中的一或多个写入命令的所述相关联数据有效负载存储于所述非易失性存储器中而执行所述一或多个命令。而且响应于所述执行,所述控制器经配置以从所述易失性存储器移除所述一或多个写入命令,使得一或多个未经执行写入命令及相关联数据有效负载保留在所述易失性存储器中,且将所述未经执行一或多个写入命令的列表但不将所述相关联数据有效负载存储于所述非易失性存储器中。
附图说明
图1A是在电力故障事件之前的固态驱动器的框图;
图1B是在电力故障事件期间的固态驱动器的框图;
图1C是在电力故障事件之后的固态驱动器的框图;且
图2是用于管理固态驱动器中的降低电力故障能量需求的方法的流程图。
具体实施方式
图1A是根据本发明的实施例的在电力故障事件之前的固态驱动器100的图式。固态驱动器100包含但不限于总线接口120(还称作主机接口120),所述总线接口通信地耦合到主机110、存储器控制器130、控制器固件140、易失性存储器150(其包括高速缓冲存储器132)、非易失性存储器装置160a到h、DC电力调节与分配180及备用电源182。
主机接口120使得固态驱动器100能够与主机110进行通信。在一个实施例中,主机接口120是可使用(举例来说)NVMe协议来耦合到PCIe总线(未展示)或企业服务器或者其它计算系统主机的PCIe连接器。其它硬件连接类型(举例来说,SATA及SCSI)在本发明的范围内。
固态驱动器100从主电源170(连续电源)接收电力。举例来说,主电源170可为由电力网、电力发电机或向固态驱动器100提供连续电力流的任何其它构件供应的连续电源。
图1A展示在固态驱动器100上的电力故障事件之前,主机110将多个写入命令112(例如,四个写入命令:Wc1到Wc4)写入到固态驱动器100。主机110经由主机接口120而将多个写入命令112发射到存储器控制器130。在接收到多个写入命令112之后,存储器控制器130经由主机接口120而以多个写入命令112的应答对主机110作出响应(例如,通过向主机110发射应答消息)。在将多个写入命令112存储于易失性存储器150中的高速缓冲存储器132中之后,存储器控制器130对多个写入命令112进行应答。一旦存储于高速缓冲存储器132中,多个写入命令112中的每一写入命令便被处理,且与每一写入命令对应的数据有效负载被存储于非易失性存储器装置160a到h中的一或多个位置中。在与每一写入命令对应的所有数据存储于非易失性存储器装置160a到h中之后,存储器控制器130从高速缓冲存储器132移除写入命令,从而表示写入命令已被执行。
举例来说,主机110可将四个写入命令(例如,Wc1到Wc4)写入到固态驱动器100。存储器控制器130可将所述四个写入命令存储于易失性存储器150中的高速缓冲存储器132中且以执行来自主机110的四个写入命令的应答作出响应(期望将完全地执行命令并在此后不久将数据写入到非易失性存储器装置160a到h)。在将四个写入命令存储于高速缓冲存储器132中之后,可处理第一写入命令Wc1。可将与Wc1对应的Wc1数据有效负载存储于非易失性存储器装置160a中。在将与Wc1写入命令对应的所有Wc1数据存储于非易失性存储器装置160a中之后,从高速缓冲存储器132移除Wc1写入命令,从而留下三个写入命令(例如,Wc2到Wc4)存储于高速缓冲存储器132中。
在固态驱动器100经历电力故障事件且由此主电源170被中断后,存储于高速缓冲存储器132中的剩余三个写入命令(例如,Wc2到Wc4)即刻有由于电力故障而丢失的风险。一旦固态驱动器100经历电力损失,DC电力调节与分配180便在从主电源170供应的电压/电流的损失之后检测到电力故障,且从备用电源182向固态驱动器100提供备用电源。
在一些实施例中,备用电源182可由多个电容器、超级电容器、电池或以上各项的任何组合组成。常规地,备用电力供应器将具有足以执行存储于高速缓冲存储器132中的所有命令或至少所有写入命令的大小。然而,在一些实施例中,备用电源182可为减小的且可不具有用以将与存储于高速缓冲存储器132中的多个写入命令对应的所有数据有效负载写入到非易失性存储器装置160a到h中的电力容量。举例来说,由于固态驱动器100板大小限制、成本或任何其它限制因素,因此可将备用电源182定大小成比存储于高速缓冲存储器132中的写入命令的写入容量小。
图1B图解说明在从主电源170的电力损失及与主机110的通信中断之后的图1A的固态驱动器100的状态。在一些实施例中,在电力损失之后,在多个写入命令112中存在等待将在高速缓冲存储器132中被处理的多个未经执行写入命令。在具有带有经减小电力容量的备用电源182的情况下,可仅存在足以处理(举例来说)与存储于高速缓冲存储器132中的少于所有写入命令对应的数据的备用电源。举例来说,高速缓冲存储器132可经定大小以处置较高最大写入命令吞吐率,但可具有经减小备用电源182,所述经减小备用电源经定大小以处置较小高速缓冲存储器(例如,较小写入命令吞吐率)以减少固态驱动器100的印刷电路板(PCB)上的电力组件(例如,电力电容器)的数目。
就此来说,存储器控制器130可确定不存在足够的经减小备用电源182来将与来自高速缓冲存储器132的剩余一或多个未经执行写入命令对应的数据有效负载写入到非易失性存储器装置160a到h中。如此,存储器控制器130可编译高速缓冲存储器132中的一或多个未经执行写入命令的列表,所述列表包含关于每一未经执行写入命令的参数,但不包含与每一未经执行写入命令对应的数据有效负载。举例来说,参数可包含但不限于目的地逻辑块地址、待写入的数据逻辑块的数目、目的地逻辑块地址及待写入的数据逻辑块的数目的列表,以及在高速缓冲存储器中的提交队列中的位置。举例来说,与每一未经执行写入命令相关联的参数数据可少于一百字节的数据,而与每一写入命令对应的数据有效负载可为十到几百MB的数据。因此,可存在来自经减小备用电源182的足以将存储于高速缓冲存储器132中的一或多个未经执行写入命令的列表写入到非易失性存储器装置160a到h中的电力,但不存在足以写入数据有效负载本身的电力。
在一些实施例中,一旦写入命令已被完全执行(例如,与所述写入命令对应的所有数据已被写入到非易失性存储器160a到h),存储器控制器130便可从未经执行写入命令的列表中移除所述命令。举例来说,如果在高速缓冲存储器132中存在六个未经执行写入命令,且经减小备用电源182可处理所述未经执行写入命令中的三个未经执行写入命令,那么控制器130将最初在电力故障事件后编译六个未经执行写入命令的列表,且将在从高速缓冲存储器132移除经成功执行写入命令时,从未经执行写入命令的列表中移除所述经成功执行写入命令的参数信息(即,将写入命令的参数的列表保持更新以与高速缓冲存储器132中的当前未经执行写入命令对应)。
控制器130可监视高速缓冲存储器132中的剩余写入命令以确定何时缩减对高速缓冲存储器132中的未经执行写入命令的全处理,且将未经执行写入命令的列表(例如,与未经执行写入命令相关联的参数)保存于非易失性存储器装置160a到h中。在一些实施例中,控制器130可在未经执行写入命令的列表已被编译之后将所述列表写入到非易失性存储器装置160a到h,接着当所述控制器成功地执行未经执行写入命令列表中的每一命令时,将经执行写入命令的单独列表直接写入到非易失性存储器装置160a到h。通过将未经执行列表与经执行列表进行比较,控制器130可确定哪些命令实际上仍未执行。
使用备用电源182将未经执行写入命令的列表写入到非易失性存储器装置160a到h允许将SSD设计为具有减少的电力损失保护量,同时仍确保尽管与高速缓冲存储器中的未经执行命令相关联的数据永久地丢失,但控制器130保持知晓哪些命令仍未执行。此优点允许将SSD设计为具有较小PCB占用面积。当前备用电源系统(例如,电力损失保护系统)占用板面积的大约30%;当使用所描述系统时,此面积可显著减小。此外,当前所描述系统及方法减少与实施备用电源系统相关联的成本,这是因为需要较少电力组件。所述当前所描述系统及方法还增加不具有充足量的备用电源(例如,用以在耗尽电力之前将与高速缓冲存储器中的未经执行写入命令相关联的数据有效负载完全写入到非易失性存储器中的足够备用电源)的SSD的安全性及可靠性。另外,使用当前系统及方法可使去往高速缓冲存储器的写入命令吞吐率最大化,这是因为所述写入命令吞吐率不再受备用电源的量限制,从而使SSD更高效。
在一些实施例中,控制器130可动态地监视经减小备用电源182。举例来说,控制器130可经由传感器或其它相当测量构件而检索经减小备用电源182上可用的备用电源的量。一旦备用电源达到特定阈值(例如,剩余10%备用电源),控制器130便可确定停止处理与高速缓冲存储器132上的一或多个未经执行写入命令112对应的数据有效负载且将一或多个未经执行写入命令的列表写入到非易失性存储器装置160a到h。作为另一实例,控制器130可确定将写入命令参数的列表写入到非易失性存储器所需的电力量(例如,基于列表的大小),且将此电力量作为阈值电力量。
在一些实施例中,经减小备用电源182的量是基于与备用电源电路系统相关联的电力方程式而计算的预设值。举例来说,如果备用电源182由电容器(例如,或超级电容器)组成,那么可基于电容器的电荷的所计算降级、基于电容器的使用年限、使用度、组成及其它相关参数而确定电力。
控制器130可使用剩余经减小备用电源182的部分来进一步将重要数据(例如任何未保存逻辑到物理映射更新)保存于非易失性存储器装置160a到h中的列表中。仅在经减小备用电源182耗尽其有限电力供应之前,可由存储器控制器130在存储于非易失性存储器装置160a到h中的逻辑到物理表中将与高速缓冲存储器132中的一或多个未经执行写入命令的逻辑地址相关联的物理地址标记为无效,或在一些实施例中,控制器130在从非易失性存储器装置160a到h读取未经执行命令的列表并将与这些命令相关联的物理地址标记为无效之前等待直到恢复电力。因此,在主机110于恢复固态驱动器100的电力后即刻尝试从与未经执行写入命令相关联的地址进行读取的事件中,无效地址(例如,错误消息)可被传回到主机110。
图1C展示在恢复电力并重新建立与主机接口120的通信后的固态驱动器100的状态。举例来说,在将固态驱动器100通电后,主机110可即刻经由主机接口120而发布对于任何未经执行(还称作“未提交”)写入命令的列表的请求。存储器控制器130可检索存储于非易失性存储器装置160a到h中的未经执行写入命令的列表,且经由主机接口120而将所检索列表传回到主机110。
在一些实施例中,在于电力故障事件之后将固态驱动器100通电后,存储器控制器130可即刻经由主机接口120而将来自非易失性存储器装置160a到h的未经执行写入命令的列表自动传回到主机110而无需来自主机110的对于所述列表的请求。
响应于接收到一或多个未经执行写入命令的所检索列表,主机110可相应地行动。举例来说,在一些实施例中,主机110可从不同冗余存储源请求与未经执行写入命令对应的数据有效负载(例如,原本应被写入到非易失性存储器装置160a到h的数据有效负载)。在一些实施例中,不同冗余源可为本地冗余存储源(例如,本地SSD)、远程冗余存储源(例如,远程SSD),或此两者的组合。
在一些实施例中,主机110可使用独立磁盘冗余阵列(RAID)或擦除码来重构与未经执行写入命令对应的数据有效负载。主机110可接着将与一或多个未经执行写入命令对应的数据有效负载重新写入于非易失性存储器装置160a到h中。
在一些实施例中,主机110可响应于接收到一或多个未经执行写入命令的所检索列表而不做任何事情。在与一或多个未经执行写入命令相关联的数据随后尝试被读取的事件中,主机110可传回错误。在一些实施例中,响应于读取错误,主机110可从冗余存储装置请求与所请求未经执行写入命令对应的数据有效负载,或可在从RAID或擦除码或者任何其它适合数据检索/重构方法重构数据有效负载之后重新写入数据有效负载。
图2是根据本发明的一些实施方案的用于管理降低电力故障能量需求的方法的流程图。过程200在步骤202处开始,其中存储器控制器130在固态驱动器100的主机接口120处接收用于在固态驱动器100上执行的多个写入命令。在步骤204处,存储器控制器130将多个写入命令存储于固态驱动器100上的高速缓冲存储器中。举例来说,存储器控制器130可将多个写入命令存储于易失性存储器130中的高速缓冲存储器132中且可针对用于执行的多个写入命令中的每一写入命令发射应答。
在步骤206处,存储器控制器130检测固态驱动器100上的电力故障事件。举例来说,存储器控制器130可通过依据从主电源170提供到固态驱动器100的电压及/或电流的改变检测电力损失而检测固态驱动器100上的电力故障事件。在步骤208处,DC电力调节与分配180在电力故障事件期间从固态驱动器100上的备用电源(例如,备用电源182)向固态驱动器100供应电力。举例来说,DC电力调节与分配180在电力故障事件期间从备用电源182向固态驱动器100供应电力。
在步骤210处,响应于执行,存储器控制器130从高速缓冲存储器移除一或多个写入命令,使得一或多个未经执行写入命令保留在高速缓冲存储器中。举例来说,在对应数据有效负载已被写入到非易失性存储器装置160a到h中之后,存储器控制器130从高速缓冲存储器132移除一或多个经执行写入命令。未经执行写入命令保留在高速缓冲存储器132中,从而等待被处理。在步骤212处,存储器控制器130在电力故障事件期间使用备用电源将剩余一或多个未经执行写入命令但不将其数据有效负载存储到固态驱动器100上的非易失性存储器装置160a到h。举例来说,存储器控制器130在备用电源182完全耗尽之前将与未经执行写入命令相关联的参数存储到固态驱动器100上的非易失性存储器装置160a到h。因此,当备用电源182完全耗尽时,与保留在高速缓冲存储器132中的这些命令相关联的数据有效负载丢失,但可从冗余源重构或恢复,如先前所描述。
本发明的各种方面的其它目标、优点及实施例将为所属领域的技术人员所明了且在描述及附图的范围内。举例来说但不具限制地,可根据本发明重新布置结构或功能元件,或将方法步骤重新排序。类似地,机器可包括单个实例或多个机器,此多个可能囊括一起提供所指示功能的多种类型的机器。在各种实施例中所描述的机器类型并非打算限制可用于本发明的方面的实施例中的可能机器类型,且也可实施可实现类似任务的其它机器。类似地,根据本发明的原理以及体现所述原理的方法及系统可应用于其它实例,所述其它实例即使在此处未经详细地具体描述,但仍将在本发明的范围内。

Claims (19)

1.一种用于响应于固态驱动器(SSD)的主电力供应器的电力故障事件而控制所述SSD的方法,其包括:
在所述SSD的主机接口处接收用于在所述SSD上执行的多个写入命令及相关联数据有效负载;
将所述多个写入命令及相关联数据有效负载存储于所述SSD上的易失性存储器中的高速缓冲存储器中;
检测所述SSD上的所述电力故障事件;
在所述电力故障事件期间从所述SSD上的备用电源向所述SSD供应电力;
在所述电力故障事件期间通过使用所述备用电源将存储于所述高速缓冲存储器中的一或多个写入命令的相关联数据有效负载存储于所述SSD上的非易失性存储器中而执行所述一或多个写入命令;
响应于所述执行,从所述高速缓冲存储器移除所述一或多个写入命令,使得一或多个未经执行写入命令及所述相关联数据有效负载保留在所述高速缓冲存储器中;及
在所述电力故障事件期间使用所述备用电源将所述一或多个未经执行写入命令的列表但不将所述相关联数据有效负载存储于所述SSD上的所述非易失性存储器中。
2.根据权利要求1所述的方法,其进一步包括:
确定在所述电力故障事件期间能够使用冗余电源来执行的所述多个写入命令的第一数量,其中所执行的所述一或多个写入命令的第二数量不超过所述第一数量。
3.根据权利要求1所述的方法,其中所述一或多个未经执行写入命令中的每一者包括以下各项中的至少一者:目的地逻辑块地址及待写入的逻辑块的数目、目的地逻辑块地址的列表,以及在所述高速缓冲存储器中的提交高速缓冲存储器中的位置。
4.根据权利要求3所述的方法,其进一步包括:
响应于在所述电力故障事件之后从所述主电力供应器接收到电力,从所述非易失性存储器读取所述一或多个未经执行写入命令的所述列表且在逻辑到物理映射表中将所述一或多个未经执行写入命令的所述目的地逻辑块地址标记为无效。
5.根据权利要求1所述的方法,其进一步包括:
响应于在所述电力故障事件之后从所述主电力供应器接收到电力,将存储于所述SSD上的所述非易失性存储器中的所述一或多个未经执行写入命令的所述列表发射到所述主机接口。
6.根据权利要求5所述的方法,其进一步包括:
经由所述主机接口而接收读取命令;及
确定所述读取命令是否请求对应于与所述一或多个未经执行写入命令的所述列表中的未经执行写入命令相关联的数据有效负载的数据。
7.根据权利要求6所述的方法,其进一步包括:
响应于确定所述读取命令请求对应于与所述未经执行写入命令相关联的所述数据有效负载的所述数据,将错误消息发送到所述主机接口。
8.根据权利要求1所述的方法,其进一步包括:
在所述主机接口处接收对于存储于所述SSD上的所述非易失性存储器中的所述一或多个未经执行写入命令的所述列表的请求;及
将所述一或多个未经执行写入命令的所述列表发射到所述主机接口。
9.根据权利要求1所述的方法,其中存储于所述高速缓冲存储器中的所述多个写入命令的数量高于能够由所述SSD使用所述备用电源来执行的写入命令的数量。
10.根据权利要求1所述的方法,其中所述备用电源是有限电源。
11.一种用于响应于固态驱动器(SSD)的主电力供应器的电力故障事件而控制所述SSD的系统,所述SSD包括:
控制器;
备用电源,其经配置以在所述电力故障事件期间向所述SSD供应电力;
非易失性存储器;
易失性存储器;
主机接口;
所述控制器经配置以:
在所述主机接口处接收用于执行的多个写入命令及相关联数据有效负载;将所述多个写入命令及相关联数据有效负载存储于易失性存储器中的高速缓冲存储器中;
检测所述电力故障事件;
其中,在检测到所述电力故障事件之后,所述控制器经配置以:
通过将存储于所述高速缓冲存储器中的一或多个写入命令的所述相关联数据有效负载存储于所述非易失性存储器中而执行所述一或多个写入命令;响应于所述执行,从所述易失性存储器移除所述一或多个写入命令,使得一或多个未经执行写入命令及相关联数据有效负载保留在所述易失性存储器中;及
将所述一或多个未经执行写入命令的列表但不将所述相关联数据有效负载存储于所述非易失性存储器中。
12.根据权利要求11所述的系统,其中所述控制器进一步经配置以确定在所述电力故障事件期间能够使用冗余电源来执行的所述多个写入命令的第一数量,其中所执行的所述一或多个写入命令的第二数量不超过所述第一数量。
13.根据权利要求11所述的系统,其中所述未经执行写入命令包括以下各项中的至少一者:目的地逻辑块地址、待写入的逻辑块的数目、逻辑块地址及待写入的块的数目的列表,以及在提交高速缓冲存储器中的位置。
14.根据权利要求13所述的系统,其中所述控制器进一步经配置以:
响应于在所述电力故障事件之后从所述主电力供应器接收到电力,从所述非易失性存储器读取所述一或多个未经执行写入命令的所述列表;及
在逻辑到物理映射表中将所述一或多个未经执行写入命令的所述目的地逻辑块地址标记为无效。
15.根据权利要求14所述的系统,其中所述控制器进一步经配置以:
将所述一或多个未经执行写入命令的所述列表发射到所述主机接口。
16.根据权利要求15所述的系统,其中所述控制器进一步经配置以:
从所述主机接口接收读取命令请求;及
确定读取命令是否请求对应于与所述一或多个未经执行写入命令中的未经执行写入命令相关联的数据有效负载的数据。
17.根据权利要求16所述的系统,其中所述控制器进一步经配置以:响应于确定所述读取命令请求对应于与所述未经执行写入命令相关联的所述数据有效负载的所述数据,将错误消息发送到所述主机接口。
18.根据权利要求11所述的系统,其中存储于所述易失性存储器中的所述多个写入命令的数量高于能够由所述SSD使用所述备用电源来执行的写入命令的数量。
19.根据权利要求11所述的系统,其中所述备用电源是有限电源。
CN202080026771.1A 2019-02-13 2020-02-05 用于管理固态驱动器上的降低电力故障能量需求的系统及方法 Active CN113711189B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311659061.4A CN117519450A (zh) 2019-02-13 2020-02-05 用于管理固态驱动器上的降低电力故障能量需求的系统及方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/274,755 US11048312B2 (en) 2019-02-13 2019-02-13 Systems and methods for managing reduced power failure energy requirements on a solid state drive
US16/274,755 2019-02-13
PCT/IB2020/000077 WO2020165645A1 (en) 2019-02-13 2020-02-05 Systems and methods for managing reduced power failure energy requirements on a solid state drive

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311659061.4A Division CN117519450A (zh) 2019-02-13 2020-02-05 用于管理固态驱动器上的降低电力故障能量需求的系统及方法

Publications (2)

Publication Number Publication Date
CN113711189A CN113711189A (zh) 2021-11-26
CN113711189B true CN113711189B (zh) 2023-12-26

Family

ID=70289821

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311659061.4A Pending CN117519450A (zh) 2019-02-13 2020-02-05 用于管理固态驱动器上的降低电力故障能量需求的系统及方法
CN202080026771.1A Active CN113711189B (zh) 2019-02-13 2020-02-05 用于管理固态驱动器上的降低电力故障能量需求的系统及方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311659061.4A Pending CN117519450A (zh) 2019-02-13 2020-02-05 用于管理固态驱动器上的降低电力故障能量需求的系统及方法

Country Status (3)

Country Link
US (2) US11048312B2 (zh)
CN (2) CN117519450A (zh)
WO (1) WO2020165645A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11281277B2 (en) * 2017-11-21 2022-03-22 Intel Corporation Power management for partial cache line information storage between memories
US11221928B2 (en) * 2019-04-18 2022-01-11 Netapp, Inc. Methods for cache rewarming in a failover domain and devices thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105103140A (zh) * 2013-04-05 2015-11-25 桑迪士克企业知识产权有限责任公司 存储系统中的数据硬化
CN105474192A (zh) * 2013-09-23 2016-04-06 英特尔公司 数据到非易失性存储器的事件触发的存储
CN106575271A (zh) * 2014-06-23 2017-04-19 谷歌公司 管理存储设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005076137A1 (en) * 2004-02-05 2005-08-18 Research In Motion Limited Memory controller interface
DE602004003583T2 (de) * 2004-10-04 2007-11-22 Research In Motion Ltd., Waterloo System und Verfahren zum Datensichern bei Stromausfall
JP2012063884A (ja) * 2010-09-14 2012-03-29 Toshiba Corp 記憶装置、電子機器、および記憶装置の制御方法
US9019067B2 (en) * 2010-12-30 2015-04-28 Sargent Manufacturing Company Electronic lock with power failure control circuit
US9304901B2 (en) * 2013-03-14 2016-04-05 Datadirect Networks Inc. System and method for handling I/O write requests
US9372759B2 (en) * 2014-06-16 2016-06-21 Samsung Electronics Co., Ltd. Computing system with adaptive back-up mechanism and method of operation thereof
US9639287B1 (en) * 2015-06-29 2017-05-02 Western Digital Technologies, Inc. Write command reporting
US10061655B2 (en) * 2016-05-11 2018-08-28 Seagate Technology Llc Volatile cache reconstruction after power failure
US10474532B1 (en) * 2017-07-28 2019-11-12 EMC IP Holding Company LLC Automatic fault tolerance in a computing system providing concurrent access to shared computing resource objects
US20190243578A1 (en) * 2018-02-08 2019-08-08 Toshiba Memory Corporation Memory buffer management for solid state drives

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105103140A (zh) * 2013-04-05 2015-11-25 桑迪士克企业知识产权有限责任公司 存储系统中的数据硬化
CN105474192A (zh) * 2013-09-23 2016-04-06 英特尔公司 数据到非易失性存储器的事件触发的存储
CN106575271A (zh) * 2014-06-23 2017-04-19 谷歌公司 管理存储设备

Also Published As

Publication number Publication date
CN113711189A (zh) 2021-11-26
WO2020165645A1 (en) 2020-08-20
CN117519450A (zh) 2024-02-06
US20200257346A1 (en) 2020-08-13
US11048312B2 (en) 2021-06-29
US11803222B2 (en) 2023-10-31
US20210318739A1 (en) 2021-10-14

Similar Documents

Publication Publication Date Title
US8862808B2 (en) Control apparatus and control method
US7441081B2 (en) Write-back caching for disk drives
US10289408B2 (en) Managing wear of system areas of storage devices
US10824344B2 (en) Solid-state drive with non-volatile random access memory
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
US9075733B1 (en) Selective storage of address mapping metadata in a system having multiple memories
US9529537B2 (en) Storage system and storage method
US20120246398A1 (en) Disk array device and its control method
US8411526B2 (en) Storage device, electronic device, and storage device control method
US20130205065A1 (en) Methods and structure for an improved solid-state drive for use in caching applications
US8103939B2 (en) Storage system and data storage method
US9251059B2 (en) Storage system employing MRAM and redundant array of solid state disk
US20100235568A1 (en) Storage device using non-volatile memory
US20170060436A1 (en) Technologies for managing a reserved high-performance memory region of a solid state drive
JP4930556B2 (ja) 退避処理装置、退避処理方法およびストレージシステム
US11803222B2 (en) Systems and methods for managing reduced power failure energy requirements on a solid state drive
US8291153B2 (en) Transportable cache module for a host-based raid controller
JP7318367B2 (ja) ストレージ制御装置及びストレージ制御プログラム
US20210349781A1 (en) Systems, methods, and devices for data recovery using parity space as recovery space
US20130179634A1 (en) Systems and methods for idle time backup of storage system volumes
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US20210349780A1 (en) Systems, methods, and devices for data recovery with spare storage device and fault resilient storage device
CN114741235A (zh) 存储器系统及其操作方法
WO2016006108A1 (ja) ストレージおよびその制御方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant