CN106255953B - 持久性数据存储体中的前向参考记录的方法和系统 - Google Patents

持久性数据存储体中的前向参考记录的方法和系统 Download PDF

Info

Publication number
CN106255953B
CN106255953B CN201480071421.1A CN201480071421A CN106255953B CN 106255953 B CN106255953 B CN 106255953B CN 201480071421 A CN201480071421 A CN 201480071421A CN 106255953 B CN106255953 B CN 106255953B
Authority
CN
China
Prior art keywords
record
journal entries
write
data
reference identifier
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
CN201480071421.1A
Other languages
English (en)
Other versions
CN106255953A (zh
Inventor
J.乔治
A.奥尔布里奇
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN106255953A publication Critical patent/CN106255953A/zh
Application granted granted Critical
Publication of CN106255953B publication Critical patent/CN106255953B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

本文描述的实施例为增强持久性数据存储体(例如,非易失性存储器,诸如闪速存储器)的可靠性和性能的方法和系统。该方法包括生成与第一写入数据相关联的日志条目。该方法还包括生成第一记录,该第一记录包含日志条目、第一写入数据和指向与第一记录不同的第二记录的指针。该方法还包括进行单个写入操作,该单个写入操作包括将第一记录写入到持久性数据存储体。

Description

持久性数据存储体中的前向参考记录的方法和系统
技术领域
所公开的实施例一般涉及存储器系统,特别涉及改进存储介质(例如,包含诸如闪速存储器的非易失性存储器的持久性数据存储体(datastore))的可靠性和性能。
背景技术
一般地,当数据被写入到数据库以持久存储时,启动两个写入到持久性存储,一个用于数据且另一个用于相应的日志条目。日志条目用于恢复数据,或用于再现相应的写入操作。进行两个单独的写入操作比单个写入操作引入更多等待时间,但是将日志条目写入到持久性存储提供了不可通过其他方式获得的恢复和数据库复制能力。然而,减少与写入日志条目相关联的附加等待时间是可取的。
发明内容
所公开的方法和系统改善了持久性数据存储体(例如,非易失性存储器,诸如闪速存储器)的可靠性和性能。利用单个写入操作将包括写入数据和日志条目的记录写入到持久性数据存储体。
附图说明
为了使得可以更详细地理解本公开,通过参考各种实施例的特征可以具有更具体的描述,其中一些实施例在附图中示出。然而,附图仅仅说明了本公开的更相关的特征,因此不应被认为是限制性的,因为该描述可以允许其它有效的特征。
图1是示出了根据一些实施例的数据存储系统的实现方式的框图。
图2A是示出了根据一些实施例的管理模块的实现方式的框图。
图2B是示出了根据一些实施例的计算机系统(例如主机)的实现方式的框图。
图3示出了根据一些实施例的多个相关数据结构的框图。
图4示出了根据一些实施例的生成图3中的数据结构的方法的流程图表示。
图5示出了根据一些实施例的日志流的框图。
图6示出了根据一些实施例的日志流的一部分的框图。
图7示出了根据一些实施例的相关数据结构的框图。
图8A-8C示出了根据一些实施例的持久存储(persist)数据的方法的流程图表示。
根据一般惯例,附图中说明的各种特征可能不按比例绘制。因此,为了清楚,各种特征的尺寸可能任意扩大或缩小。此外,附图的一些可能未描述给定的系统、方法或设备的所有组件。最后,相同的附图标记可以用于表示说明书和附图中的相同的特征。
具体实施方式
本文描述的各种实施例包括改善持久性数据存储体(例如,非易失性存储器(NVM),诸如闪速存储器)的可靠性和性能的方法和/或系统。一些实施例包括用于有效地并可靠地持久存储数据作为持久性数据存储体的部分的方法和/或系统(或设备)。
一些实施例包括持久存储数据的方法。在一些实施例中,通过具有一个或多个处理器和与持久性数据存储体操作地耦合的存储器的电子系统(例如,图1的计算机系统110,或图1的存储控制器120)来进行该方法。例如,持久性数据存储体包括非易失性存储器,诸如一个或多个磁盘存储器件、光盘存储器件、闪速存储器器件或其他非易失性固态存储器件。该方法包括生成与第一写入数据相关联的日志条目。该方法还包括生成包含该日志条目、第一写入数据以及指向与第一记录不同的第二记录的指针的第一记录。该方法还包括进行单个写入操作,该单个写入操作包括将第一记录写入到持久性数据存储体。
一些实施例包括电子系统(本文中有时称为电子设备),其包括:一个或多个处理器;以及存储器,存储要由该一个或多个处理器来执行的一个或多个程序,该一个或多个程序包括用于进行本文描述的任何方法或控制进行本文描述的任何方法的进行的指令。一些实施例包括非暂时性计算机可读存储介质,其存储用于由电子系统或设备的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于进行本文描述的任何方法的指令。一些实施例包括电子系统或设备,其包括:用于进行本文描述的任何方法的操作的装置。
本文描述许多细节以便提供对在附图中示出的示例的实施例的透彻理解。然而,一些实施例可以在没有很多具体细节的情况下实践,并且权利要求的范围仅由在权利要求中具体记载的那些特征和方面来限制。此外,没有描述公知的方法、组件和电路的详尽细节,以免不必要地模糊本文所描述的实施例的更相关的方面。
图1是根据一些实施例的数据存储系统100的实现方式的图。虽然一些示例的特征被示出,为了简洁的目的以及为了不模糊这里公开的示例的实施例的更相关的方面,没有示出各种其他特征。为此,作为非限制性示例,数据存储系统100包含存储控制器120以及存储介质130,并且数据存储系统100与计算机系统110结合使用。在一些实施例中,存储介质130包括单个存储器器件(例如,非易失性存储器(NVM)器件,诸如闪速存储器器件或磁盘驱动器,有时被称为硬盘驱动器),而在其他实现方式中,存储介质130包括多个存储器器件。在一些实施例中,存储介质130包括NAND类型闪速存储器或者NOR类型闪速存储器。此外,在一些实施例中,存储控制器120是固态驱动器(SSD)控制器。然而,根据各种实施例的方面,可以包含一个或多个其他类型的存储介质。
计算机系统110通过数据连接101耦合至存储控制器120。然而,在一些实施例中,计算机系统110包括作为组件和/或子系统的存储控制器120。计算机系统110可以是任何合适的计算机器件,比如计算机、膝上型计算机、平板设备、笔记本、因特网信息站(kiosk)、个人数字助理、移动电话、智能电话、游戏设备、计算机服务器、或任何其他计算设备。计算机系统110有时称为主机或主机系统。在一些实施例中,计算机系统110包含一个或多个处理器、一种或多种类型的存储器、显示器和/或其他用户界面组件,诸如键盘、触摸屏显示器、鼠标、跟踪板、数字相机和/或任何数量的辅助设备以添加功能。
存储介质130通过连接103耦合至存储控制器120。连接103有时称为数据连接,但是除了传达数据之外通常还传达命令,并且可选地除了传达要存储在存储介质130中的数据值和从存储介质130读取的数据值之外还传达元数据、错误校正信息和/或其他信息。然而,在一些实施例中,存储控制器120和存储介质130被包含在相同的设备中作为其组件。此外,在一些实现方式中,存储控制器120和存储介质130嵌入在主机设备中,诸如移动设备、平板机、其他计算机或计算机控制的设备,并且本文描述的方法由嵌入的存储控制器来进行。存储介质130可能包含任何数量(即,一个或多个)的存储器器件,存储器器件包含但不限于非易失性半导体存储器器件,诸如闪速存储器。例如,闪速存储器器件可以配置用于适于诸如云计算的应用的企业存储,或者用于缓存存储在(或要存储在)诸如硬盘驱动器的次级存储中的数据。此外和/或可替代地,闪速存储器也可以配置用于相对较小规模的应用,比如个人闪速驱动器或对于个人、膝上型和平板计算机的硬盘替代物。
在一些实施例中,存储介质130是持久性数据存储体(例如,包括诸如闪速存储器的非易失性存储器),并且存储介质130包括多个记录132,每个记录132包括写入数据和相应的日志条目。在一些实施例中,每个记录对应于针对持久性数据存储体的业务(transaction)(例如,写入操作)。在一些实施例中,存储介质130还包括日志流134,其包括多个日志流部分,其中每个日志流部分包括日志条目集合(例如,256个日志条目)。在一些实施例中,存储介质130还包括一个或多个数据存储快照136。在一些实施例中,一个或多个数据存储快照136的每个对应于在一个时间点的一个或多个数据存储表的状态,其中该一个或多个数据存储表使得主机能够访问存储在永久数据存储中的数据。例如,每N个业务(例如,N=1000、10000等)生成一个或多个数据存储表的快照。
在一些实施例中,存储介质130被分成若干可寻址且可单独选择的块。在一些实施例中,可单独选择的块是闪速存储器器件中最小尺寸可擦除单元。换句话说,每个块包含可被同时擦除的最小数量的存储器单元。每个块通常被进一步分成多个页和/或字线,其中每个页或字线通常是块中的最小单独可访问的(可读取的)的部分的实例。然而,在一些实施例中(例如,使用一些类型的闪速存储器),数据组的最小单独可访问的单元是扇区,扇区是一页的子单元。即,块包含多个页,每个页包含多个扇区,并且每个扇区是用于从闪速存储器器件读取数据的数据的最小单元。
例如,一个块包括任意数量的页,例如,64个页、128个页、256个页、或另一个合适的数量的页。块通常被分组为多个区域。每个块在一定程度上可以独立地管理,这增加了并行操作的并行化程度并且简化了存储介质130的管理。
在一些实施例中,存储控制器120包括管理模块121、输入缓冲器123、输出缓冲器124、错误控制模块125和存储介质接口(I/O)128。存储控制器120可以包含各种附加的特征,为了简洁的目的以及为了不模糊本文所公开的示例的实施例的更相关的特征,没有示出这些附加的特征,并且特征的不同排列可以是可能的。输入和输出缓冲器123、124通过数据连接101提供与计算机系统110的接口。类似地,存储介质I/O 128通过数据连接103提供与存储介质130的接口。在一些实施例中,存储介质的I/O 128包含读取和写入电路,其包含能够将读取信号提供给存储介质130(例如,用于NAND类型闪速存储器的读取阈值电压)的电路。
在一些实施例中,管理模块121包含一个或多个处理单元(CPU,有时也称为一个或多个处理器)122,处理单元122配置为执行一个或多个程序中(例如,管理模块121中)的指令。在一些实施例中,一个或多个CPU 122由存储控制器120内的一个或多个组件共享,并且在一些情况下超出存储控制器120的功能。管理模块121耦合至输入缓冲器123、输出缓冲器124(连接未示出)、错误控制模块125和存储介质I/O 128,以协调这些组件的操作。
错误控制模块125耦合至存储介质I/O 128、输入缓冲器123和输出缓冲器124。提供错误控制模块125以限制无意中引入到数据中的不可校正的错误的数量。在一些实施例中,错误控制模块125由管理模块121的一个或多个CPU 122在软件中执行,并且,在其它实施例中,错误控制模块125整体地或者部分地使用专用电路进行编码和解码功能来实现。为此,错误控制模块125包括编码器126和解码器127。编码器126通过应用错误控制码来编码数据以产生码字,该码字随后被存储在存储介质130中。
当从存储介质130读取所编码的数据(例如,一个或多个码字)时,解码器127对编码的数据应用解码处理以恢复数据,并且在错误控制码的错误校正能力之内校正恢复的数据中的错误。本领域的技术人员将了解,各种错误控制码具有不同的误差检测和校正能力,并且由于超出本公开的范围的理由,对各种应用选择具体的码。这样,在此不提供对各种类型的错误控制码的详尽回顾。此外,本领域的技术人员将理解,每种类型或系列的错误控制码可以具有对于该类型或系列的错误控制码特定的编码和解码算法。另一方面,在多个不同类型或系列的错误控制码的解码中可以至少在某种程度上利用一些算法。这样,为了简洁起见,在此不提供本领域的技术人员通常可得的和已知的各种类型的编码和解码算法的详尽描述。
在写入操作期间,输入缓冲器123从计算机系统110接收要存储在存储介质130中的数据(例如,写入数据)。使得在输入缓冲器123中保存的数据对编码器126可用,编码器126编码该数据以产生一个或多个码字。使得该一个或多个码字对存储介质I/O 128可用,存储介质I/O 128以依赖于所利用的存储介质的类型的方式将该一个或多个码字传输到存储介质130。
当计算机系统(主机)110将控制线111上的一个或多个主机读取命令发送到从存储介质130请求数据的存储控制器120时,启动读取操作。存储控制器120将一个或多个读取访问命令经由存储介质I/O 128发送到存储介质130,以根据由该一个或多个主机读取命令指定的存储器位置(地址)来获得原始读取数据。存储介质I/O 128将该原始读取数据(例如,包括一个或多个码字)提供给解码器127中。如果解码成功,则解码的数据被提供给输出缓冲器124,在那里使得解码的数据对计算机系统110可用。在一些实施例中,如果解码不成功,则存储控制器120可以借助于多个补救动作或提供不可解决的错误条件的指示。
图2A是示出根据一些实施例的示例性管理模块121的框图。管理模块121通常包括:一个或多个处理单元(CPU)122,用于执行存储在存储器202中的模块、程序和/或指令,并由此进行处理操作;存储器202;以及用于互连这些组件的一个或多个通信总线204。一个或多个通信总线204可选地包括互连系统组件和控制系统组件之间的通信的电路(有时称为芯片组)。管理模块121通过一个或多个通信总线204与缓冲器123、缓冲器124、错误控制模块125和存储介质130(例如,通过存储介质I/O 128)可操作地耦合。存储器202包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器器件,并且可以包括非易失性存储器,诸如一个或多个磁盘存储器件、光盘存储器件、闪速存储器器件或其它非易失性固态存储器件。存储器202可选地包括位于远离一个或多个CPU 122的一个或多个存储器件。存储器202或者可替代地存储器202内的非易失性存储器器件包括非暂时计算机可读存储介质。在一些实施例中,存储器202或者存储器202的非暂时计算机可读存储介质存储以下程序、模块和数据结构或其子集或超集:
·数据读取模块206,用于根据来自计算机系统110的读取命令来进行读取操作以从存储介质130(例如,包括诸如闪速存储器的非易失性存储器的持久性数据存储体)读取数据;
·数据写入模块208,用于根据来自计算机系统110的写入命令来进行写入操作以将数据(例如,包括写入数据和日志条目的记录)写入到存储介质130;
·数据擦除模块210,用于根据来自计算机系统110的擦除命令来进行擦除操作以从存储介质130擦除数据;
·日志条目模块212,用于生成与相应的写入数据相关联的日志条目;
·分配模块214,用于为记录分配存储介质130的一部分(例如,一组逻辑地址);
·参考生成模块216,用于为记录生成参考标识符;
·记录管理模块218,用于通过用先前生成的值和获得的数据填充(populate)记录的多个字段来生成记录;例如,记录可以包括以下字段(或这些字段的子集):元数据、日志条目、用于该记录的参考标识符、用于下一个记录的前向参考标识符、与为下一个记录分配的存储介质130的部分相关联的前向参考地址、以及写入数据;在一些实施例中,先前生成的值和获得的数据被临时存储在记录缓冲器220中;
·日志流管理模块222,用于将临时存储在日志流缓冲器224中的多个日志条目批处理(batch)为日志条目集合,并将日志流部分写入到存储介质130中的日志流134;日志流部分包括日志条目集合和参考对(例如,包括前向参考标识符和与下一个记录相关联的前向参考地址);在一些实施例中,日志流部分包括多于一个参考对,如下面更详细地说明的;
·恢复模块226,用于响应于检测到错误条件或同步命令,进行恢复处理,或致恢复处理被执行;
·删除模块228,用于从存储介质130删除记录;以及
·逻辑到物理映射230,其将逻辑地址映射到存储介质130的各自部分的物理地址,并且可选地还将存储介质130的各自部分的物理地址映射到逻辑地址。
上面标识出的要素的每个可以存储在先前提到的存储器器件的一个或多个中,并且对应于用于进行上述功能的指令集。上述标识出的模块或程序(即,指令集)不必被实现为单独的软件程序、过程或模块,因此这些模块的各种子集可以被组合或以其他方式重新布置在各种实施例中。在一些实施例中,存储器202存储上述标识出的模块和数据结构的子集。此外,存储器202可以存储上面没有描述的附加的模块和数据结构。在一些实施例中,存储在存储器202中或存储器202的非暂时计算机可读存储介质中的程序、模块和数据结构提供用于实现下面参照图8A-8C所述的任何方法的指令。
图2B是示出了根据一些实施例的计算机系统100(例如主机)的框图。计算机系统110通常包括:一个或多个处理单元(CPU)252,用于执行存储在存储器256中的模块、程序和/或指令,并由此进行处理操作;存储器256;一个或多个网络接口258;以及用于互连这些组件的一个或多个通信总线254。一个或多个通信总线254可选地包括互连系统组件并控制系统组件之间的通信的电路(有时称为芯片组)。计算机系统110通过一个或多个通信总线254与数据存储系统100可操作地耦合。在一些实施例中,计算机系统110还包括用户接口260。用户接口260包括一个或多个输出设备262,该一个或多个输出设备262使能呈现介质内容,其包括一个或多个扬声器和/或一个或多个视觉显示器。用户接口260还包括一个或多个输入设备264,这包括促进用户输入的用户接口组件,诸如键盘、鼠标、语音命令输入单元或麦克风、触摸屏显示器、触敏输入板、手势捕捉相机或其它输入按钮或控制。存储器256包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器器件,并且可以包括非易失性存储器,诸如一个或多个磁盘存储器件、光盘存储器件、闪速存储器器件或其它非易失性固态存储器件。存储器256可选地包括位于远离一个或多个CPU 252的一个或多个存储器件。存储器256或者可替代地存储器256内的非易失性存储器器件包括非暂时计算机可读存储介质。在一些实施例中,存储器256或者存储器256的非暂时计算机可读存储介质存储以下程序、模块和数据结构或其子集或超集:
·操作系统266,包括用于处理各种基本系统服务和用于进行依赖硬件的任务的程序;
·网络通信模块268,用于将计算机系统100连接到经由一个或多个网络接口258(有线或无线)与一个或多个网络连接的数据存储系统110;
·呈现模块270,用于经由与用户接口260相关联的一个或多个输出设备262(例如,显示器、扬声器等)使能在计算机系统110处呈现信息(例如,用于网页或应用程序的用户接口、音频和/或视频内容、文本等)的表示;
·输入处理模块272,用于检测来自一个或多个输入设备614的一个的一个或多个用户输入或交互并解释所检测的输入或交互;
·存储器命令模块274,用于发出存储器命令(例如,读取、写入和擦除命令)到存储控制器120;以及
·管理模块276,用于持久存储数据,该管理模块276包括但不限于:
°日志条目模块278,用于生成与相应的写入数据相关联的日志条目;
°分配模块280,用于为记录分配存储介质130(例如,包括诸如闪速存储器的非易失性存储器的持久性数据存储体)的一部分(例如,一组逻辑地址);
°参考生成模块282,用于为记录生成参考标识符;
°记录管理模块284,用于通过用先前生成的值和获得的数据填充记录的多个字段来生成记录,例如包括元数据、日志条目、用于记录的参考标识符、用于下一个记录的前向参考标识符、与为下一个记录分配的存储介质130的部分相关联的前向参考地址、以及写入数据,其中,先前生成的值和获得的数据被(临时)存储在记录缓冲器286中;
°日志流管理模块288,用于将(临时)存储在日志流缓冲器290中的多个日志条目批处理为日志条目集合,并将日志流部分写入到存储介质130中的日志流134,该日志流部分包括日志条目集合和参考对(例如,包括前向参考标识符和与下一个记录相关联的前向参考地址);
°恢复模块292,用于响应于检测到错误条件或同步命令,进行恢复处理或致使恢复处理被执行;
°删除模块294,用于从存储介质130删除记录;
°逻辑到物理映射296,将逻辑地址与存储介质130的各个部分的物理地址相关联;以及
°一个或多个数据库表298(例如,一组索引或目录),用于定位存储在存储介质130(例如,持久性数据存储体)中的数据(例如,记录132)。
上面标识出的要素的每个可以存储在先前提到的存储器器件的一个或多个中,并且对应于用于进行上述功能的指令集。上述标识出的模块或程序(即,指令集)不必被实现为单独的软件程序、过程或模块,因此这些模块的各种子集可以被组合或以其他方式重新布置在各种实施例中。在一些实施例中,存储器256存储上述标识出的模块和数据结构的子集。此外,存储器256可以存储上面没有描述的附加的模块和数据结构。在一些实施例中,存储在存储器256中或存储器256的非暂时计算机可读存储介质中的程序、模块和数据结构提供用于实现下面参照图8A-8C所述的任何方法的指令。
虽然图2A-图2B分别示出了管理模块121和计算机系统110,但是图2A-图2B更意在作为分别可以存在于管理模块和计算机系统中的各种特征的功能描述,而不是作为本文所述的实施例的结构示意。在实践中,并且如本领域的普通技术人员所认识到的,分开示出的程序、模块和数据结构可以组合,且某些程序、模块和数据结构可以分离。
图3示出了根据一些实施例的多个相关数据结构(例如,记录302)的框图。图3包括记录302-1、302-2、302-3和302-4。在图3中,在持久性数据存储体(例如,包括诸如闪速存储器的非易失性存储器的存储介质130)中的逻辑地址或一组逻辑地址已经被分配给每个记录302-1、302-2、302-3和302-4;然而,只有记录302-1、302-2和302-3已经被写入到持久性数据存储体。
每个记录302-1、302-2和302-3包括元数据304、日志条目306、参考标识符308、前向参考标识符310、前向参考地址312和写入数据314。记录302-3例如包括元数据304-3、日志条目306-3、参考标识符308-3、前向参考标识符310-3、前向参考地址312-3和写入数据314-3。
在一些实施例中,代表性元数据304-1包括与写入数据314-1相关的信息。例如,元数据304-1包括与写入数据314-1的提供者对应的信息,诸如与提供写入数据314-1一方或者写入数据314-1的作者相关联的唯一标识符。在另一个示例中,元数据304-1包括与写入数据314-1相关的信息,诸如指示记录302-1的写入操作的时间的时间戳、编码和加密信息、冗余信息和/或其他这样的信息。
在一些实施例中,代表性日志条目306-1包括响应于检测到错误条件(例如,电源故障、不可校正的位错误率等)或同步命令而足以重放(replay)与写入数据314-1相关联的业务(例如,写入操作)的信息。这样,日志条目使得电子系统或设备(例如,计算机系统110,图1,或存储控制器120,图1)能够重放在最近的快照之后执行的对持久性数据存储体的业务。例如,日志条目306-1包括为写入数据314-1分配的逻辑地址,或者可替代地包括记录302-1的逻辑地址。在该示例中,包括在日志条目306-1中的信息使得电子系统或设备能够确定在哪里写入数据314-1符合持久性数据存储体(例如,为写入数据分配的逻辑地址或者一组逻辑地址)的情形。
在一些实施例中,代表性参考标识符308-1是用于记录302-1的唯一标识符。例如,参考标识符308-1是随机生成的N位数字。在另一个示例中,参考标识符308-1包括在较高的N/2个位中的N/2位数字(其包含相应的记录302的写入操作的以秒为单位的时间)和在参考标识符308-1的较低的N/2个位中的随机生成的N/2位数字。在图3中,用于记录302-1的参考标识符308-1为0x6681。
在一些实施例中,代表性前向参考标识符310-1包括下一个记录的参考标识符。在图3中,用于记录302-1的前向参考标识符310-1为0x3695,其对应于记录302-2的参考标识符308-2。
在一些实施例中,代表性前向参考地址312-1包括指向分配给下一个记录的逻辑地址或者一组逻辑地址的指针。例如,记录302-1中的前向参考地址312-1指示分配给记录302-2(即下一个记录)的第一个逻辑地址。
在一些实施例中,代表性写入数据314-1由主机(例如,计算机系统110)来提供。
在一些实施例中,每个记录302具有预定的大小或多个预定的大小中的一个(例如,4kB、64kB、1MB、16MB等)。在一些实施例中,每个记录302具有取决于相应的写入数据314的大小的不同大小。
图4示出了根据一些实施例的生成图3中的数据结构(例如,记录302)的方法400的流程图表示。在一些实施例中,方法400由具有一个或多个处理器和存储器的电子系统或设备来进行,该存储器可操作地与持久性数据存储体(例如,包括诸如闪速存储器的非易失性存储器(NVM)的存储介质130)耦合。例如,方法400由存储控制器120或者其一个或多个组件(例如,管理模块121,图1和图2A)来进行。在另一个示例中,方法400由计算机系统110或者其一个或多个组件(例如,管理模块276,图2B)来进行。在一些实施例中,方法400由存储在非暂时计算机可读存储介质中的指令支配,并且这些指令由电子系统或设备的一个或多个处理器执行。例如,上述的一个或多个处理器是管理模块121的一个或多个处理单元(CPU)122、或计算机系统110的一个或多个处理单元(CPU)252。
电子系统或设备生成(402)与用于记录A(例如,在图3中的记录302-1)的写入数据相关联的日志条目。在一些实施例中,日志条目包括足以重放与记录A的写入数据相关联的业务(例如,写入操作)的信息。
电子系统或设备为下一记录分配(404)持久性数据存储体的一部分,该下一记录在此称为记录B。在一些实施例中,一组逻辑地址被分配给记录B,并且逻辑到物理映射230被更新以包括所分配的该组逻辑地址。
电子系统或设备生成(406)用于记录B的参考标识符。在图3中,例如,用于记录302-2的参考标识符308-2为0x3695。在一些实施例中,参考标识符是标识记录的唯一数字。在一些实施例中,参考标识符是单调增加且随机生成的。
电子系统或设备生成(408)记录A。在一些实施例中,生成记录A包括用存储在记录缓冲器220中的先前生成的值和获得的数据填充记录A的多个字段。在一些实施例中,记录A包括:(ⅰ)在步骤402中生成的用于记录A的日志条目;(ii)用于记录A的参考标识符(例如,先前生成的);(iii)用于记录B的前向参考标识符(例如,0x3695),该前向参考标识符与在步骤406中为记录B生成的参考标识符相匹配;(iv)用于记录B的前向参考地址,该前向参考地址对应于在步骤404中为记录B分配的一组逻辑地址或者该组逻辑地址中的第一逻辑地址;以及(v)用于记录A的写入数据(例如,从主机获得的)。然而,在一些实施例中,记录A包括这些字段的子集,并且可选地包括附加的字段。
电子系统或设备进行单个写入操作以将记录A写入(410)到持久性数据存储体。例如,数据写入模块208将记录A写入到为记录A分配的一组逻辑地址。在一些实施例中,虽然记录A被写入到一组连续的逻辑地址,但是记录A跨过持久性数据存储体(例如,一个或多个闪速存储器器件,一个或多个闪速存储器块,等等)的一个或多个物理部分而被打断(strip)。
接下来,电子系统或设备生成(412)与用于记录B(例如,在图3中的记录302-2)的写入数据相关联的日志条目。
电子系统或设备为下一个记录分配(414)持久性数据存储体的一部分,该下一记录在此称为记录C。在一些实施例中,一组逻辑地址被分配给记录C,并且逻辑到物理映射230被更新以包括所分配的该组逻辑地址。
电子系统或设备生成(416)用于记录C的参考标识符。在图3中,例如,用于记录302-3的参考标识符308-3为0x4231。
电子系统或设备生成(418)记录B。在一些实施例中,记录B包括:(i)在步骤412中为记录B生成的日志条目;(ii)在步骤406中为记录B生成的参考标识符;(iii)用于记录C的前向参考标识符(例如,0x4231),该前向参考标识符与在步骤416中为记录C生成的参考标识符相匹配;(iv)用于记录C的前向参考地址,该前向参考地址对应于为记录C分配的一组逻辑地址或者该组逻辑地址中的第一逻辑地址;以及(v)用于记录B的写入数据。然而,在一些实施例中,记录B包括这些字段的子集,并且可选地包括附加的字段。
电子系统或设备进行单个写入操作以将记录B写入(420)到持久性数据存储体。例如,数据写入模块208将记录B写入到在步骤404中为记录B分配的一组逻辑地址。
电子系统或设备继续将记录写入到持久存储中,如上所述,并且在写入每个这样的记录之前,为下一个记录分配持久性数据存储体的一部分,使得被写入到持久性数据存储体的每个记录包括相对于正在被写入的记录的下一个记录的前向参考地址和前向参考标识符、以及日志条目和写入数据。此外,每个这样的记录用单个写入操作被写入,如上所述。
图5示出了根据一些实施例的日志流134的框图。日志流134存储在持久性数据存储体(例如,包括诸如闪速存储器的非易失性存储器的存储介质130)中,并且日志流134包括多个日志流部分,这包含日志流部分504-1和504-2。
在一些实施例中,在日志流134中的多个日志条目的每个包括足以重放与相应的写入数据相关联的业务(例如,写入操作)的信息。在一些实施例中,日志流134的各个日志流部分504对应于日志条目集合(例如,256个日志条目)。在图5中,日志流部分504-1对应于包括日志条目0至255的日志条目集合,并且日志流部分504-2对应于包括日志条目7324至7679的日志条目集合。
在一些实施例中,电子系统或设备(例如,计算机系统110中,图1,或存储控制器120,图1)或其组件(例如,日志流管理模块222,图2A,或日志流管理模块288,图2B)被配置成将多个日志条目批处理为日志条目集合,并且将日志流部分写入到持久性数据存储体中的日志流。日志流部分包括日志条目集合和参考对。在一些实施例中,日志条目集合中的最后的日志条目被包括在还包含参考对的记录中。在一些实施例中,参考对包括与相应的日志条目还没有被写入到日志流的下一个分配的记录对应的前向参考标识符和前向参考地址。
在图5中,日志流部分504-1包括日志条目0至255(例如,日志条目集合),并且还包括前向参考标识符506和前向参考地址508(例如,参考对)。前向参考标识符506和前向参考地址508也被包括在对应于日志条目255的记录中。在图5中,日志流部分504-2包括日志条目7324至7679(例如,日志条目集合),并且还包括前向参考标识符510和前向参考地址512(例如,对应于记录302-1的参考对)。前向参考标识符510和前向参考地址512被包括在对应于日志条目7679的记录中。例如,日志流部分504-1是日志流134的第一部分,并且日志流部分504-2是日志流134的最新的(或最新近被写入的)部分。
例如,电子系统或设备或其组件(例如,日志流管理模块222,图2A,或日志流管理模块288,图2B)在缓冲器(例如,日志流缓冲器224,图2A,或日志流缓冲器290,图2B)中缓存与记录0相关联的日志条目0和包括在记录0中的前向参考标识符的前向参考地址。然后,在该示例中,电子系统或设备或其组件(例如,日志流管理模块222,图2A,或日志流管理模块288,图2B)在缓冲器中缓存与记录1相关联的日志条目1,并且用包含在记录1中的前向参考标识符和前向参考地址替换被包含在记录0中的前向参考标识符和前向参考地址。继续该示例,电子系统或设备或其组件(例如,日志流管理模块222,图2A,或日志流管理模块288,图2B)继续缓存日志条目,并且用在与最新缓存的日志条目相关联的记录中的前向参考标识符和前向参考地址替换已缓存的前向参考标识符和前向参考地址,直到预定计数的日志条目(例如,256个日志条目)被缓存在缓冲器中。在一些可替代的实施例中,电子系统或设备或其组件缓存日志条目而不将前向参考标识符和前向参考地址写入到日志流缓冲器,直到预定计数的日志条目(例如,256个日志条目)被缓存在缓冲器中,此时该电子系统或设备或其组件在日志流缓冲器中存储在与最新缓存的日志条目相关联的记录中的前向参考标识符和前向参考地址。
在一些实施例中,在电子系统或设备或其组件(例如,日志流管理模块222,图2A,或日志流管理模块288,图2B)已经缓存了预定计数的日志条目之后,该电子系统或设备或其组件(例如,数据写入模块208,图2A,或存储器命令模块274,图2B)将缓冲器的内容(例如,日志流部分)写到或致使该内容被写到持久性数据存储体中的日志流134,并且缓冲器被刷新(flush)。
在一些实施例中,响应于检测到错误条件,电子系统或设备或其组件(例如,恢复模块226,图2A,或恢复模块292,图2B)被配置为进行恢复处理以恢复持久性数据存储体。在一些实施例中,响应于同步命令,电子系统或设备或其组件(例如,恢复模块226,图2A,或恢复模块292,图2B)被配置为进行恢复处理以将目标持久性数据存储体与参考持久性数据存储体同步。
在一些实施例中,恢复处理包括利用单个读取操作或一系列连续的读取操作从日志流134读取日志条目。在该示例中,在来自日志流134的日志条目已经被读取之后,电子系统或设备或其组件(例如,恢复模块226,图2A,或恢复模块292,图2B)被配置为利用这些日志条目来重放与每个日志条目相关联的业务。因此,日志流134使得电子系统或设备能够以最小数量的读取操作来进行恢复处理。
在一些实施例中,恢复处理还包括跟随(follow)被包括在最新的日志流部分(例如,日志流部分504-2)中的指向第一记录(例如,记录302-1)的指针(例如,前向参考地址512),该第一记录的日志条目尚未被写入到日志流。在图5中,在日志流部分504-2中的前向参考地址512包括在为记录302-1分配的一组逻辑地址中的第一逻辑地址。
在一些实施例中,恢复处理还包括确定被包括在最新的日志流部分钟的前向参考标识符是否与第一记录的参考标识符相匹配。在图5中,前向参考标识符510(例如,0x6681)与被包括在记录302-1中的参考标识符(例如,0x6681)相匹配。根据前向参考标识符510与记录302-1参考标识符相匹配的确定,恢复处理还包括利用与记录302-1相关联的日志条目7680来重放与记录302-1的写入数据相关联的业务。
在一些实施例中,恢复处理还包括跟随第一记录(例如,记录302-1)中的到第二记录(例如,记录302-2)的前向参考地址,确定第一记录中的前向参考标识符是否与第二记录中的参考标识符相匹配,并且根据存在匹配的确定,重放与第二记录的写入数据相关联的业务。重复该处理,直到被包括在记录(例如,记录302-3)中的前向参考标识符未能与下一个记录(例如,记录302-4)中的参考标识符相匹配。
当不能确定匹配时,电子系统或设备或其组件(例如,恢复模块226,图2A,或恢复模块292,图2B)被配置为停止恢复处理。匹配失败指示下一个记录(例如,记录302-4)已经被分配但是没有被写入。因此,在检测到错误条件或同步命令之前,电子系统或设备已经完成重放发生的所有业务(例如,已成功交付于持久性数据存储体的所有业务)。
在另一个示例中,与图5中所示的不同,日志流部分504-2中的前向参考地址512指向被分配但没有被写入到持久存储的下一个记录。因此,日志流部分504-2中的前向参考标识符510与被分配但没有被写入的下一个记录相关联的参考标识符不匹配,指示恢复处理完成。
图6示出了根据一些实施例的日志流部分602的框图。在图6中,日志流部分602是持久性数据存储体(例如,包括诸如闪速存储器的非易失性存储器的存储介质130)中的日志流134(图1)的代表性部分。
日志流部分602包括日志条目0至255和多个参考对。日志流部分602的每个参考对包括指向与多个预定记录大小的一个相关联的参考列表(或记录组)中的下一个分配的记录的第一逻辑地址的指针(例如,前向参考地址)。在一些实施例中,在日志流134中的最后的日志流部分602中,参考对包括与相应的日志条目还没有被写入到日志流134的下一个分配的记录对应的前向参考标识符和前向参考地址。
在图6中,前向参考标识符604和前向参考地址606对应于记录652。在图6中,日志流部分602中的前向参考标识符604(例如,0x6477)与记录652中的参考标识符654(例如,0x6477)相匹配。前向参考地址606对应于为记录652分配的一组逻辑地址或者该组逻辑地址中的第一逻辑地址。记录652为4kB参考列表650中的第一4kB记录。4kB参考列表650链接具有4kB的记录大小的记录。
在图6中,前向参考标识符608和前向参考地址610对应于记录622。在图6中,日志流部分602中的前向参考标识符608(例如,0x7614)与记录622中的参考标识符624(例如,0x7614)相匹配。前向参考地址610对应于为记录622分配的一组逻辑地址或者一组逻辑地址中的第一逻辑地址。记录622为64kB参考列表620中的第一64kB记录。64kB参考列表620链接具有64kB的记录大小的记录。
在图6中,前向参考标识符612和前向参考地址614对应于记录632。在图6中,日志流部分602中的前向参考标识符612(例如,0x5468)与记录632中的参考标识符634(例如,0x5468)相匹配。前向参考地址614对应于为记录632分配的一组逻辑地址或者一组逻辑地址中的第一逻辑地址。记录632为1MB参考列表630中的第一1MB记录。1MB参考列表630链接具有1MB的记录大小的记录。在图6中,日志条目256被包括在记录632中;因此,记录632在对应于日志条目255的记录之后被写入到持久性数据存储体。
在图6中,前向参考标识符616和前向参考地址618对应于记录642。在图6中,日志流部分602中的前向参考标识符616(例如,0x9540)与记录642中的参考标识符644(例如,0x9540)相匹配。前向参考地址618对应于为记录642分配的一组逻辑地址或者一组逻辑地址中的第一逻辑地址。记录642为16MB参考列表640中的第一16MB记录。16MB参考列表640链接具有16MB的记录大小的记录。
图7示出了根据一些实施例的相关数据结构(例如,记录702和710)的框图。
在图7中,记录702存储在持久性数据存储体(例如,包括诸如闪速存储器的非易失性存储器的存储介质130)中并且包括写入数据704。响应于删除写入数据704的命令,电子系统或设备(例如,计算机系统110,图1,或存储控制器120,图1)或其组件(例如,删除模块228,图2A,或删除模块294,图2B)被配置为生成记录710,该记录710包括指示记录710表示记录702的删除的日志条目712和对应于写入数据704的墓碑(tombstone)714。然后,电子系统或设备或其组件(例如,数据写入模块208,图2A,或存储器命令模块274,图2B)被配置为通过单个写入操作将记录710写入到持久性数据存储体。在一些实施例中,记录710被写入到为记录702分配的一组逻辑地址。
图8A-8B示出了根据一些实施例的持久存储数据的方法800的流程图表示。在一些实施例中,方法800由具有一个或多个处理器和存储器的电子系统或设备来进行,该存储器与持久性数据存储体(例如,包括诸如闪速存储器的非易失性存储器的存储介质130)可操作地耦合。例如,方法800由存储控制器120或者其一个或多个组件(例如,管理模块121,图1和图2A)来进行。在另一个示例中,方法800由计算机系统110或者其一个或多个组件(例如,管理模块276,图2B)来进行。在一些实施例中,方法800由存储在非暂时计算机可读存储介质中的指令和由电子系统或设备的一个或多个处理器执行的指令来管控。
电子系统或设备生成(802)与对应于第一记录的第一写入数据相关联的日志条目。参照图3,例如,电子系统或设备或其组件(例如,日志条目模块212,图2A,或日志条目模块278,图2B)基于写入数据314-1生成用于记录302-1的日志条目306-1。在一些实施例中,在生成记录302-1之前,日志条目306-1随后被缓存在缓冲器(例如,记录缓冲器220,图2A,或记录缓冲器286,图2B)中。
在一些实施例中,日志条目包括(804)对应于与第一写入数据对应的持久性数据存储体的更新(例如,业务或存储器操作)的信息。
在一些实施例中,电子系统或设备生成(806)用于第一记录的参考标识符。参照图3,例如,电子系统或设备或其组件(例如,参考生成模块216,图2A,或参考生成模块282,图2B)生成用于记录302-1的参考标识符308-1(例如,0x6681)。在一些实施例中,在生成记录302-1之前,参考标识符308-1随后被缓存在缓冲器(例如,记录缓冲器220,图2A,或记录缓冲器286,图2B)中。
在一些实施例中,在进行(808)对应于第一记录的写入操作之前,电子系统或设备为第二记录分配(810)持久性数据存储体的一部分。参照图3,例如,在将记录302-1写入到持久性数据存储体之前,电子系统或设备或其组件(例如,分配模块214,图2A,或分配模块280,图2B)为记录302-2分配在持久性数据存储体中的逻辑地址或一组逻辑地址。在一些实施例中,在生成记录302-2之前,为记录302-2分配的第一逻辑地址随后作为前向参考地址被缓存在缓冲器(例如,记录缓冲器220,图2A,或记录缓冲器286,图2B)中。
在一些实施例中,在进行(808)对应于第一记录的写入操作之前,电子系统或设备生成(812)用于第二记录的参考标识符,其中与第一记录相关联的前向参考标识符与用于第二记录的参考标识符相匹配。参照图3,例如,在将记录302-1写入到持久性数据存储体之前,电子系统或设备或其组件(例如,参考生成模块216,图2A,或参考生成模块282,图2B)生成用于记录302-2的参考标识符308-2。在图3中,例如,在记录302-1中的前向参考标识符310-1与用于记录302-2的参考标识符308-2(例如,0x3695)相匹配。在一些实施例中,在生成记录302-2之前,参考标识符308-1随后被缓存在缓冲器(例如,记录缓冲器220,图2A,或记录缓冲器286,图2B)中。
电子系统或设备生成(814)第一记录,该第一记录包含日志条目、第一写入数据以及指向与第一记录不同的第二记录的指针。参照图3,例如,电子系统或设备或其组件(例如,记录管理模块218,图2A,或记录管理模块284,图2B)通过用在相关联的缓冲器(例如,记录缓冲器220,图2A,或记录缓冲器286,图2B)中缓存的先前生成的值和获得的数据填充记录302-2的多个字段来生成记录302-2。例如,对于记录302-2,日志条目字段用与写入数据314-2相关联的日志条目306-2来填充,写入数据字段用从主机(例如,计算机系统110,图1)接收的写入数据314-2来填充,并且指针字段(例如,前向参考地址312-2)用分配给记录302-3的一组逻辑地址或者在该一组逻辑地址中的第一逻辑地址来填充。
在一些实施例中,指向第二记录的指针是(816)对应于分配给第二记录的持久性数据存储体的部分的前向参考地址。在图3中,例如,记录302-1的前向参考地址字段用前向参考地址312-1来填充,前向参考地址312-1包括在持久性数据存储体中为记录302-2分配的一组逻辑地址中的第一逻辑地址。因此,在该示例中,前向参考地址312-1指向记录302-2。例如,为记录302-2分配的一组逻辑地址被缓存在缓冲器(例如,记录缓冲器220,图2A,或记录缓冲器286,图2B)中。
在一些实施例中,第一记录还包括(818)与用于第二记录的参考标识符相匹配的前向参考标识符。参照图3,例如,记录302-1的前向参考标识符字段用与记录302-2中的参考标识符308-2(例如,0x3695)相匹配的前向参考标识符310-1(例如,0x3695)来填充。例如,参考标识符308-2被缓存在缓冲器(例如,记录缓冲器220,图2A,或记录缓冲器286,图2B)中。
在一些实施例中,第一记录还包括(820)用于第一记录的参考标识符。参照图3,例如,记录302-1的参考标识符字段用参考标识符308-1(例如,0x6681)来填充。例如,参考标识符308-1被缓存在缓冲器(例如,记录缓冲器220,图2A,或记录缓冲器286,图2B)中。
电子系统或设备进行(822)单个写入操作,该单个写入操作包括将第一记录写入到持久性数据存储体。参照图3,例如,记录302-2被写入到持久性数据存储体中的逻辑地址或者一组连续的逻辑地址。在一些实施例中,从主机(例如,计算机系统110)的角度,“写入第一记录”意味着将单个写入命令发送到存储控制器120以将第一记录写入到持久性数据存储体(即,使得进行写入操作)。
在一些实施例中,电子系统或设备将多个日志条目批处理(824)为日志条目集合,该日志条目集合包括与最后的记录相关联的最后相应的日志条目。在一些实施例中,日志条目被缓存在缓冲器(例如,日志流缓冲器224,图2A,或日志流缓冲器290,图2B)中。参照图5,例如,在已经缓存预定计数的日志条目(例如,256个日志条目)之后,电子系统或设备或其组件(例如,日志流管理模块222,图2A,或日志流管理模块288,图2B)将缓存在缓冲器中的日志条目批处理为日志条目集合。在图5中,例如,日志流部分504-2中的日志条目集合包括日志条目7324至7679。在图5中,例如,日志条目7679是在日志流部分504-2中的日志条目集合的最后的日志条目。
在一些实施例中,在进行批处理之后,电子系统或设备进行(826)第二写入操作,该第二写入操作包括将日志流部分写入到持久性数据存储体中的日志流,日志流部分包括日志条目集合和指向跟随最后的记录的下一个记录的指针。参照图5,例如,在将日志条目批处理为日志条目集合之后,电子系统或设备或其组件(例如,数据写入模块208,图2A,或存储器命令模块274,图2B)将日志流部分504-2写入到持久性数据存储体中的日志流134。在图5中,例如,日志流部分504-2包括日志条目7324至7679(例如,日志条目集合),并且还包括前向参考标识符510和前向参考地址512(例如,指向跟随与日志条目7679相关联的记录的下一个记录的指针)。在图5中,在日志流部分504-2中的前向参考地址512包括在为记录302-1分配的一组逻辑地址中的第一逻辑地址。
在一些实施例中,日志条目集合中的多个日志条目被顺序地写入(828)到持久性数据存储体中的日志流。例如,日志条目集合中的日志条目被按,在它们的对应的记录被写入到持久性数据存储体的顺序而布置。参照图5,例如,日志条目0对应于写入到持久性数据存储体的第一记录,且日志条目1对应于写入到持久性数据存储体的第二记录。为了保留该顺序,日志条目顺序地排列在日志条目集合中并且被顺序地写入到日志流134。
在一些实施例中,在进行批处理之后,电子系统或设备进行(830)第二写入操作,该第二写入操作包括将日志流部分写入到持久性数据存储体中的日志流,日志流部分包括日志条目集合和多个指针,其中:该多个指针的每个与多个记录组的一个相关联,其中每个记录组对应于不同的记录大小;并且多个指针的一个与跟随最后的记录的下一个记录相关联。参照图6,例如,日志数据流部分602被写入到持久性数据存储体中的日志流134。在图6中,例如,日志流部分602包括日志条目0至255和多个参考对。在图6中,例如,每个参考对包括指向与多个预定的记录大小(例如,分别为4kB、64kB、1MB、16MB)的一个相关联的参考列表(或记录组)(例如,参考列表620、630、640、650)中下一个分配的记录的第一逻辑地址的指针(例如,前向参考地址606、610、614、618)。在图6中,前向参考地址614指向包括日志条目256的记录632,该日志条目256是跟随日志流部分602中的日志条目255的下一个日志条目。
在一些实施例中,日志条目集合中的每个日志条目对应于(832)多个不同的记录大小的一个。在图6中,例如,包括日志流部分602中的日志条目集合的日志条目0至255的每个与多个记录大小(例如,4kB、64kB、1MB、16MB等等)的一个相关联。
在一些实施例中,电子系统或设备生成(834)第三记录,该第三记录包括指示该第三记录表示第一写入数据的删除的日志条目、对应于第一写入数据的墓碑、以及与第四记录相关联的前向参考标识符。参照图7,例如,电子系统或设备或其组件(例如,删除模块228,图2A,或删除模块294,图2B)生成记录710。在图7中,例如,记录710包括指示记录710表示记录702的删除的日志条目712、对应于记录702中的写入数据704的墓碑714、以及包括分配给下一个记录的一组逻辑地址中的第一逻辑地址的前向参考地址716。
在一些实施例中,在生成第三记录之后,电子系统或设备进行(836)第三写入操作,该第三写入操作包括将第三记录写入到持久性数据存储体。参照图7,例如,电子系统或设备或其组件(例如,数据写入模块208,图2A,或存储器命令模块274,图2B)将记录710写入到持久性数据存储体。
将理解,虽然术语“第一”、“第二”等在此可以用于描述各个要素,但这些要素不应受限于这些术语。这些术语仅用于将要素彼此区分。例如,只要“第一记录”的所有出现一致地更名并且“第二记录”的所有出现一致地更名,第一记录可以称为第二记录,并且类似地,第二记录可以称为第一记录,不改变描述的意义。第一记录和第二记录都是记录,但它们不是同一记录。
在此所使用的术语仅用于描述特定实施例的目的,而并非意图限制权利要求。如在具体实施方式和所附权利要求中所使用的那样,单数形式“一(a)”、“一个(an)”以及“该”意图同样包括复数形式,除非上下文另外清楚指明。还应理解,在此所使用的术语“和/或”指代并且包括关联列出的项中的一个或多个的任何以及所有可能组合。还应理解,术语“包括”和/或“包含”当在本说明书中使用时指定所陈述的特征、整体、步骤、操作、要素和/或组件的存在,但不排除一个或多个其它特征、整体、步骤、操作、要素、组件或其群组的存在或添加。
如在此使用的那样,取决于上下文,术语“如果”可以理解为意味着“当所陈述的条件前提成立时”或“在所陈述的条件前提成立时”或“响应于确定所陈述的条件前提成立”或“根据确定所陈述的条件前提成立”或“响应于检测到所陈述的条件前提成立”。类似地,取决于上下文,短语“如果确定[所陈述的条件前提成立]”或“如果[所陈述的条件前提成立]”或“当[所陈述的条件前提成立]时”可以理解为表示“在确定所陈述的条件前提成立时”或“响应于确定所陈述的条件前提成立”或“根据确定所陈述的条件前提成立”或“在检测到所陈述的条件前提成立时”或“响应于检测所陈述的条件前提成立”。
为了说明的目的,已经参照具体实施例描述了前面的描述。然而,以上说明性讨论并非意图是穷尽的或将权利要求限制为所公开的精确形式。根据以上教导,很多修改和变化是可能的。选取并且描述实施例以最佳地解释操作原理和实际应用,以由此启发本领域技术人员。

Claims (20)

1.一种持久存储数据的方法,所述方法包括:
在具有一个或多个处理器以及存储器的电子系统处:
生成与要被存储在持久性数据存储体中的第一写入数据相关联的第一日志条目;
生成用于多个顺序的记录中的第二记录的前向参考标识符,该第二记录不同于所述多个顺序的记录中的第一记录,其中所述多个顺序的记录中的每个相应记录包括相应的日志条目、在生成所述日志条目时还没有被存储在所述持久性数据存储体中的写入数据、用于所述相应记录的相应参考标识符、用于所述多个顺序的记录中的下一记录的前向参考标识符、以及指向所述多个顺序的记录中的下一记录的指针;
生成该第一记录,该第一记录包含所述第一日志条目、所述第一写入数据、用于所述第二记录的前向参考标识符和指向所述第二记录的指针;以及
进行单个写入操作,所述单个写入操作包括将所述第一记录写入到所述持久性数据存储体,其中:
指向所述第二记录的指针是指向在将所述第一记录写入到所述持久性数据存储体之前的所述持久性数据存储体中被分配用于写入所述第二记录的位置的指针,以及
用于所述第二记录的所述前向参考标识符与指向所述第二记录的所述指针不同。
2.如权利要求1所述的方法,其中所述日志条目包括所述第一记录的或所述第一写入数据的逻辑地址。
3.如权利要求1所述的方法,还包括:
在进行所述写入操作之前:
生成用于所述第二记录的参考标识符;以及
其中,所述第一记录还包括与用于所述第二记录的所述参考标识符相匹配的前向参考标识符。
4.如权利要求1所述的方法,还包括:
生成用于所述第一记录的参考标识符;以及
其中,所述第一记录还包括所述参考标识符。
5.如权利要求1所述的方法,所述日志条目包括对应于所述持久性数据存储体的更新的信息,所述持久性数据存储体的更新对应于所述第一写入数据。
6.如权利要求1-5的任一项所述的方法,还包括:
将多个日志条目批处理为日志条目集合,所述日志条目集合包括与最后的记录相关联的最后的相应日志条目;以及
进行第二写入操作,所述第二写入操作包括将日志流部分写入到所述持久性数据存储体中的日志流,所述日志流部分包括所述日志条目集合并且还包括指向跟随所述最后的记录的下一个记录的指针。
7.如权利要求6所述的方法,其中,所述日志条目集合中的多个日志条目被顺序地写入到所述持久性数据存储体中的所述日志流。
8.如权利要求1-5的任一项所述的方法,还包括:
将多个日志条目批处理为日志条目集合,所述日志条目集合包括与最后的记录相关联的最后的相应日志条目;以及
进行第二写入操作,所述第二写入操作包括将日志流部分写入到所述持久性数据存储体中的日志流,所述日志流部分包括所述日志条目集合和多个指针,其中:
所述多个指针的每个与多个记录组的一个相关联,其中所述多个记录组的至少一个记录组具有与所述多个记录组的至少一个其他记录组不同的大小;以及
所述多个指针的一个与跟随所述最后的记录的下一个记录相关联。
9.如权利要求8所述的方法,其中,所述日志条目集合中的每个日志条目对应于所述多个不同的记录大小的一个。
10.如权利要求1-5的任一项所述的方法,还包括:
生成第三记录,所述第三记录包括指示所述第三记录表示所述第一写入数据的删除的日志条目、对应于所述第一写入数据的墓碑、以及与第四记录相关联的前向参考标识符;以及
进行第三写入操作,所述第三写入操作包括将所述第三记录写入到所述持久性数据存储体。
11.一种电子设备,所述电子设备包括:
用于生成与要被存储在持久性数据存储体中的第一写入数据相关联的第一日志条目的装置;
用于生成用于多个顺序的记录中的第二记录的前向参考标识符的装置,该第二记录不同于所述多个顺序的记录中的第一记录,其中所述多个顺序的记录中的每个相应记录包括相应的日志条目、在生成所述日志条目时还没有被存储在所述持久性数据存储体中的写入数据、用于所述相应记录的相应参考标识符、用于所述多个顺序的记录中的下一记录的前向参考标识符、以及指向所述多个顺序的记录中的下一记录的指针;
用于生成该第一记录的装置,该第一记录包含所述第一日志条目、所述第一写入数据、用于所述第二记录的前向参考标识符和指向所述第二记录的指针;以及
用于进行单个写入操作的装置,所述单个写入操作包括将所述第一记录写入到所述持久性数据存储体,其中:
指向所述第二记录的指针是指向在将所述第一记录写入到所述持久性数据存储体之前的所述持久性数据存储体中被分配用于写入所述第二记录的位置的指针,以及
用于所述第二记录的所述前向参考标识符与指向所述第二记录的所述指针不同。
12.如权利要求11所述的电子设备,其中所述日志条目包括所述第一记录的或所述第一写入数据的逻辑地址。
13.如权利要求11所述的电子设备,还包括:
用于在进行所述写入操作之前生成用于所述第二记录的参考标识符的装置,其中所述第一记录还包括与用于所述第二记录的所述参考标识符相匹配的前向参考标识符。
14.如权利要求11所述的电子设备,还包括:
用于生成用于所述第一记录的参考标识符的装置;以及
其中所述第一记录还包括所述参考标识符。
15.如权利要求11所述的电子设备,其中所述日志条目包括对应于所述持久性数据存储体的更新的信息,所述持久性数据存储体的更新对应于所述第一写入数据。
16.如权利要求11-15的任一项所述的电子设备,还包括:
用于将多个日志条目批处理为日志条目集合的装置,所述日志条目集合包括与最后的记录相关联的最后的相应日志条目;以及
用于进行第二写入操作的装置,所述第二写入操作包括将日志流部分写入到所述持久性数据存储体中的日志流,所述日志流部分包括所述日志条目集合,并且还包括指向跟随所述最后的记录的下一个记录的指针。
17.如权利要求16所述的电子设备,其中,所述日志条目集合中的所述多个日志条目被顺序地写入到所述持久性数据存储体中的所述日志流。
18.如权利要求11-15的任一项所述的电子设备,还包括:
用于将多个日志条目批处理为日志条目集合的装置,所述日志条目集合包括与最后的记录相关联的最后的相应日志条目;以及
用于进行第二写入操作的装置,所述第二写入操作包括将日志流部分写入到所述持久性数据存储体中的日志流,所述日志流部分包括所述日志条目集合和多个指针,其中:
所述多个指针的每个与多个记录组的一个相关联,其中所述多个记录组的至少一个记录组具有与所述多个记录组的至少一个其他记录组不同的大小;以及
所述多个指针的一个与跟随所述最后的记录的下一个记录相关联。
19.如权利要求18所述的电子设备,其中,所述日志条目集合中的每个日志条目对应于所述多个不同的记录大小的一个。
20.如权利要求11-15的任一项所述的电子设备,还包括:
用于生成第三记录的装置,所述第三记录包括指示所述第三记录表示所述第一写入数据的删除的日志条目、对应于所述第一写入数据的墓碑、以及与第四记录相关联的前向参考标识符;以及
用于进行第三写入操作的装置,所述第三写入操作包括将所述第三记录写入到所述持久性数据存储体。
CN201480071421.1A 2013-11-19 2014-11-17 持久性数据存储体中的前向参考记录的方法和系统 Active CN106255953B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361906406P 2013-11-19 2013-11-19
US61/906,406 2013-11-19
US14/135,400 2013-12-19
US14/135,400 US9703816B2 (en) 2013-11-19 2013-12-19 Method and system for forward reference logging in a persistent datastore
PCT/US2014/065987 WO2015077186A1 (en) 2013-11-19 2014-11-17 Method and system for forward reference logging in a persistent datastore

Publications (2)

Publication Number Publication Date
CN106255953A CN106255953A (zh) 2016-12-21
CN106255953B true CN106255953B (zh) 2019-07-05

Family

ID=53174406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480071421.1A Active CN106255953B (zh) 2013-11-19 2014-11-17 持久性数据存储体中的前向参考记录的方法和系统

Country Status (4)

Country Link
US (1) US9703816B2 (zh)
CN (1) CN106255953B (zh)
DE (1) DE112014005266B4 (zh)
WO (1) WO2015077186A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6465376B2 (ja) * 2014-06-16 2019-02-06 株式会社インタラクティブソリューションズ 表示情報管理システム
US9703699B2 (en) * 2014-09-17 2017-07-11 Kabushiki Kaisha Toshiba Hybrid-HDD policy for what host-R/W data goes into NAND
US20170024140A1 (en) * 2015-07-20 2017-01-26 Samsung Electronics Co., Ltd. Storage system and method for metadata management in non-volatile memory
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10037164B1 (en) 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10261704B1 (en) 2016-06-29 2019-04-16 EMC IP Holding Company LLC Linked lists in flash memory
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US11341100B2 (en) * 2016-12-12 2022-05-24 Egnyte, Inc. System and method for eliminating full rescan synchronizations on service restarts
WO2018165958A1 (en) 2017-03-16 2018-09-20 Microsoft Technology Licensing, Llc. Storage system control
US10452624B2 (en) 2017-08-02 2019-10-22 Vmware, Inc. Storage and analysis of data records associated with managed devices in a device management platform
US10795827B2 (en) 2017-11-17 2020-10-06 Western Digital Technologies, Inc. Adaptive management of intermediate storage
US10884654B2 (en) * 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
CN111208946A (zh) * 2020-01-06 2020-05-29 北京同有飞骥科技股份有限公司 支持kb级别小文件并发io的数据持久化方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103329117A (zh) * 2011-01-25 2013-09-25 日本电气株式会社 信息处理设备、信息处理系统、信息处理方法和信息处理程序

Family Cites Families (521)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4173737A (en) 1978-05-04 1979-11-06 Zenith Radio Corporation Limited position, non-volatile memory tuning system
US4888750A (en) 1986-03-07 1989-12-19 Kryder Mark H Method and system for erase before write magneto-optic recording
US4916652A (en) 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US5129089A (en) 1987-12-18 1992-07-07 Digital Equipment Corporation Distributed interlock apparatus and distributed interlock management method
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5381528A (en) 1992-10-15 1995-01-10 Maxtor Corporation Demand allocation of read/write buffer partitions favoring sequential read cache
US5416915A (en) 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5537555A (en) 1993-03-22 1996-07-16 Compaq Computer Corporation Fully pipelined and highly concurrent memory controller
US5519847A (en) 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
US5329491A (en) 1993-06-30 1994-07-12 Intel Corporation Nonvolatile memory card with automatic power supply configuration
US5708849A (en) 1994-01-26 1998-01-13 Intel Corporation Implementing scatter/gather operations in a direct memory access device on a personal computer
US5488702A (en) 1994-04-26 1996-01-30 Unisys Corporation Data block check sequence generation and validation in a file cache system
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
GB9419246D0 (en) 1994-09-23 1994-11-09 Cambridge Consultants Data processing circuits and interfaces
US5666114A (en) 1994-11-22 1997-09-09 International Business Machines Corporation Method and means for managing linear mapped address spaces storing compressed data at the storage subsystem control unit or device level
US5530705A (en) 1995-02-08 1996-06-25 International Business Machines Corporation Soft error recovery system and method
US5636342A (en) 1995-02-17 1997-06-03 Dell Usa, L.P. Systems and method for assigning unique addresses to agents on a system management bus
US5606532A (en) 1995-03-17 1997-02-25 Atmel Corporation EEPROM array with flash-like core
US6016560A (en) 1995-06-14 2000-01-18 Hitachi, Ltd. Semiconductor memory, memory device, and memory card
US5890193A (en) 1995-07-28 1999-03-30 Micron Technology, Inc. Architecture for state machine for controlling internal operations of flash memory
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5790459A (en) 1995-08-04 1998-08-04 Micron Quantum Devices, Inc. Memory circuit for performing threshold voltage tests on cells of a memory array
US5815434A (en) 1995-09-29 1998-09-29 Intel Corporation Multiple writes per a single erase for a nonvolatile memory
US6044472A (en) 1996-06-21 2000-03-28 Archos Device and method for supplying power to an external data medium reader unit connected to a computer, and external reader unit including this device
KR100412589B1 (ko) 1996-07-05 2004-04-06 마츠시타 덴끼 산교 가부시키가이샤 반도체 회로 시스템, 반도체 집적회로의 검사방법 및 그 검사계열의 생성방법
US6134148A (en) 1997-09-30 2000-10-17 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
JPH10124381A (ja) 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
US5943692A (en) 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US6006345A (en) 1997-05-09 1999-12-21 International Business Machines Corporation Pattern generator for memory burn-in and test
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JPH11126497A (ja) 1997-10-22 1999-05-11 Oki Electric Ind Co Ltd 不揮発性半導体記憶装置
US6018304A (en) 1997-12-18 2000-01-25 Texas Instruments Incorporated Method and apparatus for high-rate n/n+1 low-complexity modulation codes with adjustable codeword length and error control capability
US6070074A (en) 1998-04-24 2000-05-30 Trw Inc. Method for enhancing the performance of a regenerative satellite communications system
US6138261A (en) 1998-04-29 2000-10-24 Trw Inc. Concatenated coding system for satellite communications
US6182264B1 (en) 1998-05-22 2001-01-30 Vlsi Technology, Inc. Smart dynamic selection of error correction methods for DECT based data services
US7111293B1 (en) 1998-06-03 2006-09-19 Ants Software, Inc. Method for increased concurrency in a computer system
US6192092B1 (en) 1998-06-15 2001-02-20 Intel Corp. Method and apparatus for clock skew compensation
US6260120B1 (en) 1998-06-29 2001-07-10 Emc Corporation Storage mapping and partitioning among multiple host processors in the presence of login state changes and host controller replacement
US6505305B1 (en) 1998-07-16 2003-01-07 Compaq Information Technologies Group, L.P. Fail-over of multiple memory blocks in multiple memory modules in computer system
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6295592B1 (en) 1998-07-31 2001-09-25 Micron Technology, Inc. Method of processing memory requests in a pipelined memory controller
US6233625B1 (en) 1998-11-18 2001-05-15 Compaq Computer Corporation System and method for applying initialization power to SCSI devices
US6288860B1 (en) 1999-01-04 2001-09-11 Maxtor Corporation Servo area numbering strategy for computer disk drives
US6438661B1 (en) 1999-03-03 2002-08-20 International Business Machines Corporation Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache
US6449625B1 (en) 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
US6728879B1 (en) * 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6564271B2 (en) 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US6104304A (en) 1999-07-06 2000-08-15 Conexant Systems, Inc. Self-test and status reporting system for microcontroller-controlled devices
US20080282128A1 (en) 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US20050114587A1 (en) 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US7333364B2 (en) 2000-01-06 2008-02-19 Super Talent Electronics, Inc. Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
US7318117B2 (en) 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US7620769B2 (en) 2000-01-06 2009-11-17 Super Talent Electronics, Inc. Recycling partially-stale flash blocks using a sliding window for multi-level-cell (MLC) flash memory
US6412042B1 (en) 1999-11-17 2002-06-25 Maxtor Corporation System and method for improved disk drive performance and reliability
US6484224B1 (en) 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
DE19961138C2 (de) 1999-12-17 2001-11-22 Siemens Ag Multiport-RAM-Speichervorrichtung
US8037234B2 (en) 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US7082056B2 (en) 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
US6339338B1 (en) 2000-01-18 2002-01-15 Formfactor, Inc. Apparatus for reducing power supply noise in an integrated circuit
US20020152305A1 (en) 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US6516437B1 (en) 2000-03-07 2003-02-04 General Electric Company Turbo decoder control for use with a programmable interleaver, variable block length, and multiple code rates
JP3555859B2 (ja) 2000-03-27 2004-08-18 広島日本電気株式会社 半導体生産システム及び半導体装置の生産方法
US6615307B1 (en) 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
US6629047B1 (en) 2000-03-30 2003-09-30 Intel Corporation Method and apparatus for flash voltage detection and lockout
US20030188045A1 (en) 2000-04-13 2003-10-02 Jacobson Michael B. System and method for distributing storage controller tasks
US6647387B1 (en) 2000-04-27 2003-11-11 International Business Machine Corporation System, apparatus, and method for enhancing storage management in a storage area network
US6678788B1 (en) 2000-05-26 2004-01-13 Emc Corporation Data type and topological data categorization and ordering for a mass storage system
US6934755B1 (en) 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
US6442076B1 (en) 2000-06-30 2002-08-27 Micron Technology, Inc. Flash memory with multiple status reading capability
US6980985B1 (en) 2000-08-30 2005-12-27 At&T Corp. Distributed evalulation of directory queries using a topology cache
US6941505B2 (en) 2000-09-12 2005-09-06 Hitachi, Ltd. Data processing system and data processing method
US6865650B1 (en) 2000-09-29 2005-03-08 Emc Corporation System and method for hierarchical data storage
US7028165B2 (en) 2000-12-06 2006-04-11 Intel Corporation Processor stalling
US6862651B2 (en) 2000-12-20 2005-03-01 Microsoft Corporation Automotive computing devices with emergency power shut down capabilities
US7107480B1 (en) 2000-12-22 2006-09-12 Simpletech, Inc. System and method for preventing data corruption in solid-state memory devices after a power failure
US6738870B2 (en) 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
KR100381955B1 (ko) 2001-01-03 2003-04-26 삼성전자주식회사 기입 드라이버를 이용한 셀 전류 측정 스킴을 갖는 플래시메모리 장치
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US20020156973A1 (en) 2001-01-29 2002-10-24 Ulrich Thomas R. Enhanced disk array
WO2002082435A1 (fr) 2001-03-30 2002-10-17 Fujitsu Limited Dispositif de stockage
US7017107B2 (en) 2001-04-30 2006-03-21 Sun Microsystems, Inc. Storage array employing scrubbing operations at the disk-controller level
US6938253B2 (en) 2001-05-02 2005-08-30 Portalplayer, Inc. Multiprocessor communication system and method
US6757768B1 (en) 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
JP4256600B2 (ja) 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US7068603B2 (en) 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US6836815B1 (en) 2001-07-11 2004-12-28 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
US6928602B2 (en) 2001-07-18 2005-08-09 Sony Corporation Encoding method and encoder
JP4569055B2 (ja) 2001-08-06 2010-10-27 ソニー株式会社 信号処理装置及び信号処理方法
TW539946B (en) 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
JP4437519B2 (ja) 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US7028213B2 (en) 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
US7032123B2 (en) 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
JP3663377B2 (ja) 2001-10-23 2005-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法
US7380085B2 (en) 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US6798696B2 (en) 2001-12-04 2004-09-28 Renesas Technology Corp. Method of controlling the operation of non-volatile semiconductor memory chips
US6871257B2 (en) 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US6836808B2 (en) 2002-02-25 2004-12-28 International Business Machines Corporation Pipelined packet processing
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
KR100476888B1 (ko) 2002-04-04 2005-03-17 삼성전자주식회사 온도보상기능을 가진 멀티비트 플래쉬메모리
JP4079684B2 (ja) 2002-05-08 2008-04-23 株式会社日立製作所 ヒープメモリ管理方法およびそれを用いた計算機システム
US6966006B2 (en) 2002-05-09 2005-11-15 International Business Machines Corporation Adaptive startup policy for accelerating multi-disk array spin-up
US6895464B2 (en) 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US6885530B2 (en) 2002-06-11 2005-04-26 Stmicroelectronics, Inc. Power limiting time delay circuit
KR100484147B1 (ko) 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
US7051155B2 (en) 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US6978343B1 (en) 2002-08-05 2005-12-20 Netlogic Microsystems, Inc. Error-correcting content addressable memory
WO2004023385A1 (ja) 2002-08-29 2004-03-18 Renesas Technology Corp. 半導体処理装置及びicカード
US7120856B2 (en) 2002-09-25 2006-10-10 Leanics Corporation LDPC code and encoder/decoder regarding same
JP2004178782A (ja) 2002-10-04 2004-06-24 Sharp Corp 半導体記憶装置およびその制御方法および携帯電子機器
KR100457812B1 (ko) 2002-11-14 2004-11-18 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
US7302592B2 (en) 2002-12-02 2007-11-27 Silverbrook Research Pty Ltd Integrated circuit which disables writing circuitry to memory when the power drops below a power threshold predetermined and controlled by the processor
US20040114265A1 (en) 2002-12-16 2004-06-17 Xerox Corporation User-selectable automatic secure data file erasure of job after job completion
US7155579B1 (en) 2002-12-27 2006-12-26 Unisys Corporation Memory controller having programmable initialization sequence
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7296216B2 (en) 2003-01-23 2007-11-13 Broadcom Corporation Stopping and/or reducing oscillations in low density parity check (LDPC) decoding
JP4110000B2 (ja) 2003-01-28 2008-07-02 株式会社ルネサステクノロジ 記憶装置
US7043505B1 (en) 2003-01-28 2006-05-09 Unisys Corporation Method variation for collecting stability data from proprietary systems
JP2004240555A (ja) 2003-02-04 2004-08-26 Fujitsu Ltd バッテリ運用制御装置、バッテリ運用制御方法およびバッテリ運用制御プログラム
US7478096B2 (en) 2003-02-26 2009-01-13 Burnside Acquisition, Llc History preservation in a computer storage system
US7162678B2 (en) 2003-03-14 2007-01-09 Quantum Corporation Extended error correction codes
KR100543447B1 (ko) 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
US7527466B2 (en) 2003-04-03 2009-05-05 Simmons Robert J Building-erection structural member transporter
KR100526186B1 (ko) 2003-04-04 2005-11-03 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
JP4170988B2 (ja) 2003-05-09 2008-10-22 富士通株式会社 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体
US7380059B2 (en) 2003-05-16 2008-05-27 Pillar Data Systems, Inc. Methods and systems of cache memory management and snapshot operations
US7877647B2 (en) 2003-05-23 2011-01-25 Hewlett-Packard Development Company, L.P. Correcting a target address in parallel with determining whether the target address was received in error
EP2511787B1 (en) 2003-05-23 2017-09-20 IP Reservoir, LLC Data decompression and search using FPGA devices
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7076598B2 (en) 2003-09-09 2006-07-11 Solid State System Co., Ltd. Pipeline accessing method to a large block memory
US7054968B2 (en) 2003-09-16 2006-05-30 Denali Software, Inc. Method and apparatus for multi-port memory controller
US7100002B2 (en) 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7523157B2 (en) 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7173852B2 (en) 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7881133B2 (en) 2003-11-11 2011-02-01 Samsung Electronics Co., Ltd. Method of managing a flash memory and the flash memory
TW200516821A (en) 2003-11-14 2005-05-16 Hon Hai Prec Ind Co Ltd System and method for starting up devices orderly
US7401174B2 (en) 2003-12-16 2008-07-15 Matsushita Electric Industrial Co., Ltd. File system defragmentation and data processing method and apparatus for an information recording medium
US7197652B2 (en) 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
US7376887B2 (en) 2003-12-22 2008-05-20 International Business Machines Corporation Method for fast ECC memory testing by software including ECC check byte
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US20050144516A1 (en) 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7631138B2 (en) 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US7631148B2 (en) 2004-01-08 2009-12-08 Netapp, Inc. Adaptive file readahead based on multiple factors
JP4357304B2 (ja) 2004-01-09 2009-11-04 株式会社バッファロー 外部記憶装置
US7328377B1 (en) 2004-01-27 2008-02-05 Altera Corporation Error correction for programmable logic integrated circuits
JP4477365B2 (ja) 2004-01-29 2010-06-09 株式会社日立製作所 複数インタフェースを有する記憶装置、および、その記憶装置の制御方法
US7389465B2 (en) 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US7350044B2 (en) 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US20080147964A1 (en) 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
JP2005266861A (ja) 2004-03-16 2005-09-29 Nec Electronics Corp マイクロコンピュータ及びそのテスト方法
US7035159B2 (en) 2004-04-01 2006-04-25 Micron Technology, Inc. Techniques for storing accurate operating current values
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
US7809836B2 (en) 2004-04-07 2010-10-05 Intel Corporation System and method for automating bios firmware image recovery using a non-host processor and platform policy to select a donor system
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
JP2005332471A (ja) 2004-05-19 2005-12-02 Hitachi Ltd ディスクアレイ装置
US20050273560A1 (en) 2004-06-03 2005-12-08 Hulbert Jared E Method and apparatus to avoid incoherency between a cache memory and flash memory
US7334179B2 (en) 2004-06-04 2008-02-19 Broadcom Corporation Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems
US7159069B2 (en) 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device
US7126873B2 (en) 2004-06-29 2006-10-24 Super Talent Electronics, Inc. Method and system for expanding flash storage device capacity
US7529898B2 (en) 2004-07-09 2009-05-05 International Business Machines Corporation Method for backing up and restoring data
US8190808B2 (en) 2004-08-17 2012-05-29 Rambus Inc. Memory device having staggered memory operations
JP2008511929A (ja) 2004-08-30 2008-04-17 シリコン ストレージ テクノロジー、 インク. 携帯電話の不揮発性メモリを管理するシステムおよび方法
FR2875358B1 (fr) 2004-09-15 2006-12-15 Eads Telecom Soc Par Actions S Insertion d'un flux secondaire d'informations binaires dans un flux principal de symboles d'une modulation numerique
US7038948B2 (en) 2004-09-22 2006-05-02 Spansion Llc Read approach for multi-level virtual ground memory
JP2006099665A (ja) 2004-09-30 2006-04-13 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びそのシリアル・インターフェース部のパワー・セーブ・モードの制御方法
US7760880B2 (en) 2004-10-13 2010-07-20 Viasat, Inc. Decoder architecture system and method
JP4956922B2 (ja) 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
KR100695891B1 (ko) 2004-11-17 2007-03-19 삼성전자주식회사 동작 모드에 따라 락 아웃을 선택적으로 수행하는 장치 및방법
US7395404B2 (en) 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US20060136681A1 (en) 2004-12-21 2006-06-22 Sanjeev Jain Method and apparatus to support multiple memory banks with a memory block
EP1829223B1 (en) 2004-12-22 2013-02-13 LG Electronics Inc. Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes
US20060156177A1 (en) 2004-12-29 2006-07-13 Sailesh Kottapalli Method and apparatus for recovering from soft errors in register files
US7212440B2 (en) 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
US7437537B2 (en) 2005-02-17 2008-10-14 Qualcomm Incorporated Methods and apparatus for predicting unaligned memory access
US7657696B2 (en) 2005-02-25 2010-02-02 Lsi Corporation Method to detect NAND-flash parameters by hardware automatically
US7822912B2 (en) 2005-03-14 2010-10-26 Phision Electronics Corp. Flash storage chip and flash array storage system
US7251160B2 (en) 2005-03-16 2007-07-31 Sandisk Corporation Non-volatile memory and method with power-saving read and program-verify operations
JP2006277395A (ja) 2005-03-29 2006-10-12 Matsushita Electric Ind Co Ltd 情報処理装置及び情報処理方法
US7426633B2 (en) 2005-05-12 2008-09-16 Hewlett-Packard Development Company, L.P. System and method for reflashing disk drive firmware
US7707232B2 (en) 2005-05-13 2010-04-27 Microsoft Corporation Implementation for collecting unmanaged memory
US7765454B2 (en) 2005-05-24 2010-07-27 Sgi International, Inc. Fault tolerant memory system
US7283395B2 (en) 2005-06-24 2007-10-16 Infineon Technologies Flash Gmbh & Co. Kg Memory device and method for operating the memory device
WO2007001305A1 (en) 2005-06-27 2007-01-04 Thomson Licensing Stopping criteria in iterative decoders
US7669003B2 (en) 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7984084B2 (en) 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7934049B2 (en) 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
KR100705220B1 (ko) 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
US20080256415A1 (en) 2005-09-27 2008-10-16 Nxp B.V. Error Detection/Correction Circuit as Well as Corresponding Method
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
KR100715147B1 (ko) 2005-10-06 2007-05-10 삼성전자주식회사 전류소모를 감소시키는 내부전원전압 발생회로를 가지는멀티칩 반도체 메모리 장치
US20070083697A1 (en) 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
US8223553B2 (en) 2005-10-12 2012-07-17 Macronix International Co., Ltd. Systems and methods for programming a memory device
US7743363B2 (en) 2005-10-13 2010-06-22 Microsoft Corporation Extensible meta-data
US7954037B2 (en) 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
US8006161B2 (en) 2005-10-26 2011-08-23 Samsung Electronics Co., Ltd Apparatus and method for receiving signal in a communication system using a low density parity check code
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
KR100966043B1 (ko) 2005-10-31 2010-06-25 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 송수신 장치 및 방법
US7606812B2 (en) * 2005-11-04 2009-10-20 Sun Microsystems, Inc. Dynamic intent log
WO2007058617A1 (en) 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
US7500062B2 (en) 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
US8813052B2 (en) 2005-12-07 2014-08-19 Microsoft Corporation Cache metadata for implementing bounded transactional memory
US7546515B2 (en) 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US7562283B2 (en) 2005-12-27 2009-07-14 D.S.P. Group Ltd. Systems and methods for error correction using binary coded hexidecimal or hamming decoding
US7349264B2 (en) 2005-12-28 2008-03-25 Sandisk Corporation Alternate sensing techniques for non-volatile memories
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
WO2007080586A2 (en) 2006-01-10 2007-07-19 Saifun Semiconductors Ltd. Rd algorithm improvement for nrom technology
US8020060B2 (en) 2006-01-18 2011-09-13 Sandisk Il Ltd Method of arranging data in a multi-level cell memory device
KR100725410B1 (ko) 2006-01-20 2007-06-07 삼성전자주식회사 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법
US20070234143A1 (en) 2006-01-25 2007-10-04 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices
JP4859471B2 (ja) 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ
US7546478B2 (en) 2006-02-10 2009-06-09 International Business Machines Corporation Apparatus and method to provide power to a plurality of data storage devices disposed in a data storage system
US7870326B2 (en) 2006-07-28 2011-01-11 Samsung Electronics Co., Ltd. Multiprocessor system and method thereof
US7590473B2 (en) 2006-02-16 2009-09-15 Intel Corporation Thermal management using an on-die thermal sensor
US7681106B2 (en) 2006-03-29 2010-03-16 Freescale Semiconductor, Inc. Error correction device and methods thereof
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US20070245061A1 (en) 2006-04-13 2007-10-18 Intel Corporation Multiplexing a parallel bus interface and a flash memory interface
US7685494B1 (en) 2006-05-08 2010-03-23 Marvell International, Ltd. Error correction coding for varying signal-to-noise ratio channels
US8000134B2 (en) 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7707481B2 (en) 2006-05-16 2010-04-27 Pitney Bowes Inc. System and method for efficient uncorrectable error detection in flash memory
US20070300130A1 (en) 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US7701764B2 (en) 2006-05-17 2010-04-20 Micron Technology, Inc. Apparatus and method for reduced peak power consumption during common operation of multi-NAND flash memory devices
US7606084B2 (en) 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
US7486561B2 (en) 2006-06-22 2009-02-03 Sandisk Corporation Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
JP4842719B2 (ja) 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
WO2008003094A2 (en) 2006-06-29 2008-01-03 Digital Fountain, Inc. Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes
US7774684B2 (en) 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
US7403438B2 (en) 2006-07-12 2008-07-22 Infineon Technologies Flash Gmbh & Co. Kg Memory array architecture and method for high-speed distribution measurements
JP2008047273A (ja) 2006-07-20 2008-02-28 Toshiba Corp 半導体記憶装置およびその制御方法
US7831895B2 (en) 2006-07-25 2010-11-09 Communications Coding Corporation Universal error control coding system for digital communication and data storage systems
TW200813724A (en) 2006-07-28 2008-03-16 Samsung Electronics Co Ltd Multipath accessible semiconductor memory device with host interface between processors
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
US7450425B2 (en) 2006-08-30 2008-11-11 Micron Technology, Inc. Non-volatile memory cell read failure reduction
JP2008059315A (ja) 2006-08-31 2008-03-13 Hitachi Ltd 負荷分散方法及び計算機システム
US7566987B2 (en) 2006-09-14 2009-07-28 Lutron Electronics Co., Inc. Method of powering up a plurality of loads in sequence
KR100843133B1 (ko) 2006-09-20 2008-07-02 삼성전자주식회사 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법
TW200816651A (en) 2006-09-25 2008-04-01 Sunplus Technology Co Ltd Decoding method and system of real-time wireless channel estimation
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US8171380B2 (en) 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
CN100596029C (zh) 2006-10-20 2010-03-24 北京泰美世纪科技有限公司 Ldpc码校验矩阵构造方法及利用该方法的编码解码装置
JP2008117195A (ja) 2006-11-06 2008-05-22 Hitachi Ltd 半導体記憶装置
TWI307100B (en) 2006-11-07 2009-03-01 Macronix Int Co Ltd Memory and method for reading error checking thereof
US7508703B2 (en) 2006-11-13 2009-03-24 Sandisk Corporation Non-volatile memory with boost structures
US8296337B2 (en) 2006-12-06 2012-10-23 Fusion-Io, Inc. Apparatus, system, and method for managing data from a requesting device with an empty data token directive
US8074011B2 (en) 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
KR100808664B1 (ko) 2006-12-08 2008-03-07 한국전자통신연구원 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
KR100881669B1 (ko) 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
WO2008075292A2 (en) 2006-12-18 2008-06-26 Nxp B.V. Power-on temperature sensor/spd detect
US7620781B2 (en) 2006-12-19 2009-11-17 Intel Corporation Efficient Bloom filter
KR100842680B1 (ko) 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US7603490B2 (en) 2007-01-10 2009-10-13 International Business Machines Corporation Barrier and interrupt mechanism for high latency and out of order DMA device
KR100855587B1 (ko) 2007-01-17 2008-09-01 삼성전자주식회사 메일박스 영역을 가지는 멀티 패스 액세스블 반도체 메모리장치 및 그에 따른 메일박스 액세스 제어방법
US7707461B2 (en) 2007-01-31 2010-04-27 Hewlett-Packard Development Company, L.P. Digital media drive failure prediction system and method
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7913022B1 (en) 2007-02-14 2011-03-22 Xilinx, Inc. Port interface modules (PIMs) in a multi-port memory controller (MPMC)
KR100918707B1 (ko) 2007-03-12 2009-09-23 삼성전자주식회사 플래시 메모리를 기반으로 한 메모리 시스템
CN101715595A (zh) 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 存储器单元读取阈的自适应估计
JP4897524B2 (ja) 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
KR100907218B1 (ko) 2007-03-28 2009-07-10 삼성전자주식회사 읽기 레벨 제어 장치 및 그 방법
WO2008121553A1 (en) 2007-03-29 2008-10-09 Sandisk Corporation Non-volatile storage with decoding of data using reliability metrics based on multiple reads
WO2008121577A1 (en) 2007-03-31 2008-10-09 Sandisk Corporation Soft bit data transmission for error correction control in non-volatile memory
US8032724B1 (en) 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US7996642B1 (en) 2007-04-25 2011-08-09 Marvell International Ltd. Digital locked loop on channel tagged memory requests for memory optimization
EP1988474A1 (en) 2007-05-04 2008-11-05 Axalto SA System and method of managing indexation of flash memory
US8151171B2 (en) 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
US8073648B2 (en) 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
US7930547B2 (en) 2007-06-15 2011-04-19 Alcatel-Lucent Usa Inc. High accuracy bloom filter using partitioned hashing
US20080320110A1 (en) 2007-06-25 2008-12-25 Sharp Laboratories Of America, Inc. Firmware rollback and configuration restoration for electronic devices
KR100891005B1 (ko) 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
US7778070B2 (en) 2007-06-29 2010-08-17 Qimonda Ag Memory with dynamic redundancy configuration
JP2009020986A (ja) 2007-07-15 2009-01-29 Hitachi Global Storage Technologies Netherlands Bv ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
US8024525B2 (en) 2007-07-25 2011-09-20 Digi-Data Corporation Storage control unit with memory cache protection via recorded log
US8724789B2 (en) 2007-08-06 2014-05-13 Yellow Pages Systems and methods to connect people for real time communications via directory assistance
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
JP4404125B2 (ja) 2007-09-12 2010-01-27 株式会社デンソー 電子制御装置及び信号監視回路
EP2210257B1 (en) 2007-10-31 2016-04-20 Avago Technologies General IP (Singapore) Pte. Ltd. Systematic error correction for multi-level flash memory
US7894264B2 (en) 2007-11-07 2011-02-22 Micron Technology, Inc. Controlling a memory device responsive to degradation
US7945825B2 (en) 2007-11-25 2011-05-17 Spansion Isreal, Ltd Recovery while programming non-volatile memory (NVM)
US8429492B2 (en) 2007-11-30 2013-04-23 Marvell World Trade Ltd. Error correcting code predication system and method
US8321625B2 (en) 2007-12-05 2012-11-27 Densbits Technologies Ltd. Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith
US8185903B2 (en) 2007-12-13 2012-05-22 International Business Machines Corporation Managing system resources
US8533384B2 (en) 2007-12-27 2013-09-10 Sandisk Enterprise Ip Llc Flash memory controller garbage collection operations performed independently in multiple flash memory groups
KR101077339B1 (ko) 2007-12-28 2011-10-26 가부시끼가이샤 도시바 반도체 기억 장치
US20090172335A1 (en) 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8159874B2 (en) 2008-01-22 2012-04-17 Micron Technology, Inc. Cell operation monitoring
US8271515B2 (en) 2008-01-29 2012-09-18 Cadence Design Systems, Inc. System and method for providing copyback data integrity in a non-volatile memory system
JP4617405B2 (ja) 2008-02-05 2011-01-26 富士通株式会社 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム
US20090204823A1 (en) 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
JP2009211233A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
KR20090097673A (ko) 2008-03-12 2009-09-16 삼성전자주식회사 연판정 값에 기반하여 메모리에 저장된 데이터를 검출하는장치
KR20090106869A (ko) 2008-04-07 2009-10-12 삼성전자주식회사 3차원 메모리 장치 및 그것의 구동 방법
JP2009266349A (ja) 2008-04-28 2009-11-12 Toshiba Corp 不揮発性半導体記憶装置
US8185706B2 (en) 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
KR101518199B1 (ko) 2008-05-23 2015-05-06 삼성전자주식회사 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치
KR101412974B1 (ko) 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
KR101412690B1 (ko) 2008-05-28 2014-06-27 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
JP5072723B2 (ja) 2008-06-11 2012-11-14 株式会社東芝 不揮発性半導体記憶装置
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8627169B2 (en) 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
KR101413137B1 (ko) 2008-07-04 2014-07-01 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
US8037380B2 (en) 2008-07-08 2011-10-11 International Business Machines Corporation Verifying data integrity of a non-volatile memory system during data caching process
US8325554B2 (en) 2008-07-10 2012-12-04 Sanmina-Sci Corporation Battery-less cache memory module with integrated backup
KR101436506B1 (ko) 2008-07-23 2014-09-02 삼성전자주식회사 메모리 장치 및 메모리 데이터 프로그래밍 방법
JP2010055692A (ja) 2008-08-28 2010-03-11 Toshiba Corp 読み出し回路及び読み出し方法
US8130552B2 (en) 2008-09-11 2012-03-06 Sandisk Technologies Inc. Multi-pass programming for memory with reduced data storage requirement
US8429514B1 (en) 2008-09-24 2013-04-23 Network Appliance, Inc. Dynamic load balancing of distributed parity in a RAID array
KR101484556B1 (ko) 2008-10-28 2015-01-20 삼성전자주식회사 독출 보상 회로
US8023334B2 (en) 2008-10-31 2011-09-20 Micron Technology, Inc. Program window adjust for memory cell signal line delay
US8775741B1 (en) 2009-01-13 2014-07-08 Violin Memory Inc. Using temporal access patterns for determining prefetch suitability
US8214599B2 (en) 2008-11-04 2012-07-03 Gridiron Systems, Inc. Storage device prefetch system using directed graph clusters
US9063874B2 (en) 2008-11-10 2015-06-23 SanDisk Technologies, Inc. Apparatus, system, and method for wear management
KR101516577B1 (ko) 2008-11-10 2015-05-06 삼성전자주식회사 비휘발성 반도체 메모리 장치, 그를 포함하는 메모리 카드와 메모리 시스템 및 그의 리드 전압 추정 방법
KR20100058166A (ko) 2008-11-24 2010-06-03 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
KR101555022B1 (ko) 2008-12-02 2015-09-23 삼성전자주식회사 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 맵핑정보 복원 방법
US8209466B2 (en) 2008-12-16 2012-06-26 Intel Corporation Methods and systems to allocate addresses in a high-endurance/low-endurance hybrid flash memory
US9128699B2 (en) 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
KR101535225B1 (ko) 2009-01-06 2015-07-09 삼성전자주식회사 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치
CN101799783A (zh) 2009-01-19 2010-08-11 中国人民大学 一种数据存储处理方法、查找方法及其装置
KR100996009B1 (ko) 2009-02-02 2010-11-22 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 동작 방법
US8645749B2 (en) 2009-02-04 2014-02-04 Micron Technology, Inc. Systems and methods for storing and recovering controller data in non-volatile memory devices
KR20100090439A (ko) 2009-02-06 2010-08-16 주식회사 하이닉스반도체 불휘발성 메모리 장치의 독출 방법 및 이를 구현하는 불휘발성 메모리 장치
US7830732B2 (en) 2009-02-11 2010-11-09 Stec, Inc. Staged-backup flash backed dram module
KR20100093885A (ko) 2009-02-17 2010-08-26 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8230239B2 (en) 2009-04-02 2012-07-24 Qualcomm Incorporated Multiple power mode system and method for memory
US8042011B2 (en) 2009-04-28 2011-10-18 Synopsys, Inc. Runtime programmable BIST for testing a multi-port memory device
KR101575248B1 (ko) 2009-04-30 2015-12-07 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
US20100281207A1 (en) 2009-04-30 2010-11-04 Miller Steven C Flash-based data archive storage system
US8166258B2 (en) 2009-07-24 2012-04-24 Lsi Corporation Skip operations for solid state disks
US8161244B2 (en) 2009-05-13 2012-04-17 Microsoft Corporation Multiple cache directories
US8463820B2 (en) 2009-05-26 2013-06-11 Intel Corporation System and method for memory bandwidth friendly sorting on multi-core architectures
US8180763B2 (en) 2009-05-29 2012-05-15 Microsoft Corporation Cache-friendly B-tree accelerator
US8885434B2 (en) 2009-06-17 2014-11-11 Stmicroelectronics International N.V. Retention of data during stand-by mode
US8627117B2 (en) 2009-06-26 2014-01-07 Seagate Technology Llc Device with power control feature involving backup power reservoir circuit
US8479032B2 (en) 2009-06-26 2013-07-02 Seagate Technology Llc Systems, methods and devices for regulation or isolation of backup power in memory devices
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US8880835B2 (en) 2009-07-07 2014-11-04 International Business Machines Corporation Adjusting location of tiered storage residence based on usage patterns
US8516219B2 (en) 2009-07-24 2013-08-20 Apple Inc. Index cache tree
US7941696B2 (en) 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US7818525B1 (en) 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
EP2467852B1 (en) 2009-08-20 2019-05-22 Rambus Inc. Atomic memory device
US8464106B2 (en) 2009-08-24 2013-06-11 Ocz Technology Group, Inc. Computer system with backup function and method therefor
US8077515B2 (en) 2009-08-25 2011-12-13 Micron Technology, Inc. Methods, devices, and systems for dealing with threshold voltage change in memory devices
KR20120059506A (ko) 2009-08-25 2012-06-08 샌디스크 아이엘 엘티디 플래시 저장 디바이스로의 데이터 복원
EP2476039B1 (en) 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
US8478725B2 (en) 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
US8473680B1 (en) 2009-09-18 2013-06-25 Marvell International Ltd. Hotspot detection and caching for storage devices
KR101644125B1 (ko) * 2009-09-22 2016-07-29 삼성전자주식회사 비휘발성 메모리를 이용한 로깅 최적화 장치 및 방법
IE20100614A1 (en) 2009-09-23 2011-03-30 Conor Maurice Ryan A flash memory device and control method
US8479061B2 (en) 2009-09-24 2013-07-02 AGIGA Tech Solid state memory cartridge with wear indication
US20110103391A1 (en) 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US8171257B2 (en) * 2009-09-25 2012-05-01 International Business Machines Corporation Determining an end of valid log in a log of write records using a next pointer and a far ahead pointer
EP2482194B1 (en) 2009-09-25 2013-12-25 Fujitsu Limited Memory system and memory system control method
US8266501B2 (en) 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
JP5197544B2 (ja) 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
US8312349B2 (en) 2009-10-27 2012-11-13 Micron Technology, Inc. Error detection/correction based memory management
US8423866B2 (en) 2009-10-28 2013-04-16 SanDisk Technologies, Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
CN101699406B (zh) 2009-11-12 2011-12-14 威盛电子股份有限公司 数据储存系统与方法
US8335123B2 (en) 2009-11-20 2012-12-18 Sandisk Technologies Inc. Power management of memory systems
US8130553B2 (en) 2009-12-02 2012-03-06 Seagate Technology Llc Systems and methods for low wear operation of solid state memory
FR2953666B1 (fr) 2009-12-09 2012-07-13 Commissariat Energie Atomique Procede de codage ldpc a redondance incrementale
US8250380B2 (en) 2009-12-17 2012-08-21 Hitachi Global Storage Technologies Netherlands B.V. Implementing secure erase for solid state drives
TWI399645B (zh) 2010-01-15 2013-06-21 Silicon Motion Inc 管理記憶體讀出資料之方法以及記憶裝置
US8380915B2 (en) 2010-01-27 2013-02-19 Fusion-Io, Inc. Apparatus, system, and method for managing solid-state storage media
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
JP5788183B2 (ja) 2010-02-17 2015-09-30 三星電子株式会社Samsung Electronics Co.,Ltd. 不揮発性メモリ装置、それの動作方法、そしてそれを含むメモリシステム
US8213255B2 (en) 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
US8355280B2 (en) 2010-03-09 2013-01-15 Samsung Electronics Co., Ltd. Data storage system having multi-bit memory device and operating method thereof
US8438361B2 (en) 2010-03-10 2013-05-07 Seagate Technology Llc Logical block storage in a storage device
US8458417B2 (en) 2010-03-10 2013-06-04 Seagate Technology Llc Garbage collection in a storage device
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8164967B2 (en) 2010-03-24 2012-04-24 Apple Inc. Systems and methods for refreshing non-volatile memory
US8677055B2 (en) 2010-04-12 2014-03-18 Sandisk Enterprises IP LLC Flexible way of specifying storage attributes in a flash memory-based object store
US9183134B2 (en) 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
JP2011233114A (ja) 2010-04-30 2011-11-17 Toshiba Corp メモリシステム
EP2386958A1 (en) 2010-05-13 2011-11-16 Assa Abloy AB Method for incremental anti-tear garbage collection
US20110283119A1 (en) 2010-05-13 2011-11-17 GCCA Inc. System and Method for Providing Energy Efficient Cloud Computing
WO2011151750A2 (en) 2010-06-01 2011-12-08 Koninklijke Philips Electronics N.V. System and method for sequential application of power to electrical loads
WO2011153478A2 (en) 2010-06-04 2011-12-08 Flashsoft Corporation Cache management and acceleration of storage media
WO2012001917A1 (ja) 2010-06-29 2012-01-05 パナソニック株式会社 不揮発性記憶システム、メモリシステム用の電源回路、フラッシュメモリ、フラッシュメモリコントローラ、および不揮発性半導体記憶装置
US20120011393A1 (en) 2010-07-06 2012-01-12 Roberts Richard B Bios recovery
US8737141B2 (en) 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8531888B2 (en) 2010-07-07 2013-09-10 Marvell World Trade Ltd. Determining optimal reference voltages for progressive reads in flash memory systems
US8737136B2 (en) 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
KR101131560B1 (ko) 2010-07-15 2012-04-04 주식회사 하이닉스반도체 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
US20120023144A1 (en) 2010-07-21 2012-01-26 Seagate Technology Llc Managing Wear in Flash Memory
US8503238B1 (en) 2010-07-21 2013-08-06 Sk Hynix Memory Solutions Inc. Error recovery for flash memory
KR20120011642A (ko) 2010-07-29 2012-02-08 삼성전자주식회사 기준 셀을 포함하는 불휘발성 메모리 장치 및 그것의 기준 전류 설정 방법
US8832384B1 (en) 2010-07-29 2014-09-09 Violin Memory, Inc. Reassembling abstracted memory accesses for prefetching
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US8510499B1 (en) 2010-08-30 2013-08-13 Symantec Corporation Solid state drive caching using memory structures to determine a storage space replacement candidate
CN102385902A (zh) 2010-09-01 2012-03-21 建兴电子科技股份有限公司 固态储存装置及其数据控制方法
JP2012058860A (ja) 2010-09-06 2012-03-22 Toshiba Corp メモリシステム
US8417878B2 (en) 2010-09-20 2013-04-09 Seagate Technology Llc Selection of units for garbage collection in flash memory
WO2012051600A2 (en) 2010-10-15 2012-04-19 Kyquang Son File system-aware solid-state storage management system
US20120275466A1 (en) 2010-10-21 2012-11-01 Texas Instruments Incorporated System and method for classifying packets
EP2633409A4 (en) 2010-10-27 2014-07-23 Lsi Corp ADAPTIVE ECC TECHNIQUES FOR FLASH MEMORY AND BASED ON DATA STORAGE
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8909957B2 (en) 2010-11-04 2014-12-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamic voltage adjustment to computer system memory
US8806106B2 (en) 2010-11-12 2014-08-12 Seagate Technology Llc Estimating wear of non-volatile, solid state memory
US8484433B2 (en) 2010-11-19 2013-07-09 Netapp, Inc. Dynamic detection and reduction of unaligned I/O operations
KR101774496B1 (ko) 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
KR20120064462A (ko) 2010-12-09 2012-06-19 삼성전자주식회사 메모리 컨트롤러, 이의 오류정정 방법, 및 이를 포함하는 메모리 시스템
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
US9038066B2 (en) 2010-12-22 2015-05-19 Vmware, Inc. In-place snapshots of a virtual disk configured with sparse extent
US8849825B1 (en) 2010-12-23 2014-09-30 Amazon Technologies, Inc. System and method for clustering distributed hash table entries
TWI446345B (zh) 2010-12-31 2014-07-21 Silicon Motion Inc 用來進行區塊管理之方法以及記憶裝置及控制器
JP2012151676A (ja) 2011-01-19 2012-08-09 Jvc Kenwood Corp 復号装置および復号方法
US8364888B2 (en) 2011-02-03 2013-01-29 Stec, Inc. Erase-suspend system and method
US8489653B2 (en) 2011-02-08 2013-07-16 International Business Machines Corporation Incremental class unloading in a region-based garbage collector
US9251087B2 (en) * 2011-02-11 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for virtual memory management
US8966319B2 (en) 2011-02-22 2015-02-24 Apple Inc. Obtaining debug information from a flash memory device
JP2012181761A (ja) 2011-03-02 2012-09-20 Toshiba Corp 半導体メモリ装置および復号方法
US8909894B1 (en) 2011-03-16 2014-12-09 Tintri Inc. Automatically aligning virtual blocks to physical blocks
US8601036B2 (en) 2011-03-23 2013-12-03 International Business Machines Corporation Handling persistent/long-lived objects to reduce garbage collection pause times
US9047955B2 (en) 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US8909888B2 (en) 2011-04-29 2014-12-09 Seagate Technology Llc Secure erasure of data from a non-volatile memory
US8713380B2 (en) 2011-05-03 2014-04-29 SanDisk Technologies, Inc. Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US8745318B2 (en) 2011-06-28 2014-06-03 Seagate Technology Llc Parameter tracking for memory devices
US9378138B2 (en) 2011-06-29 2016-06-28 International Business Machines Corporation Conservative garbage collection and access protection
US8898373B1 (en) 2011-06-29 2014-11-25 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US8645773B2 (en) 2011-06-30 2014-02-04 Seagate Technology Llc Estimating temporal degradation of non-volatile solid-state memory
US9898402B2 (en) 2011-07-01 2018-02-20 Micron Technology, Inc. Unaligned data coalescing
US20130024735A1 (en) 2011-07-19 2013-01-24 Ocz Technology Group Inc. Solid-state memory-based storage method and device with low error rate
US8566667B2 (en) 2011-07-29 2013-10-22 Stec, Inc. Low density parity check code decoding system and method
US8692561B2 (en) 2011-08-11 2014-04-08 International Business Machines Corporation Implementing chip to chip calibration within a TSV stack
US20130047045A1 (en) 2011-08-19 2013-02-21 Stec, Inc. Error indicator from ecc decoder
US8934311B2 (en) 2011-09-06 2015-01-13 Samsung Electronics Co., Ltd. Semiconductor memory device capable of screening a weak bit and repairing the same
US8924631B2 (en) 2011-09-15 2014-12-30 Sandisk Technologies Inc. Method and system for random write unalignment handling
US9047210B2 (en) 2011-09-15 2015-06-02 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
KR20130031046A (ko) 2011-09-20 2013-03-28 삼성전자주식회사 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법
US8553468B2 (en) 2011-09-21 2013-10-08 Densbits Technologies Ltd. System and method for managing erase operations in a non-volatile memory
WO2013048485A1 (en) 2011-09-30 2013-04-04 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
US8825721B2 (en) 2011-10-03 2014-09-02 Oracle International Corporation Time-based object aging for generational garbage collectors
US8516019B2 (en) 2011-10-03 2013-08-20 Oracle America, Inc. Time-based object aging for generational garbage collectors
KR101522848B1 (ko) 2011-10-05 2015-05-26 엘에스아이 코포레이션 비휘발성 스토리지에 대한 셀프-저널링 및 계층적 일치성
US8711619B2 (en) 2011-10-18 2014-04-29 Seagate Technology Llc Categorizing bit errors of solid-state, non-volatile memory
WO2013057764A1 (en) 2011-10-19 2013-04-25 Hitachi, Ltd. Storage system
CN103748564B (zh) 2011-10-28 2016-06-29 株式会社日立制作所 存储系统及对象管理方法
US10359949B2 (en) 2011-10-31 2019-07-23 Apple Inc. Systems and methods for obtaining and using nonvolatile memory health information
US8683297B2 (en) 2011-11-02 2014-03-25 Sandisk Technologies Inc. Systems and methods of generating a replacement default read threshold
JP5943395B2 (ja) 2011-11-02 2016-07-05 国立大学法人 東京大学 メモリコントローラおよびデータ記憶装置
US9053809B2 (en) 2011-11-09 2015-06-09 Apple Inc. Data protection from write failures in nonvolatile memory
US8456919B1 (en) 2011-11-10 2013-06-04 Sandisk Technologies Inc. Method and apparatus to provide data including hard bit data and soft bit data to a rank modulation decoder
US9081663B2 (en) 2011-11-18 2015-07-14 Stec, Inc. Optimized garbage collection algorithm to improve solid state drive reliability
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US9274945B2 (en) 2011-12-15 2016-03-01 International Business Machines Corporation Processing unit reclaiming requests in a solid state memory device
US8830746B2 (en) 2011-12-28 2014-09-09 Apple Inc. Optimized threshold search in analog memory cells using separator pages of the same type as read pages
JP2013142947A (ja) 2012-01-10 2013-07-22 Sony Corp 記憶制御装置、記憶装置および記憶制御装置の制御方法
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
WO2013112332A1 (en) 2012-01-24 2013-08-01 Apple Inc. Enhanced programming and erasure schemes for analog memory cells
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US8964482B2 (en) 2012-01-30 2015-02-24 Freescale Semiconductor, Inc. Dynamic healing of non-volatile memory cells
US9208871B2 (en) 2012-01-30 2015-12-08 HGST Netherlands B.V. Implementing enhanced data read for multi-level cell (MLC) memory using threshold voltage-drift or resistance drift tolerant moving baseline memory data encoding
US9679664B2 (en) 2012-02-11 2017-06-13 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
US8832050B2 (en) 2012-03-09 2014-09-09 Hewlett-Packard Development Company, L.P. Validation of distributed balanced trees
US8817569B2 (en) 2012-03-19 2014-08-26 Sandisk Technologies Inc. Immunity against temporary and short power drops in non-volatile memory
US20130290611A1 (en) 2012-03-23 2013-10-31 Violin Memory Inc. Power management in a flash memory
JP5853899B2 (ja) 2012-03-23 2016-02-09 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US9311501B2 (en) 2012-03-26 2016-04-12 International Business Machines Corporation Using different secure erase algorithms to erase chunks from a file associated with different security levels
US8923066B1 (en) 2012-04-09 2014-12-30 Sk Hynix Memory Solutions Inc. Storage of read thresholds for NAND flash storage using linear approximation
US8990477B2 (en) 2012-04-19 2015-03-24 Sandisk Technologies Inc. System and method for limiting fragmentation
US20130343131A1 (en) 2012-06-26 2013-12-26 Lsi Corporation Fast tracking for flash channels
US20130297613A1 (en) 2012-05-04 2013-11-07 Monmouth University Indexing based on key ranges
US8634267B2 (en) 2012-05-14 2014-01-21 Sandisk Technologies Inc. Flash memory chip power management for data reliability and methods thereof
US8605502B1 (en) 2012-05-22 2013-12-10 Sandisk Technologies Inc. Systems and methods of updating read voltages
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US20130346672A1 (en) 2012-06-22 2013-12-26 Microsoft Corporation Multi-Tiered Cache with Storage Medium Awareness
US9529724B2 (en) 2012-07-06 2016-12-27 Seagate Technology Llc Layered architecture for hybrid controller
CN102789427B (zh) 2012-07-17 2015-11-25 威盛电子股份有限公司 数据储存装置与其操作方法
KR101997079B1 (ko) 2012-07-26 2019-07-08 삼성전자주식회사 가변 저항 메모리를 포함하는 저장 장치 및 그것의 동작 방법
US9002791B2 (en) * 2012-08-28 2015-04-07 Hewlett-Packard Development Company, L. P. Logging modifications to a variable in persistent memory
KR20140028481A (ko) 2012-08-29 2014-03-10 에스케이하이닉스 주식회사 쓰기 전류를 측정할 수 있는 반도체 메모리 장치 및 쓰기 전류 측정 방법
US8874992B2 (en) 2012-08-31 2014-10-28 Sandisk Technologies Inc. Systems and methods to initiate updating of reference voltages
US9329986B2 (en) 2012-09-10 2016-05-03 Sandisk Technologies Inc. Peak current management in multi-die non-volatile memory devices
US20140071761A1 (en) 2012-09-10 2014-03-13 Sandisk Technologies Inc. Non-volatile storage with joint hard bit and soft bit reading
US8886882B2 (en) 2012-09-14 2014-11-11 Hitachi, Ltd. Method and apparatus of storage tier and cache management
US8938656B2 (en) 2012-09-14 2015-01-20 Sandisk Technologies Inc. Data storage device with intermediate ECC stage
US9329948B2 (en) 2012-09-15 2016-05-03 Seagate Technology Llc Measuring cell damage for wear leveling in a non-volatile memory
US9128690B2 (en) 2012-09-24 2015-09-08 Texas Instruments Incorporated Bus pin reduction and power management
US10489295B2 (en) 2012-10-08 2019-11-26 Sandisk Technologies Llc Systems and methods for managing cache pre-fetch
US9268709B2 (en) 2012-10-18 2016-02-23 Marvell International Ltd. Storage controllers and storage control methods
JP5965541B2 (ja) 2012-10-31 2016-08-10 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
US8634248B1 (en) 2012-11-09 2014-01-21 Sandisk Technologies Inc. On-device data analytics using NAND flash based intelligent memory
US8817541B2 (en) 2012-11-09 2014-08-26 Sandisk Technologies Inc. Data search using bloom filters and NAND based content addressable memory
US8930778B2 (en) 2012-11-15 2015-01-06 Seagate Technology Llc Read disturb effect determination
US8949544B2 (en) 2012-11-19 2015-02-03 Advanced Micro Devices, Inc. Bypassing a cache when handling memory requests
US9183945B2 (en) 2012-11-30 2015-11-10 Sandisk Technologies Inc. Systems and methods to avoid false verify and false read
US9063946B1 (en) 2012-12-14 2015-06-23 Amazon Technologies, Inc. Backoff-based scheduling of storage object deletions
US9002805B1 (en) 2012-12-14 2015-04-07 Amazon Technologies, Inc. Conditional storage object deletion
US9417917B1 (en) 2012-12-14 2016-08-16 Amazon Technologies, Inc. Equitable resource allocation for storage object deletion
US9052942B1 (en) 2012-12-14 2015-06-09 Amazon Technologies, Inc. Storage object deletion job management
US9355060B1 (en) 2012-12-14 2016-05-31 Amazon Technologies, Inc. Storage service lifecycle policy transition management
US9104532B2 (en) 2012-12-14 2015-08-11 International Business Machines Corporation Sequential location accesses in an active memory device
US9135185B2 (en) 2012-12-23 2015-09-15 Advanced Micro Devices, Inc. Die-stacked memory device providing data translation
US8869008B2 (en) 2013-01-17 2014-10-21 Apple Inc. Adaptation of analog memory cell read thresholds using partial ECC syndromes
KR20140100330A (ko) 2013-02-06 2014-08-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
DE102013101863A1 (de) 2013-02-26 2014-08-28 Fujitsu Technology Solutions Intellectual Property Gmbh Hochverfügbares Hauptspeicher-Datenbanksystem, Arbeitsverfahren und deren Verwendungen
US9383795B2 (en) 2013-03-10 2016-07-05 Seagate Technololgy Llc Storage device power failure infrastructure
US9817835B2 (en) 2013-03-12 2017-11-14 Tintri Inc. Efficient data synchronization for storage containers
US9042181B2 (en) 2013-03-15 2015-05-26 SanDisk Technologies, Inc. Periodic erase operation for a non-volatile medium
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9378830B2 (en) 2013-07-16 2016-06-28 Seagate Technology Llc Partial reprogramming of solid-state non-volatile memory cells
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9304928B2 (en) 2013-07-26 2016-04-05 Netapp, Inc. Systems and methods for adaptive prefetching
US9531038B2 (en) 2013-07-31 2016-12-27 Dell Products, Lp System and method of cell block voltage analytics to improve balancing effectiveness and identify self-discharge rate
US9329789B1 (en) 2013-10-14 2016-05-03 Marvell International Ltd. Methods and apparatus for efficiently operating on a storage device
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9471497B2 (en) 2014-01-24 2016-10-18 Netapp, Inc. Methods for combining access history and sequentiality for intelligent prefetching and devices thereof
TWI533308B (zh) 2014-03-21 2016-05-11 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US9274713B2 (en) 2014-04-03 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Device driver, method and computer-readable medium for dynamically configuring a storage controller based on RAID type, data alignment with a characteristic of storage elements and queue depth in a cache

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103329117A (zh) * 2011-01-25 2013-09-25 日本电气株式会社 信息处理设备、信息处理系统、信息处理方法和信息处理程序

Also Published As

Publication number Publication date
DE112014005266T5 (de) 2016-09-22
US20150142860A1 (en) 2015-05-21
US9703816B2 (en) 2017-07-11
CN106255953A (zh) 2016-12-21
WO2015077186A1 (en) 2015-05-28
DE112014005266B4 (de) 2023-05-04

Similar Documents

Publication Publication Date Title
CN106255953B (zh) 持久性数据存储体中的前向参考记录的方法和系统
US11481121B2 (en) Physical media aware spacially coupled journaling and replay
JP5192587B2 (ja) メモリシステムのコピーバック最適化
US9430329B2 (en) Data integrity management in a data storage device
CN105637490B (zh) 用于在闪速存储器装置之间迁移数据的方法和系统
TWI645404B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
US10489289B1 (en) Physical media aware spacially coupled journaling and trim
CN108073357B (zh) 以raid方式存储数据的存储装置
US8886884B2 (en) System and method for increasing read and write speeds of hybrid storage unit
US9990146B2 (en) Apparatus and method of data sequencing
CN109840049A (zh) 数据管理方法和执行其的操作的储存设备
CN107077427A (zh) 跨电源周期来跟踪对写入命令和解除映射命令的混合
CN106716395B (zh) 事务处理的方法、装置及计算机系统
CN110032521A (zh) 用于增强闪存转换层映射灵活性以得到性能和寿命改进的方法和系统
US11429498B2 (en) System and methods of efficiently resyncing failed components without bitmap in an erasure-coded distributed object with log-structured disk layout
US10754555B2 (en) Low overhead mapping for highly sequential data
US10089255B2 (en) High performance host queue monitor for PCIE SSD controller
CN109992202A (zh) 数据存储设备、其操作方法以及包括其的数据处理系统
CN105302665A (zh) 一种改进的写时拷贝快照方法及系统
CN109725850A (zh) 存储器系统和存储设备
US11379318B2 (en) System and method of resyncing n-way mirrored metadata on distributed storage systems without requiring checksum in the underlying storage
CN108780424A (zh) 提供用于动态随机存取存储器dram高速缓存标记的空间高效存储
US10613973B1 (en) Garbage collection in solid state drives
US11403189B2 (en) System and method of resyncing data in erasure-coded objects on distributed storage systems without requiring checksum in the underlying storage
US11182250B1 (en) Systems and methods of resyncing data in erasure-coded objects with multiple failures

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