CN104969168B - 具有用于分级写入的nvram的持久性存储装置 - Google Patents

具有用于分级写入的nvram的持久性存储装置 Download PDF

Info

Publication number
CN104969168B
CN104969168B CN201380072287.2A CN201380072287A CN104969168B CN 104969168 B CN104969168 B CN 104969168B CN 201380072287 A CN201380072287 A CN 201380072287A CN 104969168 B CN104969168 B CN 104969168B
Authority
CN
China
Prior art keywords
nvram
persistent storage
data
storage
specified
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
CN201380072287.2A
Other languages
English (en)
Other versions
CN104969168A (zh
Inventor
J.乔治
A.奥尔布里奇
B.奥克拉夫卡
D.丁克
P.奇尤
E.弗索夫
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 Corp
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 CN104969168A publication Critical patent/CN104969168A/zh
Application granted granted Critical
Publication of CN104969168B publication Critical patent/CN104969168B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种持久性存储装置包括持久性存储器和NVRAM、特别是一组NVRAM块,该持久性存储器包括一组持久性存储块。该持久性存储装置通常还包括存储控制器。该持久性存储装置除了响应于将数据直接写入持久性存储块以及直接从持久性存储块读取数据的命令以外,还配置为将数据写入指定的NVRAM块(例如,由主机NVRAM写入命令所指定的)并且配置为将数据从指定的NVRAM块转移至指定的持久性存储块。结果,向特定的持久性存储块的多次写入能够被向NVRAM块的多次写入以及向该特定的持久性存储块的随后的单次写入所替代。这减少了向持久性存储器的写入次数,还减少了相应的块擦除操作的次数。

Description

具有用于分级写入的NVRAM的持久性存储装置
技术领域
公开的实施例总体上涉及持久性存储装置。
背景技术
众所周知,闪存装置以及至少一些其它类型的基于半导体的持久性存储装置具有有限的耐久性。例如,闪存单元的各种实现方式对在那些闪存单元的可靠性低于可接受的水平(例如,相关联的比特错误率高于使用与数据一起存储的错误校正信息所能够校正的水平)之前可以进行的块擦除循环的数量具有实际限制。
本文所描述的实施例提供了用于减少向持久性存储器的写入并且由此提高这些装置的实际使用寿命的机制和方法。
发明内容
在本公开中,一种持久性存储装置包括持久性存储器(persistent storage)和NVRAM、特别是一组NVRAM块两者,该持久性存储器包括一组持久性存储块。该持久性存储装置通常还包括存储控制器。该持久性存储装置除了响应于将数据直接写入持久性存储块以及将数据直接从持久性存储块读取的命令以外,还配置为将数据写入指定的NVRAM块(例如,由主机NVRAM写入命令指定的)并且配置为将数据从指定的NVRAM块转移至指定的持久性存储块。因此,向特定的持久性存储块的多次写入能够被向NVRAM块的多次写入以及向该特定的持久性存储块的随后单次写入所替代。这减少了向持久性存储器的写入次数,还减少了相应的块擦除操作的次数。此外,改善了持久性存储装置的性能在于:与向闪存写入相同的数据量相比,向NVRAM的写入更快并且消耗更少的能量。
附图说明
图1是示出根据一些实施例的包括持久性存储装置和外部主机装置的系统的框图。
图2A是根据一些实施例的NVRAM和持久性存储器的示意图。
图2B是示出根据一些实施例的示例性NVRAM的框图。
图3A-图3D是示出根据一些实施例的由持久性存储装置对主机命令的处理的流程图。
图4A和图4B示出了根据一些实施例的用于管理具有持久性存储器和NVRAM两者的持久性存储装置的处理的流程图。
在所有附图中,相似的参考标记指代相应的部件。
具体实施方式
在一些实现方式中,主机装置使用写操作序列多次向持久性存储装置写入数据,在该写操作序列期间数据中的一些被重复地写入单个持久性存储块或少数的存储块。例如,应用可能将日志记录的序列写入持久性存储器。在该示例中,每个日志记录远远小于持久性存储装置(这里称作持久性存储块)中的可擦除数据存储的最小单元,并且日志记录被存储到与持久性存储装置相关联的顺序逻辑地址。结果,将该日志记录的序列直接写入持久性存储器导致对同一持久性存储块的多次写入。每次这样的写入实际上需要多个内部操作,包括将逻辑地址重新映射至可用的持久性存储块、将数据存储到新分配的持久性存储块、以及擦除先前使用的持久性存储块。反而,如果要被存储到任意一个持久性存储块的所有日志记录全部一次被写入该持久性存储块,则持久性存储装置上的“磨损”量将减少。
在本公开中,持久性存储装置包括持久性存储器和NVRAM,该持久性存储器包括一组持久性存储块,并且该NVRAM包括一组NVRAM块。持久性存储装置还包括存储控制器,该存储控制器配置为从外部主机装置接收命令并且进一步配置为:响应于主机NVRAM写入命令,将数据写入指定的NVRAM块;响应于转移命令,将指定的NVRAM块中的数据转移至相应的持久性存储块中;响应于主机持久性存储器写入命令,将数据写入指定的持久性存储块;以及响应于主机持久性存储器读取命令,从指定的持久性存储块取回数据。
在一些实施例中,持久性存储装置被实现为单个的单片集成电路。在一些实施例中,持久性存储器包括闪存,并且NVRAM包括从由EPROM、EEPROM、电池备援的(batterybacked)SRAM、电池备援的DRAM、超级电容器备援的DRAM、铁电RAM、磁阻RAM以及相变RAM组成的组中选择的非易失性存储器。在一些实施例中,持久性存储装置进一步包用于将持久性存储装置与外部主机装置的存储器控制器通过接口连接的主机接口。可选择地,存储控制器进一步被配置为通过从指定的NVRAM块取回数据来对主机NVRAM读取命令进行响应。在一些实施例中,逻辑块地址与指定的NVRAM块相关联,并且相应的持久性存储块与逻辑块地址相对应。
在一些实施例中,存储控制器进一步被配置为通过将由主机命令指定的逻辑块地址与指定的NVRAM块相关联地存储来对相应的主机命令进行响应。在一些实施例中,NVRAM的预定的一部分存储一个或多个逻辑块地址,每个逻辑块地址与各自的NVRAM块相关联。在一些实施例中,逻辑块地址与指定的NVRAM块相关联,并且相应的持久性存储块由存储控制器使用逻辑块地址至物理地址映射来识别。在一些实施例中,转移命令包括第一预定转移命令,并且存储控制器进一步被配置为通过将在由第二预定转移命令所指定的持久性存储块中的数据存储到由第二预定转移命令所指定的NVRAM块中来对该第二预定转移命令进行响应。
在本公开的另一方面,提供了用于管理持久性存储装置的方法。在一些实施例中,该方法在包括持久性存储器和NVRAM的持久性存储装置处进行。持久性存储器包括一组持久性存储块,并且NVRAM包括一组NVRAM块。该方法包括:从外部主机装置接收命令;响应于主机NVRAM写入命令,将数据存储到指定的NVRAM块;响应于转移命令,将在由转移命令所指定的NVRAM块中的数据存储到相应的持久性存储块;响应于主机持久性存储器写入命令,将数据存储到指定的持久性存储块;以及响应于主机持久性存储器读取命令,从指定的持久性存储块取回数据。
在一些实施例中,该方法进一步包括:在持久性存储装置处,在从由存储到指定的NVRAM块的数据量达到预定阈值以及数据被存储到指定的NVRAM块的预定部分所组成的集合中选择的预定触发条件出现时,自动将数据从NVRAM转移至持久性存储器。在一些实施例中,该方法进一步包括在外部主机装置的控制下:在掉电之后,从NVRAM读取一组逻辑块地址、包括与该组NVRAM块中的每个NVRAM块相关联的逻辑块地址(如果有的话);以及将数据从具有相关联的逻辑块地址的每个NVRAM块复制到与该相关联的逻辑块地址相对应的持久性存储块。
在本公开的另一方面,在持久性存储装置外部的主机装置处进行用于将数据存储到持久性存储装置的方法。该方法包括发出多个NVRAM写入命令以将数据写入持久性存储装置中的NVRAM的指定块中。持久性存储装置包括持久性存储器和NVRAM,该持久性存储器包括一组持久性存储块,并且该NVRAM包括一组NVRAM块,该组NVRAM块包括NVRAM的指定块。该方法进一步包括发出预定转移命令,指示持久性存储装置将在指定的NVRAM块中的数据存储到相应的持久性存储块;以及发出读取命令,指示持久性存储装置从与指定的NVRAM块相对应的持久性存储块中取回数据,并将从与指定的NVRAM块相对应的持久性存储块所取回的数据传送至主机装置。
现在将详细参考各个实施例,在附图中示出了各个实施例的示例。在下文的详细描述中,对很多具体细节进行阐述,以便提供对所公开的实施例的透彻理解。然而,可选地,没有这些具体细节而实践所公开的实施例。在其它实例中,并未对公知的方法、过程、组件以及电路进行详细描述,以便不必要地模糊各实施例的方面。
图1是示出根据一些实施例的包括持久性存储装置106和外部主机装置102(本文有时称作主机102)的系统100的框图。为了方便,在本文中,主机102被描述为作为单个服务器或其它单个计算机而实现。主机102包括一个或多个处理单元(CPU)104、一个或多个存储器(memory)接口107、存储器108、以及一条或多条用于将这些组件相互连接的通信总线110。可选择地,通信总线110包括在系统组件之间相互连接并且控制系统组件之间的通信的电路(有时称为芯片组)。存储器108包括高速随机存取存储器,比如DRAM、SRAM、DDR RAM或者其它随机存取固态存储装置;并且,可选择地,包括非易失性存储器,比如一个或多个磁盘存储装置、光盘存储装置、闪存装置、或其它非易失性固态存储装置。此外,可选择地,存储器108包括一个或多个位于远离CPU 104处的存储装置。存储器108、或者替代地存储器108内的非易失性存储装置包括非易失性计算机可读存储介质。在一些实施例中,存储器108或存储器108的非易失性计算机可读存储介质存储以下程序、模块以及数据结构、或它们的子集:
·操作系统112,包括用于处理各种基本系统服务以及用于进行依赖于硬件的任务的程序;
·一个或多个应用114,被配置为(或者包括指令用来)使用存储器访问功能116和NVRAM访问功能118来向持久性存储装置106提交读取命令和写入命令;
·存储器访问功能116,用于对持久性存储装置106的持久性存储器102进行读取和写入;
·NVRAM访问功能118,用于对持久性存储装置106的NVRAM 122进行读取和写入,以及用于将数据从NVRAM 122转移至持久性存储器120;以及
·数据119,例如由应用114之一使用的或与应用114之一相关联的数据;可选择地,数据119包括要被写到持久性存储装置106中的NVRAM 122或持久性存储器120的写入数据和/或已经从持久性存储装置106的NVRAM122或持久性存储器120取回的读取数据。
诸如NVRAM访问功能118以及存储器访问功能116的前述主机功能中的每个功能被配置为由主机102的一个或多个处理器(CPU)104来执行,以便进行相关联的存储器存取任务或关于持久性存储装置106中的NVRAM122和/或持久性存储器120的功能。
在一些实施例中,主机102经由主机102的存储器接口107以及持久性存储装置的主机接口126与持久性存储装置106连接。主机102直接地或通过诸如因特网、其它广域网、局域网、城域网、无线网、或这些网络的任意组合的通信网络(未示出)与持久性存储装置106连接。可选择地,在一些实现方式中,主机102与多个持久性存储装置106连接,图1中仅示出了其中一个持久性存储装置106。
在一些实施例中,持久性存储装置106包括持久性存储器120、NVRAM122、一个或多个主机接口126、以及存储控制器124。存储控制器124包括一个或多个处理单元(CPU)128、存储器130、以及一条或多条用于将这些组件相互连接的通信总线132。在一些实施例中,通信总线132包括在系统组件之间相互连接并且控制系统组件之间的通信的电路(有时称作芯片组)。存储器130包括高速随机存取存储器,比如DRAM、SRAM、DDR RAM或其它随机存取固态存储器装置;以及可选择地,包括非易失性存储器,比如一个或多个磁盘存储装置、光盘存储装置、闪存装置、或其它非易失性固态存储装置。可选择地,存储器130包括一个或多个位于远离CPU 128处的存储装置。存储器130、或者替代地在存储器130内的非易失性存储器装置包括非易失性计算机可读存储介质。在一些实施例中,存储器130存储以下程序、模块以及数据结构、或它们的子集:
主机接口功能133,包括用于处理经由持久性存储装置106的主机接口126从主机102发送的且由持久性存储装置106接收的命令;
NVRAM功能134,用于处理由主机102发出的NVRAM存取功能调用;NVRAM功能134包括用以将数据写入一个或多个指定的NVRAM块的功能136、用以将数据从NVRAM块转移至持久性存储块的功能138、以及可选择地包括用以从NVRAM块读取数据的功能140和用以将数据从指定的持久性存储块转移至NVRAM块的功能142;
存储器(快闪)功能144,用于处理由主机102发出的持久性存储器存取功能调用;存储器功能144包括用以将数据写入一个或多个指定的持久性存储块的功能146以及用以从一个或多个指定的持久性存储块读取数据的功能148;
一个或多个地址翻译功能150,用以将逻辑块地址翻译成物理地址;以及
一个或多个地址翻译表152,用以存储逻辑至物理地址映射信息。
前述的存储控制器功能中的每个功能、比如NVRAM功能134以及存储器功能144被配置为由存储控制器124的一个或多个处理器(CPU)128来执行,以便进行相关联的任务或者关于NVRAM 122、持久性存储器120、或者这两者的功能。
地址翻译功能150与地址翻译表152一起实现逻辑块地址(LBA)至物理地址(PHY)映射,在图2中示出为LBA至PHY映射206。
如本文所使用的,术语“NVRAM”是指与包括被用于持久保存(persist)少量数据的持久性存储器120的这类存储器不同的任意类型的非易失性存储器。在一些实现方式中,NVRAM是从由EPROM、EEPROM、电池备援的SRAM、电池备援的DRAM、超级电容器备援的DRAM、铁电RAM、磁阻RAM以及相变RAM组成的组中选择的非易失性存储器。超级电容器有时也被称作电双层电容器(EDLS)、电化学双层电容器、或超级电容。
如本文所使用的,术语“持久性存储器”是指与包括用作大容量存储器或二级存储器的NVRAM的这类存储器不同的任意类型的持久性存储器。在一些实施例中,持久性存储器是闪存。
在一些实现方式中,持久性存储器120包括一组持久性存储块,并且NVRAM 122包括一组NVRAM块。在一些实现方式中,NVRAM块具有与持久性存储块相同的大小。此外,在一些实现方式中,NVRAM块的数量(例如64、1024等)远远小于持久性存储块的数量(例如,数百万至数十亿等)。在一些实现方式中,一个或多个NVRAM块被用于存储与其它NVRAM块相对应的元数据。在一个示例中,第一个或最后一个NVRAM块被用于存储对于已经由主机102将数据写到的每个NVRAM块的逻辑块地址。
在一些实施例中,由主机102使用上文所述的NVRAM存取功能118发出的功能调用被实现为功输入/输出控制(ioctl)功能调用,例如在Unix或Linux下那样,或者在其它操作系统中实现的类似的功能调用。
由主机102发出的将数据(例如,在主机102的存储器(memory)108中所存储的数据119)写入一个或多个NVRAM块的、用于启用(invoke)持久性存储装置106中的向NVRAM块写入功能136的功能调用的示例由以下给出:
sio_host_to_nvram(fd,buf,nvseek,size),
其中fd是指特定的存储装置106,buf是指主机102上的存储器108中的、包含要被写入的数据的位置,nvseek是指NVRAM 122中的、该数据要被写到的起始位置,并且size是指要被写入的数据量。在一些实现方式中,起始位置nvseek是NVRAM 122中的任意字节边界位置,并且size是指要从主机102写入NVRAM 122的字节数。在一些实现方式中,nvseek和size中的一者或两者可能需要与一个字(word)或两个字或其它这种边界对齐。在一些实现方式中,由主机102发出多个连续的功能调用以将连续的数据组写入NVRAM 122中的同一NVRAM块。
由主机102发出的从一个或多个NVRAM块读取数据的、用于启用持久性存储装置106中的从NVRAM块的读取功能140的功能调用的示例由以下给出:
sio_nvram_to_host(fd,nvseek,buf,size),
其中fd是指特定的存储装置106,nvseek是指NVRAM中的、要从其读取数据的起始位置,buf是指主机102上的存储器108中的、读取的数据要被存储到的位置,并且size是指要读取的数据量。与由主机102发出的将数据写入一个或多个NVRAM块的功能调用相似,在一些实现方式中,由主机102发出的从一个或多个NVRAM块读取数据的功能调用被用于读取小于一个NVRAM块的数据量。在一些实现方式中,起始位置nvseek是NVRAM 122中的任意字节边界位置,并且size是指要从NVRAM 122写到主机102的字节数。在一些实现方式中,nvseek和size中的一者或两者可能需要与一个字或两个字或其它这种边界对齐。
由主机102发出的将数据从一个或多个NVRAM块转移至一个或多个持久性存储块的、用以启用持久性存储装置106中的从NVRAM块向持久性存储块的转移功能138由以下给出:
sio_nvram_to_media(fd,nvseek,pmseek,size),
其中fd是指特定的存储装置106,nvseek是指NVRAM中的、要从其转移数据的起始位置,pmseek是指持久性存储器中的、该数据要被转移至的起始位置,并且size是指要被转移的数据量。在一些实现方式中,起始位置pmseek是逻辑块地址,并且size是指要被转移的数据的NVRAM块的整数的数量。
在一些实施例中,在sio_nvram_to_media功能调用中,尺寸参数被限制为指定一些块,pmseek参数识别逻辑块地址(LBA),并且nvseek参数识别NVRAM块(例如,识别NVRAM块的起点)。因此,在这些实施例中,由主机102使用sio_nvram_to_media功能调用来将在一个或多个NVRAM块中存储的数据转移至指定的持久性存储块。
在一些实施例中,从NVRAM块转移至持久性存储块的数据并不由存储控制器124从NVRAM块自动删除。而是,仅当从主机102接收到明确的命令(例如,擦除或覆写NVRAM块的命令)时,这种数据才被删除。替代地,在一些实现方式中,从NVRAM块转移至持久性存储块的数据由存储控制器124从NVRAM块中自动删除。
以上所识别的模块、应用或程序中的每个与可由主机102或持久性存储装置106的一个或多个处理器执行的、用于进行上文所述的功能的指令集相对应。上文所识别的模块、应用或程序(即,指令集)不需要被实现为单独的软件程序、进程或模块,因此,在不同的实施例中可以将这些模块的不同子集组合或另外重新排列。在一些实施例中,可选择地,存储器108或存储器130存储上文所识别的模块和数据结构的子集。此外,在一些实现方式中,可选择地,存储器108或存储器130存储上文没有描述的另外的模块和数据结构。
尽管图1示出了包括主机102和持久性存储装置106的系统100,然而与本文所描述的实施例的结构示意图相比,图1更意在作为可以存在于一组服务器中的各种特征的功能性描述。在实践中,并且如由本领域普通技术人员所知晓的,单独示出的项可以被合并且一些项可以被分离。
图2A是根据一些实施例的NVRAM 122和持久性存储器120的示意图。如图2A中所示,NVRAM 122包含已经被存储在NVRAM块202中的数据。在一些实施例中,NVRAM 122还包含用于存储一个或多个逻辑块地址的预定部分204,部分204中的每个逻辑块地址与各自的NVRAM块202相对应并且还与持久性存储器120中的各自的持久性存储块208相对应。在持久性存储装置106接收到转移命令之后,为了将在指定的NVRAM块中的数据转移至相应的持久性存储块(例如,启用从NVRAM块向PS块的转移功能138的命令),存储控制器124从由该转移命令指定的NVRAM块202取回数据,并且将该数据存储到与由该转移命令所指定的逻辑块地址相对应的持久性存储块208。使用地址翻译功能150以及地址翻译表152通过LBA至PHY映射206,逻辑块地址被映射至物理地址。
在一些实施例中,从主机102接收到的转移命令是上文所述的sio_nvram_to_media命令的实例。
在一些实施例中,一旦数据从NVRAM块转移至持久性存储块(例如,响应于来自外部主机装置102的将数据从NVRAM块转移至指定的持久性存储块的命令),数据的复制本(copy)保持在NVRAM块中,直到响应于来自主机102的明确命令,该备份被新数据覆写或者被删除为止。在其它实施例中,一旦数据从NVRAM块转移至持久性存储块,不用从主机102接收任何额外的命令,NVRAM块中的数据由持久性存储装置106自动擦除。
类似地,在一些实现方式中,一旦数据从持久性存储块转移至NVRAM块(例如,响应于来自外部主机装置102的将数据从指定的持久性存储块转移至NVRAM块的命令),数据的复制本保持在持久性存储块中,直到响应于来自主机102的明确命令,该备份被新数据覆写或者持久性存储块中的数据被删除为止。在其它实现方式中,一旦数据从持久性存储块转移至NVRAM块,不用从主机102接收任何额外的命令,持久性存储块中的数据由持久性存储装置106擦除。
图2B是示出根据一些实施例的示例性NVRAM 122的框图。NVRAM 122由电压源210供电。如上所述,NVRAM 122的一些实施方式包括电池或电容器212,用于如果电压源210变得不可用时为NVRAM 122提供替代电源或备用电源的,从而保护NVRAM块202中的数据。在其中使用在断电时保留数据的非易失性存储器来实现NVRAM 122的一些其它实现方式中,不需要电池/电容器212,因此电池/电容器212不包括在NVRAM 122中。
图3A至图3D是示出根据一些实施例的由持久性存储装置106对从主机102接收的主机命令的处理的流程图。参照图1,在一些实现方式中,由持久性存储装置106经由主机接口126从主机102接收主机命令。在一些实现方式中,主机命令是当应用114启用存储器存取功能116和/或NVRAM存取功能118时由主机102发出的功能调用,以便从持久性存储装置106读取数据或向持久性存储装置106写入数据。
图3A示出了NVRAM写入命令的处理。首先,主机102发出(302)将数据写入一个或多个NVRAM块的NVRAM写入命令。在一些实施例中,当应用114执行NVRAM存取功能118中的相应一个功能时,由主机102发出NVRAM写入命令,例如sio_host_to_nvram(fd,buf,nvseek,size)。然后,持久性存储装置106接收NVRAM写入命令(304)。然后,持久性存储装置106的存储控制器124将写入的数据存储到由NVRAM写入命令所指定的NVRAM块(306)。在一些实施例中,存储控制器124通过执行功能136来存储写入的数据,以便将数据写到一个或多个指定的NVRAM块。
图3B示出了转移命令的处理。首先,主机102发出(308)将数据从一个或多个NVRAM块转移至一个或多个持久性存储块的转移命令。在一些实施例中,当应用114执行NVRAM存取功能118中的相应一个功能时,由主机102发出转移命令,例如sio_nvram_to_media(fd,nvseek,pmseek,size)。持久性存储装置106从主机102接收(310)该转移命令。该转移命令指定数据要被写到的持久性存储块。具体地,在一些实现方式中,转移命令指定逻辑地址,通常该逻辑地址称为逻辑块地址,如上所述,存储控制器124使用逻辑块地址至物理地址映射206来将该逻辑地址映射至持久性存储块,从而识别(312)数据要被写到的持久性存储块。响应于所接收的命令,持久性存储装置106将来自指定的NVRAM块的数据存储(314)至由转移命令所指定的持久性存储块。
在一些实施例中,持久性存储装置106被配置为处理指定从一个或多个持久性存储块向一个或多个NVRAM块的数据转移的转移命令。例如,主机102可以发出sio_media_to_nvram(fd,pmseek,nvseek,size)ioctl调用,以便发出这种命令。响应于接收这种转移命令,存储控制器124启用转移功能142的执行,以便将数据从指定的持久性存储块转移至NVRAM块。在一些实现方式中,转移功能142的执行包括:使用逻辑地址至物理地址映射206来识别从其转移数据的持久性存储块、从所识别的持久性存储块读取数据、以及将该数据存储到指定的NVRAM块。
在一些其它实施例中,通过首先如下文参照图3D所述的发出持久性存储器读取命令,然后如上文参照图3A所述的发出随后的NVRAM写入命令来完成从持久性存储器向NVRAM的数据转移。
图3C示出了持久性存储器写入命令的处理。主机102发出(308)将数据写入一个或多个持久性存储块的持久性存储器写入命令。在一些实施例中,当应用144执行存储器存取功能116中的相应一个功能时,由主机102发出持久性存储器写入命令。持久性存储装置106接收(318)该持久性存储器写入命令。响应于该持久性存储器写入命令,持久性存储装置106使用逻辑块地址至物理地址映射(例如,映射206)将接收的命令中的逻辑地址映射至物理地址来识别(320)该数据要被写到的持久性存储块。接下来,持久性存储装置106将写入的数据存储(322)到所识别的持久性存储块。
图3D示出了持久性存储器读取命令的处理。主机102发出(324)从一个或多个持久性存储块读取数据的持久性存储器读取命令。在一些实施例中,当应用114执行存储器存取功能116的相应一个功能时,由主机102发出持久性存储器读取命令。持久性存储装置106接收(326)持久性存储器读取命令。响应于持久性存储器读取命令,持久性存储装置106使用逻辑块地址至物理地址映射(例如,映射206)将接收的命令中的逻辑地址映射至物理地址来识别(328)要从其读取数据的持久性存储块。接下来,存储装置106从所识别的持久性存储块取回(330)数据。在一些实施例中,存储控制器124从所识别的持久性存储块取回读取的数据并且经由主机接口126将该数据返回至主机102。更具体地,在一些实施例中,持久性存储装置106的存储控制器124从一个或多个指定的持久性存储块读取数据并将所读取的数据返回至主机102,在主机102中,所读取的数据被存储于存储器108中(例如,图1中的数据119)。
图4A和图4B示出了表示用于管理根据一些实施例的诸如图1中所示的持久性存储装置106的持久性存储装置的方法400的流程图。在一些实施例中,方法400由被存储在计算机可读存储介质中的并且由装置的一个或多个处理器、比图1中所示的持久性存储装置106的存储控制器124的一个或多个处理器128来执行的指令来管理。
在方法400中,持久性存储装置106从外部主机装置102接收(402)命令。这些命令的示例是如上文所述的sio_host_to_nvram(fd,buf,nvseek,size)、sio_nvram_to_host(fd,nvseek,buf,size)、sio_media_to_nvram(fd,pmseek,nvseek,size)以及sio_nvram_to_media(fd,nvseek,pmseek,size)。
如果主机102发出NVRAM写入命令,例如sio_host_to_nvram(fd,buf,nvseek,size),则响应于主机NVRAM写入命令,持久性存储装置106将数据存储(404)到指定的NVRAM块。在一些实施例中,操作404与如上文所述的图3A中的操作306相对应。在上文的NVRAM写入命令的示例中,存储控制器124将位于主机102的存储器108中的位置buf处的数据存储到NVRAM 122中的位置nvseek,其中所存储的数据的量由命令的size参数来指定。
如果主机发出转移命令,例如sio_nvram_to_media(fd,nvseek,pmseek,size),则响应于该转移命令,持久性存储装置106将位于由该转移命令所指定的NVRAM块中的数据存储(406)到持久性存储装置106中的相应的持久性存储块。在上文的转移命令的示例中,存储控制器124将位于NVRAM122中的位置nvseek的数据存储到持久性存储器120的位置pmseek,其中所存储的数据的量由该命令的size参数指定。在一些实现方式中,存储控制器124使用上文所述的逻辑块地址至物理地址映射206来识别(408)相应的持久性存储块。
在一些实施例中,转移命令包括(410)第一预定转移命令。在这些实施例中,如上文参照操作406所描述的,第一预定转移命令指定将数据从NVRAM转移至持久性存储器。在一些实施例中,主机102还发出第二预定转移命令,例如sio_media_to_nvram(fd,pmseek,nvseek,size),该第二预定转移命令指定将数据从持久性存储器转移至NVRAM。在这些实施例中,响应于第二预定转移命令,持久性存储装置106将在由该第二预定转移命令所指定的持久性存储块中的数据存储(412)到由该第二预定转移命令所指定的NVRAM块。如上文参照图3B所述的,在一些实施例中,可以例如通过首先发出持久性存储器读取命令(如下文关于操作416所描述的),然后发出随后的NVRAM写入命令(如上文关于操作404所描述的)而在两个步骤中完成同一数据转移。
如上所述,在一些实施例中,以上参照操作406所讨论的转移命令通过指定相关联的逻辑块地址来指定该数据要被写到的持久性存储块。在这些实施例中,使用逻辑块地址至物理块地址映射来识别(430)相应的持久性存储块。
如果主机102发出主机持久性存储器写入命令,则响应于该主机持久性存储器写入命令,持久性存储装置106将数据存储(414)到指定的持久性存储块。如果主机102发出主机持久性存储器读取命令,则响应于该主机持久性存储器读取命令,持久性存储装置106从指定的持久性存储块取回(416)数据。
如果主机102发出主机NVRAM读取命令,则响应于该主机NVRAM读取命令,持久性存储装置106从指定的NVRAM块取回(418)数据。操作418与操作416相似,除了代替从一个或多个持久性存储块读取数据,而是存储控制器124从由NVRAM读取命令所指定的一个或多个NVRAM块来读取数据。在一些实施例中,当主机102中的应用请求最近被写入到NVRAM122但是还未被转移至持久性存储器120的数据或信息时,执行操作418。在一些实施例中,这发生在主机掉电之后。例如,在一些实施例中,在掉电之后,存储控制器124从NVRAM 122读取一组逻辑块地址204、包括与该组NVRAM块中的每个NVRAM块相关联的逻辑块地址(如果有的话)。在这些实施例中,存储控制器124将数据从具有相关联的逻辑块地址的每个NVRAM块复制(424)到与该相关联的逻辑块地址相对应的持久性存储块。例如,如上文关于图2A所描述的,在一些实施例中,NVRAM 122具有用于存储一个或多个逻辑块地址的预定部分204,部分204中的每个逻辑块地址与各自的NVRAM块202相对应并且还与持久性存储器120中的各自的持久性存储块208相对应。在这些实现方式中,在NVRAM 122的部分204中所存储的逻辑块地址被用在操作424中,以识别存储控制器124将数据从具有相关联的逻辑块地址的NVRAM块复制到的持久性存储块。
在一些实施例中,在出现预定触发条件时,存储控制器124自动将数据从NVRAM122转移(420)至持久性存储器120。在一些实施例中,预定触发条件是以下的任意一个:存储到指定的NVRAM块的数据量达到预定阈值,或者数据正被存储到指定的NVRAM块的预定部分(例如,NVRAM块的最终部分或者最后的字)。
在一些实施例中,存储控制器124响应于相应的主机命令将由该主机命令所指定逻辑块地址与指定的NVRAM块相关联地存储(426)。关于操作426或428,在一些实施例中,存储控制器124将一个或多个逻辑块地址存储(428)于NVRAM 122中,每个逻辑块地址与各自的NVRAM块相关联。例如,如上文关于图2A所描述的,在一些实施例中,NVRAM 122具有用于存储一个或多个逻辑块地址的预定部分204,部分204中的每个逻辑块地址与各自的NVRAM块202相对应并且还与持久性存储器120中的各自的持久性存储块208相对应。
使用上文所描述的实施例,向特定的持久性存储块的多次写入被向NVRAM块的多次写入以及向该特定的持久性存储块的随后单次写入所替代。这减少了向持久性存储器的写入次数,还减少了相应的块擦除操作的次数。此外,改善了持久性存储装置的性能在于:与向闪存写入相同的数据量相比,向NVRAM的写入更快并且消耗更少的能量。
可选择地,图4A和图4B中所示的每个操作与在计算机存储器或计算机可读存储介质中存储的指令相对应。可选择地,计算机可读存储介质包括磁盘存储装置或光盘存储装置、诸如闪存的固态存储装置、或者其它非易失性存储装置或多个非易失性存储装置。在计算机可读存储介质上存储的计算机可读指令是以由一个或多个处理器来解译的源代码格式、汇编语言代码格式、结果代码(object code)格式、或者其它指令格式。
尽管在本文中使用措辞“第一”、“第二”等来描述各个元素,然而这些元素不应受到这些措辞的限制。这些措辞仅用于将一个元素与另一个元素进行区分。例如,在不改变所述描述的意思的情况下,第一接触者(contact)可被称为第二接触者,并且相似地,第二接触者可被称为第一接触者,只要所有出现的“第一接触者”均被一致地重命名并且所有出现的第二接触者均被一致地重命名即可。第一接触者和第二接触者均是接触者,但是它们不是相同的接触者。
本文所使用的术语仅是出于描述特定实施例的目的,并不意在对权利要求进行限制。如在实施例的描述及所附权利要求中所使用的,单数形式的“一”、“一个”和“该”也意在包括复数形式,除非上下文明确指出不是如此。还将理解的是,本文所使用的措辞“和/或”是指并且包含相关所列项目的一个或多个的任意可能组合以及所有可能组合。进一步将理解的是,当在本说明书中使用措辞“包括”和/或“包含”时,其指定所陈述的特征、整体、步骤、操作、元素、和/或组件的存在,但是不排除一个或多个其它特征、整体、步骤、操作、元素、组件、和/或它们的组的存在或添加。
如本文所使用的,根据上下文,措辞“如果”可被解释为表示“当所陈述的先决条件为真时”或“在所陈述的先决条件为真时”或“响应于确定出所陈述的先决条件为真”或“根据所陈述的先决条件为真的确定”或“响应于检测到所陈述的先决条件为真”。类似地,根据上下文,短语“如果确定[所陈述的先决条件为真]”或“如果[所陈述的先决条件为真]”或“当[所陈述的先决条件为真]时”可被解释为表示“在确定所陈述的先决条件为真时”或“响应于确定所陈述的先决条件为真”或“根据所陈述的先决条件为真的确定”或“当检测到所陈述的先决条件为真”或“响应于检测到所陈述的先决条件为真”。
出于说明的目的,已经参照具体实施例对前述说明书进行了描述。然而,上文的示例性讨论并不意在将所公开的实施例穷尽或限制在所公开的确切形式。考虑到上述教导,很多修改和变形是可能的。选择并描述这些实施例以便最佳地说明本公开的原理及其实际应用,因此使本领域的其他技术人员能够以适于所构想的特定应用的各种修改最佳地利用所公开的实施例以及各种其它实施例。

Claims (23)

1.一种持久性存储装置,包括:
持久性存储器,包括一组持久性存储块;
NVRAM,包括与所述持久性存储器不同类型的非易失性存储器并且包括一组NVRAM块;
存储控制器,配置为从外部主机装置接收命令并且还配置为:
响应于从所述外部主机装置接收的主机NVRAM写入命令,将数据存储到在所述主机NVRAM写入命令中所包括的物理位置处的NVRAM块;
响应于从所述外部主机装置接收的主机NVRAM读取命令,从由所述主机NVRAM读取命令指定的NVRAM块取回数据;以及
响应于从所述外部主机装置接收的转移命令,将由所述转移命令指定的NVRAM块中的数据转移至与所述转移命令中包含的逻辑地址相关联的相应的持久性存储块,其中所述数据先前被写到所述指定的NVRAM块。
2.根据权利要求1所述的持久性存储装置,其中所述存储控制器还配置为:
响应于主机持久性存储器写入命令,将数据存储到指定的持久性存储块;以及
响应于主机持久性存储器读取命令,从所述指定的持久性存储块取回数据。
3.根据权利要求1所述的持久性存储装置,其中所述持久性存储装置被实现为单个单片集成电路。
4.根据权利要求1所述的持久性存储装置,其中所述持久性存储器包括闪存,并且所述NVRAM包括从由EPROM、EEPROM、电池备援的SRAM、电池备援的DRAM、超级电容器备援的DRAM、铁电RAM、磁阻RAM以及相变RAM组成的组中选择的非易失性存储器。
5.根据权利要求1所述的持久性存储装置,还包括主机接口,用于将所述持久性存储装置与所述外部主机装置的存储器控制器通过接口连接。
6.根据权利要求1所述的持久性存储装置,其中逻辑块地址与所述指定的NVRAM块相关联,并且所述相应的持久性存储块与所述逻辑块地址相对应。
7.根据权利要求1-6中任一项所述的持久性存储装置,其中所述存储控制器还配置为通过将由所述主机命令所指定的逻辑块地址与所述指定的NVRAM块相关联地存储来对相应的主机命令进行响应。
8.根据权利要求1-6中任一项所述的持久性存储装置,其中所述NVRAM的预定部分存储一个或多个逻辑块地址,所述一个或多个逻辑块地址中的每个与各自的NVRAM块相关联。
9.根据权利要求1-6中任一项所述的持久性存储装置,其中逻辑块地址与所述指定的NVRAM块相关联,并且所述相应的持久性存储块由所述存储控制器使用逻辑块地址至物理地址映射来识别。
10.根据权利要求1-6中任一项所述的持久性存储装置,其中
所述转移命令包括第一预定转移命令,并且
所述存储控制器还配置为通过将由第二预定转移命令所指定的持久性存储块中的数据存储到由所述第二预定转移命令所指定的NVRAM块来对所述第二预定转移命令进行响应。
11.一种用于管理持久性存储装置的方法,包括:
在包括持久性存储器和NVRAM的持久性存储装置处,所述持久性存储器包括一组持久性存储块,并且所述NVRAM包括与所述持久性存储器不同类型的非易失性存储器并且包括一组NVRAM块:
从外部主机装置接收命令;
响应于从所述外部主机装置接收的主机NVRAM写入命令,将数据存储到在所述主机NVRAM写入命令中所包括的物理位置处的NVRAM块;
响应于从所述外部主机装置接收的主机NVRAM读取命令,从由所述主机NVRAM读取命令指定的NVRAM块取回数据;以及
响应于从所述外部主机装置接收的转移命令,将由所述转移命令所指定的NVRAM块中的数据存储到与所述转移命令中包含的逻辑地址相关联的相应的持久性存储块。
12.根据权利要求11所述的方法,
响应于主机持久性存储器写入命令,将数据存储到指定的持久性存储块;以及
响应于主机持久性存储器读取命令,从所述指定的持久性存储块取回数据。
13.根据权利要求11所述的方法,其中所述持久性存储装置被实现为单个单片集成电路。
14.根据权利要求11所述的方法,其中所述持久性存储器包括闪存,并且所述NVRAM包括从由EPROM、EEPROM、电池备援的SRAM、电池备援的DRAM、超级电容器备援的DRAM、铁电RAM、磁阻RAM以及相变RAM组成的组中选择的非易失性存储器。
15.根据权利要求11所述的方法,其中,所述持久性存储装置还包括主机接口,用于将所述持久性存储装置与所述外部主机装置的存储器控制器通过接口连接。
16.根据权利要求11所述的方法,其中逻辑块地址与指定的NVRAM块相关联,并且所述相应的持久性存储块与所述逻辑块地址相对应。
17.根据权利要求11-16中任一项所述的方法,还包括在所述持久性存储装置处,通过将由所述主机命令所指定的逻辑块地址与所述指定的NVRAM块相关联地存储来对相应的主机命令进行响应。
18.根据权利要求11-16中任一项所述的方法,还包括在所述持久性存储装置处,将一个或多个逻辑块地址存储在所述NVRAM中,所述一个或多个逻辑块地址中的每个与各自的NVRAM块相关联。
19.根据权利要求11-16中任一项所述的方法,还包括在所述持久性存储装置处,对于所述转移命令,使用逻辑块地址至物理地址映射来识别相应的持久性存储块。
20.根据权利要求11-16中任一项所述的方法,其中所述转移命令包括第一预定转移命令,并且所述方法还包括在所述持久性存储装置处,响应于第二预定转移命令,将由所述第二预定转移命令所指定的持久性存储块中的数据存储到由所述第二预定转移命令所指定的NVRAM块。
21.根据权利要求11-16中任一项所述的方法,还包括在所述持久性存储装置处,在出现预定触发条件时自动将数据从NVRAM转移至持久性存储器,所述预定触发条件从由以下组成的组中选择:存储到所述指定的NVRAM块的数据量达到预定阈值、以及数据正被存储到所述指定的NVRAM块的预定部分。
22.根据权利要求11-16中任一项所述的方法,还包括在所述外部主机装置的控制下:
在断电之后,从NVRAM读取一组逻辑块地址、包括与所述一组NVRAM块中的每个NVRAM块相关联的逻辑块地址,如果有这样的逻辑块地址;以及
将数据从具有相关联的逻辑块地址的每个NVRAM块复制到与所述相关联的逻辑块地址对应的持久性存储块。
23.一种用于将数据存储到持久性存储装置的方法,包括:
在所述持久性存储装置外部的主机装置处:
发出用于将数据存储在所述持久性存储装置中的指定的NVRAM块中的多个NVRAM写入命令,其中所述指定的NVRAM块的物理位置被包括在所述NVRAM写入命令中,所述持久性存储装置包括持久性存储器和NVRAM,所述持久性存储器包括一组持久性存储块并且所述NVRAM包括一组NVRAM块,所述一组NVRAM块包括所述指定的NVRAM块,其中所述NVRAM包括与所述持久性存储器不同类型的非易失性存储器;
发出NVRAM读取命令,指示所述持久性存储装置从所述持久性存储装置中的由所述NVRAM读取命令指定的NVRAM块取回数据;
发出预定转移命令,指示所述持久性存储装置将所述转移命令指定的NVRAM块中的数据存储到相应的持久性存储块,其中所述数据先前被写入到由发出的NVRAM写入命令之一指定的NVRAM块;以及
发出读取命令,指示所述持久性存储装置从根据所述主机装置发出的预定转移命令而将数据存储到的所述持久性存储块取回数据,并且将从根据所述主机装置发出的预定转移命令而将数据存储到的所述持久性存储块取回的数据传送至所述主机装置。
CN201380072287.2A 2012-12-26 2013-12-12 具有用于分级写入的nvram的持久性存储装置 Active CN104969168B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261746079P 2012-12-26 2012-12-26
US61/746,079 2012-12-26
US13/831,218 US9501398B2 (en) 2012-12-26 2013-03-14 Persistent storage device with NVRAM for staging writes
US13/831,218 2013-03-14
PCT/US2013/074772 WO2014105448A1 (en) 2012-12-26 2013-12-12 Persistent storage device with nvram for staging writes

Publications (2)

Publication Number Publication Date
CN104969168A CN104969168A (zh) 2015-10-07
CN104969168B true CN104969168B (zh) 2018-03-09

Family

ID=50976036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380072287.2A Active CN104969168B (zh) 2012-12-26 2013-12-12 具有用于分级写入的nvram的持久性存储装置

Country Status (3)

Country Link
US (1) US9501398B2 (zh)
CN (1) CN104969168B (zh)
WO (1) WO2014105448A1 (zh)

Families Citing this family (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
CN104281536B (zh) * 2014-09-28 2019-03-01 株洲南车时代电气股份有限公司 一种数据分离储存的装置以及方法
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10203888B2 (en) * 2015-12-18 2019-02-12 Intel Corporation Technologies for performing a data copy operation on a data storage device with a power-fail-safe data structure
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US12013895B2 (en) 2016-09-26 2024-06-18 Splunk Inc. Processing data using containerized nodes in a containerized scalable environment
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US10795884B2 (en) 2016-09-26 2020-10-06 Splunk Inc. Dynamic resource allocation for common storage query
US11620336B1 (en) * 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US11250056B1 (en) * 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
US10776355B1 (en) 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US10726009B2 (en) 2016-09-26 2020-07-28 Splunk Inc. Query processing using query-resource usage and node utilization data
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
KR102681659B1 (ko) * 2017-01-12 2024-07-05 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US9972396B1 (en) 2017-06-01 2018-05-15 Western Digital Technologies, Inc. System and method for programming a memory device with multiple writes without an intervening erase
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
GB201709499D0 (en) 2017-06-15 2017-08-02 Microsoft Technology Licensing Llc Memory management in non-volatile memory
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US12118009B2 (en) 2017-07-31 2024-10-15 Splunk Inc. Supporting query languages through distributed execution of query engines
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US11194524B2 (en) * 2017-09-15 2021-12-07 Qualcomm Incorporated Apparatus and method for performing persistent write operations using a persistent write command
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery in a cloud-based storage system
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
US10437670B1 (en) 2018-05-24 2019-10-08 International Business Machines Corporation Metadata hardening and parity accumulation for log-structured arrays
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11036434B2 (en) * 2019-08-22 2021-06-15 Micron Technology, Inc. Hierarchical memory systems
US10929301B1 (en) * 2019-08-22 2021-02-23 Micron Technology, Inc. Hierarchical memory systems
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11893276B2 (en) * 2020-05-21 2024-02-06 Micron Technology, Inc. Apparatuses and methods for data management in a memory device
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US12072939B1 (en) 2021-07-30 2024-08-27 Splunk Inc. Federated data enrichment objects
US12093272B1 (en) 2022-04-29 2024-09-17 Splunk Inc. Retrieving data identifiers from queue for search of external data system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412042B1 (en) * 1999-11-17 2002-06-25 Maxtor Corporation System and method for improved disk drive performance and reliability
CN102662791A (zh) * 2010-12-14 2012-09-12 西部数据技术公司 在万一失去电力时维护固态存储器内数据冗余方案的系统和方法

Family Cites Families (449)

* 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
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
WO1997000518A1 (fr) 1995-06-14 1997-01-03 Hitachi, Ltd. Memoire a semiconducteurs, unite de memoire et carte de memoire
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
TW334532B (en) 1996-07-05 1998-06-21 Matsushita Electric Ind Co Ltd The inspection system of semiconductor IC and the method of generation
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
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
US7318117B2 (en) 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
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
US7660941B2 (en) 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
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
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
US7082056B2 (en) 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
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
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 広島日本電気株式会社 半導体生産システム及び半導体装置の生産方法
US6629047B1 (en) 2000-03-30 2003-09-30 Intel Corporation Method and apparatus for flash voltage detection and lockout
US6615307B1 (en) 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
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
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 삼성전자주식회사 기입 드라이버를 이용한 셀 전류 측정 스킴을 갖는 플래시메모리 장치
US6775792B2 (en) 2001-01-29 2004-08-10 Snap Appliance, Inc. Discrete mapping of parity blocks
JPWO2002082435A1 (ja) 2001-03-30 2004-07-29 富士通株式会社 記憶装置及びそのフォーカス制御方法
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 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
US20040199786A1 (en) 2002-12-02 2004-10-07 Walmsley Simon Robert Randomisation of the location of secret information on each of a series of integrated circuits
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
US7043505B1 (en) 2003-01-28 2006-05-09 Unisys Corporation Method variation for collecting stability data from proprietary systems
JP4110000B2 (ja) 2003-01-28 2008-07-02 株式会社ルネサステクノロジ 記憶装置
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
US7527466B2 (en) 2003-04-03 2009-05-05 Simmons Robert J Building-erection structural member transporter
KR100543447B1 (ko) 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
KR100526186B1 (ko) 2003-04-04 2005-11-03 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
WO2004099985A1 (ja) 2003-05-09 2004-11-18 Fujitsu Limited 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体
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
CA2836758C (en) 2003-05-23 2017-06-27 Roger D. Chamberlain Intelligent data processing system and method 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
US7100002B2 (en) 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7054968B2 (en) 2003-09-16 2006-05-30 Denali Software, Inc. Method and apparatus for multi-port memory controller
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
US7376887B2 (en) 2003-12-22 2008-05-20 International Business Machines Corporation Method for fast ECC memory testing by software including ECC check byte
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
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
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
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
EP1797645B1 (en) 2004-08-30 2018-08-01 Google LLC Systems and methods for providing nonvolatile memory management in wireless phones
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
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 삼성전자주식회사 동작 모드에 따라 락 아웃을 선택적으로 수행하는 장치 및방법
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
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
JP2006277395A (ja) 2005-03-29 2006-10-12 Matsushita Electric Ind Co Ltd 情報処理装置及び情報処理方法
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
US8171367B2 (en) 2005-06-27 2012-05-01 Thomson Licensing Stopping criteria in iterative decoders
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
KR100705220B1 (ko) 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
CN101317159A (zh) 2005-09-27 2008-12-03 Nxp股份有限公司 检错纠错电路及相应方法
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
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
US7742339B2 (en) 2006-01-10 2010-06-22 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
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7681106B2 (en) 2006-03-29 2010-03-16 Freescale Semiconductor, Inc. Error correction device and methods thereof
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
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
US20070300130A1 (en) 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in 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
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
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
CN101715575A (zh) 2006-12-06 2010-05-26 弗森多系统公司(dba弗森-艾奥) 采用数据管道管理数据的装置、系统和方法
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 삼성전자주식회사 메일박스 영역을 가지는 멀티 패스 액세스블 반도체 메모리장치 및 그에 따른 메일박스 액세스 제어방법
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 삼성전자주식회사 플래시 메모리를 기반으로 한 메모리 시스템
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
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
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
WO2009072100A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Systems and methods for temporarily retiring memory portions
US7934052B2 (en) 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
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
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
JP2009211233A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
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 삼성전자주식회사 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치
KR101412690B1 (ko) 2008-05-28 2014-06-27 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
KR101412974B1 (ko) 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
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 삼성전자주식회사 메모리 장치 및 메모리 데이터 프로그래밍 방법
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
US8214599B2 (en) 2008-11-04 2012-07-03 Gridiron Systems, Inc. Storage device prefetch system using directed graph clusters
KR101516577B1 (ko) 2008-11-10 2015-05-06 삼성전자주식회사 비휘발성 반도체 메모리 장치, 그를 포함하는 메모리 카드와 메모리 시스템 및 그의 리드 전압 추정 방법
US9063874B2 (en) 2008-11-10 2015-06-23 SanDisk Technologies, Inc. Apparatus, system, and method for wear management
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
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
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
US8627117B2 (en) 2009-06-26 2014-01-07 Seagate Technology Llc Device with power control feature involving backup power reservoir circuit
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
CN102473460B (zh) 2009-08-25 2016-10-12 桑迪士克以色列有限公司 将数据恢复到闪存器件中
EP2476039B1 (en) 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
US8386731B2 (en) 2009-09-14 2013-02-26 Vmware, Inc. Method and system for optimizing live migration of persistent data of virtual machine using disk I/O heuristics
CN102640227B (zh) 2009-09-23 2016-06-01 纳姆迪兰斯有限公司 一种快闪存储器件及控制方法
US8479061B2 (en) 2009-09-24 2013-07-02 AGIGA Tech Solid state memory cartridge with wear indication
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
WO2011036727A1 (ja) 2009-09-25 2011-03-31 富士通株式会社 メモリシステム及びメモリシステムの制御方法
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 管理記憶體讀出資料之方法以及記憶裝置
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
US8380915B2 (en) 2010-01-27 2013-02-19 Fusion-Io, Inc. Apparatus, system, and method for managing solid-state storage 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
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
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
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
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
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
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
CN103329103B (zh) 2010-10-27 2017-04-05 希捷科技有限公司 使用用于基于闪存的数据存储的自适应ecc技术的方法和设备
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 삼성전자주식회사 메모리 컨트롤러, 이의 오류정정 방법, 및 이를 포함하는 메모리 시스템
US9038066B2 (en) 2010-12-22 2015-05-19 Vmware, Inc. In-place snapshots of a virtual disk configured with sparse extent
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
WO2012109679A2 (en) 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for application direct virtual memory management
US8966319B2 (en) 2011-02-22 2015-02-24 Apple Inc. Obtaining debug information from a flash memory device
US8909894B1 (en) 2011-03-16 2014-12-09 Tintri Inc. Automatically aligning virtual blocks to physical blocks
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
US8745318B2 (en) 2011-06-28 2014-06-03 Seagate Technology Llc Parameter tracking for memory devices
US8898373B1 (en) 2011-06-29 2014-11-25 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US9378138B2 (en) 2011-06-29 2016-06-28 International Business Machines Corporation Conservative garbage collection and access protection
US8645773B2 (en) 2011-06-30 2014-02-04 Seagate Technology Llc Estimating temporal degradation of non-volatile solid-state memory
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
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 삼성전자주식회사 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법
US9378133B2 (en) 2011-09-30 2016-06-28 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
US8516019B2 (en) 2011-10-03 2013-08-20 Oracle America, Inc. Time-based object aging for generational garbage collectors
US8825721B2 (en) 2011-10-03 2014-09-02 Oracle International Corporation Time-based object aging for generational garbage collectors
US8949517B2 (en) 2011-10-05 2015-02-03 Lsi Corporation Self-journaling and hierarchical consistency for non-volatile storage
US8711619B2 (en) 2011-10-18 2014-04-29 Seagate Technology Llc Categorizing bit errors of solid-state, non-volatile memory
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
US20140359381A1 (en) 2011-11-02 2014-12-04 The University Of Tokyo Memory controller and data storage device
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
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
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
US8897085B2 (en) 2012-03-19 2014-11-25 Sandisk Technologies Inc. Immunity against temporary and short power drops in non-volatile memory: pausing techniques
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
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 에스케이하이닉스 주식회사 쓰기 전류를 측정할 수 있는 반도체 메모리 장치 및 쓰기 전류 측정 방법
US9329986B2 (en) 2012-09-10 2016-05-03 Sandisk Technologies Inc. Peak current management in multi-die non-volatile memory devices
US8938656B2 (en) 2012-09-14 2015-01-20 Sandisk Technologies Inc. Data storage device with intermediate ECC stage
US8886882B2 (en) 2012-09-14 2014-11-11 Hitachi, Ltd. Method and apparatus of storage tier and cache management
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
US9104328B2 (en) 2012-10-31 2015-08-11 Hitachi, Ltd. Storage apparatus and method for controlling storage apparatus
US8634248B1 (en) 2012-11-09 2014-01-21 Sandisk Technologies Inc. On-device data analytics using NAND flash based intelligent 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
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
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
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 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412042B1 (en) * 1999-11-17 2002-06-25 Maxtor Corporation System and method for improved disk drive performance and reliability
CN102662791A (zh) * 2010-12-14 2012-09-12 西部数据技术公司 在万一失去电力时维护固态存储器内数据冗余方案的系统和方法

Also Published As

Publication number Publication date
CN104969168A (zh) 2015-10-07
US20140181373A1 (en) 2014-06-26
US9501398B2 (en) 2016-11-22
WO2014105448A1 (en) 2014-07-03

Similar Documents

Publication Publication Date Title
CN104969168B (zh) 具有用于分级写入的nvram的持久性存储装置
CN107967124B (zh) 一种分布式持久性内存存储系统及方法
US10229734B1 (en) Method and system for storing and recovering data from flash memory
KR102042904B1 (ko) 비차단 제어 업데이트 동작을 수행하도록 구성되는 데이터 저장 디바이스
CN108572796B (zh) 具有异构nvm类型的ssd
CN109901794A (zh) 使用主机空闲来操作垃圾收集的设备和方法
KR101303524B1 (ko) 불휘발성 메모리에 대한 메타데이터 리던던시 스킴
US10223208B2 (en) Annotated atomic write
US9535628B2 (en) Memory system with shared file system
US10606760B2 (en) Nonvolatile memory devices and methods of controlling the same
EP2530612A1 (en) Mount-time unmapping of unused logical addresses in non-volatile memory systems
CN105210028B (zh) 持久存储器装置、用于管理其的方法和计算机可读存储介质
US11693768B2 (en) Power loss data protection in a memory sub-system
CN108804023A (zh) 数据存储装置及其操作方法
US20140095555A1 (en) File management device and method for storage system
CN108089951A (zh) 存储系统中的加速数据恢复
US20140297935A1 (en) Mount-time reconciliation of data availability
CN109164975A (zh) 一种将数据写入固态硬盘的方法以及固态硬盘
KR102585883B1 (ko) 메모리 시스템의 동작 방법 및 메모리 시스템
CN106662985A (zh) 主机管理的非易失性存储器
US20140359198A1 (en) Notification of storage device performance to host
CN110032333A (zh) 存储器系统及其操作方法
US20160170648A1 (en) Data storage device and operating method thereof
US8972650B2 (en) Methods and systems for performing efficient page reads in a non-volatile memory
CN113918089A (zh) 键值存储设备和排序键值的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160518

Address after: texas

Applicant after: Sandisk Corp.

Address before: American California

Applicant before: Sandisk Enterprise Intellectual Property Co., Ltd.

CB02 Change of applicant information

Address after: texas

Applicant after: DELPHI INT OPERATIONS LUX SRL

Address before: texas

Applicant before: Sandisk Corp.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant