CN110362420B - 存储系统和存储系统的操作方法 - Google Patents

存储系统和存储系统的操作方法 Download PDF

Info

Publication number
CN110362420B
CN110362420B CN201811634890.6A CN201811634890A CN110362420B CN 110362420 B CN110362420 B CN 110362420B CN 201811634890 A CN201811634890 A CN 201811634890A CN 110362420 B CN110362420 B CN 110362420B
Authority
CN
China
Prior art keywords
data
parity
parity bit
bit
bits
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
Application number
CN201811634890.6A
Other languages
English (en)
Other versions
CN110362420A (zh
Inventor
郭康燮
金起业
尹荣俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN110362420A publication Critical patent/CN110362420A/zh
Application granted granted Critical
Publication of CN110362420B publication Critical patent/CN110362420B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1174Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开了存储系统及存储系统的操作方法。存储系统包括:存储单元阵列,其适用于储存第一数据和用于校正第一数据的错误的第一奇偶校验位;以及错误校正电路,其适用于:产生第二预奇偶校验位,第二预奇偶校验位包括第一子奇偶校验位和第二子奇偶校验位;通过对校正子进行解码来产生第一奇偶校验位错误标志和第一数据错误标志;基于第一奇偶校验位错误标志来校正第一奇偶校验位的错误;基于用于产生第二子奇偶校验位的第一数据的错误信息来产生第二子奇偶校验位错误标志;以及基于第二子奇偶校验位错误标志来校正第二子奇偶校验位的任何错误。

Description

存储系统和存储系统的操作方法
相关申请的交叉引用
本申请要求于2018年4月9日提交的申请号为10-2018-0041138的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本发明的各种实施例涉及存储系统,更具体地,涉及用于校正错误和降低功耗的存储系统以及用于操作存储系统的方法。
背景技术
广泛用于高性能电子系统的半导体器件的容量和操作速度正在增大。
动态随机存取存储器(DRAM)是一种半导体器件,是易失性存储器,其使用电容器作为基本储存元件。
随着DRAM的操作速度加快和DRAM的储存容量增加,逐渐需要更高可靠性的数据传送和更低的功耗。
为此,对包括执行操作以满足这些需求的适当地配置的电路的存储系统的需求日益增长。
发明内容
本发明的实施例涉及包括核心错误校正电路和链路错误校正电路两者的存储系统,以及用于操作所述存储系统的方法。
本发明的实施例涉及存储系统以及用于操作所述存储系统的方法,所述存储系统包括能够同时执行核心错误校正操作和链路错误校正操作的集成错误校正电路。
本发明的实施例涉及存储系统以及用于操作所述存储系统的方法,所述存储系统包括核心错误校正电路、链路错误校正电路和DBI部件中的全部。
本发明的实施例涉及存储系统以及用于操作所述存储系统的方法,所述存储系统包括能够同时执行核心错误校正操作和链路错误校正操作的DBI单元和错误校正电路两者。
根据本发明的一个实施例,一种存储系统包括:存储单元阵列,其适用于储存第一数据和第一奇偶校验位,所述第一奇偶校验位用于校正第一数据的错误;以及错误校正电路,其适用于产生第二数据和第二奇偶校验位,所述第二奇偶校验位包括通过校正所述第一奇偶校验位的错误得到的比特位和通过校正第二子奇偶校验位的错误得到的比特位;其中,所述错误校正电路包括:单错误校正和双错误检测(SECDED)奇偶校验位发生器,其适用于产生第二预奇偶校验位,所述第二预奇偶校验位包括第一子奇偶校验位和所述第二子奇偶校验位;校正子解码器,其适用于通过对校正子进行解码来产生第一奇偶校验位错误标志和第一数据错误标志;SEC奇偶校验位校正器,其适用于基于所述第一奇偶校验位错误标志来校正所述第一奇偶校验位的错误;DED奇偶校验位错误检测器,其适用于基于用于产生所述第二子奇偶校验位的所述第一数据的错误信息来产生第二子奇偶校验位错误标志;以及DED奇偶校验位校正器,其适用于基于所述第二子奇偶校验位错误标志来校正所述第二子奇偶校验位的任何错误。
根据本发明的另一实施例,一种用于操作存储系统的方法,包括:产生第二数据和第二奇偶校验位,所述第二奇偶校验位包括通过校正第一奇偶校验位的错误而得到的比特位和通过校正第二子奇偶校验位的错误而得到的比特位;产生第二预奇偶校验位,所述第二预奇偶校验位包括第一子奇偶校验位和所述第二子奇偶校验位;通过对校正子进行解码来产生第一奇偶校验位错误标志和第一数据错误标志;基于所述第一奇偶校验位错误标志来校正所述第一奇偶校验位的错误;基于用于产生所述第二子奇偶校验位的所述第一数据的错误信息来产生第二子奇偶校验位错误标志;以及基于所述第二子奇偶校验位错误标志来校正所述第二子奇偶校验位的任何错误。
根据本发明的另一实施例,一种集成的错误校正码(ECC)电路,包括:单错误校正和双错误检测(SECDED)奇偶校验位发生器,其适用于接收第一数据和第一奇偶校验位,并基于汉明码来产生用于所述第一数据的SECDED的预奇偶校验位,所述第一奇偶校验位为用于所述第一数据的错误校正奇偶校验位,所述预奇偶校验位包括第一子奇偶校验位和第二子奇偶校验位,所述第一奇偶校验位和第一子奇偶校验位具有相同数量的比特位;校正子发生器,其适用于基于所述第一数据、所述第一奇偶校验位和所述第一子奇偶校验位来产生指示错误信息的校正子;数据校正器,其适用于接收所述第一数据,基于所述校正子来校正所述第一数据,并产生经校正的第一数据作为要通过通道传输的第二数据;以及奇偶校验位校正器,其适用于基于所述校正子来校正所述第一奇偶校验位,基于所述校正子来校正所述第二子奇偶校验位,并输出经校正的第一奇偶校验位和经校正的第二子奇偶校验位作为第二奇偶校验位,所述第二奇偶校验位作为用于所述第二数据的错误校正奇偶校验位。
附图说明
图1A和图1B是示出根据本发明的一个实施例的包括核心错误校正电路和链路错误校正电路两者的存储系统的框图。
图2A和图2B是示出根据本发明的一个实施例的包括错误校正电路的存储系统的框图。
图3A和图3B是示出根据本发明的一个实施例的包括核心错误校正电路、链路错误校正电路和数据总线反相(DBI)电路中的全部的存储系统的框图。
图4A和图4B是示出根据本发明的一个实施例的包括错误校正电路和DBI电路的存储系统的框图。
具体实施方式
下面将参考附图更详细地描述本发明的各种实施例。然而,本发明可以以不同的形式实现,因此不限于本文阐述的实施例。相反,提供这些实施例是为了使本公开彻底和完整,并且向本领域技术人员充分传达本发明的范围。在整个公开内容中,在本发明的各个附图和实施例中,相同的附图标记表示相同的部件。此外,在整个说明书中,对“一个实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这样的短语的不同引用不一定是相同的实施例。
现在将参考附图详细描述本发明的实施例。
在各种实施例中,存储系统可以包括核心错误校正电路的功能和链路错误校正电路的功能。
图1A和图1B是示出根据本发明的一个实施例的包括核心错误校正电路110和链路错误校正电路130的存储系统10的框图。参考图1A,存储系统10可以包括存储器100和存储器控制器102。存储器100可以包括核心错误校正电路110和链路错误校正电路130,以对储存在存储单元阵列150中的数据的错误进行校正,并将数据从存储单元阵列150传送至存储器控制器102。
存储器控制器102可以通过通道105提供用于控制存储器100的各种信号,例如命令/地址信号CMD/ADD、时钟信号CLK和数据信号DQ。
存储器控制器102和存储器100可以通过通道105向彼此发送数据和从彼此接收数据。
存储单元阵列150可以包括易失性存储器,例如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。
存储单元阵列150可以包括用于储存数据的多个存储单元(未示出)。
尽管存储单元阵列150被描述为单个存储单元阵列,但这仅是示例;本文的描述可以同样地应用于包括多个存储单元阵列的存储器。
第一数据DATA_A<0:127>可以被储存在存储单元阵列150中。由于存储单元的故障或劣化,在被储存的第一数据DATA_A<0:127>中可能出现错误。
第一奇偶校验位(parity)PARITY_A<0:7>可以被储存在存储单元阵列中,以校正储存在存储单元阵列150中的第一数据DATA_A<0:127>的错误。第一奇偶校验位PARITY_A<0:7>可以是与在存储单元阵列150中储存的第一数据DATA_A<0:127>的单错误校正(SingleError Correction,SEC)相关的奇偶校验位。单错误校正可以基于汉明码(Hamming Code)而被执行。
核心错误校正电路110可以基于第一奇偶校验位PARITY_A<0:7>来对第一数据DATA_A<0:127>执行单错误校正(SEC),以产生第二数据DATA_B<0:127>,在第二数据DATA_B<0:127>中第一数据DATA_A<0:127>的错误被校正。因此,第二数据表示第一数据的经错误校正的版本。
参考图1B,核心错误校正电路110可以包括SEC奇偶校验位发生器111、校正子发生器113、校正子解码器115和数据校正器117。
SEC奇偶校验位发生器111可以基于第一数据DATA_A<0:127>来产生第二奇偶校验位PARITY_AA<0:7>。SEC奇偶校验位发生器111可以根据汉明码中定义的规则来产生第二奇偶校验位PARITY_AA<0:7>。
例如,在参考下面的表1描述的原理中,第二奇偶校验位PARITY_AA<0:7>的第一比特位PARITY_AA0可以包括通过对在第一数据DATA_A<0:127>的128个比特位之中基于汉明码选择的数据比特位执行XOR运算而产生的值。
以相同的方式,第二奇偶校验位PARITY_AA<0:7>的第二比特位PARITY_AA1至第二奇偶校验位PARITY_AA<0:7>的第八比特位PARITY_AA7的值可以由SEC奇偶校验位发生器111来决定,以产生第二奇偶校验位PARITY_AA<0:7>。
校正子发生器113可以接收第一数据DATA_A<0:127>、第一奇偶校验位PARITY_A<0:7>和第二奇偶校验位PARITY_AA<0:7>,并且产生校正子SYND<0:7>。校正子发生器113可以基于汉明码中定义的校正子产生规则,通过对第一数据DATA_A<0:127>和第一奇偶校验位PARITY_A<0:7>以及第二奇偶校验位PARITY_AA<0:7>的比特位执行XOR运算来产生校正子SYND<0:7>。校正子SYND<0:7>可以是通过对第一数据DATA_A<0:127>的错误位置信息进行编码而得到的信息。
校正子解码器115可以对校正子SYND<0:7>进行解码,并且产生表示第一数据DATA_A<0:127>的错误位置信息的第一数据错误标志EF_DATA_A<0:127>。第一数据错误标志EF_DATA_A<0:127>可以指示第一数据DATA_A<0:127>的哪个比特位包括错误。例如,当EF_DATA_A0比特位为1时,指示DATA_A0比特位有错误。当EF_DATA_A0比特位为0时,指示DATA_A0比特位没有错误。
数据校正器117可以接收第一数据DATA_A<0:127>和第一数据错误标志EF_DATA_A<0:127>并产生第二数据DATA_B<0:127>,第二数据DATA_B<0:127>是对第一数据DATA_A<0:127>的错误比特位进行校正的结果。
返回参考图1A,链路错误校正电路130可以接收第二数据DATA_B<0:127>,并且产生链路数据DATA_B<0:127>和第二奇偶校验位PARITY_B<0:8>。第二奇偶校验位PARITY_B<0:8>可以包括总共9个比特位,该9个比特位除了包括用于链路数据DATA_B<0:127>的单错误校正(SEC)的8个比特位PARITY_B<0:7>之外,还包括用于链路数据DATA_B<0:127>的双错误检测(Double Error Detection,DED)的奇偶校验位PARITY_B8。换言之,第二奇偶校验位PARITY_B<0:8>被配置用于链路数据DATA_B<0:127>的单错误校正和双错误检测(SingleError Correction and Double Error Detection,SECDED)。
参考图1B,链路错误校正电路130可以包括SECDED奇偶校验位发生器131。SECDED奇偶校验位发生器131可以接收第二数据DATA_B<0:127>,并且根据基于汉明码而定义的奇偶校验位比特位(parity bit)产生规则来产生第二奇偶校验位PARITY_B<0:8>。链路数据DATA_B<0:127>可以与第二数据DATA_B<0:127>相同。
如上所述,存储系统10可能需要包括SEC奇偶校验位发生器111的核心错误校正电路110和包括SECDED奇偶校验位发生器131的链路错误校正电路130,以便从第一数据DATA_A<0:127>和第一奇偶校验位PARITY_A<0:7>产生第二奇偶校验位PARITY_B<0:8>。
由于上述存储系统包括SEC奇偶校验位发生器111和SECDED奇偶校验位发生器131两者,因此可能存在问题,例如错误校正操作的延时增加、功耗增大和错误校正电路的面积增大。这是因为在错误校正电路中占最大面积的构成元件是奇偶校验位发生器。
因此,根据本发明的另一实施例,提供一种方法,该方法用于在维持储存在存储单元中的奇偶校验位比特位的数量(即,8)的同时从具有8个比特位的第一奇偶校验位PARITY_A<0:7>产生第二奇偶校验位PARITY_B<0:8>,该第二奇偶校验位PARITY_B<0:8>是具有总共9个比特位的用于SECDED的奇偶校验位,该方法中仅使用一个用于执行SECDED操作的奇偶校验位发生器。在这些实施例中,除了第一奇偶校验位PARITY_A<0:7>的8个比特位之外,第二奇偶校验位PARITY_B<0:8>还包括一个比特位,例如第九比特位。
图2A和图2B是示出根据本发明的一个实施例的存储系统10的框图。参考图2A,存储系统10可以包括错误校正电路210,该错误校正电路210仅具有一个奇偶校验位发生器,执行核心错误校正电路110的操作和链路错误校正电路130的操作两者,对数据的错误进行校正,并产生数据的奇偶校验位。
第一数据DATA_A<0:127>可以储存在存储单元阵列150中。由于例如存储单元劣化,第一数据DATA_A<0:127>中可能出现错误。为了校正第一数据DATA_A<0:127>的错误,第一奇偶校验位PARITY_A<0:7>可以储存在存储单元阵列150中。第一奇偶校验位PARITY_A<0:7>可以用于对第一数据DATA_A<0:127>的单错误进行校正,例如,执行单错误校正(SEC)。单错误校正可以基于汉明码而被执行。
错误校正电路210可以产生通过校正第一数据DATA_A<0:127>的单错误而得到的链路数据DATA_B<0:127>。
此外,错误校正电路210可以产生9个比特位的第二奇偶校验位PARITY_B<0:8>,该第二奇偶校验位PARITY_B<0:8>是用于对链路数据DATA_B<0:127>执行的单错误校正和双错误检测(SECDED)的奇偶校验位。
参考图2B,错误校正电路210可以包括SECDED奇偶校验位发生器211、校正子发生器213、校正子解码器215、SEC奇偶校验位校正器216、数据校正器217、DED奇偶校验位错误检测器218和DED奇偶校验位校正器219。
SECDED奇偶校验位发生器211可以接收第一数据DATA_A<0:127>以产生9比特位的第二预奇偶校验位PARITY_AA<0:8>。如先前参考下面的表1所述,SECDED奇偶校验位发生器211可以根据汉明码中定义的规则来产生第二预奇偶校验位PARITY_AA<0:8>。例如,第二预奇偶校验位PARITY_AA<0:8>的第一比特位PARITY_AA0可以是通过对根据汉明码在第一数据DATA_A<0:127>的128个比特位之中选择的数据比特位执行XOR运算而得到的值。以相同的方式,SECDED奇偶校验位发生器211可以决定子奇偶校验位PARITY_AA1至子奇偶校验位PARITY_AA8的值,并基于子奇偶校验位PARITY_AA1和子奇偶校验位PARITY_AA8的值来产生第二预奇偶校验位PARITY_AA<0:8>。子奇偶校验位PARITY_AA1是第二预奇偶校验位PARITY_AA<0:8>的第二比特位,子奇偶校验位PARITY_AA8是第二预奇偶校验位PARITY_AA<0:8>的第九比特位。第二预奇偶校验位PARITY_AA<0:8>包括第一子奇偶校验位PARITY_AA<0:7>和第二子奇偶校验位PARITY_AA<8>。
校正子发生器213可以接收第一数据DATA_A<0:127>、第一奇偶校验位PARITY_A<0:7>和8比特位的第一子奇偶校验位PARITY_AA<0:7>,并且产生校正子SYND<0:7>。
8比特位的第一子奇偶校验位PARITY_AA<0:7>可以是排除了第二子奇偶校验位PARITY_AA8的奇偶校验位,该第二子奇偶校验位PARITY_AA8是9比特位的第二预奇偶校验位PARITY_AA<0:8>中的第九奇偶校验位比特位。
由于第二子奇偶校验位PARITY_AA8是与第一奇偶校验位PARITY_A<0:7>的八个比特位不对应的比特位,并且第二子奇偶校验位PARITY_AA8是基于可能存在错误的第一数据DATA_A<0:127>而产生的比特位,因此校正子发生器213和校正子解码器215可以产生用于第二子奇偶校验位PARITY_AA8的错误信息(即,错误标志)。
因此,错误校正电路210可以包括:DED奇偶校验位错误检测器218,其用于检查在第二子奇偶校验位PARITY_AA8中是否存在错误;以及DED奇偶校验位校正器219,其用于校正第二子奇偶校验位PARITY_AA8的错误。
校正子发生器213可以根据汉明码中定义的校正子产生规则,通过对第一奇偶校验位PARITY_A<0:7>的比特位以及第一数据DATA_A<0:127>和第一子奇偶校验位PARITY_AA<0:7>执行XOR运算来产生校正子SYND<0:7>。校正子SYND<0:7>可以是通过对第一数据DATA_A<0:127>的错误位置信息进行编码而得到的信息。
校正子解码器215可以通过对校正子SYND<0:7>进行解码来产生第一奇偶校验位错误标志EF_PARITY_A<0:7>和第一数据错误标志EF_DATA_A<0:127>。第一奇偶校验位错误标志EF_PARITY_A<0:7>表示第一奇偶校验位PARITY_A<0:7>的错误位置信息。第一数据错误标志EF_DATA_A<0:127>表示第一数据DATA_A<0:127>的错误位置信息。
第一奇偶校验位错误标志EF_PARITY_A<0:7>可以指示第一奇偶校验位PARITY_A<0:7>的哪个比特位有错误。例如,当EF_PARITY_A0比特位为1时,指示PARITY_A0比特位包含错误。当EF_PARITY_A0比特位为0时,指示PARITY_A0比特位不包含错误。
此外,第一数据错误标志EF_DATA_A<0:127>可以指示第一数据DATA_A<0:127>的哪个比特位具有错误。例如,当EF_DATA_A0比特位为1时,指示DATA_A0比特位包含错误。当EF_DATA_A0比特位为0时,指示DATA_A0比特位不包含错误。
SEC奇偶校验位校正器216可以接收第一奇偶校验位PARITY_A<0:7>和第一奇偶校验位错误标志EF_PARITY_A<0:7>,并且产生奇偶校验位PARITY_B<0:7>,奇偶校验位PARITY_B<0:7>是对第一奇偶校验位PARITY_A<0:7>的错误比特位进行校正的结果。
数据校正器217可以接收第一数据DATA_A<0:127>和第一数据错误标志EF_DATA_A<0:127>,并且产生链路数据DATA_B<0:127>,链路数据DATA_B<0:127>是对第一数据DATA_A<0:127>的错误比特位进行校正的结果。
DED奇偶校验位错误检测器218可以接收由校正子解码器215产生的第一数据错误标志EF_DATA_A<0:127>之中的第二子奇偶校验位错误检测标志EF_DATA_AA8。第二子奇偶校验位错误检测标志EF_DATA_AA8是第一数据DATA_A<0:127>的SECDED奇偶校验位发生器211之前用来产生第二子奇偶校验位PARITY_AA8的比特位的错误信息。
当SECDED奇偶校验位发生器211之前用来产生第二子奇偶校验位PARITY_AA8的第一数据DATA_A<0:127>的比特位中存在错误时,第二子奇偶校验位PARITY_AA8中也存在错误。
因此,DED奇偶校验位错误检测器218可以确定在第一数据DATA_A<0:127>的SECDED奇偶校验位发生器211之前用来产生第二子奇偶校验位PARITY_AA8的的比特位中是否存在错误,并且可以检测第二子奇偶校验位PARITY_AA8的错误。
DED奇偶校验位错误检测器218可以对第一数据DATA_A<0:127>的以下比特位执行OR门控操作(OR gating operation),即SECDED奇偶校验位发生器211之前用来产生第二子奇偶校验位PARITY_AA8的比特位,并检测在第二子奇偶校验位PARITY_AA8中是否存在错误。
当第一数据DATA_A<0:127>的SECDED奇偶校验位发生器211之前用来产生第二子奇偶校验位PARITY_AA8的比特位中没有错误时,第二子奇偶校验位PARITY_AA8中也没有错误。因此,第二子奇偶校验位错误检测标志EF_DATA_AA8可以具有逻辑低电平。因此,DED奇偶校验位错误检测器218可以通过将逻辑低电平分配给第二子奇偶校验位错误检测标志EF_DATA_AA8来产生第二子奇偶校验位错误检测标志EF_PARITY_AA8。
当第一数据DATA_A<0:127>的SECDED奇偶校验位发生器211之前用来产生第二子奇偶校验位PARITY_AA8的比特位中存在单错误时,第二子奇偶校验位PARITY_AA8中也存在单错误。因此,第二子奇偶校验位错误检测标志EF_DATA_AA8可以具有逻辑高电平。因此,DED奇偶校验位错误检测器218可以通过将逻辑高电平分配给第二子奇偶校验位错误检测标志EF_DATA_AA8来产生第二子奇偶校验位错误检测标志EF_PARITY_AA8。
DED奇偶校验位校正器219可以接收第二子奇偶校验位错误检测标志EF_PARITY_AA8和第二子奇偶校验位PARITY_AA8。当第二子奇偶校验位错误检测标志EF_PARITY_AA8具有逻辑低电平时,可以产生与第二子奇偶校验位PARITY_AA8的逻辑电平相同的反相第二子奇偶校验位PARITY_B8。
此外,当第二子奇偶校验位错误标志EF_PARITY_AA8具有逻辑高电平时,DED奇偶校验位校正器219可以产生反相第二子奇偶校验位PARITY_B8,其具有第二子奇偶校验位PARITY_AA8的反相逻辑电平。
结果,第二奇偶校验位PARITY_B<0:8>可以包括包含PARITY_B<0:7>和PARITY_B8的比特位。第二奇偶校验位PARITY_B<0:8>可以包括总共9个比特位,其包括用于链路数据DATA_B<0:127>的单错误校正的8个比特位PARITY_B<0:7>和用于链路数据DATA_B<0:127>的双错误检测的PARITY_B8。
换言之,如上所述,图2A和图2B的存储系统虽然仅包括一个奇偶校验位发生器,即,SECDED奇偶校验位发生器211,但是其可以通过DED奇偶校验位错误检测器218和DED奇偶校验位校正器219来产生用于链路数据DATA_B<0:127>的SECDED的第二奇偶校验位PARITY_B<0:8>。
在图1A和图1B的存储系统中,采用了两个奇偶校验位发生器。相比之下,在图2A和图2B的存储系统中,核心错误校正电路的功能和链路错误校正电路的功能两者可以用一个奇偶校验位发生器来执行。由于与奇偶校验位发生器相比,DED奇偶校验位错误检测器218和DED奇偶校验位校正器219占非常小的面积,因此存储器100的总面积可以大大减小。
结果,存储器100可以在奇偶校验位发生器111和131被操作时减少错误校正操作的延时和功耗以及错误校正电路的面积,这是改进。
在各种实施例中,参考图3A至图4B,存储系统可以包括错误校正电路和数据总线反相(DBI)电路。
图3A是示出根据本发明的一个实施例的存储系统10的框图。参考图3A,存储系统10可以包括存储器100和存储器控制器102。存储器100可以包括存储单元阵列150、核心错误校正电路110、链路错误校正电路130和DBI电路320。图示是关于对存储器100的读取操作。
存储器控制器102可以将通过通道105提供用于控制存储器100的各种信号,例如命令/地址信号CMD/ADD、时钟信号CLK和数据信号DQ。
存储器控制器102和存储器100可以通过通道105向彼此发送数据和从彼此接收数据。
存储单元阵列150可以包括易失性存储器,例如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。
存储单元阵列150可以包括用于储存数据的多个存储单元(未示出)。
尽管存储单元阵列150在本文中被描述为单个存储单元阵列,但这仅是示例;本文的描述可以同样地应用于包括多个存储单元阵列的存储器100。
第一数据DATA_A<0:127>可以储存在存储单元阵列150中。由于例如存储单元劣化,第一数据DATA_A<0:127>中可能出现错误。
为了校正第一数据DATA_A<0:127>的错误,第一奇偶校验位PARITY_A<0:8>可以被储存在存储单元阵列150中。
第一奇偶校验位PARITY_A<0:8>可以是用于储存在存储单元阵列150中的第一数据DATA_A<0:127>的单错误校正和双错误检测(SECDED)的奇偶校验位。
该错误校正可以基于汉明码来执行。
核心错误校正电路110可以基于第一奇偶校验位PARITY_A<0:8>来校正第一数据DATA_A<0:127>的错误,并且产生第二数据DATA_B<0:127>。
DBI电路320可以产生第三数据DATA_C<0:127>和DBI标志DBI_C<0:15>。通过根据第二数据DATA_B<0:127>的比特位的逻辑值或电平的数量来决定是否对第二数据DATA_B<0:127>的比特位进行反相来产生第三数据DATA_C<0:127>。DBI标志DBI_C<0:15>表示第三数据DATA_C<0:127>的反相信息。
表1
DQ0 DQ1 DQ2 DQ3 DQ4 DQ5 DQ6 DQ7 DBI_C
BL0 0 16 32 48 64 80 96 112 0
BL1 1 17 33 49 65 81 97 113 1
BL2 2 18 34 50 66 82 98 114 2
BL3 3 19 35 51 67 83 99 115 3
BL4 4 20 36 52 68 84 100 116 4
BL5 5 21 37 53 69 85 101 117 5
BL6 6 22 38 54 70 86 102 118 6
BL7 7 23 39 55 71 87 103 119 7
BL8 8 24 40 56 72 88 104 120 8
BL9 9 25 41 57 73 89 105 121 9
BL10 10 26 42 58 74 90 106 122 10
BL11 11 27 43 59 75 91 107 123 11
BL12 12 28 44 60 76 92 108 124 12
BL13 13 29 45 61 77 93 109 125 13
BL14 14 30 46 62 78 94 110 126 14
BL15 15 31 47 63 79 95 111 127 15
表1示出了第二数据DATA_B<0:127>的128个比特位被分组为16个组BL0至BL15。第0比特位至第15比特位,即第二数据DATA_B<0:127>的总共16个比特位,可以对应于DQ0。同样地,第二数据DATA_B<0:127>的第112比特位至第127比特位,即第二数据DATA_B<0:127>的总共16个比特位,可以对应于DQ7。这里应该注意,将数据分组(或划分)为如表1所示的数据组的方法仅是示例。
DBI标志DBI_C<0:15>的16个比特位可以分别对应于第二数据DATA_B<0:127>的16个组BL0至BL15。DBI标志DBI_C<0:15>的第一比特位DBI_C0可以表示以下比特位的反相信息:与第二数据DATA_B<0:127>的BL0组相对应的比特位,即DATA_B0、DATA_B16、DATA_B32、DATA_B48、DATA_B64、DATA_B80、DATA_B96和DATA_B112。同样地,DBI标志DBI_C<0:15>的第16比特位DBI_C15可以表示以下比特位的反相信息:与第二数据DATA_B<0:127>的BL15组相对应的比特位,即DATA_B15、DATA_B31、DATA_B47、DATA_B63、DATA_B79、DATA_B95、DATA_B111和DATA_B127。
DBI标志DBI_C<0:15>的每个比特位的逻辑值(或电平)可以基于与第二数据DATA_B<0:127>的每个组相对应的比特位的逻辑值来决定,第二数据DATA_B<0:127>的每个组与DBI标志DBI_C<0:15>的每个比特位相对应。
例如,当与第二数据DATA_B<0:127>的BL0组相对应的比特位(DATA_B0、DATA_B16、DATA_B32、DATA_B48、DATA_B64、DATA_B80、DATA_B96和DATA_B112)之中有五个或更多个比特位具有逻辑高电平时,DBI_C0可以具有逻辑高电平,其表示对与第二数据DATA_B<0:127>的BL0组相对应的比特位执行反相操作。
另一方面,当与第二数据DATA_B<0:127>的BL0组相对应的比特位(DATA_B0、DATA_B16、DATA_B32、DATA_B48、DATA_B64、DATA_B80、DATA_B96和DATA_B112)之中有少于5个比特位具有逻辑高电平时,DBI_C0可以具有逻辑低电平,其表示对与第二数据DATA_B<0:127>的BL0组相对应的比特位不执行反相操作。
DBI电路320可以检查第二数据DATA_B<0:127>的比特位的逻辑电平,然后决定是否对第二数据DATA_B<0:127>的比特位进行反相,并且产生表示反相信息的DBI标志DBI_C<0:15>。
例如,当与第二数据DATA_B<0:127>的BL0组相对应的比特位(DATA_B0、DATA_B16、DATA_B32、DATA_B48、DATA_B64、DATA_B80、DATA_B96和DATA_B112)之中有五个或更多个比特位具有逻辑高电平时,DBI电路320可以将DATA_B0、DATA_B16、DATA_B32、DATA_B48、DATA_B64、DATA_B80、DATA_B96和DATA_B112中的每一个的逻辑电平反相,并且产生具有逻辑高电平的DBI_C0。
同样地,当与第二数据DATA_B<0:127>的BL15组相对应的比特位(DATA_B15、DATA_B31、DATA_B47、DATA_B63、DATA_B79、DATA_B95、DATA_B111和DATA_B127)之中有少于五个比特位具有逻辑高电平时,DBI电路320可以在不对DATA_B15、DATA_B31、DATA_B47、DATA_B63、DATA_B79、DATA_B95、DATA_B111和DATA_B127中的每一个的逻辑电平进行反相的情况下产生具有逻辑低电平的DBI_C15。
根据该原理,DBI电路320可以确定是否将第二数据DATA_B<0:127>的比特位反相,并且产生第三数据DATA_C<0:127>和DBI标志DBI_C<0:15>。
链路错误校正电路130可以接收第三数据DATA_C<0:127>和DBI标志DBI_C<0:15>并且产生第三奇偶校验位PARITY_C<0:8>,第三奇偶校验位PARITY_C<0:8>是用于DBI标志DBI_C<0:15>和第三数据DATA_C<0:127>的SECDED的奇偶校验位。第三奇偶校验位PARITY_C<0:8>可以根据汉明码中定义的规则来产生。
表2
DQ0 DQ1 DQ2 DQ3 DQ4 DQ5 DQ6 DQ7 DBI_C
BL0 0 32 48 0
BL1 1 17 65 81 97 113
BL2 34 50 2
BL3 3 19 67 83 99 115
BL4 4 36 52 4
BL5 21 69 85 101 117
BL6 6 38 54 6
BL7 23 71 87 103 119
BL8 8 40 56 120 8
BL9 25 57 73 89 105
BL10 10 26 42 122 10
BL11 11 59 75 91 107
BL12 28 44 124 12
BL13 13 61 77 93 109
BL14 30 46 126 14
BL15 15 63 79 95 111
表2仅示出了根据汉明码中定义的规则产生PARITY_C0所需的DBI标志DBI_C<0:15>的比特位和第三数据DATA_C<0:127>的比特位。
PARITY_C0的逻辑值通过对表2中所示的比特位执行XOR运算来得到。利用相同的原理,链路错误校正电路130还可以决定PARITY_C1至PARITY_C8,并且产生第三奇偶校验位PARITY_C<0:8>。
图3B是示出根据本发明的一个实施例的存储系统10的框图。参考图3B,存储系统10可以包括存储器100和存储器控制器102。存储器100可以包括存储单元阵列150、核心错误校正电路110、链路错误校正电路130和DBI电路320。图示是关于对存储器100的写入操作。
存储器控制器102可以通过通道105将第一数据DATA_D<0:127>、第一DBI标志DBI_D<0:15>和第一奇偶校验位PARITY_D<0:8>传送至存储器100。在存储器控制器102将第一数据DATA_D<0:127>、第一DBI标志DBI_D<0:15>和第一奇偶校验位PARITY_D<0:8>传送至存储器100的过程中,在第一数据DATA_D<0:127>、第一DBI标志DBI_D<0:15>和/或第一奇偶校验位PARITY_D<0:8>中可能出现错误。
链路错误校正电路130可以接收第一数据DATA_D<0:127>、第一DBI标志DBI_D<0:15>和第一奇偶校验位PARITY_D<0:8>,并且产生第二数据DATA_E<0:127>和第二DBI标志DBI_E<0:15>。第二数据DATA_E<0:127>和第二DBI标志DBI_E<0:15>可以通过基于第一奇偶校验位PARITY_D<0:8>对第一数据DATA_D<0:127>和第一DBI标志DBI_D<0:15>的错误进行校正来产生,第一奇偶校验位PARITY_D<0:8>是用于第一数据DATA_D<0:127>和第一DBI标志DBI_D<0:15>的SECDED的奇偶校验位。
DBI电路320可以接收第二数据DATA_E<0:127>和第二DBI标志DBI_E<0:15>,并且产生第三数据DATA_F<0:127>。通过基于具有第二数据DATA_E<0:127>的反相信息的第二DBI标志DBI_E<0:15>来决定是否对第二数据DATA_E<0:127>的比特位进行反相,来产生第三数据DATA_F<0:127>。
核心错误校正电路110可以接收第三数据DATA_F<0:127>,并且产生第三奇偶校验位PARITY_F<0:8>,第三奇偶校验位PARITY_F<0:8>是用于第三数据DATA_F<0:127>的SECDED的奇偶校验位。这用于在随后的读取操作中校正在储存在存储单元中的第三数据DATA_F<0:127>中可能出现的错误。
因此,根据参考图3A和图3B描述的本发明的实施例,可以通过核心错误校正电路110和链路错误校正电路130来校正储存在存储单元阵列150中的数据,并且产生在通道105中可能出现的错误的错误校正奇偶校验位。此外,利用DBI电路320,经过通道105的数据比特位的高逻辑电平比特位的数量可以减少,从而降低功耗。
当提供DBI电路320并且执行存储器100的读取操作时,为了产生第三奇偶校验位PARITY_C<0:8>(其是用于第三数据DATA_C<0:127>的SECDED的奇偶校验位),可以通过由DBI电路320执行反相操作来产生第三数据DATA_C<0:127>,并且稍后可以通过操作链路错误校正电路130来产生第三奇偶校验位PARITY_C<0:8>。
当DBI电路320被提供并且存储器100的写入操作被执行时,为了产生第三奇偶校验位PARITY_F<0:8>(其是用于第三数据DATA_F<0:127>的SECDED的奇偶校验位),可以通过使用DBI电路320执行反相操作来产生第三数据DATA_F<0:127>,之后可以通过操作核心错误校正电路110来产生第三奇偶校验位PARITY_F<0:8>。
图4A是示出根据本发明的一个实施例的存储系统10的框图。参考图4A,存储系统10可以包括存储器100和存储器控制器102。在存储系统的读取操作中存储器100可以包括错误校正电路410、DBI电路420和奇偶校验位再生器450。
第一数据DATA_A<0:127>可以被储存在存储单元阵列150中。由于例如存储单元劣化,在第一数据DATA_A<0:127>中可能出现错误。第一奇偶校验位PARITY_A<0:8>可以被储存在存储单元阵列150中,以校正第一数据DATA_A<0:127>中的错误。第一奇偶校验位PARITY_A<0:8>可以用于第一数据DATA_A<0:127>的单错误校正和双错误检测(SECDED)。该错误校正可以基于汉明码来执行。
错误校正电路410可以基于第一奇偶校验位PARITY_A<0:8>来校正第一数据DATA_A<0:127>的错误,并且产生经错误校正的第二数据DATA_B<0:127>。
错误校正电路410可以产生第二奇偶校验位PARITY_B<0:8>,其是用于第二数据DATA_B<0:127>的SECDED的奇偶校验位。
当错误校正电路410产生第二奇偶校验位PARITY_B<0:8>时,可以同样地应用参考表2描述的原理。
具体地,错误校正电路410可以产生用于总共144个比特位的第二奇偶校验位PARITY_B<0:8>,该144个比特位除了包括形成第二数据DATA_B<0:8>的128个比特位之外,还包括16个DBI标志比特位。
根据本发明的一个实施例,错误校正电路410可以基于以下假设来产生第二奇偶校验位PARITY_B<0:8>:产生第二奇偶校验位PARITY_B<0:8>所需的DBI标志比特位具有逻辑低电平。
根据本发明的另一实施例,错误校正电路410可以接收全部具有逻辑低电平的虚拟DBI标志比特位并且产生第二奇偶校验位PARITY_B<0:8>。
DBI电路420可以产生第三数据DATA_C<0:127>和DBI标志DBI_C<0:15>。可以通过基于形成第二数据DATA_B<0:127>的比特位的逻辑值决定是否对第二数据DATA_B<0:127>的比特位进行反相来产生第三数据DATA_C<0:127>。DBI标志DBI_C<0:15>表示第三数据DATA_C<0:127>的反相信息。
奇偶校验位再生器450可以基于第二奇偶校验位PARITY_B<0:8>和DBI标志DBI_C<0:15>来产生第三奇偶校验位PARITY_C<0:8>,该第三奇偶校验位PARITY_C<0:8>是用于第三数据DATA_C<0:127>的SECDED的奇偶校验位。
具体地,奇偶校验位再生器450可以通过使用DBI标志DBI_C<0:15>来将第二奇偶校验位PARITY_B<0:8>转换为第三奇偶校验位PARITY_C<0:8>。
表3
DQ0 DQ1 DQ2 DQ3 DQ4 DQ5 DQ6 DQ7 DBI_C #
BL0 0 32 48 0 4
BL1 1 17 65 81 97 113 6
BL2 34 50 2 3
BL3 3 19 67 83 99 115 6
BL4 4 36 52 4 4
BL5 21 69 85 101 117 5
BL6 6 38 54 6 4
BL7 23 71 87 103 119 5
BL8 8 40 56 120 8 5
BL9 25 57 73 89 105 5
BL10 10 26 42 122 10 5
BL11 11 59 75 91 107 5
BL12 28 44 124 12 4
BL13 13 61 77 93 109 5
BL14 30 46 126 14 4
BL15 15 63 79 95 111 5
表3示出了根据汉明码中定义的规则产生PARITY_C0所需的第二数据DATA_B<0:127>的比特位和DBI标志DBI_C<0:15>的比特位。
然而,产生PARITY_C0所需的第二数据DATA_B<0:127>不一定表示在此使用第二数据DATA_B<0:127>,而应理解为用于解释数据结构的方式。
为了使奇偶校验位再生器450从第二奇偶校验位PARITY_B<0:8>产生用于第三数据DATA_C<0:127>的第三奇偶校验位PARITY_C<0:8>,由于应用DBI,需要产生PARITY_C0所需的第二数据DATA_B<0:127>的比特位和DBI标志DBI_C<0:15>的比特位的为1(逻辑高电平)的奇数/偶数信息。短语“为1的奇数/偶数信息”指的是指定数据中的比特位的数量是奇数还是偶数。第三数据DATA_C<0:127>是被应用DBI的数据。第二数据DATA_B<0:127>是未被应用DBI的数据。
奇数/偶数信息可以包括要用来产生第三奇偶校验位PARITY_C0的DBI标志比特位DBI_C#,以及与在分别对应于DBI标志比特位的数据比特位之中要用来产生第三奇偶校验位PARITY_C0的比特位的数量有关的信息。
如参考表2所描述的,可以假设DBI_C0在DBI被应用之前具有逻辑低电平。
具体而言,参考表3的BL0,与BL0相对应的的比特位可以是DATA_B0、DATA_B32、DATA_B48和DBI_C0。即,与BL0相对应的的比特位的数量是偶数。由于假设DBI_C0在DBI信号被应用之前具有逻辑低电平,所以当DATA_B0、DATA_B32和DATA_B48都为1时,与BL0相对应的的比特位之中值为“1”的比特位的数量是奇数。
当DBI被应用并且DBI_C0为1时,DATA_B0、DATA_B32和DATA_B48都被反相为“0”。换言之,DATA_B0、DATA_B32和DATA_B48为0,并且DBI_C0为1。因此,与BL0相对应的的比特位之中1值比特位的数量仍然是奇数。
作为BL0的另一示例,当在应用DBI之前DATA_B0和DATA_B32为1而DATA_B48为0时,与BL0相对应的的比特位之中1值比特位的数量是偶数。
这里,当应用DBI并且DBI_C0为1时,DATA_B0、DATA_B32和DATA_B48全都被反相。换言之,由于DATA_B0和DATA_B32为0并且DATA_B48为1并且DBI_C0为1,因此与BL0相对应的的比特位之中1值比特位的数量仍然是偶数。
参考表3的BL2,与BL2相对应的比特位可以是DATA_B34、DATA_B50和DBI_C2。换言之,与BL2相对应的比特位的数量是奇数。
当在应用DBI之前DATA_B34和DATA_B50两者都为1时,与BL2相对应的比特位之中1值比特位的数量是偶数。
当应用DBI并且DBI_C2为1时,DATA_B34和DATA_B50可以全部被反相为0。换言之,由于DATA_B34和DATA_B50为0并且DBI_C0为1,所以与BL2相对应的比特位之中1值比特位的数量被改变为奇数。
作为BL2的另一示例,DATA_B34在应用DBI应用之前为1并且DATA_B50为0,因此与BL2相对应的比特位之中1值比特位的数量是奇数。
当应用DBI并且DBI_C2为1时,DATA_B34和DATA_B50可以全部被反相。换言之,由于DATA_B34为0并且DATA_B50为1并且DBI_C2为1,所以与BL2相对应的比特位之中1值比特位的数量被改变为偶数。
因此,参考表3,当与BL0至BL15中的每一个相对应的比特位的数量是奇数时,并且当分别对应于BL0至BL15的DBI标志DBI_C<0:15>的比特位为1时,与DBI标志DBI_C<0:15>相对应的BL的比特位之中的1的数量的奇数/偶数信息可以被改变。换言之,由于与BL2相对应的比特位的数量为3,3是奇数,因此如果DBI_C2为1,则与BL2相对应的比特位之中的1的数量的奇数/偶数信息可以改变。另一方面,由于与BL0相对应的比特位的数量是4,4是偶数,因此即使DBI_C0为1,与BL0相对应的比特位之中的1的数量的奇数/偶数信息也可以不改变。
因此,PARITY_C0可以包括对PARITY_B0、DBI_C2、DBI_C5、DBI_C7、DBI_C8、DBI_C9、DBI_C10、DBI_C11、DBI_C13和DBI_C15执行XOR运算的结果。换言之,为了产生PARITY_C0,必须对总共76个数据比特位执行XOR运算,该76个数据比特位是上面描述的存储系统中的DATA_C0、DATA_C1、DATA_C3、...、DATA_C126、DBI_C0、...、DBI_C14。然而,使用奇偶校验位再生器450,可以必须对总共10个数据比特位执行XOR运算,该10个数据比特位是PARITY_B0、DBI_C2、DBI_C5、DBI_C7、DBI_C8、DBI_C9、DBI_C10、DBI_C11、DBI_C13和DBI_C15。使用相同的原理,也可以产生PARITY_C1至PARITY_C7。
换言之,在用于产生PARITY_C#的DATA_B#和DBI_C#中,在满足与每个BL#相对应的DBI_C#和DATA_B#加起来的数量为奇数的条件时,与BL#相对应的DBI_C#可以说成是能够产生PARITY_C#的压缩信息。
因此,在存储器100的读取操作中,可以用较少的数据来产生第三奇偶校验位PARITY_C<0:8>,并且可以通过并行处理操作来产生第三奇偶校验位PARITY_C<0:8>,这可以使整体操作的处理速度得到提高。
图4B示出了根据本发明的一个实施例的存储系统10。参考图4B,存储系统10可以包括存储器100和存储器控制器102。在存储系统10的写入操作中,存储器100可以包括错误校正电路410、DBI电路420和奇偶校验位再生器450。
存储器控制器102可以通过通道105将第一数据DATA_D<0:127>、第一DBI标志DBI_D<0:15>和第一奇偶校验位PARITY_D<0:8>传送至存储器100。当存储器控制器102通过通道105将第一数据DATA_D<0:127>、第一DBI标志DBI_D<0:15>和第一奇偶校验位PARITY_D<0:8>传送至存储器100时,在第一数据DATA_D<0:127>、第一DBI标志DBI_D<0:15>和/或第一奇偶校验位PARITY_D<0:8>中可能出现错误。
错误校正电路410可以产生第二数据DATA_E<0:127>和第二DBI标志DBI_E<0:15>。第二数据DATA_E<0:127>和第二DBI标志DBI_E<0:15>可以通过基于第一奇偶校验位PARITY_D<0:8>对第一数据DATA_D<0:127>和第一DBI标志DBI_D<0:15>的错误进行校正来产生。第一奇偶校验位PARITY_D<0:8>用于第一数据DATA_D<0:127>和第一DBI标志DBI_D<0:15>的SECDED。
此外,错误校正电路410可以产生第二奇偶校验位PARITY_E<0:8>,第二奇偶校验位PARITY_E<0:8>用于第二数据DATA_E<0:127>和第二DBI标志DBI_E<0:15>的SECDED。
DBI电路420可以接收第二数据DATA_E<0:127>和第二DBI标志DBI_E<0:15>,并且产生第三数据DATA_F<0:127>。可以通过基于具有第二数据DATA_E<0:127>的反相信息的第二DBI标志DBI_E<0:15>决定对第二数据DATA_E<0:127>的比特位进行反相来产生第三数据DATA_F<0:127>。
奇偶校验位再生器450可以接收第二奇偶校验位PARITY_E<0:8>和第二DBI标志DBI_E<0:15>并且产生第三奇偶校验位PARITY_F<0:8>。第三奇偶校验位PARITY_F<0:8>是用于第三数据DATA_F<0:127>的奇偶校验位。奇偶校验位再生器450的产生方法与上面参考图4A和表3描述的方法相同。
因此,在存储器100的写入操作中,可以用较少的数据来产生第三奇偶校验位PARITY_F<0:8>,并且可以通过并行处理操作来产生第三奇偶校验位PARITY_F<0:8>,这可以使整体操作的处理速度得到提高。
根据本发明的实施例,存储系统可以设置有核心错误校正电路和链路错误校正电路,以便在同时针对通道中发生的错误提供更好的错误校正性能的同时,对储存在存储单元中的数据的错误进行校正。
根据本发明的实施例,存储系统可以包括能够执行核心错误校正电路的操作和链路错误校正电路的操作两者的错误校正电路,以减少功耗和错误校正操作的延时。
根据本发明的实施例,存储系统可以一起包括核心错误校正电路、链路错误校正电路和DBI电路,以通过核心错误校正电路和链路错误校正电路来提供更好的错误校正性能,同时通过DBI电路降低存储系统的功耗。
根据本发明的实施例,存储系统的面积可以通过使用具有单个奇偶校验位发生器的错误校正电路得到减小。
虽然已经在具体实施例方面描述了本发明,但是鉴于本公开对本领域技术人员而言明显的是,在不脱离如所附权利要求中限定的本发明的精神和范围的情况下,可以进行各种改变和修改。

Claims (28)

1.一种存储系统,包括:
存储单元阵列,其适用于储存第一数据和第一奇偶校验位,所述第一奇偶校验位用于校正所述第一数据的错误;以及
错误校正电路,其适用于产生第二数据和第二奇偶校验位,所述第二奇偶校验位包括通过校正所述第一奇偶校验位的错误而得到的比特位和通过校正第二子奇偶校验位的错误而得到的比特位;
其中,所述错误校正电路包括:
单错误校正和双错误检测SECDED奇偶校验位发生器,其适用于产生第二预奇偶校验位,所述第二预奇偶校验位包括第一子奇偶校验位和第二子奇偶校验位;
校正子解码器,其适用于通过对校正子进行解码来产生第一奇偶校验位错误标志和第一数据错误标志;
SEC奇偶校验位校正器,其适用于基于所述第一奇偶校验位错误标志来校正所述第一奇偶校验位的错误;
DED奇偶校验位错误检测器,其适用于基于用于产生所述第二子奇偶校验位的第一数据的错误信息来产生第二子奇偶校验位错误标志;
DED奇偶校验位校正器,其适用于基于所述第二子奇偶校验位错误标志来校正所述第二子奇偶校验位的任何错误;以及
其中,所述错误校正电路还包括:
校正子发生器,其适用于根据汉明码通过对所述第一数据、所述第一子奇偶校验位和所述第一奇偶校验位执行XOR运算来产生所述校正子。
2.根据权利要求1所述的存储系统,其中,所述错误校正电路还包括:
数据校正器,其适用于通过校正所述第一数据的错误来产生第二数据。
3.根据权利要求1所述的存储系统,
其中,所述第一奇偶校验位错误标志表示所述第一奇偶校验位的错误位置信息;以及
其中,所述第一数据错误标志表示所述第一数据的错误位置信息。
4.根据权利要求1所述的存储系统,
其中,所述SECDED奇偶校验位发生器对根据汉明码在所述第一数据之中选择的数据比特位执行XOR运算。
5.根据权利要求1所述的存储系统,
其中,所述第二子奇偶校验位错误标志表示所述第二子奇偶校验位的错误存在信息。
6.根据权利要求1所述的存储系统,
其中,所述DED奇偶校验位错误检测器通过对所述第一数据的用于产生所述第二子奇偶校验位的比特位执行OR门控操作来检测所述第二子奇偶校验位的错误。
7.根据权利要求1所述的存储系统,
其中,当所述第二子奇偶校验位错误标志具有逻辑低电平时,所述DED奇偶校验位校正器输出所述第二子奇偶校验位而不做改变,以及
当所述第二子奇偶校验位错误标志具有逻辑高电平时,所述DED奇偶校验位校正器将所述第二子奇偶校验位反相,并输出所述第二子奇偶校验位的反相比特位。
8.根据权利要求2所述的存储系统,
其中,当所述第一数据错误标志的比特位之中的第一数据错误标志比特位具有逻辑低电平时,所述数据校正器输出所述第一数据的比特位之中的与所述第一数据错误标志比特位相对应的第一数据比特位而不做改变,以及
当所述第一数据错误标志比特位具有逻辑高电平时,所述数据校正器将所述第一数据比特位反相,并输出反相的第一数据比特位。
9.根据权利要求1所述的存储系统,
其中,当所述第一奇偶校验位错误标志的比特位之中的第一奇偶校验位错误标志比特位具有逻辑低电平时,所述SEC奇偶校验位校正器输出所述第一奇偶校验位的比特位之中的与所述第一奇偶校验位错误标志比特位相对应的第一奇偶校验位比特位而不做改变,以及
当所述第一奇偶校验位错误标志比特位具有逻辑高电平时,所述SEC奇偶校验位校正器将所述第一奇偶校验位比特位反相,并输出反相的第一奇偶校验位比特位。
10.根据权利要求1所述的存储系统,还包括:
数据总线反相DBI电路,其适用于产生DBI标志并通过使用所述DBI标志来产生第三数据;以及
奇偶校验位再生器,其适用于通过使用所述DBI标志根据奇数/偶数信息对所述第二奇偶校验位进行转换来产生第三奇偶校验位。
11.根据权利要求10所述的存储系统,
其中,所述DBI电路将所述第二数据的包括在与具有逻辑高电平的DBI标志的每个比特位相对应的组中的比特位反相。
12.根据权利要求11所述的存储系统,
其中,当与所述DBI标志的每个比特位相对应的组中包括的第二数据比特位的数量等于或大于预定阈值时,所述DBI标志的每个比特位指示逻辑高电平。
13.根据权利要求10所述的存储系统,
其中,所述奇偶校验位再生器对所述DBI标志的与指示奇数的奇数/偶数信息相对应的比特位和所述第二奇偶校验位执行XOR运算。
14.根据权利要求10所述的存储系统,
其中,当所述第二数据的与产生所述第三奇偶校验位有关的具有逻辑高电平的比特位的数量是奇数时,所述奇数/偶数信息指示奇数。
15.一种用于操作存储系统的方法,包括:
产生第二数据和第二奇偶校验位,所述第二奇偶校验位包括通过校正第一奇偶校验位的错误而得到的比特位和通过校正第二子奇偶校验位的错误而得到的比特位;
产生第二预奇偶校验位,所述第二预奇偶校验位包括第一子奇偶校验位和所述第二子奇偶校验位;
通过对校正子进行来解码来产生第一奇偶校验位错误标志和第一数据错误标志;
基于所述第一奇偶校验位错误标志来校正所述第一奇偶校验位的错误;
基于用于产生所述第二子奇偶校验位的第一数据的错误信息来产生第二子奇偶校验位错误标志;以及
基于所述第二子奇偶校验位错误标志来校正所述第二子奇偶校验位的任何错误;
还包括:
根据汉明码,通过对所述第一数据、所述第一子奇偶校验位和所述第一奇偶校验位执行XOR运算来产生所述校正子。
16.根据权利要求15所述的方法,还包括:
通过校正所述第一数据的错误来产生所述第二数据。
17.根据权利要求15所述的方法,
其中,所述第一奇偶校验位错误标志表示所述第一奇偶校验位的错误位置信息;以及
其中,所述第一数据错误标志表示所述第一数据的错误位置信息。
18.根据权利要求15所述的方法,
其中,产生所述第二预奇偶校验位的步骤包括:对根据汉明码在所述第一数据之中选择的数据比特位执行XOR运算。
19.根据权利要求15所述的方法,
其中,所述第二子奇偶校验位错误标志表示所述第二子奇偶校验位的错误存在信息。
20.根据权利要求15所述的方法,
其中,产生所述第二子奇偶校验位错误标志的步骤包括:通过对所述第一数据的用于产生所述第二子奇偶校验位的比特位执行OR门控操作来检测所述第二子奇偶校验位的错误。
21.根据权利要求15所述的方法,
其中,校正所述第二子奇偶校验位的任何错误的步骤包括:
当所述第二子奇偶校验位错误标志具有逻辑低电平时,输出第二子奇偶校验位比特位而不做改变;以及
当所述第二子奇偶校验位错误标志具有逻辑高电平时,将所述第二子奇偶校验位比特位反相,并输出反相的第二子奇偶校验位比特位。
22.根据权利要求16所述的方法,
其中,产生所述第二数据的步骤包括:
当所述第一数据错误标志的比特位之中的第一数据错误标志比特位具有逻辑低电平时,输出所述第一数据的比特位之中的与所述第一数据错误标志比特位相对应的第一数据比特位而不做改变,以及
当所述第一数据错误标志比特位具有逻辑高电平时,将所述第一数据比特位反相,并输出反相的第一数据比特位。
23.根据权利要求15所述的方法,
其中,校正所述第一奇偶校验位的错误的步骤包括:
当所述第一奇偶校验位错误标志的比特位之中的第一奇偶校验位错误标志比特位具有逻辑低电平时,输出所述第一奇偶校验位的比特位之中的与所述第一奇偶校验位错误标志比特位相对应的第一奇偶校验位比特位而不做改变,以及
当第一奇偶校验位错误标志比特位具有逻辑高电平时,将所述第一奇偶校验位比特位反相,并输出反相的第一奇偶校验位比特位。
24.根据权利要求15所述的方法,还包括:
产生DBI标志;
通过使用所述DBI标志来产生第三数据;以及
使用所述DBI标志,通过根据奇数/偶数信息对所述第二奇偶校验位进行转换来产生第三奇偶校验位。
25.根据权利要求24所述的方法,
其中,产生所述第三数据的步骤包括:将所述第二数据的包括在与具有逻辑高电平的DBI标志的每个比特位相对应的组中的比特位反相。
26.根据权利要求25所述的方法,
其中,当与所述DBI标志的每个比特位相对应的组中包括的第二数据比特位的数量等于或大于预定阈值时,所述DBI标志的每个比特位指示逻辑高电平。
27.根据权利要求24所述的方法,
其中,产生所述第三奇偶校验位的步骤包括:对所述DBI标志的与指示奇数的奇数/偶数信息相对应的比特位和所述第二奇偶校验位执行XOR运算。
28.根据权利要求24所述的方法,
其中,当所述第二数据的与产生所述第三奇偶校验位有关的具有逻辑高电平的比特位的数量是奇数时,所述奇数/偶数信息指示奇数。
CN201811634890.6A 2018-04-09 2018-12-29 存储系统和存储系统的操作方法 Active CN110362420B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180041138A KR102583797B1 (ko) 2018-04-09 2018-04-09 메모리 시스템 및 메모리 시스템의 동작 방법
KR10-2018-0041138 2018-04-09

Publications (2)

Publication Number Publication Date
CN110362420A CN110362420A (zh) 2019-10-22
CN110362420B true CN110362420B (zh) 2023-06-16

Family

ID=68095992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811634890.6A Active CN110362420B (zh) 2018-04-09 2018-12-29 存储系统和存储系统的操作方法

Country Status (3)

Country Link
US (1) US10936409B2 (zh)
KR (1) KR102583797B1 (zh)
CN (1) CN110362420B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10977119B2 (en) * 2018-09-28 2021-04-13 Apple Inc. Techniques for utilizing volatile memory buffers to reduce parity information stored on a storage device
KR20220139199A (ko) * 2021-04-07 2022-10-14 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US11762736B2 (en) 2021-05-18 2023-09-19 Samsung Electronics Co., Ltd. Semiconductor memory devices
US11636008B2 (en) * 2021-09-01 2023-04-25 Micron Technology, Inc. Tracking host-provided metadata in a memory sub-system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1768330A (zh) * 2003-04-14 2006-05-03 国际商业机器公司 具有容错地址和命令总线的高可靠性存储器模块
JP2006179056A (ja) * 2004-12-21 2006-07-06 Fujitsu Ltd 半導体メモリ
CN104765650A (zh) * 2014-01-08 2015-07-08 瑞萨电子株式会社 数据处理装置
CN105340022A (zh) * 2013-06-24 2016-02-17 美光科技公司 用于校正数据错误的电路、设备及方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044483A (en) * 1998-01-29 2000-03-28 International Business Machines Corporation Error propagation operating mode for error correcting code retrofit apparatus
JP4469783B2 (ja) * 2005-11-28 2010-05-26 株式会社東芝 メモリ保護装置、メモリ保護システムおよびメモリ保護方法
JP4643479B2 (ja) * 2006-03-22 2011-03-02 株式会社東芝 アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法およびメモリアクセス制御方法
KR100902051B1 (ko) 2007-07-12 2009-06-15 주식회사 하이닉스반도체 오류 검사 코드 생성장치 및 방법
US8381083B2 (en) * 2009-10-22 2013-02-19 Arm Limited Error control coding for single error correction and double error detection
KR101873526B1 (ko) 2011-06-09 2018-07-02 삼성전자주식회사 에러 정정회로를 구비한 온 칩 데이터 스크러빙 장치 및 방법
US20150311920A1 (en) * 2014-04-25 2015-10-29 Agency For Science, Technology And Research Decoder for a memory device, memory device and method of decoding a memory device
US9800271B2 (en) * 2015-09-14 2017-10-24 Qualcomm Incorporated Error correction and decoding
KR101860809B1 (ko) 2015-09-30 2018-07-06 서울대학교산학협력단 메모리 시스템 및 메모리 에러 정정 방법
KR20170045803A (ko) * 2015-10-20 2017-04-28 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US20170324425A1 (en) * 2016-05-06 2017-11-09 Infineon Technologies Ag Embedded parity matrix generator
KR102479212B1 (ko) * 2016-08-17 2022-12-20 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1768330A (zh) * 2003-04-14 2006-05-03 国际商业机器公司 具有容错地址和命令总线的高可靠性存储器模块
JP2006179056A (ja) * 2004-12-21 2006-07-06 Fujitsu Ltd 半導体メモリ
CN105340022A (zh) * 2013-06-24 2016-02-17 美光科技公司 用于校正数据错误的电路、设备及方法
CN104765650A (zh) * 2014-01-08 2015-07-08 瑞萨电子株式会社 数据处理装置

Also Published As

Publication number Publication date
KR20190118027A (ko) 2019-10-17
CN110362420A (zh) 2019-10-22
KR102583797B1 (ko) 2023-10-05
US20190310910A1 (en) 2019-10-10
US10936409B2 (en) 2021-03-02

Similar Documents

Publication Publication Date Title
CN110362420B (zh) 存储系统和存储系统的操作方法
US11734106B2 (en) Memory repair method and apparatus based on error code tracking
CN109815045B (zh) 存储系统以及在存储系统中处理数据的方法
US11550659B2 (en) Controller and memory system
US20060136800A1 (en) Memory system and semiconductor memory device
US11030040B2 (en) Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system
CN110619920B (zh) 半导体装置和包括该半导体装置的测试系统
US20200153461A1 (en) Data storage system and associated method
US11216331B2 (en) Memory system and operating method thereof
CN111540401A (zh) 存储系统和存储模块
US10256843B2 (en) Systems, methods, and devices for encoding and decoding data using multi-layer integrated interleaved codes
KR101489827B1 (ko) 낸드 플래시 메모리와 컨트롤러 간의 효율적인 프로토콜을사용하는 반도체 메모리 장치
US10810080B2 (en) Memory device selectively correcting an error in data during a read operation, memory system including the same, and operating method of memory system
CN112133362B (zh) 存储器存储装置及其存储器测试方法
US20020174397A1 (en) Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function
WO2000070459A1 (en) Error correction circuit and method for a memory device
US11537467B2 (en) Memory, memory system, and operation method of memory
US20240022263A1 (en) Memory, memory module, memory system, and operation method of memory system
US11698835B2 (en) Memory and operation method of memory
JPH11213693A (ja) メモリ装置
CN111367708B (zh) 多个存储器件共享的错误校正系统
CN115910178A (zh) 存储器、数据处理结构和数据分析方法

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