用于管理固态驱动器上的降低电力故障能量需求的系统及方法
文献发布时间:2024-04-18 20:01:23
分案申请信息
本申请是申请日为2020年2月5日、申请号为“202080026771.1”、发明名称为“用于管理固态驱动器上的降低电力故障能量需求的系统及方法”的发明专利申请的分案申请。
技术领域
本发明一般来说涉及固态存储器驱动器且更特定来说涉及用于管理固态驱动器上的降低电力故障能量需求的系统及方法。
背景技术
非易失性存储器(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中的这些命令相关联的数据有效负载丢失,但可从冗余源重构或恢复,如先前所描述。
本发明的各种方面的其它目标、优点及实施例将为所属领域的技术人员所明了且在描述及附图的范围内。举例来说但不具限制地,可根据本发明重新布置结构或功能元件,或将方法步骤重新排序。类似地,机器可包括单个实例或多个机器,此多个可能囊括一起提供所指示功能的多种类型的机器。在各种实施例中所描述的机器类型并非打算限制可用于本发明的方面的实施例中的可能机器类型,且也可实施可实现类似任务的其它机器。类似地,根据本发明的原理以及体现所述原理的方法及系统可应用于其它实例,所述其它实例即使在此处未经详细地具体描述,但仍将在本发明的范围内。
- 一种家具生产设备用可跟随收集压缩木屑的木屑收集装置
- 一种雨水收集装置及收集方法
- 一种样液收集装置、元素分析仪及收集方法
- 一种结核病房唾液收集隔离装置
- 一种结核病房唾液处理装置