CN102301340A - 固态盘中改进的错误校正 - Google Patents
固态盘中改进的错误校正 Download PDFInfo
- Publication number
- CN102301340A CN102301340A CN2009801556055A CN200980155605A CN102301340A CN 102301340 A CN102301340 A CN 102301340A CN 2009801556055 A CN2009801556055 A CN 2009801556055A CN 200980155605 A CN200980155605 A CN 200980155605A CN 102301340 A CN102301340 A CN 102301340A
- Authority
- CN
- China
- Prior art keywords
- data
- groove
- nonvolatile memory
- ecc
- page
- 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
- 239000007787 solid Substances 0.000 title abstract 2
- 230000015654 memory Effects 0.000 claims abstract description 37
- 238000000034 method Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000001259 photo etching Methods 0.000 description 1
- 230000001915 proofreading effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- 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/1048—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 arrangements adapted for a specific error detection or correction feature
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/60—Solid state media
- G11B2220/61—Solid state media wherein solid state memory is used for storing A/V content
Abstract
在一些实施例中,一种固态盘包括非易失性存储器以及控制器。所述控制器对存储在所述非易失性存储器上的数据执行ECC,并且如果所述ECC不能校正所述数据,则对所述数据执行奇偶校验操作。描述并要求保护其它实施例。
Description
技术领域
本发明总体上涉及固态大容量存储产品中改进的可靠性。
背景技术
固态盘(SSD)是包含非移动部件的高性能存储设备。SSD比具有传统旋转磁介质的典型硬盘驱动器快很多,并且通常包括控制器,用于管理数据存储。控制器管理SSD的操作,其包括数据存储和访问以及SSD和主机设备之间的通信。控制器还执行纠错码(ECC)以确保写在SSD上的数据的完整性。ECC识别和校正SSD和主机设备之间传送的数据中的错误。然而,存储介质的一些故障机制超过了ECC引擎的校正能力,从而引起不可恢复的数据或数据丢失。例如,灾难性的管芯失效。
2006年3月31日提交的美国专利申请序号11/396,262且标题为“Improving Reliability of Write Operations to a Non-Volatile Memory”通过保持写入到擦除区块的所有数据的副本直到最后的程序操作成功为止来解决程序失效(program failure)。该专利申请解决程序失效问题而不是ECC失效问题或者管芯失效问题。所以,出现了解决ECC失效和/或管芯失效的需要。
附图说明
从以下给出的详细描述并且从本发明的一些实施例的附图将更充分地理解本发明,然而其不应当被拿来将本发明限制到描述的特定实施例,而是仅为了解释和理解的目的。
图1说明了根据本发明的一些实施例的系统。
图2说明了根据本发明的一些实施例的流程图。
具体实施方式
本发明的一些实施例涉及固态盘中改进的错误校正。
在一些实施例中,固态盘(SSD)包括非易失性存储器和控制器。控制器对存储在非易失性存储器上的数据执行ECC(纠错码),并且如果ECC不能校正该数据,则对该数据执行奇偶校验操作。
在一些实施例中,系统包括主机和固态盘。固态盘包括非易失性存储器和控制器。控制器对存储在非易失性存储器上的主机数据执行ECC,并且如果ECC不能校正该数据,则对该数据执行奇偶校验操作。
在一些实施例中,对存储在固态盘的非易失性存储器上的数据执行ECC。如果ECC不能校正数据,则对该数据执行奇偶校验操作。
在一些实施例中,异或(XOR)纠错码(ECC)技术用于保护固态盘(SSD)免受部件级失效、编程失效(programming failure)(例如,NAND编程失效)和/或来自主ECC系统的不可校正的错误。例如,在一些实施例中,类似于在大容量存储环境中使用的那些技术的奇偶校验技术(例如,磁盘冗余阵列或RAID实现)可以实现在SSD的非易失性存储器环境中。在一些实施例中,通过XOR奇偶校验生成器写入来自主机流的数据流过XOR奇偶校验生成器,并且主机数据加上奇偶校验被写入到非易失性存储器。在SSD的主ECC引擎不能校正主机区段的情况下,或者在管芯(例如,NAND管芯)失效的情况下,第二级错误校正根据一些实施例被实现,以便获得校正数据。
在一些实施例中,除了不可校正的区段,从介质读取奇偶校验和主机数据,并且通过使用XOR操作恢复丢失数据。在诸如NAND程序失效的程序失效的情况下,其中当在同一擦除区块内随后的写入/编程上发生程序失败时先前写入到擦除区块的数据已经被破坏,擦除区块中的每个先前写入但当前被破坏的页面通过使用XOR操作每次恢复一页。同一类型的XOR操作可以用在主ECC失效或程序失效的情况下。
因为单个SSD可以包含大约80个NAND管芯,所以根据一些实施例的SSD产品的平均无故障时间(MTTF)能够由于能够容忍NAND管芯失效并且能够继续操作而没有数据丢失的能力而增加大约6倍。这种MTTF改进是非常显著的。此外,根据一些实施例,与使用主ECC的实现有关的数据可靠性增加了若干数量级。这是因为当读取时,如果由于超出了ECC可以校正的错误比特而引起ECC校正失效,则冗余的XOR数据可以用于重建原始数据。类似地,当写入时,如果程序失效发生,其破坏了同一擦除区块上的其它数据,则根据一些实施例可以执行破坏的数据的重建。在SSD和NAND存储器中这些是重要的改进,特别是因为NAND存储器变得基于更精细的光刻法。
图1说明了根据一些实施例的系统100。在一些实施例中,系统100包括主机102和SSD 104。在一些实施例中,SSD 104并不被限制地称为SSD,并且可以包括任何类型的非易失性存储器。SSD 104包括控制器106和存储器108。在一些实施例中,存储器108是非易失性存储器,诸如NAND存储器。在一些实施例中,控制器106包括ECC引擎(未在图1中示出),用于执行ECC以确保写在SSD 104的存储器108上的数据的完整性。ECC识别和校正SSD 104和主机102之间传送的数据中的错误。然而,控制器106中的ECC引擎有时不能校正主机区段的数据,并且管芯失效(例如,在包括在SSD 104的存储器108中的NAND管芯)可能引起数据完整性问题。所以,在一些实施例中,控制器106还包括XOR奇偶校验生成器,例如用于在主ECC引擎不能校正主机区段或存储器108中的管芯已经失效的情况下,执行XOR技术。
图2说明了根据一些实施例的非易失性存储器的图形表示200。图形表示200包括垂直轴上的页面(page)00至127和水平轴上的槽(slot)00至79。图2中的每个页面包括示例性的8个区段(sector)。槽用图形说明了例如在一些实施例中SSD上的80个存储器管芯,和/或是存储器通道和/或芯片使能的抽象。在一些实施例中,槽00至79中的每一个都表示能够与其它槽并行工作的引擎。
如图2所示,将来自主机的内容以时间顺序写入到存储器(例如,NAND存储器)。内容填充页面00和槽00处的8个区段页面,然后下一内容在页面00的下一槽01处写入,等等,如图形200的顶部处贯穿页面00的箭头所示。在主机内容被接收时,在此过程中生成XOR奇偶校验。当主机内容已经填满了页面的除了最后一槽之外的所有槽(也就是说,例如已经填满了槽00至槽78)时,奇偶页面例如被插在槽79处的流中,并且占据该页面的最后一槽。也就是说,在该示例中,写入到槽79的奇偶校验页面的区段0是对该页面的槽00至78的所有区段0的内容进行XOR,并且类似地,写入到槽79的奇偶校验页面的区段1是对该页面的槽00至78的所有区段1的内容进行XOR,等等。在一些实施例中,奇偶校验区段是对主机内容和元数据进行XOR,但不对ECC字段进行XOR。以这种方式,奇偶校验页面的每个区段都包含对其内容特定的ECC。
图2示出了写入到页面的一部分的内容和奇偶校验的示例。四个区段被写入到槽01的区段2至5,然后四个区段被写入到槽01的区段6至7和槽02的区段1至2。然后,四个区段被写入到槽02的区段3至6,并且一个区段被写入到槽02的区段7。然后,八个区段被写入到槽02的区段8、和槽03的区段1至7。例如通过使用XOR逐个区段地计算八个奇偶校验区段,然后将其写入到槽79的八个区段作为奇偶校验数据。
在如上所述具有一个奇偶校验槽79的实施例中,在出现槽00至78的任何页面的任何区段中的不可校正的错误的情况下,SSD可以读取来自所有页面的区段号除了有错误的那一页面以外,并且对这些区段的内容以及槽79中的对应的奇偶校验区段进行XOR操作,以便恢复丢失的内容。在一些实施例中,诸如Bose-Chaudhuri-Hocquengen(BCH)校正的ECC发生在包括奇偶校验的每个区段上,并且通过对内容进行XOR,不可校正的状态用于触发第二级ECC恢复。
在具有一个奇偶校验槽79的上述实施例中,槽00至78的每一阵列的单个奇偶校验页面将免受硬错误和灾难性管芯失效。在其中采用多于1个槽以避免部件失效的实施例中,其它实现根据一些实施例是可用的。例如,为了避免部件失效,将采用两个槽,两个奇偶校验页面可以被插在每个槽阵列中(例如,在槽39和79)。在一些实施例中,槽39处的奇偶校验可以用于覆盖槽00至38,并且槽79处的奇偶校验可以用于覆盖槽40至78。槽阵列可以相应地被调整,以使得封装失效将从槽00至39的奇偶校验条带中取出1个槽并且从槽40至79的奇偶校验条带中取出第二个槽。例如,如果将封装5以及2个CE映射至槽5和45,则所描述的奇偶校验条带将以2.5%的容量成本防止部件失效。如果防止了管芯失效(而没有防止封装失效),则容量成本可以减半。
虽然XOR先前已经被用在多个大容量存储设备环境中,但是根据一些实施例,在单个存储设备(例如,SSD)的上下文中,一种可用的技术可以令内容免于灾难性部件故障。在SSD环境中,其中间接地允许所有的写入在本质上是连续的,没有与随机写入操作相关联的惩罚。此外,诸如NAND编程失效的对SSD特定的问题(其导致先前写入的数据的丢失)可以根据一些实施例被解决。在一些实施例中,程序失效以低成本的方式被解决,并且附带地还解决了管芯失效和ECC失效。
尽管一些实施例已经在本文被描述为以特定方式实现,但是根据一些实现这些特定的实现可能不是必须的。例如,尽管图1说明并描述了用于执行ECC和XOR操作的一个控制器,但是应当指出,根据一些实施例,可以使用独立的控制器(和/或专用控制器)。
尽管已经参照特定实现描述了一些实施例,但是根据一些实施例其它实现也是可以的。此外,附图中说明的和/或本文描述的电路元件的布置和/或顺序或其它特征不需要以说明和描述的特定方式被布置。根据一些实施例,许多其它布置是可以的。
在附图中所示的每个系统中,在一些情况下的元件其每一个可能具有相同的标号或不同的标号,以表明所表示的元件可以是不同和/或类似的。然而,元件可以足够灵活以具有不同的实现并且与本文示出或描述的一些系统或所有系统一起工作。附图中示出的各种元件可以是相同的或不同的。哪一个被称为第一元件并且哪一个被叫做第二元件是任意的。
在说明书和权利要求中,术语“耦合”和“连接”以及其派生词可以被使用。应当理解,这些术语并不期望作为彼此的同义词。相反,在特定的实施例中,“连接”可以用于指示两个或更多个元件彼此直接物理或电接触。“耦合”可以意味着两个或更多个元件直接物理或电接触。然而,“耦合”还可以意味着两个或更多个元件彼此间接接触,但是仍然彼此相互协作或交互。
本文的算法总的来说被认为是导致期望结果的行动或操作的自相容的序列。这些包括物理量的物理操纵。通常,尽管不是必须的,这些量采用电信号或磁信号的形式,其能够被存储、传输、组合、比较或者操纵。主要是为了公共使用的原因,将这些信号称为位、值、元件、符号、特征、项、数量等已经被证明在有时是方便的。然而,应当理解,所有这些和类似的项都与合适的物理量相关联,并且仅为应用到这些量的方便标签。
可以以硬件、固件、和软件中的一个或组合来实现一些实施例。一些实现还可以被实现为存储在机器可读介质上的指令,该指令可以由计算平台读取和执行以执行本文描述的操作。机器可读介质可以包括:用于存储或发送机器(例如,计算机)可读的形式的信息的任何机构。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪速存储器设备;电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号、发送和/或接收信号的接口等)等等。
实施例是本发明的实现或示例。说明书中提及的“实施例”、“一个实施例”、“一些实施例”、或“其它实施例”意味着结合实施例描述的特定特征、结构或特性被包括在至少一些实施例中,但不必是在本发明的所有实施例中。各个地方出现的“实施例”、“一个实施例”、或“一些实施例”不必都是指同一实施例。
本文描述并说明的所有部件、特征、结构、特性等不是都需要被包括在特定实施例或多个实施例中。如果说明书声明:部件、特征、结构或特性例如“可以(may)”、“可以(might)”、“能够(can)”、“能够(could)”被包括,则特定部件、特征、结构或特性不是必须被包括。如果说明书或权利要求提及“一(a、an)”元件,则不意味着仅有一个元件。如果说明书或权利要求提及“附加的”元件,则不排除有多于一个的附加的元件。
尽管本文已经使用流程图和/或状态图描述了实施例,但是本发明并不受这些图或本文对应的描述的限制。例如,流程不必按照每个示出的框或状态来移动或者精确地以如本文说明和描述的同一顺序来移动。
本发明并不受到本文列出的特定细节的限制。受益于本公开的本领域的技术人员将意识到,可以在本发明的范围内对上述描述和附图进行许多其它改变。因此,包括对其任何修改的以下权利要求定义了本发明的范围。
Claims (21)
1.一种固态盘,包括:
非易失性存储器;以及
控制器,用于对存储在所述非易失性存储器上的数据执行ECC,并且如果所述ECC不能校正所述数据则对所述数据执行奇偶校验操作。
2.如权利要求1所述的固态盘,其中,所述奇偶校验操作包括XOR操作。
3.如权利要求1所述的固态盘,所述控制器用于将数据写在所述非易失性存储器上,并且用于生成ECC和奇偶校验信息,并且当所述数据被写入时将所述ECC和奇偶校验信息存储在所述非易失性存储器上。
4.如权利要求1所述的固态盘,其中,所述非易失性存储器被划分为多个槽,其中,所述多个槽中的每一个表示能够并行工作的引擎。
5.如权利要求4所述的固态盘,其中,所述非易失性存储器还被划分为多个页面,所述多个页面中的每一个都具有多个区段,其中,数据以区段顺序被写在第一槽中的一页面上,并且当所述页面被填满时,则数据被写在第二槽中的相同页面上。
6.如权利要求4所述的固态盘,其中,为奇偶校验信息预留所述多个槽中的一个或更多个。
7.如权利要求5所述的固态盘,其中,为奇偶校验信息预留所述多个槽中的一个或更多个。
8.一种系统,包括:
主机;以及
固态盘,包括:
非易失性存储器;以及
控制器,用于对存储在所述非易失性存储器上的主机数据执行ECC,并且如果所述ECC不能校正所述数据则对所述数据执行奇偶校验操作。
9.如权利要求8所述的系统,其中,所述奇偶校验操作包括XOR操作。
10.如权利要求8所述的系统,所述控制器用于将数据写在所述非易失性存储器上,并且用于生成ECC和奇偶校验信息,并且当所述数据被写入时将所述ECC和奇偶校验信息存储在所述非易失性存储器上。
11.如权利要求8所述的系统,其中,所述非易失性存储器被划分为多个槽,其中,所述多个槽中的每一个表示能够并行工作的引擎。
12.如权利要求11所述的系统,其中,所述非易失性存储器还被划分为多个页面,所述多个页面中的每一个都具有多个区段,其中,数据以区段顺序被写在第一槽中的一页面上,并且当所述页面被填满时,则数据被写在第二槽中的相同页面上。
13.如权利要求11所述的系统,其中,为奇偶校验信息预留所述多个槽中的一个或更多个。
14.如权利要求12所述的系统,其中,为奇偶校验信息预留所述多个槽中的一个或更多个。
15.一种方法,包括:
对存储在固态盘的非易失性存储器上的数据执行ECC;并且
如果所述ECC不能校正所述数据或者如果程序失效发生,则对所述数据执行奇偶校验操作。
16.如权利要求15所述的方法,其中,所述奇偶校验操作包括XOR操作。
17.如权利要求15所述的方法,还包括:
将数据写在所述非易失性存储器上;
生成ECC和奇偶校验信息;并且
当所述数据被写入时,将所述ECC和奇偶校验信息存储在所述非易失性存储器上。
18.如权利要求15所述的方法,还包括:
将所述非易失性存储器划分为多个槽,其中,所述多个槽中的每一个表示能够并行工作的引擎。
19.如权利要求18所述的方法,还包括:
将所述非易失性存储器划分为多个页面,所述多个页面中的每一个都具有多个区段;并且
数据以区段顺序被写在第一槽中的一页面上,并且当所述页面被填满时,则数据被写在第二槽中的相同页面上。
20.如权利要求18所述的方法,还包括:
为奇偶校验信息预留所述多个槽中的一个或更多个。
21.如权利要求19所述的方法,还包括:
为奇偶校验信息预留所述多个槽中的一个或更多个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/319,208 | 2008-12-31 | ||
US12/319,208 US8438455B2 (en) | 2008-12-31 | 2008-12-31 | Error correction in a solid state disk |
PCT/US2009/069286 WO2010078167A2 (en) | 2008-12-31 | 2009-12-22 | Improved error correction in a solid state disk |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102301340A true CN102301340A (zh) | 2011-12-28 |
CN102301340B CN102301340B (zh) | 2015-07-08 |
Family
ID=42286406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980155605.5A Expired - Fee Related CN102301340B (zh) | 2008-12-31 | 2009-12-22 | 固态盘中改进的错误校正 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8438455B2 (zh) |
EP (1) | EP2382542B1 (zh) |
JP (1) | JP2012514274A (zh) |
KR (1) | KR101298827B1 (zh) |
CN (1) | CN102301340B (zh) |
BR (1) | BRPI0923759A2 (zh) |
TW (1) | TWI449051B (zh) |
WO (1) | WO2010078167A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104246708A (zh) * | 2012-03-16 | 2014-12-24 | 马维尔国际贸易有限公司 | 针对nand闪存上数据的存储的架构 |
CN104461397A (zh) * | 2014-12-19 | 2015-03-25 | 上海新储集成电路有限公司 | 一种固态硬盘及其读写方法 |
CN105009087A (zh) * | 2012-11-29 | 2015-10-28 | 西部数据技术公司 | 用于数据存储系统的数据可靠性方案 |
CN107015881A (zh) * | 2015-09-23 | 2017-08-04 | Hgst荷兰公司 | 数据存储驱动器中的增强的低开销数据保护 |
CN110956997A (zh) * | 2019-11-08 | 2020-04-03 | 苏州浪潮智能科技有限公司 | 一种固态硬盘ber的测试方法、测试装置及测试设备 |
Families Citing this family (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007132456A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
CN103258572B (zh) | 2006-05-12 | 2016-12-07 | 苹果公司 | 存储设备中的失真估计和消除 |
WO2007132457A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US8060806B2 (en) | 2006-08-27 | 2011-11-15 | Anobit Technologies Ltd. | Estimation of non-linear distortion in memory devices |
WO2008053472A2 (en) | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
CN101715595A (zh) | 2007-03-12 | 2010-05-26 | 爱诺彼得技术有限责任公司 | 存储器单元读取阈的自适应估计 |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
WO2008139441A2 (en) * | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
WO2009050703A2 (en) | 2007-10-19 | 2009-04-23 | Anobit Technologies | Data storage in analog memory cell arrays having erase failures |
WO2009063450A2 (en) | 2007-11-13 | 2009-05-22 | Anobit Technologies | Optimized selection of memory units in multi-unit memory devices |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
KR20110050404A (ko) * | 2008-05-16 | 2011-05-13 | 퓨전-아이오, 인크. | 결함 있는 데이터 저장소를 검출하고 교체하는 장치, 시스템 및 프로그램 제품 |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8438455B2 (en) | 2008-12-31 | 2013-05-07 | Intel Corporation | Error correction in a solid state disk |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
KR20100091379A (ko) * | 2009-02-10 | 2010-08-19 | 삼성전자주식회사 | 반도체 디스크 장치 및 그것의 프로그램 페일 처리 방법 |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8924601B2 (en) | 2009-04-06 | 2014-12-30 | Intel Corporation | Apparatus and method for defect revectoring in a multi-channel mass storage device |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8327224B2 (en) | 2009-04-16 | 2012-12-04 | Micron Technology, Inc. | Data recovery in a solid state storage system |
US8307258B2 (en) | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
US8281227B2 (en) | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US9069687B2 (en) * | 2010-01-29 | 2015-06-30 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Memory read-channel with selective transmission of error correction data |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8767459B1 (en) | 2010-07-31 | 2014-07-01 | Apple Inc. | Data storage in analog memory cells across word lines using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US8638602B1 (en) | 2010-09-10 | 2014-01-28 | Western Digital Technologies, Inc. | Background selection of voltage reference values for performing memory read operations |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US9105305B2 (en) * | 2010-12-01 | 2015-08-11 | Seagate Technology Llc | Dynamic higher-level redundancy mode management with independent silicon elements |
KR101564569B1 (ko) * | 2011-01-18 | 2015-11-03 | 엘에스아이 코포레이션 | 상위-레벨 리던던시 정보 계산 |
US8949686B1 (en) * | 2011-02-13 | 2015-02-03 | Apple Inc. | Protection against word line failure in memory devices |
US9058288B2 (en) * | 2011-04-03 | 2015-06-16 | Apple Inc. | Redundant storage in non-volatile memory by storing redundancy information in volatile memory |
US8503237B1 (en) | 2011-05-18 | 2013-08-06 | Western Digital Technologies, Inc. | System and method for data recovery in a solid state storage device |
WO2014051611A1 (en) * | 2012-09-28 | 2014-04-03 | Duke University | Systems for and methods of extending lifetime of non-volatile memory |
US9424946B2 (en) | 2013-02-08 | 2016-08-23 | Seagate Technology Llc | Non-volatile buffering to enable sloppy writes and fast write verification |
KR102050896B1 (ko) * | 2013-02-19 | 2019-12-02 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것의 동작 방법 |
US9069695B2 (en) | 2013-03-14 | 2015-06-30 | Apple Inc. | Correction of block errors for a system having non-volatile memory |
JP2015018451A (ja) * | 2013-07-11 | 2015-01-29 | 株式会社東芝 | メモリコントローラ、記憶装置およびメモリ制御方法 |
US9262267B2 (en) | 2013-12-02 | 2016-02-16 | Intel Corporation | Error correction in solid state drives (SSD) |
US9015561B1 (en) * | 2014-06-11 | 2015-04-21 | Sandisk Technologies Inc. | Adaptive redundancy in three dimensional memory |
US9619326B2 (en) | 2014-12-09 | 2017-04-11 | Western Digital Technologies, Inc. | Methods and systems for implementing redundancy in memory controllers |
US10275310B2 (en) | 2015-03-09 | 2019-04-30 | Western Digital Technologies, Inc. | Updating exclusive-or parity data |
US10198313B2 (en) | 2016-03-11 | 2019-02-05 | Western Digital Technologies, Inc. | Redundancy of error correction encoded data in a storage system |
US10606775B1 (en) | 2018-12-28 | 2020-03-31 | Micron Technology, Inc. | Computing tile |
US10949101B2 (en) | 2019-02-25 | 2021-03-16 | Micron Technology, Inc. | Storage device operation orchestration |
US10983795B2 (en) | 2019-03-27 | 2021-04-20 | Micron Technology, Inc. | Extended memory operations |
US10990389B2 (en) | 2019-04-29 | 2021-04-27 | Micron Technology, Inc. | Bit string operations using a computing tile |
US11016765B2 (en) | 2019-04-29 | 2021-05-25 | Micron Technology, Inc. | Bit string operations using a computing tile |
US11176065B2 (en) | 2019-08-12 | 2021-11-16 | Micron Technology, Inc. | Extended memory interface |
US11531590B2 (en) * | 2019-09-17 | 2022-12-20 | Western Digital Technologies, Inc. | Method and system for host-assisted data recovery assurance for data center storage device architectures |
JP2021047527A (ja) | 2019-09-17 | 2021-03-25 | キオクシア株式会社 | メモリシステム |
US11144203B2 (en) | 2019-12-03 | 2021-10-12 | Micron Technology, Inc. | Selectively operable memory device |
JP7443774B2 (ja) | 2020-01-14 | 2024-03-06 | ソニーグループ株式会社 | 符号化装置、および符号化方法、復号装置、および復号方法、並びにプログラム |
US10910048B1 (en) | 2020-01-16 | 2021-02-02 | Micron Technology, Inc. | Extended memory communication |
US11275581B2 (en) | 2020-06-19 | 2022-03-15 | Micron Technology, Inc. | Expended memory component |
US11481317B2 (en) | 2020-06-26 | 2022-10-25 | Micron Technology, Inc. | Extended memory architecture |
US11625591B2 (en) | 2020-06-26 | 2023-04-11 | Micron Technology, Inc. | Extended memory neuromorphic component |
US11455254B2 (en) * | 2020-12-10 | 2022-09-27 | Macronix International Co., Ltd. | Flash memory system and flash memory device thereof |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623506A (en) * | 1994-01-28 | 1997-04-22 | International Business Machines Corporation | Method and structure for providing error correction code within a system having SIMMs |
US6223301B1 (en) | 1997-09-30 | 2001-04-24 | Compaq Computer Corporation | Fault tolerant memory |
US6981196B2 (en) * | 2001-07-25 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Data storage method for use in a magnetoresistive solid-state storage device |
JP4034949B2 (ja) | 2001-09-06 | 2008-01-16 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
JP2003303139A (ja) | 2002-04-09 | 2003-10-24 | Nec Corp | 冗長メモリモジュールおよびメモリコントローラ |
JP2003346432A (ja) * | 2002-05-22 | 2003-12-05 | Internatl Business Mach Corp <Ibm> | データ記憶装置およびデータ処理方法 |
US7096407B2 (en) | 2003-02-18 | 2006-08-22 | Hewlett-Packard Development Company, L.P. | Technique for implementing chipkill in a memory system |
US7234099B2 (en) * | 2003-04-14 | 2007-06-19 | International Business Machines Corporation | High reliability memory module with a fault tolerant address and command bus |
KR100546348B1 (ko) | 2003-07-23 | 2006-01-26 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그 데이터 저장 방법 |
US7543218B2 (en) | 2004-01-31 | 2009-06-02 | Samsung Electronics Co., Ltd. | DVD decoding method and apparatus using selective po-correction |
KR100604934B1 (ko) * | 2004-01-31 | 2006-07-28 | 삼성전자주식회사 | 디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법 |
US7536625B2 (en) * | 2004-06-30 | 2009-05-19 | Seagate Technology Llc | Maintaining data integrity in a data storage system |
JP2006048783A (ja) | 2004-08-02 | 2006-02-16 | Renesas Technology Corp | 不揮発性メモリおよびメモリカード |
KR100621631B1 (ko) * | 2005-01-11 | 2006-09-13 | 삼성전자주식회사 | 반도체 디스크 제어 장치 |
US8200887B2 (en) * | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
US20070233937A1 (en) | 2006-03-31 | 2007-10-04 | Coulson Richard L | Reliability of write operations to a non-volatile memory |
US7568135B2 (en) | 2006-05-15 | 2009-07-28 | Apple Inc. | Use of alternative value in cell detection |
KR101254185B1 (ko) | 2006-08-03 | 2013-04-18 | 삼성전자주식회사 | 엑스트라 ecc가 적용된 정보 저장 매체에 데이터를기록하거나 상기 매체로부터 데이터를 재생하는 장치 및방법 |
CN101622594B (zh) * | 2006-12-06 | 2013-03-13 | 弗森-艾奥公司 | 使用空数据令牌指令管理来自于请求设备的数据的装置、系统和方法 |
KR100845529B1 (ko) * | 2007-01-03 | 2008-07-10 | 삼성전자주식회사 | 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 |
KR100842680B1 (ko) * | 2007-01-08 | 2008-07-01 | 삼성전자주식회사 | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 |
JP2008287404A (ja) | 2007-05-16 | 2008-11-27 | Hitachi Ltd | 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法 |
KR100921748B1 (ko) * | 2007-06-04 | 2009-10-15 | 삼성전자주식회사 | Ecc 회로를 포함하는 메모리 시스템 및 그 구동 방법 |
US8037398B2 (en) * | 2007-07-02 | 2011-10-11 | Seagate Technology | System for precoding parity bits to meet predetermined modulation constraints |
US8209588B2 (en) * | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8261124B2 (en) * | 2007-12-21 | 2012-09-04 | Spansion Llc | System and method for optimized error correction in flash memory arrays |
KR20110050404A (ko) * | 2008-05-16 | 2011-05-13 | 퓨전-아이오, 인크. | 결함 있는 데이터 저장소를 검출하고 교체하는 장치, 시스템 및 프로그램 제품 |
US8276028B2 (en) * | 2008-05-23 | 2012-09-25 | Intel Corporation | Using error information from nearby locations to recover uncorrectable data in non-volatile memory |
WO2010000020A1 (en) | 2008-06-30 | 2010-01-07 | Cathrx Ltd | A catheter |
KR101529880B1 (ko) * | 2008-10-31 | 2015-06-19 | 삼성전자주식회사 | 에러 추정 방법 및 정정 방법 |
CN102272731A (zh) * | 2008-11-10 | 2011-12-07 | 弗森-艾奥公司 | 用于预测固态存储装置中的故障的设备、系统和方法 |
US8438455B2 (en) | 2008-12-31 | 2013-05-07 | Intel Corporation | Error correction in a solid state disk |
US8726126B2 (en) * | 2010-03-23 | 2014-05-13 | Apple Inc. | Non-regular parity distribution detection via metadata tag |
US8533550B2 (en) * | 2010-06-29 | 2013-09-10 | Intel Corporation | Method and system to improve the performance and/or reliability of a solid-state drive |
-
2008
- 2008-12-31 US US12/319,208 patent/US8438455B2/en active Active
-
2009
- 2009-12-22 WO PCT/US2009/069286 patent/WO2010078167A2/en active Application Filing
- 2009-12-22 BR BRPI0923759A patent/BRPI0923759A2/pt active Search and Examination
- 2009-12-22 KR KR1020117015123A patent/KR101298827B1/ko active IP Right Grant
- 2009-12-22 JP JP2011544507A patent/JP2012514274A/ja active Pending
- 2009-12-22 CN CN200980155605.5A patent/CN102301340B/zh not_active Expired - Fee Related
- 2009-12-22 EP EP09837021.6A patent/EP2382542B1/en not_active Not-in-force
- 2009-12-24 TW TW098144758A patent/TWI449051B/zh active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104246708A (zh) * | 2012-03-16 | 2014-12-24 | 马维尔国际贸易有限公司 | 针对nand闪存上数据的存储的架构 |
CN105009087A (zh) * | 2012-11-29 | 2015-10-28 | 西部数据技术公司 | 用于数据存储系统的数据可靠性方案 |
CN105009087B (zh) * | 2012-11-29 | 2018-01-23 | 西部数据技术公司 | 用于数据存储系统的数据可靠性方案 |
CN104461397A (zh) * | 2014-12-19 | 2015-03-25 | 上海新储集成电路有限公司 | 一种固态硬盘及其读写方法 |
CN107015881A (zh) * | 2015-09-23 | 2017-08-04 | Hgst荷兰公司 | 数据存储驱动器中的增强的低开销数据保护 |
CN110956997A (zh) * | 2019-11-08 | 2020-04-03 | 苏州浪潮智能科技有限公司 | 一种固态硬盘ber的测试方法、测试装置及测试设备 |
CN110956997B (zh) * | 2019-11-08 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种固态硬盘ber的测试方法、测试装置及测试设备 |
Also Published As
Publication number | Publication date |
---|---|
US20100169743A1 (en) | 2010-07-01 |
BRPI0923759A2 (pt) | 2016-01-26 |
EP2382542A2 (en) | 2011-11-02 |
WO2010078167A2 (en) | 2010-07-08 |
EP2382542B1 (en) | 2018-11-14 |
TW201030760A (en) | 2010-08-16 |
CN102301340B (zh) | 2015-07-08 |
WO2010078167A3 (en) | 2010-09-30 |
KR101298827B1 (ko) | 2013-08-23 |
JP2012514274A (ja) | 2012-06-21 |
US8438455B2 (en) | 2013-05-07 |
KR20110089452A (ko) | 2011-08-08 |
EP2382542A4 (en) | 2012-08-22 |
TWI449051B (zh) | 2014-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102301340B (zh) | 固态盘中改进的错误校正 | |
JP5341896B2 (ja) | 自己回復形不揮発性メモリ | |
CN109815045B (zh) | 存储系统以及在存储系统中处理数据的方法 | |
KR101826051B1 (ko) | 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템 | |
KR102571747B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR101925383B1 (ko) | 불휘발성 메모리 장치 및 그것의 데이터 관리 방법 | |
US11531590B2 (en) | Method and system for host-assisted data recovery assurance for data center storage device architectures | |
CN110597654B (zh) | 用于超快的具有奇偶校验的纠错码的系统和方法 | |
KR101990972B1 (ko) | 메모리 시스템에서의 순환 중복 검사 동작 수행 방법 및 이를 이용한 메모리 컨트롤러 | |
CN104035830A (zh) | 一种数据恢复方法和装置 | |
CN115083486A (zh) | 带有混合奇偶的tlc数据编程 | |
US20100287448A1 (en) | Flash memory device with rectifiable redundancy bit and method of controlling the same | |
KR20190038964A (ko) | 에러 정정 코드 유닛, 그것의 인코딩 및 디코딩 방법 | |
JP2010079856A (ja) | 記憶装置およびメモリ制御方法 | |
US20090164711A1 (en) | Semiconductor memory controller, semiconductor memory, and method of controlling semiconductor memory controller | |
US20130047056A1 (en) | Flash memory device with rectifiable redundancy and method of controlling the same | |
US10186302B2 (en) | Semiconductor systems performing double-write operations and methods of operating the same | |
JP6524126B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
US20230236930A1 (en) | Crc raid recovery from hard failure in memory systems | |
KR101645829B1 (ko) | 장치들 및 유효 마스크들을 저장하고 장치들을 동작시키는 방법들 | |
US20200356669A1 (en) | Storage system with separated rpmb sub-systems and method of operating the same | |
US20210334041A1 (en) | Storage Devices Having Minimum Write Sizes Of Data | |
KR20180078426A (ko) | 데이터 저장 장치의 에러 정정 코드 처리 방법 | |
US11385963B1 (en) | Usage of data mask in DRAM write | |
US11681581B1 (en) | Data integrity protection with partial updates |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150708 Termination date: 20191222 |
|
CF01 | Termination of patent right due to non-payment of annual fee |