CN111989746A - 使用阶层式解码器的误差校正 - Google Patents
使用阶层式解码器的误差校正 Download PDFInfo
- Publication number
- CN111989746A CN111989746A CN201980026838.9A CN201980026838A CN111989746A CN 111989746 A CN111989746 A CN 111989746A CN 201980026838 A CN201980026838 A CN 201980026838A CN 111989746 A CN111989746 A CN 111989746A
- Authority
- CN
- China
- Prior art keywords
- decoder
- data
- error correction
- memory device
- validity flag
- 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
- 238000012937 correction Methods 0.000 title claims description 58
- 238000000034 method Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 7
- 238000001514 detection method Methods 0.000 claims abstract description 4
- 238000012795 verification Methods 0.000 claims abstract description 3
- 208000011580 syndromic disease Diseases 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
-
- 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/102—Error in check bits
-
- 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
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- 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
-
- 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
-
- 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
- H03M13/2927—Decoding strategies
-
- 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/2948—Iterative decoding
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
-
- 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/65—Purpose and implementation aspects
- H03M13/6575—Implementations based on combinatorial logic, e.g. Boolean circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
与校正误差相关的设备及方法可包含使用FD解码器及AD解码器。校正误差可包含:从存储器阵列接收输入数据;对所述输入数据执行与误差检测相关联的多个操作;及基于处理所述输入数据而将输出数据、验证旗标及多个奇偶校验位提供到由耦合到存储器装置的控制器代管的第二解码器。
Description
技术领域
本发明大体上涉及存储器,且更特定来说涉及与误差校正相关联的设备及方法。
背景技术
存储器装置通常提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可需要电力来维持其数据且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)等。非易失性存储器可在未被供电时通过留存所存储数据而提供持久数据且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器(例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)及磁阻性随机存取存储器(MRAM))等。
存储器还用作用于广泛范围的电子应用的易失性及非易失性数据存储装置。非易失性存储器可用于例如个人计算机、便携式存储棒、数码相机、蜂窝电话、便携式音乐播放器(例如MP3播放器)、电影播放器及其它电子装置。存储器单元可经布置成阵列,其中所述阵列用于存储器装置中。
各种计算系统包含耦合到存储器(例如,存储器系统)的处理资源,所述存储器是关联执行指令集(例如,程序、应用程序等)来存取。存储器系统可使用误差校正码(ECC)来检测及校正数据中的误差。
附图说明
图1是能够实施本发明的数个实施例的包含存储器装置及控制器的存储器系统的框图。
图2是根据本发明的数个实施例的能够校正误差的快速解码(FD)解码器的框图。
图3说明根据本发明的数个实施例的与利用FD解码器及精确解码(AD)解码器校正误差相关联的流程图。
图4说明根据本发明的数个实施例的码字的实例。
具体实施方式
本发明包含与误差校正相关的设备及方法。一种实例方法可包含从存储器阵列接收输入数据;对所述输入数据执行与误差检测相关联的多个操作;及基于处理所述输入数据而将输出数据、验证旗标及多个奇偶校验位提供到由耦合到存储器装置的控制器代管的第二解码器。
本发明的数个实施例可提供用于对使用存储器装置存储的数据执行误差校正的经改进误差校正码(ECC)。例如,一些现有ECC包含将冗余数据或奇偶校验数据添加到消息使得可恢复消息。在数据的传输、存储及/或检索期间,可在数个误差的指令之后恢复数据。
存储装置已成为计算机系统中的性能瓶颈。存储数据及从存储装置检索数据的能力已成为计算机系统执行计算及操作的能力的限制因素。
尽管基于NAND的存储装置解决方案已经改进而优于硬盘驱动器延时达10倍以上,然存储装置仍是延时落后的。例如相变存储器(PCM)、磁阻性随机存取存储器(MRAM)、电阻性随机存取存储器(ReRAM)及/或3D XPoint存储器的新兴存储器(EM)技术可改进存储器相关延时而优于其它存储器技术。EM可提供与系统(例如,计算系统)的其余部分同样快的数据存储装置。EM可提供具有与计算系统的其它组件的延时相当的延时的数据存储装置。为应对存储装置应用的可靠性目标,EM可利用能够校正误差且留存代管EM的装置的低延时性能的ECC。
鉴于存储装置应用(不同于存储器应用)可忍受可变存取延时,利用具有低延时的ECC解码器可为有益的。在一些实例中,低延时可包括多个纳秒的范围内的延时。在其它实例中,较高延时可为多个微秒的范围内的延时。
可通过利用ECC级联方案及阶层式解码器而实现具有高校正能力及低延时的ECC解码器。如本文中使用,阶层式解码器可描述使用多个解码器来校正数据中的误差。阶层式解码器可包含使用快速解码(FD)解码器及精确解码(AD)解码器。在一些实例中,阶层式解码方案可利用FD解码器且可视需要借助于用于AD解码器中的更强大ECC。
鉴于FD解码器以高机率标记其故障的能力,可使用FD解码器中采用的ECC。如果FD解码器中使用的ECC在不引发旗标的情况下发生故障,那么将接受以错误解码事件结束的信息块。在一些实例中,在FD解码器中发生故障而不引发旗标的机率非常低。可在非常短时间内产生由FD解码器生成以识别故障的旗标,以免损害FD解码器的低延时。
在数个实施例中,阶层式码架构利用嵌入在存储器装置中的FD解码器及实施在存储控制器中的AD解码器。为具有有效且高效的解决方案,FD解码器架构可经调适以用于如图1中展示的阶层式方案中。
在本发明的以下详细描述中,参考附图,其形成本发明的一部分,且其中以说明方式展示可如何实践本发明的数个实施例。充分详细地描述这些实施例以使所属领域的一般技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且在不脱离本发明的范围的情况下可做出过程、电及/或结构改变。如本文中使用,指定符“N”指示如此指定的数个特定特征可包含在本发明的数个实施例中。
如本文中使用,“数个”某物可指此类事物中的一或多者。例如,数个存储器装置可指存储器装置中的一或多者。“多个”某物意指两个或更多个。另外,如本文中使用,例如“N”的指定符(尤其关于附图中的参考数字)指示如此指定的数个特定特征可包含在本发明的数个实施例中。
本文中的图遵循编号惯例,其中首位数字或前几位数字对应于附图图号且其余数字识别附图中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。如将明白,可添加、交换及/或消除本文中的各种实施例中展示的元件以便提供本发明的数个额外实施例。另外,图中提供的元件的比例及相对尺度意图说明本发明的各种实施例且不在限制意义上使用。
图1是能够实施本发明的数个实施例的包含存储器装置104及控制器102的存储器系统100的框图。存储器系统100还可包含多个快速编码(FE)编码器106-1及106-2(统称为FE编码器106)及精确编码(AE)编码器108。存储器系统100还可包含多个FD解码器110-1及110-2(统称为FD解码器110)及AD解码器112。存储器系统100可进一步包含存储器阵列114。
如本文中使用,“设备”可指但不限于各种结构或结构组合,例如电路或若干电路、裸片或若干裸片、模块或若干模块、装置或若干装置或系统或若干系统。例如,存储器系统100、控制器102、存储器装置104、FE编码器106、AE编码器108、FD解码器110、AD解码器112及存储器阵列114可单独或共同称为“设备”。
在这个实例中,计算系统包含耦合到控制器102的主机,所述控制器102经耦合到存储器系统100。计算系统可为膝上型计算机、个人计算机、数码相机、数字记录及回放装置、移动电话、PDA、存储卡读取器、接口集线器、传感器、启用物联网(IoT)的装置及其它系统,且主机可包含能够(例如,经由控制器102)存取存储器系统100的数个处理资源(例如,一或多个处理器)。主机可负责执行操作系统(OS)及/或执行可(例如,经由控制器102从存储器系统100)加载到其的各种应用程序。
控制器102可从主机接收存储器事务请求(例如,呈读取及写入命令的形式,其可分别称为加载及存储命令)。控制器102可通过数个接口例如采用适合协议在主机与存储器系统100之间传送命令及/或数据,所述数个接口可包括物理接口,例如总线。此协议可为定制或专属的,或接口可采用标准化协议,例如外围组件快速互连(PCIe)、Gen-Z、CCIX等。控制器102可包括呈硬件、固件或软件或三者的任何组合的形式的控制电路。作为实例,控制器102可包括状态机、定序器及/或某种其它类型的控制电路,其可呈耦合到印刷电路板的专用集成电路(ASIC)的形式实施。在数个实施例中,控制器102可与主机共置(例如,呈芯片上系统(SOC)配置)。而且,控制器102可与存储器系统100共置。
存储器系统100可包括数个物理存储器“芯片”或裸片,其可各自包含数个存储器单元阵列(例如,存储体)及与存取(若干)阵列(例如,从阵列读取数据及将数据写入到阵列)相关联的对应支持电路(例如,地址电路、I/O电路、控制电路、读取/写入电路等)。作为实例,存储器系统100可包含数个DRAM装置、SRAM装置、PCRAM装置、RRAM装置、FeRAM装置、相变存储器、3DXpoint及/或快闪存储器装置。在数个实施例中,存储器系统100可充当计算系统的主要存储器。
FD解码器110可实施FD码。FD码可在持续时间内校正误差。持续时间可包含多个纳秒。FD码及引申来说FD解码器110可校正至多预定数量的误差。例如,FD解码器110可校正从存储器阵列114检索的给定数据页中的一个到五个误差。FD解码器110可实施代数解码方案。即,FD解码器110可利用代数解码而非迭代解码。FD解码器110可利用组合逻辑实施代数解码。在一些实例中,FD解码器110可在错误地解码数据的机率小于10-5的情况下解码数据,同时维持低延时。
AD解码器112可实施AD码。AD码可在持续时间内校正误差。持续时间可包含多个微秒。可在FD解码器110与AD解码器112之间区分预定持续时间。例如,FD解码器110可确定是否校正误差及/或可在预定持续时间内校正误差。AD解码器112可确定是否校正误差及/或可在大于预定持续时间的持续时间内校正误差。
AD码及引申来说AD解码器112可校正多于预定数量的误差。例如,AD解码器112可校正从存储器阵列114检索的给定数据页中的六个或更多个误差。例如,AD解码器112可校正数百个误差。AD解码器112可实施迭代过程。可利用时序逻辑实施迭代过程。
AD解码器112及FD解码器110中的至少一者可驻留在不同装置及/或设备中。例如,AD解码器112可驻留在控制器102中,而FD解码器110-2驻留在存储器装置104中。在一些实施例中,控制器102可为微控制器(uC)。
FD解码器110-2可利用有效性旗标触发AD解码器112。即,AD解码器112可响应于接收有效性旗标及/或响应于有效性旗标的值而确定是否实施AD码以校正数据中的误差。FD解码器110-2可基于FD解码器110-2是否校正从存储器阵列114检索的数据中的误差而触发有效性旗标。经触发有效性旗标可表示数个位,其包含预定值以识别FD解码器110-2校正误差或不存在误差。经触发有效性旗标可抑制AD解码器112的数据处理。
在一些实例中,还可编码存储在存储器阵列中的数据。可利用FE编码器106及AE编码器108中的一者编码数据。例如,可利用驻留在同一装置(例如,控制器102)中的FE编码器106-1及AE编码器108编码数据。还可利用驻留在不同装置中的FE解码器106-2及AE编码器108编码数据。AE编码器108可由控制器102代管,而FE编码器106-2由存储器装置104代管。
在一些实施例中,可从存储器阵列114以页检索数据及/或奇偶校验位。在一些实例中,页包含码字。如本文中使用,奇偶校验位描述可用于确定数据是否含有误差的位。奇偶校验位还可用于识别误差及/或校正误差。
可将数据及/或奇偶校验位提供到FD解码器110-2。例如,控制器102可协调数据及/或奇偶校验位从存储器阵列114到FD解码器110-2的传送。FD解码器110-2可确定数据中是否存在误差及/或所述FD解码器是否将利用奇偶校验位校正误差。FD解码器110-2可基于误差是否经校正而生成有效性旗标。
FD解码器110-2可将数据、奇偶校验位及/或有效性旗标提供到AD解码器112。AD解码器112可基于有效性旗标的值而确定是否对数据执行误差校正码(例如,AD码)。例如,AD解码器112可响应于接收包括第一值的有效性旗标而校正数据中的误差。AD解码器112可响应于接收包括第二值的有效性旗标而禁止校正误差。FD解码器110-2可响应于校正数据中的数个误差而生成经激活有效性旗标。经激活有效性旗标可为逻辑“1”位且经撤销激活有效性旗标可为逻辑“0”位。在一些实例中,经激活有效性旗标可为逻辑“0”位且经撤销激活有效性旗标可为逻辑“1”位。
AD解码器112可响应于接收经撤销激活有效性旗标而校正误差。即,AD解码器112可响应于接收经撤销激活有效性旗标而确定经接收数据中是否存在误差。AD解码器112可响应于确定存在误差而校正误差。
如果AD解码器112使用奇偶校验位校正数据中的误差,那么AD解码器112可将经校正数据提供到FD解码器110-1以进行进一步误差校正。在一些实例中,AD解码器112可将数据提供到请求设备而无需由FD解码器110-1进行进一步处理。
在其它实例中,AD解码器112可提供输入数据作为输出数据而无需响应于接收经激活有效性旗标对数据执行误差校正。即,AD解码器112可响应于接收已由FD解码器110-2校正的数据而将数据及/或奇偶校验位传递到FD解码器110-1及/或请求设备。
在一些实例中,AD解码器112可从FD解码器110-2接收数据及有效性旗标而不接收奇偶校验位。AD解码器112可确定数据中是否存在误差。响应于确定数据中存在误差,AD解码器112及/或控制器102可从存储器装置104请求奇偶校验位。例如,AD解码器112可使用读取再试命令请求奇偶校验位。AD解码器112及/或控制器102可使用读取再试命令从存储器装置104请求奇偶校验位。
AD解码器112使用经请求奇偶校验位校正误差。可从FD解码器110-2接收及/或可在不使用FD解码器110-2的情况下接收经请求奇偶校验位。在一些实例中,FD解码器110-2可使用一或多个专用奇偶校验位线提供奇偶校验位。
FD解码器110-1可从AD解码器112接收数据且可校正数据中的误差。例如,FD解码器110-1可确定由AD解码器112提供的数据是否含有误差。响应于确定数据含有误差,FD解码器110-1可校正误差。
图2是根据本发明的数个实施例的能够校正误差的FD解码器210的框图。FD解码器210可包含校正子计算单元227、误差校正单元228及错误校正检查器单元229。
在一些实施例中,校正子计算单元227可与误差校正单元228及/或错误校正检查器单元229进行通信。错误校正检查器单元229还可与误差校正单元228进行通信。
FD解码器210可从存储器阵列接收数据220及奇偶校验位226。FD解码器210可在校正子计算单元227处接收数据220。FD解码器210可经由专用奇偶校验位线将奇偶校验位226提供到控制器及/或控制器的设备。
在一些实例中,FD解码器210可提供奇偶校验位226,而无关于数据是否经校正(例如,原始数据)。在其它实例中,如果撤销激活有效性旗标224(例如,无效性),那么FD解码器210可提供数据。FD解码器210还可在请求后提供奇偶校验位226。例如,FD解码器210可在请求后提供奇偶校验位226,而无关于有效性旗标224的值。
校正子计算单元227可从数据220及奇偶校验位226生成校正子。校正子可为可用于确定数据220中是否存在误差的向量。例如,校正子计算单元227可从一或多个经接收码字生成校正子。可将校正子提供到误差校正单元228及/或错误校正检查器单元229。
误差校正单元228可利用校正子来确定数据220是否包含误差。误差校正单元228还可使用校正子来确定数据220中存在的误差数量。如果数据220中的误差数量小于预定阈值,那么误差校正单元228可校正误差。如果数据220中的误差数量大于预定阈值,那么误差校正单元228可放弃校正误差。因而,误差校正单元228可生成经校正数据或原始数据。由误差校正单元提供的数据可称为数据222、经校正数据222及/或原始数据222。FD解码器210可将数据222提供到控制器及/或由控制器代管的AD解码器。在一些实例中,误差校正单元228可将消息提供到错误校正检查器单元229以向错误校正检查器单元229告知是否在数据222中校正误差。
错误校正检查器单元229可使用校正子及/或从误差校正单元228接收的消息确定是否在数据222中校正误差。基于是否在数据222中校正误差,误差校正单元228可生成有效性旗标224。如果数据222包括对数据220中的误差的校正,那么错误校正检查器单元229可生成经激活有效性旗标224。如果数据222不包括校正,那么错误校正检查器单元229可生成经撤销激活有效性旗标224。错误校正检查器单元229可将有效性旗标224提供到控制器及/或由控制器代管的AD解码器。
在一些实例中,FD解码器210可将数据222、有效性旗标224及奇偶校验位226提供到控制器而无关于数据222是否包含校正。在其它实例中,FD解码器210可将数据222及有效性旗标224提供到控制器而无关于数据222是否含有校正。如果数据222不含有校正,那么FD解码器210可将奇偶校验位226提供到控制器。
图3说明根据本发明的数个实施例的与利用FD解码器及AD解码器校正误差相关联的流程图330。图3包含外编码器306、内编码器308、存储器装置304、内解码器312及外解码器310。图3展示使用外FD码的串行码级联。
外编码器306可为FE编码器,内编码器308可为AE编码器。内解码器312可为AD解码器且外解码器310可为FD解码器。尽管未展示,然存储器装置304可包含FD解码器。内解码器312及外解码器310可由控制器代管。在一些实例中,外编码器306及内编码器308由控制器代管。
由存储器装置304所代管的FD解码器生成的有效性旗标及数据可用于确定是否将数据提供到内解码器312及/或外解码器310。例如,由存储器装置304代管的FD解码器可响应于生成具有例如指示数据未经校正(例如,原始)的逻辑“0”的预定值的有效性旗标而将原始数据提供到内解码器312。由存储器装置304代管的FD解码器可响应于生成具有例如指示数据经校正的逻辑“1”的预定值的有效性旗标而将经校正数据提供到内解码器312。
外编码器306可编码小数据分块(例如,原始数据)以生成快速码字。可使用内编码器308编码快速码字以生成精确码字。精确码字可称为精确码。精确码可为系统码。即,精确码可分离数据与奇偶校验位。
在解码阶段中,内解码器312可对精确码进行解码以生成快速码字。外解码器310可对快速码字进行解码以生成所述小数据分块。在内解码器312之后利用外解码器310可增加实施流程图330的系统的误差校正能力。
即,外解码器310可消除可能的误差底限。外解码器310可用于提供优于内解码器312的性能。在一些实例中,内解码器312及外解码器310可操作不同大小的数据分块。例如,小数据分块可为第一大小且精确码字可为第二大小,其中第二大小大于第一大小。
FD解码器的复制由于精确码的系统性质而变得可行。FD解码器的复制是指使用存储器装置304中的FD解码器及使用外解码器310。由于精确码的系统性质,可为存储器装置304中的FD解码器提供在内解码器312之前校正误差的机会及/或为外解码器310提供校正误差的机会。
尽管图3中的实例展示为使用串行码级联,然本文中描述的实例可扩展到使用内FD码的串行或并行级联。
图4说明根据本发明的数个实施例的码字440的实例。码字440包含AD数据442及AD奇偶校验位444。AD数据442包括FD数据446及FD奇偶校验位448。
在将数据存储在存储器装置(例如,存储器装置304)中之前,作用于数据分块(例如,FD数据446的分块)的外编码器(例如,外编码器306)通过添加对应于FD数据446的分块中的每一者的FD奇偶校验位448而将所述分块中的每一者编码为FD码字。即,将FD数据446的分块按顺序编码成包括FD数据446及FD奇偶校验位448的N个FD码字。
通过内编码器(例如,内编码器308)将N个FD码字编码成N个AD码字。内编码器将N个FD码字处理为AD数据442,其中AD数据442的分块中的每一者是不同于N个FD码字的码字。内编码器针对AD数据442的分块中的每一者生成AD奇偶校验位444。AD奇偶校验位444取决于FD奇偶校验位448。
在解码阶段中,通过FD解码器试探性地解码FD码字。如果正确地解码FD码字(例如,如果FD码字不具有误差或数个误差经校正),那么针对全部FD码字设置有效性旗标且抑制AD解码器。如果FD码字中的至少一者未通过FD解码器校正且FD解码器检测到存在误差,那么激活AD解码器且AD解码器处理FD码字。
在一些实施例中,在存储器中实施FD解码器以减小FD解码器中与校正误差相关联的延时。FD解码器可与AD解码器进行通信以请求AD解码器参与完成解码过程。即,FD解码器可启动解码过程且FD解码器可经由有效性旗标请求AD解码器完成解码过程。有效性旗标可用于警告AD解码器可校正数据及/或用于激活AD解码器。
在一些实例中,可使用内AD解码器复制串行级联方案。可在存储器装置中实施FE编码器及FD解码器两者以减小延时。FD解码器可将奇偶校验位及有效性旗标提供到AD解码器以容许AD解码器基于FD解码器先前是否已解码数据(例如,校正数据中的误差)而解码数据。
尽管已在本文中说明及描述特定实施例,但所属领域的一般技术人员将明白,经计算以实现相同结果的布置可取代所展示的特定实施例。本发明意图涵盖本发明的各种实施例的调适或变动。应理解,已以说明性方式且非限制性方式进行以上描述。所属领域的技术人员在审查以上描述后将明白以上实施例的组合及本文中未具体描述的其它实施例。本发明的各种实施例的范围包含其中使用以上结构及方法的其它应用。因此,应参考所附权利要求书连同此权利要求书所授权的等效物的全部范围确定本发明的各种实施例的范围。
在前述具体实施方式中,出于简化本发明的目的而将各种特征集合在单个实施例中。本发明方法不应被解释为反映本发明的所揭示实施例必须使用比每一权利要求中明确叙述更多的特征的意图。实情是,如随附权利要求书所反映,发明主题在于少于单个所揭示实施例的所有特征。因此,随附权利要求书由此并入具体实施方式中,其中每一权利要求独立作为单独实施例。
Claims (23)
1.一种存储器装置,其包括:
阵列;
第一解码器,其经配置以:
从存储器阵列接收输入数据;
对所述输入数据执行与误差检测相关联的多个操作;及
基于处理所述输入数据而将输出数据、验证旗标及多个奇偶校验位提供到由耦合到所述存储器装置的控制器代管的第二解码器。
2.根据权利要求1所述的存储器装置,其中所述第一解码器经进一步配置以确定所述输入数据含有误差。
3.根据权利要求4所述的存储器装置,其中所述第一解码器经进一步配置以校正所述误差以生成所述输出数据。
4.根据权利要求4所述的存储器装置,其中所述第一解码器经进一步配置以基于不校正所述误差的确定而传递所述输入数据作为所述输出数据。
5.根据权利要求4所述的存储器装置,其中有效性旗标描述是否在所述输出数据中校正所述误差。
6.根据权利要求1到2中任一权利要求所述的存储器装置,其中所述多个奇偶校验位用于进行所述误差检测。
7.根据权利要求1到2中任一权利要求所述的存储器装置,其中所述解码器是误差校正码解码器。
8.根据权利要求1到2中任一权利要求所述的存储器装置,其中所述第二解码器是误差校正码解码器。
9.根据权利要求1所述的存储器装置,其中所述第一解码器经进一步配置以确定所述输入数据不含有误差。
10.根据权利要求9所述的存储器装置,其中所述第一解码器经进一步配置以基于确定所述输入数据不含有所述误差而提供所述输入数据作为所述输出数据。
11.一种耦合到存储器装置的控制器,其包括:
精确解码AD解码器,其经配置以:
从由所述存储器装置代管的第一快速解码FD解码器接收数据、有效性旗标及奇偶校验位;
响应于确定所述有效性旗标是第一值,将所述数据及所述奇偶校验位提供到第二FD解码器;
响应于确定所述有效性旗标是第二值:
使用所述奇偶校验位对所述数据执行误差校正操作;
将经校正的所述数据及所述奇偶校验位提供到所述第二FD解码器;及
所述第二FD解码器,其经配置以使用所述奇偶校验位对所述数据执行误差校正。
12.根据权利要求11所述的控制器,其中所述AD解码器经进一步配置以在所述有效性旗标包括所述第一值的情况下接收经校正数据。
13.根据权利要求11所述的控制器,其中所述AD解码器经进一步配置以在所述有效性旗标包括所述第二值的情况下接收原始数据。
14.根据权利要求11到13中任一权利要求所述的控制器,其中所述AD解码器是内解码器且所述第二FD解码器是外解码器。
15.一种设备,其包括:
存储器阵列,其经配置以存储数据及奇偶校验位;及
快速解码FD解码器,其经配置以接收所述数据及所述奇偶校验位且包括:
校正子计算单元,其经配置以从所述数据及所述奇偶校验位生成校正子;
误差校正单元,其经配置以:
使用所述校正子及所述奇偶校验位对所述数据执行误差校正码以基于校正所述数据的确定而生成经校正数据;及
将所述数据及所述经校正数据中的至少一者提供到由控制器代管的精确解码AD解码器;及
错误校正检查器单元,其经配置以:
基于所述误差校正单元是否将所述数据或所述经校正数据提供到所述AD解码器而生成有效性旗标;及
将所述有效性旗标提供到所述AD解码器。
16.根据权利要求15所述的设备,其中所述错误校正检查器单元经进一步配置以基于由所述校正子计算单元提供的所述校正子生成所述有效性旗标。
17.根据权利要求15到16中任一权利要求所述的设备,其中所述错误校正检查器单元经进一步配置以从所述误差校正单元接收消息,所述消息描述所述误差校正单元是否将所述数据或所述经校正数据中的所述至少一者提供到所述AD解码器。
18.根据权利要求15到16中任一权利要求所述的设备,其中FD解码器进一步包括奇偶校验位线。
19.一种用于使用快速解码FD解码器执行误差校正码的方法,其包括:
确定是否使用由存储器装置代管的所述FD解码器对页执行第一误差校正码;
基于执行所述第一误差校正的确定:
从所述页及奇偶校验位生成经校正页;及
生成第一有效性旗标;
将所述第一有效性旗标及所述经校正页提供到微控制器;及
基于不执行所述第一误差校正码的确定:
生成第二有效性旗标;
将所述第二有效性旗标、所述页及所述奇偶校验位提供到所述微控制器。
20.根据权利要求19所述的方法,其进一步包括基于接收所述第二有效性旗标,使用由所述微控制器代管的精确解码AD解码器利用所述奇偶校验位对所述页执行第二误差校正码。
21.根据权利要求19所述的方法,其进一步包括基于接收所述第一有效性旗标,放弃对所述页执行第二误差校正码。
22.根据权利要求19到21中任一权利要求所述的方法,其中所述FD解码器利用代数解码。
23.根据权利要求19到21中任一权利要求所述的方法,其中所述FD解码器利用组合逻辑。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/958,496 US10606694B2 (en) | 2018-04-20 | 2018-04-20 | Error correction using hierarchical decoders |
US15/958,496 | 2018-04-20 | ||
PCT/US2019/025161 WO2019204017A1 (en) | 2018-04-20 | 2019-04-01 | Error correction using hierarchical decoders |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111989746A true CN111989746A (zh) | 2020-11-24 |
CN111989746B CN111989746B (zh) | 2024-06-18 |
Family
ID=68236392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980026838.9A Active CN111989746B (zh) | 2018-04-20 | 2019-04-01 | 使用阶层式解码器的误差校正 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10606694B2 (zh) |
JP (1) | JP7157516B2 (zh) |
KR (1) | KR102414202B1 (zh) |
CN (1) | CN111989746B (zh) |
TW (1) | TWI697908B (zh) |
WO (1) | WO2019204017A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12067254B2 (en) * | 2021-05-21 | 2024-08-20 | Samsung Electronics Co., Ltd. | Low latency SSD read architecture with multi-level error correction codes (ECC) |
KR20230083689A (ko) * | 2021-12-03 | 2023-06-12 | 서울대학교산학협력단 | 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098485A (zh) * | 2006-06-27 | 2008-01-02 | 三星电子株式会社 | 使用填充字节提高纠错能力的装置和方法 |
CN101572109A (zh) * | 2008-04-30 | 2009-11-04 | 株式会社东芝 | 数据解码装置,磁盘装置以及数据解码方法 |
US20090276689A1 (en) * | 2008-05-02 | 2009-11-05 | Weijun Tan | Using short burst error detector in a queue-based system |
JP2010033181A (ja) * | 2008-07-25 | 2010-02-12 | Toshiba Microelectronics Corp | エラー訂正回路、および半導体メモリシステム |
CN102110481A (zh) * | 2009-12-24 | 2011-06-29 | 海力士半导体有限公司 | 具有ecc电路的半导体存储系统及其控制方法 |
US20110246853A1 (en) * | 2010-04-02 | 2011-10-06 | Yong-June Kim | Semiconductor device and decoding method thereof |
CN103155421A (zh) * | 2011-01-14 | 2013-06-12 | 马维尔国际贸易有限公司 | Ldpc多解码器架构 |
US8621318B1 (en) * | 2012-01-11 | 2013-12-31 | Pmc-Sierra Us, Inc. | Nonvolatile memory controller with error detection for concatenated error correction codes |
CN103839594A (zh) * | 2012-11-27 | 2014-06-04 | 建兴电子科技股份有限公司 | 固态储存装置及其联合编解码方法 |
CN104008773A (zh) * | 2013-02-27 | 2014-08-27 | 希捷科技有限公司 | 用于可变电阻存储器单元的ecc管理 |
CN104115126A (zh) * | 2011-12-22 | 2014-10-22 | 桑迪士克科技股份有限公司 | 使用代数码的多阶段ecc编码 |
US20150113311A1 (en) * | 2013-10-18 | 2015-04-23 | Sony Corporation | Storage control apparatus, storage apparatus, information processing system, and storage control method therefor |
CN105164646A (zh) * | 2013-04-30 | 2015-12-16 | 西部数据技术公司 | 具有早期解码终止检测的解码器 |
CN105340022A (zh) * | 2013-06-24 | 2016-02-17 | 美光科技公司 | 用于校正数据错误的电路、设备及方法 |
CN106558332A (zh) * | 2015-09-25 | 2017-04-05 | 爱思开海力士有限公司 | 数据处理器件及其操作方法 |
US20170123903A1 (en) * | 2015-10-30 | 2017-05-04 | Kabushiki Kaisha Toshiba | Memory system and memory device |
CN106855832A (zh) * | 2015-12-09 | 2017-06-16 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
US20180074892A1 (en) * | 2016-09-15 | 2018-03-15 | Apple Inc. | Recovery of data read from memory with unknown polarity |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689727A (en) * | 1994-09-08 | 1997-11-18 | Western Digital Corporation | Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution |
US7043679B1 (en) | 2002-06-27 | 2006-05-09 | Advanced Micro Devices, Inc. | Piggybacking of ECC corrections behind loads |
CN103247347B (zh) * | 2012-02-11 | 2017-07-25 | 三星电子株式会社 | 提供智能存储器架构的方法和系统 |
US9577673B2 (en) | 2012-11-08 | 2017-02-21 | Micron Technology, Inc. | Error correction methods and apparatuses using first and second decoders |
KR102143517B1 (ko) * | 2013-02-26 | 2020-08-12 | 삼성전자 주식회사 | 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법 |
US9524242B2 (en) | 2014-01-28 | 2016-12-20 | Stmicroelectronics International N.V. | Cache memory system with simultaneous read-write in single cycle |
US9912355B2 (en) | 2015-09-25 | 2018-03-06 | Intel Corporation | Distributed concatenated error correction |
US9786362B1 (en) * | 2016-08-26 | 2017-10-10 | Arm Limited | Memory circuit and data processing system |
-
2018
- 2018-04-20 US US15/958,496 patent/US10606694B2/en active Active
-
2019
- 2019-04-01 WO PCT/US2019/025161 patent/WO2019204017A1/en active Application Filing
- 2019-04-01 CN CN201980026838.9A patent/CN111989746B/zh active Active
- 2019-04-01 KR KR1020207032589A patent/KR102414202B1/ko active IP Right Grant
- 2019-04-01 JP JP2020557901A patent/JP7157516B2/ja active Active
- 2019-04-18 TW TW108113525A patent/TWI697908B/zh active
-
2020
- 2020-03-30 US US16/834,198 patent/US11237901B2/en active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080040647A1 (en) * | 2006-06-27 | 2008-02-14 | Sergey Zhidkow | Apparatus and method for improving error correction capability using stuffing byte |
CN101098485A (zh) * | 2006-06-27 | 2008-01-02 | 三星电子株式会社 | 使用填充字节提高纠错能力的装置和方法 |
CN101572109A (zh) * | 2008-04-30 | 2009-11-04 | 株式会社东芝 | 数据解码装置,磁盘装置以及数据解码方法 |
US20090276689A1 (en) * | 2008-05-02 | 2009-11-05 | Weijun Tan | Using short burst error detector in a queue-based system |
JP2010033181A (ja) * | 2008-07-25 | 2010-02-12 | Toshiba Microelectronics Corp | エラー訂正回路、および半導体メモリシステム |
CN102110481A (zh) * | 2009-12-24 | 2011-06-29 | 海力士半导体有限公司 | 具有ecc电路的半导体存储系统及其控制方法 |
US20110246853A1 (en) * | 2010-04-02 | 2011-10-06 | Yong-June Kim | Semiconductor device and decoding method thereof |
CN103155421A (zh) * | 2011-01-14 | 2013-06-12 | 马维尔国际贸易有限公司 | Ldpc多解码器架构 |
CN104115126A (zh) * | 2011-12-22 | 2014-10-22 | 桑迪士克科技股份有限公司 | 使用代数码的多阶段ecc编码 |
US8621318B1 (en) * | 2012-01-11 | 2013-12-31 | Pmc-Sierra Us, Inc. | Nonvolatile memory controller with error detection for concatenated error correction codes |
CN103839594A (zh) * | 2012-11-27 | 2014-06-04 | 建兴电子科技股份有限公司 | 固态储存装置及其联合编解码方法 |
CN104008773A (zh) * | 2013-02-27 | 2014-08-27 | 希捷科技有限公司 | 用于可变电阻存储器单元的ecc管理 |
CN105164646A (zh) * | 2013-04-30 | 2015-12-16 | 西部数据技术公司 | 具有早期解码终止检测的解码器 |
CN105340022A (zh) * | 2013-06-24 | 2016-02-17 | 美光科技公司 | 用于校正数据错误的电路、设备及方法 |
US20150113311A1 (en) * | 2013-10-18 | 2015-04-23 | Sony Corporation | Storage control apparatus, storage apparatus, information processing system, and storage control method therefor |
CN106558332A (zh) * | 2015-09-25 | 2017-04-05 | 爱思开海力士有限公司 | 数据处理器件及其操作方法 |
US20170123903A1 (en) * | 2015-10-30 | 2017-05-04 | Kabushiki Kaisha Toshiba | Memory system and memory device |
CN106855832A (zh) * | 2015-12-09 | 2017-06-16 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
US20180074892A1 (en) * | 2016-09-15 | 2018-03-15 | Apple Inc. | Recovery of data read from memory with unknown polarity |
Also Published As
Publication number | Publication date |
---|---|
KR102414202B1 (ko) | 2022-06-27 |
US20200226020A1 (en) | 2020-07-16 |
TW201944426A (zh) | 2019-11-16 |
TWI697908B (zh) | 2020-07-01 |
KR20200133808A (ko) | 2020-11-30 |
CN111989746B (zh) | 2024-06-18 |
US10606694B2 (en) | 2020-03-31 |
US20190324848A1 (en) | 2019-10-24 |
EP3782156A1 (en) | 2021-02-24 |
WO2019204017A1 (en) | 2019-10-24 |
JP2021520555A (ja) | 2021-08-19 |
US11237901B2 (en) | 2022-02-01 |
JP7157516B2 (ja) | 2022-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9754684B2 (en) | Completely utilizing hamming distance for SECDED based ECC DIMMs | |
US11409601B1 (en) | Memory device protection | |
US11942175B2 (en) | Memory device protection using interleaved multibit symbols | |
US20230100557A1 (en) | Host-based error correction | |
US11714704B2 (en) | Modified checksum using a poison data pattern | |
US11237901B2 (en) | Error correction using hierarchical decoders | |
US11775382B2 (en) | Modified parity data using a poison data unit | |
US11256565B2 (en) | Transaction metadata | |
US12067239B2 (en) | Data stripe protection |
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 |