CN104205229A - 功率损耗恢复中的固态驱动器管理 - Google Patents
功率损耗恢复中的固态驱动器管理 Download PDFInfo
- Publication number
- CN104205229A CN104205229A CN201280072100.4A CN201280072100A CN104205229A CN 104205229 A CN104205229 A CN 104205229A CN 201280072100 A CN201280072100 A CN 201280072100A CN 104205229 A CN104205229 A CN 104205229A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- writing
- erase block
- write
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
- G11C16/225—Preventing erasure, programming or reading when power supply voltages are outside the required ranges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明的实施例描述用于功率损耗恢复中固态驱动器管理的设备、方法、计算机可读介质和系统配置。可以描述和/或要求保护其它实施例。
Description
技术领域
本发明的实施例一般涉及固态驱动器的领域,并且更具体地,涉及功率损耗(power loss)恢复中的固态驱动器管理。
背景技术
固态驱动器(SSD)可以显著地改善计算机系统的输入/输出性能。可以通过使用多级单元(MLC)NAND来构建SSD,在所述多级单元NAND中,阵列的每个存储器单元可以具有至少四个状态,能够存储至少两比特的数据。在MLC NAND中的写操作中,可以写对于较低页面(lower page)的数据,并且随后可以写对于较高页面(upper page)(其与较低页面相对应)的数据。当在来自对应的较高页面的数据正被写到单元中时发生电源故障时,较低页面恶化可能发生。
一些SSD包括附加的电源故障保护电路,其由功率控制逻辑以及电容器组成以存储功率。然而,这种解决方案可能与对于电源故障保护电路所需的成本和空间二者相关联。
附图说明
通过结合附图的以下详细描述,将容易地理解实施例。为了便于该描述,同样的参考标号标明同样的结构元件。在附图的图中,作为示例而不是作为限制地图示了实施例。
图1示意性地图示了根据各种实施例的计算设备。
图2示意性地图示了根据各种实施例的存储器空间。
图3是图示了根据各种实施例的功率损耗恢复操作的流程图。
图4是图示了根据各种实施例的碎片整理(defragmentation)操作的流程图。
图5示意性地描绘了根据各种实施例的示例系统。
具体实施方式
本公开的实施例描述了功率损耗恢复中的固态驱动器管理。所描述的实施例可以提供功率损耗恢复,其在不使用专用于防止较低页面恶化的电容器的情况下部分或完全地减少从较低页面恶化的数据丢失。
将通过使用通常由本领域技术人员采用来向本领域其他技术人员传达其工作的实质的术语来描述说明性实施例的各种方面。然而,对本领域技术人员将显而易见的是:可以在只有所描述方面中的一些的情况下实行可替换实施例。出于解释的目的,阐述了具体的数字、材料和配置,以便提供对说明性实施例的透彻理解。然而,对本领域技术人员将显而易见的是:可以在没有具体细节的情况下实行可替换实施例。在其它实例中,省略或简化已知特征,以便不使说明性实施例模糊难懂。
此外,将依次以对理解说明性实施例最有帮助的方式,将各种操作描述为多个分立的操作;然而,描述的顺序不应当被解释为意味着这些操作必定是依赖顺序的。特别地,这些操作不需要以呈现的顺序来执行。
短语“在一些实施例中”被反复使用。该短语一般不指代相同的实施例;然而,它可以。术语“包括”、“具有”和“包含”是同义的,除非上下文另有规定。短语“A和/或B”意指(A)、(B)或(A和B)。短语“A/B”意指(A)、(B)或(A和B),类似于短语“A和/或B”。短语“A、B和C中至少一个”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。短语“(A)B”意指(B)或(A和B),即A是可选的。
如本文所使用的,术语“模块”可以指代是以下各项的部分或包括以下各项:执行一个或多个软件或固件程序的专用集成电路(ASIC)、电子电路、处理器(共享、专用或群组)和/或存储器(共享、专用或群组),组合逻辑电路和/或提供所描述功能性的其它合适组件。
图1示意性地图示了根据一些实施例的计算设备100。设备100可以包括与固态驱动器(SSD)106耦合的主机104。SSD 106可以包括与非易失性存储器(NVM)112耦合的存储器控制器108。SSD 106可以是使用NVM 112来存储持久性数据的存储设备。NVM 112可以是固态存储器,诸如但不限于NAND闪速存储器、相变存储器(PCM)、相变存储器及开关(PCMS)等。在其它实施例中,NVM 112可以是其它类型的固态存储器。NVM 112可以是单级单元(SLC)或MLC存储器。
主机104可以是实体,例如应用、操作系统等,其生成存储器访问请求,并向SSD 106传输所述存储器访问请求。如本文所使用的,存储器访问请求可以是指向SSD 106的针对存储器访问的请求,例如读、写、擦除等。
存储器控制器108可以是基于存储器访问请求而访问NVM 112的模块。存储器控制器108可以附加地执行各种管理操作以确保被存储在NVM 112中的数据的完整性,如将要描述的那样。
设备100可以此外包括与存储器控制器108耦合的操作存储器116,如所示出的那样。操作存储器116可以按可访问的方式来存储数据和/或指令,以促进数据/指令的运行时访问。在一些实施例中,操作存储器116或其部分可以是NVM 112、易失性存储器(例如随机存取存储器(RAM))、高速缓冲存储器等等的部分。
操作存储器116尤其可以包括由存储器控制器108维护的逻辑到物理(L2P)间接表120(下文中“表120”)。表120可以将逻辑地址映射到NVM 112的物理地址。表120可以充当由来自主机104的存储器访问请求所引用的逻辑存储器。例如,存储器控制器108可以从主机104接收包括逻辑地址的存储器访问请求,并且然后基于表120来确定对应的物理地址。
操作存储器116还可以包括上下文信息124。上下文信息124可以包括例如上下文的状态信息,其已被保存以便允许操作状态在调度或非调度的中断之后被重新建立。上下文信息可以是表120和被周期性保存到NVM 112的其它状态信息的组合。上下文信息124的最新近拷贝可以在功率损耗恢复(PLR)操作开始时由存储器控制器108使用,以设置NVM 112在加电时的开始状态。在PLR操作期间,假定上下文信息124将只是更新(up-to-date)直至保存它的时间,存储器控制器108可以执行重放操作以通过扫描自最后保存上下文信息124以来所写的NVM 112而尝试更新上下文信息124。
表120和/或上下文信息124可以被存储在操作存储器116的非易失性部分中,例如,NVM 112的一部分。
图2示意性地图示了根据一些实施例的例如NVM 112的NAND设备的存储器空间200。特别地,存储器空间200包括许多管芯(die),例如管芯1 204、...管芯4 208。
每个管芯可以包括许多擦除块(EB),其中每个EB包括许多页面。例如,管芯1 204被示为具有EB1 212、...EB128 216,其中每个EB具有64个页面。管芯的页面中的每一个可以是较高或较低页面,并且可以对应于互补的较低或较高页面。对于本文所描述的实施例,P1将被认为是较低页面,并且P3将被认为是对应于P1的较高页面。
存储器空间200可以包括许多逻辑带,其中每个逻辑带包括来自管芯空间中每一个的对应EB。例如,带1 220可以包括来自每个管芯的EB1,并且带128 224可以包括来自每个管芯的EB128。
将理解的是,EB、页面、管芯和带的数量仅仅作为示例被示出。其它实施例可以包括除了具体示出的那些之外的数量。
根据一些实施例,读和写操作可以以页面粒度而发生,而擦除操作可以以EB粒度而发生。在重写之前,填充的页面必须作为EB的部分而被擦除。由于写至EB的数据将在被重写之前被擦除,所以碎片整理(defrag)操作可以在擦除发生之前将有效数据从一个EB移动到另一个EB。
在功率损耗之后,存储器控制器108可以执行PLR操作。在PLR操作中,存储器控制器108可以通过使用最近保存的上下文来重建表120,所述最近保存的上下文将包括表120的较早版本。存储器控制器108然后可以执行重放操作,通过扫描NVM 112以确定在最后保存上下文的时间之后发生的(例如对活动的(active)带的)写,以试图进一步更新表120。
在常规系统中,一旦例如通过在对NVM 112的写上检查纠错码(ECC)而检测到错误,重放操作就可以停止。假设EB1 212的P1由于较低页面恶化事件(例如当写至EB1 212的P3时发生的电源故障)而恶化。重放操作然后将会在P1处停止。在碎片整理操作期间,如果逻辑块地址(LBA)A被碎片整理到P2中的位置,并从经碎片整理的位置中删除,则LBA A的数据可能由于较低页面恶化而不可恢复地丢失。本公开的实施例提供可以在这些和其它情况下用于防止数据丢失的机制。
图3是图示了根据一些实施例的功率损耗恢复(PLR)操作300的流程图。在一些实施例中,PLR操作300可以由存储器控制器108执行。
PLR操作300可以包括在框304处检测功率损耗事件。
在框304之后,PLR操作300可以包括在框308处检索上下文信息124。上下文信息124可以从NVM 112中被检索并被移动到操作存储器116。这在一些实施例中可以将表120设置到一种状态,在该状态下,上下文信息124被最后保存。
在框308之后,PLR操作300可以在框312-336中继续进行以对在上下文信息124的最后保存之后发生的写进行重放。在写的重放中,自上下文信息124被最后保存的时间以来所写的带可以以它们被写的顺序而被扫描。这可以从写至每个带的序列号来确定。
PLR操作300可以包括在框312处初始化索引值。例如,i可以被设置为等于1。索引值i可以对应于页面。
在框312之后,PLR操作300可以包括在框316处确定错误是否与写i相关联。这可以通过检查与写i的数据相关联的ECC来完成。
在框316处确定了没有错误与写i相关联的情况下,于是PLR操作300可以前进以在框320处用写i来更新表120。
在框320之后,PLR操作300可以包括在框324处确定是否存在任何附加的写要考虑。
如果存在附加的写,则在框328处,索引值可以被递增,并且PLR操作300可以循环回到框316。
在框324处,如果确定了不存在附加的写,则PLR操作300可以在框332处结束。
在框316处确定了错误与写i相关联的情况下,于是PLR操作300可以前进到框336。
在框336处,PLR操作300可以包括确定错误的数量是否大于或等于错误的预定阈值数量。如果是这样,则PLR操作300可以在框332处结束。在各种实施例中,错误的预定阈值数量可以是相继的错误,在给定数量的例如页面的存储器位置之上的错误的数量,或者某个其它值。预定阈值数量可以是大于1的任何数。
如果在框336处确定了错误的数量小于错误的预定阈值数量,则PLR操作300可以前进到框324。
在各种实施例中,与错误相关联的写将被更新所在的表120的位置可以被更新以指示空数据或不良数据。然而,与常规PLR相反,PLR操作300可以不在第一检测到错误时停止。以这种方式,可以利用来自对随后的存储器位置(例如,随后的页面)的有效写的信息而更新表120。
考虑例如这样的实施例:其中功率损耗事件在EB1 212的P3的写期间发生。在此实施例中,在P1数据的写的情况下可能检测到错误。假设还未达到错误的阈值数量,PLR操作300可以不停止利用该写来更新表120。代替地,对P2的写也可以被扫描,并且写至P2的有效数据可以在表120中被成功地恢复和更新。
以所描述的方式,存储器控制器108可以利用在上下文信息124被最后保存的时间之后发生的多个写来顺序地更新表120,直至对NVM 112的所有写被重写,或者确定了与重放相关联的错误的数量大于或等于预定阈值为止。在将近确定了与重放相关联的错误的数量大于或等于预定阈值的时候,存储器控制器108可以停止PLR操作300。
虽然图3描述了可以促进恢复有效数据的PLR操作,但其它实施例描述了可以通过使用数据的安全化和非安全化的状态来防止有效数据的丢失或恶化的操作。
图4是根据本发明的实施例的碎片整理操作400的流程图。碎片整理操作400可以由存储器控制器108执行。
碎片整理操作400可以包括在框404处将经碎片整理的数据从源EB写至目标EB。经碎片整理的数据可以是在源或经碎片整理的擦除块中最后剩余的有效数据。
在框404之后,碎片整理操作400可以包括在框408处确定经碎片整理的数据是否被写至目标EB的较高页面。
如果在框408处确定了经碎片整理的数据被写至较高页面,则碎片整理操作400可以包括在框412处将经碎片整理的数据与安全化状态相关联。
如果在框408处确定了经碎片整理的数据未被写至较高页面,则碎片整理操作400可以包括在框420处将经碎片整理的数据与非安全化的状态相关联。在一些实施例中,通过存储器控制器108在数据被存储在源EB中时设置对应于数据的标记以便避免擦除源EB,数据可以与非安全化的状态相关联。存储器控制器108可以此外确定并为以后的引用而存储其中写了经碎片整理的数据的目标EB的位置的位置戳(location stamp)。
在框412之后,碎片整理操作404可以包括在框416处确定其它数据是否被成功地写至较高页面。较高页面可以是目标EB的对应于其中写了经碎片整理的数据的较低页面的较高页面。其它数据可以是其它主机写的。
如果在框416处确定了数据尚未被写至较高页面,则通过循环回到框416,碎片整理操作400可以继续监控对较高页面的写。在一些实施例中,存储器控制器108可以基于之前在框412中存储的位置戳而标识较高页面中的位置。在一些实施例中可以为了成功的写而监控较高页面中的该位置。
如果在框416处确定了数据被写至较高页面,则碎片整理操作400可以包括在框420处将经碎片整理的数据与安全化状态相关联。
在框420之后,碎片整理操作400可以包括在框424处擦除源EB中的经碎片整理的数据,这在它与目标EB中的安全化状态相关联之后。因而,经碎片整理的数据的擦除可以被推迟,直至经碎片整理的数据在其新位置中处于安全状态为止。
关于图2的碎片整理操作400的具体示例可以包括以下。在EB128 216的碎片整理中,来自逻辑块地址(LBA)7的数据可以被写至EB1 212的P1(框404)。这可以是EB128 216的最后的有效数据,从而满足用于擦除EB128 216的在先条件。
存储器控制器108可以确定EB1 212的P1是较低页面(框408),并且因此将EB128 216中的LBA 7与非安全化的状态相关联(框412)。这可以防止EB128 216的擦除。
在碎片整理操作400的上下文中,存储器控制器108可以监控对EB1 212的写。一旦数据被写至P3(其是对应于P1的较高页面),存储器控制器108就可以将EB128 216中的LBA 7与安全化状态相关联(框420)。这可以使能EB128 216的擦除,包括LBA 7。
在LBA 7在被设置成安全化状态之前从EB1 212丢失的情况下,例如在发生较低页面恶化的情况下,存储器控制器108可以能够访问来自EB128 216的LBA 7。以这种方式,NVM 112可以在重放结束时被留在一致的(写顺序的行为)状态中。也就是说,EB128 216的碎片整理可以被再次执行,其中LBA 7被重写至EB1 212。
在一些实施例中,可以通过存储器控制器108将源EB的擦除操作置于延迟的擦除队列中而实现碎片整理操作400的部分。擦除操作可以保持在延迟的擦除队列中,直至确定了来自源EB的所有有效数据已被写至目标EB并且与目标EB内的安全化状态相关联为止。
在一些实施例中,写至较低页面的数据可以与非安全化的状态相关联,直至主机将有效数据写至对应的较高页面为止。然而,在其它实施例中,填补(pad)或空数据可以被写至对应的较高页面。
考虑例如这样的实施例,其中存储器控制器108在向EB1 212的P1写了数据之后从主机104接收刷新命令。在此示例中,存储器控制器108可以将填补数据写至对应的较高页面3(除了在NAND设备的特定写序列中EB1 212的P1和P3之间的任何其它存储器位置之外),以确保在接收刷新命令之前所写的所有数据的有效性。存储器控制器108然后可以将P1中的数据设置到安全状态,并将刷新完成消息返回到主机104。填补数据可以被设计为以减少或消除NVM 112的写循环的方式而被写至页面。因而,可以减少或消除由于功率损耗而引起的数据恶化的机会。
本公开的实施例可以被实现到使用任何合适的硬件和/或软件以按需配置的系统中。对于一个实施例,图5图示了示例系统500,其包括:处理模块504、耦合到处理模块504的存储器508、耦合到处理模块504的(多个)网络接口512,以及耦合到处理模块504的(多个)输入/输出设备516。
处理模块504可以包括一个或多个单核或多核处理器。处理器可以包括通用处理器和专用处理器(例如图形处理器、应用处理器等)的任意组合。在处理模块504的一个或多个处理器上执行的应用、操作系统等可以包括主机104,其发布指向存储器控制器的存储器访问请求,类似于以上关于图1所描述的。
对于一个实施例的处理模块504可以包括任何合适的接口控制器,以向存储器508、(多个)网络接口512和/或(多个)I/O设备516提供任何合适的接口。
处理模块504可以包括与控制逻辑一起封装以形成系统级封装(SiP)或芯片上系统(SoC)封装的一个或多个处理器。例如,一个或多个处理器可以与控制逻辑集成以将存储器控制器520提供为SoC封装。
存储器508可以用于为系统500加载和存储数据和/或指令。例如,存储器可以包括用于存储数据和/或指令的一个或多个有形、非暂时性计算机可读介质。存储器/存储设备508可以包括任何合适的易失性存储器,诸如但不限于动态随机存取存储器(DRAM)。
(多个)网络接口512可以为系统500提供一个或多个接口,以通过一个或多个网络和/或与任何其它合适的设备进行通信。(多个)网络接口512可以包括任何合适的硬件和/或固件。对于一个实施例的(多个)网络接口512例如可以包括网络适配器、无线网络适配器、电话调制解调器和/或无线调制解调器。对于无线通信,(多个)网络接口512可以使用一个或多个天线以将系统500无线耦合到无线电接入网络。
术语“无线”及其派生词可以用于描述可以通过使用通过非固体介质的经调制的电磁辐射来传送数据的电路、设备、系统、方法、技术、通信信道等。该术语并不意味着相关联的设备不包含任何电线,虽然在一些实施例中它们可以没有。(多个)网络接口512可以实现许多无线标准或协议中的任一个,包括但不限于Wi-Fi(IEEE 802.11族)、WiMAX(IEEE 802.16族)、IEEE 802.20、长期演进(LTE)、Ev-DO、HSPA+、HSDPA+、HSUPA+、EDGE、GSM、GPRS、CDMA、TDMA、DECT、蓝牙、其衍生物以及被标明为2G、3G、4G、5G及之上的任何其它无线协议。在一些实施例中,(多个)网络接口512可以包括专用于诸如Wi-Fi和蓝牙之类的较短距离无线通信的第一通信模块,以及专用于诸如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO以及其它之类的较长距离无线通信的第二通信模块。
(多个)I/O设备516可以包括被设计成以非易失性方式存储数据和/或指令的存储设备520。存储设备520可以包括SSD 106。存储设备520可以另外包括其它类型的存储设备,包括但不限于硬盘驱动器(HDD)、光盘(CD)驱动器、数字通用盘(DVD)驱动器等。
存储设备520可以包括存储资源,物理上是其上安装了系统500的设备的部分,或者它通过该设备可以是可访问的,但不一定是该设备的一部分。例如可以经由(多个)网络接口??512、通过网络来访问存储设备520的一部分。
(多个)I/O设备516还可以包括被设计成使得能够与系统500进行用户交互的用户接口、被设计成使得能够与系统500进行外围组件交互的外围组件接口,和/或被设计成确定与系统500相关的环境条件和/或位置信息的传感器。在各种实施例中,用户接口可以包括但不限于例如液晶显示器、触摸屏显示器等的显示器、扬声器、麦克风、静物摄像机、视频摄像机、闪光灯(例如发光二极管闪光)和键盘。在各种实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插口以及电源接口。在各种实施例中,传感器可以包括但不限于陀螺仪传感器、加速计、邻近传感器、环境光传感器和定位单元。定位单元还可以是(多个)网络接口512的部分或与(多个)网络接口512交互以与定位网络(例如全球定位系统(GPS)卫星)的组件进行通信。
在各种实施例中,系统500可以是移动计算设备,诸如但不限于膝上型计算设备、平板计算设备、上网本、智能电话等。在各种实施例中,系统500可以具有较多或较少的组件和/或不同的架构。
本公开可以包括各种示例实施例,诸如以下所描述的那些。
Claims (24)
1.一种装置,包括:
非易失性存储器;以及
存储器控制器,其与非易失性存储器耦合并且被配置成为非易失性存储器进行碎片整理,这通过被配置成:
将有效数据从第一擦除块写到第二擦除块的页面中;
确定有效数据与所述页面中的安全化状态相关联;以及
基于确定了有效数据与安全化状态相关联而擦除第一擦除块。
2.根据权利要求1所述的装置,其中所述页面是较低页面,并且存储器控制器此外被配置成确定有效数据与安全化状态相关联,这通过被配置为:
确定数据被成功地写至对应于较低页面的较高页面。
3.根据权利要求2所述的装置,其中所述有效数据对应于逻辑块地址(LBA)。
4.根据权利要求2所述的装置,其中所述存储器控制器此外被配置为:
基于将有效数据写到较低页面中而存储与较低页面相关联的位置戳;以及
基于位置戳而标识较高页面。
5.根据权利要求2所述的装置,其中所述存储器控制器此外被配置成在延迟的擦除队列中调度擦除操作,直至确定了对较高页面成功进行了写为止。
6.根据权利要求2所述的装置,其中所述存储器控制器此外被配置为:
在将有效数据写到较低页面中之后,接收刷新命令;
将填补数据写至较高页面;以及
在将填补数据写至较高页面之后,返回刷新完成消息。
7.根据权利要求1所述的装置,其中所述存储器控制器此外被配置为:
确定第二擦除块的页面是较低页面;以及
基于该页面是较低页面的所述确定,而确定有效数据与非安全化状态相关联。
8.根据权利要求7所述的装置,其中所述存储器控制器此外被配置为:
监控对第二擦除块的较高页面的写;以及
基于所监控到的写而确定有效数据与安全化状态相关联。
9.根据权利要求1所述的装置,此外包括:
被配置为向存储器控制器发布多个存储器访问请求的主机。
10.根据权利要求1-9中任一项所述的装置,其中所述装置包括固态驱动器。
11.根据权利要求1-9中任一项所述的装置,此外包括:
被配置为将所述装置无线耦合到无线电接入网络的无线接口。
12.根据权利要求11所述的装置,包括:移动计算设备。
13.具有在其上存储的指令的一个或多个计算机可读介质,所述指令如果由一个或多个处理器执行,则使设备:
将数据从第一擦除块写到第二擦除块内的较低页面;
监控对第二擦除块内的较高页面的写;以及
基于所监控到的写而调度第一擦除块的擦除。
14.根据权利要求13所述的一个或多个计算机可读介质,其中所述指令如果被执行则此外使设备:
基于对较高页面的写的完成而调度第一擦除块的擦除。
15.根据权利要求14所述的一个或多个计算机可读介质,其中数据被写至较低页面中的第一位置,并且所述指令如果被执行则此外使设备:
在延迟的擦除队列中调度擦除操作,直至确定了对较高页面的写成功完成为止。
16.根据权利要求14所述的一个或多个计算机可读介质,其中所述指令如果被执行则此外使设备:
基于数据至较低页面的所述写而将数据与非安全化状态相关联;以及
在数据与非安全化状态的所述关联之后,基于所述监控到对较高页面的写而将数据与安全化状态相关联。
17.一种方法,包括:
将数据从存储器空间的第一擦除块写至存储器空间的第二擦除块内的较低页面;
监控对第二擦除块内的较高页面的写;以及
基于所监控到的写而调度第一擦除块的擦除。
18.根据权利要求17所述的方法,此外包括:
基于对较高页面的写的完成而调度第一擦除块的擦除。
19.一种方法,包括:
检测与固态驱动器(SSD)有关的功率损耗事件;
基于所检测到的功率损耗事件而访问所保存的上下文信息;
基于所保存的上下文信息来复原逻辑到物理(L2P)间接表;以及
基于在保存了上下文信息之后发生的对SSD的非易失性存储器(NVM)的多个写而更新L2P间接表;
确定与更新相关联的错误的数量大于预定阈值,所述预定阈值大于1;以及
基于所述确定而停止更新。
20.根据权利要求19所述的方法,此外包括:
检查与多个写中的各个写相关联的纠错码(ECC)以确定各个写是否与错误相关联。
21.根据权利要求19所述的方法,其中所述多个写包括多个页面写。
22.根据权利要求19所述的方法,其中所述预定阈值是相继错误的数量。
23.根据权利要求19所述的方法,其中所述预定阈值是页面错误的数量。
24.具有在其上存储的指令的一个或多个计算机可读介质,所述指令如果由一个或多个处理器执行则使设备执行根据权利要求20-23中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
USPCT/US2012/031709 | 2012-03-30 | ||
PCT/US2012/031709 WO2013147894A1 (en) | 2012-03-30 | 2012-03-30 | Solid state drive management in power loss recovery |
PCT/US2012/041413 WO2013147923A1 (en) | 2012-03-30 | 2012-06-07 | Solid state drive management in power loss recovery |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104205229A true CN104205229A (zh) | 2014-12-10 |
CN104205229B CN104205229B (zh) | 2019-04-05 |
Family
ID=49260948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280072100.4A Active CN104205229B (zh) | 2012-03-30 | 2012-06-07 | 功率损耗恢复中的固态驱动器管理 |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR101652936B1 (zh) |
CN (1) | CN104205229B (zh) |
WO (2) | WO2013147894A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI669610B (zh) * | 2018-06-13 | 2019-08-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9658966B2 (en) | 2014-11-24 | 2017-05-23 | Sandisk Technologies Llc | Systems and methods of write cache flushing |
EP3133604B1 (en) | 2015-08-17 | 2020-11-11 | Harman Becker Automotive Systems GmbH | Method and device for fail-safe erase of flash memory |
US10229000B2 (en) | 2016-08-09 | 2019-03-12 | Seagate Llc | Erasure codes to prevent lower page corruption in flash memory |
CN108874309B (zh) * | 2018-05-25 | 2021-07-23 | 新华三技术有限公司 | 一种管理固态硬盘中物理块的方法和装置 |
US11042323B2 (en) * | 2019-06-29 | 2021-06-22 | Intel Corporation | Offload defrag operation for host-managed storage |
KR20210103309A (ko) | 2020-02-13 | 2021-08-23 | 삼성전자주식회사 | 전원 공급 회로를 포함하는 스토리지 장치 및 이의 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1447243A (zh) * | 2002-03-25 | 2003-10-08 | 太和科技股份有限公司 | 快闪存储器中快速且能防止不正常断电的演算法及其控制系统 |
CN101566969A (zh) * | 2008-04-21 | 2009-10-28 | 群联电子股份有限公司 | 提升非易失性存储器存储装置的管理效能的方法及控制器 |
CN101681312A (zh) * | 2008-02-29 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
US20110082963A1 (en) * | 2009-10-01 | 2011-04-07 | Micron Technology, Inc. | Power interrupt management |
US20110258487A1 (en) * | 2007-12-31 | 2011-10-20 | Robert Royer | Nand power fail recovery |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1466760A (zh) * | 2000-09-28 | 2004-01-07 | �����ι�˾ | 磁盘驱动器的关键事件记录 |
US7412560B2 (en) * | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
EP2183749B1 (en) * | 2007-08-06 | 2013-05-29 | SanDisk Technologies Inc. | Enhanced write abort mechanism for non-volatile memory |
TWI372396B (en) * | 2007-09-28 | 2012-09-11 | Phison Electronics Corp | Method of protecting data for power failure and controller using the same |
US7934052B2 (en) * | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
US8239611B2 (en) * | 2007-12-28 | 2012-08-07 | Spansion Llc | Relocating data in a memory device |
US8321652B2 (en) * | 2008-08-01 | 2012-11-27 | Infineon Technologies Ag | Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks |
US7872903B2 (en) * | 2009-03-19 | 2011-01-18 | Altera Corporation | Volatile memory elements with soft error upset immunity |
CN102449610B (zh) * | 2009-03-27 | 2014-07-16 | Lsi公司 | 用于提供存储系统逻辑块地址的释放管理的方法及设备 |
US8775864B2 (en) * | 2009-04-21 | 2014-07-08 | International Business Machines Corporation | Controlling a solid state disk (SSD) device |
CN101872644A (zh) * | 2009-04-24 | 2010-10-27 | 威刚科技(苏州)有限公司 | 电子存储装置及其存储方法 |
US8065562B2 (en) * | 2009-06-26 | 2011-11-22 | Seagate Technology Llc | Systems, methods and devices for backup power control in data storage devices |
US8463826B2 (en) * | 2009-09-03 | 2013-06-11 | Apple Inc. | Incremental garbage collection for non-volatile memories |
KR101602939B1 (ko) * | 2009-10-16 | 2016-03-15 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 |
US8539311B2 (en) * | 2010-07-01 | 2013-09-17 | Densbits Technologies Ltd. | System and method for data recovery in multi-level cell memories |
CN102385902A (zh) * | 2010-09-01 | 2012-03-21 | 建兴电子科技股份有限公司 | 固态储存装置及其数据控制方法 |
-
2012
- 2012-03-30 WO PCT/US2012/031709 patent/WO2013147894A1/en active Application Filing
- 2012-06-07 KR KR1020147027025A patent/KR101652936B1/ko active IP Right Grant
- 2012-06-07 WO PCT/US2012/041413 patent/WO2013147923A1/en active Application Filing
- 2012-06-07 CN CN201280072100.4A patent/CN104205229B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1447243A (zh) * | 2002-03-25 | 2003-10-08 | 太和科技股份有限公司 | 快闪存储器中快速且能防止不正常断电的演算法及其控制系统 |
US20110258487A1 (en) * | 2007-12-31 | 2011-10-20 | Robert Royer | Nand power fail recovery |
CN101681312A (zh) * | 2008-02-29 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
CN101566969A (zh) * | 2008-04-21 | 2009-10-28 | 群联电子股份有限公司 | 提升非易失性存储器存储装置的管理效能的方法及控制器 |
US20110082963A1 (en) * | 2009-10-01 | 2011-04-07 | Micron Technology, Inc. | Power interrupt management |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI669610B (zh) * | 2018-06-13 | 2019-08-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
US10817215B2 (en) | 2018-06-13 | 2020-10-27 | Silicon Motion, Inc. | Data storage system and control method for non-volatile memory |
Also Published As
Publication number | Publication date |
---|---|
KR20140129305A (ko) | 2014-11-06 |
WO2013147894A1 (en) | 2013-10-03 |
CN104205229B (zh) | 2019-04-05 |
WO2013147923A1 (en) | 2013-10-03 |
KR101652936B1 (ko) | 2016-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9202577B2 (en) | Solid state drive management in power loss recovery | |
US9164833B2 (en) | Data storage device, operating method thereof and data processing system including the same | |
CN102855193B (zh) | 非易失性存储系统中未使用的逻辑地址的挂载时去映射 | |
CN104205229A (zh) | 功率损耗恢复中的固态驱动器管理 | |
US10599345B2 (en) | Memory device that writes data into a block based on time passage since erasure of data from the block | |
US10817418B2 (en) | Apparatus and method for checking valid data in memory system | |
US11036421B2 (en) | Apparatus and method for retaining firmware in memory system | |
KR101678911B1 (ko) | 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템 | |
EP2963554A1 (en) | Two-level system main memory | |
US8902671B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
US10642731B2 (en) | Memory management method and storage controller | |
US11126562B2 (en) | Method and apparatus for managing map data in a memory system | |
US20150113305A1 (en) | Data storage device | |
KR20200113992A (ko) | 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치 | |
US20140208046A1 (en) | Storage device out-of-space handling | |
US9372741B2 (en) | Data storage device and operating method thereof | |
CN104011689A (zh) | 非易失性存储器损耗管理 | |
US20160179596A1 (en) | Operating method of data storage device | |
US20150052397A1 (en) | Memory system and controlling method of memory system | |
CN114746834A (zh) | 基于分区状态的分区附加命令调度 | |
KR20210041158A (ko) | 기입 오류가 발생한 데이터를 복구하는 메모리 시스템 및 호스트의 동작 방법 | |
US20200250104A1 (en) | Apparatus and method for transmitting map information in a memory system | |
US10635583B2 (en) | Memory management method and storage controller | |
US20160291871A1 (en) | Data storage device and operating method thereof | |
CN111124035B (zh) | 基于实时时钟管理空闲页面的存储器系统及其操作方法 |
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 |