CN108028058A - 用于设备的数据编码技术 - Google Patents
用于设备的数据编码技术 Download PDFInfo
- Publication number
- CN108028058A CN108028058A CN201680054615.XA CN201680054615A CN108028058A CN 108028058 A CN108028058 A CN 108028058A CN 201680054615 A CN201680054615 A CN 201680054615A CN 108028058 A CN108028058 A CN 108028058A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- parity information
- storage device
- data storage
- 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
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/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0059—Security or protection circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
数据存储设备包括控制器和耦合到控制器的非易失性存储器。控制器被配置为基于第一数据生成第一奇偶校验信息并基于第二数据生成第二奇偶校验信息。非易失性存储器被配置为存储第一数据和第二数据。数据存储设备还包括被配置为存储第一奇偶校验信息的缓冲器。控制器还被配置为响应于满足阈值的第一数据和第二数据的组合数据大小来生成与第一数据和第二数据相关联的联合奇偶校验信息。
Description
技术领域
本公开通常涉及设备,并且更具体地涉及用于设备的数据编码技术。
背景技术
存储设备使能数据的存储和检索。存储设备的示例包括易失性存储器设备和非易失性存储器设备。非易失性存储器在断电事件后保留数据。在一些情况下,易失性存储器使能低延迟(例如,快速读取和写入速度)。
一些存储设备包括非易失性存储器和易失性存储器,以在断电事件后使能与数据保留有关的快速读取和写入速度。例如,存储设备可以包括闪存和动态随机存取存储器(Dynamic Random Access Memory,DRAM)。在断电事件之前,存储在DRAM处的数据可以被传递到闪存。响应上电事件,可以从闪存读取数据并将其传递到DRAM。将数据从DRAM传递到闪存(反之亦然)会消耗时间和功率。另外,在存储设备中使用多种存储器类型可能导致高制造成本。
一些存储设备包括“通用”存储器,其用作非易失性存储器和易失性存储器。通用存储器可能与快速读取和写入速度以及相对较高的误码率(Bit Error Rate,BER)相关联。可以使用相对“强”的ECC方案(例如,使用大量冗余位)来编码数据以补偿相对较高的BER(但使用“强”ECC方案增加了读取和写入操作的延迟)。结果,通用存储器没有被广泛使用。
附图说明
图1是包括具有奇偶校验大小控制引擎的数据存储设备的***的第一具体说明性示例的图。
图2是包括具有模式控制引擎的数据存储设备的***的第二具体说明性示例的图。
图3是包括具有奇偶校验大小控制引擎和模式控制引擎的数据存储设备的***的第三具体说明性示例的图,诸如图1的奇偶校验大小控制引擎和图2的模式控制引擎。
图4是数据存储设备(诸如图1的数据存储设备、图3的数据存储设备,或两者)的操作方法的具体说明性实施例的流程图。
图5是数据存储设备(诸如图2的数据存储设备、图3的数据存储设备,或两者)的操作方法的另一具体说明性实施例的流程图。
具体实施方式
数据存储设备可以使用一种或多种技术来改变与存储在数据存储设备的存储器处的数据相关联的奇偶校验大小。改变奇偶校验大小可以使能在非易失性存储器处与易失性存储器相关联的某些操作特性(例如,与使用相对“短”的纠错码的动态随机存取存储器(DRAM)相关联的快速读取和写入速度),同时也促进高可靠性(例如,通过在某些情况下转换为使用相对“长”的纠错码)。在说明性实施方式中,非易失性存储器包括基于电阻的存储器,诸如电阻式随机存取存储器(Resistive Random Access Memory,ReRAM)。在其他实施方式中,非易失性存储器包括另一存储器,诸如闪存。
在数据存储设备中(在第一示例中),对第一数据编码以生成第一码字和与第一码字相关联的第一奇偶校验信息。第一码字可以具有相对小的大小,并且可以使用“强”纠错码(例如,使用低码率)来生成第一奇偶校验信息,以增加与第一码字相关联的纠错能力。相对小的数据大小可以使用与某些存储器技术相关联的编程大小(例如,与DRAM技术相关联的编程大小)来使能相对快的读取和写入速度,并且第一奇偶校验信息可以用于补偿与具体的非易失性存储器相关联的某些数据保留效应。作为说明性示例,第一奇偶校验信息可以用于纠错并“刷新”第一码字以补偿与某些非易失性存储元件(诸如基于电阻的存储元件)相关联的松弛效应。
在使用第一冗余信息来刷新第一码字之后,数据存储设备可以生成联合奇偶校验信息。例如,数据储存设备可以响应于满足阈值的多个码字的组合数据大小而“聚合”多个码字(例如,第一码字和第二码字)以生成联合奇偶校验信息。在说明性实施方式中,数据存储设备使用第一奇偶校验信息和与第二码字相关联的第二奇偶校验信息来执行异或(eXclusive-OR,XOR)操作以生成联合奇偶校验信息。数据存储设备可以在生成联合奇偶校验信息之后丢弃第一奇偶校验信息和第二奇偶校验信息,诸如通过基于先进先出(First-In,First-Out,FIFO)从缓冲器中删除第一奇偶校验信息和第二奇偶校验信息。
基于第一示例的数据存储设备的使用可以实现相对小的数据大小(其可以与诸如DRAM设备的某些易失性存储器类型相关联),同时还促进高纠错能力(例如,以补偿可能与某些非易失性存储元件相关联的数据保留效应)。结果,数据存储设备可以用于易失性和非易失性存储器应用。将参考图1进一步描述数据存储设备的附加说明性方面(在第一示例中)。
在第二示例中,数据存储设备包括控制器和包括第一纠错码(Error CorrectingCode,ECC)引擎的存储器设备(例如,一个或多个存储器裸芯)。在第一操作模式期间,数据存储设备可以减少(或可以“绕过”)由控制器执行的某些操作的次数。例如,存储器设备的第一ECC引擎可以执行数据编码和解码操作(例如,以“绕过”控制器的第二ECC引擎),这可以促进快速读取和写入速度(例如,与某些DRAM设备相关联的读取和写入速度)。
在说明性实施方式中,与第二ECC引擎相比,第一ECC引擎被配置为使用“较短”代码执行ECC操作。为了补偿与“较短”代码相关联的较低纠错能力,数据可以在存储器设备处被刷新一次或多次。例如,数据可以被感测、解码、重新编码和重写到存储器设备,以校正由于与某些非易失性存储元件(例如基于电阻的存储元件)相关联的数据保留效应而导致的一个或多个错误。
诸如响应于检测到低功率事件(例如,断电事件、休眠事件或待机事件)将要发生,数据存储设备可以从第一模式转换到第二模式。响应于从第一模式转换到第二模式,数据存储设备可以感测来自存储设备的数据并且可以使用第二ECC引擎来重新编码数据(例如,以产生更长的码字)。例如,数据存储设备可以使用“更强”的ECC方案重新编码数据(例如,保护数据免于在断电期间、上电期间以及电源关闭的同时(在此期间可能不执行刷新操作)可能发生的一个或多个错误)。重新编码的数据可以在低功率事件之前存储在存储器设备处。
数据存储设备(根据第二示例)的使用使得在第一模式期间由于相对短的码字长度以及通过执行减少延迟的存储器内(in-memory)中ECC操作而能够进行快速读取和写入操作。因此,第二示例可以使数据存储设备能够与易失性和非易失性存储器应用结合使用。参考图2进一步描述根据第二示例的数据存储设备的附加说明性方面。
尽管已经描述了数据存储设备的两个说明性示例,但是可以组合第一和第二示例性数据存储设备的某些方面。例如,数据存储设备(在第三示例中)可以被配置为从第一操作模式转换到第二操作模式(例如,如参考第二示例所描述的),并且响应于从第一模式转换到第二模式时,数据存储设备可以生成联合奇偶校验信息(例如,如参考第一示例所描述的)。参考图3进一步描述第三示例的附加说明性方面。
以下参考附图描述本公开的具体方面。在描述中,共同的或类似的特征可以由共同的参考数字指定。如本文所使用的,“示例性”可以指示示例、实施方式和/或方面,并且不应该被解释为限制或者指示优选或者优选实施方式。
参考图1,描绘了***的第一具体说明性示例并且总体上指定其为100。***100包括数据存储设备102(数据存储设备的第一示例)和设备170(例如,主机设备或接入设备)。
数据存储设备102包括存储器设备103。存储器设备103可以包括一个或多个存储器裸芯(例如,一个存储器裸芯、两个存储器裸芯、六十四个存储器裸芯或另一数量的存储器裸芯)。
存储器设备103包括存储器104,诸如包括在存储器裸芯中的存储元件的非易失性阵列。作为说明性示例,存储器104可以包括闪存(例如,NAND闪存)或电阻式存储器,诸如电阻式随机存取存储器(ReRAM)。存储器104可以具有三维(3D)存储器配置。如本文所使用的,3D存储器设备可以包括多个物理层的存储元件(而不是具有如平面存储器设备中的单个物理层的存储元件)。作为示例,存储器104可以具有3D垂直位线(Vertical Bit Line,VBL)配置。在具体的实施方式中,存储器104是具有3D存储器阵列配置的非易失性存储器,该存储器阵列配置单片地形成在存储器单元的阵列的一个或多个物理层中,该存储器单元具有设置在硅衬底之上的有源区域。或者,存储器104可具有另一配置,诸如二维(2D)存储器配置或非单片3D存储器配置(例如,堆叠芯3D存储器配置)。
存储器104包括一个或多个存储元件区域。存储区域的示例是存储器裸芯。存储区域的另一示例是块,诸如存储元件的NAND闪存擦除组或ReRAM实施方式中的一组基于电阻的存储元件。存储区域的另一示例是存储元件的字线(例如,NAND闪存存储元件的字线或基于电阻的存储元件的字线)。作为说明性示例,存储区域可具有单级单元(Single-Level-Cell,SLC)配置、多级单元(Multi-Level-Cell,MLC)配置或三级单元(Tri-Level-Cell,TLC)配置。存储器104的每个存储元件可以被编程为指示一个或多个值的状态(例如,闪存配置中的阈值电压或电阻式存储器配置中的电阻状态)。作为示例,在说明性的TLC方案中,存储元件可以被编程为指示三个值的状态。作为附加示例,在说明性MLC方案中,存储元件可以被编程为指示两个值的状态。
存储器设备103还可以包括缓冲器112。缓冲器112可以包括被配置为基于FIFO存储和删除信息的先进先出(FIFO)缓冲器。存储器设备103还可以包括电路118、读取/写入电路122和刷新电路120。作为说明性示例,电路118可以包括异或(XOR)设备,诸如被配置为执行XOR操作的一个或多个逻辑门。
数据存储设备102还包括耦合到存储器设备103的控制器130。控制器130可以包括纠错码(ECC)引擎132、奇偶校验大小控制引擎134和到设备170的接口150(例如,主机接口)。ECC引擎132可以包括一个或多个编码器和一个或多个解码器,诸如编码器136和解码器138。
ECC引擎132可以被配置为接收数据并基于数据生成一个或多个ECC码字。为了说明,编码器136可以包括汉明(Hamming)编码器、Reed-Solomon(RS)编码器、Bose-Chaudhuri-Hocquenghem(BCH)编码器、低密度奇偶校验(Low-Density Parity Check,LDPC)编码器、turbo编码器、被配置为根据一个或多个其他ECC方案编码数据的编码器、或其组合。ECC引擎132可以被配置为对从存储器104访问的数据进行解码。例如,解码器138可以被配置为对从存储器104访问的数据进行解码以检测和纠正可能存在于数据中的一个或多个错误(达到具体ECC方案的纠错能力)。解码器138可以包括汉明解码器、RS解码器、BCH解码器、LDPC解码器、turbo解码器、被配置为根据一个或多个其他ECC方案解码数据的解码器、或其组合。
数据存储设备102和设备170可以经由连接(诸如总线、无线连接、网络连接或另一连接)来耦合。该连接可以包括总线接口,诸如串行高级技术附件(Serial AdvancedTechnology Attachment,SATA)或***组件接口高速(Peripheral Component Interfaceexpress,PCIe)接口。在一个实施例中,总线接口可以是高速非易失性存储器(Non-Volatile Memory express,NVMe)或以太网光纤通道(Fiber Channel over Ethernet,FCoE)接口。***100可以对应于固态驱动器(Solid State Drive,SSD),诸如在计算设备(诸如膝上型计算机和平板电脑)中发现的固态驱动器(SSD)。在一些实施方式中,***100、数据存储设备102或存储器104可以集成在网络可访问的数据存储***内,诸如企业数据***、网络附加存储(Network-Attached Storage,NAS)***或云数据存储***,作为说明性示例。
在操作期间,数据存储设备102可以结合对存储器104的写入访问请求从设备170接收第一数据172(例如,数据集,诸如一组信息位)。第一数据172可以具有第一数据大小142(例如,第一数据172的字节的数量)。第一数据大小142可以对应于设备170使用的编程大小(例如,传送到数据存储设备102并被设备170访问的数据“块”的数据大小)。
控制器130可以启动对第一数据172编码的编码过程。例如,控制器130可以将第一数据172输入到编码器136以基于第一数据172生成第一奇偶校验信息114。编码器136还可以生成包括第一数据172的第一码字106和基于第一数据172的第三奇偶校验信息173。在一些实施方式中,第一奇偶校验信息114对应于“临时”奇偶校验信息(例如,要从数据存储设备102中删除的奇偶校验信息)、并且第三奇偶校验信息173对应于与第一数据172相关联的“永久”奇偶校验信息(例如,未被预定为要从数据存储设备120中删除的奇偶校验信息)。第一奇偶校验信息114可以包括比第三奇偶校验信息173更多的信息(例如,更多奇偶校验位)。
控制器130可以将第一码字106和第一奇偶校验信息114传送到存储器设备103。存储器设备103可以将第一码字106存储到存储器104并且可以将第一奇偶校验信息114存储到缓冲器112。
奇偶校验大小控制引擎134可以被配置为检测(或“跟踪”)存储在存储器104处的数据的数据大小,以确定存储在存储器104处的某些数据的数据大小是否满足阈值140。例如,奇偶校验大小控制引擎134可以被配置为存储在存储器104处存储的第一数据172的第一数据大小142的指示。在一些实施方式中,奇偶校验大小控制引擎134可以包括解析器电路,该解析器电路被配置为解析在控制器130处接收的数据,诸如通过访问第一数据172的头部字段来确定第一数据大小142。
数据存储设备102可以结合对存储器104的写入访问的请求以从设备170接收第二数据174(例如,数据集,诸如一组信息位)。第二数据174可具有第二数据大小144(例如,第二数据174的字节的数量)。第二数据大小144可以对应于设备170使用的编程大小(例如,传送到数据存储设备102并被设备170访问的数据“块”的数据大小)。
控制器130可以启动编码第二数据174的编码过程。例如,控制器130可以将第二数据174输入到编码器136以基于第二数据174生成第二奇偶校验信息116。编码器136还可以基于第二数据174生成包括第二数据174和第四奇偶校验信息175的第二码字108。在一些实施方式中,第二奇偶校验信息116对应于“临时”奇偶校验信息(例如,要从数据存储设备102中删除的奇偶校验信息),并且第四奇偶校验信息175对应于与第二数据174相关联的“永久”奇偶校验信息(例如,未被预定为从数据存储设备102中删除的奇偶校验信息)。第二奇偶校验信息116可以包括比第四奇偶校验信息175更多的信息(例如,更多奇偶校验位)。
控制器130可以将第二码字108和第二奇偶校验信息116传送到存储器设备103。存储器设备103可以将第二码字108存储到存储器104并且可以将第二奇偶校验信息116存储到缓冲器112。取决于具体实施方式,存储器设备103可以将码字106、108存储到存储器104的公共存储区域(例如,具体块、具体字线或另一存储区域),或存储器设备103可以将码字106、108存储到存储器104的不同存储区域。
奇偶校验大小控制引擎134可以被配置为存储第二数据174的第二数据大小144的指示。奇偶校验大小控制引擎134可以被配置为使用第二数据大小144来确定第一码字106和第二码字108的组合数据大小146(在本文中也被称为联合数据大小)是否满足阈值140。
为了说明,在一些实施方式中,奇偶校验大小控制引擎134包括加法器电路,该加法器电路被配置为添加第一数据大小142和第二数据大小144以生成组合数据大小146。在这种情况下,奇偶校验大小控制引擎134还可以包括具有耦合到加法器电路的输出的输入的比较器电路。比较器电路可以被配置为将组合数据大小146与阈值140进行比较以确定组合数据大小146是否满足阈值140。例如,如果组合数据大小146满足(例如,大于)阈值140,那么比较器电路可以生成具有第一值(例如,逻辑“1”值)的控制信号。作为另一示例,如果组合数据大小146未能满足(例如,小于或等于)阈值140,则比较器电路可以生成具有第二值(例如,逻辑“0”值)的控制信号。
如果组合数据大小146未能满足阈值140,则奇偶校验大小控制引擎134可以继续跟踪写入到存储器104的数据的一个或多个数据大小。奇偶校验大小控制引擎134可以将一个或多个数据大小添加到组合数据大小146以生成一个或多个附加组合数据大小(直到具体组合数据大小满足阈值140)。
如果组合数据大小146满足阈值140,则奇偶校验大小控制引擎134可以启动进程以生成与码字106、108相关联的联合奇偶校验信息110。为了说明,在图1的示例中,电路118可以被配置为来自缓冲器112的奇偶校验信息114、116并且通过使用奇偶校验信息114、116执行XOR操作来生成联合奇偶校验信息110。在其它实施方式中,编码器136(或数据存储设备102的另一编码器)被配置为生成联合奇偶校验信息110。
奇偶校验大小控制引擎134可被配置为生成指示电路118(或ECC引擎132)将生成联合奇偶校验信息110的奇偶校验合并命令148。例如,奇偶校验合并命令148可以识别存储奇偶校验信息114、116的缓冲器112的具体存储区域(或“槽”)。缓冲器112可以响应于奇偶校验合并命令148输出奇偶校验信息114、116到电路118(或到ECC引擎132)以使能联合奇偶校验信息110的生成。在具体实施方式中,电路118被配置为使用多组奇偶校验信息(例如,奇偶校验信息114、116)来执行XOR操作以生成联合奇偶校验信息110。
联合奇偶校验信息110可以与第二码率相关联,第二码率大于与奇偶校验信息114、116相关联的第一码率。例如,与联合奇偶校验信息110相比,奇偶校验信息114、116可以包括更多的冗余信息以使能更大的纠错能力,以补偿由于与存储器104的存储元件相关联的数据保留效应而导致的数据损失。联合奇偶校验信息110可以使用第二奇偶校验方案生成,该第二奇偶校验方案不同于(或除了)用于生成奇偶校验信息114、116的第一奇偶校验方案。为了进一步说明,联合奇偶校验信息110的奇偶校验大小(例如,比特的数量)可以不同于奇偶校验信息114、116的组合奇偶校验大小。可选地或附加地,用于生成奇偶校验信息114、116的纠错码可以不同于用于生成联合奇偶校验信息110的纠错码。作为说明性示例,可以使用BCH码来生成奇偶校验信息114、116,并且可以使用LDPC码来生成联合奇偶校验信息110(或反之亦然)。
在一些实施方式中,基于代数ECC方案来生成联合奇偶校验信息110。代数ECC方案可以指定将基于多组奇偶校验信息执行操作以产生联合奇偶校验信息。可以基于子码(或“短”码)来生成多组奇偶校验信息中的每个,并且可以基于“连接”子码的联合码来生成联合奇偶校验信息(例如,通过“加入”子码以形成“更长”的码)。一组子码的说明性示例是一组基于BCH的子码。在具体示例中,基于子码生成奇偶校验信息114、116,并且使用代数ECC方案基于奇偶校验信息114、116生成联合奇偶校验信息110(例如,通过基于代数ECC方案“加入”对应于奇偶校验信息114、116的码)。在一些实施方式中,可以使用XOR操作(例如,通过基于奇偶校验信息114、116执行XOR操作以生成联合奇偶校验信息110)来“加入”码。
存储器设备103可将联合奇偶校验信息110存储在存储器104处。取决于具体实施方式,存储器设备103可将码字106、108和联合奇偶校验信息110存储到存储器104的公共存储区域(例如,具体块、具体字线或另一存储区域),或存储器设备103可将码字106、108和联合奇偶校验信息110存储到存储器104的不同存储区域。
在生成联合奇偶校验信息110之后,存储器设备103可以从缓冲器112中删除奇偶校验信息114、116。在说明性实施方式中,基于FIFO从缓冲器112中删除奇偶校验信息(例如,“可以从缓冲器112中删除“旧”奇偶校验信息,以在缓冲器112处释放用于“新”奇偶校验信息的存储空间)。
在一些实施方式中,刷新电路120被配置为刷新存储在存储器104处的数据。例如,刷新电路120可以使读/写电路“重写”存储器104处的数据。在一些实施方式中,刷新存储在存储器104处的数据可以包括感测数据、解码感测数据、重新编码解码数据,以及将重新编码数据重新写入存储器104(例如,通过用重新编码数据重写数据)。
刷新电路120可以被配置为基于指示刷新操作之间的时间间隔的刷新时间表124刷新存储器104处的数据。刷新时间表124可以基于与存储器104相关联的数据保留效应。数据保留效应的示例是与某些存储元件(诸如基于电阻的存储元件)相关联的“松弛”效应。数据保留效应的另一示例是与某些存储元件(诸如,闪存存储元件)相关联的“室温数据丢失”效应。
刷新时间表124可以指示存储在存储器104处的要刷新的数据。例如,在一些实施方式中,可以刷新与联合奇偶校验信息不相关联的、存储在存储器104处的数据(例如,为了在生成联合奇偶校验信息之前避免数据中的大量错误以增加与数据相关联的纠错能力)。为了进一步说明,响应于将第一码字106存储到存储器104,刷新电路120可以执行一个或多个刷新操作以基于刷新时间表124刷新第一码字106,直到生成联合奇偶校验信息110。在一些实施方式中,在生成联合奇偶校验信息110(例如,如果联合奇偶校验信息110增加与第一码字106相关联的纠错能力)之后,刷新电路120可以停止刷新第一码字106。
在一些实施方式中,可以在数据存储设备处使用“等待时间”以使得写入存储器104的数据在访问数据之前能够“稳定”。例如,在一些存储器类型(例如,基于电阻的存储器)中,存储元件可能在编程之后“松弛”,这可能导致数据的误码率(BER)增加(例如,从大约0.3%到大约1%,作为说明性的例子)。在这种情况下,刷新时间表124可以指示在刷新数据之前刷新电路120在编程数据之后“等待”具体时间间隔(以便使数据能够“稳定”,使得与数据相关联的错误可以被纠正)。
在一些实施方式中,与存储在存储器104处的其他信息相比(例如,为了减少数据存储设备处的功耗),联合奇偶校验信息110可以更不频繁地刷新。例如,在一些实施方式中,联合奇偶校验信息110可以包括第一组联合奇偶校验信息和基于第一组联合奇偶校验信息的第二组辅助联合奇偶校验信息(例如,“保护”第一组)。作为说明性示例,联合奇偶校验信息110可以包括第一组8比特(B),并且还可以包括保护第一组8B的第二组8B。在一些实施方式中,联合奇偶校验信息110未在数据存储设备102处刷新。
在一些实施方式中,缓冲器112具有基于具体应用选择的大小(例如,数据存储容量)。可以选择缓冲器112的大小以避免在对存储器104的多次写入操作期间缓冲器112溢出。在说明性示例中,缓冲器112的大小是基于与存储器104相关联的编程吞吐量的,并且进一步基于与存储器104的存储元件相关联的数据保留效应。编程吞吐量可对应于将数据写入存储器104的时间间隔。数据保留效应可以对应于与要在缓冲器112处保留(在被丢弃之前)的数据相对应的奇偶校验信息的等待时间。在该说明性示例中,可以基于编程吞吐量并且基于等待时间(例如,基于编程吞吐量和等待时间的乘积、或者乘积的倍数)来选择缓冲器112的大小,使得缓冲器112不溢出(例如,使得在将第二奇偶校验信息116或其他奇偶校验信息写入缓冲器112之前从缓冲器112删除第一奇偶校验信息114,作为说明性示例)。
尽管已经参考图1描述了某些示例,应该理解的是,这些示例是说明性的而非限制性的。例如,在一些存储器设备中,刷新操作可能是不必要的。在这种情况下,可以从存储器设备103中省略刷新电路120。作为另一示例,在一些实施方式中,奇偶校验大小控制引擎134可以被配置为使控制器130绕过某些奇偶校验信息的生成(例如,如果接收具有满足阈值140的数据大小的具体数据“块”)。为了说明,如果同时从设备170接收数据172、174(并且如果组合数据大小146满足阈值140),则奇偶校验大小控制引擎134可以使编码器136避免(或“绕过”)生成奇偶校验信息114、116(并且替代地生成联合奇偶校验信息110)。作为另外的例子,尽管按照满足阈值140的组合数据大小146来描述图1,在一些情况下,单个数据集的数据大小(例如,第一数据172的第一数据大小142或第二数据的第二数据大小144 174)可以满足阈值140,或者多于两个的数据集合可以被聚合以生成满足阈值140的组合数据大小。进一步,应该理解的是,要被“组合”的数据不需要物理聚合。例如,控制器130可以被配置为存储包括指示码字106、108的位置的指针的表格,并且码字106、108可以通过更新表格来“聚合”以指示码字106、108与联合奇偶校验信息110相关联。
在一些实施方式中,奇偶校验大小控制引擎134可以包括被配置为对写入存储器104的数据“块”进行计数的计数器。为了说明,设备170可以结合对访问存储器104的写入和读取的请求使用具体数据大小。在这种情况下,由数据存储设备102从设备170接收的每个数据集可以具有具体的数据大小。数据大小的具体说明性示例是64B。在该说明性示例中,第一数据大小142可以等于64B,并且第二数据大小144可以等于64B。奇偶校验大小控制引擎134可以是被配置为响应于接收每个64B的“块”(例如,响应于接收到第一数据172并且响应于接收到第二数据174)而递增计数器。奇偶校验大小控制引擎134可以被配置为响应于由与阈值140相对应的计数器存储的值而使数据存储设备102生成联合奇偶校验信息110。作为说明性示例,阈值140可以对应于16个数据“块(每个包括64B),并且奇偶校验大小控制引擎134可以被配置为响应于计数器存储值16而使数据存储设备102生成联合奇偶校验信息110。为了进一步说明,在一些实施方式中,“永久性”奇偶校验信息(例如,第三奇偶校验信息173或第四奇偶校验信息175)包括15B,“临时”奇偶校验信息(例如,第一奇偶校验信息114或第二奇偶校验信息116)包括49B,并且联合奇偶校验信息(例如,联合奇偶校验信息110)包括16B(例如,对于每个16B的“块”1B)。
在一些实施方式中,缓冲器112可以被包括在存储器104中。例如,缓冲器112可以包括存储器104的具体存储区域,诸如一个或多个块、一个或多个字线、或者一个或多个其它存储区域、或其组合。作为说明性示例,存储器104可以包括与缓冲器112相对应的分区(例如,ReRAM分区)。在其他实施方式中,缓冲器112可以在存储器104的外部。为了进一步说明,因为与存储器104相比,存储在缓冲器112处的数据可以具有更高的“周转(turnover)”率(数据可以被更频繁地写入和擦除),缓冲器112可以被配置为与存储器104相比以更高的可靠性进行操作(因为与存储器104相比,由缓冲器112存储的数据中的错误的数量可能更大)。作为说明性示例,如果存储器104被配置为每个存储元件存储多个比特(例如,使用MLC存储方案或TLC存储方案),则缓冲器112可以被配置为每个存储元件存储一个比特(例如,使用SLC存储方案)。取决于具体实施方式,存储器104和缓冲器112可以是存储器104的不同存储器类型(例如,分别是基于电阻的和NAND闪存,或者反之亦然),并且缓冲器112可以是公共存储器类型。在一些实施方式中,缓冲器112可以被包括在控制器130中。例如,在一些实施方式中,缓冲器112可以包括集成在控制器130内的非易失性存储器。
在一些实施方式中,参考缓冲器112描述的“临时”奇偶校验方案的一个或多个方面可以结合联合奇偶校验信息110使用。例如,数据存储设备102可以基于联合奇偶校验信息110生成第三奇偶校验信息(例如,通过使用用于生成奇偶校验信息114、116的编码方案对联合奇偶校验信息110编码),并且第三奇偶校验信息可以被存储在缓冲器112处(或在另一存储区域处,诸如在可以被包括在存储器设备103中的另一缓冲器处)。在一些情况下,可以在刷新操作期间使用第三奇偶校验信息来刷新联合奇偶校验信息110(例如,等待具体时间间隔之后,以为了在编程联合奇偶校验信息110之后存储元件“稳定”)。在刷新联合奇偶校验信息110之后,第三奇偶校验信息可以被丢弃(例如,通过基于FIFO从缓冲器112中删除第三奇偶校验信息)。应该意识到,在一些实施方式中,可以省略联合奇偶校验信息110的刷新(例如,为了节省功率)和/或可以省略用于联合奇偶校验信息110的“临时”奇偶校验方案的使用(例如,以释放缓冲器112处或另一存储区域处的存储空间)。
在一些情况下,具体组的奇偶校验信息的部分可能会分阶段丢弃。例如,在一些情况下,响应于生成部分(但不是全部)联合奇偶校验信息110,可以从缓冲器112丢弃第一奇偶校验信息114。为了说明,可以基于第一奇偶校验信息114在“中间”阶段(例如,在从设备170接收第二数据174之前)生成联合奇偶校验信息110的第一部分,并且响应于生成第一部分,可以丢弃第一奇偶校验信息114。在该示例中,可以在丢弃第一奇偶校验信息114之后从设备170接收第二数据174,并且可以基于第二奇偶校验信息116生成联合奇偶校验信息110的第二部分。响应于生成第二部分,可以从缓冲器112中丢弃第二奇偶校验信息116。取决于实施方式,可以使用具体纠错码的对应部分来生成联合奇偶校验信息110的每个部分,或者可以使用多个码来生成联合奇偶校验信息110(例如,BCH子码可以用于联合奇偶校验信息110的每个部分,并且可以使用基于BCH子码的代数码“加入”这些部分,作为说明性示例)。
在一些实施方式中,可以使用即时技术(on-the-fly)来生成联合奇偶校验信息。例如,可以在数据被写入存储器104时迭代地生成联合奇偶校验信息110,诸如通过基于第一码字106生成联合奇偶校验信息110的第一部分并且通过基于第二码字108生成联合奇偶校验信息110的第二部分(在生成第一部分之后)。使用即时技术生成联合奇偶校验信息110可以使数据存储设备102响应于满足阈值140的组合数据大小146能够避免“从头开始”生成联合奇偶校验信息110(如果例如,在满足阈值140的组合数据大小146之前生成联合奇偶校验信息110的第一部分)。在一些情况下,可以使用即时技术(例如,通过避免执行读取第一奇偶校验信息114的读取操作)来减少多个读取操作。
图1的示例示出可以使用“临时”奇偶校验信息(例如,奇偶校验信息114、116)来临时实现一个或多个相对小的数据集的高误差校正,同时一个或多个附加的小数据集被聚合以形成一个更大的数据集。响应于形成更大的数据集,可以生成联合奇偶校验信息(例如,联合奇偶校验信息110)并且可以删除“临时”奇偶校验信息。因此,设备170可以使用相对小的编程大小(例如,64B),同时还能实现相对低的奇偶校验信息开销(例如,通过响应于生成联合奇偶校验信息而删除“临时”奇偶校验信息)。
参考图2,描绘了***的第二说明性示例并且总体上被指定为200。***200的某些组件和操作可以如参考图1所描述的。例如,***200可以包括图1的设备170。
***200还包括耦合到设备170的数据存储设备202(根据第二示例)。数据存储设备202包括存储器设备203(例如,图1的存储器设备103)。存储器设备203可以包括存储器204(例如,存储器104)、刷新电路220(例如,刷新电路120)和读/写电路222(例如,读取/写入电路122)。存储器设备203还可以包括第一ECC引擎206(例如,存储器内ECC引擎),并且第一ECC引擎206可以包括一个或多个编码器(例如,编码器208)和一个或多个解码器(例如,解码器212)。尽管图2的示例说明存储器设备203包括单个ECC引擎(第一ECC引擎206),但应该理解的是,存储器设备203可以包括多个ECC引擎。例如,存储器设备203可以包括多个存储器裸芯,每个存储器裸芯包括对应于第一ECC引擎206的ECC引擎。
数据存储设备202还包括控制器230(例如,图1的控制器130)。控制器230可以包括第二ECC引擎232(例如,ECC引擎132)、接口250(例如,接口150)和模式控制引擎234。模式控制引擎234可以包括控制寄存器236和功率检测器240。控制寄存器236可以被配置为存储指示数据存储设备202的模式的模式指示238(例如,比特)。
在一些实施方式中,第一ECC引擎206被配置为基于第一编码方案(例如,“短”码)来执行ECC操作,并且第二ECC引擎232被配置为基于第二编码方案(例如,“长”码)来执行ECC操作。例如,第一编码方案可以与第一码率相关联,并且第二编码方案可以与小于第一码率的第二码率相关联。在说明性实施方式中,第一编码方案是单错误检测/单错误校正(Single-Error-Detect/Single-Error-Correct,SEDSEC)方案。在其它实施方式中,第一编码方案对应于另一编码方案,诸如双错误检测/单错误校正(Double-Error-Detect/Single-Error-Correct,DEDSEC)方案或另一方案。作为说明性示例,第一编码方案可以是BCH编码方案或LDPC编码方案。
第一ECC引擎206可以被配置为接收数据并且基于第一编码方案来生成一个或多个ECC码字。编码器208可以包括汉明编码器、RS编码器、BCH编码器、LDPC编码器、turbo编码器、被配置为根据一个或多个其他ECC方案编码数据的编码器、或其组合。第一ECC引擎206可以被配置为根据第一编码方案对从存储器204访问的数据解码。解码器212可以被配置为对从存储器204访问的数据解码,以检测和校正可能存在于数据中的一个或多个错误(达到具体ECC方案的纠错能力)。解码器212可以包括汉明解码器、RS解码器、BCH解码器、LDPC解码器、turbo解码器、被配置为根据一个或多个其他ECC方案解码数据的解码器、或其组合。
第二ECC引擎232可以被配置为接收数据并且基于第二编码方案来生成一个或多个ECC码字。编码器235可以包括汉明编码器、RS编码器、BCH编码器、LDPC编码器、turbo编码器、被配置为根据一个或多个其他ECC方案编码数据的编码器、或其组合。第二ECC引擎232可以被配置为根据第二编码方案对从存储器204访问的数据解码。解码器237可以被配置为对从存储器204访问的数据解码,以检测和纠正可能存在于数据中的一个或多个错误(达到具体ECC方案的纠错能力)。解码器237可以包括汉明解码器、RS解码器、BCH解码器、LDPC解码器、turbo解码器、被配置为根据一个或多个其他ECC方案解码数据的解码器、或其组合。
如本文所使用的,“编码方案”可以指的是编码类型(例如,BCH或LDPC)或码率(例如,信息比特与冗余比特的比率)中的一个或多个。为了说明,在一些实施方式中,第一编码方案和第二编码方案可以与公共编码类型和不同码率相关联。在其他实施方式中,第一编码方案和第二编码方案可以与不同的编码类型和公共码率相关联。在其他实施方式中,第一编码方案和第二编码方案可以与不同的编码类型和不同的码率相关联。
在操作期间,数据存储设备202可以被配置为基于多种模式进行操作,诸如存储器204的第一操作模式和存储器204的第二操作模式。在说明性示例中,第一模式对应于存储器204的“易失性”操作模式(例如,使能来自存储器204的快速数据检索),并且第二模式对应于存储器204的“非易失性”操作模式(例如,在存储器204处的低功率事件之后使能高数据保留)。
模式指示238可以指示数据存储设备202的操作模式(例如,第一模式或第二模式)。例如,模式指示的第一值可以指示第一模式,并且模式指示238的第二值可以指示第二模式。取决于具体实施方式,模式指示238可以由存储器设备203、控制器230、设备170、或其组合来调整,以确定数据存储设备102的操作模式。
在第一操作模式期间,要存储在存储器204处的数据可以使用第一ECC引擎206来编码。例如,数据存储设备202可以结合对存储器204访问的写入请求从设备170接收数据272(例如,第一数据172、第二数据174、其他数据、或其组合),并且第一ECC引擎206可以对数据272进行编码以生成第一编码数据214(例如,第一码字)。第一ECC引擎206可以使用第一编码方案来生成第一编码数据214。在一些实施方式中,第一编码数据214可以对应于图1的第一码字106。存储器设备103可以将第一编码数据214存储在存储器204处。
在第一操作模式期间,刷新电路220可基于刷新时间表224(例如,刷新时间表124)一次或多次刷新存储在存储器204处的数据。例如,刷新时间表224可以基于与存储器204相关联的数据保留效应。刷新时间表224可以使刷新电路220能够刷新第一编码数据214,以减少或避免第一编码数据214的BER超过与第一编码方案相关联的具体纠错能力的情况。可以在数据保留效应在第一编码数据214中引起一个或多个错误的延迟间隔之后刷新第一编码数据214。作为非限制性说明性示例,刷新时间表224可以指定存储在存储器204处的数据大约每16毫秒(ms)刷新一次。
在一些实施方式中,数据存储设备202可以选择性地执行(例如,选择性地启动或禁止)一个或多个刷新操作。例如,刷新电路222可以被配置为确定(例如,在将第一编码数据214存储到存储器204之后)第一编码数据214的部分(或“样本”)是否指示满足错误阈值的错误的数目。为了进一步说明,确定样本是否满足错误阈值可以包括确定样本是否满足一个或多个奇偶校验条件(例如,作为说明性示例,逻辑“0”位或逻辑“1”位的统计分布)。可选地或附加地,确定样本是否满足错误阈值可以包括读取数据的一个或多个软位以确定与数据相关联的可靠性。如果样本满足错误阈值,则刷新电路222可以执行一个或多个刷新第一编码数据214的刷新操作。如果样本未能达到错误阈值,则刷新电路222抑制(或暂时抑制)执行一个或多个刷新第一编码数据214的刷新操作(例如,直到满足错误阈值)。
在一些实施方式中,刷新第一编码数据214包括感测第一编码数据214以生成第一编码数据214的表示226。第一ECC引擎206可以解码表示226(例如,使用解码器212)以生成数据272并且可以编码数据272(例如,使用编码器208)以生成刷新的数据。刷新的数据可以基于第一编码方案来生成。存储器设备203可以,诸如通过利用刷新数据重写第一编码数据214,来将刷新数据写入存储器204。
取决于具体实施方式,可以为存储区域的每个存储元件或者选择性地为将被刷新的具体存储元件执行刷新操作。例如,在一些NAND闪存实施方式中,存储区域(例如,字线)的每个存储元件可以被刷新(包括存储“正确”位的存储元件)。在这个示例中,刷新操作可以包括刷新存储区域的每个存储元件。作为另一示例,在一些基于电阻的存储器实施方式中,存储区域的存储元件可以是单独可编程的(例如,使得可以编程存储区域的一个或多个存储元件而不编程另一存储区域的一个或多个存储元件)。在该示例中,刷新操作可以包括刷新存储区域的一个或多个存储元件(例如,存储“不正确”位的存储元件)而不刷新存储区域的一个或多个其他存储元件(例如,存储“正确”位的存储元件)。
数据存储设备202可以诸如通过检测将在数据存储设备202处发生的低功率事件来检测第二操作模式的启动。例如,检测低功率事件可以包括以下中的一个或多个:接收来自设备170的中断274、检测(例如,使用功率检测器240)数据存储设备202处的功率水平变化、或者从设备170接收命令276以启动第二操作模式(例如,进入待机模式、进入睡眠模式、进入休眠模式或进入关机模式)。在一些实施方式中,为了启动第二操作模式,可以将控制寄存器236的模式指示238从第一值调整到第二值。
响应于第二操作模式的启动,数据存储设备202可以使用第二ECC引擎232来重新编码存储在存储器204处的数据。例如,响应于检测存储器的第二操作模式的启动,模式控制引擎234可以将模式改变命令242传送到存储器设备203。
模式改变命令242可以使存储器设备203感测来自存储器204的数据。例如,模式改变命令242可以使存储器设备203感测第一编码数据214(或第一编码数据214的部分)以生成第一编码数据214的表示216。存储器设备203可将表示216传送到控制器230。
取决于具体实施方式,模式改变命令242可以使存储器设备203感测全部第一编码数据214或第一编码数据214的部分。例如,在一些情况下,模式改变命令242可以使存储器设备203感测第一编码数据214的某些位(例如,子集),并且表示216可以对应于第一编码数据214的子集。在具体示例中,可以响应于模式改变命令242来执行参考图1描述的一个或多个操作,诸如通过响应于模式改变命令242生成联合奇偶校验信息110,如参考图3进一步描述的。
在一些实施方式中,控制器230可以将表示216输入到第二ECC引擎232。第二ECC引擎232可以对表示216进行解码(例如,使用解码器237)以生成数据(例如,数据272)并且可以对数据进行编码(例如,使用编码器235)以生成第二编码数据218。为了说明,解码器237可以被配置为基于第一编码方案来解码数据,并且编码器235可以被配置为使用第二编码方案来编码数据(例如,生成第二编码数据218)。
控制器230可以将第二编码数据218传送到存储器设备203。存储器设备203可以将第二编码数据218存储到存储器204。在一些实施方式中,存储器设备203可以利用第二编码数据218重写第一编码数据214,诸如结合示例性的基于电阻的存储器实施方式。在其他情况下,存储器设备203可以将第二编码数据218存储在与第一编码数据214不同的存储器的存储区域中,诸如结合示例性NAND闪存存储器实施方式。
数据存储设备202可以被配置为诸如通过启动唤醒过程而转换到第一操作模式。例如,数据存储设备202可以从设备170接收唤醒命令。作为另一示例,功率检测器240可以检测数据存储设备202处的功率水平变化。响应于启动唤醒过程,模式控制引擎234可将模式指示从第二值调整到第一值(以指示数据存储设备202将基于第一模式进行操作)。
控制器230可以存储过度供应信息244,其指示存储器204过度供应存储228。过度供应信息244可以指示在第一操作模式期间过度供应存储228保持未使用,以存储在第二模式期间生成的附加奇偶校验信息(例如,因此当启动第二模式时,存储器104不是“满的”)。例如,过度供应信息244可以指示存储器204的存储区域的数量(例如,字线、块或其他存储区域的数量)或在第一操作模式期间保持未使用的存储器204的数据大小(例如,字节的数量)。如果在第一模式期间的操作的执行(例如,由设备170启动的写入操作)将利用过度供应存储228,则控制器230可以“拒绝”执行该操作(例如,通过将错误消息返回给设备170)。过度供应存储228可以存储响应于第二操作模式的启动而生成的信息,诸如第二编码数据218。
图2的示例说明存储器204可根据使用第一ECC引擎206的第一操作模式工作以“绕过”控制器230的某些操作(例如,以减少数据存取操作的延迟)。例如,第一ECC引擎206可以利用相对“短”的ECC方案,其使能绕过由第二ECC引擎232实现的“更长”的ECC方案。进一步,在基于第一模式的操作期间,刷新电路220可以刷新存储在存储器204处的数据以增加数据可靠性(例如,以补偿与“短”ECC方案相关联的较低纠错能力)。响应于转换到第二操作模式,存储在存储器204处的数据可以由第二ECC引擎232使用“更长”ECC方案编码(例如,以增加数据可靠性并且在唤醒数据存储设备202时使能数据的解码)。
参考图3,描绘了***的第三说明性示例并且总体上指定其为300。***300的某些组件和操作可以如参考图1、图2、或其组合所描述的那样。例如,***300可以包括图1和图2的设备170。
***300还包括耦合到设备170的数据存储设备302(根据第三示例)。数据存储设备302包括存储器设备303(例如,存储器设备103、存储器设备203、或其组合)。存储器设备303可以包括存储器304(例如,存储器104、存储器204、或其组合)、刷新电路320(例如,刷新电路120、刷新电路220、或其组合)、以及读取/写入电路322(例如,读取/写入电路122、读取/写入电路222、或其组合)。存储器设备203还可以包括ECC引擎,诸如第一ECC引擎206。存储器304可以包括过度供应存储228。刷新电路320可以基于刷新时间表324操作(例如,刷新时间表124、刷新时间表224、或其组合)。
数据存储设备302还包括控制器330(例如,控制器130、控制器230、或其组合)。控制器330可以包括奇偶校验大小控制引擎134和ECC引擎332(例如,ECC引擎132、第二ECC引擎232、或其组合)。控制器330还可以包括接口350(例如,接口150、接口250、或其组合)和模式控制引擎234。控制器330可以存储过度供应信息244。
在操作期间,数据存储设备302可以执行参考图1描述的一个或多个操作并且还可以执行参考图2描述的一个或多个操作。例如,如参考图2所描述的,数据存储设备302可以被配置为从第一操作模式转换到第二操作模式。响应于从第一模式转换到第二模式,模式控制引擎234可将模式改变命令242传送到存储器设备303。模式改变命令242可使存储器设备303生成图1的联合奇偶校验信息110,诸如通过使电路118使用图1的奇偶校验信息114、116来执行XOR操作。
图3示出了参考图1描述的一个或多个方面可以结合参考图2描述的一个或多个方面在数据存储设备302处使用。例如,模式改变命令242可以使存储器设备303生成图1的联合奇偶校验信息110。
参考图4,描绘了方法的说明性示例并且总体上指定其为400。方法400可以在数据存储设备处执行,诸如在图1的数据存储设备102处、在图3的数据存储设备302处、或这两者。
在402处,方法400包括在数据存储设备处编程一组码字和一组奇偶校验信息。例如,码字组可包括第一码字106、第二码字108、一个或多个其他码字、或它们的组合。作为说明性示例,该组码字可以在数据存储设备的存储器(诸如,存储器104或在存储器304处)处被编程。该组奇偶校验信息可以包括第一奇偶校验信息114、第二奇偶校验信息116、其他奇偶校验信息、或其组合。该组奇偶校验信息可以存储在缓冲器112处。
在非限制性说明性示例中,码字组中的每个码字包括64B数据和15B奇偶校验信息。例如,第一码字106的第一数据172可以包括64B,并且第一码字106的第三奇偶校验信息173可以包括15B。设备170使用的编程大小可以是64B(例如,设备170可以读取和写入64B的“块”中的数据)。作为说明性示例,该组奇偶校验信息的每个具体组的奇偶校验信息可以包括49B。例如,第一奇偶校验信息114可以包括49B,并且第二奇偶校验信息116可以包括49B。在非限制性说明性示例中,与该组码字和该组奇偶校验信息相关联的纠错能力可以对应于到大约百分之一的BER(如果码字具有大约为1%或更少的BER,码字组中的每个码字可能被成功解码)。在具体示例中,码字组包括16个码字。
在404处,方法400还包括等待时间间隔。例如,数据存储设备可以避免在该时间间隔期间感测该组码字,以使得存储该组码字的存储元件能够“稳定”。时间间隔可以基于与存储器相关联的数据保留效应来选择。例如,时间间隔可以基于与某些存储元件(诸如,基于电阻的存储元件)相关联的“松弛”效应。作为另一示例,时间间隔可以基于与某些存储元件(例如,闪存元件)相关联的“室温数据丢失”效应。
在406处,方法400还包括读取码字组并且使用该组奇偶校验信息对码字组进行解码以生成数据。例如,数据存储设备可以读取码字106、108并且可以使用奇偶校验信息114、116对码字106、108进行解码来生成数据172、174。
在408处,方法400还包括基于数据生成联合奇偶校验。例如,ECC引擎132可以基于数据172、174生成联合奇偶校验信息110。
在410处,方法400还包括在数据存储设备处对联合奇偶校验信息编程。例如,联合奇偶校验信息110可以被编程到存储器104或存储器304。
在412处,方法400还包括刷新码字组。例如,刷新电路120可以基于刷新时间表124来刷新码字106、108。在一些实施方式中,刷新码字组可以包括利用码字106、108的重新编码版本来重写码字106、108(例如,对在406处生成的数据进行重新编码以产生码字106、108的重新编码版本之后)。
在414处,方法400还可以包括丢弃该组奇偶校验信息。例如,可以基于FIFO从缓冲器112中丢弃奇偶校验信息114、116。
图4的方法400示出了可由“临时”奇偶校验信息临时保护码字组。在等待具体时间间隔(例如,当存储元件“松弛”时,其可能导致错误)之后,可以使用临时奇偶校验信息来解码该组码字,并且可以生成联合奇偶校验信息以保护数据。在生成联合奇偶校验信息之后,可以丢弃临时奇偶校验信息。因此,可以使能相对较短的码字大小(例如,按照由接入设备或主机设备使用的具体编程大小),同时还促进高纠错能力(例如,使用临时奇偶校验信息)并且不使用大的存储区域(例如,通过丢弃临时奇偶校验信息)。
参考图5,描绘了方法的另一说明性示例并且总体上将其指定为500。可以在数据存储设备(例如,数据存储设备202、数据存储设备302、或两者)处执行方法500,该数据存储设备包括存储器设备(例如,存储器设备203、存储器设备303、或两者)和非易失性存储器(例如,存储器204、存储器304、或两者),存储器设备具有第一编码器(例如,编码器208),该数据存储设备还包括具有第二编码器(例如,编码器235)的控制器(例如,控制器230、控制器330、或两者)。
在502处,方法500包括在非易失性存储器的第一操作模式期间基于第一编码方案使用第一编码器编码数据以生成第一编码数据。例如,使用数据存储设备的存储器裸芯的第一ECC引擎(诸如,存储器设备203的第一ECC引擎206),数据272可被编码以生成第一编码数据214。第一模式可以由模式指示238的第一值指示。
在504处,方法500还包括在第一操作模式期间将第一编码数据存储在非易失性存储器处。例如,第一编码数据214可以被存储到存储器204。在一些实施方式中,方法500还可以包括基于第一模式(例如,使用刷新电路220)在操作期间刷新存储器204处的第一编码数据214。
在506处,方法500还包括:响应于检测非易失性存储器的第二操作模式的启动,使用第二编码器基于第二编码方案对数据进行编码,以生成第二编码数据。例如,检测第二操作模式的启动可以包括确定低功率事件将在数据存储设备处发生。可以使用数据存储设备的控制器的第二ECC引擎(诸如,控制器230的第二ECC引擎232、或控制器330的ECC引擎332)来编码数据272以生成第二编码数据218。
在508处,方法500还包括响应于检测第二操作模式的启动而将第二编码数据存储在存储器处。例如,响应于确定低功率事件将发生,第二编码数据218可以被存储到存储器204。第二模式可以由模式指示238的第二值指示。
方法500基于数据存储设备的操作模式使能多种编码方案。例如,第一编码方案(例如,“短”编码方案)可用于在第一操作模式期间使能快速存储器访问操作,并且第二编码方案(例如,“长”编码方案)可为用于增加数据可靠性,诸如响应于在数据存储设备处启动低功率事件(例如,当数据刷新操作可能停止时,这可能增加存储数据中的错误率)。
虽然本文描绘的各种组件被图示为块组件并且以一般术语描述,但是这些组件可以包括被配置为使这些组件能够执行本文描述的一个或多个操作的一个或多个微处理器、状态机、或其他电路。例如,奇偶校验大小控制引擎134可以表示诸如硬件控制器、状态机、逻辑电路、或其他结构的物理组件,以使数据存储设备102能够确定数据大小(例如,组合数据大小146)满足阈值140。作为另一示例,模式控制引擎234可以表示诸如硬件控制器、状态机、逻辑电路、或其他结构的物理组件,以使得数据存储设备102能够将数据(例如,第一编码数据214)从第一编码方案重新编码为第二编码方案。
可选地或附加地,可以使用被配置为执行操作(诸如参考图4的方法400描述的一个或多个操作、参考图5的方法500描述的一个或多个操作、或其组合)的微处理器或微控制器来实现在此描述的一个或多个组件。例如,奇偶校验大小控制引擎134可以包括被配置为使数据存储设备102能够确定数据大小(例如,组合数据大小146)满足阈值140的微处理器或微控制器。作为另一示例,模式控制引擎234可以包括被配置为使数据存储设备102能够将数据(例如,第一编码数据214)从第一编码方案重编码为第二编码方案的微处理器或微控制器。在具体实施例中,控制器130、230和330中的一个或多个包括运行存储在存储器(例如,存储器104、204和304中的任何一个)处的指令(例如,固件)的处理器。可选地或附加地,由处理器运行的可运行指令可以被存储在单独的存储器位置处,诸如在只读存储器(Read-Only Memory,ROM)处。
数据存储设备102可以耦合到、附接到或嵌入到一个或多个接入设备中,诸如在设备170的外壳内。例如,数据存储设备102可以根据联合电子设备工程委员会(JointElectron Devices Engineering Council,JEDEC)固态技术协会通用闪存(UniversalFlash Storage,UFS)配置被嵌入在设备170内。为了进一步说明,数据存储设备102可以被集成在电子设备(例如,设备170)内,诸如移动电话、计算机(例如,膝上型计算机、平板电脑或笔记本电脑)、音乐播放器、视频播放器、游戏设备或控制台、电子书阅读器、个人数字助理(Personal Digital Assistant,PDA)、便携式导航设备或使用内部非易失性存储器的其他设备。
在一个或多个其他实施方式中,数据存储设备102可以实现在被配置为选择性地耦合到一个或多个外部设备(诸如,主机设备)的便携式设备中。例如,数据存储设备102可以从设备170移除(即,“可移除地”耦合到设备170)。作为示例,数据存储设备102可以根据可移动通用串行总线(Universal Serial Bus,USB)配置可移除地耦合到设备170。
设备170可对应于移动电话、计算机(例如,膝上型计算机、平板电脑、或笔记本电脑)、音乐播放器、视频播放器、游戏设备或控制台、电子书阅读器、个人数字助理(PDA)、便携式导航设备、另一电子设备、或其组合。设备170可以经由控制器进行通信,该控制器可以使设备170能够与数据存储设备102通信。设备170可以按照JEDEC固态技术协会工业规范(诸如,嵌入式多媒体卡(embedded MultiMedia Card,eMMC)规范或通用闪存(UniversalFlash Storage,UFS)主机控制器接口规范)来操作。作为说明性示例,设备170可以按照一个或多个其他规范(诸如,安全数字(Secure Digital,SD)主机控制器规范)操作。可选地,设备170可以根据另一通信协议与数据存储设备102通信。在一些实施方式中,***100、数据存储设备102、或存储器104可以被集成在诸如企业数据***、NAS***、或云数据存储***的网络可访问数据存储***内,如说明性的示例。
在一些实施方式中,数据存储设备102可以包括固态驱动器(SSD)。数据存储设备102可以用作嵌入式存储驱动器(例如,移动设备的嵌入式SSD驱动器)、企业存储驱动器(Enterprise Storage Drive,ESD)、云存储设备、网络附加存储(Network-AttachedStorage,NAS)设备或者客户端存储设备,作为说明性的非限制性示例。在一些实施方式中,数据存储设备102可以经由网络耦合到设备170。例如,网络可以包括数据中心存储***网络、企业存储***网络、存储区域网络、云存储网络、局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、因特网以及/或另一网络。
为了进一步说明,数据存储设备102可以被配置为作为嵌入式存储器耦合到设备170,诸如结合嵌入式多媒体卡(JEDEC固态技术协会,弗吉尼亚州阿灵顿的商标)配置,作为说明性示例。数据存储设备102可以对应于eMMC设备。作为另一示例,数据存储设备102可以对应于存储器卡,诸如安全数字卡、卡、miniSDTM卡(SD-3C LLC、Wilmington、Delaware的商标)、MultiMediaCardTM(MMCTM)卡(JEDEC固态技术协会,弗吉尼亚州阿灵顿的商标)或(CF)卡(商标SanDisk公司,加利福尼亚州米尔皮塔斯的商标)。数据存储设备102可以按照JEDEC行业规范进行操作。例如,数据存储设备102可以按照JEDEC eMMC规范、JEDEC通用闪存(UFS)规范、一个或多个其他规范或其组合来操作。
存储器104可以包括电阻式随机存取存储器(ReRAM)、闪存(例如,NAND存储器、NOR存储器、单级单元(SLC)闪存、多级单元(MLC)闪存)、分位线NOR(DIvided bit-line NOR,DINOR)存储器、AND存储器、高电容耦合比(High capacitive Coupling Ratio,HiCR)设备、非对称非接触晶体管(Asymmetrical Contactless Transistor,ACT)设备、或另一闪存)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读存储器(Read-Only Memory,ROM)、一次性可编程存储器(One-Time ProgrammableMemory,OTP)、另一种类型的存储器、或其组合。在具体实施例中,数据存储设备102经由网络间接耦合到接入设备(例如,设备170)。例如,数据存储设备102可以是数据中心存储***、企业存储***或存储区域网络的网络附加存储(NAS)设备或组件(例如,固态驱动器(SSD)组件)。存储器104可以包括半导体存储器设备。
半导体存储器设备包括诸如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)设备的易失性存储器设备,诸如电阻式随机存取存储器(“ReRAM”)、磁阻随机存取存储器(“MRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存(其也可以被认为是EEPROM的子集)、铁电随机存取存储器(“FRAM”)的非易失性存储器设备、以及其他能够存储信息的半导体元件。每种类型的存储器设备可能有不同的配置。例如,闪存设备可以被配置为NAND或NOR配置。
存储器设备可以由无源和/或有源元件以任何组合形成。通过非限制性示例,无源半导体存储器元件包括ReRAM设备元件,其在一些实施例中包括诸如反熔丝、相变材料等的电阻率切换存储元件,以及可选地包括诸如二极管等的操纵元件。进一步通过非限制性示例,有源半导体存储器元件包括EEPROM和闪存设备元件,其在一些实施例中包括包含电荷区的元件,诸如浮动栅极、导电纳米颗粒或电荷存储器介电材料。
多个存储器元件可以被配置为使得它们串联连接或者使得每个元件可单独访问。通过非限制性示例,NAND配置(NAND存储器)中的闪存设备通常包含串联连接的存储器元件。NAND存储器阵列可以被配置为使得该阵列由多个存储器串组成,其中串由共享单个位线并作为组存取的多个存储器元件组成。
可选地,存储器元件可以被配置为使得每个元件都是可单独访问的,例如,NOR存储器阵列。NAND和NOR存储器配置是示例性的,并且可以另外配置存储器元件。
位于衬底内和/或上方的半导体存储器元件可以布置成二维或三维,诸如二维存储器结构或三维存储器结构。在二维存储器结构中,半导体存储器元件被布置在单个平面或单个存储器设备层中。典型地,在二维存储器结构中,存储器元件布置在基本平行于支撑存储器元件的衬底的主表面延伸的平面中(例如,在x-z方向平面中)。衬底可以是在其上或在其中形成存储器元件的层的晶片,或者可以是在形成存储器元件之后附接到存储器元件的载体衬底。作为非限制性示例,衬底可以包括诸如硅的半导体。
存储器元件可以以有序阵列(诸如,以多个行和/或列)布置在单个存储器设备层中。然而,存储器元件可以以非规则或非正交配置布置。存储元件可以各自具有两个或更多个电极或接触线,诸如位线和字线。
三维存储器阵列被布置为使得存储器元件占据多个平面或多个存储器设备层,从而形成三维结构(即,在x方向、y方向和z方向,其中y方向基本上垂直的,并且x和z方向基本平行于衬底的主表面)。作为非限制性示例,三维存储器结构可以作为多个二维存储器设备层的堆叠而垂直布置。作为另一非限制性示例,三维存储器阵列可以被布置为多个垂直列(例如,基本垂直于衬底的主表面,即在y方向上延伸的列),其中每个列在每个列中具有多个存储器元件。列可以以二维配置(例如,在x-z平面中)布置,导致具有多个垂直堆叠的存储器平面上的元件的存储器元件的三维布置。三维存储器元件的其他配置也可以构成三维存储器阵列。
通过非限制性示例,在三维NAND存储器阵列中,存储器元件可以被耦合在一起以在单个水平(例如,x-z)存储器设备层内形成NAND串。可选地,存储器元件可耦合在一起以形成横跨多个水平存储器设备层的垂直NAND串。可以设想其他三维配置,其中一些NAND串包含单个存储器层中的存储器元件,而其他串包含跨越多个存储器层的存储器元件。三维存储器阵列也可以设计成NOR配置和ReRAM配置。
通常,在单片三维存储器阵列中,一个或多个存储器设备层形成在单个衬底上方。可选择地,单片三维存储器阵列还可以具有至少部分地位于单个衬底内的一个或多个存储器层。作为非限制性示例,衬底可以包括诸如硅的半导体。在单片三维阵列中,构成阵列的每个存储器设备层的层通常形成在阵列的下方存储器设备层的层上。然而,单片三维存储器阵列的相邻存储器设备层的层可以是共享的或具有存储器设备层之间的中间层。
可选地,可以分开形成二维阵列,然后将其封装在一起以形成具有多层存储器的非单片存储器设备。例如,非单片堆栈存储器可以通过在单独的衬底上形成存储器层,然后将存储器层堆叠在彼此之上来构建。在堆叠之前,可以将衬底薄化或从存储器设备层移除衬底,但是由于存储器设备层最初在单独的衬底上形成,所得到的存储器阵列不是单片三维存储器阵列。进一步,多个二维存储器阵列或三维存储器阵列(单片或非单片)可以形成在单独的芯片上,然后封装在一起以形成堆叠芯片存储器设备。
通常需要相关联电路用于操作存储器元件和用于与存储器元件通信。作为非限制性示例,存储器设备可具有用于控制和驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路可以与存储器元件位于相同的衬底上和/或位于单独的衬底上。例如,用于存储器读写操作的控制器可以位于单独的控制器芯片上和/或与存储器元件相同的衬底上。
本领域的技术人员将认识到,本公开不限于所描述的二维和三维示例性结构,而是覆盖了在此描述的本公开的精神和范围内的所有相关存储器结构,并且如本领域技术人员所理解的。这里描述的实施例的图示旨在提供对各种实施例的总体理解。其他实施例可以被利用并从本公开导出,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。本公开旨在覆盖各种实施例的任何和所有随后的修改或变化。本领域技术人员将认识到,这样的修改在本公开的范围内。
以上公开的主题应被认为是说明性的而非限制性的,并且所附权利要求旨在覆盖落入本公开的范围内的所有这些修改、增强和其他实施例。因此,在法律允许的最大范围内,本发明的范围由下列权利要求及其等同物的最宽可允许的解释来确定,并且不应受前述详细描述的约束或限制。
Claims (32)
1.一种数据存储设备,包括:
控制器,被配置为基于第一数据生成第一奇偶校验信息并基于第二数据生成第二奇偶校验信息;
非易失性存储器,耦合到所述控制器,所述非易失性存储器被配置为存储所述第一数据和所述第二数据;以及
缓冲器,被配置为存储第一奇偶校验信息,
其中,所述控制器还被配置为响应于满足阈值的所述第一数据和所述第二数据的组合数据大小来生成与所述第一数据和所述第二数据相关联的联合奇偶校验信息。
2.如权利要求1所述的数据存储设备,其中,所述联合奇偶校验信息的奇偶校验大小不同于所述第一奇偶校验信息和所述第二奇偶校验信息的组合奇偶校验大小。
3.如权利要求1所述的数据存储设备,其中,所述联合奇偶校验信息是基于代数纠错码生成的。
4.如权利要求1所述的数据存储设备,其中所述缓冲器的大小基于与所述非易失性存储器相关联的编程吞吐量,并且还基于与所述非易失性存储器的存储元件相关联的数据保留效应。
5.如权利要求1所述的数据存储设备,其还包括被配置为基于刷新时间表来刷新所述第一数据的刷新电路。
6.如权利要求1所述的数据存储设备,其中所述控制器还被配置为响应于满足所述阈值的所述组合数据大小而使所述第一奇偶校验信息从所述缓冲器中被丢弃。
7.如权利要求6所述的数据存储设备,其中,所述控制器还被配置为使所述缓冲器基于先进先出(FIFO)丢弃所述第一奇偶校验信息和所述第二奇偶校验信息。
8.如权利要求1所述的数据存储设备,还包括电路,所述电路被配置为基于所述第一奇偶校验信息和所述第二奇偶校验信息执行操作以生成所述联合奇偶校验信息。
9.如权利要求8所述的数据存储设备,其中,所述电路包括异或(XOR设备。
10.如权利要求1所述的数据存储设备,其中,所述非易失性存储器包括基于电阻的存储器。
11.如权利要求10所述的数据存储设备,其中,所述基于电阻的存储器包括电阻式随机存取存储器(ReRAM)。
12.一种装置,包括:
非易失性存储器,被配置为存储第一数据和第二数据;
缓冲器,被配置为存储与第一数据相关联的第一奇偶校验信息;以及编码器,被配置为响应于满足阈值的第一数据和第二数据的组合数据大小,生成与第一数据和第二数据相关联的联合奇偶校验信息。
13.如权利要求12所述的装置,还包括刷新电路,所述刷新电路被配置为响应于未能满足所述阈值的组合数据大小而基于刷新时间表来刷新所述第一数据和所述第二数据。
14.如权利要求12所述的装置,还包括控制器,所述控制器耦合到所述非易失性存储器,所述控制器被配置为响应于满足所述阈值的所述组合数据大小而使所述第一奇偶校验信息从所述缓冲器中被丢弃。
15.如权利要求14所述的装置,其中,所述控制器还被配置为使所述缓冲器基于先进先出(FIFO)丢弃所述第一奇偶校验信息。
16.如权利要求12所述的装置,其中,所述编码器还被配置为基于所述第一奇偶校验信息和与所述第二数据相关联的第二奇偶校验信息执行操作以生成所述联合奇偶校验信息。
17.如权利要求12所述的装置,其中,所述非易失性存储器包括基于电阻的存储器。
18.如权利要求17所述的装置,其中,所述基于电阻的存储器包括电阻式随机存取存储器(ReRAM)。
19.一种方法,包括:
在包括具有第一编码器和非易失性存储器的存储器裸芯的数据存储设备中,其中所述数据存储设备还包括具有第二编码器的控制器,执行:
在非易失性存储器的第一操作模式期间:
使用第一编码器基于第一编码方案编码数据以生成第一编码数据;以及
将第一编码数据存储在非易失性存储器处;以及
响应于检测到非易失性存储器的第二操作模式的启动:
使用第二编码器基于第二编码方案编码数据以生成第二编码数据;以及
将第二编码数据存储在非易失性存储器处。
20.如权利要求19所述的方法,其中,所述第一编码方案与第一码率相关联,并且其中所述第二编码方案与小于所述第一码率的第二码率相关联。
21.如权利要求19所述的方法,其中,检测所述第二操作模式的启动包括检测在所述数据存储设备处将发生低功率事件。
22.如权利要求21所述的方法,其中,检测所述低功率事件将发生包括以下各项中的一个或多个:从设备接收中断、检测所述数据存储设备处的功率水平改变、或接收命令。
23.如权利要求19所述的方法,还包括在所述第一操作模式期间在所述非易失性存储器处刷新所述第一编码数据。
24.如权利要求23所述的方法,其中,刷新所述第一编码数据包括:感测所述第一编码数据以生成所述第一编码数据的表示、解码所述第一编码数据的表示以生成所述数据、使用所述第一编码技术重新编码数据、并将重新编码的数据存储到非易失性存储器。
25.如权利要求24所述的方法,其中根据刷新时间表刷新所述第一编码数据。
26.如权利要求25所述的方法,其中所述刷新时间表基于与所述非易失性存储器的存储元件相关联的数据保留效应。
27.如权利要求19所述的方法,其中使用所述第一编码方案编码数据包括生成与所述数据相关联的第一奇偶校验信息,并且还包括将所述第一奇偶校验信息存储在所述非易失性存储器的缓冲器处。
28.如权利要求27所述的方法,还包括:
从设备接收第二数据,所述第二数据将被存储在所述非易失性存储器处;
确定所述数据和所述第二数据的组合数据大小满足阈值;以及
响应于确定组合数据大小满足阈值,启动第二操作模式。
29.如权利要求28所述的方法,还包括响应于确定所述组合数据大小满足所述阈值而从所述缓冲器中删除所述第一奇偶校验信息。
30.如权利要求28所述的方法,其中根据先入先出(FIFO)的基础从所述缓冲器中删除所述第一奇偶校验信息。
31.如权利要求28所述的方法,其中,所述第一编码数据包括所述第一奇偶校验信息和与所述第二数据相关联的第二奇偶校验信息,并且其中第二编码数据包括与数据和第二数据相关联的联合奇偶校验信息。
32.如权利要求31所述的方法,还包括基于所述第一奇偶校验信息和所述第二奇偶校验信息执行操作以生成所述联合奇偶校验信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/878,901 | 2015-10-08 | ||
US14/878,901 US9734009B2 (en) | 2015-10-08 | 2015-10-08 | Data encoding techniques for a device |
PCT/US2016/051849 WO2017062148A1 (en) | 2015-10-08 | 2016-09-15 | Data encoding techniques for a device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108028058A true CN108028058A (zh) | 2018-05-11 |
CN108028058B CN108028058B (zh) | 2021-06-04 |
Family
ID=57003594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680054615.XA Active CN108028058B (zh) | 2015-10-08 | 2016-09-15 | 数据存储设备、装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9734009B2 (zh) |
CN (1) | CN108028058B (zh) |
DE (1) | DE112016004629T5 (zh) |
WO (1) | WO2017062148A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597654A (zh) * | 2018-06-13 | 2019-12-20 | 奈奎斯特半导体有限公司 | 用于超快的具有奇偶校验的纠错码的***和方法 |
CN114402282A (zh) * | 2019-09-17 | 2022-04-26 | 美光科技公司 | 存取存储的元数据以识别存储数据的存储器装置 |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9503127B2 (en) | 2014-07-09 | 2016-11-22 | Quantum Corporation | Data deduplication with adaptive erasure code redundancy |
KR20170035103A (ko) * | 2015-09-22 | 2017-03-30 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR102609130B1 (ko) * | 2016-02-17 | 2023-12-05 | 삼성전자주식회사 | 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치 |
US10177793B2 (en) * | 2016-06-28 | 2019-01-08 | Micron Technology, Inc. | Error correction code (ECC) operations in memory |
US10318389B2 (en) * | 2016-07-15 | 2019-06-11 | Quantum Corporation | Joint de-duplication-erasure coded distributed storage |
US10396821B2 (en) | 2017-06-30 | 2019-08-27 | Seagate Technologies Llc | Generating Hamming weights for data |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US10817388B1 (en) | 2017-07-21 | 2020-10-27 | EMC IP Holding Company LLC | Recovery of tree data in a geographically distributed environment |
US10684780B1 (en) | 2017-07-27 | 2020-06-16 | EMC IP Holding Company LLC | Time sensitive data convolution and de-convolution |
US10880040B1 (en) | 2017-10-23 | 2020-12-29 | EMC IP Holding Company LLC | Scale-out distributed erasure coding |
US10528260B1 (en) | 2017-10-26 | 2020-01-07 | EMC IP Holding Company LLC | Opportunistic ‘XOR’ of data for geographically diverse storage |
US10373645B2 (en) * | 2017-11-17 | 2019-08-06 | Western Digital Technologies, Inc. | Data storage device dynamically generating extended redundancy over interleaves of a data track |
US10382554B1 (en) | 2018-01-04 | 2019-08-13 | Emc Corporation | Handling deletes with distributed erasure coding |
US10635327B2 (en) | 2018-01-31 | 2020-04-28 | Western Digital Technologies, Inc. | Data availability during memory inaccessibility |
US10838805B2 (en) * | 2018-02-23 | 2020-11-17 | Micron Technology, Inc. | Generating parity data based on a characteristic of a stream of data |
US10817374B2 (en) * | 2018-04-12 | 2020-10-27 | EMC IP Holding Company LLC | Meta chunks |
US10579297B2 (en) | 2018-04-27 | 2020-03-03 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US11023130B2 (en) | 2018-06-15 | 2021-06-01 | EMC IP Holding Company LLC | Deleting data in a geographically diverse storage construct |
US10936196B2 (en) | 2018-06-15 | 2021-03-02 | EMC IP Holding Company LLC | Data convolution for geographically diverse storage |
US10719250B2 (en) * | 2018-06-29 | 2020-07-21 | EMC IP Holding Company LLC | System and method for combining erasure-coded protection sets |
US10824502B2 (en) * | 2018-08-08 | 2020-11-03 | Micron Technology, Inc. | Enhanced codeword for media persistence and diagnostics |
CN112672132B (zh) * | 2018-09-30 | 2023-12-26 | Oppo广东移动通信有限公司 | 数据处理方法及装置、电子设备及存储介质 |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US10901635B2 (en) | 2018-12-04 | 2021-01-26 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns |
US10931777B2 (en) | 2018-12-20 | 2021-02-23 | EMC IP Holding Company LLC | Network efficient geographically diverse data storage system employing degraded chunks |
US11119683B2 (en) | 2018-12-20 | 2021-09-14 | EMC IP Holding Company LLC | Logical compaction of a degraded chunk in a geographically diverse data storage system |
US10892782B2 (en) | 2018-12-21 | 2021-01-12 | EMC IP Holding Company LLC | Flexible system and method for combining erasure-coded protection sets |
US10768840B2 (en) | 2019-01-04 | 2020-09-08 | EMC IP Holding Company LLC | Updating protection sets in a geographically distributed storage environment |
US11023331B2 (en) | 2019-01-04 | 2021-06-01 | EMC IP Holding Company LLC | Fast recovery of data in a geographically distributed storage environment |
US10942827B2 (en) | 2019-01-22 | 2021-03-09 | EMC IP Holding Company LLC | Replication of data in a geographically distributed storage environment |
US10846003B2 (en) | 2019-01-29 | 2020-11-24 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage |
US10942825B2 (en) | 2019-01-29 | 2021-03-09 | EMC IP Holding Company LLC | Mitigating real node failure in a mapped redundant array of independent nodes |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US10936239B2 (en) | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Cluster contraction of a mapped redundant array of independent nodes |
KR20200108650A (ko) * | 2019-03-11 | 2020-09-21 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US11029865B2 (en) | 2019-04-03 | 2021-06-08 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes |
US10944826B2 (en) | 2019-04-03 | 2021-03-09 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a mapped redundant array of independent nodes |
US11119686B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Preservation of data during scaling of a geographically diverse data storage system |
US11113146B2 (en) | 2019-04-30 | 2021-09-07 | EMC IP Holding Company LLC | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system |
US11121727B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Adaptive data storing for data storage systems employing erasure coding |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11031956B2 (en) * | 2019-06-25 | 2021-06-08 | Samsung Electronics Co., Ltd. | Generalized concatenated error correction coding scheme with locality |
US11209996B2 (en) | 2019-07-15 | 2021-12-28 | EMC IP Holding Company LLC | Mapped cluster stretching for increasing workload in a data storage system |
US11023145B2 (en) | 2019-07-30 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid mapped clusters for data storage |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11228322B2 (en) | 2019-09-13 | 2022-01-18 | EMC IP Holding Company LLC | Rebalancing in a geographically diverse storage system employing erasure coding |
US11269780B2 (en) | 2019-09-17 | 2022-03-08 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
US10963396B1 (en) | 2019-09-17 | 2021-03-30 | Micron Technology, Inc. | Memory system for binding data to a memory namespace |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11119690B2 (en) | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Consolidation of protection sets in a geographically diverse data storage environment |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11144220B2 (en) | 2019-12-24 | 2021-10-12 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes |
US11231860B2 (en) | 2020-01-17 | 2022-01-25 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage with high performance |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0291671B1 (en) * | 1987-05-18 | 1994-06-08 | International Business Machines Corporation | Apparatus and method for deferred parity checking of control signals across a bidirectional data transmission interface |
WO2008121147A1 (en) * | 2007-03-29 | 2008-10-09 | Montage Technology Group | Register read mechanism |
CN101689864A (zh) * | 2007-07-12 | 2010-03-31 | 三星电子株式会社 | 在通信***中为多个码块计算crc的方法和设备 |
US20110004812A1 (en) * | 2009-07-01 | 2011-01-06 | Silicon Motion, Inc. | Coder-decoder and method for encoding and decoding an error correction code |
US8196002B2 (en) * | 2007-06-01 | 2012-06-05 | Agere Systems Inc. | Systems and methods for joint LDPC encoding and decoding |
US20130073895A1 (en) * | 2010-12-01 | 2013-03-21 | Lsi Corporation | Fractional redundant array of silicon independent elements |
US8495465B1 (en) * | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
CN103415844A (zh) * | 2011-01-18 | 2013-11-27 | Lsi公司 | 高级冗余信息计算 |
CN104115126A (zh) * | 2011-12-22 | 2014-10-22 | 桑迪士克科技股份有限公司 | 使用代数码的多阶段ecc编码 |
US20140337681A1 (en) * | 2013-05-13 | 2014-11-13 | Phison Electronics Corp. | Data writing method, memory storage device, and memory controller |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62233932A (ja) | 1986-04-03 | 1987-10-14 | Kenwood Corp | Bch符号の復号回路 |
US8484542B2 (en) * | 2011-02-08 | 2013-07-09 | Sandisk Technologies Inc. | Data recovery using additional error correction coding data |
US8874994B2 (en) | 2011-07-22 | 2014-10-28 | Sandisk Technologies Inc. | Systems and methods of storing data |
US8862967B2 (en) | 2012-03-15 | 2014-10-14 | Sandisk Technologies Inc. | Statistical distribution based variable-bit error correction coding |
US20130318418A1 (en) | 2012-05-22 | 2013-11-28 | Politecncio di Milano | Adaptive error correction for phase change memory |
US8942028B1 (en) | 2014-06-16 | 2015-01-27 | Sandisk Technologies Inc. | Data reprogramming for a data storage device |
US9798622B2 (en) * | 2014-12-01 | 2017-10-24 | Intel Corporation | Apparatus and method for increasing resilience to raw bit error rate |
-
2015
- 2015-10-08 US US14/878,901 patent/US9734009B2/en active Active
-
2016
- 2016-09-15 WO PCT/US2016/051849 patent/WO2017062148A1/en active Application Filing
- 2016-09-15 CN CN201680054615.XA patent/CN108028058B/zh active Active
- 2016-09-15 DE DE112016004629.4T patent/DE112016004629T5/de active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0291671B1 (en) * | 1987-05-18 | 1994-06-08 | International Business Machines Corporation | Apparatus and method for deferred parity checking of control signals across a bidirectional data transmission interface |
WO2008121147A1 (en) * | 2007-03-29 | 2008-10-09 | Montage Technology Group | Register read mechanism |
US8196002B2 (en) * | 2007-06-01 | 2012-06-05 | Agere Systems Inc. | Systems and methods for joint LDPC encoding and decoding |
CN101689864A (zh) * | 2007-07-12 | 2010-03-31 | 三星电子株式会社 | 在通信***中为多个码块计算crc的方法和设备 |
US20110004812A1 (en) * | 2009-07-01 | 2011-01-06 | Silicon Motion, Inc. | Coder-decoder and method for encoding and decoding an error correction code |
US8495465B1 (en) * | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US20130073895A1 (en) * | 2010-12-01 | 2013-03-21 | Lsi Corporation | Fractional redundant array of silicon independent elements |
CN103415844A (zh) * | 2011-01-18 | 2013-11-27 | Lsi公司 | 高级冗余信息计算 |
CN104115126A (zh) * | 2011-12-22 | 2014-10-22 | 桑迪士克科技股份有限公司 | 使用代数码的多阶段ecc编码 |
US20140337681A1 (en) * | 2013-05-13 | 2014-11-13 | Phison Electronics Corp. | Data writing method, memory storage device, and memory controller |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597654A (zh) * | 2018-06-13 | 2019-12-20 | 奈奎斯特半导体有限公司 | 用于超快的具有奇偶校验的纠错码的***和方法 |
CN110597654B (zh) * | 2018-06-13 | 2023-08-15 | 英韧科技(上海)有限公司 | 用于超快的具有奇偶校验的纠错码的***和方法 |
CN114402282A (zh) * | 2019-09-17 | 2022-04-26 | 美光科技公司 | 存取存储的元数据以识别存储数据的存储器装置 |
CN114402282B (zh) * | 2019-09-17 | 2024-04-09 | 美光科技公司 | 存取存储的元数据以识别存储数据的存储器装置 |
Also Published As
Publication number | Publication date |
---|---|
DE112016004629T5 (de) | 2018-06-21 |
US20170102993A1 (en) | 2017-04-13 |
CN108028058B (zh) | 2021-06-04 |
WO2017062148A1 (en) | 2017-04-13 |
US9734009B2 (en) | 2017-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108028058A (zh) | 用于设备的数据编码技术 | |
US10732847B2 (en) | Optimistic read operation | |
CN105843550B (zh) | 用于减少读取干扰错误的存储器***和方法 | |
US9875156B2 (en) | Data storage device with a memory die that includes an interleaver | |
US10567006B2 (en) | Data relocation | |
US20160162215A1 (en) | Meta plane operations for a storage device | |
US10116336B2 (en) | Error correcting code adjustment for a data storage device | |
US10002042B2 (en) | Systems and methods of detecting errors during read operations and skipping word line portions | |
US9886341B2 (en) | Optimizing reclaimed flash memory | |
CN109426580A (zh) | 数据存储设备及其操作方法 | |
US20160018998A1 (en) | Methods and Systems for Scalable Reliability Management of Non-Volatile Memory Modules | |
US9244767B1 (en) | Data storage device with in-memory parity circuitry | |
US10290353B2 (en) | Error mitigation for 3D NAND flash memory | |
US8942028B1 (en) | Data reprogramming for a data storage device | |
US20160019160A1 (en) | Methods and Systems for Scalable and Distributed Address Mapping Using Non-Volatile Memory Modules | |
US9940039B2 (en) | Method and data storage device with enhanced data retention | |
US9824760B2 (en) | Systems and methods of generating shaped random bits | |
US9588701B2 (en) | Multi-stage programming at a storage device using multiple instructions from a host | |
US9870167B2 (en) | Systems and methods of storing data | |
US10372351B2 (en) | Techniques for non-blocking control information and data synchronization by a data storage device | |
CN105551521A (zh) | 存储***及其操作方法 | |
US10572189B2 (en) | Method and decoder to adjust an error locator polynomial based on an error parity | |
CN108172261A (zh) | 由数据存储设备的解码期间的流水线延迟检测 | |
US20160125960A1 (en) | System and method for write abort detection | |
US9595353B2 (en) | Resistance-based memory with auxiliary redundancy information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |