CN102257482A - 用于一致读取等待时间的冗余数据存储 - Google Patents

用于一致读取等待时间的冗余数据存储 Download PDF

Info

Publication number
CN102257482A
CN102257482A CN2008801324138A CN200880132413A CN102257482A CN 102257482 A CN102257482 A CN 102257482A CN 2008801324138 A CN2008801324138 A CN 2008801324138A CN 200880132413 A CN200880132413 A CN 200880132413A CN 102257482 A CN102257482 A CN 102257482A
Authority
CN
China
Prior art keywords
data
memory bank
write
flash memory
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2008801324138A
Other languages
English (en)
Other versions
CN102257482B (zh
Inventor
M.麦克拉伦
E.小阿戈洛德奥利维拉迪亚斯
P.法拉博希
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN102257482A publication Critical patent/CN102257482A/zh
Application granted granted Critical
Publication of CN102257482B publication Critical patent/CN102257482B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/22Nonvolatile memory in which reading can be carried out from one memory bank or array whilst a word or sector in another bank or array is being erased or programmed simultaneously

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)
  • Read Only Memory (AREA)

Abstract

一种存储器设备(100,200,300,500,600,700)具有多个存储器存储体(d0到d7,m0到m3,p,p0,p1),其中到存储器存储体(d0到d7,m0到m3,p,p0,p1)的写或者擦除操作远远慢于到存储体(d0到d7,m0到m3,p,p0,p1)的读操作。存储器设备(100,200,300,500,600,700)被配置为:当用于数据的在存储器存储体(d0到d7,m0到m3,p,p0,p1)中的主存储位置正在经历写操作和擦除操作中的至少一个时,响应于对于该数据的查询,读取该数据的冗余存储而不是所述主存储位置或者重构请求数据。

Description

用于一致读取等待时间的冗余数据存储
背景技术
固态存储器是一种类型的、由很多计算机和电子装置用以进行数据存储的数字存储器。固态电路的封装通常给固态存储器提供比磁盘驱动器更高的耐久性和更低的功耗。这些特性,与在增加固态存储器装置的存储容量方面做出的持续进步和固态存储器的相对廉价的成本相结合,已经对于将固态存储器用于大范围的应用做出贡献。在一些应用中,例如,非易失固态存储器可以被用于替代磁性硬盘或者在处理器的存储器空间的区域中使用,当处理器断电时,所述区域保留它们的内容。
在包括闪速存储器的大多数类型的非易失固态存储器中,写操作比读操作要求远远更大量的时间来完成。此外,由于在闪速存储器中的写操作的单向性质,数据通常仅仅被以大的块周期性地从闪速存储器擦除。这种类型的擦除操作比写操作要求甚至更多的时间来完成。
附图说明
附图示意在这里描述的原理的各种实施例并且是说明书的一个部分。所示意的实施例仅仅是示例并且不限制权利要求的范围。
图1A是根据在这里描述的原理的一个示例性实施例的、具有一致读取等待时间的示意性存储器设备的图示。
图1B是根据在这里描述的原理的一个示例性实施例的、在图1A的示意性存储器设备上执行的读和写操作的示意性时序的图示。
图2是根据在这里描述的原理的一个示例性实施例的、具有一致读取等待时间的示意性存储器设备的图示。
图3是根据在这里描述的原理的一个示例性实施例的、具有一致读取等待时间的示意性存储器设备的图示。
图4是根据在这里描述的原理的一个示例性实施例的、在图3的示意性存储器设备上执行的读和写操作的示意性时序的图示。
图5是根据在这里描述的原理的一个示例性实施例的、具有一致读取等待时间的示意性存储器设备的图示。
图6是根据在这里描述的原理的一个示例性实施例的、具有一致读取等待时间的示意性存储器设备的图示。
图7是根据在这里描述的原理的一个示例性实施例的、具有一致读取等待时间的示意性存储器设备的图示。
图8是根据在这里描述的原理的一个示例性实施例的、具有一致读取等待时间的示意性数据存储系统的框图。
图9A是根据在这里描述的原理的一个示例性实施例的、在存储器存储体的阵列中维持一致读取等待时间的示意性方法的流程图。
图9B是根据在这里描述的原理的一个示例性实施例的、从存储器系统读取数据的示意性方法的流程图。
在所有的附图中,相同的参考数字标识类似的但是并不一定相同的元件。
具体实施方式
如上所述,在某些类型的数字存储器中,包括但是不限于闪速存储器和其它非易失固态存储器,向存储器写数据所要求的时间量可能显著地比从存储器读数据所要求的时间量更长。而且,擦除操作可能要求比写操作或者读操作更长的时间量来完成。
对于这些类型的存储器中的大多数而言,在相同存储器装置上,读操作不能与写或者擦除操作并发地发生,由此要求读操作被延迟,直至当前在该装置上执行的任何写或者擦除操作完成为止。因此,在这种存储器装置中,最坏情形的读取等待时间可能受在该装置上的擦除操作所要求的时间的支配。
然而,在一些情形中,可能期望在存储于存储器装置中的数据的读取等待时间方面维持一致性,而与存储器装置是否正在经历写或者擦除操作无关。此外,还可能期望最小化在这种存储器装置中的读取等待时间。
鉴于以上和其它目标,本说明书公开了具有基本一致的读取等待时间的数字存储的设备、系统和方法。具体地,本说明书公开了利用多个存储器存储体的设备、系统和方法,该多个存储器存储体被配置为以冗余方式存储否则在它的主存储位置处的写或者擦除操作期间不可访问的数据。当主存储位置经历写或者擦除操作时,响应于对于数据的查询而从冗余存储读取该数据。
如在本说明书中和在所附权利要求中使用的,术语“存储体(bank)”指的是物理、可寻址存储器模块。例如,多个存储体可以被合并到单一存储器系统或者装置中并且被并行地访问。
如在本说明书中和在所附权利要求中使用的,术语“读取等待时间”指的是在当在存储器存储体中查询地址时和当在该地址中存储的数据被提供给查询过程时之间逝去的时间量。
如在本说明书中和在所附权利要求中使用的,术语“存储器系统”广泛地指的是任何数据存储和访问系统,其中可以通过一个或者多个外部过程将数据写入该系统和从该系统读取。存储器系统包括但是不限于处理器存储器、固态盘等。
在以下说明中,为了解释的意图,阐述了许多具体细节从而提供对于本系统和方法的彻底的理解。然而,本领域技术人员将会清楚,可以在没有这些具体细节的情况下实践本系统和方法。在说明书中对于“实施例”、“示例”或者类似的语言的引用意味着结合该实施例或者示例描述的特定特征、结构或者特性被包括在至少该一个实施例中,但是并一定地被包括在其它实施例中。在说明书的各种位置中的短语“在一个实施例中”或者类似短语的各个实例不一定全部指代相同的实施例。
现在将关于示意性的系统和示意性的方法讨论在这里所公开的原理。
示意性的系统
现在参考图1A,示出了示意性存储器设备(100)。为了解释性的意图,将主要地关于闪速存储器描述本说明书的系统和方法。然而,将会理解,本说明书的系统和方法可以并且意欲在任何类型的数字存储器中利用,其中写操作或者擦除操作中的至少一个要求比读操作远远更大的时间量来完成。本系统和方法可以应用的、其它类型的数字存储器的示例包括但是不限于相变存储器(即PRAM)、UV擦除存储器、电可擦可编程只读存储器(EEPROM)和其它可编程非易失固态存储器类型。
本示例示意本说明书原理的一个简单的应用。在存储器装置中的闪速存储器存储体(d0,m0)可以包括用作数据的主存储位置的主闪速存储体(d0)和以冗余方式存储在主闪速存储体(d0)中存储的数据的副本的镜像存储体(m0)。写或者擦除操作因此将要求主和镜像存储体(d0,m0)中的每一个被更新以在存储体(d0,m0)之间维持一致的数据镜像。在正在执行写或者擦除操作时,闪速存储器存储体对于外部读查询而言通常是不可访问的。然而,通过交错写或者擦除操作从而两个闪速存储器存储体(d0,m0)绝不并发地经历写或者擦除操作,主数据存储体(d0)或者镜像数据存储体(m0)中的至少一个可以用于对于在存储体(d0,m0)中存储的数据的外部读查询。在本示例中,示出在镜像闪速存储体(m0)服务于读查询时新的数据正被写入主闪速存储体(d0)。相反,在镜像闪速存储体(m0)正在经历写或者擦除操作时,主闪速存储体(d0)可以服务于外部读查询。
在其中主闪速存储体(d0)和镜像闪速存储体(m0)这两者均可用于服务于读查询的某些实施例中,两个闪速存储体(d0,m0)均可以服务于查询。在可替代实施例中,在这种情况下,仅仅主闪速存储体(d0)可以服务于读查询以保持读取等待时间的一致性。然而,在每一个可能的实施例中,在主和镜像闪速存储体(d0,m0)中存储的数据的最大读取等待时间可以大致相当于两个闪速存储体(d0,m0)中的较慢的一个(如果存在的话)的读取等待时间。
现在参考图1B,示出在闪速存储体(d0,m0)中的读和写操作的示意性时序(150)。因为写入主闪速存储体(d0)的数据还必须被写入镜像闪速存储体(m0)以保持数据的镜像,所以完整的写循环(155)可以包括首先到主闪速存储体(d0)并且然后到镜像闪速存储体(m0)的双重数据的交错写入。因此,到图1A的存储器设备(100)的完整的写循环(155)可以要求是到单一闪速存储体(d0,m0)的写循环将要求的时间量的两倍的时间量来完成。
然而,如在图1B中所示,可以在整个写循环(155)期间不断地读取在存储体(d0,m0)中存储的数据。哪一个闪速存储体(d0,m0)向查询读过程提供数据可以依赖于闪速存储体(d0,m0)中的哪一个当前正在经历写操作。数据源可以与(一个或者多个)查询读过程不相关,但是作为平衡在闪速存储体(d0,m0)之间的读查询服务可以实际上对于(一个或者多个)查询过程而言不可见。如将在下面更加详细地描述地,可以在结合具有这个性质的冗余闪速存储器的存储器装置中使用读取复用器以根据闪速存储体(d0,m0)是否正在经历擦除或者写循环(155)以及在擦除或者写循环(155)中在其接收到读查询的阶段而将数据读查询引导到适当的数据源。
现在参考图2,示出存储器设备(200)的另一示意性实施例。非常类似上述设备(100,图1A),本存储器设备(200)采用数据镜像来在数据存储中提供冗余以对于采用存储器存储体(d0到d3,m0到m3)的闪速存储器装置实现一致的读取等待时间。
在本示例中,在图1A-1B中描述的镜像原理被从单一组的冗余闪速存储体扩展到多个冗余闪速存储体(d0到d3,m0到m3)。在本示例中存在多个主闪速存储体(d0到d3),并且主闪速存储体(d0到d3)中的每一个均与被配置为与它的对应的主闪速存储体(d0到d3)存储相同的数据的镜像闪速存储体(分别为m0到m3)配对。类似于在前描述的存储器设备(100,图1A),到任何主闪速存储体(d2)的写操作与到它的对应的镜像闪速存储体(m2)的写操作交错从而在每一组主闪速存储体(d0到d3)和对应的镜像闪速存储体(m0到m3)中的至少一个闪速存储体(d0到d3,m0到m3)在任何给定时间可用于读过程。因此,在闪速存储体(d0到d3,m0到m3)中存储的全部数据在任何时间可以用于外部读查询,而与是否正在闪速存储体(d0到d3,m0到m3)上执行一个或者多个写过程无关。
在某些实施例中,特别地在其中多个闪速存储体(d0到d3,m0到m3)被配置为同时被读取以提供单个数据字的那些实施例中,写缓冲器可以被与闪速存储体(d0到d3,m0到m3)合并。写缓冲器可以存储当前正在被写入或者尚待写入闪速存储体(d0到d3,m0到m3)的用于写操作的数据。以此方式,能够向外部读过程提供最当前的数据。写缓冲器可以与在本说明书中描述的任何示例性实施例一起使用,并且将在下面更加详细地描述这种写缓冲器的操作。
本示例示意成一组的四个主闪速存储体(d0到d3)和四个对应的镜像闪速存储体(m0到m3)。然而,应该理解,如可以最好地适合于特定应用的,根据在这里描述的原理可以使用任何适当数目的闪速存储体(d0到d3,m0到m3)来创建冗余数据存储。
现在参考图3,示出另一示意性存储器设备(300)。在本示例中,四个主闪速存储体(d0到d3)用作主数据存储。类似以前的示例,在本示例中的数据可以被以冗余方式存储从而即使在主闪速存储体(d0到d3)之一正被写入或者擦除的情形中也提供一致的数据读取等待时间。
然而,不象以前的示例,本存储器设备(300)并不通过将每一个主闪速存储体(d0到d3)中存储的数据复制在对应的镜像闪速存储体中而提供数据冗余。相反,本示例合并了可以存储用于在主闪速存储体(d0到d3)中存储的数据的奇偶校验数据的奇偶校验闪速存储体(p)。在奇偶校验闪速存储体(p)中存储的奇偶校验数据可以与从主闪速存储体(d0到d3)中的任何三个主闪速存储体在给定地址处读取的数据相结合地使用以确定在剩余的主闪速存储体(d0到d3)中存储的数据而不实际上在剩余的主闪速存储体(d0到d3)上执行读操作。
例如,如在图3中所示,可以使用数据条带化(striping)来将分段数据分布在主闪速存储体(d0到d3)上从而同时地并且与主闪速存储体(d0到d3)中的每一个的对应地址并行地执行读操作以检索所请求的数据。所请求的数据片段被从主闪速存储体(d0到d3)中的每一个并行地接收并且被组合以向查询过程呈现完整的请求数据。然而,如果主闪速存储体(d0到d3)中的一个(d2)正在经历写操作,则在写操作期间,该主闪速存储体(d2)可能不可用于执行读操作。然而,为了维持在主闪速存储体(d0到d3)中存储的分段数据的读取等待时间的一致性,可以使用从剩余的主闪速存储体(d0,d1,d3)检索的数据片段和从奇偶校验闪速存储体(p)中的对应地址检索的奇偶校验数据重构主要存储在主闪速存储体(d2)中的请求的数据片段。
这个重构可以是例如由重构模块(305)执行的,重构模块(305)具有逻辑门,所述逻辑门被配置为在从可访问的闪速存储体(d0,d1,d3)接收的数据部分上执行异或(EXOR)位操作以产生在被占用的主闪速存储体(d2)中存储的数据片段。重构模块(305)的输出然后可以替代被占用的主闪速存储体(d2)的输出,由此向外部读过程提供所请求的完整数据。如将在下面更加详细描述的,这个替代可以由读取复用器(未示出)执行。
在本示例中,如果要向外部读过程提供完整数据,一次仅仅其中一个主闪速存储体(d0到d3)可以经历写或者擦除操作。可替代地,多个奇偶校验闪速存储体(p)可以使得能够在主闪速存储体(d0到d3)间进行并行的写或者擦除过程。
现在参考图4,示出在图3的主闪速存储体(d0到d3)和奇偶校验存储体(p)中的读和写操作的示意性时序(400)。因为在本示例中一次仅仅能够向闪速存储体(d0到d3,p)之一写入数据或者从闪速存储体(d0到d3,p)之一擦除数据,所以到主和奇偶校验闪速存储体(d0到d3,p)中的每一个的写操作是交错的。因此在主闪速存储体(d0到d3)中存储的任何数据在任何时间可以被用于外部读过程,而与闪速存储体之一是否正经历写或者擦除操作无关。这是因为外部读过程查询的任何条带化数据可以从所示五个闪速存储体(d0到d3,p)中的任何四个复原。如在图4中所示,存储在暂时不可访问的主闪速存储体(d1)中的分段数据可以从存储在剩余的可访问的主闪速存储体(d0,d2,d3)和可访问的奇偶校验闪速存储体(p)中的对应数据重构。
现在参考图5,示出另一个示意性的存储器设备(500)。类似于图3-4的示例,本示例采用在多个主闪速存储体(d0到d3)上的分段数据条带化分布。与以前示例的与主闪速存储体(d0到d3)相结合地使用单一奇偶校验闪速存储体(p)相对照,本示例与主闪速存储体(d0到d3)相结合地利用两个奇偶校验闪速存储体(p0,p1)来实现数据冗余。
奇偶校验闪速存储体中的第一奇偶校验闪速存储体(p0)存储对应于在前两个主闪速存储体(d0,d1)中的分段数据的奇偶校验数据,并且第二奇偶校验闪速存储体(p1)存储对应于在剩余的两个主闪速存储体(d2,d3)中的条带化数据的奇偶校验数据。第一和第二重构模块(505,510)被配置为分别地从第一奇偶校验闪速存储体(p0)和第二奇偶校验闪速存储体(p1)重构主闪速存储体数据。通过利用多个奇偶校验闪速存储体(p0,p1),由于写或者擦除操作仅仅需要分别地在第一组闪速存储体(d0,d1,p0)和第二组闪速存储体(d2,d3,p1)之间交错的事实,可以增加闪速存储器存储体(d0到d3,p0,p1)的写带宽。这个性质允许每一组支持在它的闪速存储体(d0到d3,p0,p1)之一中的并发的写或者擦除过程,同时仍然使得在主闪速存储体(d0到d3)中存储的全部数据可用于外部读过程。
在本示例中,在第一组中的主闪速存储体(d1)被示为正在经历写操作,与之并发的是在第二组中的主闪速存储体(d2)也在经历写操作。响应于外部读过程,重构模块(505,510)使用在奇偶校验闪速存储体(p0,p1,分别地)中存储的奇偶校验数据以及来自可访问的主闪速存储体(d0,d3,分别地)的数据来复原在不可访问的闪速存储体(d1,d2)中存储的数据并且与来自可访问的闪速存储体(d1,d2)的数据一起将该数据提供给外部读过程。
现在参考图6,示出另一个示意性的存储器设备(600)。类似于图5的示例,本示例通过在主闪速存储体(d0到d3)上的数据条带化分布连同两个奇偶校验闪速存储体(p0,p1)一起来实现在主闪速存储体(d0到d3)中存储的数据的冗余。
与结合单独的两组主闪速存储体(d0到d3)使用两个奇偶校验闪速存储体(p0,p1)的、以前的示意性存储器设备(500,图5)相对照,本示例的奇偶校验闪速存储体(p0,p1)为所有的主闪速存储体(d0到d3)存储双重奇偶校验数据。换言之,奇偶校验闪速存储体(p0,p1)使用镜像从而奇偶校验闪速存储体(p0,p1)之一总是可用于向重构模块(505)提供奇偶校验数据。
现在参考图7,示出另一个示意性的存储器设备(700)。在本示例中,提供了实施为动态随机存取存储器(DRAM)模块(705)的写缓冲器,以实现在主闪速存储器存储体(d0到d7)中存储的数据的冗余。DRAM模块(705)可以被配置为对存储在任何或者所有的主闪速存储器存储体(d0到d7)中的数据进行镜像化从而由于写或者擦除操作而不可访问的任何闪速存储器存储体(d0到d7)存储的数据可以由DRAM模块(705)提供。在其它实施例中,主闪速存储器存储体(d0到d7)可以被配置为存储条带化数据,其中DRAM模块(705)被配置为存储用于闪速存储器存储体(d0到d7)的奇偶校验数据,如在上面关于以前的实施例描述的。另外地或者可替代地,一个或者多个写缓冲器(例如DRAM模块(705))可以用于存储将在交错的写操作中被写入主闪速存储器存储体(d0到d7)的数据。
现在参考图8,示出具有一致读取等待时间的示意性存储器系统(800)的框图。例如,可以在例如双列直插存储器模块(DIMM)上,或者根据可以适合于在这里描述的原理的特定应用的任何其它协议和封装实现示意性的存储器系统(800)。
示意性数据存储系统(800)包括以类似于先前在图3中描述的分段数据条带化/奇偶校验冗余配置布置的多个NOR闪速存储器存储体(d0到d7,p)。可替代地,可以使用与如在这里描述的用于一致读取等待时间的数据冗余原理相符合的、闪速存储器存储体(d0到d7,p)的任何其它适当的配置。
每一个闪速存储器存储体可以被以通信方式耦合到管理模块(805),管理模块(805)包括读取复用器(810)、写缓冲器(815)、奇偶校验产生模块(820)、重构模块(825)和控制电路(830)。
系统(800)可以通过用作地址端口(835)、控制端口(840)和数据端口(845)的输入/输出(i/o)插脚与外部过程交互。在某些实施例中,多位地址和数据端口(835,845)可以是并行数据端口。可替代地,地址和数据端口(835,845)可以串行地输送数据。控制电路(830)可以包括协调系统(800)中的其它构件的功能和活动的微控制器或者其它类型的处理器或者处理元件。
外部过程可以通过以下方式向存储器系统(800)的特定地址写数据:在地址端口(835)处提供该地址、在控制端口(840)处将控制位设置为1,以及在数据端口(845)处提供将被写入的数据。在下一时钟周期,管理模块(805)中的控制电路(830)可以确定在控制端口(840)处的控制位已经被设为1,将地址端口处的地址存储在控制电路(830)的寄存器中,并且将数据写入临时写缓冲器(815)。
临时写缓冲器(815)在同步操作中可以是有用的,因为闪速存储体(d0到d7,p)可能要求交错的写入以维持一致读取等待时间。写缓冲器(815)可以包括DRAM或者另一种类型的同步存储器以允许数据得以从外部过程同步地接收并且符合DIMM协议。
控制电路(830)然后可以通过将写缓冲器(815)中的数据解析成片段并且根据数据的地址和特定应用的分段细节将每一个片段分配到闪速存储体(d0到d7)之一而根据交错写入要求将在临时写缓冲器(815)中存储的数据写入闪速存储体(d0到d7,p)。奇偶校验产生模块(820)可以利用对应于在主闪速存储体(d0到d7)中新写入的数据的、新的奇偶校验数据更新奇偶校验闪速存储体(p)。
类似地,通过在控制端口(840)处的控制位被设为0的情况下向管理模块(805)提供在地址端口(835)处的正被查询的数据的地址,外部过程可以读取数据。在管理模块(805)中的控制电路(830)可以接收该地址并且根据该控制位确定正在从外部过程请求读取。控制电路(830)然后可以查询闪速存储器存储体(d0到d7)的、存储在由外部过程请求的地址处的数据片段的部分。如果控制电路(830)确定由外部过程请求的地址当前正被写入或者被安排为要写入,则控制电路(830)可以查询写缓冲器(815)并且直接从写缓冲器(815)向外部过程提供请求数据。然而,如果数据不在写缓冲器(815)中,但是虽然如此正在进行交错的写或者擦除过程以向闪速存储器存储体(d0到d7,p)写入数据,则控制电路(830)可以使用重构模块(825)来使用来自可访问的主闪速存储体(d0到d7)和奇偶校验闪速存储体(p)的数据重构所请求的数据。控制电路(830)还可以向读取复用器(810)提供控制信号从而读取复用器(810)利用重构模块(825)的输出替代不可访问的闪速存储体(d0到d7)的输出。读取复用器(810)可以与在本技术领域中已知的复用原理一致,并且采用多个逻辑门来执行这项任务。
示意性的方法
现在参考图9A,示出在存储器存储体的阵列中维持一致读取等待时间的示意性方法(900)的流程图。可以例如在管理模块(805)的控制下在类似以上参考图8所述的系统的存储器系统(800,图8)中执行方法(900),在所述系统中用于数据的至少一个主存储位置要求比读操作更多的时间来执行写或者擦除操作。
该方法包括接收(步骤910)对于数据的查询。可以从外部过程接收对于数据的查询。然后可以评估(决定915)用于所请求的数据的至少一个主存储位置当前是否正在经历写或者擦除操作。如果是这样,则替代该主存储位置而从冗余存储读取(步骤930)请求的数据的至少一部分。在所讨论的数据的主存储位置当前不正在经历写或者擦除操作的情形中,从主存储位置读取(步骤925)该数据。最终,数据被提供(步骤935)给查询过程。
现在参考图9B,示出从存储器系统读取数据的示意性方法(950)的流程图。例如也可以在管理模块(805)的控制下在类似以上参考图8所述的系统的存储器系统(800,图8)中执行该方法(950)以在存储器系统(800,图8)中维持基本一致的读取等待时间。
方法(950)可以包括在存储器系统的地址端口处提供(955)正被查询的数据的地址。然后可以确定(决定960)对应于所供给的地址的请求数据是否当前正被存储在写缓冲器中(例如,在读取时,请求数据处于正被写入存储器系统中的其对应的存储器存储体的过程中)。如果是这样,则可以简单地从写缓冲器读取(步骤965)请求数据并且将其提供(步骤990)给请求过程。
如果对应于由外部过程提供的地址的数据被确定(决定960)为不在写缓冲器中,则可以确定(决定970)是否正在存储请求数据的存储器存储体中的至少一个上执行写或者擦除过程。在不正在存储请求数据的存储器存储体中的至少一个上执行写或者擦除过程的情形下,存储请求数据的所有的存储器存储体可以是可使用的,从而直接从存储器的主存储位置读取(步骤985)数据并且将其提供(步骤990)给请求过程。
在写或者擦除过程正在存储请求数据的至少一个存储体上执行的情形中,可以从任何可用的存储器存储体读取(975)数据片段并且可以使用存储在别处的奇偶校验数据重构(步骤980)剩余的(一个或者多个)数据片段。在重构之后,然后可以在基本类似于在直接从主存储器存储体读取请求数据之后提供请求数据的读取等待时间的读取等待时间下将数据提供(步骤990)给请求过程。
已经仅仅为了示意并且描述所述原理的实施例和示例而给出了前面的说明。该说明并非旨在是穷举性的或者将这些原理限制为所公开的任何精确的形式。根据以上教导,很多修改和变化是可能的。

Claims (15)

1. 一种存储器设备(100,200,300,500,600,700),包括:
多个存储器存储体(d0到d7,m0到m3,p,p0,p1),其中到所述存储器存储体(d0到d7,m0到m3,p,p0,p1)的写或者擦除操作远远慢于到所述存储体(d0到d7,m0到m3,p,p0,p1)的读操作;并且
其中所述存储器设备(100,200,300,500,600,700)被配置为:当用于数据的在所述存储体(d0到d7,m0到m3,p,p0,p1)中的主存储位置正在经历写操作和擦除操作中的至少一个时,响应于对于所述数据的查询,读取所述数据的冗余存储而不是所述主存储位置,对于存储在所述多个存储器存储体(d0到d7,m0到m3,p,p0,p1)中的数据,所述存储器设备(100,200,300,500,600,700)包括基本一致的读取等待时间。
2. 根据权利要求1的存储器设备(100,200,300,500,600,700),其中所述存储器存储体(d0到d7,m0到m3,p,p0,p1)包括闪速存储器。
3. 根据权利要求1的存储器设备(100,200,300,500,600,700),其中所述基本一致的读取等待时间远远小于所述存储器存储体(d0到d7,m0到m3,p,p0,p1)中的所述主存储位置的写等待时间和擦除等待时间中的至少一个。
4. 根据权利要求1的存储器设备(100,200,300,500,600,700),进一步包括读取复用器(810),所述读取复用器被配置为:在所述主存储位置正在经历所述写操作或者所述擦除操作的情形中,用来自所述数据的冗余存储的所述数据替代来自所述主存储位置的所述数据。
5. 根据权利要求1的存储器设备(100,200,300,500,600,700),其中所述数据的冗余存储包括与所述主存储位置分离的存储器存储体(m0到m3),其中所述冗余存储器存储体(p,p0,01)被配置为对存储在所述主存储位置中的数据进行镜像化。
6. 根据权利要求1的存储器设备(100,200,300,500,600,700),其中所述请求数据分布在多个所述存储器存储体(d0到d7,m0到m3,p,p0,p1)中。
7. 根据权利要求6的存储器设备(100,200,300,500,600,700),其中所述数据的冗余存储包括奇偶校验数据,根据所述奇偶校验数据,使用分布在所述多个所述存储器存储体(d0到d7,m0到m3,p,p0,p1)中的所述数据的部分导出所述请求数据。
8. 一种在存储器存储体(d0到d7,m0到m3,p,p0,p1)的阵列中维持基本一致的读取等待时间的方法(900),包括:
响应于对于数据的查询,确定(915)在所述存储器存储体(d0到d7,m0到m3,p,p0,p1)中用于所述数据的主存储位置当前是否正在经历写操作和擦除操作中的至少一个;和
如果用于所述数据的所述主存储位置当前正在经历写操作和擦除操作中的至少一个,则从冗余存储而不是所述主存储位置读取所述数据。
9. 根据权利要求8的方法(900),其中所述数据分布在所述多个所述存储器存储体中的单独存储器存储体(d0到d7,m0到m3,p,p0,p1)中,并且所述从所述冗余存储读取所述数据包括根据所述数据的分布部分和奇偶校验数据重构所述数据。
10. 根据权利要求9的方法(900),进一步包括向读取复用器(810)提供控制信号从而所述读取复用器(810)使用来自所述冗余存储的所述数据替代从所述存储器存储体(d0到d7,m0到m3,p,p0,p1)中的至少一个读取的数据。
11. 根据权利要求8的方法(900),进一步包括,响应于确定所述数据被存储在临时写缓冲器中,直接从所述临时写缓冲器读取所述数据。
12. 根据权利要求8的方法(900),其中所述查询包括在所述的地址端口处提供的地址。
13. 一种数据存储系统(800),包括:
多个存储器存储体(d0到d7,m0到m3,p,p0,p1),其中到所述存储器存储体(d0到d7,m0到m3,p,p0,p1)的写或者擦除操作远远慢于到所述存储器存储体的读操作;和
读取复用器(810),所述读取复用器被配置为:响应于确定用于请求数据的在所述存储器存储体(d0到d7,m0到m3,p,p0,p1)中的主存储位置正在经历写操作和擦除操作中的至少一个,从冗余存储读取所述请求数据。
14. 根据权利要求13的数据存储系统(800),进一步包括重构模块(305,505,510,825),所述重构模块被配置为根据遍布所述多个存储器存储体(d0到d7,m0到m3,p,p0,p1)分布的分段数据和所存储的奇偶校验数据重构在所述主存储位置中存储的所述数据。
15. 根据权利要求13的数据存储系统(800),进一步包括写缓冲器(815),所述写缓冲器被配置为从外部过程同步地接收写数据并且存储所述写数据,同时交错的写过程将所述写数据写入所述多个存储器存储体(d0到d7,m0到m3,p,p0,p1)。
CN200880132413.8A 2008-12-19 2008-12-19 用于一致读取等待时间的冗余数据存储 Expired - Fee Related CN102257482B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2008/087632 WO2010071655A1 (en) 2008-12-19 2008-12-19 Redundant data storage for uniform read latency

Publications (2)

Publication Number Publication Date
CN102257482A true CN102257482A (zh) 2011-11-23
CN102257482B CN102257482B (zh) 2015-06-03

Family

ID=42269092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880132413.8A Expired - Fee Related CN102257482B (zh) 2008-12-19 2008-12-19 用于一致读取等待时间的冗余数据存储

Country Status (6)

Country Link
US (1) US20110258362A1 (zh)
EP (1) EP2359248A4 (zh)
JP (1) JP5654480B2 (zh)
KR (1) KR101638764B1 (zh)
CN (1) CN102257482B (zh)
WO (1) WO2010071655A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102582269A (zh) * 2012-02-09 2012-07-18 珠海天威技术开发有限公司 存储芯片及其数据通讯方法、耗材容器、成像设备
CN104969293A (zh) * 2013-02-04 2015-10-07 国际商业机器公司 保护存储设备的内容
CN105009066A (zh) * 2013-01-18 2015-10-28 Dssd股份有限公司 用于镜像多维raid的方法和系统

Families Citing this family (192)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US9632870B2 (en) 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
US11010076B2 (en) 2007-03-29 2021-05-18 Violin Systems Llc Memory system with multiple striping of raid groups and method for performing the same
US8493783B2 (en) 2008-03-18 2013-07-23 Apple Inc. Memory device readout using multiple sense times
JP5056944B2 (ja) * 2008-03-31 2012-10-24 日本電気株式会社 秘匿処理装置、秘匿処理方法、および秘匿処理プログラム
US8838850B2 (en) * 2008-11-17 2014-09-16 Violin Memory, Inc. Cluster control protocol
US8442059B1 (en) 2008-09-30 2013-05-14 Gridiron Systems, Inc. Storage proxy with virtual ports configuration
US8417895B1 (en) 2008-09-30 2013-04-09 Violin Memory Inc. System for maintaining coherency during offline changes to storage media
US8788758B1 (en) 2008-11-04 2014-07-22 Violin Memory Inc Least profitability used caching scheme
US8214599B2 (en) * 2008-11-04 2012-07-03 Gridiron Systems, Inc. Storage device prefetch system using directed graph clusters
US8775741B1 (en) 2009-01-13 2014-07-08 Violin Memory Inc. Using temporal access patterns for determining prefetch suitability
US8214608B2 (en) * 2008-11-04 2012-07-03 Gridiron Systems, Inc. Behavioral monitoring of storage access patterns
US8443150B1 (en) 2008-11-04 2013-05-14 Violin Memory Inc. Efficient reloading of data into cache resource
US8285961B2 (en) 2008-11-13 2012-10-09 Grid Iron Systems, Inc. Dynamic performance virtualization for disk access
US8650362B2 (en) 2009-04-17 2014-02-11 Violin Memory Inc. System for increasing utilization of storage media
US8667366B1 (en) 2009-04-17 2014-03-04 Violin Memory, Inc. Efficient use of physical address space for data overflow and validation
US8713252B1 (en) 2009-05-06 2014-04-29 Violin Memory, Inc. Transactional consistency scheme
US9069676B2 (en) 2009-06-03 2015-06-30 Violin Memory, Inc. Mapping engine for a storage device
US8402198B1 (en) 2009-06-03 2013-03-19 Violin Memory, Inc. Mapping engine for a storage device
US8402246B1 (en) 2009-08-28 2013-03-19 Violin Memory, Inc. Alignment adjustment in a tiered storage system
EP4361815A3 (en) * 2009-10-09 2024-06-19 Violin Systems LLC Memory system with multiple striping of raid groups and method for performing the same
US8832384B1 (en) 2010-07-29 2014-09-09 Violin Memory, Inc. Reassembling abstracted memory accesses for prefetching
US8959288B1 (en) 2010-07-29 2015-02-17 Violin Memory, Inc. Identifying invalid cache data
US20120054427A1 (en) * 2010-08-27 2012-03-01 Wei-Jen Huang Increasing data access performance
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US8589625B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US8468318B2 (en) * 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
CN103534693B (zh) * 2010-11-22 2016-08-24 马维尔国际贸易有限公司 在客户端之间共享对存储器的访问的方法和设备
US8793419B1 (en) * 2010-11-22 2014-07-29 Sk Hynix Memory Solutions Inc. Interface between multiple controllers
JP5609683B2 (ja) * 2011-01-31 2014-10-22 ソニー株式会社 メモリ装置およびメモリシステム
US8972689B1 (en) 2011-02-02 2015-03-03 Violin Memory, Inc. Apparatus, method and system for using real-time performance feedback for modeling and improving access to solid state media
US8635416B1 (en) 2011-03-02 2014-01-21 Violin Memory Inc. Apparatus, method and system for using shadow drives for alternative drive commands
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
CN106021147B (zh) * 2011-09-30 2020-04-28 英特尔公司 在逻辑驱动器模型下呈现直接存取的存储设备
CN104040515B (zh) 2011-09-30 2018-05-11 英特尔公司 在逻辑驱动器模型下呈现直接存取的存储设备
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
US9195622B1 (en) 2012-07-11 2015-11-24 Marvell World Trade Ltd. Multi-port memory that supports multiple simultaneous write operations
US8909860B2 (en) 2012-08-23 2014-12-09 Cisco Technology, Inc. Executing parallel operations to increase data access performance
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US20140189202A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Storage apparatus and storage apparatus control method
US9589008B2 (en) 2013-01-10 2017-03-07 Pure Storage, Inc. Deduplication of volume regions
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
KR20160018471A (ko) * 2013-04-02 2016-02-17 바이올린 메모리 인코포레이티드 스토리지 미디어 성능을 높이는 시스템
US20140304452A1 (en) * 2013-04-03 2014-10-09 Violin Memory Inc. Method for increasing storage media performance
US9378075B2 (en) * 2013-05-15 2016-06-28 Amazon Technologies, Inc. Reducing interference through controlled data access
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US9516016B2 (en) 2013-11-11 2016-12-06 Pure Storage, Inc. Storage array password management
US8924776B1 (en) 2013-12-04 2014-12-30 DSSD, Inc. Method and system for calculating parity values for multi-dimensional raid
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
US9513820B1 (en) 2014-04-07 2016-12-06 Pure Storage, Inc. Dynamically controlling temporary compromise on data redundancy
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9798622B2 (en) * 2014-12-01 2017-10-24 Intel Corporation Apparatus and method for increasing resilience to raw bit error rate
CN107209702B (zh) 2014-12-09 2020-11-03 马维尔以色列(M.I.S.L.)有限公司 用于在存储器中执行同时读取和写入操作的系统和方法
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9864769B2 (en) 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US9753655B2 (en) * 2014-12-30 2017-09-05 Samsung Electronics Co., Ltd. Computing system with write buffer including speculative storage write and method of operation thereof
US9569357B1 (en) 2015-01-08 2017-02-14 Pure Storage, Inc. Managing compressed data in a storage system
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
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
US11099746B2 (en) 2015-04-29 2021-08-24 Marvell Israel (M.I.S.L) Ltd. Multi-bank memory with one read port and one or more write ports per cycle
EP3289462B1 (en) * 2015-04-30 2019-04-24 Marvell Israel (M.I.S.L) LTD. Multiple read and write port memory
US11403173B2 (en) 2015-04-30 2022-08-02 Marvell Israel (M.I.S.L) Ltd. Multiple read and write port memory
US10089018B2 (en) 2015-05-07 2018-10-02 Marvell Israel (M.I.S.L) Ltd. Multi-bank memory with multiple read ports and multiple write ports per cycle
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9760432B2 (en) * 2015-07-28 2017-09-12 Futurewei Technologies, Inc. Intelligent code apparatus, method, and computer program for memory
US10180803B2 (en) * 2015-07-28 2019-01-15 Futurewei Technologies, Inc. Intelligent memory architecture for increased efficiency
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10019174B2 (en) 2015-10-27 2018-07-10 Sandisk Technologies Llc Read operation delay
US10193576B2 (en) * 2015-10-30 2019-01-29 Toshiba Memory Corporation Memory system and memory device
US10437480B2 (en) 2015-12-01 2019-10-08 Futurewei Technologies, Inc. Intelligent coded memory architecture with enhanced access scheduler
US10649681B2 (en) 2016-01-25 2020-05-12 Samsung Electronics Co., Ltd. Dynamic garbage collection P/E policies for redundant storage blocks and distributed software stacks
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US20180275922A1 (en) * 2017-03-27 2018-09-27 Siamack Nemazie Solid State Disk with Consistent Latency
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US12045487B2 (en) 2017-04-21 2024-07-23 Pure Storage, Inc. Preserving data deduplication in a multi-tenant storage system
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10606484B2 (en) * 2017-06-23 2020-03-31 Google Llc NAND flash storage device with NAND buffer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
KR102369402B1 (ko) 2017-09-20 2022-03-02 삼성전자주식회사 스토리지 장치, 이의 동작 방법 및 스토리지 장치를 포함하는 스토리지 시스템
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
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
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
KR102446121B1 (ko) * 2018-06-29 2022-09-22 주식회사 멤레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
JP7224689B2 (ja) 2018-10-12 2023-02-20 スーパーメム,アイエヌシー. 誤り訂正及びデータスクラビング回路を備えたメモリシステム
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
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
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US12135888B2 (en) 2019-07-10 2024-11-05 Pure Storage, Inc. Intelligent grouping of data based on expected lifespan
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US12050689B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Host anomaly-based generation of snapshots
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US12050683B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US12079356B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Measurement interval anomaly detection-based generation of snapshots
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US12079333B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Independent security threat detection and remediation by storage systems in a synchronous replication arrangement
US12067118B2 (en) 2019-11-22 2024-08-20 Pure Storage, Inc. Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system
US12079502B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Storage element attribute-based determination of a data protection policy for use within a storage system
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010054165A1 (en) * 2000-06-16 2001-12-20 Fujitsu Limited Memory device having redundant cells
CN1440555A (zh) * 2000-06-29 2003-09-03 英特尔公司 块级边读边写的方法及装置
US20040059869A1 (en) * 2002-09-20 2004-03-25 Tim Orsley Accelerated RAID with rewind capability
US20060026347A1 (en) * 2004-07-29 2006-02-02 Ching-Hai Hung Method for improving data reading performance and storage system for performing the same
US7328315B2 (en) * 2005-02-03 2008-02-05 International Business Machines Corporation System and method for managing mirrored memory transactions and error recovery
CN101174468A (zh) * 2006-11-03 2008-05-07 三星电子株式会社 非易失性存储装置及其数据读取方法
WO2008070173A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
JPH08335186A (ja) * 1995-06-08 1996-12-17 Kokusai Electric Co Ltd 共有メモリの読み出し方法
US6018778A (en) * 1996-05-03 2000-01-25 Netcell Corporation Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
US6170046B1 (en) * 1997-10-28 2001-01-02 Mmc Networks, Inc. Accessing a memory system via a data or address bus that provides access to more than one part
DE69836437T2 (de) * 1997-12-05 2007-09-27 Intel Corporation, Santa Clara Speichersystem mit speichermodul mit einem speichermodul-steuerbaustein
JP3425355B2 (ja) * 1998-02-24 2003-07-14 富士通株式会社 多重書き込み記憶装置
US6314106B1 (en) * 1998-04-20 2001-11-06 Alcatel Internetworking, Inc. Receive processing for dedicated bandwidth data communication switch backplane
US6216205B1 (en) * 1998-05-21 2001-04-10 Integrated Device Technology, Inc. Methods of controlling memory buffers having tri-port cache arrays therein
US6661422B1 (en) * 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
US6728798B1 (en) * 2000-07-28 2004-04-27 Micron Technology, Inc. Synchronous flash memory with status burst output
US6614685B2 (en) * 2001-08-09 2003-09-02 Multi Level Memory Technology Flash memory array partitioning architectures
US6941425B2 (en) * 2001-11-12 2005-09-06 Intel Corporation Method and apparatus for read launch optimizations in memory interconnect
US7062619B2 (en) * 2002-01-31 2006-06-13 Saifun Semiconductor Ltd. Mass storage device architecture and operation
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
US7093062B2 (en) * 2003-04-10 2006-08-15 Micron Technology, Inc. Flash memory data bus for synchronous burst read page
US7127574B2 (en) * 2003-10-22 2006-10-24 Intel Corporatioon Method and apparatus for out of order memory scheduling
US20060026375A1 (en) * 2004-07-30 2006-02-02 Christenson Bruce A Memory controller transaction scheduling algorithm using variable and uniform latency
DE102006035612B4 (de) * 2006-07-31 2011-05-05 Qimonda Ag Speicherpuffer, FB-DIMM und Verfahren zum Betrieb eines Speicherpuffers
US7818528B2 (en) * 2006-09-19 2010-10-19 Lsi Corporation System and method for asynchronous clock regeneration
US7928770B1 (en) * 2006-11-06 2011-04-19 Altera Corporation I/O block for high performance memory interfaces
WO2009079478A1 (en) * 2007-12-14 2009-06-25 Virident Systems, Inc. Distributing metadata across multiple different disruption regions within an asymmetric memory system
US7945752B1 (en) * 2008-03-27 2011-05-17 Netapp, Inc. Method and apparatus for achieving consistent read latency from an array of solid-state storage devices

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010054165A1 (en) * 2000-06-16 2001-12-20 Fujitsu Limited Memory device having redundant cells
CN1440555A (zh) * 2000-06-29 2003-09-03 英特尔公司 块级边读边写的方法及装置
US20040059869A1 (en) * 2002-09-20 2004-03-25 Tim Orsley Accelerated RAID with rewind capability
US20060026347A1 (en) * 2004-07-29 2006-02-02 Ching-Hai Hung Method for improving data reading performance and storage system for performing the same
US7328315B2 (en) * 2005-02-03 2008-02-05 International Business Machines Corporation System and method for managing mirrored memory transactions and error recovery
CN101174468A (zh) * 2006-11-03 2008-05-07 三星电子株式会社 非易失性存储装置及其数据读取方法
WO2008070173A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102582269A (zh) * 2012-02-09 2012-07-18 珠海天威技术开发有限公司 存储芯片及其数据通讯方法、耗材容器、成像设备
CN105009066A (zh) * 2013-01-18 2015-10-28 Dssd股份有限公司 用于镜像多维raid的方法和系统
CN104969293A (zh) * 2013-02-04 2015-10-07 国际商业机器公司 保护存储设备的内容
CN104969293B (zh) * 2013-02-04 2018-03-27 国际商业机器公司 保护存储设备的内容的方法和对应的存储设备

Also Published As

Publication number Publication date
KR20110106307A (ko) 2011-09-28
EP2359248A4 (en) 2012-06-13
CN102257482B (zh) 2015-06-03
KR101638764B1 (ko) 2016-07-22
WO2010071655A1 (en) 2010-06-24
EP2359248A1 (en) 2011-08-24
JP2012513060A (ja) 2012-06-07
US20110258362A1 (en) 2011-10-20
JP5654480B2 (ja) 2015-01-14

Similar Documents

Publication Publication Date Title
CN102257482B (zh) 用于一致读取等待时间的冗余数据存储
US10380018B2 (en) Garbage collection
CN100487672C (zh) 用于分割一逻辑块的方法及设备
US9747170B2 (en) Non-volatile multi-level cell memory system and method of performing adaptive data back-up in the system
KR100663738B1 (ko) 동시 다중 데이터 섹터 프로그래밍 및 다른 지정 블럭들에대한 물리적 블럭 특성들의 저장기능을 갖는 플래시이이피롬 시스템
US9239782B2 (en) Nonvolatile memory device and program method thereof
CN102549672B (zh) 用于非易失性存储器的优化页编程顺序
US8316175B2 (en) High throughput flash memory system
CN109426583A (zh) 运行中的独立磁盘冗余阵列奇偶校验计算
US11301387B2 (en) Memory system configured with a synthesized logical block into which a plurality of data units forming an error correction frame are written
CN103106923A (zh) 存储器装置架构和操作
CN106445724A (zh) 与受保护数据分开存储奇偶校验数据
JP4751163B2 (ja) メモリシステム
CN116088760A (zh) 存储器系统及控制方法
CN109542675A (zh) 存储器系统及其操作方法
DE102009026178A1 (de) Mehrstufiger Controller mit intelligentem Speicher-Transfer-Manager zum Verschachteln mehrfacher Ein-Chip-Flash-Speichereinheiten
CN103635968A (zh) 包含存储器系统控制器的设备和相关方法
US8397018B2 (en) Systems and methods for implementing a programming sequence to enhance die interleave
CN103650054A (zh) 包含存储器系统控制器的设备和相关方法
US20140281150A1 (en) Difference l2p method
US20140328127A1 (en) Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same
US20140208005A1 (en) System, Method and Computer-Readable Medium for Providing Selective Protection and Endurance Improvements in Flash-Based Cache
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
CN104166601A (zh) 一种存储数据的备份方法和装置
CN105390155A (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
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20170123

Address after: American Texas

Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Patentee before: Hewlett Packard Development Co.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150603

Termination date: 20161219