CN102722339A - 供电安全的数据管理*** - Google Patents
供电安全的数据管理*** Download PDFInfo
- Publication number
- CN102722339A CN102722339A CN2012100865430A CN201210086543A CN102722339A CN 102722339 A CN102722339 A CN 102722339A CN 2012100865430 A CN2012100865430 A CN 2012100865430A CN 201210086543 A CN201210086543 A CN 201210086543A CN 102722339 A CN102722339 A CN 102722339A
- Authority
- CN
- China
- Prior art keywords
- write
- record
- address
- writes
- memory cell
- 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
Images
Classifications
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种供电安全的数据管理***,并具体涉及一种在意外失去供电后,恢复***状态和保持驱动器一致性的***和方法。尤其是,该***和方法通过预分配写入地址组和在非易失性存储器中记录预分配地址组,减少了用于保持驱动器一致性的开销。写入进程可写入预分配的地址组,而下一组的地址被预分配并记录到非易失性存储器中。
Description
技术领域
背景技术
固态存储介质允许非常快速的读写时间。因此固态存储驱动器控制器的处理速度对读写吞吐量的有显著的影响。固态存储驱动器还必须保持和固态存储***数据的一致性。如果固态存储***突然断电,它必须能够恢复到可用状态并能够保持,比如,写操作过程中正要写入到存储器的数据必须是安全的。
发明内容
附图说明
体现本发明不同特性的***和方法参照以下附图被描述。
图1示出一个非易失性存储设备的概况。
图2A,图3A和图3B示出根据实施例记录***状态的主记录内容。
图2B,图4A和图4B示出根据实施例管理主记录内容的流程图。
图5A和5B显示存储在非易失性存储介质的主记录恢复***状态的流程图。
具体实施方式
虽然本发明描述了某些实施例,但这些实施例只是作为例子而已,不是想要限制本发明的范围。事实上,这里描述的本发明***和方法的创新性可以实施为其他不同形式。此外,可以不偏离本发明的精神,对这里描述的***和方法形式做出各种省略、替换、变更。
***概述
本发明实施例的目的旨在为非易失性存储***控制器提供减少读写延迟的***和方法,同时保持非易失性存储***活动记录用于***恢复。在实施例中,***活动记录可以用来恢复***状态,并在断电的情况下保持一致性。
在本应用中,“非易失性存储器”通常是指如NAND的固态闪存存储器。然而,此本发明披露的***和方法也可用于传统的硬盘驱动器和混合驱动器,包括固态硬盘驱动器及其组件。正如,固态驱动器的某些内部典型操作,如“损耗调平”和“垃圾回收”等类似操作,硬盘驱动器也可以利用。在本发明中,术语“超级快”被定义为非易失性存储介质上的地址组。这个地址的分组可以泛指任何分组地址的方法(例如,页、块等)。在一些实施例中,这些分组可以包括非易失性存储介质多个模组的至少一个写入地址块。在一些实施例中,这些分组可以使用一个控制器,有效地组织数据存取操作和管理非易失性存储***。
参照图1,其示出了根据实施例中非易失性存储装置100和主机130通信的***图。正如实施例所描述的,非易失性存储装置100包括非易失性存储器阵列120和控制器110。控制器110与非易失性存储器阵列120和130主机通信。本实施例中控制器包括一个用户数据管理器111,一个主记录112,内部操作管理器113,以及介质存取请求执行器114。用户数据管理器111和主机130上的设备驱动器140通信,并可接收和处理来自主机驱动程序140存储请求。内部操作管理器113可包括***清理和维护任务,如垃圾收集和损耗调平来维护非易失性存储器阵列120。存储器阵列120可包括多个与控制器110联接的固态存储装置。阵列可包括,例如,闪存集成电路,硫属相变内存(C-RAM),相变存储器(PC-RAM或PRAM),可编程金属化单元RAM(PMC-RAM或PMCm),Ovonic统一存储器(OUM),电阻RAM(RRAM),NAND存储器,NOR存储器,EEPROM,铁电存储器(FeRAM),或其它分立的NVM(非易失性存储器)芯片。固态存储装置在现有技术中可物理分解为面、块、页和扇区。其他存储形式(例如,挥发性的电池备份DRAM或SRAM器件,磁盘驱动器等)可在另外或可选情况下使用。
介质存取请求可以从用户数据管理器111或内部操作管理器113发送介质存取请求给非易失性存储器阵列120上的介质存取请求执行器114。在一个实施例中,介质存取请求执行器114规划非易失性存储器阵列的命令执行,并对非易失性存储器阵列120的存储器块上任何执行剩下的转换任务负责。当用户数据管理器111或内部操作管理器113执行写命令,写命令可以在指定给写命令的下一个写入超级块上执行。每个超级块可从非易失性存储器阵列多个物理模块中为写命令指定一个选定的块。在控制器110的操作过程中,每个写操作,比如用户数据管理器111和内部操作管理器113,可对应于运行过程中指定的超级块。由于每道工序完成后写的地址分配给它的超级,它可以过渡到另一个超级继续写的非易失性存储器阵列120。当完成对每个指定的超级块地址写入操作时,他可迁移到非易失性存储器120的另一个超级块继续写入。
主记录112能保持控制器110内的操作状态。例如,主记录112可以保持指定给每个写入进程的超级块(S)。在一个实施例中,主记录112保留在非易失性存储器中。因此,在一个实施例中主记录112可定期刷新(例如,通过控制器或在控制器上执行写入进程即通过给介质存取请求执行器114的写命令),因此,它的信息保存到非易失性存储器阵列120。在一个实施例中,保存在主记录112中的信息应足以断电的情况下***能恢复运行状态,同时保持数据的一致性。
记录处理
图2A示出根据实施例描述的主记录200。主记录包括能记录设备运行状态的数据。图2A所描述的实施例,主记录200包括写入进程信息201。写入进程可以包括用户数据管理器,内部操作管理器或其他向非易失性存储阵列发出写命令的过程。正如这里使用的,“进程”是指在处理器控制器上执行的一个线程,多个线程可以在同一处理器上并行执行。虽然这里所描述的是针对单个写入进程的数据,但是主记录可以保持由控制器执行的所有写入进程数据。此写入进程201的数据包括指定给这个进程的超级块(S)。另外,主记录可以保持一个空闲池202以反映超级块可以被写入进程使用。当一个超级块被分配给一个写入进程,则它从空闲池删除以反映它不可用于其他进程。擦除队列203反映的数据可表明超级块正在非易失性存储阵列的即将擦除队列中。当非易失性存储阵列已成功擦除超级块,则超级块从擦除队列203中删除,放置在空闲池202中。这样擦除队列确保数据的完整性,因为如果电源中断而超级块正在擦除过程中,擦除将在恢复供电后被重新启动。主记录200还可包括关闭队列204,反映已完成写入的超级块,但在写过程完成对超级块的写入后仍然需要额外的检查或行动。主记录200还可包括***表205,其中包括***状态记录,如非易失性存储器阵列损坏的块,转换表,映射表和/或其他***表。在一个实施例中,每个超级块的长度也被保存在主记录中。在一个实施例中一个超级块可包括2,048页,尽管现有技术中有包括任何页数(或其他存储单元)的成熟技术。
图2B所示流程图是和图2A所示主记录关联的写入进程方法的实施例。在块210,写入进程到达为这个进程指定的超级块末端。在块220,进程从空闲池为随后的写入进程分配一个新的超级块。在块230,进程保留最新分配的超级块在主记录中。在块240,进程触发器刷新非易失性存储器的主记录(及最新分配的超级块信息)。在块250,进程等待主记录刷新完成。进程等待完成刷新优于随后的块写入进程是因为,如果写入进程优于刷新,***被迫在刷新前返回非易失性存储器主记录的一个副本,(例如,在断电后),非易失性存储器中的记录不会反映设置给写入进程对随后的块写入。之前保存的副本仍然会提示写入进程优于块210正在对超级块写入。等待主记录更新信息,直到最新分配的超级块已被刷新到非易失性存储器中,从而确保失去供电后的正确恢复。在非易失性存储器主记录刷新后,在块260,进程可以写入新的超级块中。在一个实施例中,由控制器110执行的写入进程如图1所示。
超级块预分配
虽然在块250中的等待确保数据的正确恢复,但产生等待时间且刷新增加***开销并降低性能。下面实施例的描述和参考图能消除或减少等待时间,且刷新主记录。通过主记录配置涉及预分配和跟踪写入地址组使消除等待在一个实施例中成为可能,如图3A和3B所示。实施例这里描述的所述性能增强,可以选择性地应用于对性能敏感/关键的进程。例如,这些实施例,控制器可配置为对仅用于用户数据管理器和/或垃圾收集的写入进程实施。对于不视为是性能敏感/关键的其他进程,可以使用如图2A和2B所示的实施例。在此实施例中,如在图3A所示,写入进程数据310包括与几个分配的超级块有关的数据。在此实施例中,写入进程数据310保持以前超级块311,当前超级块312,和下一个超级块313有关的数据。在这个图中,以前超级块311表示超级块“16”是上一个完成写入的超级块。当前超级块312表示超级块“25”是进程目前指定的待写入超级块。下一个超级313表示超级块“46”是当前超级块312完成写入后待写入的地址组。当进程完成写入指定给当前超级块312的超级块后,这个进程可以继续对指定给超级块313的下一个超级块写入,并在主记录300中旋转相应的超级块。其他组件320,330,340和350的操作和上面图2A(202,203,204和205)所述的相同。***表350还包括反映了***当前和未来操作的超级块数据,以及活动日志。
图3B反映在已旋转分配的超级块后主记录300的状态。旋转会发生在写入进程到达当前超级块末端并开始写下一个超级块地址时。所图所示,上一个超级块311现在持有的选择值“25”是在之前的当前超级块312。当前超级块312现在持有的值“46”是与之前的下一个超级块313关联的。下一个超级块313现在持有的是为超级块最新分配的值“67”。如上所述,超级块“67”可从空闲池320获得。
在本实施例中,超级块被预分配给写入进程优于写入进程完成对当前超级块的写入。这种方式,记录反映了被写入进程写入的未来选择。给主记录的写入进程预分配未来超级块有几个好处。写入进程到达当前超级块末端后,立即写入下一个超级块而不需要在继续写之前等待分配一个新的超级块。如果在写入进程已经开始写入下一个超级块后但在主记录对非易失性存储器更新和刷新之前失去供电,主记录可以恢复***状态,并通过参考当前和下一个超级块确定写入进程最后写入的位置。而且,在实施例中,控制器被配置为对非易失性存储器定期刷新而不管是否写入进程是否到达一个新的超级块。在实施例中,主记录以比进程完成对新超级块写入的几率较高的频率定期刷新。这样就能消除以上提及的等待时间,进一步说明如下面的图4A和4B进程描述。另外,允许保持以前的超级块用于针对日志活动的,但没有记录在失去供电前的日志活动的,由写入进程完成的日志进程,进一步解释如下图5A和5B所示。
图4A和4B示出用于写入进程方法并和图3A和3B所示主记录兼容的实施例。如图4A所示的块400中,写入进程到达当前超级块末端。写入进程在块410继续从空闲池分配下一个新的超级块。在某些实施例中可触发对空闲池的刷新。在块420中,写入进程在主记录中指定下一个超级块作为当前超级块,并分配一超级块作为下一个新的超级块(例如在图3A和3B所示旋转进程)。同样的,在块420中,写入进程在主记录中记录新的写入进程状态。在块430中,写入进程触发对非易失性存储***主记录的刷新。在块440中,写入进程可以不用等待刷新完成就在进程开始时对被分配为下一个超级块(刚刚被指定为当前超级块)写入。
如图4B所示,超级块分配进程并不需要由写入进程执行。在图4B所示的实施例中,一个独立的的主记录管理器管理超级块分配和管理保持在主记录中这些块相关的数据。图1中主记录管理器可以是控制器110内的组件,或控制器110执行的进程。在块450,写入进程到达当前超级块末端。写入进程可发送信号到主记录管理器表示它已经完成对当前超级块的写入。在块460写入进程可立即写入下一个超级块(因为下一个超级块在主记录已经分配好)。在块470主记录管理器收到从写入进程的信号并为写入进程分配一个新的超级块,然后将其指定为下一个超级块。在块480新的下一个超级块保存在主记录管理器中且在块490主记录管理器可以触发主纪录刷新。在实施例中,在超级块保存(如图所示)后可立即进行刷新,在N次写入后定期刷新,或设置一定数量的写入进程已保存了新的下一个超级块。写入进程可通过参考主记录或通过从主记录管理器中正通过的新超级块获得新的下一个超级块。在一个实施例中,图4A和4B描述的写入进程可由如图1所示的控制器110执行。
因此,通过上述预分配方案,本发明实施例消除了在电力安全得到保证时由于等待对非易失性存储器主记录刷新而造成的延时。如上述所讨论的,在实施例中,写准备就绪的超级块自动预分配给每个对性能关键的写入进程/线程(如来自用户数据管理器或用于垃圾回收)。在实施例中,在主记录任何给定的时间内的这些线程/进程,一个超级块被指定为“当前”超级块,而另外一个被超级块指定为“下一个”所以它会在“当前”超级块是满时被写入。在一个实施例中,这些对性能关键线程地址块的预分配是自动完成的,因此,从“当前”超级块溢出到“下一个”超级块,并分配一个一个新的“下一个”超级块链接在刚刚被指定的旧的“下一个”超级块被指定为“当前”超级块后面,这些写操作是很快的。
本发明各种实施例的优点在于对性能敏感的线程并不需要等待主记录的刷新,由于在“下一个”超级块信息被丢弃之前主记录保证被刷新,所以是绝对电力安全的。这是因为,在不同的实施例中,一旦几个或几十个操作完成,包括数千页和主记录的超级块被规划定期刷新。当主记录改动时通过设置一个标志来规划主记录刷新。在某些实施例中,将主记录放置在写执行队列中可立即安排刷新。在这些实施例中,队列中其他的写请求可对应于为“下一个”超级块指定的写入(“当前”在准备写的主记录中)。在一个实施例中,队列有一个队列深度为32的队列,因此在31个中的大多其他操作在现在的“当前”超级块被执行后,主记录将被刷新。在一个实施例中,由于每个超级块通常有数千页,主记录刷新将在现在的“当前”超级块填补剩余空间的操作前完成。在其他实施例中,队列深度可不同,但可保证主记录刷新完成在另一个超级块旋转之前,只要队列深度配置小于超级块容量。另一方面,对性能非关键数据,当满足一个或多个条件时,实施例配置为手动触发分配新的超级块。
本发明实施例能保证存储***是电力安全的和确保,任何永久的,不可逆转的介质活动时(像对非易失性存储器的写和擦除),恢复的关键数据将被保存在主记录里面,直到介质活动确认成功完成。该保证可适用于下列情况:
在实施例中,有擦除队列机制植入到主记录中详细描述什么超级块被删除。只有当擦除已成功完成才从队列中删除超级块。因此,如果擦除过程中发生失去供电,超级块将在重新上电后再次从队列删除直到删除成功完成。
在实施例中,主记录保持超级块是“开放”的记录,比如,超级块当前是运行的,即使之前他被用作如上解释的那样。这样,实施例中的控制器实质跟踪所有可能被写入任何固体组件(例如,用户数据管理器)的超级块。进一步说明如下图5A和5B所示,上电时,固体可扫描这些超级块来寻找上次写入的最后页面和正确更新表格(例如,映射表,页无效表,无效计数器表,超级块表等)。一个关键是对非易失性存储器(如NAND)写入有关的恢复数据不会被丢弃,直到非易失性存储器中的表被成功更新和刷新(以及更新)。
在实施例中,主记录还包括如与损耗调平和垃圾回收相关的内部操作的“检查点”。失去供电的情况下,实施例为恢复供电后重启提供内部操作有价值的信息,比如:(1)块或超级块正在工作的每个操作,(2)成功完成的“检查点”(3)是否从最后一个检查点继续或重新启动并像正常一样前行。在某些实施例中,检查点可用于活动日志显示哪些项是相关的,哪些是过时的。
在实施例中,植入到主记录的关闭队列机制列出正在等待被关闭的超级块。关闭队列确保超级块跟踪不结束只要他们都被填充着。跟踪不能结束是因为某些***表仅在易失性存储器内已更新以反映那些填充的超级块实施的最后操作,但这些表尚未刷新到非易失性存储器中。在一个实施例中,仅当必要的***表更新已被成功刷新到非易失性存储器中,该机制才删除关闭队列中的超级块。
***状态恢复
图5A和5B说明从主记录恢复***写状态的方法。虽然这里描述的是指***上电,这些技术可用于需要从非易失性存储器载入储存的***状态的任何时候。图5A显示了一个对应于图2A主记录恢复***写状态的方法。在块501,***上电。在块502,存储在非易失性存储器中主记录数据由控制器加载。在块503,控制器从主记录检查上次登录页(记录在非易失性存储器中与数据操作相关的最后一页)并从记录上次写入页的登录页扫描指定给每个写入进程的超级块。在某些实施例中,主记录没有保持最后登录页的记录,在块503的情形下从当前超级块开始扫描最后写入页。主记录可保持记录写活动的记录(例如,活动日志)用于内部维护目的。确定最后写入页能使控制器指定地址作为该进程下一个写入位置。通过这种方式,该***可以恢复进程到最后写入页,即使该位置没有储存在主记录中。在块504为进程设置下一个写位置。在一个实施例中,在块505,重建活动日志捕捉尚未被记录(从最后登录页到最后写入页)的操作。
图5B说明主记录指定以前,当前和下一个超级块(如图3A和3B的例子所示)的恢复***写状态的方法。如图5B,在块511***上电和在块512加载主记录数据。主记录数据可包括参考每个写入进程的最后登录页。最后登录页可在指定为“在先”或指定为“在先”的超级块内。最后记录页可能来自指定为“在先”的超级块内,例如,如果在登录进程对以前的超级块登录之前写入进程进入到新的超级块并刷新主记录。最后记录页可能来自指定为“下一个”的超级块内,例如,如果在对主记录成功刷新之前写入进程继续进入到下一个超级块并登录。在块513,对对应最后登录页的超级块扫描最后写入页。由于扫描了超级块,超级块驱动器的活动可以记录在活动日志中来重建日志,从而使得日志对以前未记录的数据操作更新。在块514,***检查被扫描超级块的最后写入页是否被检测。如果不是,那么在块515***扫描随后的超级块。例如,如果刚被扫描的超级块是被指定为“以前”的,随后的超级块就是“当前”超级块。同样,如果扫描的超级块是被指定为“当前”的,随后的超级块就是“下一个”超级块。最后写入页可在随后的超级块内,因为在写入进程开始写入随后的超级块但在旋转超级块的分配被刷新到非易失性介质之前,***中断是可能的。最后的写入位置可设置在块516的写入进程中。如上面所讨论的,通过这个进程,***可判断必须记录的页(在最后登录页和最后写入页之间的那些页)来重建活动日志且写入进程可从最后实际发生的写的位置继续,即使它不是“当前”超级块。
结论
虽然本发明描述了某些实施例,但这些实施例只是作为例子而已,不是想要限制本发明的范围。事实上,这里描述的本发明***和方法的创新性可以体现为其他不同形式。此外,这里描述的各种***和方法形式的省略、替换、变更,可以认为不偏离本发明的精神。附随的权利要求极其等价物用于覆盖这些形式或落入属于本发明范围和精神的改进。例如,本领域技术人员可能意识到如图2B,4A,4B,5A,5B所示不同实施例的进程步骤,实际步骤可能会和所述图有所不同。根据实施例,上面所述的例子中某些步骤可能被删除,有些会增加,且步骤的顺序被改变和/或并行执行一些步骤。虽然本发明例子中描述的数据储存在组块术语称为超级块内,本领域技术人员应认识到本发明的不同实施例也应用到存储器***其他的存储器计量单位,如面、块、页、扇区等。此外,具体实施例所披露的特点和属性,可以组合成不同的方式形成更多的实施例,而这些都落入本发明的范围内。虽然本发明披露提供了一些优选实施例和应用,其他对本领域技术人员来说是显而易见的实施例,包括没有提供所有特点和优点的实施例,也在本发明的范围内。据此,本发明范围界定仅参考附加的权利要求。
Claims (19)
1.一种由固态存储子***的控制器执行的用于免受失去供电的方法,其包括:
保持所述存储子***的易失性存储器内驱动器状态的记录,对于写入进程所述记录包括,与第一组写入地址和第二组写入地址相关的数据,所述第一组写入地址被指定为所述写入进程正在写入到的当前地址组,其中所述写入地址指定在非易失性固态存储阵列中的地址位置;
写入到所述第一组写入地址;
在写入到所述第一组写入地址的最后写入地址时,指定所述第二组写入地址为所述写入进程将写入的当前写入地址组,所述指定反映在到驱动器状态的记录中;
在指定后开始到所述固态存储子***的所述非易失性存储器的所述记录的刷新,所述刷新包括保存所述记录到所述非易失性存储阵列的一部分;
在所述记录的刷新完成前写入到所述第二组写入地址,从而所述写入进程不会因所述记录的刷新而延时,
上述方法由所述存储子***的控制器实施。
2.如权利要求1所述的方法,其中所述记录储存在所述易失性存储器的主记录内,且所述主记录定期被刷新至所述非易失性存储器。
3.如权利要求1所述的方法,其中所述写入地址组为超级块,其中每个超级块包括来自所述非易失性固态存储阵列中多个模组的至少一个写入块。
4.如权利要求1所述的方法,进一步包括在失去供电后,参考保存的记录重构***表和写状态的步骤。
5.如权利要求4所述的方法,其中所述记录还包括和第三组写入地址相关的数据,其中所述指定进一步包括:
指定所述第一组写入地址为在先写入的写入地址组;以及
在写入到所述第二组写入地址的最后一个地址时指定所述第三组写入地址为待写入的写入地址组。
6.如权利要求5所述的方法,其中在失去供电后,被指定为在先写入的写入地址组的所述第一组写入地址被用于恢复写入进程的日志。
7.如权利要求5所述的方法,其中所述重构包括参考与所述第一组写入地址相关的数据和与第二组写入地址相关的数据重构写日志。
8.如权利要求1所述的方法,其中所述记录包括擦除队列,关闭队列和写入地址组空闲池中的至少一个。
9.一种被配置为在预期失去供电时保存***状态信息的固态存储***,其包括:
固态存储器阵列,其包括多个存储器单元,每个存储器单元包括多个物理写入地址;
控制器,其被配置以控制对所述固态存储器阵列写入数据的多个写入进程,所述多个写入进程包括用户数据写入进程和内部***写入进程,根据分配给所述写入进程的存储器单元,每个所述写入进程写入所述固态存储器阵列的对应部分;
主机***接口,所述***通过所述主机***接口接收将由所述用户数据写入进程执行的存储器命令;
其中所述控制器被配置为:
保持一记录,所述记录包括指示驱动器活动状态的数据,以及对于所述多个写入进程中的每个进程,与分配的存储器单元和下一存储器单元相关的数据,所述下一存储器单元表示在被分配的存储器单元中的物理写入地址被用尽后所述写入进程将要写入的存储器单元;以及
刷新所述纪录到所述固态存储器阵列,所述刷新的执行独立于正在完成的对其被分配的存储器单元的写入并开始对下一存储器单元的写入的所述多个写入进程中的任何写入进程,从而多个写入进程中对下一个存储器单元写入的写入进程不取决于刷新所述记录到所述固态存储器阵列的完成。
10.如权利要求9所述的固态存储***,其中所述记录进一步包括,对于所述多个写入进程中的每个进程,与记录所述进程已经被写入的物理写入地址的关联在先存储器单元相关的数据。
11.如权利要求10所述的固态存储***,其中当所述写入进程完成对分配的存储器单元的写入并开始对所述下一存储器单元的写入时,所述控制器进一步被配置为重新分配所述记录内与所述分配的存储器相关的数据作为与所述在先存储器单元相关的数据,以及重新分配所述记录内与所述下一存储器单元相关的数据作为与所述分配的存储器单元相关的数据。
12.如权利要求9所述的固态存储***,其中当所述写入进程完成对所述分配的存储器单元的写入并开始对所述下一存储器单元的写入时,所述记录被更新以反映所述写入进程的当前写入状态,并从所述多个存储器单元中分配新的存储器单元作为所述写入进程的下一个存储器单元。
13.如权利要求12所述的固态存储***,其中所述记录进一步包括擦除队列和关闭队列,其每个包括所述多个存储器单元的一部分,并且当所述记录被更新以从所述多个存储器单元中分配新的存储器单元时,从所述多个存储器单元选择的被分配的存储器单元不是包括在所述擦除队列或关闭队列中的存储器单元。
14.如权利要求13所述的固态存储***,其中所述记录进一步包括存储器单元的空闲池,其中从所述多个存储器单元中选择的被分配的存储器单元是包括在所述存储器单元的空闲池中的存储器单元。
15.如权利要求9所述的固态存储***,其中每个所述存储器单元包括超级块。
16.如权利要求9所述的固态存储***,其中所述控制器被配置为在通电后通过所述记录重构所述固态存储***状态。
17.一种记录固态存储***的状态的方法,其包括:
通过所述固态存储***的控制器执行的进程修改在固态存储阵列中第一地址子集的数据;
为所述进程分配所述固态存储阵列中的第二地址子集,以便在所述进程完成对在所述第一地址子集的数据的修改之前,所述第二子集不会被所述进程修改;
在所述固态存储阵列中存储包括反映所述第二地址子集的数据的记录;
通过所述进程,修改在所述第二地址子集的数据,其中在完成储存步骤之前开始修改在所述第二地址子集的数据,以便对在所述第二地址子集的数据的修改不反映在所述固态介质存储阵列中储存的记录中;
检索储存在所述固态存储阵列中的所述记录;
扫描检索的记录中数据反映的所述第一地址子集和所述第二地址子集,从而确定在所述记录储存后由所述进程在所述第二地址子集执行的修改。
18.如权利要求17所述的方法,其中所述进程是用户数据管理器、损耗平衡进程或垃圾收集进程中的一个。
19.如权利要求17所述的方法,其中所述检索和扫描在失去供电事件后执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/073,588 | 2011-03-28 | ||
US13/073,588 US9361044B2 (en) | 2011-03-28 | 2011-03-28 | Power-safe data management system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102722339A true CN102722339A (zh) | 2012-10-10 |
CN102722339B CN102722339B (zh) | 2017-04-26 |
Family
ID=46928846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210086543.0A Active CN102722339B (zh) | 2011-03-28 | 2012-03-28 | 供电安全数据管理*** |
Country Status (2)
Country | Link |
---|---|
US (3) | US9361044B2 (zh) |
CN (1) | CN102722339B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049539A (zh) * | 2012-12-25 | 2013-04-17 | 华为技术有限公司 | 一种文件***中文件数据的存储方法及其装置 |
CN108874574A (zh) * | 2018-05-31 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种垃圾回收处理方法及相关装置 |
CN109992202A (zh) * | 2018-01-03 | 2019-07-09 | 爱思开海力士有限公司 | 数据存储设备、其操作方法以及包括其的数据处理*** |
CN110781023A (zh) * | 2018-07-25 | 2020-02-11 | 爱思开海力士有限公司 | 用于在存储器***中处理数据的设备和方法 |
CN114442936A (zh) * | 2021-12-29 | 2022-05-06 | 山东云海国创云计算装备产业创新中心有限公司 | 一种闪存转换层的块管理方法、装置、设备及存储介质 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361044B2 (en) * | 2011-03-28 | 2016-06-07 | Western Digital Technologies, Inc. | Power-safe data management system |
JP2013061799A (ja) | 2011-09-13 | 2013-04-04 | Toshiba Corp | 記憶装置、記憶装置の制御方法およびコントローラ |
US9478271B2 (en) * | 2013-03-14 | 2016-10-25 | Seagate Technology Llc | Nonvolatile memory data recovery after power failure |
US9830257B1 (en) | 2013-06-12 | 2017-11-28 | Western Digital Technologies, Inc. | Fast saving of data during power interruption in data storage systems |
US9558080B2 (en) * | 2013-10-31 | 2017-01-31 | Microsoft Technology Licensing, Llc | Crash recovery using non-volatile memory |
US9767015B1 (en) * | 2013-11-01 | 2017-09-19 | Amazon Technologies, Inc. | Enhanced operating system integrity using non-volatile system memory |
US10102146B2 (en) * | 2015-03-26 | 2018-10-16 | SK Hynix Inc. | Memory system and operating method for improving rebuild efficiency |
US20160378352A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Efficient solid state drive data compression scheme and layout |
US20170109101A1 (en) * | 2015-10-16 | 2017-04-20 | Samsung Electronics Co., Ltd. | System and method for initiating storage device tasks based upon information from the memory channel interconnect |
KR102593352B1 (ko) * | 2016-05-04 | 2023-10-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10334334B2 (en) * | 2016-07-22 | 2019-06-25 | Intel Corporation | Storage sled and techniques for a data center |
KR102468737B1 (ko) * | 2017-12-19 | 2022-11-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102080089B1 (ko) * | 2018-05-18 | 2020-02-21 | 최영준 | 정전시 전력 소모를 감소시키기 위한 데이터 저장 방법 및 데이터 저장 장치 |
KR20200045925A (ko) * | 2018-10-23 | 2020-05-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US10901850B2 (en) | 2019-01-22 | 2021-01-26 | International Business Machines Corporation | Thread checkpoint table for computer processor |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US10990526B1 (en) | 2020-04-30 | 2021-04-27 | Micron Technology, Inc. | Handling asynchronous power loss in a memory sub-system that programs sequentially |
CN114639417A (zh) * | 2020-12-16 | 2022-06-17 | 美光科技公司 | 存储器子***媒体管理群组 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070005928A1 (en) * | 2005-06-30 | 2007-01-04 | Trika Sanjeev N | Technique to write to a non-volatile memory |
CN101770809A (zh) * | 2008-12-31 | 2010-07-07 | J·埃金顿 | 非易失性存储器掉电后的恢复 |
CN101903866A (zh) * | 2007-11-21 | 2010-12-01 | 提琴存储器公司 | 非易失存储介质中的数据存储的方法和*** |
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
Family Cites Families (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170066B1 (en) | 1995-09-29 | 2001-01-02 | Intel Corporation | Power-off recovery management for sector based flash media managers |
US6311290B1 (en) | 1997-02-14 | 2001-10-30 | Intel Corporation | Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture |
JP3797649B2 (ja) | 1999-05-31 | 2006-07-19 | シャープ株式会社 | 不揮発性半導体記憶装置 |
US7660941B2 (en) | 2003-09-10 | 2010-02-09 | Super Talent Electronics, Inc. | Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories |
US6970890B1 (en) | 2000-12-20 | 2005-11-29 | Bitmicro Networks, Inc. | Method and apparatus for data recovery |
EP1331643B1 (en) | 2002-01-29 | 2009-12-16 | Agere Systems Inc. | Differential flash memory programming technique |
US7003620B2 (en) * | 2002-11-26 | 2006-02-21 | M-Systems Flash Disk Pioneers Ltd. | Appliance, including a flash memory, that is robust under power failure |
US6776124B1 (en) | 2003-02-06 | 2004-08-17 | Teo Albers, Jr. | Double-release bar for a cow stanchion apparatus |
US6856556B1 (en) | 2003-04-03 | 2005-02-15 | Siliconsystems, Inc. | Storage subsystem with embedded circuit for protecting against anomalies in power signal from host |
US7430570B1 (en) * | 2003-04-28 | 2008-09-30 | Ibrix, Inc. | Shadow directory structure in a distributed segmented file system |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
KR100704618B1 (ko) | 2004-01-19 | 2007-04-10 | 삼성전자주식회사 | 플래시 메모리의 데이터 복구 장치 및 방법 |
EP1792256B1 (en) * | 2004-09-03 | 2018-03-07 | Red Hat, Inc. | Methods, systems and computer program products for implementing single-node and cluster snapshots |
US7502256B2 (en) | 2004-11-30 | 2009-03-10 | Siliconsystems, Inc. | Systems and methods for reducing unauthorized data recovery from solid-state storage devices |
US7472309B2 (en) | 2004-12-22 | 2008-12-30 | Intel Corporation | Methods and apparatus to write a file to a nonvolatile memory |
US7457910B2 (en) | 2005-06-29 | 2008-11-25 | Sandisk Corproation | Method and system for managing partitions in a storage device |
US7594067B2 (en) | 2005-10-20 | 2009-09-22 | Stec, Inc. | Enhanced data access in a storage device |
US7783845B2 (en) * | 2005-11-14 | 2010-08-24 | Sandisk Corporation | Structures for the management of erase operations in non-volatile memories |
US20070156998A1 (en) | 2005-12-21 | 2007-07-05 | Gorobets Sergey A | Methods for memory allocation in non-volatile memories with a directly mapped file storage system |
US7653778B2 (en) | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US7692792B2 (en) | 2006-06-22 | 2010-04-06 | Asml Netherlands B.V. | Method and apparatus for angular-resolved spectroscopic lithography characterization |
US7765373B1 (en) | 2006-06-27 | 2010-07-27 | Siliconsystems, Inc. | System for controlling use of a solid-state storage subsystem |
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US7509441B1 (en) | 2006-06-30 | 2009-03-24 | Siliconsystems, Inc. | Systems and methods for segmenting and protecting a storage subsystem |
US7447807B1 (en) | 2006-06-30 | 2008-11-04 | Siliconsystems, Inc. | Systems and methods for storing data in segments of a storage subsystem |
KR100843543B1 (ko) | 2006-10-25 | 2008-07-04 | 삼성전자주식회사 | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 |
US8161227B1 (en) | 2006-10-30 | 2012-04-17 | Siliconsystems, Inc. | Storage subsystem capable of programming field-programmable devices of a target computer system |
US8549236B2 (en) | 2006-12-15 | 2013-10-01 | Siliconsystems, Inc. | Storage subsystem with multiple non-volatile memory arrays to protect against data losses |
US7657701B2 (en) | 2007-01-03 | 2010-02-02 | The General Electric Company | System and method of flash memory wear leveling using distributed write cycles |
US7596643B2 (en) | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
US7882301B2 (en) | 2007-05-09 | 2011-02-01 | Stmicroelectronics S.R.L. | Wear leveling in storage devices based on flash memories and related circuit, system, and method |
US7685338B2 (en) | 2007-05-24 | 2010-03-23 | Siliconsystems, Inc. | Solid state storage subsystem for embedded applications |
US7685337B2 (en) | 2007-05-24 | 2010-03-23 | Siliconsystems, Inc. | Solid state storage subsystem for embedded applications |
US7685374B2 (en) | 2007-07-26 | 2010-03-23 | Siliconsystems, Inc. | Multi-interface and multi-bus structured solid-state storage subsystem |
US8095851B2 (en) | 2007-09-06 | 2012-01-10 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ECC settings based on monitored conditions |
US8078918B2 (en) | 2008-02-07 | 2011-12-13 | Siliconsystems, Inc. | Solid state storage subsystem that maintains and provides access to data reflective of a failure risk |
US7962792B2 (en) | 2008-02-11 | 2011-06-14 | Siliconsystems, Inc. | Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US7733712B1 (en) | 2008-05-20 | 2010-06-08 | Siliconsystems, Inc. | Storage subsystem with embedded circuit for protecting against anomalies in power signal from host |
US8843691B2 (en) | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8375151B1 (en) | 2009-02-12 | 2013-02-12 | Siliconsystems, Inc. | Command portal for securely communicating and executing non-standard storage subsystem commands |
US8583835B1 (en) | 2008-08-06 | 2013-11-12 | Siliconsystems, Inc. | Command portal for executing non-standard storage subsystem commands |
US9176859B2 (en) | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
US8090899B1 (en) | 2009-03-04 | 2012-01-03 | Western Digital Technologies, Inc. | Solid state drive power safe wear-leveling |
US10079048B2 (en) | 2009-03-24 | 2018-09-18 | Western Digital Technologies, Inc. | Adjusting access of non-volatile semiconductor memory based on access time |
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8254172B1 (en) | 2009-09-30 | 2012-08-28 | Western Digital Technologies, Inc. | Wear leveling non-volatile semiconductor memory based on erase times and program times |
US8243525B1 (en) | 2009-09-30 | 2012-08-14 | Western Digital Technologies, Inc. | Refreshing non-volatile semiconductor memory by reading without rewriting |
US9753847B2 (en) | 2009-10-27 | 2017-09-05 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping |
US8261012B2 (en) | 2009-10-30 | 2012-09-04 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory comprising power fail circuitry for flushing write data in response to a power fail signal |
US8135903B1 (en) | 2009-10-30 | 2012-03-13 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory compressing data to improve performance |
US8397107B1 (en) | 2009-12-11 | 2013-03-12 | Western Digital Technologies, Inc. | Data storage device employing data path protection using both LBA and PBA |
US8443167B1 (en) | 2009-12-16 | 2013-05-14 | Western Digital Technologies, Inc. | Data storage device employing a run-length mapping table and a single address mapping table |
US8316176B1 (en) | 2010-02-17 | 2012-11-20 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification |
US8407449B1 (en) | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US8341339B1 (en) | 2010-06-14 | 2012-12-25 | Western Digital Technologies, Inc. | Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk |
US8612669B1 (en) | 2010-06-28 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for performing data retention in solid-state memory using copy commands and validity and usage data |
US8447920B1 (en) | 2010-06-29 | 2013-05-21 | Western Digital Technologies, Inc. | System and method for managing data access in non-volatile memory |
US8521972B1 (en) | 2010-06-30 | 2013-08-27 | Western Digital Technologies, Inc. | System and method for optimizing garbage collection in data storage |
US8639872B1 (en) | 2010-08-13 | 2014-01-28 | Western Digital Technologies, Inc. | Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk |
US8638602B1 (en) | 2010-09-10 | 2014-01-28 | Western Digital Technologies, Inc. | Background selection of voltage reference values for performing memory read operations |
US8612804B1 (en) | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US8601313B1 (en) | 2010-12-13 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for a data reliability scheme in a solid state memory |
US8601311B2 (en) | 2010-12-14 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory |
US8615681B2 (en) | 2010-12-14 | 2013-12-24 | Western Digital Technologies, Inc. | System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss |
US8458435B1 (en) | 2010-12-20 | 2013-06-04 | Western Digital Technologies, Inc. | Sequential write thread detection |
US9268646B1 (en) | 2010-12-21 | 2016-02-23 | Western Digital Technologies, Inc. | System and method for optimized management of operation data in a solid-state memory |
US8392635B2 (en) | 2010-12-22 | 2013-03-05 | Western Digital Technologies, Inc. | Selectively enabling a host transfer interrupt |
US8683113B2 (en) | 2011-02-04 | 2014-03-25 | Western Digital Technologies, Inc. | Concurrently searching multiple devices of a non-volatile semiconductor memory |
US8700950B1 (en) | 2011-02-11 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for data error recovery in a solid state subsystem |
US8700951B1 (en) | 2011-03-09 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata |
US9361044B2 (en) * | 2011-03-28 | 2016-06-07 | Western Digital Technologies, Inc. | Power-safe data management system |
US8769232B2 (en) | 2011-04-06 | 2014-07-01 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory module enabling out of order host command chunk media access |
US8862804B2 (en) | 2011-04-29 | 2014-10-14 | Western Digital Technologies, Inc. | System and method for improved parity determination within a data redundancy scheme in a solid state memory |
US9021178B2 (en) | 2011-05-02 | 2015-04-28 | Western Digital Technologies, Inc. | High performance path for command processing |
US8503237B1 (en) | 2011-05-18 | 2013-08-06 | Western Digital Technologies, Inc. | System and method for data recovery in a solid state storage device |
US8719531B2 (en) | 2011-06-14 | 2014-05-06 | Western Digital Technologies, Inc. | System and method for performing data retention that incorporates environmental conditions |
US8423722B1 (en) | 2011-08-26 | 2013-04-16 | Western Digital Technologies, Inc. | System and method for high performance command processing in solid state drives |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8707104B1 (en) | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
US8977803B2 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Disk drive data caching using a multi-tiered memory |
US9003224B2 (en) | 2012-04-25 | 2015-04-07 | Western Digital Technologies, Inc. | Managing unreliable memory in data storage systems |
US8966343B2 (en) | 2012-08-21 | 2015-02-24 | Western Digital Technologies, Inc. | Solid-state drive retention monitor using reference blocks |
US8972826B2 (en) | 2012-10-24 | 2015-03-03 | Western Digital Technologies, Inc. | Adaptive error correction codes for data storage systems |
US9177638B2 (en) | 2012-11-13 | 2015-11-03 | Western Digital Technologies, Inc. | Methods and devices for avoiding lower page corruption in data storage devices |
US8954694B2 (en) | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
-
2011
- 2011-03-28 US US13/073,588 patent/US9361044B2/en active Active
-
2012
- 2012-03-28 CN CN201210086543.0A patent/CN102722339B/zh active Active
-
2016
- 2016-06-06 US US15/174,955 patent/US10025712B2/en active Active
-
2018
- 2018-06-18 US US16/011,569 patent/US10496535B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070005928A1 (en) * | 2005-06-30 | 2007-01-04 | Trika Sanjeev N | Technique to write to a non-volatile memory |
CN101903866A (zh) * | 2007-11-21 | 2010-12-01 | 提琴存储器公司 | 非易失存储介质中的数据存储的方法和*** |
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
CN101770809A (zh) * | 2008-12-31 | 2010-07-07 | J·埃金顿 | 非易失性存储器掉电后的恢复 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049539A (zh) * | 2012-12-25 | 2013-04-17 | 华为技术有限公司 | 一种文件***中文件数据的存储方法及其装置 |
CN109992202A (zh) * | 2018-01-03 | 2019-07-09 | 爱思开海力士有限公司 | 数据存储设备、其操作方法以及包括其的数据处理*** |
CN109992202B (zh) * | 2018-01-03 | 2022-06-17 | 爱思开海力士有限公司 | 数据存储设备、其操作方法以及包括其的数据处理*** |
CN108874574A (zh) * | 2018-05-31 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种垃圾回收处理方法及相关装置 |
CN110781023A (zh) * | 2018-07-25 | 2020-02-11 | 爱思开海力士有限公司 | 用于在存储器***中处理数据的设备和方法 |
CN114442936A (zh) * | 2021-12-29 | 2022-05-06 | 山东云海国创云计算装备产业创新中心有限公司 | 一种闪存转换层的块管理方法、装置、设备及存储介质 |
CN114442936B (zh) * | 2021-12-29 | 2024-03-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种闪存转换层的块管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20120254503A1 (en) | 2012-10-04 |
US20160357670A1 (en) | 2016-12-08 |
US9361044B2 (en) | 2016-06-07 |
US10025712B2 (en) | 2018-07-17 |
US20180300241A1 (en) | 2018-10-18 |
CN102722339B (zh) | 2017-04-26 |
US10496535B2 (en) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102722339A (zh) | 供电安全的数据管理*** | |
CN113196226B (zh) | 固态驱动器中的分区命名空间 | |
CN101763224B (zh) | 储存虚拟化电脑***及储存***中管理资料快照影像方法 | |
US10037272B2 (en) | Storage system employing MRAM and array of solid state disks with integrated switch | |
US11543974B2 (en) | System data storage mechanism providing coherency and segmented data loading | |
CN105051703B (zh) | 用于避免数据存储设备中较低页讹误的方法和设备 | |
US8738846B2 (en) | File system-aware solid-state storage management system | |
US9665442B2 (en) | Smart flushing of data to backup storage | |
US8966205B1 (en) | System data management using garbage collection and hybrid self mapping | |
DE112020005060T5 (de) | Ratengrenze für den übergang von zonen zum öffnen | |
US20130191578A1 (en) | Storing cached data in over-provisioned memory in response to power loss | |
CN101681313A (zh) | 存储器*** | |
US8984247B1 (en) | Storing and reconstructing mapping table data in a data storage system | |
CN104350477A (zh) | 用于固态驱动装置(ssd)的优化的上下文移除 | |
US20140328127A1 (en) | Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same | |
US11875055B2 (en) | Storage device that receives inode address information to reduce external communication overhead | |
US20170010810A1 (en) | Method and Apparatus for Providing Wear Leveling to Non-Volatile Memory with Limited Program Cycles Using Flash Translation Layer | |
CN109144899A (zh) | 用于管理表恢复的方法 | |
DE102021115500A1 (de) | Hostverwaltete hardwarekomprimierung mit gezonten namensräumen | |
DE112020004963T5 (de) | Datenintegritätsschutz für zns-anforderungen | |
CN114730290A (zh) | 将变化日志表移动至与分区对准 | |
US10713163B2 (en) | Set aware system data and mapping tables | |
US11687263B2 (en) | Full die recovery in ZNS SSD | |
US11132140B1 (en) | Processing map metadata updates to reduce client I/O variability and device time to ready (TTR) | |
US9977612B1 (en) | System data management using garbage collection and logs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1172413 Country of ref document: HK |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1172413 Country of ref document: HK |