CN104969168B - 具有用于分级写入的nvram的持久性存储装置 - Google Patents
具有用于分级写入的nvram的持久性存储装置 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary 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
技术领域
公开的实施例总体上涉及持久性存储装置。
背景技术
众所周知,闪存装置以及至少一些其它类型的基于半导体的持久性存储装置具有有限的耐久性。例如,闪存单元的各种实现方式对在那些闪存单元的可靠性低于可接受的水平(例如,相关联的比特错误率高于使用与数据一起存储的错误校正信息所能够校正的水平)之前可以进行的块擦除循环的数量具有实际限制。
本文所描述的实施例提供了用于减少向持久性存储器的写入并且由此提高这些装置的实际使用寿命的机制和方法。
发明内容
在本公开中,一种持久性存储装置包括持久性存储器(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块;以及
发出读取命令,指示所述持久性存储装置从根据所述主机装置发出的预定转移命令而将数据存储到的所述持久性存储块取回数据,并且将从根据所述主机装置发出的预定转移命令而将数据存储到的所述持久性存储块取回的数据传送至所述主机装置。
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)
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)
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)
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 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
-
2013
- 2013-03-14 US US13/831,218 patent/US9501398B2/en active Active
- 2013-12-12 WO PCT/US2013/074772 patent/WO2014105448A1/en active Application Filing
- 2013-12-12 CN CN201380072287.2A patent/CN104969168B/zh active Active
Patent Citations (2)
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 |