CN105706059B - 非易失性存储器中的错误校正 - Google Patents
非易失性存储器中的错误校正 Download PDFInfo
- Publication number
- CN105706059B CN105706059B CN201380079212.7A CN201380079212A CN105706059B CN 105706059 B CN105706059 B CN 105706059B CN 201380079212 A CN201380079212 A CN 201380079212A CN 105706059 B CN105706059 B CN 105706059B
- Authority
- CN
- China
- Prior art keywords
- error correction
- code word
- storage equipment
- correction code
- content
- 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.)
- Active
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
- 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
- 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/1044—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 with specific ECC/EDC distribution
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon 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/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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Abstract
描述了存储器中用于错误校正的装置、系统和方法。在一个实施例中,存储器控制器包括逻辑以接收对存储在存储器中的数据的读取请求,检索该数据以及至少一个相关的错误校正码字,其中该数据以及相关的错误校正码字跨存储器中的多个存储装置分布,应用第一错误校正例程解码通过该数据检索的错误校正码字并响应于错误校正码字中的不可校正的错误,对存储器中的该多个设备应用第二错误校正例程。还公开并要求保护其他实施例。
Description
技术领域
本公开一般涉及电子领域。更具体地,本发明的某些实施例一般涉及电子设备的非易失性存储器中的错误校正。
背景技术
很多电子设备包括可使用本地、快速存取的存储器实现的存储器系统,该存储器经常实现为非易失性存储器,诸如闪速存储器等。该存储器可包括多个存储设备,并且数据可跨该多个存储设备分布。间歇性地,由于存储媒介(非易失性存储器)中的错误和/或信号处理中的错误,可能发生读取错误。因此,在存储器中管理错误校正的技术可找到实用性,例如,在电子设备的存储器系统中。
附图说明
参考附图提供详细的描述。不同附图中使用的相同参考编号表示相似或相同的项。
图1是根据本文讨论的各示例在存储器中实现错误校正的装置的组件的示意框图说明。
图2A-2D和图4是根据本文讨论的多个实施例的存储器的示意说明。
图3和图5是说明根据本文讨论的多个实施例的在存储器中实现错误校正的方法中的操作的流程图。
图6-图10是根据本文讨论的多个实施例的可适于实现存储器延迟管理的电子设备的示意框图说明。
具体实施方式
在接下来的描述中,提出多个特定细节以便提供对多个实施例的彻底理解。然而,可在没有这些特定细节的情况下实现本发明的多个实施例。在其他情况下,没有详细描述公知的方法、步骤、组件和电路以便不使得本发明的特定实施例模糊。进一步地,可使用各种手段执行本发明的实施例的各个方面,诸如集成半导体电路(“硬件”)、组织在一个或多个程序中的计算机可读指令(“软件”),或者一些硬件和软件的组合。为了本公开的目的,对于“逻辑”的提及将指硬件、软件或它们的某些组合。
图1是根据本文讨论的各示例的在存储器中实现错误校正的装置的组件的示意框图说明。参考图1,在一些实施例中,中央处理单元(CPU)封装100可包括耦合至控制集线器120的一个或多个CPU110和本地存储器130。控制集线器120包括存储器控制器122和存储器接口124。
存储器接口124通过通信总线160耦合至远程存储器140。在一些示例中,通信总线160可实现为印刷电路板上的迹线、具有铜线的线缆、光缆、连接插座或者上述实现方式的组合。存储器140可包括控制器142以及一个或多个存储装置150。在多个实施例中,可使用易失性存储器例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、非易失性存储器或者不易失性存储器例如相变存储器、NAND(闪速)存储器、铁电随机存取存储器(FeRAM)、基于纳米线的非易失性存储器、结合了忆阻器技术的存储器、诸如相变存储器(PCM)的三维(3D)交叉点存储器、自旋转移矩存储器(STT-RAM)或NAND闪速存储器实现存储体150的至少一些。通过示例,在一些实施例中,存储器装置140可包括耦合至存储器信道144的一个或多个直接直插存储器模块(DIMM),它提供至控制器142的通信链路。存储器140中的存储设备150的特定配置并不关键。
如上文所述,在一些实施例中,存储器控制器122中的逻辑实现存储器140中的错误校正。更具体地,在一些实施例中,存储器控制器122使用已经跨存储器140的多个存储设备150分布的错误校正码实现错误校正操作。
图2A-2D是根据本文讨论的多个实施例的存储器140的示意说明。首先参考图2A,存储器140可包括多个存储设备(例如,DIMM)150A、150B、150C、150D、150E、150F,在本文中它们可共同使用参考数字150表示。举例来说,存储设备150每个可包括16字节的存储。存储设备中的五个(150A-150E)可用于存储数据,同时第六存储设备(150F)可用于存储设备150A-150E中存储的数据的按位XOR。
通过将诸如博斯-查德胡里-霍昆格母(BCH)码字的错误校正码字的一部分存储在每一个相应设备中,从而将该码字跨存储设备150A-150E分布。在图2A描述的示例中,BCH码字是跨五个存储设备150A-150E分布的具有15字节的码字。通过移除对用于XOR的存储设备150F的EEC保护的需求,用于所述数据的BCH码字可变成占用剩余5个存储设备150A-150E的一个大码字。
图2B是XOR跨所有6个存储设备150A-150F分布的存储器140的示意说明。该XOR功能与在所有6个设备150A-150F中进行原始的按位XOR的运行方式相同。因此,当设备故障时,该设备的1/6内容无需使用来自其他设备的错误进行恢复,因为1/6的内容包括不是BCH码字的一部分的XOR数据。
存储设备150的特定大小和数量并不是关键的。错误校正码字可为不同类型的ECC码,不仅仅是BCH。相似地,图2C说明了存储器140包括十个存储设备150A-150J的示例,每个存储设备存储50字节。前九个设备150A-150I存储数据并且低密度奇偶校验(LDPC)码字跨该九个设备150A-150I分布。第十设备150J用于存储所述XOR。
通过综述的形式,当在读取操作期间由于存在过多错误该LDPC码字未能解码时,要么是由于存在实在太多随机错误,或者由于存储设备150的其中一个不起作用。由于LDPC码字跨越或分布于存储数据的所有存储设备150,存储设备150中的哪一个具有更高的位错误率并需要恢复是不可知的。为了适应这一不确定性,每个存储设备150的内容可被依次恢复,测试每一个存储设备150出现单独故障的可能性。可能首先尝试基于历史数据最可能具有最多错误的存储设备150的恢复。
可能存在多个ECC码字,并且该ECC码可能不同,但是该XOR通常小于最大的ECC码字。图2D说明了存储器140包括五个存储设备150A-150E的示例,每个存储设备存储110字节。存在两个BCH码字,一个跨两个设备150A-150B散布/分布并且另一个跨两个设备150C-150D散布/分布。第五设备150E用于存储XOR。
通过综述的形式,当在读取操作期间由于存在过多错误存在解码图2D中该BCH码字的一个或两者的故障时,要么由于存在实在太多随机错误,要么由于存储设备150的其中一个不起作用。由于两个BCH码字跨越保持数据的多于一个的存储设备150,存储设备150中的哪一个具有更高的位错误率并需要恢复是不可知的。为了适应这一不确定性,存储属于不能修正的码字的数据的每个存储设备150的内容可被依次恢复,测试每个存储设备150出现单独故障的可能性。可能首先尝试基于历史数据最可能具有最多错误的存储设备150的恢复。
图3是说明根据本文讨论的多个实施例的存储器中实现错误校正的方法中的操作的流程图。在某些实施例中,图3中描述的操作可实现为可由存储器控制器122或存储器140本地的控制器142执行的逻辑。
参考图3,在操作310,接收对存储在存储器140中的数据的读取请求并且从存储器140中检索该数据以及相关的错误校正码字。如上文参考图2A-2D所述,在某些示例中,该数据和至少一个相关错误校正码字跨存储器140中的多个存储设备150散布/分布。
在操作315,在操作310检索的错误校正码字上执行错误校正码的解码。举例来说,该错误校正码字可为博斯-查德胡里-霍昆格母(BCH)错误校正码、里德-索罗门码、低密度奇偶校验(LDPC)码、涡轮(Turbo)码、卷积码或者极性码。在读取操作期间,存储设备150中的一个或多个读取错误或故障可导致错误校正码字中的错误。如果,在操作320,每个码字都是可校正的,那么响应于读取操作该数据可被成功读取并返回(操作325)。
相比之下,如果在操作320至少一个码字是不可校正的,那么执行操作以应用第二错误校正例程以测试单独的存储设备150。举例来说,在图2A描述的示例中,可测试单独的存储设备150A-150E。因此,在操作330,选择第一存储设备150(例如,150A)。在操作335,在某些或全部剩余的设备(例如,150B-150E)上执行按位XOR以恢复设备150A的内容。
在操作340,使用来自所选存储设备(例如,150A)的内容的已恢复副本重复在操作315中执行的错误校正码的解码。如果,在操作345,每个码字都是可校正的,那么响应于读取操作该数据可被成功读取并返回(操作350)。
相比之下,如果在操作345至少一个码字是不可校正的,那么控制转到操作355。操作355检查还没有被测试的任意存储设备150。在某些示例中,操作355可限制对存储属于不可校正码字的数据的还没有被测试的任意存储设备150的检查。如果在操作355不再有要测试的存储设备150,那么控制转到操作360并响应于该读取命令调用错误例程。举例来说,该错误例程可包括将读取错误消息返回至主机设备。
相比之下,如果在操作355存在更多要测试的存储设备150,那么控制转到操作365并选择下一存储设备(例如,150B)。然后控制转回操作335并且执行按位XOR操作以恢复所选存储设备(例如,150B)的内容的副本。
因此,操作335-365定义了一个逻辑循环,依据该逻辑循环存储设备150的部分或全部被依次测试以确定是否可通过ECC解码存储设备150的一个或多个校正该读取错误。
在另一示例中,存储设备150可包括里德-索罗门(RS)错误校正码而不是BCH错误校正码。虽然RS码对于随机错误不比BCH码有效率,但RS码对于擦除解码与XOR一样强大。RS奇偶校验的一位可恢复擦除数据的一位,就如同XOR奇偶校验的一位可恢复擦除数据的一位一样。因此,该RS码可匹配XOR在用于芯片故障恢复的最少奇偶校验位的情况下的效率,但比BCH要低效。
图4是依据本文讨论的多个实施例的存储器140的示意说明。图4示出了其中存储设备150存储具有64字节数据的码字以及一些相关元数据和奇偶校验位的示例配置。此示例RS码具有7位符号并可校正18个符号错误。在XOR恢复期间,此校正能力被分割为校正9个错误以及解码18个符号擦除(erasure)。每个存储设备具有18个符号和2个额外位。可使用XOR的2位保护该2个额外位以防止存储设备故障。XOR的每2位保护2个存储设备150中的4个数据位,并仅在存储设备故障的情况下使用。为了里德-索罗门编码和解码的目的,把4个数据位和2个XOR位的每一个看作包括4个数据位、2个XOR位和1个填补(pad)位的一个7位的数据符号。该XOR位不是必要的,但可被添加以减少需要被标记为已擦除的符号的数量。仅有的对于符号安排的必须的规则是符号的大多数包含在相同的存储设备150中,并且不具有跨多个存储设备150分布的位。这对于实现擦除芯片例如18个符号擦除来说是重要的。
在具有64字节数据和32字节奇偶校验位的这种配置中的RS码可使用所有的32字节奇偶校验位,而并不通过XOR将32字节的一半分割,相对于BCH的16字节的奇偶校验位,该RS码具有32字节的奇偶校验位。因此即使该RS码对于校正随机位错误具有1.5倍的低效,由于具有两倍的奇偶校验位数,对于与BCH相同的校正强度该RS码目前需要0.75倍的奇偶校验位,并因此其强度为具有30%更多奇偶校验位的BCH码的强度。
图5是说明依据本文讨论的多个实施例的在使用RS码的存储器中实现错误校正的方法中的操作的流程图。在某些实施例中,图5描述的操作可实现为可由存储器控制器122或存储器140本地的控制器142执行的逻辑。
参考图5,在操作510接收对存储器140中存储的数据的读取请求并从存储器140中检索该数据以及相关的错误校正码字。如上文参考图4所描述的,在某些示例中,该数据和相关错误校正码字跨存储器140的多个存储设备150分布。
在操作515,在操作510检索的错误校正码字上执行错误校正码解码。举例来说,该错误校正码字可为里德-索罗门(RS)错误校正码。在读取操作期间,存储设备150中的一个或多个读取错误或故障可导致RS错误校正码中的错误。如果,在操作520,该码字是可校正的,那么响应于该读取操作而该数据可被成功读取并返回(操作525)。
相比之下,如果在操作520该码字是不可校正的,那么执行操作以应用第二错误校正例程以测试单独的存储设备150。举例来说,在图4描述的示例中,单独的存储设备150A-150F可被测试。因此,在操作535,所选存储设备(例如,150A)的内容被标记为已擦除的符号。
在操作540,使用来自所选存储设备(例如,150A)的内容的恢复的副本重复在操作515中检索的码字上的RS错误和擦除编码。如果,在操作545,该码字是可以校正的,那么响应于该读取操作而该数据可被成功读取并返回(操作550)。
相比之下,如果在操作545该码字是不可校正的,那么控制转向操作555。如果在操作555没有要测试的更多存储设备150,那么控制转向操作560并响应于该读取命令调用错误例程。举例来说,该错误例程可包括返回读取错误消息至主机设备。
相比之下,如果在操作555存在要测试的更多存储设备150,那么控制转向操作565并且选择下一存储设备(例如,150B)。然后控制转回操作535并且所选存储设备(例如,150A)的内容被标记为已擦除的符号。
因此,操作535-565定义了一个逻辑循环,依据该逻辑循环存储设备150被依次测试以确定是否读取错误可由RS错误校正解码存储设备150的一个或多个而校正。
如上文所描述的,在某些实施例中该电子设备可实现为计算机系统。图6说明了依据本发明的实施例的计算系统600的框图。该计算系统600可包括通过互连网络(或者总线)604通信的一个或多个中央处理单元(CPU)602或处理器。该处理器602可包括通用处理器、网络处理器(它处理通过计算机网络603通信的数据)、或者其他类型的处理器(包括精简指令集计算机(RISC)处理器或者复杂指令集计算机(CISC))。此外,处理器602可具有单核或多核设计。具有多核设计的处理器602可将不同类型的处理器核集成在同一集成电路(IC)芯片上。同样,具有多核设计的处理器602可实现为对称或不对称的多处理器。在一实施例中,处理器602的一个或多个可与图1的处理器102相同或相似。举例来说,处理器602的一个或多个可包括参考图1-3讨论的控制单元120。同样,参考图3-5讨论的操作可由系统600的一个或多个组件执行。
芯片组606同样可与互连网络604通信。芯片组606可包括存储器控制集线器(MCH)608。该MCH 608可包括与存储器612(它可与图1的存储器130相同或相似)通信的存储器控制器610。存储器412可存储数据,包括指令序列,它可由CPU 602或计算系统600中包括的任意其他设备执行。在本发明的一个实施例中,存储器612可包括一个或多个易失性存储(或存储器)设备,诸如随机存取存储器(RAM)、动态RAM(DARM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其他类型的存储设备。同样可利用非易失性存储器,诸如硬盘。其他设备可通过互连网络604通信,诸如多个CPU和/或多个系统存储器。
MCH 608还可包括与显示设备616通信的图形接口614。在本发明的一个实施例中,图形接口614可通过加速图形端口(AGP)与显示设备616通信。在本发明的一实施例中,显示器616(诸如平板显示器)可通过诸如将存储在存储设备(诸如视频存储器或系统存储器)中的图像的数字表示转换为由显示器616解释并显示的显示信号的信号转换器与图形接口614通信。由该显示设备产生的该显示信号在由显示器616解释并随后显示之前可通过多个控制设备传递。
集线器接口618可允许MCH 608和输入/输出控制集线器(ICH)620通信。ICH 620可对与计算系统600通信的I/O设备提供接口。ICH620可与总线622通过外围桥(或控制器)624通信,诸如外围组件互连(PCI)桥、通用串行总线(USB)控制器、或其他类型的外围桥或控制器。该桥624可提供CPU 602和外围设备之间的数据路径。可利用其他类型的拓扑。同样,多个总线可例如通过多个桥或控制器与ICH 620通信。此外,在本发明的多个实施例中,与ICH620通信的其他外设可包括,集成驱动电子器件(IDE)或小型计算机系统接口(SCSI)硬盘驱动器、USB端口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持(例如,数字视频接口(DVI))或其他设备。
总线622可与视频设备626、一个或多个磁盘驱动器628以及网络接口设备630(它与计算机网络603进行通信)通信。其他设备可通过总线622通信。同样,在本发明的某些实施例中,多个组件(诸如网络接口设备630)可与MCH 608通信。此外,处理器602和本文讨论的一个或多个其他组件可以组合以形成单个芯片(例如,提供片上系统(SOC))。此外,在本发明的其他实施例中,图形加速器616可包含在MCH 608内。
此外,计算系统600可包括易失性和/或非易失性存储器(或存储装置)。举例来说,非易失性存储器可包括下述的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、磁盘驱动器(例如,628)、软盘、压缩磁盘ROM(CD-ROM)、数字通用磁盘(DVD)、闪存、磁光盘或者其他类型的能够存储电子数据(例如,包括指令)的非易失性机器可读介质。
图7说明了根据本发明的一实施例的计算系统700的框图。系统700可包括一个或多个处理器702-1至702-N(在本文中一般称为“多个处理器702”或“处理器702”)。处理器702可通过互连网络或总线704通信。每个处理器可包括多个组件,为了清晰起见它们中的部分组件仅参考处理器702-1进行讨论。因此,剩余的处理器702-2至702-N的每一个可包括与参考处理器702-1讨论的组件相同或相似的组件。
在一实施例中,处理器702-1可包括一个或多个处理器核706-1至706-M(本文中称为“多个核706”或更一般的称为“核706”)、共享高速缓存708、路由器710和/或处理器控制逻辑或单元720。该处理器核706可实现在单个集成电路(IC)芯片上。此外,该芯片可包括一个或多个共享和/或私有的高速缓存(诸如高速缓存708)、总线或互连(诸如总线或互连网络712)、存储器控制器或其他组件。
在一个实施例中,路由器710可用于在处理器702-1的多个组件和/或系统700之间通信。此外,处理器702-1可包括多于一个的路由器710。此外,多个路由器710可通信以使得数据在处理器702-1内部或外部的多个组件间路由。
共享高速缓存708可存储由处理器702-1的一个或多个组件诸如核706利用的数据(例如,包括指令)。举例来说,共享高速缓存708可本地高速缓存存储器714中存储的数据以由处理器702的组件更快存取。在一个实施例中,高速缓存708可包括中级高速缓存(诸如二级(L2)、三级(L3)、四级(L4)或其他等级的高速缓存)、末级高速缓存(LLC)和/或它们的组合。此外,处理器702-1的多个组件可通过总线(例如,总线712)和/或存储器控制器或集线器与共享高速缓存708直接通信。如图7所示,在某些实施例中,核706的一个或多个可包括一级(L1)高速缓存716-1(本文一般称为“L1高速缓存716”)。在一个实施例中,控制单元720可包括逻辑以执行上文参考图2的存储器控制器122描述的操作。
图8说明了根据本发明一实施例的计算系统的处理器核706和其他组件的部分的框图。在一个实施例中,图8中示出的箭头说明了通过核706的指令的流向。一个或多个处理器核(诸如处理器核706)可实现在单个集成电路芯片(或晶片)上,诸如参考图7所讨论的。此外,该芯片可包括一个或多个共享和/或私有的高速缓存(例如,图7的高速缓存708)、互连(例如,图7的互连704和/或112)、控制单元、存储器控制器或其他组件。
如图8所示,处理器核706可包括取指令单元802以取得指令(包括具有条件分支的指令)以由核706执行。该指令可从诸如存储器714的任意存储设备中取得。核706还可包括解码单元804以解码取得的指令。例如,解码单元804可将取得的指令解码为多个uop(微操作)。
此外,核706可包括调度单元806。调度单元806可执行与存储已解码指令(例如,从解码单元804接收的)相关的多个操作直到该指令已准备好被分派,例如直到解码指令的所有源值变为可用。在一个实施例中,调度单元806可调度和/或发出(或分派)已解码指令至执行单元808以执行。该执行单元808可在指令被解码(例如,由解码单元804)和分派(例如,由调度单元806)后执行分派的指令。在一个实施例中,执行单元808可包括多于一个执行单元。执行单元808还可执行多个算数操作,诸如加、减、乘和/或除,并可包括一个或多个算术逻辑单元(ALU)。在一个实施例中,协同处理器(未示出)可与执行单元808协力执行多种算数操作。
此外,执行单元808可执行无序指令。因此,在一个实施例中处理器核706可为无序处理器核。核706还可包括引退单元810。该引退单元810可使得已执行指令在它们被提交后引退。在一实施例中,已执行指令的引退可导致处理器通过指令的执行而处于提交状态、由指令使用的物理寄存器被解除分配等。
核706还可包括总线单元714以实现处理器核706的组件和其他组件(诸如参考图8讨论的组件)之间通过一个或多个总线(例如,总线804和/或812)的通信。核706还可包括一个或多个寄存器816以存储由核706的多个组件存取的数据(诸如涉及功耗状态设置的值)。
此外,即使图7说明了控制单元720要与核706通过互连812耦合,但在多个实施例中,控制单元720可位于其他位置,诸如在核706内,通过总线704耦合至该核等。
在某些实施例中,本文讨论的组件的一个或多个可实现为片上系统(SOC)设备。图9说明了根据一实施例的SOC封装的框图。如图9所示,SOC 902包括一个或多个中央处理单元(CPU)核920、一个或多个图形处理器单元(GPU)核930、输入/输出(I/O)接口940以及存储器控制器942。SOC封装902的多个组件可耦合至诸如本文参考其他附图所讨论的互连或总线。同样,SOC封装902可包括更多或更少的组件,诸如本文参考其他附图讨论的那些组件。此外,SOC封装902的每个组件可包括一个或多个其他组件,例如,本文参考其他附图讨论的组件。在一个实施例中,SOC封装902(及其组件)提供在一个或多个集成电路(IC)芯片上,例如,它们被封装在单个半导体设备中。
如图9所示,SOC封装902通过存储器控制器942耦合至存储器960(它可与本文参考其他附图所讨论的存储器相似或相同)。在一个实施例中,存储器960(或其部分)可集成在该SOC封装902上。
I/O接口940可例如通过诸如本文参考其他附图所讨论的互连和/或总线而耦合至一个或多个I/O设备970。I/O设备970可包括键盘、鼠标、触摸板、显示器、图像/视频捕获设备(诸如相机或摄录像机/视频记录器)、触摸屏、扬声器等的一个或多个。
图10说明了根据本发明一实施例的安排为点对点(PtP)配置的计算系统1000。具体地,图10示出了处理器、存储器和输入/输出设备通过多个点对点接口互连的系统。参考图2讨论的操作可由系统1000的一个或多个组件执行。
如图10所示,系统1000可包括多个处理器,为了清晰起见,仅示出了它们中的两个处理器1002和1004。处理器1002和1004每个可包括本地存储控制器集线器(MCH)1006和1008以实现与存储器1010和1012的通信。在某些实施例中,MCH 1006和1008可包括图1的存储器控制器120和/或逻辑125。
在一实施例中,处理器1002和1004可为参考图7讨论的处理器702中的一个。处理器1002和1004可分别使用PtP接口电路1016和1018通过点对点(PtP)接口1014交换数据。同样,处理器1002和1004每个可使用点对点接口电路1026、1028、1030和1032通过单独的PtP接口1022和1024与芯片组1020交换数据。该芯片组1020可进一步通过高性能图形接口1036与高性能图形电路1034(例如,使用PtP接口电路1037)交换数据。
如图10所示,图1的核106和/或高速缓存108的一个或多个可位于处理器902和904内部。然而,本发明的其他实施例可存在于图9的系统900内的其他电路、逻辑单元或设备中。此外,本发明的其他实施例可遍及图9所示的多个电路、逻辑单元或设备分布。
芯片组920可使用PtP接口电路941与总线940通信。总线940可具有与它通信的一个或多个设备,诸如总线桥942和I/O设备943。通过总线944,总线桥943可与其他设备通信,诸如键盘/鼠标945、通信设备946(诸如调制解调器、网络接口设备或可与计算机网络803通信的其他通信设备)、音频I/O设备和/或数据存储设备948。该数据存储设备948(它可为硬盘驱动器或基于NAND闪存的固态驱动器)可存储可由处理器902和/或904执行的代码949。
下述示例属于进一步的实施方式。
示例1是一种存储器控制器,包括逻辑以:接收对存储器中存储的数据的读取请求,检索该数据和相关的错误校正码字,其中该数据和至少一个相关的错误校正码字跨存储器中的多个存储设备分布,应用第一错误校正例程以解码使用该数据检索的该错误校正码字并响应于错误校正码字中的不可校正的错误,对存储器中的该多个设备应用第二错误校正例程。
在示例2中,示例1的主题可选择性地包括一种设置,其中该错误校正码字是博斯-查德胡里-霍昆格母(BCH)错误校正码,并且至少一个存储设备包括该多个存储设备的内容的按位XOR。
在示例3中,示例1-2的任一个的主题可选择性地包括一种设置,其中第二错误校正例程包括逻辑以顺序选择存储设备,执行按位XOR操作以恢复所选存储设备的内容的副本,使用所选存储设备的内容的副本在错误校正码字上执行错误校正例程。
在示例4中,示例1-3的任一个的主题可选择性地包括逻辑以响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回该数据。
在示例5中,示例1-4的任一个的主题可选择性地包括逻辑以响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而返回错误。
在示例6中,示例1-5的任一个的主题可选择性地包括一种设置,其中该错误校正码字是里德-索罗门(RS)错误校正码。
在示例7中,示例1-6的任一个的主题可选择性地包括逻辑以顺序选择存储设备,将所选存储设备的内容标记为已擦除符号,使用所选存储设备的内容的副本在错误校正码字上执行RS错误校正例程。
在示例8中,示例1-7的任一个的主题可选择性地包括逻辑以响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回该数据。
在示例9中,示例1-8的任一个的主题可选择性地包括逻辑以响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而调用错误例程。
示例10是一种电子设备包括处理器;以及存储器控制逻辑以接收对存储器中存储的数据的读取请求,检索该数据和至少一个相关错误校正码字,其中该数据和相关的错误校正码字跨存储器中的多个存储设备分布,应用第一错误校正例程以解码使用该数据检索的该错误校正码字,并响应于错误校正码字中不可校正的错误,对存储器中的该多个设备应用第二错误校正例程。
在示例11中,示例10的主题可选择性地包括一种设置,其中该错误校正码字是博斯-查德胡里-霍昆格母(BCH)错误校正码,并且至少一个存储设备包括该多个存储设备的内容的按位XOR。
在示例12中,示例10-11的任一个的主题可选择性地包括一种设置,其中第二错误校正例程包括逻辑以顺序选择存储设备,执行按位XOR操作以恢复所选存储设备的内容的副本,使用所选存储设备的内容的副本在错误校正码字上执行错误校正例程。
在示例13中,示例10-12的任一个的主题可选择性地包括逻辑以响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回该数据。
在示例14中,示例10-13的任一个的主题可选择性地包括逻辑以响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而返回错误。
在示例15中,示例10-14的任一个的主题可选择性地包括一种设置,其中该错误校正码字是里德-索罗门(RS)错误校正码。
在示例16中,示例10-15的任一个的主题可选择性地包括逻辑以顺序选择存储设备,将所选存储设备的内容标记为已擦除符号,使用所选存储设备的内容的副本在错误校正码字上执行RS错误校正例程。
在示例17中,示例10-16的任一个的主题可选择性地包括逻辑以响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回该数据。
在示例18中,示例10-17的任一个的主题可选择性地包括逻辑以响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而调用错误例程。
示例19是一种方法,包括在控制器中接收对存储器中存储的数据的读取请求,检索该数据和至少一个相关的错误校正码字,其中该数据和相关的错误校正码字跨存储器中的多个存储设备分布,在该控制器中应用第一错误校正例程以解码使用该数据检索的该错误校正码字并响应于错误校正码字中不可校正的错误,在该控制器中对存储器中的该多个设备应用第二错误校正例程。
在示例20中,示例19的主题可选择性地包括一种设置,其中该错误校正码字是博斯-查德胡里-霍昆格母(BCH)错误校正码,并且至少一个存储设备包括该多个存储设备的内容的按位XOR。
在示例21中,示例19-20的任一个的主题可选择性地包括一种设置,其中第二错误校正例程包括逻辑以顺序选择存储设备,执行按位XOR操作以恢复所选存储设备的内容的副本,使用所选存储设备的内容的副本在错误校正码字上执行错误校正例程。
在示例22中,示例19-21的任一个的主题可选择性地包括响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回该数据。
在示例23中,示例19-22的任一个的主题可选择性地包括响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而返回错误。
在示例24中,示例19-23的任一个的主题可选择性地包括一种设置,其中该错误校正码字是里德-索罗门(RS)错误校正码。
在示例25中,示例19-24的任一个的主题可选择性地包括逻辑以顺序选择存储设备,将所选存储设备的内容标记为已擦除符号,使用所选存储设备的内容的副本在错误校正码字上执行RS错误校正例程。
在示例26中,示例19-25的任一个的主题可选择性地包括逻辑以响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回该数据。
在示例27中,示例19-26的任一个的主题可选择性地包括逻辑以响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而调用错误例程。
在本发明的多个实施例中,本文讨论的操作,例如参考图1-10,可实现为硬件(例如,电路)、软件、固件、微代码或它们的组合,它们可提供为计算机程序产品,例如,包括具有其上存储的用于对计算机编程以执行本文讨论的过程的指令(或软件程序)的有形(例如,非易失性)机器可读或计算机可读介质。同样的,术语“逻辑”可包括,通过示例,软件、硬件或软硬件的组合。该机器可读介质可包括一存储设备诸如本文所讨论的那些设备。
说明书中对“一个实施例”或“一实施例”的引用是指与实施例结合描述的一特定特征、结构或特性可包含在至少一个实施方式中。短语“在一个实施例中”在说明书中多处出现可或可不所有都是指同一实施例。
同时,在说明书和权利要求书中,可能使用术语“耦合”和“连接”以及它们的派生词。在本发明的某些实施例中,“连接”可能用于指示两个或多个元件彼此间直接物理或电接触。“耦合”可能意味着两个或多个元件直接物理或电接触。然而,“耦合”还可能意味着两个或更多元件可能并不直接彼此接触,但可能仍然彼此间协作或交互。
因此,虽然本发明的实施例已经以对于结构特征和/或方法行为特定的语言进行描述,要理解声明的主题可能不限于描述的特定特征或行为。更为合适的是,该特定特征和行为被公开为实现声明的主题的样本形式。
Claims (33)
1.一种存储器控制器,包括逻辑以:
接收对存储器中存储的数据的读取请求;
检索所述数据和相关的错误校正码字,其中所述数据和至少一个相关的错误校正码字跨存储器中的多个存储设备分布;
应用第一错误校正例程以解码使用所述数据检索的所述错误校正码字;以及
响应于所述错误校正码字中的不可校正的错误,对存储器中的所述多个存储设备应用第二错误校正例程。
2.如权利要求1所述的存储器控制器,其中:
所述错误校正码字是博斯-查德胡里-霍昆格母(BCH)错误校正码;以及
至少一个存储设备包括所述多个存储设备的内容的按位XOR。
3.如权利要求2所述的存储器控制器,其中所述第二错误校正例程包括逻辑以顺序地:
选择存储设备;
执行按位XOR操作以恢复所选存储设备的内容的副本;
使用所选存储设备的内容的副本在所述错误校正码字上执行错误校正例程。
4.如权利要求3所述的存储器控制器,进一步包括逻辑以:
响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回所述数据。
5.如权利要求3所述的存储器控制器,进一步包括逻辑以:
响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而返回错误。
6.如权利要求1所述的存储器控制器,其中:
所述错误校正码字是里德-索罗门(RS)错误校正码。
7.如权利要求6所述的存储器控制器,其中所述第二错误校正例程包括逻辑以顺序地:
选择存储设备;
将所选存储设备的内容标记为已擦除符号;
使用所选存储设备的内容的副本在所述错误校正码字上执行RS错误校正例程。
8.如权利要求7所述的存储器控制器,进一步包括逻辑以:
响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回所述数据。
9.如权利要求8所述的存储器控制器,进一步包括逻辑以:
响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而调用错误例程。
10.一种电子设备,包括:
处理器;以及
存储器控制逻辑以:
接收对存储器中存储的数据的读取请求;
检索所述数据和至少一个相关错误校正码字,其中所述数据和相关的错误校正码字跨存储器中的多个存储设备分布;
应用第一错误校正例程以解码使用所述数据检索的所述错误校正码字;以及
响应于所述错误校正码字中的不可校正的错误,对存储器中的所述多个存储设备应用第二错误校正例程。
11.如权利要求10所述的电子设备,其中:
所述错误校正码字是博斯-查德胡里-霍昆格母(BCH)错误校正码;以及
至少一个存储设备包括所述多个存储设备的内容的按位XOR。
12.如权利要求11所述的电子设备,其中第二错误校正例程包括逻辑以顺序地:
选择存储设备;
执行按位XOR操作以恢复所选存储设备的内容的副本;
使用所选存储设备的内容的副本在错误校正码字上执行错误校正例程。
13.如权利要求12所述的电子设备,进一步包括逻辑以:
响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回所述数据。
14.如权利要求12所述的电子设备,进一步包括逻辑以:
响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而返回错误。
15.如权利要求10所述的电子设备,其中:
所述错误校正码字是里德-索罗门(RS)错误校正码。
16.如权利要求15所述的电子设备,其中第二错误校正例程包括逻辑以顺序地:
选择存储设备;
将所选存储设备的内容标记为已擦除符号;
使用所选存储设备的内容的副本在错误校正码字上执行RS错误校正例程。
17.如权利要求16所述的电子设备,进一步包括逻辑以:
响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回所述数据。
18.如权利要求17所述的电子设备,进一步包括逻辑以:
响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而调用错误例程。
19.一种方法,包括:
在控制器中接收对存储器中存储的数据的读取请求;
检索所述数据和至少一个相关的错误校正码字,其中所述数据和相关的错误校正码字跨存储器中的多个存储设备分布;
在所述控制器中应用第一错误校正例程以解码使用所述数据检索的所述错误校正码字;以及
响应于所述错误校正码字中的不可校正的错误,在所述控制器中对存储器中的所述多个存储设备应用第二错误校正例程。
20.如权利要求19所述的方法,其中:
所述错误校正码字是博斯-查德胡里-霍昆格母(BCH)错误校正码;以及
至少一个存储设备包括所述多个存储设备的内容的按位XOR。
21.如权利要求20所述的方法,其中第二错误校正例程包括逻辑以顺序地:
选择存储设备;
执行按位XOR操作以恢复所选存储设备的内容的副本;
使用所选存储设备的内容的副本在错误校正码字上执行错误校正例程。
22.如权利要求21所述的方法,进一步包括:
响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回所述数据。
23.如权利要求22所述的方法,进一步包括:
响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而返回错误。
24.如权利要求19所述的方法,其中:
所述错误校正码字是里德-索罗门(RS)错误校正码。
25.如权利要求24所述的方法,其中第二错误校正例程包括:
选择存储设备;
将所选存储设备的内容标记为已擦除符号;
使用所选存储设备的内容的副本在错误校正码字上执行RS错误校正例程。
26.一种计算机可读介质,具有存储于其上的指令,当执行所述指令时,使得计算装置执行如权利要求19-25中的任一项所述的方法。
27.一种装置,包括:
用于接收对存储器中存储的数据的读取请求的部件;
用于检索所述数据和至少一个相关的错误校正码字的部件,其中所述数据和相关的错误校正码字跨存储器中的多个存储设备分布;
用于应用第一错误校正例程以解码使用所述数据检索的所述错误校正码字的部件;以及
用于响应于所述错误校正码字中的不可校正的错误,对存储器中的所述多个存储设备应用第二错误校正例程的部件。
28.如权利要求27所述的装置,其中:
所述错误校正码字是博斯-查德胡里-霍昆格母(BCH)错误校正码;以及
至少一个存储设备包括所述多个存储设备的内容的按位XOR。
29.如权利要求28所述的装置,其中第二错误校正例程包括逻辑以顺序地:
选择存储设备;
执行按位XOR操作以恢复所选存储设备的内容的副本;
使用所选存储设备的内容的副本在错误校正码字上执行错误校正例程。
30.如权利要求29所述的装置,进一步包括:
用于响应于使用所选存储设备的内容的副本的错误校正码字的成功恢复而返回所述数据的部件。
31.如权利要求30所述的装置,进一步包括:
用于响应于使用所选存储设备的内容的副本的错误校正码字的不成功恢复而返回错误的部件。
32.如权利要求27所述的装置,其中:
所述错误校正码字是里德-索罗门(RS)错误校正码。
33.如权利要求32所述的装置,其中第二错误校正例程包括:
选择存储设备;
将所选存储设备的内容标记为已擦除符号;
使用所选存储设备的内容的副本在错误校正码字上执行RS错误校正例程。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/062405 WO2015047334A1 (en) | 2013-09-27 | 2013-09-27 | Error correction in non_volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105706059A CN105706059A (zh) | 2016-06-22 |
CN105706059B true CN105706059B (zh) | 2019-09-06 |
Family
ID=52744231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380079212.7A Active CN105706059B (zh) | 2013-09-27 | 2013-09-27 | 非易失性存储器中的错误校正 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9619324B2 (zh) |
KR (1) | KR101767018B1 (zh) |
CN (1) | CN105706059B (zh) |
WO (1) | WO2015047334A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9619324B2 (en) * | 2013-09-27 | 2017-04-11 | Intel Corporation | Error correction in non—volatile memory |
US9680509B2 (en) | 2015-03-27 | 2017-06-13 | Intel Corporation | Errors and erasures decoding from multiple memory devices |
US10033411B2 (en) | 2015-11-20 | 2018-07-24 | Intel Corporation | Adjustable error protection for stored data |
JP2017111463A (ja) * | 2015-12-14 | 2017-06-22 | ルネサスエレクトロニクス株式会社 | 半導体装置、機能安全システム及びプログラム |
KR102469809B1 (ko) * | 2016-05-18 | 2022-11-24 | 에스케이하이닉스 주식회사 | 반도체장치 |
TWI594126B (zh) | 2016-07-05 | 2017-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存方法 |
GB2563473B (en) * | 2017-06-15 | 2019-10-02 | Accelercomm Ltd | Polar coder with logical three-dimensional memory, communication unit, integrated circuit and method therefor |
US10855314B2 (en) | 2018-02-09 | 2020-12-01 | Micron Technology, Inc. | Generating and using invertible, shortened Bose-Chaudhuri-Hocquenghem codewords |
US10896092B2 (en) | 2018-09-18 | 2021-01-19 | Micron Technology, Inc. | Memory components with ordered sweep error recovery |
US10983890B2 (en) | 2018-10-09 | 2021-04-20 | Micron Technology, Inc. | Real time trigger rate monitoring in a memory sub-system |
US20200127685A1 (en) * | 2018-10-19 | 2020-04-23 | Nyquist Semiconductor Limited | Systems and methods for a hybrid non-volatile storage system |
KR102109589B1 (ko) * | 2018-10-26 | 2020-05-12 | 인하대학교 산학협력단 | 고속직렬인터페이스용 송수신 오류 정정기법이 포함된 오버헤드최소화 코딩 기법과 하드웨어 구현 방법 |
CN109410870A (zh) * | 2018-12-11 | 2019-03-01 | 惠科股份有限公司 | 时序控制电路、数据读取方法及显示装置 |
CN109410869A (zh) * | 2018-12-11 | 2019-03-01 | 惠科股份有限公司 | 一种数据的读取方法、读取装置及显示装置 |
CN113050874A (zh) * | 2019-12-26 | 2021-06-29 | 华为技术有限公司 | 一种内存设置方法以及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5615221A (en) * | 1992-07-17 | 1997-03-25 | International Business Machines Corporation | Method and system which selectively uses different levels of error correction to achieve high data throughput |
CN1200509A (zh) * | 1997-05-23 | 1998-12-02 | 日本电气株式会社 | 以小存储器容量进行纠错处理的方法和装置 |
TW200532703A (en) * | 2004-01-30 | 2005-10-01 | Micron Technology Inc | An error detection and correction scheme for a memory device |
US7509560B2 (en) * | 2003-12-29 | 2009-03-24 | Intel Corporation | Mechanism for adjacent-symbol error correction and detection |
TW201102806A (en) * | 2009-07-13 | 2011-01-16 | Silicon Motion Inc | Method for preventing a data storage device from data shift errors and controller for same |
US7921351B2 (en) * | 2006-12-22 | 2011-04-05 | Cable Television Labs, Inc. | Increasing error correction in data streams encoded with linear block code |
CN102567134A (zh) * | 2012-01-06 | 2012-07-11 | 威盛电子股份有限公司 | 存储器模块的错误检查与校正系统以及方法 |
CN102890621A (zh) * | 2011-07-22 | 2013-01-23 | 弗森-艾奥公司 | 确定固态存储介质配置参数的装置、系统和方法 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6276825A (ja) | 1985-09-30 | 1987-04-08 | Hitachi Ltd | 符号誤り訂正方法 |
US5754753A (en) | 1992-06-11 | 1998-05-19 | Digital Equipment Corporation | Multiple-bit error correction in computer main memory |
US5455939A (en) | 1992-06-17 | 1995-10-03 | Intel Corporation | Method and apparatus for error detection and correction of data transferred between a CPU and system memory |
US5996105A (en) | 1997-11-14 | 1999-11-30 | Cirrus Logic, Inc. | ECC system employing a data buffer for storing codeword data and a syndrome buffer for storing error syndromes |
US6662333B1 (en) * | 2000-02-04 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Shared error correction for memory design |
US6948091B2 (en) * | 2002-05-02 | 2005-09-20 | Honeywell International Inc. | High integrity recovery from multi-bit data failures |
US20050149819A1 (en) | 2003-12-15 | 2005-07-07 | Daewoo Electronics Corporation | Three-dimensional error correction method |
US20060256615A1 (en) | 2005-05-10 | 2006-11-16 | Larson Thane M | Horizontal and vertical error correction coding (ECC) system and method |
US7676730B2 (en) | 2005-09-30 | 2010-03-09 | Quantum Corporation | Method and apparatus for implementing error correction coding in a random access memory |
US7694208B2 (en) * | 2005-12-20 | 2010-04-06 | Quantum Corporation | Error correction algorithm using interleaved parity check and Reed-Solomon code |
US7304893B1 (en) | 2006-06-30 | 2007-12-04 | Sandisk Corporation | Method of partial page fail bit detection in flash memory devices |
US7355892B2 (en) | 2006-06-30 | 2008-04-08 | Sandisk Corporation | Partial page fail bit detection in flash memory devices |
US9116823B2 (en) * | 2006-12-06 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for adaptive error-correction coding |
US9495241B2 (en) * | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
US8103934B2 (en) * | 2007-12-21 | 2012-01-24 | Honeywell International Inc. | High speed memory error detection and correction using interleaved (8,4) LBCs |
KR101398200B1 (ko) | 2008-03-18 | 2014-05-26 | 삼성전자주식회사 | 메모리 장치 및 인코딩/디코딩 방법 |
US8347152B2 (en) | 2008-09-10 | 2013-01-01 | Intel Corporation | Link performance abstraction for ML receivers based on RBIR metrics |
KR101519626B1 (ko) | 2009-02-27 | 2015-05-14 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 데이터 처리 방법 |
US8321775B2 (en) | 2009-04-21 | 2012-11-27 | Micron Technology, Inc. | Non-volatile memory with extended error correction protection |
US7941696B2 (en) * | 2009-08-11 | 2011-05-10 | Texas Memory Systems, Inc. | Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes |
US8607124B2 (en) * | 2009-12-24 | 2013-12-10 | Densbits Technologies Ltd. | System and method for setting a flash memory cell read threshold |
US8677203B1 (en) * | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
US8380915B2 (en) * | 2010-01-27 | 2013-02-19 | Fusion-Io, Inc. | Apparatus, system, and method for managing solid-state storage media |
US8589766B2 (en) | 2010-02-24 | 2013-11-19 | Apple Inc. | Codeword remapping schemes for non-volatile memories |
US8726126B2 (en) | 2010-03-23 | 2014-05-13 | Apple Inc. | Non-regular parity distribution detection via metadata tag |
US8572457B2 (en) * | 2010-05-28 | 2013-10-29 | Seagate Technology Llc | Outer code protection for solid state memory devices |
US8522122B2 (en) * | 2011-01-29 | 2013-08-27 | International Business Machines Corporation | Correcting memory device and memory channel failures in the presence of known memory device failures |
US8433979B2 (en) | 2011-02-28 | 2013-04-30 | International Business Machines Corporation | Nested multiple erasure correcting codes for storage arrays |
US9058291B2 (en) | 2011-02-28 | 2015-06-16 | International Business Machines Corporation | Multiple erasure correcting codes for storage arrays |
US9176810B2 (en) * | 2011-05-27 | 2015-11-03 | SanDisk Technologies, Inc. | Bit error reduction through varied data positioning |
US9177609B2 (en) * | 2011-06-30 | 2015-11-03 | Sandisk Technologies Inc. | Smart bridge for memory core |
WO2013089715A1 (en) | 2011-12-14 | 2013-06-20 | Intel Corporation | Storage of codeword portions |
US10019353B2 (en) * | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
US9021337B1 (en) * | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive |
US8812915B2 (en) * | 2012-09-27 | 2014-08-19 | Hewlett-Packard Development Company, L.P. | Determining whether a right to use memory modules in a reliability mode has been acquired |
US8949698B2 (en) | 2012-09-27 | 2015-02-03 | Intel Corporation | Method, apparatus and system for handling data faults |
US9577673B2 (en) * | 2012-11-08 | 2017-02-21 | Micron Technology, Inc. | Error correction methods and apparatuses using first and second decoders |
US9088303B2 (en) * | 2013-02-28 | 2015-07-21 | Micron Technology, Inc. | Codewords that span pages of memory |
US9136873B2 (en) * | 2013-03-11 | 2015-09-15 | Intel Corporation | Reduced uncorrectable memory errors |
US9164834B2 (en) * | 2013-05-06 | 2015-10-20 | Samsung Electronics Co., Ltd. | Semiconductor memory devices, memory systems including the same and method of writing data in the same |
US9619324B2 (en) * | 2013-09-27 | 2017-04-11 | Intel Corporation | Error correction in non—volatile memory |
-
2013
- 2013-09-27 US US14/126,310 patent/US9619324B2/en active Active
- 2013-09-27 CN CN201380079212.7A patent/CN105706059B/zh active Active
- 2013-09-27 WO PCT/US2013/062405 patent/WO2015047334A1/en active Application Filing
- 2013-09-27 KR KR1020167003655A patent/KR101767018B1/ko active IP Right Grant
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5615221A (en) * | 1992-07-17 | 1997-03-25 | International Business Machines Corporation | Method and system which selectively uses different levels of error correction to achieve high data throughput |
CN1200509A (zh) * | 1997-05-23 | 1998-12-02 | 日本电气株式会社 | 以小存储器容量进行纠错处理的方法和装置 |
US7509560B2 (en) * | 2003-12-29 | 2009-03-24 | Intel Corporation | Mechanism for adjacent-symbol error correction and detection |
TW200532703A (en) * | 2004-01-30 | 2005-10-01 | Micron Technology Inc | An error detection and correction scheme for a memory device |
US7921351B2 (en) * | 2006-12-22 | 2011-04-05 | Cable Television Labs, Inc. | Increasing error correction in data streams encoded with linear block code |
TW201102806A (en) * | 2009-07-13 | 2011-01-16 | Silicon Motion Inc | Method for preventing a data storage device from data shift errors and controller for same |
CN102890621A (zh) * | 2011-07-22 | 2013-01-23 | 弗森-艾奥公司 | 确定固态存储介质配置参数的装置、系统和方法 |
CN102567134A (zh) * | 2012-01-06 | 2012-07-11 | 威盛电子股份有限公司 | 存储器模块的错误检查与校正系统以及方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20160033722A (ko) | 2016-03-28 |
WO2015047334A1 (en) | 2015-04-02 |
CN105706059A (zh) | 2016-06-22 |
US9619324B2 (en) | 2017-04-11 |
US20150220387A1 (en) | 2015-08-06 |
KR101767018B1 (ko) | 2017-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105706059B (zh) | 非易失性存储器中的错误校正 | |
CN105659332B (zh) | 存储器中的错误校正 | |
US8990657B2 (en) | Selective masking for error correction | |
US8010875B2 (en) | Error correcting code with chip kill capability and power saving enhancement | |
US8607121B2 (en) | Selective error detection and error correction for a memory interface | |
CN106663472A (zh) | 非易失性存储器中的恢复算法 | |
US8566672B2 (en) | Selective checkbit modification for error correction | |
US8448027B2 (en) | Energy-efficient failure detection and masking | |
US8433950B2 (en) | System to determine fault tolerance in an integrated circuit and associated methods | |
CN101681309A (zh) | 纠错方法以及运算器 | |
US10248497B2 (en) | Error detection and correction utilizing locally stored parity information | |
US9639418B2 (en) | Parity protection of a register | |
US8250435B2 (en) | Memory error detection and/or correction | |
CN105247488A (zh) | 在硬件中提供对数据帧区段的线速率合并的高性能读取-修改-写入系统 | |
CN104182292A (zh) | 一种数据存储方法及装置 | |
US20160179611A1 (en) | Low overhead error checking and correction apparatus and method | |
CN105575439B (zh) | 一种存储单元失效纠错的方法及存储器 | |
US8316283B2 (en) | Hybrid error correction code (ECC) for a processor | |
CN111247516A (zh) | 一种电路结构、系统级芯片SoC、处理数据的方法 | |
WO2020028801A1 (en) | Error correction with scatter-gather list data management | |
US9043655B2 (en) | Apparatus and control method | |
US11726665B1 (en) | Memory extension with error correction | |
US8635566B2 (en) | Parity error detection verification | |
US10579470B1 (en) | Address failure detection for memory devices having inline storage configurations | |
US20230409426A1 (en) | Host-level error detection and fault correction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |