[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20220104031A - 오류 정정 시스템 - Google Patents

오류 정정 시스템 Download PDF

Info

Publication number
KR20220104031A
KR20220104031A KR1020227021311A KR20227021311A KR20220104031A KR 20220104031 A KR20220104031 A KR 20220104031A KR 1020227021311 A KR1020227021311 A KR 1020227021311A KR 20227021311 A KR20227021311 A KR 20227021311A KR 20220104031 A KR20220104031 A KR 20220104031A
Authority
KR
South Korea
Prior art keywords
signal
unit
data
check code
gate
Prior art date
Application number
KR1020227021311A
Other languages
English (en)
Inventor
캉링 지
Original Assignee
창신 메모리 테크놀로지즈 아이엔씨
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
Priority claimed from CN202110049134.2A external-priority patent/CN114765054B/zh
Application filed by 창신 메모리 테크놀로지즈 아이엔씨 filed Critical 창신 메모리 테크놀로지즈 아이엔씨
Publication of KR20220104031A publication Critical patent/KR20220104031A/ko

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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • 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/1012Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12005Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/29Coding, 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/2906Coding, 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C2029/1802Address decoder
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • 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/29Coding, 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/2906Coding, 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/2927Decoding strategies
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0098Unequal error protection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Probability & Statistics with Applications (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 실시예는, X개의 제1 연산 코드 및 Y개의 제2 연산 코드에 대해 디코딩 처리를 수행하도록 구성되는 M개의 디코딩 유닛을 포함하고; 여기서, 디코딩 유닛은, X개의 제1 연산 코드를 수신하고 N개의 제1 디코딩 신호를 출력하도록 구성되는 디코더 - 각 제1 디코딩 신호는 N개의 데이터의 1 비트에 대응됨 - ; Z개의 선택된 연산 코드를 수신하고 논리 AND 연산을 수행하도록 구성되는 제1 AND 게이트 유닛; (Y-Z)개의 비선택된 연산 코드를 수신하고 논리 NOR 연산을 수행하도록 구성되는 NOR 게이트 유닛; 및 N개의 제2 AND 게이트 유닛 - 각 제2 AND 게이트 유닛의 입력단은 제1 AND 게이트 유닛의 출력단, NOR 게이트 유닛의 출력단 및 하나의 제1 디코딩 신호에 연결되고, N개의 제2 AND 게이트 유닛의 출력을 기반으로 저장 시스템에 대해 오류 검출 및 오류 정정 중 적어도 하나를 수행함 - 을 포함하는 오류 정정 시스템을 제공한다.

Description

오류 정정 시스템
관련 출원의 상호 참조
본 발명은 출원번호가 202110049134.2이고, 출원일자가 2021년 01월 14일인 중국특허출원에 기반하여 제출하며, 상기 중국특허출원의 우선권을 주장하는 바, 상기 중국특허출원의 모든 내용은 참조로서 본 발명에 인용된다.
기술분야
본 발명의 실시예는 오류 정정 시스템에 관한 것이지만 이에 한정되지 않는다.
반도체 저장은 비휘발성 저장 및 휘발성 저장으로 나눌 수 있다. 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)는 휘발성 저장으로서, 저장 밀도가 높고 판독 및 기록 속도가 빠른 장점을 가지며, 다양한 전자 시스템에 널리 사용된다.
DRAM의 제조 공정이 고도화되고 저장 밀도가 높아짐에 따라, DRAM에 저장된 데이터는 오류가 발생할 수 있으며 DRAM 성능에 심각한 영향을 미친다. 따라서, DRAM에서는 일반적으로 오류 정정 코드(ECC, Error Checking and Correction or Error correction Coding) 기술을 사용하여 저장 데이터의 오류에 대해 검출하거나 정정한다.
본 발명의 실시예는 저장 시스템에 적용되고, 상기 저장 시스템은 판독 및 기록 동작 기간에 복수의 데이터를 기록 또는 판독하며, 상기 복수의 데이터는 M개의 바이트로 나뉘어지고 각 상기 바이트는 N개의 상이한 비트의 데이터를 가지며; 상기 저장 시스템은 인코딩 단계 및 디코딩 단계를 가지고, 상기 디코딩 단계에서 상기 오류 정정 시스템은 상기 저장 시스템에 기반하여 X개의 제1 연산 코드 및 Y개의 제2 연산 코드를 생성하며, 상기 제1 연산 코드는 N개의 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되고, 상기 제2 연산 코드는 M개의 바이트에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되는 오류 정정 시스템을 제공하며, 상기 오류 정정 시스템은, M개의 디코딩 유닛을 포함하되, 각 상기 디코딩 유닛은 하나의 상기 바이트에 대응되고, X개의 상기 제1 연산 코드 및 Y개의 상기 제2 연산 코드에 대해 디코딩 처리를 수행하여 상기 바이트에 오류가 있는 데이터가 있는지 여부를 획득하며 오류가 있는 데이터의 비트를 위치결정하도록 구성되고; 여기서, 상기 디코딩 유닛은,
상기 X개의 제1 연산 코드를 수신하고 N개의 제1 디코딩 신호를 출력하도록 구성되는 디코더 - 각 상기 제1 디코딩 신호는 N개의 데이터의 1 비트에 대응되며, N은 X보다 큼 - ; Z개의 선택된 연산 코드를 수신하고 논리 AND 연산을 수행하도록 구성되는 제1 AND 게이트 유닛 - 상기 선택된 연산 코드는 상기 Y개의 제2 연산 코드 중 상기 바이트에 대응되는 상기 제2 연산 코드임 - ; (Y-Z)개의 비선택된 연산 코드를 수신하고 논리 NOR 연산을 수행하도록 구성되는 NOR 게이트 유닛 - 상기 비선택된 연산 코드는 상기 선택된 연산 코드를 제외한 상기 제2 연산 코드임 - ; 및 N개의 제2 AND 게이트 유닛 - 각 상기 제2 AND 게이트 유닛의 입력단은 상기 제1 AND 게이트 유닛의 출력단, 상기 NOR 게이트 유닛의 출력단 및 하나의 상기 제1 디코딩 신호에 연결되고, 상기 N개의 제2 AND 게이트 유닛의 출력을 기반으로 상기 저장 시스템에 대해 오류 검출 및 오류 정정 중 적어도 하나를 수행함 - 을 포함하며; 여기서 상기 X, Y 및 N은 모두 양의 자연수이고, Z는 (Y-1)/2 이상 및 (Y+1)/2 이하의 정수인 것을 특징으로 한다.
하나 이상의 실시예는 이에 대응되는 도면의 사진에 의해 예시적으로 설명되며, 이러한 예시적인 설명은 실시예에 대한 한정으로 구성되지 않고, 도면에서 동일한 참조 번호로 표기된 요소는 유사한 요소를 나타내며, 달리 언급되지 않는 한, 도면의 그림은 축척 제한을 받지 않는다.
도 1은 본 발명의 실시예에서 제공되는 오류 정정 시스템과 저장 시스템의 기능 블록도이다.
도 2는 본 발명의 실시예에서 제공되는 오류 정정 시스템의 구조 모식도1이다.
도 3은 도 2 중 각 바이트에 대응되는 디코딩 유닛의 확대 구조 모식도이다.
도 4는 본 발명의 실시예에서 제공되는 복수의 데이터의 분류 모식도 및 제1 체크 코드와 제2 체크 코드와의 관계 모식도이다.
도 5는 바이트0에 대응되는 제1 체크 코드의 확대 모식도를 도시한다.
도 6은 본 발명의 실시예에서 제공되는 오류 정정 시스템의 구조 모식도2이다.
도 7은 모든 바이트에 대해 제2 인코딩 연산을 수행하는 원리 모식도를 도시한다.
도 8은 본 발명의 실시예에서 제공되는 오류 정정 시스템 중 제1 비교 회로 또는 제2 비교 회로의 기능 블록도이다.
도 9는 본 발명의 실시예에서 제공되는 오류 정정 시스템 중 제1 비교 회로 또는 제2 비교 회로의 회로 구조 모식도이다.
도 10은 본 발명의 실시예에서 제공되는 디코딩 유닛의 바이트에 대응되는 구조 모식도이다.
도 11은 도 10 중 바이트5에 대응되는 디코딩 유닛의 확대 구조 모식도이다.
본 발명의 실시예는 저장 시스템에 적용되고, 저장 시스템은 판독 및 기록 동작 기간에 복수의 데이터를 기록 또는 판독하며, 상기 복수의 데이터는 M개의 바이트로 나뉘어지고 각 바이트는 N개의 상이한 비트의 데이터를 가지며; 디코딩 단계에서 저장 시스템은 X개의 제1 연산 코드 및 Y개의 제2 연산 코드를 생성하고, 제1 연산 코드는 N개의 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되며, 제2 연산 코드는 M개의 바이트에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되는 오류 정정 시스템을 제공하고; 오류 정정 시스템은, M개의 디코딩 유닛을 포함하되, 각 디코딩 유닛은 하나의 바이트에 대응되며; 디코딩 유닛은, X개의 제1 연산 코드를 수신하고 N개의 제1 디코딩 신호를 출력하도록 구성되는 디코더 - 오류가 있는 데이터의 비트를 위치결정하도록 구성됨 - ; 오류가 있는 바이트의 위치를 결정하도록 구성되는 제1 AND 게이트 유닛 및 NOR 게이트 유닛; 및 N개의 제2 AND 게이트 유닛 - 각 제2 AND 게이트 유닛의 입력단은 대응하는 제1 AND 게이트 유닛의 출력단 및 NOR 게이트 유닛의 출력단에 연결되고, 상기 바이트에 오류가 있는지 여부를 획득하며 오류가 있는 데이터의 비트를 위치결정하도록 구성됨 - 을 포함한다. 본 발명의 실시예에서, 각 바이트에 대응되는 디코딩 유닛의 회로는 동일한 회로로 설치될 수 있지만, 상이한 디코딩 유닛 중 각 입력단에 연결되는 제1 연산 코드 및 제2 연산 코드가 상이하므로 오류 정정 시스템 중 모든 디코딩 유닛의 라인 및 면적을 절약하는데 유리하며, 또한 동시에 모든 바이트에 대해 디코딩 처리를 수행하여 오류 검출 및 오류 정정 중 적어도 하나를 수행할 수 있으므로, 오류 정정 시스템의 오류 검출의 오류 정정 속도를 향상시킬 수 있다.
본 발명의 실시예의 목적, 기술적 해결수단 및 장점이 보다 명확해지도록 하기 위해, 아래 도면과 결부하여 본 발명의 각 실시예를 상세하게 설명한다. 그러나, 당업자는 본 발명의 각 실시예에서 독자가 본 발명을 더 잘 이해하도록 하기 위해 여러 기술적 세부 사항을 제공하였음을 이해할 수 있을 것이다. 그러나, 이러한 기술적 세부 사항 및 이하 각 실시예에 기반한 다양한 변화 및 수정이 이루어지지 않을 지라도 본 발명의 보호하고자 하는 기술적 해결수단을 구현할 수 있을 것이다.
도 1은 본 발명의 실시예에서 제공되는 오류 정정 시스템과 저장 시스템의 기능 블록도이고, 도 2는 본 발명의 실시예에서 제공되는 오류 정정 시스템의 구조 모식도1이며, 도 3은 도 2 중 각 바이트에 대응되는 디코딩 유닛의 확대 구조 모식도이다.
도 1 내지 도 3을 참조하면, 본 발명의 실시예에서, 오류 정정 시스템(1)은 저장 시스템(101)에 적용되고, 상기 저장 시스템(101)은 판독 및 기록 동작 기간에 복수의 데이터를 기록 또는 판독하며, 상기 복수의 데이터는 M개의 바이트로 나뉘어지고 각 바이트는 N개의 상이한 비트의 데이터를 가지며; 저장 시스템(101)은 인코딩 단계 및 디코딩 단계를 가지고, 디코딩 단계에서 상기 오류 정정 시스템(1)은 저장 시스템(101)에 기반하여 X개의 제1 연산 코드 및 Y개의 제2 연산 코드를 생성하며, 제1 연산 코드는 N개의 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되고, 제2 연산 코드는 M개의 바이트에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되며; 오류 정정 시스템(1)은 M개의 디코딩 유닛(31)을 더 포함하되, 각 디코딩 유닛(31)은 하나의 바이트에 대응되고, X개의 제1 연산 코드 및 Y개의 제2 연산 코드에 대해 디코딩 처리를 수행하여 바이트에 오류가 있는 데이터가 있는지 여부를 획득하며 오류가 있는 데이터의 비트를 위치결정하도록 구성된다.
여기서, 디코딩 유닛(31)은, X개의 제1 연산 코드를 수신하고 N개의 제1 디코딩 신호를 출력하도록 구성되는 디코더(301) - 각 제1 디코딩 신호는 N개의 데이터의 1 비트에 대응되며, N은 X보다 큼 - ; Z개의 선택된 연산 코드를 수신하고 논리 AND 연산을 수행하도록 구성되는 제1 AND 게이트 유닛(302) - 선택된 연산 코드는 Y개의 제2 연산 코드 중 바이트에 대응되는 제2 연산 코드임 - ; (Y-Z)개의 비선택된 연산 코드를 수신하고 논리 NOR 연산을 수행하도록 구성되는 NOR 게이트 유닛(303) - 비선택된 연산 코드는 선택된 연산 코드를 제외한 제2 연산 코드임 - ; 및 N개의 제2 AND 게이트 유닛(304) - 각 제2 AND 게이트 유닛(304)의 입력단은 제1 AND 게이트 유닛(302)의 출력단, NOR 게이트 유닛(303)의 출력단 및 하나의 제1 디코딩 신호에 연결되고, N개의 제2 AND 게이트 유닛(304)의 출력을 기반으로 저장 시스템(101)에 대해 오류 검출 및 오류 정정 중 적어도 하나를 수행함 - ;을 포함하며, X, Y 및 N은 모두 양의 자연수이고, Z는 (Y-1)/2 이상 및 (Y+1)/2 이하의 정수이다.
유의해야 할 것은, 본 발명의 실시예에서 지칭되는 제1 연산 코드는 각 바이트 중의 N개의 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되고, 제2 연산 코드는 M개의 바이트에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되며, 모든 제1 연산 코드 및 제2 연산 코드는 M개의 바이트의 모든 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 공통으로 사용되는 것으로 이해되어야 하며, 제2 연산 코드는 오류가 발생한 데이터가 M개의 바이트 중 어느 바이트에 위치하는지 결정하고, 제1 연산 코드는 오류가 발생한 데이터가 상기 바이트 중 어느 비트에 위치하는지 결정한다.
도 2는 2개의 바이트에 대응되는 디코딩 유닛의 구조 모식도를 도시하고, 이하 도면을 결부하여 본 발명의 실시예에서 제공되는 오류 정정 시스템에 대해 상세하게 설명한다.
본 발명의 실시예에서, X는 4이고 N은 8이며, 대응하는 디코더(301)는 38디코더이고, 상기 디코더(301)는 3개의 입력단 및 8개의 출력단을 가지며, 제2 AND 게이트 유닛(304)의 수는 8이고, 즉 N은 8이다.
Z가 (Y-1)/2 이상 및 (Y+1)/2 이하의 정수이므로, 제1 AND 게이트 유닛(302)의 입력단의 수와 NOR 게이트 유닛(303)의 입력단의 수의 합을 최소화하고, 제1 AND 게이트 유닛(302)의 입력단 및 NOR 게이트 유닛(303)의 입력단은 모두 효과적으로 이용될 수 있다.
본 발명의 일부 실시예에서, Y는 5이고, 2≤Z≤3이며, 제1 AND 게이트 유닛(302)이 2개의 선택된 연산 코드를 수신하고, 즉 제1 AND 게이트 유닛(302)이 2개의 입력단이 필요하면, NOR 게이트 유닛(303)은 3개의 비선택된 연산 코드를 수신하고, 즉 NOR 게이트 유닛(303)은 3개의 입력단이 필요하며; 제1 AND 게이트 유닛(302)이 3개의 선택된 연산 코드를 수신하고, 즉 제1 AND 게이트 유닛(302)이 3개의 입력단이 필요하면, NOR 게이트 유닛(303)은 2개의 비선택된 연산 코드를 수신하고, 즉 NOR 게이트 유닛(303)은 2개의 입력단이 필요하다.
본 발명의 일부 실시예에서, 제1 AND 게이트 유닛(302)은 3개의 입력단을 가지고; 제1 AND 게이트 유닛(302)은 또한, 선택된 연산 코드의 수가 2이면 제1 AND 게이트 유닛(302)의 하나의 입력단이 전원(VDD)에 연결되도록 구성된다. 대응하게, NOR 게이트 유닛(303)은 3개의 입력단을 가지고; NOR 게이트 유닛(303)은 또한, 비선택된 연산 코드의 수가 2이면 NOR 게이트 유닛(303)의 하나의 입력단은 접지(Vss)되도록 구성된다.
제1 연산 코드는 N개의 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되므로, 저장 시스템에 1비트의 오류가 있는 데이터가 있으면 디코더(301)에 의해 출력된 N개의 제1 디코딩 신호를 통해 N개의 상이한 비트의 데이터 중 어느 비트의 데이터에 오류가 발생하였는지 알 수 있지만, N개의 제1 디코딩 신호를 통해서는 어느 바이트 중의 이 비트의 데이터에 오류가 발생하였는지 알 수 없다.
선택된 연산 코드는 Y개의 제2 연산 코드 중 바이트에 대응되는 제2 연산 코드이고, 여기서 대응은, 상기 바이트의 데이터가 상기 제2 연산 코드의 인코딩 연산에 참여한 것을 의미한다. 본 발명의 실시예에서, Y개의 제2 연산 코드 중 각 제2 연산 코드는 상이한 바이트 중의 모든 데이터에 대해 인코딩 연산을 수행하여 얻은 것이고, 이해할 수 있는 것은, 하나의 바이트의 경우, 상기 바이트 중의 모든 데이터가 인코딩 연산에 참여하면, 얻은 제2 연산 코드는 상기 바이트에 대응되는 제2 연산 코드로 정의된다. 상이한 바이트가 인코딩 연산에 참여하여 얻은 제2 연산 코드가 완전히 동일한 것이 아니므로, Y개의 제2 연산 코드는 M개의 바이트에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용될 수 있다는 것을 발견하는데 어렵지 않다.
제2 연산 코드는 M개의 바이트에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되므로, 제1 AND 게이트 유닛(302)의 경우, 상기 바이트에 대응되는 제2 연산 코드 즉 선택된 연산 코드는 제1 AND 게이트 유닛(302)으로서 입력된다. 저장 시스템에 1비트의 오류가 있는 데이터가 있고 상기 바이트 중의 데이터에 오류가 발생하면, 선택된 연산 코드에 영향을 미칠 것이며, 따라서 제1 AND 게이트 유닛(302)의 출력 결과에 영향을 미치게 된다. NOR 게이트 유닛(303)의 경우, 모든 제2 연산 코드 중 선택된 연산 코드를 제외한 제2 연산 코드는 즉 비선택된 연산 코드이고, 상기 비선택된 연산 코드는 NOR 게이트 유닛(303)으로서 입력된다. 저장 시스템에 1비트의 오류가 있는 데이터가 있고 상기 바이트 중의 데이터에 오류가 발생하면, 비선택된 연산 코드에 영향을 미치지 않을 것이며, 따라서 NOR 게이트 유닛(303)의 출력 결과에도 영향을 미치지 않으며; 마찬가지로, 저장 시스템에 1비트의 오류가 있는 데이터가 있고 상기 바이트 중의 데이터에 오류가 발생하지 않으면, 비선택된 연산 코드에 영향을 미칠 것이며, 따라서 NOR 게이트 유닛(303)의 출력 결과에 영향을 미친다.
각 제2 AND 게이트 유닛(304)은 하나의 제1 디코딩 신호 및 제1 AND 게이트 유닛(302)의 출력단 및 NOR 게이트 유닛(303)의 출력단에 연결되어, 각 제2 AND 게이트 유닛(304)의 출력단이 상기 바이트 중의 각 비트의 데이터의 영향을 받도록 하며, 즉 제2 AND 게이트 유닛(304)의 출력단을 통해 상기 바이트의 대응되는 각 비트의 데이터에 오류가 있는지 여부를 알 수 있다.
예를 들어, 상기 바이트에 1비트의 오류가 있는 데이터가 있고 오류가 있는 데이터가 제1 비트에 위치하면, 제1 비트에 대응되는 제1 디코딩 신호는 표기된 디코딩 신호로서 정의되고, 따라서 상기 표기된 디코딩 신호가 수신된 제2 AND 게이트 유닛(304)의 출력 결과는 예상에 부합되지 않으며 다른 제2 AND 게이트 유닛(304)의 출력 결과와 상이하여, 제1 비트의 데이터가 오류가 있는 데이터로 역방향으로 추론된다. 상기 바이트 중의 데이터가 모두 정확한 데이터이면 모든 제2 AND 게이트 유닛(304)의 출력 결과는 모두 동일하고 예상에 부합됨으로써 오류가 있는 데이터가 상기 바이트 내에 존재하지 않는 것으로 역방향으로 추론된다.
이해할 수 있는 것은, 본 발명의 일부 실시예에서, 저장 시스템(101)은 저장 칩을 포함하고, M개의 디코딩 유닛(31)은 저장 칩 내에 집적될 수 있다.
본 발명의 실시예에서 제공되는 오류 정정 시스템(1)에서, 각 바이트에 대응되는 디코딩 유닛(31)의 회로는 동일한 회로로 설치될 수 있지만, 상이한 디코딩 유닛(31) 중 각 입력단에 연결되는 제1 연산 코드 및 제2 연산 코드가 상이하므로 오류 정정 시스템 중 모든 디코딩 유닛의 라인 및 면적을 절약하는데 유리하며, 또한 동시에 모든 바이트에 대해 디코딩 처리를 수행하여 오류 검출 및 오류 정정 중 적어도 하나를 수행할 수 있으므로, 오류 정정 시스템의 오류 검출의 오류 정정 속도를 향상시킬 수 있다.
아래에 저장 시스템의 작동 원리를 결합하여 오류 정정 시스템에 대해 추가로 설명한다.
본 발명의 실시예에서, 저장 시스템(101)은 DDR4(Double Data Rate4), LPDDR4(Low Power DDR4), DDR5 또는 LPDDR5와 같이 DRAM일 수 있고; 저장 시스템(101)은 NAND, NOR, FeRAM(Ferroelectric Random Access Memory), PcRAM(Phase change Random Access Memory)과 같은 비휘발성 메모리와 같이 다른 유형의 저장 시스템일 수 있다.
상기 저장 시스템(101)의 경우, 데이터를 상이한 바이트로 나눌 수 있으며, 일반적으로 바이트는 데이터 처리의 기본 단위이다. 바이트를 단위로 정보를 저장하고 해석하며, 하나의 바이트가 8개의 이진 비트로 구성된다고 규정하면, 즉 하나의 바이트는 8개의 비트와 같고, 8비트 중 각 비트에는 대응하는 비트가 있으며, 즉 1Byte=8bit이다. 이에 기반하여, 본 발명의 실시예에서, N은 8이고 각 바이트 중의 비트를 최대화하는데, 이는 비교 시스템(20)에 필요한 회로의 이용률을 향상시키는데 유리하다. 이해할 수 있는 것은, 다른 실시예에서 N은 다른 적절한 양의 정수일 수도 있다.
저장 시스템(101)이 단일 판독 및 기록 동작 기간에 전송한 데이터가 128비트(즉 128bit)인 것을 예로 들면, M은 16이고 N은 8이다. 설명해야 할 것은, 다른 실시예에서 저장 시스템이 판독 및 기록 동작 기간에 전송한 데이터 비트 수가 상이한 것에 따라 M도 다른 적절한 양의 정수일 수 있으며, M*N와 판독 및 기록 동작 기간에 전송한 데이터의 비트 수가 같은 것을 만족하면 된다.
도 4는 본 발명의 실시예에서 제공되는 복수의 데이터의 분류 모식도 및 제1 체크 코드와 제2 체크 코드와의 관계 모식도이고, N개의 데이터 중 각 데이터의 비트는 상이하다. 본 발명의 실시예에서, 도 4에 도시된 바와 같이, 각 바이트의 경우, N개의 데이터는 자연수의 오름차순에 따른 제0으로부터 제7까지의 비트를 가지며; 모든 바이트의 경우, M개의 바이트를 제0으로부터 자연수의 오름차순에 따라 제15까지의 16개의 바이트로 나눈다. 또한, 상이한 바이트의 경우, 바이트 내에 있는 N개의 데이터는 모두 제0으로부터 제7까지의 오름차순의 8개의 비트를 갖는다. 설명해야 할 것은, 위치의 제한으로 인해, 도 4에서 실제로 동일한 행이어야 하는 테이블을 실제로 하나의 완전한 테이블인 3개의 테이블로 분할한다. 도시의 편의를 위해, 도 5는 바이트0에 대응되는 제1 체크 코드의 확대 모식도를 도시한다.
도 6은 본 발명의 실시예에서 제공되는 오류 정정 시스템의 구조 모식도2이다.
도 6을 참조하면, 오류 정정 시스템(1)은 판독 동작 기간 및 기록 동작 기간의 인코딩 단계에서, 모두 각각의 바이트 중의 약간의 데이터에 기반하여 X개의 제1 체크 코드를 생성하고, 동일한 제1 체크 코드에 대응되는 약간의 데이터의 비트는 상이한 바이트에서 동일하며, 모두 약간의 바이트 중의 모든 데이터에 기반하여 Y개의 제2 체크 코드를 생성하도록 구성되는 인코딩 모듈(102)을 더 포함하되, 여기서 X개의 제1 체크 코드는 각 바이트 중의 N개의 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되고, Y개의 제2 체크 코드는 M개의 바이트에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되며, X 및 Y는 모두 양의 자연수이다.
제1 체크 코드는 각 바이트 중의 N개의 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되고, 제2 체크 코드는 M개의 바이트에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되며, 이러한 오류 검출 및 오류 정정의 인코딩 방식은 ECC를 구현할 수 있을 뿐만 아니라, 더 적은 하드웨어 회로를 사용하여 ECC를 구현할 수도 있으므로, 저장 시스템의 전력 소모를 줄이고 ECC의 속도 및 결과를 최적화하는데 유리하다.
유의해야 할 것은, 본 발명의 실시예에서 제1 체크 코드는 각 바이트 중의 N개의 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되고, 제2 체크 코드는 M개의 바이트에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되며, 모든 제1 체크 코드 및 제2 체크 코드는 M개의 바이트의 모든 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 공통으로 사용되는 것으로 이해되어야 하며, 제2 체크 코드는 오류가 발생한 데이터가 M개의 바이트 중 어느 바이트에 위치하는지 결정하고, 제1 체크 코드는 오류가 발생한 데이터가 상기 바이트 중 어느 비트에 위치하는지 결정한다.
본 발명의 실시예에서, 인코딩 모듈(102)은 패리티 체크(Parity Check) 원리를 사용하여 제1 체크 코드 및 제2 체크 코드를 생성하며, 대응하게 제1 체크 코드 및 제2 체크 코드는 모두 패리티 체크 코드이다.
본 발명의 실시예에서, 인코딩 모듈(102)은, 기록 동작 기간에, 기록된 복수의 데이터에 기반하여 X개의 제1 체크 코드 및 Y개의 제2 체크 코드를 획득하도록 구성되는 제1 인코딩 유닛(112); 및 판독 동작 기간에, 판독할 복수의 데이터에 기반하여 X개의 제1 업데이트 체크 코드 및 Y개의 제2 업데이트 체크 코드를 획득하도록 구성되는 제2 인코딩 유닛(122) - 제1 업데이트 체크 코드의 획득 방법은 제1 체크 코드의 획득 방법과 동일하고, 제2 업데이트 체크 코드의 획득 방법은 제2 체크 코드의 획득 방법과 동일함 - 을 포함하고; 여기서 제1 연산 코드는 제1 체크 코드 및 제1 업데이트 체크 코드에 기반하여 획득되며, 제2 연산 코드는 제2 체크 코드 및 제2 업데이트 체크 코드에 기반하여 획득된다.
X개의 제1 체크 코드는 X비트의 제1 이진수를 구성하고; 여기서 2X≥N이며 각 제1 체크 코드는 모든 바이트 중의 약간의 데이터로 제1 인코딩 연산을 수행하여 획득되고, 각 제1 체크 코드에 대응되는 약간의 데이터는 바이트 중 상이한 비트 조합에 대응한다. 다시 말해서, 각 제1 체크 코드는 각 바이트에서 복수의 비트의 데이터를 선택하여 제1 인코딩 연산을 수행하여 획득되고, 동일한 제1 체크 코드의 경우, 모든 바이트에서 선택된 비트 조합은 동일하며, 상이한 제1 체크 코드의 경우, N개의 데이터에서 선택된 비트 조합은 상이하다.
본 발명의 실시예에서, 상이한 제1 체크 코드는 모든 바이트 중 상이한 데이터를 기반으로 제1 인코딩 연산을 수행하여 획득되며, 상이한 제1 체크 코드의 경우, 제1 체크 코드의 결과에 영향을 미치는 비트가 상이하도록 한다. 동시에, 2X≥N이므로, 각 비트에서 선택되어 제1 인코딩 연산을 수행하여 얻은 제1 체크 코드가 완전히 동일하지 않도록 함으로써, 분석을 통해 어느 비트에 대응되는 데이터에 오류가 발생하였는지 알 수 있도록 한다.
본 발명의 실시예에서, X는 3이고, 상이한 비트의 데이터의 오류가 표시될 수 있도록 만족시킬 뿐만 아니라, 제1 인코딩 유닛(112)의 하드웨어 회로의 복잡성을 감소시킬 수도 있다.
본 발명의 일부 실시예에서, 3개의 제1 체크 코드는 비트가 낮은데로부터 높은데로의 순서로 제0 위치의 제1 체크 코드, 제1 위치의 제1 체크 코드 및 제2 위치의 제1 체크 코드를 포함하고, N개의 데이터는 제0으로부터 자연수의 오름차순으로 제N-1까지의 비트를 가지며, 예를 들어, 제0 비트의 경우, 어느 하나의 제1 체크 코드에 대응되는 제1 인코딩 연산에 참여하지 않았고; 제1 비트의 경우, 제0 위치의 제1 체크 코드에 대응되는 제1 인코딩 연산에 참여하였으며; 제2 비트의 경우, 제1 위치의 제1 체크 코드에 대응되는 제1 인코딩 연산에 참여하였고; 제3 비트의 경우, 제0 위치 및 제1 위치의 제1 체크 코드에 대응되는 제1 인코딩 연산에 참여하였으며; 제4 비트의 경우, 제2 위치의 제1 체크 코드에 대응되는 제1 인코딩 연산에 참여하였고; 제5 비트의 경우, 제0 위치 및 제2 위치의 제1 체크 코드에 대응되는 제1 인코딩 연산에 참여하였으며; 제6 비트의 경우, 제1 및 제2 위치의 제1 체크 코드에 대응되는 제1 인코딩 연산에 참여하였고; 제7 비트의 경우, 제0, 제1 및 제2 위치의 제1 체크 코드에 대응되는 제1 인코딩 연산에 참여하였다. 이해해야 할 것은, 당업자는 요구에 따라 제1 체크 코드의 개수 및 다른 인코딩 연산 관계를 설정할 수 있으며, 각 비트에서 선택되어 제1 인코딩 연산을 수행하여 얻은 제1 체크 코드가 완전히 동일하지 않은 것을 만족하면 된다.
본 발명의 실시예에서, 제1 인코딩 연산은 배타적 논리합(XOR)이고; 대응하게 제1 인코딩 유닛(112)은 X비트의 제1 이진수에서 최하위 비트의 제1 체크 코드가 모든 바이트 중 제1, 제3, 제5 및 제7 비트의 데이터의 배타적 논리합이고, 최상위 비트의 제1 체크 코드가 모든 바이트 중 제4, 제5, 제6 및 제7 비트의 데이터의 배타적 논리합이며, 중간 비트의 제1 체크 코드가 모든 바이트 중 제2, 제3, 제6 및 제7 비트의 데이터의 배타적 논리합이 되도록 구성된다.
설명해야 할 것은, 다른 실시예에서 제1 인코딩 연산은 배타적 부정 논리합(XNOR)일 수도 있으며; 대응하게 제1 인코딩 유닛은 X비트 이진수에서 최하위 비트의 제1 체크 코드가 모든 바이트 중 제1, 제3, 제5 및 제7 비트의 데이터의 배타적 부정 논리합이고, 최상위 비트의 제1 체크 코드가 모든 바이트 중 제4, 제5, 제6 및 제7 비트의 데이터의 배타적 부정 논리합이며, 중간 비트의 제1 체크 코드가 모든 바이트 중 제2, 제3, 제6 및 제7 비트의 데이터의 배타적 부정 논리합이 되도록 구성된다.
이하 도 4 및 도 5를 결합하여 제1 체크 코드의 생성 원리에 대해 설명한다.
도 4 및 도 5에 도시된 바와 같이, “×”는 현재 해당 행에 참여한 인코딩 연산을 나타내고, 즉 배타적 부정 논리합 또는 배타적 논리합의 수행을 나타내며; 128비트 데이터는 제0에서 제15까지 총 16개의 바이트로 나누어져 있고, 각 바이트는 8개의 비트가 있다. p10, p11 및 p12는 3개의 제1 체크 코드를 나타내고; p13, p14, p15, p16 및 p17은 5개의 제2 체크 코드를 나타내며; pc0 내지 pc7은 인코딩 연산을 수행할 때 p10 내지 p17에 대응되게 사용한 8개의 연산식을 나타낸다. 각 행에서, 모든 “×”로 표기된 위치는 해당 행에 대응되는 데이터가 해당 연산식에서 배타적 논리합 또는 배타적 부정 논리합에 참여해야 함을 나타낸다. 제1 체크 코드 및 제2 체크 코드는 pb에 대응된다.
기록 동작 기간의 인코딩 단계에서 제1 인코딩 연산 또는 제2 인코딩 연산을 수행할 때, 8개의 pc0 내지 pc7을 사용하여 제1 인코딩 연산 또는 제2 인코딩 연산을 수행하고, 연산 결과는 각각 p10 내지 p17에 저장되며, p10 내지 p17은 제1 인코딩 연산 또는 제2 인코딩 연산에 참여하지 않고; 디코딩 단계에서 각 행에 대응되는 연산식은 변하지 않으며, 저장된 p10 내지 p17은 연산에 참여해야 하므로, 도 2의 테이블에서 p10 내지 p17에는 “×”가 대응되게 표기되어 있고, 이에 관하여 후속에서 상세하게 설명할 것이다.
본 발명의 실시예에서, 기록 동작 기간의 인코딩 단계에서, 각각의 바이트의 경우, 해당 바이트 중의 제1, 3, 5, 7 위치의 데이터에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행한 다음, 16개의 바이트의 모든 배타적 논리합 결과 또는 배타적 부정 논리합 결과에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행하며, 즉 pc0 연산식이고, 연산 결과를 p10에 제공한다. 각각의 바이트의 경우, 해당 바이트 중의 제2, 3, 6, 7 위치의 데이터에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행한 다음, 16개의 바이트의 모든 배타적 논리합 결과 또는 배타적 부정 논리합 결과에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행하며, 즉 pc1 연산식이고, 연산 결과를 p11에 제공한다. 각각의 바이트의 경우, 해당 바이트 중의 제4, 5, 6, 7 위치의 데이터에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행한 다음, 16개의 바이트의 모든 배타적 논리합 결과 또는 배타적 부정 논리합 결과에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행하며, 즉 pc2 연산식이고, 연산 결과를 p12에 제공한다.
p10, p11 및 p12는 제1 이진수를 구성하고, p10은 최하위이며 p12는 최상위이다. 메모리에 있는 복수의 데이터 중 하나의 비트 데이터에만 오류가 발생한 전제 하에서 다음을 발견하기 어렵지 않다.
즉 제0 비트의 데이터에 오류가 발생하면 제0 비트가 pc0, pc3 및 pc3의 3개의 연산식에 참여하지 않으므로 제1 체크 코드 p10, p11 및 p12는 영향을 받지 않는다.
제1 비트의 데이터에 오류가 발생하면 제1 비트가 pc0의 연산식에는 참여하지만 pc1 및 pc2의 2개의 연산식에 참여하지 않으므로 제1 체크 코드 p10은 영향을 받지만 제1 체크 코드 p11 및 p12는 영향을 받지 않는다.
제2 비트의 데이터에 오류가 발생하면 제2 비트가 pc1의 연산식에 참여하므로 제1 체크 코드 p10 및 p12는 영향을 받지 않고, 제1 체크 코드 p11은 영향을 받는다.
제3 비트의 데이터에 오류가 발생하면 제3 비트가 pc0 및 pc1의 2개의 연산식에 참여하므로 제1 체크 코드 p10 및 p11은 모두 영향을 받고, 제1 체크 코드 p12는 영향을 받지 않는다.
이와 같이 유추하여, 제7 비트의 데이터에 오류가 발생하면 제7 비트가 pc0, pc1 및 pc2의 3개의 연산식에 참여하므로 제1 체크 코드 p10, p11 및 p12는 모두 영향을 받는다.
유의해야 할 것은, 여기서 특정 데이터에 오류가 발생한 후 특정 제1 체크 코드가 영향을 받는다는 것은, 특정 데이터에 오류가 발생한 후 제1 인코딩 연산을 다시 수행하여 얻은 상기 특정 제1 체크 코드가 데이터에 오류가 발생하기 이전에 형성된 상기 제1 체크 코드와 상이하다는 것을 의미한다.
이해할 수 있는 것은, 각 연산식의 경우 상이한 바이트에서 제1 인코딩 연산에 참여한 비트는 동일하므로, 제1 체크 코드를 통해 어느 비트의 데이터에 오류가 발생하였는지 알 수 있지만, 어느 바이트 중 대응하는 비트의 데이터에 오류가 발생하였는지 검출할 수 없다. 따라서, 제2 체크 코드를 통해 어느 바이트 중의 대응하는 비트의 데이터에 오류가 발생하였는지 알아야 한다.
Y개의 제2 체크 코드는 Y 비트의 제2 이진수를 구성하고, 여기서 2Y≥M이며 각 제2 체크 코드는 약간의 바이트로 제2 인코딩 연산을 수행하여 획득된다.
2Y≥M이므로 각 바이트가 제2 인코딩 연산에 참여하여 얻은 제2 체크 코드가 완전히 동일한 것이 아닌 것을 보장한다. 본 발명의 실시예에서, 상이한 제2 체크 코드는 상이한 약간의 바이트를 기반으로 제2 인코딩 연산을 수행하여 얻은 것으로, 상이한 제2 체크 코드의 경우, 제2 체크 코드의 결과에 영향을 미치는 바이트가 상이하도록 하며, 따라서 어느 바이트 중의 데이터에 오류가 발생하였는지 종합적으로 분석하는데 편이하다. 재결합은 바이트 중 어느 비트에 오류가 발생하였는지 결정하여 최종적으로 어느 바이트 중의 어느 비트의 데이터에 오류가 발생하였는지 판단하는 것이다. 유의해야 할 것은, 여기서의 제2 체크 코드의 결과에 영향을 미치는 중 “영향”의 의미는 앞서 언급된 “영향”의 의미와 동일하다.
본 발명의 실시예에서, Y는 5이고, 상이한 바이트의 데이터의 오류가 표시될 수 있도록 만족시킬 뿐만 아니라, 제1 인코딩 유닛(112)의 하드웨어 회로의 복잡성을 감소시킬 수도 있다. 제2 인코딩 연산은 배타적 논리합일 수 있고, 대응하게 제1 인코딩 유닛(112)은, 선택된 2개의 바이트의 모든 데이터에 대해 배타적 논리합을 수행하고, 약간의 제1 연산 결과를 저장하도록 구성되는 제1 레벨의 연산 유닛 - 각 제1 연산 결과는 선택된 2개의 바이트의 배타적 논리합 결과임 - ; 및 적어도 2개의 제1 연산 결과에 대해 배타적 논리합을 수행하고, 제2 체크 코드를 생성하며, 상이한 인코딩 요구에 기반하여 Y개의 제2 체크 코드를 생성하도록 구성되는 제2 레벨의 연산 유닛을 포함하도록 구성된다. 제1 인코딩 유닛(112)의 특별한 설계에 의해, 제2 레벨의 연산 유닛은 제1 레벨의 연산 유닛의 제1 연산 결과를 재사용할 수 있어, 제1 인코딩 유닛(112)이 더 적은 하드웨어 회로에 의해 구현될 수 있도록 함으로써, 저장 시스템의 전력 소모를 줄인다.
다른 실시예에서 제1 인코딩 연산은 배타적 부정 논리합일 수도 있고, 대응하게, 제1 인코딩 유닛은, 선택된 2개의 바이트의 모든 데이터에 대해 배타적 부정 논리합을 수행하고, 약간의 제1 연산 결과를 저장하도록 구성되는 제1 레벨의 연산 유닛 - 각 제1 연산 결과는 선택된 2개의 바이트의 배타적 부정 논리합 결과임 - ; 및 적어도 2개의 제1 연산 결과에 대해 배타적 부정 논리합을 수행하고, 상기 제2 체크 코드를 생성하며, 상이한 인코딩 요구에 기반하여 Y개의 제2 체크 코드를 생성하도록 구성되는 제2 레벨의 연산 유닛을 포함하도록 구성된다.
본 발명의 실시예에서, 도 4에 도시된 바와 같이, 기록 동작 기간의 인코딩 단계에서, 각각의 바이트의 경우 해당 바이트 중의 모든 8개의 비트의 데이터에 대해 배타적 논리합을 수행하여 해당 바이트의 배타적 논리합 결과를 획득한 다음, 총 16개의 바이트의 16개의 배타적 논리합 결과를 pc3 내지 pc7의 7개의 연산식에 따라 제2 인코딩 연산을 수행하며, 즉 각 행의 테이블에 “×”로 표기된 데이터는 모두 연산에 참여하여, 대응되는 제2 체크 코드 pc13 내지 pc17을 획득한다. 이해할 수 있는 것은, 인코딩 단계에서, 제2 체크 코드 pc13 내지 pc17은 인코딩 연산에 참여하지 않고, 후속의 디코딩 단계(또는 디코딩 단계)에서 제2 체크 코드 pc13 내지 pc17은 연산에 참여해야 하므로, 도 4 중 제2 체크 코드 pc13 내지 pc17은 대응되게 “×”로 표기되며, 이에 관하여 후속에서 설명할 것이며 여기서 더 이상 반복 서술하지 않는다.
본 발명의 실시예에서, M개의 바이트를 자연수 오름차순으로 제0에서 제15까지의 바이트로 나누고; Y개의 제2 체크 코드를 자연수 오름차순으로 제3개의 제2 체크 코드에서 제7개의 제2 체크 코드까지로 나누며; 5개의 제2 체크 코드의 획득 방식은 각각 다음과 같다.
제3개의 제2 체크 코드(도 4 중의 p13에 대응됨)는 제0, 제2, 제3, 제4, 제5, 제6 및 제8개의 바이트의 모든 데이터의 배타적 논리합 또는 배타적 부정 논리합이고; 제4개의 제2 체크 코드(도 4 중의 p14에 대응됨)는 제0, 제1, 제4, 제5, 제7, 제9, 제10 및 제12개의 바이트의 모든 데이터의 배타적 논리합 또는 배타적 부정 논리합이며; 제5개의 제2 체크 코드(도 4 중의 p15에 대응됨)는 제1, 제2, 제4, 제6, 제9, 제11, 제13 및 제14개의 바이트의 모든 데이터의 배타적 논리합 또는 배타적 부정 논리합이고; 제6개의 제2 체크 코드(도 4 중의 p16에 대응됨)는 제3, 제5, 제6, 제7, 제10, 제11, 제14 및 제15개의 바이트의 모든 데이터의 배타적 논리합 또는 배타적 부정 논리합이며; 제7개의 제2 체크 코드(도 4 중의 p17에 대응됨)는 제8, 제9, 제10, 제11, 제12, 제13 및 제15개의 바이트의 모든 데이터의 배타적 논리합 또는 배타적 부정 논리합이다.
설명해야 할 것은, 각 제2 체크 코드는 모두 배타적 논리합 연산에 의해 획득되거나; 각 제2 체크 코드는 모두 배타적 부정 논리합 연산에 의해 획득된다.
도 6을 참조하면, 제1 인코딩 유닛(112)에서 대응하는 제2 체크 코드를 획득하도록 구성되는 회로는, 바이트0 및 바이트4의 배타적 논리합 결과에 대해 배타적 논리합을 수행하여 결과 0_4를 획득하고; 바이트2 및 바이트6의 배타적 논리합 결과에 대해 배타적 논리합을 수행하여 결과 2_6를 획득하며; 바이트3 및 바이트5의 배타적 논리합 결과에 대해 배타적 논리합을 수행하여 결과 3_5를 획득하고; 바이트1 및 바이트5의 배타적 논리합 결과에 대해 배타적 논리합을 수행하여 결과 1_5를 획득하며; 바이트1 및 바이트4의 배타적 논리합 결과에 대해 배타적 논리합을 수행하여 결과 1_4를 획득하도록 설계된다.
도 7에 도시된 바와 같이, 도 7은 모든 바이트에 대해 제2 인코딩 연산을 수행하는 원리 모식도를 도시하고, 바이트0에서 바이트7까지에 비해, 동일한 회로 세트를 사용하여 바이트8에서 바이트15까지의 연산을 완료할 수 있고, 즉 입력만 변경하면 바이트8에서 바이트15까지에 대해 동일한 연산을 수행하여 결과 9_13, 결과 10_12, 결과 11_15, 결과 10_14, 결과 11_14를 획득할 수 있는 것을 발견하기에 어렵지 않다. 이 밖에, 이러한 동일한 회로를 사용한 연산을 제외하고, 또한 바이트6 및 바이트7에 대해 배타적 논리합을 수행하여 결과 6_7을 획득하며, 바이트7 및 바이트9의 배타적 논리합 결과에 대해 배타적 논리합을 수행하여 결과 7_9를 획득해야 한다.
pc3 내지 pc7의 연산식 요구에 따라 배타적 논리합을 수행한다. 예를 들어 연산식 pc3에 따라 결과 0_4, 결과 2_6, 결과 3_5 및 바이트8의 배타적 논리합 결과에 대해 배타적 논리합을 수행하여 제2 체크 코드 p13을 획득하고; 연산식 pc4에 따라 결과 0_4, 결과 1_5, 결과 7_9 및 결과 10_12에 대해 배타적 논리합을 수행하여 제2 체크 코드 p14를 획득하며; 제2 체크 코드 p15, p16 및 p17의 획득 방식에 관하여 더 이상 일일이 구체적으로 설명하지 않는다. 이해할 수 있는 것은, 결과 0_4, 결과 2_6 등은 모두 반복 사용되어 회로 리소스를 절약할 수 있다.
이 밖에, 본 발명의 실시예에서, 제1 인코딩 유닛(112)은 또한, 각 바이트의 경우 제2 인코딩 연산의 횟수가 a이고 a가 (Y-1)/2≤a≤(Y+1)/2를 만족하며 a가 양의 정수이도록 구성될 수 있다. 이러한 설정을 통해 후속의 디코딩 단계를 수행할 때 필요한 디코딩 회로에서, 회로의 라인 및 면적은 감소되며 디코딩 속도를 향상시키는데 유리할 수도 있다.
전술한 분석으로부터 알 수 있듯이, 기록 동작 기간에 제1 인코딩 유닛(112)(도 6을 참조)을 이용하여 제1 인코딩 연산을 수행하여 제1 체크 코드를 획득하고, 제1 인코딩 유닛(112)을 이용하여 제2 인코딩 연산을 수행하여 제2 체크 코드를 획득한다. 제1 업데이트 체크 코드의 획득 방법은 제1 체크 코드의 획득 방법과 동일하고, 제2 업데이트 체크 코드의 획득 방법은 제2 체크 코드의 획득 방법과 동일하므로, 여기서 더 이상 제2 인코딩 유닛(122)에 대해 반복 서술하지 않는다.
본 발명의 실시예에서, 판독 동작 기간에 제2 인코딩 유닛(122)(도 6을 참조)을 이용하여 제1 인코딩 연산을 수행하여 제1 업데이트 체크 코드를 획득하고, 제2 인코딩 유닛(122)을 이용하여 제2 인코딩 연산을 수행하여 제2 업데이트 체크 코드를 획득한다. 대응하게, 제1 인코딩 유닛(112) 및 제2 인코딩 유닛(122)은 동일한 인코딩 유닛일 수 있다.
제1 연산 코드는 제1 체크 코드 및 제1 업데이트 체크 코드에 기반하여 획득되고, 제2 연산 코드는 제2 체크 코드 및 제2 업데이트 체크 코드에 기반하여 획득된다. 본 발명의 실시예에서, 제1 체크 코드 및 제1 업데이트 체크 코드의 비교에 기반하여 제1 연산 코드를 생성하고, 제2 체크 코드 및 제2 업데이트 체크 코드의 비교에 기반하여 제2 연산 코드를 생성한다.
대응하게, 오류 정정 시스템은 제1 체크 코드 및 제1 업데이트 체크 코드에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행하여 X개의 제1 연산 코드를 획득하고, 제2 체크 코드 및 제2 업데이트 체크 코드에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행하여 Y개의 제2 연산 코드를 획득하도록 구성되는 비교 모듈(103)(도 6을 참조)을 더 포함한다.
본 발명의 실시예에서, 도 4를 참조하고 전술한 설명을 결합하여 제1 체크 코드 및 제2 체크 코드의 생성 원리에 대해 설명한다. 제1 연산 코드 p20의 경우, pc0 연산식을 이용하여 수신된 각 바이트 중의 상이한 비트의 데이터 및 제1 체크 코드 p10에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행하여 제1 연산 코드 p20을 획득하고; pc1 연산식을 이용하여 수신된 각 바이트 중의 상이한 비트의 데이터 및 제1 체크 코드 p11에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행하여 제1 연산 코드 p21을 획득하며; pc2 연산식을 이용하여 수신된 각 바이트 중의 상이한 비트의 데이터 및 제1 체크 코드 p12에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행하여 제1 연산 코드 p22를 획득한다. 제1 연산 코드 및 제2 연산 코드는 도 2에서 PB에 대응된다.
마찬가지로, 제2 체크 코드 및 제2 연산 코드의 경우, 디코딩 단계의 인코딩 연산에서 전술한 인코딩 단계의 인코딩 연산의 기초상에서, 제2 체크 코드 p13, p14, p15, p16 또는 p17에 대해 각각 배타적 논리합을 수행하여 대응되는 제2 연산 코드 p23, p24, p25, p26 또는 p27을 획득해야 한다.
p20, p21 및 p22는 제3 이진수를 구성하고, p20은 최하위이며 p22는 최상위이다. 메모리에 있는 복수의 데이터 중 하나의 비트 데이터에만 오류가 발생한 전제 하에서, 제3 인코딩 연산이 배타적 논리합이면(다른 실시예에서 배타적 부정 논리합일 수도 있음) 다음을 발견하기 어렵지 않다.
제0 비트의 데이터에 오류가 발생하면 제0 비트가 pc0, pc3 및 pc3의 3개의 연산식에 참여하지 않으므로 제1 연산 코드 p20, p21 및 p22는 영향을 받지 않고, 3개의 제1 연산 코드가 모두 0이면 제3 이진수000에 대응되는 10진수는 0이며, 따라서 제0 비트의 데이터에 오류가 발생한 것이 검출된다.
제1 비트의 데이터에 오류가 발생하면 제1 비트가 pc0의 연산식에 참여하지만 pc1 및 pc2의 2개의 연산식에는 참여하지 않으므로 제1 연산 코드 p20은 영향을 받으며 1이고, 제1 연산 코드 p21 및 p22는 영향을 받지 않으며 0이므로, 제3 이진수는 001이며 대응되는 10진수는 1이고, 따라서 제1 비트의 데이터에 오류가 발생한 것이 검출된다.
제2 비트의 데이터에 오류가 발생하면 제2 비트가 pc1의 연산식에 참여하므로 제1 연산 코드 p20은 0이고, 제1 연산 코드 p21은 1이며, p12는 0이므로, 제3 이진수는 010이며 대응되는 10진수는 2이고, 따라서 제2 비트의 데이터에 오류가 발생한 것이 검출된다.
제3 비트의 데이터에 오류가 발생하면 제3 비트가 pc0 및 pc1의 2개의 연산식에 참여하므로 제1 연산 코드 p20 및 p21은 모두 1이고, p12는 0이므로, 제3 이진수는 011이며 대응되는 10진수는 3이고, 따라서 제3 비트의 데이터에 오류가 발생한 것이 검출된다.
이와 같이 유추하여, 제7 비트의 데이터에 오류가 발생하면 제7 비트가 pc0, pc1 및 pc2의 3개의 연산식에 참여하므로 제1 연산 코드 p20, p21 및 p22는 모두 1이므로, 제3 이진수는 111이며 대응되는 10진수는 7이고, 따라서 제7 비트의 데이터에 오류가 발생한 것이 검출된다.
본 발명의 실시예에서, 비교 모듈(103)(도 6을 참조)은, X개의 제1 비교 회로(미도시) - 각 제1 비교 회로는 하나의 제1 체크 코드 및 대응하는 제1 업데이트 체크 코드를 수신하고, 배타적 논리합 또는 배타적 부정 논리합을 수행하여 하나의 제1 연산 코드를 획득하도록 구성됨 - ; 및 Y개의 제2 비교 회로(미도시) - 각 제2 비교 회로는 하나의 제2 체크 코드 및 대응하는 제2 업데이트 체크 코드를 수신하고, 배타적 논리합 또는 배타적 부정 논리합을 수행하여 하나의 제2 연산 코드를 획득하도록 구성됨 - 를 포함한다.
도 8은 본 발명의 실시예에서 제공되는 오류 정정 시스템 중 제1 비교 회로 또는 제2 비교 회로의 기능 블록도이고, 도 9는 본 발명의 실시예에서 제공되는 오류 정정 시스템 중 제1 비교 회로 또는 제2 비교 회로의 회로 구조 모식도이다.
본 발명의 실시예에서, 도 8을 참조하면, 제1 비교 회로 또는 제2 비교 회로는, 전원 신호(Vcc) 및 접지 신호(Vss)에 연결되고 제1 신호(B) 및 제2 신호(BN)에 기반하여 전원 신호(Vcc) 또는 접지 신호(Vss)를 출력하도록 제어하는 공유 모듈 - 제1 신호(B)는 제2 신호(BN)와 반전됨 - ; 공유 모듈에 연결되고, 제3 신호(A) 및 제4 신호(AN)를 수신하도록 구성되는 제1 논리 유닛(23) - 제3 신호(A)는 제4 신호(AN)와 반전되고, 제1 연산 신호(Y)를 출력하며, 제1 연산 신호(Y)는 제1 신호(B)와 제3 신호(A)의 배타적 논리합임 - ; 및 공유 모듈에 연결되고, 제3 신호(A) 및 제4 신호(AN)를 수신하며 제2 연산 신호(YN)를 출력하도록 구성되는 제2 논리 유닛(24) - 제2 연산 신호(YN)는 제1 신호(B)와 제3 신호(A)의 배타적 부정 논리합임 - 을 포함한다. 여기서, 제1 비교 회로의 경우, 제1 체크 코드는 제1 신호로 사용되고 제1 업데이트 체크 코드는 제3 신호로 사용되며; 제2 비교 회로의 경우, 제2 체크 코드는 제1 신호로 사용되고 제2 업데이트 체크 코드는 제3 신호로 사용된다.
본 발명의 실시예에서, 도 8을 참조하면, 공유 모듈은, 전원 신호(Vcc)에 연결되고, 제1 신호(B) 및 제2 신호(BN)에 기반하여 전원 신호(Vcc)를 출력하도록 제어하는 제1 공유 유닛(21); 및 접지 신호(Vss)에 연결되고, 제1 신호(B) 및 제2 신호(BN)에 기반하여 접지 신호(Vss)를 출력하도록 제어하는 제2 공유 유닛(22)을 포함하며; 여기서 제1 논리 유닛(23)은 상기 제1 공유 유닛(21)과 상기 제2 공유 유닛(22) 사이에 연결되고, 제2 논리 유닛(24)은 제1 공유 유닛(21)과 제2 공유 유닛(22) 사이에 연결된다.
본 발명의 실시예에서, 도 9를 참조하면, 제1 공유 유닛(21)(도 8을 참조)은, 게이트가 제1 신호(B)를 수신하고 소스가 전원 신호(Vcc)에 연결되는 제0 PMOS(P-channel Metal Oxide Semiconductor) 트랜지스터(MP0); 및 게이트가 제2 신호(BN)를 수신하고 소스가 전원 신호(Vcc)에 연결되는 제7 PMOS 트랜지스터(MP7)를 포함한다. 제1 신호(B)가 하이 레벨이고 제2 신호(BN)가 로우 레벨일 경우, 제0 PMOS 트랜지스터(MP0)는 차단되고 제7 PMOS 트랜지스터(MP7)는 도통되며; 제1 신호(B)가 로우 레벨이고 제2 신호(BN)가 하이 레벨일 경우, 제0 PMOS 트랜지스터(MP0)는 도통되고 제7 PMOS 트랜지스터(MP7)는 차단된다.
제2 공유 유닛(22)(도 8을 참조)은, 게이트가 제1 신호(B)를 수신하고 소스가 접지 신호(Vss)에 연결되는 제0 NMOS(N-channel Metal Oxide Semiconductor) 트랜지스터(MN0); 및 게이트가 제2 신호(BN)를 수신하고 소스가 접지 신호(Vss)에 연결되는 제7 NMOS 트랜지스터(MN7)를 포함한다. 제1 신호(B)가 하이 레벨이고 제2 신호(BN)가 로우 레벨일 경우, 제0 NMOS 트랜지스터(MN0)는 도통되고 제7 NMOS 트랜지스터(MN7)는 차단되며; 제1 신호(B)가 로우 레벨이고 제2 신호(BN)가 하이 레벨일 경우, 제0 NMOS 트랜지스터(MN0)는 차단되고 제7 NMOS 트랜지스터(MN7)는 도통된다.
본 발명의 실시예에서, 제1 논리 유닛(23)(도 8을 참조)은, 게이트가 제4 신호(AN)를 수신하고 소스가 제0 PMOS 트랜지스터(MP0)의 드레인에 연결되는 제1 PMOS 트랜지스터(MP1); 게이트가 제3 신호(A)를 수신하고, 드레인이 제1 PMOS 트랜지스터(MP1)의 드레인에 연결되며, 소스가 제0 NMOS 트랜지스터(MN0)의 드레인에 연결되는 제1 NMOS 트랜지스터(MN1); 게이트가 제3 신호(A)를 수신하고 소스가 제7 PMOS 트랜지스터(MP7)의 드레인에 연결되는 제4 PMOS 트랜지스터(MP4); 및 게이트가 제4 신호(AN)를 수신하고, 드레인이 제4 PMOS 트랜지스터(MP4)의 드레인에 연결되며, 소스가 제7 NMOS 트랜지스터(MN7)의 드레인에 연결되는 제4 NMOS 트랜지스터(MN4)를 포함한다.
제2 논리 유닛(24)(도 8을 참조)은, 게이트가 제3 신호(A)를 수신하고 소스가 제0 PMOS 트랜지스터(MP0)의 드레인에 연결되는 제2 PMOS 트랜지스터(MP2); 게이트가 제4 신호(AN)를 수신하고, 드레인이 상기 제2 PMOS 트랜지스터의 드레인에 연결되며, 소스가 제2 PMOS 트랜지스터(MP2)의 드레인에 연결되는 제2 NMOS 트랜지스터(MN2); 게이트가 제4 신호(AN)를 수신하고 소스가 제7 PMOS 트랜지스터(MP7)의 드레인에 연결되는 제5 PMOS 트랜지스터(MP5); 및 게이트가 제3 신호(A)를 수신하고, 드레인이 제5 PMOS 트랜지스터(MP5)의 드레인에 연결되며, 소스가 제7 NMOS 트랜지스터(MN7)의 드레인에 연결되는 제5 NMOS 트랜지스터(MN5)를 포함한다.
이 밖에, 제1 PMOS 트랜지스터(MP1)의 드레인은 제4 PMOS 트랜지스터(MP4)의 드레인에 연결되고, 제1 연산 신호(Y)를 출력하며; 제2 PMOS 트랜지스터(MP2)의 드레인은 제5 PMOS 트랜지스터(MP5)의 드레인에 연결되고, 제2 연산 신호(YN)를 출력한다.
배타적 논리합 논리를 구현하도록 구성되는 제1 논리 유닛(23) 및 배타적 부정 논리합 논리를 구현하도록 구성되는 제2 논리 유닛(24)은 동일한 공유 모듈에 연결되므로 공유 모듈의 회로 구조가 차지하는 면적을 줄일 수 있어 제1 논리 유닛(23) 및 제2 논리 유닛(24)에 대응되는 회로 면적을 더 크게 설정하는데 편이해질 수 있음으로써, 제1 논리 유닛(23) 및 제2 논리 유닛(24)이 갖는 구동 기능을 향상시키고, 나아가 비교 회로의 배타적 부정 논리합 연산 및 배타적 논리합 연산의 연산 속도를 향상시키며, 나아가 오류 정정 시스템의 오류 검출 및 오류 정정 중 적어도 하나 속도를 향상시키는데 유리하다.
아래에 상기 언급된 오류 정정 시스템을 결합하여 제1 체크 코드, 제2 체크 코드, 제1 연산 코드 및 제2 연산 코드를 생성하는 디코딩 유닛(31)에 대해 추가로 설명한다. 도 10은 본 발명의 실시예에서 제공되는 디코딩 유닛의 바이트에 대응되는 구조 모식도이고, 도 11은 도 10 중 바이트5에 대응되는 디코딩 유닛의 확대 구조 모식도이다.
도 10 및 도 11을 참조하면, 본 발명의 실시예에서, X는 3이고 N은 8이며; 대응하게, 디코더(301)는 3개의 입력단 및 8개의 출력단을 가지고 제2 AND 게이트 유닛(304)의 수는 8이다. 본 발명의 실시예에서, 디코더(301)는 38디코더이고, 3개의 입력단은 각각 3개의 제1 연산 코드를 수신하며, 8개의 출력단은 8개의 제1 디코딩 신호를 출력하고, 각 제1 디코딩 신호는 각각 동일한 바이트 중 8개의 비트의 데이터의 상황을 특성화한다.
도 10에서 p20, p21 및 p22로 제1 연산 코드를 표기하고, p23, p24, p25, p26 및 p27로 제2 연산 코드를 표기한다. 본 발명의 실시예에서, 각 디코딩 유닛(31)은 X개의 제1 연산 코드 및 Y개의 제2 연산 코드에 대해 디코딩 처리를 수행한다. 다시 말해서, 디코딩 유닛(31)의 수는 바이트의 수와 동일하다.
설명해야 할 것은, 도 11은 단지 하나의 제1 디코딩 신호와 하나의 제2 AND 게이트 유닛(304)의 연결 관계를 도시한다.
본 발명의 실시예에서, X는 3이고 N은 8이며, 디코더(301)는 38디코더이고; 상기 디코더(301)는 3개의 입력단 및 8개의 출력단을 가지며; 3개의 입력단은 각각 3개의 제1 연산 코드를 수신하고, 8개의 출력단은 8개의 제1 디코딩 신호를 출력하며, 각 제1 디코딩 신호는 각각 동일한 바이트 중 8개의 비트의 데이터의 상황을 특성화한다.
본 발명의 실시예에서, 제1 연산 코드 p20, p21 및 p22는 0 또는 1이고, 출력단은 0 내지 7로 표기한다. 제0 비트에 오류가 발생하면 제0 비트는 제1 연산 코드의 인코딩 연산에 참여하지 않으므로, p20, p21 및 p22는 모두 0이고, 대응하는 “0” 출력단은 1이며 나머지 출력단은 모두 0이고; 제1 비트에 오류가 발생하면 p20은 1이고 p21 및 p22는 0이며, 대응하는 “1” 출력단은 1이며 나머지 출력단은 모두 0이고; 이와 같이 유추하여, 제7 비트에 오류가 발생하면 p20, p21 및 p22는 모두 1이며, 대응하는 “7” 출력단은 1이고 나머지 출력단은 모두 0이다.
설명해야 할 것은, 다른 실시예에서 제1 체크 코드 및 각 바이트 중 비트의 수가 상이함에 따라, 디코더의 입력단의 수 및 출력단의 수를 합리적으로 설정할 수도 있다.
제1 AND 게이트 유닛(302)의 특성은, 입력단이 모두 1이면 출력단은 1이고, 입력단 중 하나 이상이 0이면 출력단은 0인 것이다. 본 발명의 실시예에서, 제1 AND 게이트 유닛(302)은 3개의 입력단을 가지고; 제1 AND 게이트 유닛(302)은 또한, 선택된 연산 코드의 수가 2이면 제1 AND 게이트 유닛(302)의 하나의 입력단은 전원(VDD)에 연결되도록 구성된다.
NOR 게이트 유닛(303)의 특성은, 입력단이 모두 0이면 출력단은 1이고, 입력단 중 하나 이상이 1이면 출력단은 0인 것이다. 본 발명의 실시예에서, NOR 게이트 유닛은 3개의 입력단을 가지며; NOR 게이트 유닛(303)은 또한, 비선택된 연산 코드의 수가 2이면 NOR 게이트 유닛(303)의 하나의 입력단은 접지(Vss)되도록 구성된다.
본 발명의 실시예에서, 선택된 연산 코드는, 해당 바이트의 경우 이에 대응되는 상기 제2 체크 코드가 비교된 후 획득된 제2 연산 코드에 대응하고; 비선택된 연산 코드는, 해당 바이트의 경우 이에 대응되는 제2 체크 코드를 제외한 나머지 제2 체크 코드가 비교된 후 획득된 제2 연산 코드에 대응한다.
예를 들어, 바이트0의 경우, 제2 연산 코드 p23 및 p24는, 바이트0에 대응되는 제2 체크 코드 p13 및 p14에 대해 비교를 수행한 후 획득된 제2 연산 코드이고, 따라서 제2 연산 코드 p23 및 p24는 제1 AND 게이트 유닛(302)의 입력단에 입력되며, 나머지 제2 연산 코드 p25, p26 및 p27은 NOR 게이트 유닛(303)의 입력단에 입력되고; 바이트1의 경우, 제2 연산 코드 p24 및 p25는, 바이트1에 대응되는 제2 체크 코드 p14 및 p15에 대해 비교를 수행한 후 획득된 제2 연산 코드이고, 따라서 제2 연산 코드 p24 및 p25는 제1 AND 게이트 유닛(302)의 입력단에 입력되며, 나머지 제2 연산 코드 p23, p26 및 p27은 NOR 게이트 유닛(303)의 입력단에 입력되고; 바이트4의 경우, 제2 연산 코드 p23, p24 및 p25는 제1 AND 게이트 유닛(302)의 입력단에 입력되며, 제2 연산 코드 p26 및 p27은 NOR 게이트 유닛(303)의 입력단에 입력된다. 다른 바이트의 경우에 관하여 더 이상 일일이 예를 들지 않는다.
제2 AND 게이트 유닛(304)의 수는 동일한 바이트 중의 비트의 수와 동일하다. 본 발명의 실시예에서, N은 8이고, 대응되게 8개의 제2 AND 게이트 유닛(304)을 가지며, 8개의 제2 AND 게이트 유닛(304)의 출력에 따라 상기 바이트에 오류가 있는 데이터가 있는지 여부와, 어느 비트에 오류가 발생하였는지 판단한다.
본 발명의 실시예에서, 각 바이트의 경우 디코딩 유닛(31)의 회로는 입력단의 접선이 상이할 뿐 모두 동일하며, 각 바이트에 대응되는 제1 AND 게이트 유닛(302) 및 NOR 게이트 유닛(303)의 입력단의 접선은 도 4 중의 pc3 내지 pc7의 5개의 연산식에 의해 결정되고, 각각의 바이트의 경우, 이에 대응되는 상기 제2 체크 코드가 비교된 후 획득된 제2 연산 코드는 제1 AND 게이트 유닛(302)의 입력단에 연결되고, 이에 대응되는 제2 체크 코드를 제외한 나머지 제2 체크 코드가 비교된 후 획득된 제2 연산 코드는 NOR 게이트 유닛(303)의 입력단에 연결되며; 이 밖에, 사용되지 않은 제1 AND 게이트 유닛(302)의 입력단은 전원에 연결되고, 사용되지 않은 NOR 게이트 유닛(303)의 입력단은 접지되며; 제1 연산 코드는 디코더(301)의 입력단에 연결된다. 따라서 디코더(301)는 8개의 배선만 사용하여 입력단을 연결하고, 각 배선은 하나의 제1 연산 코드 또는 하나의 제2 연산 코드를 전송하여 라인 및 면적을 절약하고 동시에 디코딩 속도를 향상시키는데 유리하다.
디코딩 유닛(31)의 용이한 이해를 위해, 바이트5에 대응되는 디코딩 유닛을 예로 들며, 아래에 디코딩 유닛(31)의 작동 원리를 결합하여 디코딩 유닛(31)에 대해 보다 상세하게 설명한다.
8개의 제2 AND 게이트 유닛(304)의 출력이 모두 0이면 상기 바이트 중 모든 데이터에 오류가 발생하지 않았음을 나타낸다.
8개의 제2 AND 게이트 유닛(304)의 출력에 하나의 1이 있으면 상기 바이트 중 하나의 비트의 데이터에 오류가 발생하였음을 나타낸다. 본 발명의 실시예에서, 상기 바이트의 데이터에 오류가 발생하면, 제2 연산 코드 p23, p24 및 p26은 영향을 받고 모두 1이며 제1 AND 게이트 유닛(302)의 출력은 1이고, 비선택된 연산 코드 p25 및 p27은 영향을 받지 않으며 모두 0이고 NOR 게이트 유닛(303)의 출력은 1이며; 이 경우, N개의 제2 AND 게이트 유닛(304) 중 어느 제1 디코딩 신호에 대응되는 제2 AND 게이트 유닛(304)의 출력이 1이면, 해당 제1 디코딩 신호에 대응되는 비트의 데이터에 오류가 발생하였다.
이해할 수 있는 것은, 본 발명의 실시예에서, 제1 디코딩 신호가 1이고 대응되는 비트의 데이터에 오류가 발생한 것을 예로 들면, 제1 디코딩 신호는 0이고 대응되는 비트의 데이터에 오류가 발생하지 않았다. 다른 실시예에서, 제1 디코딩 신호가 0이고 대응되는 비트의 데이터에 오류가 발생하며, 제1 디코딩 신호가 1이고 대응되는 비트의 데이터에 오류가 발생하지 않은 것으로 설정될 수도 있으며, 대응하게 다른 부분은 당업자가 요구에 따라 자체로 설계할 수 있는바, 예를 들어 제1 디코딩 신호를 NOR 게이트 회로에 연결하고 출력하는 등이다.
유의해야 할 것은, M개의 바이트 중 모든 데이터에 모두 오류가 발생하지 않고, X개의 제1 체크 코드 중 1비트만 오류가 발생하면, 제1 연산 코드 중 하나가 1이고 나아가 디코더(301) 중 하나의 출력이 1이지만, 제2 Y개의 제2 체크 코드에 오류가 발생하지 않으면 모든 제2 연산 코드는 모두 0이고 나아가 제1 AND 게이트 유닛(302)의 출력은 0이며, 제2 AND 게이트 유닛(304)의 출력도 모두 0인데, 이는 M개의 바이트 중 모든 데이터에 오류가 발생하지 않은 것을 나타낸다. M개의 바이트 중 모든 데이터에 모두 오류가 발생하지 않고, Y개의 제2 체크 코드 중 1비트만 오류가 발생하면, 제1 연산 코드는 모두 0이고 나아가 디코더(301)의 0출력단은 1이지만, 나머지 Y-1개의 제2 체크 코드에 오류가 발생하지 않으면 이에 대응되는 Y-1개의 제2 연산 코드는 0이고 제1 AND 게이트 유닛(302)의 출력은 0이며, 나아가 제2 AND 게이트 유닛(304)의 출력도 모두 0인데, 이는 M개의 바이트 중 모든 데이터에 오류가 발생하지 않은 것을 나타낸다.
본 발명의 실시예는 구조 성능이 우수한 오류 정정 시스템을 제공하며, 오류 정정 시스템에 대한 특별한 설계를 통해 ECC를 구현하여 1비트의 오류를 검출하고 정정할 수 있으며, 하드웨어 회로를 줄일 수도 있음으로써 오류 정정 시스템의 전력 소모를 줄이고 인코딩 속도 및 디코딩 속도를 향상시킨다. 이 밖에, 제1 체크 코드 및 제2 체크 코드에 대한 특별한 설계를 통해 모든 데이터 조합에 대한 인코딩 시간의 차이를 작게 하고, 모든 데이터 조합에 대한 디코딩 시간의 차이도 작게 함으로써 제어 회로에 대한 요구를 감소시킨다.
당업자는 상기 각 실시형태는 본 발명을 구현하는 구체적인 실시예이고, 실제 응용에서 본 발명의 사상 및 범위를 벗어나지 않고 형태 및 세부적으로 이에 대한 다양한 변경이 이루어질 수 있음을 이해할 수 있을 것이다. 임의의 당업자는 본 발명의 사상 및 범위 내에서 모두 각각의 변경 및 수정을 진행할 수 있으므로 본 발명의 보호 범위는 청구 범위에 의해 한정된 범위를 기준으로 해야 한다.
본 발명의 실시예는 저장 시스템으로 구성되고, 저장 시스템은 판독 및 기록 동작 기간에 복수의 데이터를 기록 또는 판독하며, 상기 복수의 데이터는 M개의 바이트로 나뉘어지고 각 바이트는 N개의 상이한 비트의 데이터를 가지며, 디코딩 단계에서 저장 시스템에 기반하여 X개의 제1 연산 코드 및 Y개의 제2 연산 코드를 생성하고, 제1 연산 코드는 N개의 데이터에 대해 오류 검출 및 오류 정정 중 적어도 하나를 수행하도록 구성되고, 제2 연산 코드는 M개의 바이트에 대해 오류 검출 및 오류 정정 중 적어도 하나를 수행하도록 구성되는 오류 정정 시스템을 제공하며; 오류 정정 시스템은, M개의 디코딩 유닛을 포함하되, 각 디코딩 유닛은 하나의 바이트에 대응되고; 디코딩 유닛은, X개의 제1 연산 코드를 수신하고 N개의 제1 디코딩 신호를 출력하도록 구성되는 디코더 - 오류가 있는 데이터의 비트를 위치결정하도록 구성됨 - ; 오류가 있는 바이트의 위치를 결정하도록 구성되는 제1 AND 게이트 유닛 및 NOR 게이트 유닛; 및 N개의 제2 AND 게이트 유닛 - 각 제2 AND 게이트 유닛의 입력단은 대응하는 제1 AND 게이트 유닛의 출력단 및 NOR 게이트 유닛의 출력단에 연결되고, 상기 바이트에 오류가 있는지 여부를 획득하며 오류가 있는 데이터의 비트를 위치결정하도록 구성됨 - 을 포함한다.
본 발명의 실시예에서, 각 바이트에 대응되는 디코딩 유닛의 회로는 동일한 회로로 설치될 수 있지만, 상이한 디코딩 유닛 중 각 입력단에 연결되는 제1 연산 코드 및 제2 연산 코드가 상이하므로 오류 정정 시스템 중 모든 디코딩 유닛의 라인 및 면적을 절약하는데 유리하며, 또한 동시에 모든 바이트에 대해 디코딩 처리를 수행하여 오류 검출 및 오류 정정 중 적어도 하나를 수행할 수 있으므로, 오류 정정 시스템의 오류 검출의 오류 정정 속도를 향상시킬 수 있다.

Claims (15)

  1. 오류 정정 시스템으로서,
    저장 시스템에 적용되고, 상기 저장 시스템은 판독 및 기록 동작 기간에 복수의 데이터를 기록 또는 판독하며, 상기 복수의 데이터는 M개의 바이트로 나뉘어지고 각 상기 바이트는 N개의 상이한 비트의 데이터를 가지며; 상기 저장 시스템은 인코딩 단계 및 디코딩 단계를 가지고, 상기 디코딩 단계에서 상기 오류 정정 시스템은 상기 저장 시스템에 기반하여 X개의 제1 연산 코드 및 Y개의 제2 연산 코드를 생성하며, 상기 제1 연산 코드는 N개의 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되고, 상기 제2 연산 코드는 M개의 바이트에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되며; 상기 오류 정정 시스템은,
    M개의 디코딩 유닛을 포함하되, 각 상기 디코딩 유닛은 하나의 상기 바이트에 대응되고, X개의 상기 제1 연산 코드 및 Y개의 상기 제2 연산 코드에 대해 디코딩 처리를 수행하여 상기 바이트에 오류가 있는 데이터가 있는지 여부를 획득하며 오류가 있는 데이터의 비트를 위치결정하도록 구성되고; 상기 디코딩 유닛은,
    X개의 상기 제1 연산 코드를 수신하고 N개의 제1 디코딩 신호를 출력하도록 구성되는 디코더 - 각 상기 제1 디코딩 신호는 N개의 데이터의 1 비트에 대응되며, N은 X보다 큼 - ;
    Z개의 선택된 연산 코드를 수신하고 논리 AND 연산을 수행하도록 구성되는 제1 AND 게이트 유닛 - 상기 선택된 연산 코드는 Y개의 상기 제2 연산 코드 중 상기 바이트에 대응되는 상기 제2 연산 코드임 - ;
    (Y-Z)개의 비선택된 연산 코드를 수신하고 논리 NOR 연산을 수행하도록 구성되는 NOR 게이트 유닛 - 상기 비선택된 연산 코드는 상기 선택된 연산 코드를 제외한 상기 제2 연산 코드임 - ; 및
    N개의 제2 AND 게이트 유닛 - 각 상기 제2 AND 게이트 유닛의 입력단은 상기 제1 AND 게이트 유닛의 출력단, 상기 NOR 게이트 유닛의 출력단 및 하나의 상기 제1 디코딩 신호에 연결되고, 상기 N개의 제2 AND 게이트 유닛의 출력을 기반으로 상기 저장 시스템에 대해 오류 검출 및 오류 정정 중 적어도 하나를 수행함 - ;을 포함하며,
    상기 X, 상기 Y 및 상기 N은 모두 양의 자연수이고, 상기 Z는 (Y-1)/2 이상 및 (Y+1)/2 이하의 정수인 오류 정정 시스템.
  2. 제1항에 있어서,
    상기 X는 3이고, 상기 N은 8이며, 상기 디코더는 3개의 입력단 및 8개의 출력단을 가지고; 상기 제2 AND 게이트 유닛의 수는 8인 오류 정정 시스템.
  3. 제1항에 있어서,
    상기 Y는 5이고, 상기 제1 AND 게이트 유닛은 3개의 입력단을 가지며; 상기 제1 AND 게이트 유닛은 또한, 상기 선택된 연산 코드의 수가 2이면 상기 제1 AND 게이트 유닛의 하나의 입력단은 전원에 연결되도록 구성되는 오류 정정 시스템.
  4. 제1항 또는 제3항에 있어서,
    상기 Y는 5이고, 상기 NOR 게이트 유닛은 3개의 입력단을 가지며; 상기 NOR 게이트 유닛은 또한, 상기 비선택된 연산 코드의 수가 2이면 상기 NOR 게이트 유닛의 하나의 입력단은 접지되도록 구성되는 오류 정정 시스템.
  5. 제1항에 있어서,
    상기 오류 정정 시스템은, 판독 동작 기간 및 기록 동작 기간의 상기 인코딩 단계에서, 모두 각각의 상기 바이트 중의 약간의 데이터에 기반하여 X개의 제1 체크 코드를 생성하고, 동일한 상기 제1 체크 코드에 대응되는 상기 약간의 데이터의 비트는 상이한 상기 바이트에서 동일하며, 모두 약간의 상기 바이트 중의 모든 데이터에 기반하여 Y개의 제2 체크 코드를 생성하도록 구성되는 인코딩 모듈을 더 포함하되, X개의 상기 제1 체크 코드는 각 상기 바이트 중의 상기 N개의 데이터에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되고, Y개의 상기 제2 체크 코드는 M개의 상기 바이트에 대한 오류 검출 및 오류 정정 중 적어도 하나에 사용되며, 상기 X 및 상기 Y는 모두 양의 자연수인 오류 정정 시스템.
  6. 제5항에 있어서,
    상기 인코딩 모듈은,
    기록 동작 기간에, 기록된 복수의 데이터에 기반하여 X개의 상기 제1 체크 코드 및 Y개의 상기 제2 체크 코드를 획득하도록 구성되는 제1 인코딩 유닛; 및
    판독 동작 기간에, 판독할 복수의 데이터에 기반하여 X개의 제1 업데이트 체크 코드 및 Y개의 제2 업데이트 체크 코드를 획득하도록 구성되는 제2 인코딩 유닛 - 상기 제1 업데이트 체크 코드의 획득 방법은 상기 제1 체크 코드의 획득 방법과 동일하고, 상기 제2 업데이트 체크 코드의 획득 방법은 상기 제2 체크 코드의 획득 방법과 동일함 - 을 포함하고,
    상기 제1 연산 코드는 상기 제1 체크 코드 및 상기 제1 업데이트 체크 코드에 기반하여 획득되며, 상기 제2 연산 코드는 상기 제2 체크 코드 및 상기 제2 업데이트 체크 코드에 기반하여 획득되는 오류 정정 시스템.
  7. 제6항에 있어서,
    상기 제1 인코딩 유닛 및 상기 제2 인코딩 유닛은 동일한 인코딩 유닛인 오류 정정 시스템.
  8. 제6항에 있어서,
    상기 오류 정정 시스템은, 상기 제1 체크 코드 및 상기 제1 업데이트 체크 코드에 대해 배타적 논리합(XOR) 또는 배타적 부정 논리합(XNOR)을 수행하여 X개의 상기 제1 연산 코드를 획득하고, 상기 제2 체크 코드 및 상기 제2 업데이트 체크 코드에 대해 배타적 논리합 또는 배타적 부정 논리합을 수행하여 Y개의 상기 제2 연산 코드를 획득하도록 구성되는 비교 모듈을 더 포함하는 오류 정정 시스템.
  9. 제8항에 있어서,
    상기 비교 모듈은,
    X개의 제1 비교 회로 - 각 상기 제1 비교 회로는 하나의 상기 제1 체크 코드 및 대응하는 상기 제1 업데이트 체크 코드를 수신하고, 배타적 논리합 또는 배타적 부정 논리합을 수행하여 하나의 상기 제1 연산 코드를 획득하도록 구성됨 - ; 및
    Y개의 제2 비교 회로 - 각 상기 제2 비교 회로는 하나의 상기 제2 체크 코드 및 대응하는 상기 제2 업데이트 체크 코드를 수신하고, 배타적 논리합 또는 배타적 부정 논리합을 수행하여 하나의 상기 제2 연산 코드를 획득하도록 구성됨 - 를 포함하는 오류 정정 시스템.
  10. 제9항에 있어서,
    상기 제1 비교 회로 또는 상기 제2 비교 회로는,
    전원 신호 및 접지 신호에 연결되고, 제1 신호 및 제2 신호에 기반하여 상기 전원 신호 또는 상기 접지 신호를 출력하도록 제어하는 공유 모듈 - 상기 제1 신호는 상기 제2 신호와 반전됨 - ;
    상기 공유 모듈에 연결되고, 제3 신호 및 제4 신호를 수신하도록 구성되는 제1 논리 유닛 - 상기 제3 신호는 상기 제4 신호와 반전되고, 제1 연산 신호를 출력하며, 상기 제1 연산 신호는 상기 제1 신호와 상기 제3 신호의 배타적 논리합임 - ; 및
    상기 공유 모듈에 연결되고, 상기 제3 신호 및 상기 제4 신호를 수신하며 제2 연산 신호를 출력하도록 구성되는 제2 논리 유닛 - 상기 제2 연산 신호는 상기 제1 신호와 상기 제3 신호의 배타적 부정 논리합임 - 을 포함하며,
    상기 제1 비교 회로의 경우, 상기 제1 체크 코드는 상기 제1 신호로 사용되고 상기 제1 업데이트 체크 코드는 상기 제3 신호로 사용되며; 상기 제2 비교 회로의 경우, 상기 제2 체크 코드는 상기 제1 신호로 사용되고 상기 제2 업데이트 체크 코드는 상기 제3 신호로 사용되는 오류 정정 시스템.
  11. 제10항에 있어서,
    상기 공유 모듈은,
    상기 전원 신호에 연결되고, 상기 제1 신호 및 상기 제2 신호에 기반하여 상기 전원 신호를 출력하도록 제어하는 제1 공유 유닛; 및
    상기 접지 신호에 연결되고, 상기 제1 신호 및 상기 제2 신호에 기반하여 상기 접지 신호를 출력하도록 제어하는 제2 공유 유닛을 포함하며,
    상기 제1 논리 유닛은 상기 제1 공유 유닛과 상기 제2 공유 유닛 사이에 연결되고, 상기 제2 논리 유닛은 상기 제1 공유 유닛과 상기 제2 공유 유닛 사이에 연결되는 오류 정정 시스템.
  12. 제11항에 있어서,
    상기 제1 공유 유닛은,
    게이트가 상기 제1 신호를 수신하고 소스가 상기 전원 신호에 연결되는 제0 PMOS(P-channel Metal Oxide Semiconductor) 트랜지스터; 및 게이트가 상기 제2 신호를 수신하고 소스가 상기 전원 신호에 연결되는 제7 PMOS 트랜지스터를 포함하며,
    상기 제2 공유 유닛은,
    게이트가 상기 제1 신호를 수신하고 소스가 상기 접지 신호에 연결되는 제0 NMOS(N-channel Metal Oxide Semiconductor) 트랜지스터; 및 게이트가 상기 제2 신호를 수신하고 소스가 상기 접지 신호에 연결되는 제7 NMOS 트랜지스터를 포함하는 오류 정정 시스템.
  13. 제12항에 있어서,
    상기 제1 논리 유닛은,
    게이트가 상기 제4 신호를 수신하고 소스가 상기 제0 PMOS 트랜지스터의 드레인에 연결되는 제1 PMOS 트랜지스터;
    게이트가 상기 제3 신호를 수신하고, 드레인이 상기 제1 PMOS 트랜지스터의 드레인에 연결되며, 소스가 상기 제0 NMOS 트랜지스터의 드레인에 연결되는 제1 NMOS 트랜지스터;
    게이트가 상기 제3 신호를 수신하고 소스가 상기 제7 PMOS 트랜지스터의 드레인에 연결되는 제4 PMOS 트랜지스터; 및
    게이트가 상기 제4 신호를 수신하고, 드레인이 상기 제4 PMOS 트랜지스터의 드레인에 연결되며, 소스가 상기 제7 NMOS 트랜지스터의 드레인에 연결되는 제4 NMOS 트랜지스터를 포함하는 오류 정정 시스템.
  14. 제12항에 있어서,
    상기 제2 논리 유닛은,
    게이트가 상기 제3 신호를 수신하고 소스가 상기 제0 PMOS 트랜지스터의 드레인에 연결되는 제2 PMOS 트랜지스터;
    게이트가 상기 제4 신호를 수신하고, 드레인이 상기 제2 PMOS 트랜지스터의 드레인에 연결되며, 소스가 상기 제0 NMOS 트랜지스터의 드레인에 연결되는 제2 NMOS 트랜지스터;
    게이트가 상기 제4 신호를 수신하고 소스가 상기 제7 PMOS 트랜지스터의 드레인에 연결되는 제5 PMOS 트랜지스터; 및
    게이트가 상기 제3 신호를 수신하고, 드레인이 상기 제5 PMOS 트랜지스터의 드레인에 연결되며, 소스가 상기 제7 NMOS 트랜지스터의 드레인에 연결되는 제5 NMOS 트랜지스터를 포함하는 오류 정정 시스템.
  15. 제1항에 있어서,
    상기 저장 시스템은 저장 칩을 포함하고, M개의 상기 디코딩 유닛은 상기 저장 칩 내에 집적되는 오류 정정 시스템.
KR1020227021311A 2021-01-14 2021-08-09 오류 정정 시스템 KR20220104031A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202110049134.2 2021-01-14
CN202110049134.2A CN114765054B (zh) 2021-01-14 2021-01-14 纠错系统
PCT/CN2021/111492 WO2022151724A1 (zh) 2021-01-14 2021-08-09 纠错系统

Publications (1)

Publication Number Publication Date
KR20220104031A true KR20220104031A (ko) 2022-07-25

Family

ID=82321981

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227021311A KR20220104031A (ko) 2021-01-14 2021-08-09 오류 정정 시스템

Country Status (4)

Country Link
US (1) US11791009B2 (ko)
EP (1) EP4071762B1 (ko)
JP (1) JP7343709B2 (ko)
KR (1) KR20220104031A (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11990201B2 (en) 2021-01-14 2024-05-21 Changxin Memory Technologies, Inc. Storage system
CN114765056B (zh) * 2021-01-14 2024-07-12 长鑫存储技术有限公司 存储系统
US11599417B2 (en) * 2021-01-14 2023-03-07 Changxin Memory Technologies, Inc. Error correction system
EP4071762B1 (en) 2021-01-14 2023-07-05 Changxin Memory Technologies, Inc. Error correction system
JP2023512892A (ja) 2021-01-14 2023-03-30 チャンシン メモリー テクノロジーズ インコーポレイテッド 比較システム

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61277230A (ja) 1985-05-31 1986-12-08 Canon Inc 誤り検出訂正符号発生方式
US4736376A (en) * 1985-10-25 1988-04-05 Sequoia Systems, Inc. Self-checking error correcting encoder/decoder
US4749886A (en) 1986-10-09 1988-06-07 Intersil, Inc. Reduced parallel EXCLUSIVE or and EXCLUSIVE NOR gate
FR2714550B1 (fr) 1993-12-24 1996-02-02 Bull Sa Arbre de portes logiques OU-Exclusif et multiplieur de fréquence l'incorporant.
KR19980014906A (ko) 1996-08-17 1998-05-25 구자홍 누산기
US5859858A (en) 1996-10-25 1999-01-12 Intel Corporation Method and apparatus for correcting a multilevel cell memory by using error locating codes
US6891690B2 (en) 2002-11-20 2005-05-10 International Business Machines Corporation On-drive integrated sector format raid error correction code system and method
DE102004020030A1 (de) 2004-04-23 2005-11-24 Infineon Technologies Ag Testvorrichtung zum Testen einer integrierten Schaltung
JP4036338B2 (ja) * 2005-03-04 2008-01-23 国立大学法人東京工業大学 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US7653862B2 (en) 2005-06-15 2010-01-26 Hitachi Global Storage Technologies Netherlands B.V. Error detection and correction for encoded data
US7242219B1 (en) 2005-09-08 2007-07-10 Advanced Micro Devices, Inc. Circuit for parity tree structure
CN101183565B (zh) 2007-12-12 2011-02-16 深圳市硅格半导体有限公司 存储介质中数据校验方法
JP2010079485A (ja) * 2008-09-25 2010-04-08 Panasonic Corp 半導体記録装置
TWI381392B (zh) 2010-02-04 2013-01-01 Transcend Information Inc 雙層面記憶體錯誤修正方法以及相關的記憶體裝置
TWI456579B (zh) 2010-03-26 2014-10-11 Silicon Motion Inc 提昇錯誤更正能力之方法以及相關之記憶裝置及其控制器
JP2012022422A (ja) * 2010-07-13 2012-02-02 Panasonic Corp 半導体記録再生装置
CN102339641B (zh) 2010-07-23 2014-12-17 北京兆易创新科技股份有限公司 检错/纠错校验模块及该模块读写数据的方法
CN101980339A (zh) 2010-11-04 2011-02-23 浙江大学 一种用于dram缓存的纠错编码方法
CN102543209B (zh) 2010-12-31 2015-09-30 深圳市朗科科技股份有限公司 多通道闪存控制器的纠错装置、方法及多通道闪存控制器
JP2012252558A (ja) 2011-06-03 2012-12-20 Sony Corp 不揮発性メモリ、メモリコントローラ、不揮発性メモリのアクセス方法、およびプログラム
JP2013074560A (ja) 2011-09-29 2013-04-22 Elpida Memory Inc 論理回路及びデータ処理システム
CN102857217B (zh) 2012-09-11 2015-06-17 宁波大学 一种低功耗异或/同或门电路
CN103078629A (zh) 2012-12-27 2013-05-01 广州中大微电子有限公司 一种基于7管异或同或单元的全加器电路
CN108447516B (zh) 2013-08-23 2020-04-24 慧荣科技股份有限公司 存取快闪存储器中存储单元的方法以及使用该方法的装置
JP6212396B2 (ja) * 2014-01-08 2017-10-11 ルネサスエレクトロニクス株式会社 データ処理装置
US9754684B2 (en) 2014-11-06 2017-09-05 Samsung Electronics Co., Ltd. Completely utilizing hamming distance for SECDED based ECC DIMMs
US9985655B2 (en) 2015-09-01 2018-05-29 International Business Machines Corporation Generating ECC values for byte-write capable registers
CN105471425B (zh) 2015-12-08 2018-05-01 无锡芯响电子科技有限公司 一种可实现异或门或者同或门复用的电路
US9917675B2 (en) 2016-06-01 2018-03-13 Qualcomm Incorporated Enhanced polar code constructions by strategic placement of CRC bits
KR20190012566A (ko) 2017-07-27 2019-02-11 삼성전자주식회사 에러 정정 기능을 갖는 메모리 시스템, 메모리 모듈 및 메모리 컨트롤러의 동작 방법
CN108038023B (zh) 2017-12-26 2021-01-29 广东工业大学 一种多级闪存的信号处理方法、装置、设备及存储介质
CN109036493A (zh) 2018-06-11 2018-12-18 西北工业大学 一种具有检错纠错机制的NAND Flash控制器
CN110968450A (zh) 2018-09-30 2020-04-07 长鑫存储技术有限公司 数据存储方法及装置、存储介质、电子设备
CN111443887A (zh) 2020-03-26 2020-07-24 京东方科技集团股份有限公司 显示驱动芯片及其数据处理方法
US11990201B2 (en) 2021-01-14 2024-05-21 Changxin Memory Technologies, Inc. Storage system
EP4071762B1 (en) 2021-01-14 2023-07-05 Changxin Memory Technologies, Inc. Error correction system
JP2023512892A (ja) 2021-01-14 2023-03-30 チャンシン メモリー テクノロジーズ インコーポレイテッド 比較システム
US11599417B2 (en) 2021-01-14 2023-03-07 Changxin Memory Technologies, Inc. Error correction system

Also Published As

Publication number Publication date
EP4071762A4 (en) 2022-11-09
EP4071762B1 (en) 2023-07-05
JP7343709B2 (ja) 2023-09-12
US20220223221A1 (en) 2022-07-14
JP2023512895A (ja) 2023-03-30
US11791009B2 (en) 2023-10-17
EP4071762A1 (en) 2022-10-12

Similar Documents

Publication Publication Date Title
KR20220104031A (ko) 오류 정정 시스템
KR102673257B1 (ko) 비교 시스템
US11990201B2 (en) Storage system
US11599417B2 (en) Error correction system
JP2001358702A (ja) 誤り訂正符号の検査装置
JP7454676B2 (ja) 記憶システム
KR20100031403A (ko) 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리시스템 및 에러 정정 회로의 동작 방법
CN114765054B (zh) 纠错系统
US6360347B1 (en) Error correction method for a memory device
US20180315484A1 (en) A method for operating a semiconductor memory
US11928027B1 (en) System and method for error checking and correction with metadata storage in a memory controller
CN114765055B (zh) 纠错系统
WO2022151722A1 (zh) 存储系统
WO2022151723A1 (zh) 比较系统
EP1192544B1 (en) Error correction circuit and method for a memory device
JPH0855066A (ja) エラー訂正及び変換システム
CN112540866A (zh) 存储器装置及其数据存取方法
KR20080108869A (ko) 데이터 전송 시스템