CN102630318A - 并行访问多个闪存/相变存储级存储器的固态存储系统 - Google Patents
并行访问多个闪存/相变存储级存储器的固态存储系统 Download PDFInfo
- Publication number
- CN102630318A CN102630318A CN2010800531956A CN201080053195A CN102630318A CN 102630318 A CN102630318 A CN 102630318A CN 2010800531956 A CN2010800531956 A CN 2010800531956A CN 201080053195 A CN201080053195 A CN 201080053195A CN 102630318 A CN102630318 A CN 102630318A
- Authority
- CN
- China
- Prior art keywords
- integrated circuit
- fault
- channels
- data
- storage system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1028—Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
- G11C29/765—Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
Abstract
提供了通过使用容错架构以及一个用于随机/突发错误校正的纠错码(ECC)机制和L层交织机制,处理固态驱动器(SSD)中的故障的存储集成电路(IC)的问题的系统和方法。此处描述的系统和方法在一个或多个集成电路故障时保持SSD运行,并且允许从故障的集成电路中恢复先前存储的数据,并允许在其它运行的集成电路中校正随机/突发的错误。这些系统和方法将故障的集成电路以此处作为备用集成电路的功能/运行完全的集成电路代替。此外,这些系统和方法改善了最大可实现读取/写入数据率方面的I/O性能。
Description
背景技术
目前,基于闪存的存储是固态驱动器(solid-stat drive,SSD)中最常见的非易失性RAM技术,但是可以预见,在不久的将来,如相变存储级存储器(phase-change storage-class memory,PCM)的其它技术将在固态存储系统中使用。实现高性能I/O的通常做法是使用多个独立的并且并行访问的信道。每个信道中实现的数据率主要由闪存设备内部完成各自的操作所需要的“页面写入(Page Write)”和“页面读取(Page Read)”时间、以及设备接口处的时钟速率所限制。
当前在SSD中,除了成本和I/O性能以外,使用闪存芯片或闪存集成电路设备(IC)的一个主要问题是可靠性和耐久性问题,这是由于闪存单元中可以执行的写入/擦除操作的有限数目造成的。这种现象被认为是持久性问题。闪存单元的写入/擦除操作的典型最大数目在1×104至1×105范围内,而PCM单元的写入操作的典型最大数目在1×106至1×108范围内。此外,所部署的基于闪存的SSD中执行的测量指示:SSD中(特别是需要高I/O速率的服务器应用中)使用的闪存芯片呈现出比预期更高的故障率(一个或多个闪存IC故障)。
由于每个SSD使用大量(通常为几十个)闪存IC,因此SSD内部至少具有一个故障的IC的概率是很大的。依赖于SSD的架构,当闪存设备故障时,部分SSD(在某些情况下是全部SSD)故障。在现有SSD中,用户扇区或编码的用户扇区或码字存储在单一闪存IC中,并且使用第一纠错码产生的附加奇偶校验码元用于校正随机/突发错误,即,用于提供数据可靠性和增长的持久性。在这种情况下,当闪存IC故障时,存储于这个特定IC中的码字不能被恢复,这是不希望发生的。现有SSD使用第二错误检测/校正码来处理设备故障的问题。然而,这增加了存储系统实现的复杂度。
发明内容
根据本发明的一个实施例,提供了固态存储系统。该系统包括多个用于存储数据的集成电路;经由多个信道的一个或多个耦合至多个存储设备的控制器,所述控制器可操作地控制多个集成电路的操作,并且采用一个L层(L-fold)交织纠错码来提供数据可靠性和增长的持久性,并且能够从故障的集成电路中恢复数据;以及一个或多个备用集成电路,当与多个信道的一个或多个耦合的多个集成电路的一个或多个故障时,选择性地耦合至所述信道的一个或多个。
根据本发明的另一个实施例,提供了用于提供固态驱动器的数据可靠性和增长的持久性并能够从故障的集成电路中恢复数据的方法。该方法包括使用采用了一个L层交织纠错码的控制器,在多个集成电路中存储码字片段,所述控制器与多个集成电路经由多个信道的一个或多个进行信号通信,所述控制器可操作地控制多个集成电路的操作;以及当与所述信道耦合的多个集成电路的一个或多个故障时,将一个或多个备用集成电路耦合至所述多个信道的一个或多个。
根据本发明的再一个实施例,提供了用于提供固态驱动器的数据可靠性和增长的持久性并能够从故障的集成电路中恢复数据的方法。该方法包括使用采用了一个L层交织纠错码的SSD控制器,在多个集成电路中存储码字片段,所述SSD控制器与多个集成电路经由多个信道的一个或多个进行信号通信,所述控制器可操作地控制多个集成电路的操作;检测所述多个集成电路的一个或多个中的故障;当与所述信道耦合的所述多个集成电路的一个或多个故障时,将一个或多个备用集成电路耦合至所述多个信道的一个或多个;以及恢复由于所述多个集成电路的一个或多个的故障导致的丢失的数据,并且校正在运行的多个集成电路的一个或多个上的错误,所述被恢复的数据存储于一个或多个备用集成电路中。
额外的特征和优点通过本发明的技术而实现。此处详细描述本发明的其它实施例和各方面,并且它们被视为要求权利的发明的一部分。参考附图和描述将会更好地理解本发明的优点和特征。
附图说明
在权利要求中具体指出并明确要求保护被认为是本发明的主题。本发明的前述以及其它特征和优点将从下面结合附图的详细描述而显而易见,所述附图中:
图1是根据本发明的一个示例性实施例的固态驱动器及其架构的示意图;
图2是根据本发明的一个示例性实施例的固态驱动器的集成电路的IC组的示意图;
图3A是根据本发明的一个示例性实施例的一个或多个备用集成电路的示意图,所述备用集成电路选择性地耦合至故障的集成电路所附接至的一个或多个信道;
图3B是根据本发明的一个示例性实施例的备用集成电路的示意图,所述备用集成电路经由总线开关耦合至故障的集成电路所附接至的信道;
图3C是根据本发明的一个示例性实施例的另一个备用集成电路的示意图,所述备用集成电路经由所述总线开关耦合至另一个故障的集成电路所附接至的相同的信道;
图3D是根据本发明的一个示例性实施例的另一个备用集成电路的示意图,所述备用集成电路经由所述总线开关耦合至另一个故障的集成电路所附接至的另一个信道;以及
图4A-4B图示根据本发明的一个示例性实施例的用于从固态驱动器中的故障的集成电路恢复数据的方法的流程图。
具体实施方式
本发明的示例性实施例提供闪存存储系统和方法,其通过使用容错架构以及用于随机/突发错误校正的纠错码(ECC)机制和交织机制,处理固态驱动器(SSD)中的故障的存储集成电路(IC)的问题。一般而言,当一个或多个集成电路故障、并且允许从故障的集成电路恢复先前存储的数据、并且允许在其它运行的集成电路中校正随机/突发的错误时,此处描述的系统和方法保持SSD运行。这些系统和方法将故障的集成电路用此处当作备用集成电路的功能/运行完全的集成电路代替。此外,在示例性实施例中实施的容错架构可以改善可实现的最大读取/写入数据率方面的I/O性能。
此处描述的集成电路可以是任何类型的固态存储设备。在一个示例性实施例中,此处描述的集成电路是闪存设备,其为可重写的电子非易失性数字存储介质。当然,在其它示例性实施例中可以使用其它类型的固态存储设备,并且不限于此处描述的示例。
此处使用的术语“SSD控制器”或“控制器”是指专用集成电路(ASIC),和电子电路、处理器(共享、专用或组)以及执行一个或多个软件或固件程序/算法的固态存储器、组合逻辑电路、和/或提供所述功能性的其它合适的组件。SSD控制器执行几个关键功能,诸如损耗均衡(wear leveling)、无用信息收集(garbage collection)、不良块管理、逻辑块地址(LBA)到物理块地址(PBA)的映射、以及纠错编码/解码,以便确保存储数据的高可靠性和可用性、设备的高持久性以及存储系统的长寿命。
图1示出根据本发明的一个示例性实施例的固态驱动器(SSD)100以及其容错架构的示意图。SSD 100包括多个用于存储数据的集成电路102。每个集成电路各自与SSD控制器或控制器104进行信号通信。多个集成电路102组织为多个IC组106,其中每个组包括多个集成电路102,具体地如图所示为M个集成电路。进一步组织集成电路,使得组中的每个集成电路102都与源自SSD控制器104的一个或多个信道108进行信号通信。这些信道108用于启用/禁用附接于特定数据信道116的集成电路102。SSD控制器104通过数据信号(一般地由双箭头116指示)经由数据总线118与集成电路通信。根据一个实施例,信道116是异步信道。在一个实施例中,每个信道116包括一个或多个分别用于访问集成电路102的子信道。根据一个示例性实施例,信道116是同步的。此同步配置允许SSD控制器104同时访问多个集成电路102。在替代实施例中,并行地访问信道116,但信道116作为独立信道。因此,SSD 100可以包括同步和异步的信道。这样,组中不同的集成电路可以被同时(同步)访问或者在不同时刻(异步)访问。
根据一个示例性实施例,SSD控制器104以同步方式访问多个集成电路102。换句话说,SSD控制器104同时驱动每个集成电路102。这使用同一个控制信号(其一般地由双箭头112指示)完成,所述控制信号通过SSD控制器104经由控制总线114传递。用这个同步架构,所有同步信道可以共享SSD控制器的同一个控制引脚。这样,来自SSD控制器104的相同的控制信号112用于为所有信道驱动所有集成电路。结果,SSD控制器端的引脚数减少。这允许在SSD中使用额外的信道,因而提高SSD 100的读取数据率和写入数据率,从而提供系统性能的整体上的提高。在一个示例中,对于读取和写入操作这二者都实现了20%的提高。此同步架构对于限定SSD控制器上的引脚数目的情况是有利的。根据另一个示例性实施例,预期SSD控制器104以异步方式访问集成电路102。然而,这将失去对于SSD控制器减少引脚数和/或提高读取/写入数据率的优势。
图2示出根据一个示例性实施例的SSD 100的单一IC组106。尽管SSD100包括多个IC组,然而在图2中仅详细示出一个。将IC组106(即,组#1)配置为存储多个用户数据扇区或码字200(即,码字1-码字L),其中的每个包含数据码元和奇偶校验码元的组合。奇偶校验码元包含用于检测/校正高达随机/突发错误的最大数目的纠错码(ECC)奇偶校验位以及循环冗余检验(CRC)奇偶校验位。每个码元可以包括取决于执行的纠错码(ECC)的n位数据。例如,如果ECC码是二进制Bose-Chaudhuri-Hocquenghem(BCH)码,则n可以等于1,如果ECC码是使用8位码元的Reed-Solomon(RS)码,则n可以等于8,如果ECC码是使用12位码元的RS码,则n可以等于12,等等。尽管如此,在组内的每个集成电路中,存储每个码字的有限数目的码元,使得每个集成电路的码元数目保持小于或等于ECC奇偶校验码元的数目。这些奇偶校验码元不仅用于校正错误以提供数据可靠性和增长的持久性,而且也可以用于恢复故障的集成电路中丢失的数据,其通常被视为擦除(erasure),该擦除的位置对于由SSD控制器104实施的ECC解码器是已知的。
每个码字分布在特定组的集成电路102中,使得组内的每个集成电路102包括对于组内的每个集成电路形成码字片段204的页面的每个码字200的片段202。这样,每个页面204包括来自不同码字的码字片段。例如,一个页面包含来自码字1、码字k、以及码字L的片段。这些页面204作为大分布式页面(LDP)206同时写入其各自的集成电路。尽管未示出,但应该理解的是,SSD 100的每个IC组106可以支持多个LDP,并且不应限定于图2中所示的配置。这样,由每个集成电路组支持的每个LDP包括多个码字,并且因而包括多个ECC/CRC奇偶校验码元。此外,每个LDP分布于组中的M个集成电路中。因此,每个集成电路可以包括多个页面204。将纠错码定义为所有可能码字的列表。L层交织纠错码将来自所有可能码字的列表的L个码字交织。使用L层交织纠错码产生图2中所示的LDP。图2中的配置通过使用单一L层交织错误检测/校正码,不仅实现了数据可靠性和增长的持久性,而且实现了针对设备故障的健壮性。采用图2中的L层交织纠错码,来提供数据可靠性和增长的持久性,并且使来自故障的集成电路的数据能够恢复。实现了数据可靠性和增长的持久性以及针对设备故障的健壮性的单一纠错码的使用降低了实现复杂度。
在一个实施例中,术语“增长的持久性”意味着,当与未采用任何纠错码的集成电路的存储单元的持久性比较时,通过采用一个L层交织纠错码而增长了集成电路的存储单元的持久性。
根据一个示例性实施例,SSD控制器104选择性地将一个或多个备用集成电路300耦合到故障的集成电路所附接到的多个信道中的一个或多个,如图3A所示。这通过总线开关302完成,该总线开关将可用的集成电路300连接至故障的集成电路所连接到的特定的信道。备用集成电路300并未与特定的信道相关联。用这个配置,多个集成电路102可以在同一个信道或多个信道中故障。例如,如果一个集成电路102(其在这个示例中一般地用参考标号304指示)在一个信道中故障,那么SSD控制器104将有故障的集成电路304的信道耦合至第一个可用的备用集成电路,如图3B中所示。在这个示例中,如果另一个集成电路102(其在这个示例中一般地用参考标号306指示)在不同的信道中故障,那么SSD控制器104将该信道耦合至另一个可用的备用集成电路,如图3C中所示。替代地,如果另一个集成电路102(其在这个示例中一般地用参考标号308指示)在与集成电路304相同的信道中故障,那么SSD控制器104将同一个信道耦合至另一个可用的备用集成电路,如图3D中所示。尽管只示出两个备用集成电路,但是应理解的是,可用使用任何数目的备用集成电路,并且不应限定于此处所示的配置。
根据其他示例性实施例,预期一个IC组106用作备用集成电路的库(reservoir)。在这些实施例中,当集成电路故障时,存储于作为库的组中的数据传递到其它组,并且库组的每个集成电路可以用作备用集成电路。当然,这种方法与上述其它方法可以组合用于代替故障的集成电路。还预期可以采用目前未使用的一个或多个集成电路102作为备用集成电路。
根据一个实施例,SSD控制器104通过多种手段(例如,在其状态寄存器中的预定位和/或硬件控制信号)可操作地检测故障的集成电路。在一个特定实施例中,SSD控制器104基于诸如不正确的定时信号的硬件指示,检测故障的集成电路。当然,可以在其它示例性实施例中使用其它检测故障的集成电路的方法。
在操作中,当SSD控制器104检测故障的集成电路时,它开始重建过程或数据恢复处理。如上所述,由于每个集成电路包括每个码字的片段,因此重建过程包括定位故障的集成电路所处的同一个组中的集成电路,以及读取该组内的大分布式页面206的每一个页面。重建过程还包括SSD控制器104执行ECC解码算法,以再生故障的集成电路上损坏的数据。ECC算法可以是任何传统的解码算法或修改的解码算法。SSD控制器104接着将这个再生的数据存储在一个备用集成电路300中,所述备用集成电路300连接至故障的集成电路所耦合到的信道。
假设码字包含已知位置的u个擦除以及其位置未知的e个错误。线性ECC码的最小汉明距离d确定码的错误/擦除校正能力。根据一个实施例,如果(u+2e)≤(d–1),则SSD控制器104执行的ECC解码算法可以校正码字中的u个擦除和e个错误。
图4A-4B示出根据一个示例性实施例的用于从故障的集成电路中恢复数据的方法。从块400开始操作,将s设置为0。在这个示例中,s表示已经用于代替故障集成电路的备用集成电路的总数。在块402,确定是否有故障的集成电路。在一个实施例中,SSD控制器104基于诸如接收到不正确的定时信号的硬件指示而检测到故障的集成电路。如果答案是“否”,则执行块402,直至检测到故障的集成电路。如果答案是“是”,则在块404确定是否s<S。S是SSD 100中可用的备用集成电路的总数。如果答案是“否”,则在块406确定是否可以使用未使用的集成电路作为备用集成电路。换句话说,在块406中确定是否可以使用一个运行的集成电路102作为备用集成电路。如果答案是“否”,则在块408指示另一个IC故障可能导致数据丢失的关键模式操作。如果可包括一个或多个备用IC的组中的两个或多个IC故障,则数据丢失。如果块408的答案是“是”,则在块410将S递增1。此时,由于使用来自一个组的未使用的集成电路作为备用集成电路,所以备用集成电路的数目增加一。这样,SSD中的总存储容量减少。接下来,在块412识别故障的集成电路所附接至的信道,并且选择一个备用集成电路。如果块404的答案是“是”,则继续到块412。接着,在块414连接备用集成电路以代替故障的集成电路,并且开始读取包含故障的集成电路的组中的所有LDP。在块416开始读取所有LDP。具体地,在块416将p设置为1。此处,p表示在从集成电路故障恢复期间正读取的LDP的数目,使得1≤p≤P。在块418,读取第p个LDP中的L个码字。在这种情况下,由于将p设置为1,因此SSD控制器102读取第一个LDP中的L个码字或所有码字。接下来,在块420确定有故障的集成电路的组中运行的集成电路在第p个LDP中是否有错误。如果答案是“是”,则在块422确定第p个LDP中的所有L个码字中的错误是否是可恢复的。这通常基于码中设置了多少冗余。在一个实施例中,如果(u+2e)≤(d–1),则ECC解码算法可以校正码字中的u个擦除和e个错误。如果块422的答案是“否”,则在块424指示读取第p个LDP失败。如果块422的答案是“是”,则在块426校正第p个LDP的错误。接着,在块428,恢复第p个LDP中的丢失的数据并且将其存储在备用集成电路上。如果e<floor((d-1-m)/2),则存储在组中运行的集成电路上的码字片段中的所有错误是可恢复的,其中floor((d-1-m)/2)是四舍五入的整数,e代表特定的码字中的运行的集成电路上的(L-1)个码字片段中的错误数目,并且m表示由于芯片故障所导致的丢失、遗失或擦除的码字中的码元的最大数目。在块430,确定是否p<P,其中P表示集成电路中的页面总数,其等于组中的LDP总数。如果答案是“否”,则在块432将s递增1。如果答案是“是”,则在块434将p递增1。这样,读取了组中的每个LDP,并且尽可能地校正了所述组的每个LDP中的所有L个码字中的错误和擦除。如图所示,如果块420的答案是“否”,则进行到块428。此外,在块424指示失败后,进行到块430。
此处使用的术语仅为描述特定实施例的目的,并且不意图限定本发明。如此处所使用的,单数形式“一个”、“这个”也意图包括复数形式,除非上下文明确指出并非如此。将进一步理解到,在本说明书中使用的术语“包含”和/或“包括”指定所述的特征、整数、步骤、操作、元件、和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件组件、和/或其组合的存在或添加。
与在所附权利要求中的所有方法或步骤加功能元素相对应的结构、材料、行为及等价物意图包括用于执行具体要求权利的与其它要求权利的元件相结合的功能的任何结构、材料、或行为。已经为了图示和描述的目的而呈现本发明的描述,但本发明不意图为穷举的或限定于所公开的形式。多种修改和变化对于本领域的普通技术人员将是显而易见的,而不偏离本发明的精神和范围。选择和描述实施例以便最好地说明本发明的原理和实际应用,并使本领域其他普通技术人员能理解本发明的具有适于预期的具体使用的各种修改的各种实施例。
此处描绘的流程图仅为一个示例。可以存在此处描述的图或步骤(或操作)的多种变化,而不偏离本发明的精神。例如,步骤可以以不同的顺序执行,可以添加、删除或修改。所有这些变化都被认为是要求保护的发明的一部分。
尽管已经描述了本发明的优选实施例,但本领域技术人员将理解的是,现在和将来可以做出落入所附权利要求的范围内的各种改善和提高。这些权利要求应诠释为维护本发明首先描述的恰当的保护。
Claims (22)
1.一种固态存储系统,包括:
多个集成电路,用于存储数据;
控制器,所述控制器经由多个信道的一个或多个,耦合至所述多个集成电路,所述控制器可操作地控制所述多个集成电路的操作,并采用一个L层交织纠错码,以提供数据可靠性和增长的持久性,并且使来自故障的集成电路的数据能够恢复;以及
一个或多个备用集成电路,当与多个信道的一个或多个耦合的所述多个集成电路的一个或多个故障时,所述一个或多个备用集成电路选择性地耦合至所述多个信道的一个或多个。
2.如权利要求1所述的存储系统,其中,所述多个集成电路组织为多个组,所述多个组的每一个具有所述多个集成电路的一个或多个,每一个所述集成电路具有包含一个或多个码字的片段的多个页面,来自所述多个集成电路的所述多个页面形成多个大分布式页面,所述多个大分布式页面的每一个包括来自所述多个集成电路的每一个的所述多个页面之一。
3.如权利要求2所述的存储系统,其中,所述多个信道的一个或多个耦合至所述多个组的每一个中的所述多个集成电路的一个或多个,所述多个信道同步地操作。
4.如权利要求2所述的存储系统,其中,每个码字包括数据码元和用于恢复数据以及检测和校正错误的奇偶校验码元。
5.如权利要求2所述的存储系统,其中,所述多个信道分组为一个或多个主要信道,所述一个或多个主要信道的每一个具有所述多个信道的一个或多个,并且所述一个或多个主要信道异步地操作。
6.如权利要求2所述的存储系统,其中,所述多个大分布式页面的每一个具有一个或多个码字,所述码字能够恢复由于所述多个集成电路的一个或多个的故障而造成的丢失数据、并能够校正所述多个集成电路的一个或多个运行的集成电路上的一个或多个错误。
7.如权利要求5所述的存储系统,其中,来自故障的集成电路的丢失数据通过读取所述多个组中具有所述故障的集成电路的一个组的所述一个或多个大分布式页面的每一个中的每一个码字来恢复。
8.如权利要求5所述的存储系统,其中,来自故障的集成电路的被恢复的数据存储于一个或多个备用集成电路中。
9.如权利要求1所述的存储系统,其中,当检测到所述多个集成电路的一个或多个故障时,所述控制器可操作地将一个或多个备用集成电路经由总线开关耦合至所述多个信道的一个或多个。
10.如权利要求1所述的存储系统,其中,所述多个集成电路是基于闪存的存储设备。
11.如权利要求1所述的存储系统,其中,所述多个集成电路的每一个由从所述控制器产生的多个控制信号控制,所述多个集成电路的每一个配置为同时接收所述多个控制信号。
12.如权利要求1所述的存储系统,其中,采用所述多个集成电路的一个或多个可用的集成电路作为备用集成电路。
13.一种用于提供固态驱动器的数据可靠性和增长的持久性并能够从故障的集成电路中恢复数据的方法,包括:
使用采用一个L层交织纠错码的控制器,在多个集成电路中存储码字片段,所述控制器与所述多个集成电路经由多个信道的一个或多个进行信号通信,所述控制器可操作地控制所述多个集成电路的操作;以及
当与所述多个信道的一个或多个耦合的所述多个集成电路的一个或多个故障时,将一个或多个备用集成电路耦合至所述多个信道的一个或多个。
14.如权利要求13所述的方法,还包括将所述多个集成电路组织为多个组,所述多个组的每一个具有所述多个集成电路的一个或多个,每一个所述集成电路具有包含一个或多个码字的片段的多个页面,来自所述多个集成电路的所述多个页面形成多个大分布式页面,所述多个大分布式页面的每一个包括来自所述多个集成电路的每一个的所述多个页面之一。
15.如权利要求14所述的方法,其中,所述多个信道的一个或多个耦合至所述多个组的每一个中的所述多个集成电路的一个或多个,所述多个信道同步地操作。
16.如权利要求14所述的方法,每个码字包括数据码元和用于恢复数据以及检测和校正错误的奇偶校验码元。
17.如权利要求14所述的方法,其中,所述多个信道分组为一个或多个主要信道,所述一个或多个主要信道的每一个具有所述多个信道的一个或多个,并且所述一个或多个主要信道异步地操作。
18.如权利要求14所述的方法,其中,所述多个大分布式页面中的每一个具有一个或多个码字,所述码字能够恢复由于所述多个集成电路的一个或多个的故障而造成的丢失数据、并能够校正所述多个集成电路的一个或多个运行的集成电路上的一个或多个错误。
19.如权利要求18所述的方法,其中,来自故障的集成电路的丢失数据通过读取所述多个组中具有所述故障的集成电路的一个组的所述一个或多个大分布式页面的每一个中的每一个码字来恢复。
20.如权利要求19所述的方法,还包括通过从固态驱动器控制器产生的多个控制信号,控制所述多个集成电路的每一个,所述多个集成电路的每一个配置为同时接收所述多个控制信号。
21.如权利要求13所述的方法,其中,采用所述多个集成电路的一个或多个可用的集成电路作为备用集成电路。
22.一种用于提供固态驱动器的数据可靠性和增长的持久性并能够从故障的集成电路中恢复数据的方法,包括:
使用采用一个L层交织纠错码的固态驱动器控制器,在多个集成电路中存储码字片段,所述固态驱动器控制器与所述多个集成电路经由多个信道的一个或多个进行信号通信,所述固态驱动器控制器可操作地控制所述多个集成电路的操作;
检测所述多个集成电路的一个或多个中的故障;
当与所述多个信道的一个或多个耦合的所述多个集成电路的一个或多个故障时,将一个或多个备用集成电路耦合至所述多个信道的一个或多个;以及
恢复由于所述多个集成电路的一个或多个的故障导致的丢失的数据,并且校正在所述多个集成电路的一个或多个运行的集成电路上的错误,所恢复的数据存储于一个或多个备用集成电路中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/627,364 | 2009-11-30 | ||
US12/627,364 US8495471B2 (en) | 2009-11-30 | 2009-11-30 | Solid-state storage system with parallel access of multiple flash/PCM devices |
PCT/IB2010/055458 WO2011064754A1 (en) | 2009-11-30 | 2010-11-26 | Solid-state storage system with parallel access of multiple flash/pcm devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102630318A true CN102630318A (zh) | 2012-08-08 |
CN102630318B CN102630318B (zh) | 2015-06-03 |
Family
ID=43707733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080053195.6A Active CN102630318B (zh) | 2009-11-30 | 2010-11-26 | 并行访问多个闪存/相变存储级存储器的固态存储系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8495471B2 (zh) |
CN (1) | CN102630318B (zh) |
DE (1) | DE112010003645B4 (zh) |
GB (1) | GB2488057B (zh) |
WO (1) | WO2011064754A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107430540A (zh) * | 2015-04-02 | 2017-12-01 | 密克罗奇普技术公司 | 用于硬件验证的运行时间ecc错误注入方案 |
CN112470129A (zh) * | 2018-07-24 | 2021-03-09 | Arm有限公司 | 容错存储器系统 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539924B1 (en) | 2005-11-15 | 2009-05-26 | Western Digital Technologies, Inc. | Disk drive implementing data path protection by encoding large host blocks into sub blocks |
US8397107B1 (en) * | 2009-12-11 | 2013-03-12 | Western Digital Technologies, Inc. | Data storage device employing data path protection using both LBA and PBA |
US10089017B2 (en) | 2011-07-20 | 2018-10-02 | Futurewei Technologies, Inc. | Method and apparatus for SSD storage access |
US9424128B2 (en) | 2011-08-12 | 2016-08-23 | Futurewei Technologies, Inc. | Method and apparatus for flexible RAID in SSD |
US8671250B2 (en) | 2011-12-15 | 2014-03-11 | Western Digital Technologies, Inc. | Data storage device generating redundancy for data path protection of a parity sector |
US9195578B2 (en) | 2012-08-24 | 2015-11-24 | International Business Machines Corporation | Systems, methods and computer program products memory space management for storage class memory |
US9026893B1 (en) | 2012-12-13 | 2015-05-05 | Western Digital Technologies, Inc. | Dynamically assigning inactive pages not used in Reed-Solomon code in non-volatile solid-state storage array |
US9201727B2 (en) | 2013-01-15 | 2015-12-01 | International Business Machines Corporation | Error protection for a data bus |
US9021328B2 (en) | 2013-01-15 | 2015-04-28 | International Business Machines Corporation | Shared error protection for register banks |
US9041428B2 (en) | 2013-01-15 | 2015-05-26 | International Business Machines Corporation | Placement of storage cells on an integrated circuit |
US9043683B2 (en) | 2013-01-23 | 2015-05-26 | International Business Machines Corporation | Error protection for integrated circuits |
US20140317467A1 (en) * | 2013-04-22 | 2014-10-23 | Storart Technology Co., Ltd. | Method of detecting and correcting errors with bch engines for flash storage system |
US20150039813A1 (en) * | 2013-08-05 | 2015-02-05 | Greenliant Llc | NAND Interface Capacity Extender Device For Extending Solid State Drives Capacity, Performance, And Reliability |
KR102059865B1 (ko) | 2013-08-06 | 2020-02-12 | 삼성전자주식회사 | 가변 저항 메모리 장치 및 그것을 포함하는 가변 저항 메모리 시스템 |
US9286176B1 (en) * | 2013-11-08 | 2016-03-15 | Western Digital Technologies, Inc. | Selective skipping of blocks in an SSD |
US9529710B1 (en) | 2013-12-06 | 2016-12-27 | Western Digital Technologies, Inc. | Interleaved channels in a solid-state drive |
GB2524003A (en) | 2014-03-10 | 2015-09-16 | Ibm | Storage device with 2D configuration of phase change memory integrated circuits |
US9582201B2 (en) | 2014-09-26 | 2017-02-28 | Western Digital Technologies, Inc. | Multi-tier scheme for logical storage management |
US11586565B2 (en) | 2016-10-03 | 2023-02-21 | Samsung Electronics Co., Ltd. | Non-volatile storage system and data storage access protocol for non-volatile storage devices |
CN114496051A (zh) * | 2018-10-25 | 2022-05-13 | 华为技术有限公司 | 固态硬盘及固态硬盘管理方法 |
US11474920B2 (en) * | 2020-03-31 | 2022-10-18 | International Business Machines Corporation | Dynamic mapping of logical to physical memory for increased performance |
US11334431B2 (en) * | 2020-09-21 | 2022-05-17 | Alibaba Group Holding Limited | System and method for data protection in solid-state drives |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732291B1 (en) * | 2000-11-20 | 2004-05-04 | International Business Machines Corporation | High performance fault tolerant memory system utilizing greater than four-bit data word memory arrays |
US20080148303A1 (en) * | 2006-12-13 | 2008-06-19 | Hitachi, Ltd. | Storage controller |
WO2009053962A2 (en) * | 2007-10-22 | 2009-04-30 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
CN101552032A (zh) * | 2008-12-12 | 2009-10-07 | 深圳市晶凯电子技术有限公司 | 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3105092B2 (ja) * | 1992-10-06 | 2000-10-30 | 株式会社東芝 | 半導体メモリ装置 |
JPH06266596A (ja) * | 1993-03-11 | 1994-09-22 | Hitachi Ltd | フラッシュメモリファイル記憶装置および情報処理装置 |
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 |
US7827348B2 (en) * | 2000-01-06 | 2010-11-02 | Super Talent Electronics, Inc. | High performance flash memory devices (FMD) |
US6553510B1 (en) * | 1999-09-02 | 2003-04-22 | Micron Technology, Inc. | Memory device including redundancy routine for correcting random errors |
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 |
US6426910B1 (en) * | 2000-08-30 | 2002-07-30 | Micron Technology, Inc. | Enhanced fuse configurations for low-voltage flash memories |
US6691276B2 (en) * | 2001-06-25 | 2004-02-10 | Intel Corporation | Method for detecting and correcting failures in a memory system |
US7475326B2 (en) * | 2003-06-27 | 2009-01-06 | Maxwell Technologies, Inc. | Error detection and correction method and system for memory devices |
US7065697B2 (en) * | 2003-07-29 | 2006-06-20 | Hewlett-Packard Development Company, L.P. | Systems and methods of partitioning data to facilitate error correction |
US20090204872A1 (en) * | 2003-12-02 | 2009-08-13 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
US7177189B2 (en) * | 2004-03-01 | 2007-02-13 | Intel Corporation | Memory defect detection and self-repair technique |
US7331010B2 (en) * | 2004-10-29 | 2008-02-12 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US7360132B1 (en) * | 2005-05-19 | 2008-04-15 | Sun Microsystems, Inc. | System and method for memory chip kill |
US20080077840A1 (en) * | 2006-09-27 | 2008-03-27 | Mark Shaw | Memory system and method for storing and correcting data |
US8019940B2 (en) * | 2006-12-06 | 2011-09-13 | Fusion-Io, Inc. | Apparatus, system, and method for a front-end, distributed raid |
US20090083482A1 (en) * | 2007-09-21 | 2009-03-26 | Vizio | Increasing the speed at which flash memory is written and read |
JP5220185B2 (ja) * | 2008-05-16 | 2013-06-26 | フュージョン−アイオー・インコーポレーテッド | 故障したデータ記憶機構を検出し、置き換えるための装置、システム及び方法 |
US7954021B2 (en) * | 2009-10-23 | 2011-05-31 | International Business Machines Corporation | Solid state drive with flash sparing |
-
2009
- 2009-11-30 US US12/627,364 patent/US8495471B2/en active Active
-
2010
- 2010-11-26 CN CN201080053195.6A patent/CN102630318B/zh active Active
- 2010-11-26 WO PCT/IB2010/055458 patent/WO2011064754A1/en active Application Filing
- 2010-11-26 DE DE112010003645.4T patent/DE112010003645B4/de active Active
- 2010-11-26 GB GB1207470.4A patent/GB2488057B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732291B1 (en) * | 2000-11-20 | 2004-05-04 | International Business Machines Corporation | High performance fault tolerant memory system utilizing greater than four-bit data word memory arrays |
US20080148303A1 (en) * | 2006-12-13 | 2008-06-19 | Hitachi, Ltd. | Storage controller |
WO2009053962A2 (en) * | 2007-10-22 | 2009-04-30 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
CN101552032A (zh) * | 2008-12-12 | 2009-10-07 | 深圳市晶凯电子技术有限公司 | 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107430540A (zh) * | 2015-04-02 | 2017-12-01 | 密克罗奇普技术公司 | 用于硬件验证的运行时间ecc错误注入方案 |
CN107430540B (zh) * | 2015-04-02 | 2021-07-20 | 密克罗奇普技术公司 | 用于硬件验证的运行时间ecc错误注入方案 |
CN112470129A (zh) * | 2018-07-24 | 2021-03-09 | Arm有限公司 | 容错存储器系统 |
Also Published As
Publication number | Publication date |
---|---|
DE112010003645B4 (de) | 2020-06-04 |
US20110131472A1 (en) | 2011-06-02 |
CN102630318B (zh) | 2015-06-03 |
WO2011064754A1 (en) | 2011-06-03 |
DE112010003645T5 (de) | 2012-10-31 |
GB2488057A (en) | 2012-08-15 |
US8495471B2 (en) | 2013-07-23 |
GB2488057B (en) | 2017-12-06 |
GB201207470D0 (en) | 2012-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102630318B (zh) | 并行访问多个闪存/相变存储级存储器的固态存储系统 | |
US10218789B2 (en) | Erasure correcting coding using temporary erasure data | |
US10847246B2 (en) | Memory systems performing reconfigurable error correction operation using ECC engine with fixed error correction capability | |
US8725944B2 (en) | Implementing raid in solid state memory | |
CN100545817C (zh) | 用于提高数据可靠性的数据管理技术 | |
US9075745B1 (en) | System and method for adding a drive to a storage system having multiple drives | |
KR101298827B1 (ko) | 반도체 디스크 및 시스템 | |
US8656257B1 (en) | Nonvolatile memory controller with concatenated error correction codes | |
CN105009087B (zh) | 用于数据存储系统的数据可靠性方案 | |
US8327224B2 (en) | Data recovery in a solid state storage system | |
US8589761B2 (en) | Apparatus and methods for providing data integrity | |
KR101679530B1 (ko) | 이용 가능한 메모리 공간에 기초한 이중화 저장 장치 구성의 선택 | |
US20120311381A1 (en) | Apparatus and methods for providing data integrity | |
US7944729B2 (en) | Simultaneously writing multiple addressable blocks of user data to a resistive sense memory cell array | |
WO2017103751A1 (en) | Recovery of multi-page failures in non-volatile memory system | |
KR20100113135A (ko) | 반도체 기억 장치, 그 제어 방법, 및 에러 정정 시스템 | |
US10339343B2 (en) | Storage system and method for improved generation and storage of data protection information | |
CN102394114B (zh) | 具有自适应纠错能力的bch码纠错方法 | |
CN103135946B (zh) | 基于ssd的大规模存储系统中的文件布局方法 | |
CN111538621B (zh) | 针对位线故障的软芯片猎杀恢复 | |
US8856616B1 (en) | Two dimensional encoding for non-volatile memory blocks | |
JP6524126B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
WO2008057820A1 (en) | Nonvolatile memory with modulated error correction coding | |
US9715908B2 (en) | Controller for a solid-state drive, and related solid-state drive | |
CN113168882A (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 |