KR20230153497A - 반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법 - Google Patents

반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법 Download PDF

Info

Publication number
KR20230153497A
KR20230153497A KR1020237036124A KR20237036124A KR20230153497A KR 20230153497 A KR20230153497 A KR 20230153497A KR 1020237036124 A KR1020237036124 A KR 1020237036124A KR 20237036124 A KR20237036124 A KR 20237036124A KR 20230153497 A KR20230153497 A KR 20230153497A
Authority
KR
South Korea
Prior art keywords
data
ecc
corrected
dbi
write
Prior art date
Application number
KR1020237036124A
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
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20230153497A publication Critical patent/KR20230153497A/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
    • 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
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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
    • G06F11/102Error in check bits
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • 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
    • 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/31Coding, 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 coding for error detection or correction and efficient use of the spectrum
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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/0409Online test
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법이 설명된다. 예시적인 장치는 제1 데이터 및 제1 데이터와 관련된 제1 ECC 데이터를 수신하도록 구성된 I/O 회로, 메모리 어레이 및 제어 회로를 포함한다. 제어 회로는 I/O 회로와 메모리 어레이 사이에 결합된다. 제어 회로는 제1 데이터 및 제1 ECC 데이터에 적어도 부분적으로 응답하여 정정된 제1 데이터 및 정정된 제1 ECC 데이터를 생성하기 위해 제1 ECC 디코딩을 실행하도록 구성된다. 제어 회로는 정정된 제1 데이터 및 정정된 제1 ECC 데이터 모두를 메모리 어레이에 저장하도록 추가로 구성된다.

Description

반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법{APPARATUSES AND METHODS FOR ERROR CORRECTION CODING AND DATA BUS INVERSION FOR SEMICONDUCTOR MEMORIES}
최근에 DRAM(Dynamic Random Access Memory)과 같은 반도체 디바이스의 용량이 크게 증가했으며 이에 따라 결함 비트 발생 수도 증가했다. 결함 비트 중, 결함 워드 라인 또는 결함 비트 라인으로 인한 것은 주로 중복 워드 라인 또는 중복 비트 라인으로 교체함으로써 구제된다. 그러나, 패키징 등의 이후에 발생하는 산발적인 결함 비트에 대해서는, 일부 경우에, 중복 워드 라인 또는 중복 비트 라인으로 교체하여 구제하기 어렵다. 이러한 산발적인 결함 비트에 대해서는 일부 경우에 중복 회로를 사용하여 교체를 수행하는 것이 아니라 오류 정정 기능을 사용하여 데이터를 구제하는 방법이 채택된다. 오류 정정은 반도체 디바이스 내부에서 사용될 수 있으며, 반도체 디바이스로/로부터 데이터를 전달하기 위해 외부적으로도 사용될 수 있다.
또한, 반도체 디바이스의 전력 소비를 감소시키고자 하는 요구가 있다. 사용된 접근법은 반도체 디바이스와 데이터를 통신할 때 데이터 버스 반전(DBI)을 포함하는 것이다. DBI를 포함하는 시스템에서, 반도체 디바이스로/로부터 전달되는 데이터는 신호 라인에서의 신호 전이의 수를 감소시키기 위해 DBI 인코딩될 수 있다. 특히, 전달될 데이터는 데이터를 전달하는 데 임계 수를 초과한 신호 라인 전이가 필요한지 여부를 결정하기 위해 이전에 전달된 데이터에 대해 평가된다. 평가에 따라, 전달할 데이터는 실제 데이터(반전되지 않음) 또는 반전된 데이터로 제공된다. DBI 인코딩은 데이터가 반전되었는지 여부를 나타내는 DBI 데이터를 생성하며, 데이터를 디코딩할 때 사용할 DBI 인코딩된 데이터와 함께 제공된다.
오류 정정 기능과 관련하여, 반도체 디바이스는 오류 정정 기능을 수행하기 위한 ECC 인코딩 및/또는 ECC 디코딩 회로를 포함한다. 오류 정정 기능을 수행할 때, 데이터의 인코딩 및 디코딩은 처리에 시간이 필요하므로 반도체 디바이스의 성능에 부정적인 영향을 미칠 수 있다.
DBI 동작을 또한 포함할 수 있는 반도체 디바이스에서 오류 정정 기능을 수행하는 대안적인 접근법을 갖는 것이 바람직할 수 있다.
오류 정정 코딩 및 데이터 버스 반전을 위한 장치 및 방법이 개시된다. 예시적인 장치는 제1 데이터 및 제1 데이터와 관련된 제1 ECC 데이터를 수신하도록 구성된 I/O 회로를 포함하고 메모리 어레이를 포함한다. 예시적인 장치는 I/O 회로와 메모리 어레이 사이에 결합된 제어 회로를 더 포함한다. 제어 회로는 제1 데이터 및 제1 ECC 데이터에 적어도 부분적으로 응답하여 정정된 제1 데이터 및 정정된 제1 ECC 데이터를 생성하기 위해 제1 ECC 디코딩을 실행하도록 구성된다. 제어 회로는 정정된 제1 데이터 및 정정된 제1 ECC 데이터 모두를 메모리 어레이에 저장하도록 추가로 구성된다.
다른 예시적인 장치는 I/O 회로, 메모리 어레이 및 제어 회로를 포함한다. I/O 회로는 제1 데이터, 제1 데이터와 관련된 데이터 버스 반전(DBI) 데이터, 제1 데이터와 관련된 제1 ECC 데이터 및 DBI 데이터와 관련된 제2 ECC 데이터를 수신하도록 구성된다. 제어 회로는 I/O 회로와 메모리 셀 어레이 사이에 결합되고, 제1 ECC 디코딩 회로, 제2 ECC 디코딩 회로 및 DBF 디코딩 회로를 포함한다. 제2 ECC 디코딩 회로는 DBI 데이터 및 제2 ECC 데이터에 적어도 부분적으로 응답하여 정정된 DBI 데이터를 생성하도록 구성된다. 제1 ECC 디코딩 회로 및 DBI 디코딩 회로는 제1 데이터, 제1 ECC 데이터 및 정정된 DBI 데이터에 적어도 부분적으로 응답하여 정정 및 DBI 디코딩된 제1 데이터 및 정정된 제1 ECC 데이터를 생성하도록 구성된다. 제어 회로는 정정 및 DBI 디코딩된 제1 데이터 및 정정된 제1 ECC 데이터 모두를 메모리 어레이에 저장하도록 구성된다.
다른 예시적인 장치는 기입 데이터 제어 회로 및 판독 데이터 제어 회로를 포함한다. 기입 데이터 제어 회로는 신호 버스로부터 기입 데이터 및 대응하는 ECC 데이터를 수신하고, 정정된 기입 데이터를 제공하기 위해 대응하는 ECC 데이터에 기초하여 기입 데이터를 정정하도록 구성된다. 기입 제어 회로는 대응하는 ECC 데이터에 기초하여 정정된 대응 ECC 데이터를 제공하도록 추가로 구성되고, 정정된 기입 데이터 및 정정된 대응 ECC 데이터는 메모리 어레이에 저장되도록 제공된다. 판독 데이터 제어 회로는 메모리 어레이로부터 판독 데이터 및 대응하는 ECC 데이터를 수신하고, 정정된 판독 데이터를 제공하기 위해 대응하는 ECC 데이터에 기초하여 판독 데이터를 정정하도록 구성된다. 판독 제어 회로는 대응하는 ECC 데이터에 기초하여 정정된 대응 ECC 데이터를 제공하도록 추가로 구성되고, 정정된 판독 데이터 및 정정된 대응 ECC 데이터는 신호 버스에 제공된다.
도 1은 본 개시내용의 일 실시예에 따른 시스템의 블록도이다.
도 2는 본 개시내용의 일 실시예에 따른 장치의 블록도이다.
도 3a는 본 개시내용의 실시예에 따른 ECC 제어 회로의 블록도이다.
도 3b는 본 개시내용의 실시예에 따른 기입 데이터 제어 회로의 블록도이다.
도 3c는 본 개시내용의 일 실시예에 따른 판독 데이터 제어 회로의 블록도이다.
도 3d는 본 개시내용의 실시예에 따른 컨트롤러와 메모리 사이의 오류 정정 코딩을 위한 흐름도이다.
도 4는 본 개시내용의 일 실시예에 따른 기입 데이터 제어 회로의 블록도이다.
도 5a는 본 개시내용의 실시예에 따른 판독 데이터 제어 회로의 블록도이다.
도 Sb는 본 개시내용의 실시예에 따른 컨트롤러와 메모리 사이의 오류 정정 코딩을 위한 흐름도이다.
도 6a는 본 개시내용의 실시예에 따른 기입 데이터 제어 회로의 블록도이다.
도 6b는 본 개시내용의 실시예에 따른 판독 데이터 제어 회로의 블록도이다.
도 7aa, 도 7ab 및 도 7ac 및 도 7b는 본 개시내용의 일 실시예에 따른 ECC 인코딩 및/또는 디코딩 동작을 수행하기 위한 결정 요인(예를 들어, H-매트릭스)의 도면이다.
도 8a는 본 개시내용의 실시예에 따른 기입 데이터 제어 회로의 블록도이다.
도 8b는 본 개시내용의 실시예에 따른 판독 데이터 제어 회로의 블록도이다.
도 9는 본 개시내용의 다양한 실시예에 따른 기입 데이터 제어 회로 및 판독 데이터 제어 회로에 대한 레이아웃 도면이다.
본 개시내용의 실시예에 대한 충분한 이해를 제공하기 위해 특정 세부 사항이 아래에 설명된다. 그러나, 본 개시내용의 실시예가 이러한 특정 세부 사항 없이 실시될 수 있다는 것이 본 기술 분야의 숙련자에게 명백할 것이다. 더욱이, 본 명세서에 설명된 개시내용의 특정 실시예는 본 개시내용의 범위를 이러한 특정 실시예로 제한하는 것으로 해석되어서는 안된다. 다른 경우에, 본 개시내용의 실시예를 불필요하게 모호하게 하는 것을 피하기 위해 잘 알려진 회로, 제어 신호, 타이밍 프로토콜 및 소프트웨어 동작은 상세히 도시되지 않는다. 추가적으로, "결합" 및 "결합된"과 같은 용어는 2개의 컴포넌트가 직접 또는 간접적으로 전기적으로 결합될 수 있음을 의미한다. 간접 결합은 2개의 컴포넌트가 하나 이상의 중간 컴포넌트를 통해 결합됨을 의미할 수 있다.
도 1은 컨트롤러(10) 및 메모리(110)를 포함하는 시스템(100)의 블록도이다. 컨트롤러(10)는 예를 들어 메모리 컨트롤러일 수 있다. 본 개시내용의 일부 실시예에서, 메모리(110)는 하나 이상의 동적 랜덤 액세스 메모리(DRAM) 디바이스를 포함한다. 이러한 실시예에서, DRAM 디바이스는 LPDDR(low power double data rate) 메모리 디바이스를 포함할 수 있다. 다른 실시예에서, 메모리 디바이스의 상이한 예가 포함될 수 있다.
컨트롤러(10)와 메모리(110)는 서로 데이터를 제공할 수 있으며, 예를 들어, 컨트롤러(10)는 기입 동작을 위해 메모리(110)에 기입 데이터를 제공하고, 메모리(110)는 판독 동작을 위해 판독 데이터를 컨트롤러(10)에 제공한다. 컨트롤러(10) 및 메모리(110)는 둘 사이에 제공되는 데이터에 대해 오류 정정 코딩(ECC)을 사용한다. 예를 들어, ECC 데이터는 기입 데이터와 함께 컨트롤러(10)에 의해 메모리(110)에 제공될 수 있고, ECC 데이터는 판독 데이터와 함께 메모리(110)에 의해 컨트롤러(10)에 제공될 수 있다. ECC 데이터는 메모리(110) 및/또는 컨트롤러(10)에 의해 기입 데이터 및/또는 판독 데이터의 임의의 오류를 정정하기 위해 사용될 수 있다. 이러한 방식으로, 메모리(110)와 컨트롤러(10) 사이의 통신 링크 상에서 전달되는 데이터의 정확성이 보장될 수 있다.
본 개시내용의 일부 실시예에서, 데이터 버스 반전(DBI)은 컨트롤러(MI)와 메모리(ISo) 사이에 제공되는 데이터에 사용될 수 있다. 이러한 실시예에서, DBI 데이터는 각각 기입 및 판독 데이터와 함께 컨트롤러(10)와 메모리(110) 사이에 제공된다. 추가적으로, DBI 동작을 포함하는 본 개시내용의 일부 실시예에서, DBI 데이터는 ECC 인코딩되고, 결과적으로, DBI 데이터에 대한 ECC 데이터가 또한 데이터 자체에 대한 ECC 데이터와 함께 제공된다. 데이터 및 DBI 데이터에 대한 ECC 데이터는 ICC 데이터 ECC(Data, DBI)에 포함될 수 있다.
도 1에 도시되어 있는 바와 같이, 컨트롤러(10)와 메모리(110) 사이에는 ECC(Data, DBI), Data 및 DBI 데이터가 제공된다. 도 i에 도시되지 않았지만, 컨트롤러(10)가 메모리(110)에 커맨드, 어드레스 및 클록을 추가로 제공한다는 것이 이해될 것이다. 또한, 일부 실시예에서 클록이 메모리(110)에 의해 컨트롤러(10)에 제공될 수 있다. 커맨드는 메모리(110)의 동작을 제어하기 위해 제공될 수 있고, 어드레스에는 메모리(110)에서 액세스될 메모리 위치를 식별하기 위한 메모리 액세스 커맨드(예를 들어, 판독 커맨드, 기입 커맨드 등)가 제공될 수 있다. 컨트롤러(10)에 의해 제공되는 클록은 신호 수신의 타이밍 및 메모리(110)의 다양한 동작을 위해 메모리(110)에 의해 사용될 수 있으며, 메모리(110)가 컨트롤러(10)에 클록을 제공하는 실시예에서, 클록은 메모리가 제공하는 판독 데이터의 수신의 타이밍을 위해 컨트롤러에 의해 사용될 수 있다. 컨트롤러(10)와 메모리(110) 사이에도 추가 및/또는 대안 신호가 제공될 수 있다.
도 2는 본 개시내용의 일 실시예에 따른 장치의 블록도이다. 장치는 반도체 디바이스(200)일 수 있으며, 그렇게 지칭될 것이다. 일부 실시예에서, 반도체 디바이스(200)는 예를 들어 단일 반도체 칩에 통합된 저전력 DDR(LPDDR) 메모리와 같은 DRAM 디바이스를 포함할 수 있지만, 이에 제한되지 않는다. 반도체 디바이스(200)는 본 개시내용의 일부 실시예에서 도 1의 메모리(110)에 포함될 수 있다.
반도체 디바이스(200)는 메모리 어레이(250)를 포함한다. 메모리 어레이(250)는 복수의 뱅크를 포함하는 것으로 도시되어 있다. 도 2의 실시예에서, 메모리 어레이(250)는 8개의 뱅크(BANK0-BANK7)를 포함하는 것으로 도시되어 있다. 각 뱅크는 복수의 워드 라인(WL), 복수의 비트 라인(BL, /BL), 및 복수의 워드 라인(WL)과 복수의 비트 라인(BL, /BL)의 교차점에 배열된 복수의 메모리 셀(MC)을 포함한다. 워드 라인(WL)의 선택은 행 디코더(240)에 의해 수행되고 비트 라인(BL 및 /BL)의 선택은 열 디코더(245)에 의해 수행된다. 도 2의 실시예에서, 행 디코더(240)는 각각의 뱅크에 대한 각각의 행 디코더를 포함하고, 열 디코더(245)는 각각의 뱅크에 대한 각각의 열 디코더를 포함한다. 비트 라인(BL 및 /BL)은 각각의 감지 증폭기(SAMP)에 결합된다. 비트 라인(BL 또는 /BL)으로부터의 판독 데이터는 감지 증폭기 SAMP에 의해 증폭되고, 상보적 로컬 데이터 라인(LIOT/B), 전달 게이트(TG) 및 상보적 주 데이터 라인(MIOT/B)을 통해 ECC 제어 회로(255)로 전달된다. ECO 제어 회로(255)는 각 뱅크에 대한 각각의 ECC 제어 회로를 포함한다.
아래에 더 상세히 설명된 바와 같이 메모리 셀 어레이(250)에서 판독 데이터를 판독할 때 대응하는 LCC 데이터도 동시에 판독하게 된다. 반대로, ECC 제어 회로(255)로부터 출력된 기입 데이터 및 대응하는 ECC 데이터는 상보적 주 데이터 라인(MIOT/B), 전달 게이트(TG) 및 상보적 로컬 데이터 라인(LIOT/B)을 통해 감지 증폭기(SAMP)로 전달되어 비트 라인(BL 또는 /BL)에 결합된 메모리 셀(MC)에 기입된다. 이하에서 더 상세히 설명되는 바와 같이, 기입 데이터가 메모리 어레이(250)에 기입될 때, 대응하는 ECC 데이터도 동시에 기입된다.
반도체 디바이스(200)는 커맨드 및 어드레스 및 CS 신호를 수신하기 위한 커맨드 및 어드레스 버스에 결합된 커맨드 및 어드레스 및 칩 선택(CA/CS) 단자, 클록(CK 및 /CK)을 수신하기 위한 클록 단자, 데이터 단자 및 전원 단자(YDD, VSS, VDDQ, 및 VSSQ)를 포함하는 복수의 외부 단자를 채용할 수 있다.
CA/CS 단자에는 메모리 어드레스가 공급될 수 있다. CA/CS 단자에 공급된 메모리 어드레스는 커맨드/어드레스 입력 회로(205)를 통해 어드레스 디코더(212)로 전달된다. 어드레스 디코더(212)는 어드레스를 수신하고 디코딩된 행 어드레스(XADD)를 행 디코더(240)에 공급하고 디코딩된 열 어드레스(YADD)를 열 디코더(245)에 공급한다. CA/CS 단자에는 커맨드가 공급될 수 있다. 커맨드는 커맨드/어드레스 입력 회로(205)를 통해 커맨드 디코더(215)에 내부 커맨드 신호로서 제공될 수 있다. 커맨드 디코더(215)는 동작을 수행하기 위한 다양한 내부 신호 및 커맨드를 생성하기 위해 내부 커맨드 신호를 디코딩하는 회로를 포함한다. 예를 들어, 커맨드 디코더(215)는 워드 라인을 선택하기 위한 행 커맨드 신호(ACT)와 비트 라인을 선택하기 위해 열 커맨드 신호(R/W)를 제공할 수 있다.
판독 커맨드가 수신되고, 판독 커맨드와 함께 행 어드레스와 열 어드레스가 적시에 공급되면, 판독 데이터와 대응하는 ICC 데이터는 행 어드레스와 열 어드레스로 지정된 메모리 어레이(250)의 메모리 셀로부터 판독된다. 판독 커맨드는 내부 커맨드를 제공하는 커맨드 디코더(215)에 의해 수신되어, 판독 데이터 및 메모리 어레이(250)로부터의 대응하는 ICC 데이터가 ECC 제어 회로(255)에 제공된다. ICC 제어 회로(255)는 ECC 디코딩을 실행하여 정정된 판독 데이터 및 정정된 대응 ECC 데이터를 생성한다. 예를 들어, 판독 데이터에 오류가 포함되면, 대응하는 ECC 데이터에 기초하여 ECC 제어 회로(255)에 의해 결정된 바에 따라, 판독 데이터가 정정된다. 정정된 판독 데이터 및 정정된 대응 ECC 데이터는 입력/출력 회로(260)를 통해 데이터 단자로부터 외부로 출력된다.
"정정된 데이터"는 일반적으로 대응하는 ECO 데이터를 기초로 ECC 디코딩 후에 생성된 데이터를 의미한다. 정정된 데이터는 필요한 경우 실제로 정정되었을 수 있는 데이터(예를 들어, 데이터의 하나 이상의 비트가 변경됨)뿐만 아니라 정정이 필요하지 않아 정정되지 않았을 수 있는 데이터를 포함한다. 예를 들어, ECC 디코딩 후에 제공되는 "정정된" 판독 데이터는 대응하는 ECC 데이터를 기초로 실제로 정정되었는지 여부에 무관하게 제공되는 판독 데이터를 지칭한다. 유사하게, ECC 디코딩 후에 제공되는 "정정된" ECC 데이터는 정정 여부에 무관하게 제공된 ECC 데이터를 지칭한다. 따라서, "정정된"이라는 용어는 실제로 정정된 데이터만을 의미하는 것이 아니라 보다 일반적으로 실제로 정정되었는지 여부에 무관하게 ECC 디코딩 후에 제공되는 데이터를 지칭한다. "정정된 데이터"라는 용어는 기입 데이터, DBI 데이터, ECC(DBI) 데이터 등에 적용될 수도 있다.
기입 커맨드가 수신되고 기입 커맨드로 행 어드레스와 열 어드레스가 적시에 공급되면, 데이터 단자에 공급된 기입 데이터 및 대응하는 ECC 데이터가 행 어드레스 및 열 어드레스로 지정된 메모리 어레이(250)의 메모리 셀에 기입된다. 기입 커맨드는 내부 커맨드를 제공하는 커맨드 디코더(215)에 의해 수신되어 기입 데이터와 대응하는 ECC가 입력/출력 회로(260)의 데이터 수신기에 의해 수신되고 입력/출력 회로(260)를 통해 ECC 제어 회로(255)에 공급된다. ECC 제어 회로(255)는 ECC 디코딩을 실행하여 정정된 기입 데이터 및 정정된 대응 ECC 데이터를 생성한다. 예를 들어, 기입 데이터에 오류가 포함되면, 대응하는 ECC 데이터에 기초하여 ECC 제어 회로(255)에 의해 결정된 바에 따라, 기입 데이터가 정정된다. 정정된 기입 데이터 및 정정된 대응 ECC 데이터는 ECC 제어 회로(255)에 의해 메모리 셀(MC)에 기입될 메모리 어레이(250)에 제공된다.
본 개시내용의 일부 실시예에서, 데이터 버스 반전(DBI) 동작이 반도체 디바이스(200)에 포함될 수 있다. 그러나, 반도체 디바이스(200)에 DBI 동작을 포함하는 것은 선택적이며, 본 개시내용의 일부 실시예는 DBI 동작을 포함하지 않는다. 추가적으로, 반도체 디바이스(200)에 의해 제공되는 판독 데이터 및/또는 반도체 디바이스(200)에 의해 수신된 기입 데이터에 대한 ECC 동작은 선택적이며, 본 개시내용의 일부 실시예는 ECC 동작을 포함하지 않는다.
ECC 및 DBI 동작을 포함하는 본 개시내용의 실시예에서, 판독 커맨드를 위한 판독 데이터를 제공하는 반도체 디바이스(200)와 관련하여, ECC 제어 회로(255)는 중간 판독 데이터 및 정정된 대응하는 ECC 데이터를 생성하기 위해 판독 데이터 및 대응하는 ECC 데이터에 대해 ECC 디코딩을 실행할 수 있다. ECC 제어 회로(255)는 정정된 판독 데이터 및 DBI 데이터를 제공하기 위해 중간 판독 데이터에 대해 DBI 인코딩을 실행하고, DBI ECC 데이터를 생성하기 위해 DBI 데이터에 대해 ECC 인코딩을 추가로 실행할 수 있다. 정정된 판독 데이터, 정정된 대응하는 ECC 데이터, DBI 데이터 및 DBI ECC 데이터는 입력/출력 회로(260)를 통해 외부로 출력된다.
기입 커맨드를 위한 반도체 디바이스(200)와 관련하여, 기입 데이터(DBI 인코딩됨), 대응하는 ECC 데이터, DBI 데이터 및 DBI ECC 데이터가 입력/출력 회로(260)에 의해 수신되어 ECC 제어 회로(255)에 제공된다. ECC 제어 회로(255)는 (DBI 인코딩된) 기입 데이터 및 대응하는 ECC 데이터에 대해 ECC 디코딩을 실행하여 중간 (DBI 인코딩된) 기입 데이터 및 정정된 대응 ECC 데이터를 생성할 수 있다. ECC 제어 회로(255)는 DBI 데이터 및 DBI ECC 데이터에 대해 ECC 디코딩을 실행하여 정정된 DBI 데이터를 생성하고, 정정된 DBI 데이터를 기초로 중간 (DBI 인코딩된) 기입 데이터에 대해 DBI 디코딩을 실행하여 정정된 기입 데이터를 생성할 수 있다. 정정된 기입 데이터 및 정정된 대응 ECC 데이터는 ECC 제어 회로(255)에 의해 메모리 셀(MC)에 기입될 메모리 어레이(250)에 제공된다.
ECC 제어 회로(255)에 의해 수행되는 오류 정정은 반도체 디바이스(200)로/로부터 외부적으로 제공되는 데이터, 예를 들어 컨트롤러와 반도체 디바이스(200) 사이에서 제공되는 데이터의 정확성을 유지하기 위해 사용될 수 있다. 본 개시내용의 일부 실시예에서, ECC 제어 회로(255)는 메모리 어레이(250)로부터 데이터를 판독 및/또는 메모리 어레이(250)로 데이터를 기입할 때 발생하는 데이터 오류를 정정하기 위해 오류 정정 인코딩/디코딩을 추가로 수행할 수 있다. 이러한 데이터 오류는 예를 들어 소프트 오류, 약한 메모리 셀 전하 보존력 등으로 인해 발생할 수 있다. 본 개시내용의 이러한 실시예는 예를 들어 메모리 뱅크 오류에 대한 ECC 인코딩/디코딩이 반도체 디바이스(200)와 컨트롤러 사이의 링크를 통해 발생하는 데이터 오류에 대한 ECC 인코딩/디코딩과 별도로(예를 들어, 직렬로) 수행되는 실시예뿐만 아니라, 메모리 뱅크 오류에 대한 ECC 인코딩/디코딩 및 링크를 통해 발생하는 데이터 오류에 대한 ECC 인코딩/디코딩이 조합되는 실시예를 포함할 수 있다.
클록 단자(CK 및 /CK)에는 입력 버퍼(220)에 제공되는 외부 클록이 공급된다. 외부 클록은 상보적일 수 있다. 클록 입력 버퍼(220)는 CK 및 /CK 클록에 기초하여 내부 클록 ICLK를 생성한다. ICLK 클록은 커맨드 디코더(215) 및 내부 클록 생성기(222)에 제공된다. 내부 클록 생성기(222)는 ICLK 클록에 기초하여 다양한 내부 클록 LCLK를 제공한다. LCLK 클록은 다양한 내부 회로의 동작의 타이밍을 위해 사용될 수 있다. 예를 들어, 클록은 데이터 및 대응하는 ECC 데이터를 제공 및 수신하고 DBI 동작을 포함하는 개시내용의 실시예에서, DBI 데이터 및 DBI ECC 데이터를 제공 및 수신하도록 입력/출력 회로(260)의 동작을 타이밍하기 위해 입력/출력 회로(260)에 제공될 수 있다.
전원 단자 VDD 및 VSS에는 전원 전위가 공급된다. 이들 전원 전위는 내부 전압 생성기 회로(270)에 공급된다. 내부 전압 생성기 회로(270)는 전원 단자에 공급되는 전원 전위(VDD 및 VSS)에 기초하여 다양한 내부 전위(VPP, VOD, VARY, VPERI 등)를 생성한다. 내부 전위 VPP는 주로 행 디코더(240)에서 사용되며, 내부 전위 VOD 및 VARY는 주로 메모리 어레이(250)에 포함된 감지 증폭기(SAMP)에 사용되며, 내부 전위 VPERI는 많은 주변 회로 블록에서 사용된다.
전원 단자 VDDQ 및 VSSQ에도 전원 전위가 공급된다. 전원 전위는 입력/출력 회로(260)에 공급된다. 전원 단자(VDDQ, VSSQ)에 공급되는 전원 전위는 본 개시내용의 실시예에서 전원 단자(VDD, VSS)에 공급되는 전원 전위와 동일한 전위일 수 있다. 전원 단자(VDDQ, VSSQ)에 공급되는 전원 전위는 본 개시내용의 다른 실시예에서 전원 단자(VDD, VSS)에 공급되는 전원 전위와 상이한 전위일 수 있다. 전원 단자에 공급되는 전원 전위(VDDQ, VSSQ)는 입력/출력 회로(260)에 사용되어 입력/출력 회로(260)에서 발생하는 전원 노이즈가 다른 회로 블록으로 전파되지 않도록 한다.
도 3a는 본 개시내용의 실시예에 따른 F.CC 제어 회로(300)의 블록도이다. ECC 제어 회로(300)는 본 개시내용의 일부 실시예에서 도 2의 반도체 디바이스(200)의 ECC 제어 회로(255)에 포함될 수 있다.
ECC 제어 회로(300)는 기입 데이터 제어 회로(310) 및 판독 데이터 제어 회로(320)를 포함한다. 기입 데이터 제어 회로(310)는 데이터, ECC 데이터 및 데이터 버스 반전(DBI) 데이터를 수신한다. 데이터는 DBI 인코딩된 데이터 "D_Data"일 수 있으며, ECC 데이터 "ECC(Data, DBI)"는 "ECC(Data)" 데이터에 대한 ECC 데이터와 DBI 데이터 "ECC(DBI)"에 대한 ECC 데이터를 포함할 수 있다. ECC 데이터, D_Data 및 DBI 데이터는 입력/출력 회로, 예를 들어 본 개시내용의 일부 실시예에서 반도체 디바이스(200)의 입력/출력 회로(260)에 의해 ECC 제어 회로(300)에 제공될 수 있다. ECC 데이터, DJ Data 및 DM는 예를 들어 컨트롤러로부터 입력/출력 회로로 제공될 수 있다.
도 3a에 도시되지 않았지만, 기입 데이터 제어 회로(310)는 D_Data를 DBI 디코딩하여 DBI 디코딩된 데이터 "Data"를 제공하도록 기입 데이터 제어 회로(310)에 의해 사용되는 정정된 DBI 데이터 "C_DBI"를 제공(예를 들어, 생성)하기 위해 DBI 데이터를 정정하기 위해 ECC(DBI)를 사용한다. Data는 정정된 데이터 "C_Data"를 제공하기 위해 ECC(Data)를 사용하여 기입 데이터 제어 회로(310)에 의해 정정된다. 기입 데이터 제어 회로(310)는 정정된 ECC 데이터 "C_ECC(Data)"로서 ECC(Data)를 추가로 제공한다. 본 개시내용의 일부 실시예에서, C_ECC(Data)는 Data를 정정하는 데 사용되는 ECC(Data)와 동일하고, ECC(DBI)와 함께 기입 데이터 제어 회로(310)에 제공된다.
C_Data 및 C_ECC(Data)는 메모리 어레이(예를 들어, 본 개시내용의 일부 실시예에서, 도 2의 반도체 디바이스(200)의 메모리 어레이(250))의 메모리 셀에 기입하기 위해 제공될 수 있다. 본 개시내용의 일부 실시예에서, CJ Data 및 CJECC(Data)는 C...Data 및 C...ECC(Data)가 메모리 어레이에 저장되는 동안 발생할 수 있는 오류를 정정하는 데 사용될 수 있는 뱅크 ECC.와 같은 추가 오류 정정 코딩으로 메모리 어레이의 메모리 셀에 기입될 수 있다. 뱅크 ECC는 예를 들어 소프트 오류, 메모리 셀 보존 오류 등을 정정하는 데 사용될 수 있다. 뱅크 ECC 인코딩은 기입 데이터 제어 회로(310)에 의해 제공되는 데이터에 대해, 일부 실시예에서, 직렬로, 그리고 다른 실시예에서 조합하여 수행될 수 있다. 본 개시내용의 일부 실시예에서, CJData 및 CJECC(Data)는 임의의 추가 오류 정정 코딩 없이 메모리 셀에 기입될 수 있다.
C_ECC(Data)는 기입 데이터 제어 회로(310)에 제공되는 ECC 데이터 ECC(Data)를 기초로 할 수 있다. 본 개시내용의 일부 실시예에서, 기입 데이터 제어 회로(310)에 의해 제공되는 C_ECC(Data)는 기입 데이터 제어 회로(310)에 제공되는 ECC(Data)와 동일하다. C_ECC(Data)를 제공하기 위해 데이터에 대해 ECC 인코딩 동작을 수행하지 않음으로써, 메모리에 저장될 데이터 및 ECC 데이터를 준비하는 시간이 종래의 접근법에 비교하여 감소될 수 있다.
판독 데이터 제어 회로(320)는 데이터 ECC(Data)에 대한 데이터 및 ECC 데이터를 수신한다. 본 개시내용의 일부 실시예에서, 데이터 및 ECC(Data)는 메모리 어레이에 저장될 수 있고 판독 커맨드에 응답하여 판독 데이터 제어 회로(320)에 제공될 수 있다. 예를 들어, 본 개시내용의 일부 실시예에서, 데이터 및 ECC(Data)는 메모리 어레이에 저장되고, 판독 커맨드가 수신될 때 데이터 및 ECC(Data)는 어떠한 추가 오류 정정 디코딩도 없이 메모리 어레이로부터 ECC 제어 회로(300)로 제공된다. 그러나, 본 개시내용의 일부 실시예에서, 메모리 어레이로부터의 데이터 및 ECC(Data)는 ECC 제어 회로(300)에 제공되기 전에 ECC 디코딩된다. 별개의 뱅크 ECC는 예를 들어, 소프트 오류, 메모리 셀 보존 오류 등을 정정하기 위해 메모리 어레이에 저장되는 동안 발생할 수 있는 임의의 오류를 정정하는 데 사용할 수 있다.
판독 데이터 제어 회로(320)는 ECC(Data)를 사용하여 수신한 데이터를 정정하고, 정정된 데이터에 대해 DBI 인코딩을 수행하여 DBI 인코딩된 데이터(D_Data)를 제공하고 이에 따라 DBI 데이터를 생성한다. 판독 데이터 제어 회로(320)는 DBI 데이터에 대한 ECC 데이터 ECC(DBI)를 추가로 생성한다. 판독 데이터 제어 회로(320)는 예를 들어 D_Data, DBI 데이터, ECC(Data, DBI) 등을 컨트롤러에 제공한다. ECC(Data)는 메모리에 데이터와 함께 저장된 ECC 데이터를 기초로 할 수 있다. 본 개시내용의 일부 실시예에서, ECC(Data)는 평이한 데이터(DBI 인코딩 전)와 함께 저장된 동일한 ECC 데이터이다.
판독 데이터 제어 회로(320)는 메모리 어레이로부터 ECC(Data)와 함께 제공되는 데이터에 대해 ECC 인코딩 동작을 수행할 필요 없이 ECC(Data)를 제공할 수 있다. 판독 데이터와 함께 판독 데이터 제어 회로(320)에 의해 제공되는 ECC(Data)는 판독 데이터 제어 회로(320)에 제공된 ECC(Data), 예를 들어, 판독 데이터와 함께 메모리 어레이에 저장된 ECC(Data)를 기초로 할 수 있다. 본 개시내용의 일부 실시예에서, 판독 데이터 제어 회로(320)에 의해 제공되는 ECC(Data)는 메모리 어레이로부터 판독 데이터 제어 회로(320)에 제공되는 ECC(Data)와 동일하다. ECC(Data)를 제공하기 위해 데이터에 대해 ECC 인코딩 동작을 수행하지 않음으로써, 판독 데이터 제어 회로(320)에 의해 제공되는 데이터 및 ECC 데이터를 준비하는 시간이 종래의 접근법에 비교하여 감소될 수 있다.
본 개시내용의 일부 실시예에서, 기입 데이터 제어 회로(310) 및 판독 데이터 제어 회로(320)에 의해 수행되는 ECC 동작은 공통(예를 들어, 동일한) 결정 요인(예를 들어, H-매트릭스)에 기초한다. 예를 들어, 기입 데이터 제어 회로(310) 및 판독 데이터 제어 회로(320) 양자 모두는 ECC 디코딩 및/또는 ECC 인코딩에 대해 동일한 H-매트릭스를 사용할 수 있다. 본 개시내용의 일부 실시예에서와 같이 공통 H-매트릭스를 사용함으로써, 메모리 시스템에서 ECC 동작을 사용하기 위한 종래의 접근법과 비교하여 하나 이상의 ECC 인코딩 동작이 생략될 수 있다.
예시적인 H-매트릭스 및 오류 정정 회로는 2015년 9월 11일자로 출원되고 2017년 6월 27일에 허여된 미국 특허 제9,690,653호에 설명되어 있으며, 그 전체 개시내용은 여기에 참조로 통합된다.
앞서 설명한 바와 같이, 본 개시내용의 일부 실시예에서 ECC 제어 회로(예를 들어, ECC 제어 회로(300))에 의해 제공되는 데이터 및 ECC(Data)에 대해 추가적인 오류 정정 코딩이 수행될 수 있다. 예를 들어, ECC 제어 회로(300)에서 제공하는 데이터 및 ECC(Data)에 대해 뱅크 ECC 인코딩이 수행될 수 있다.
도 3b는 본 개시내용의 일 실시예에 따른 기입 데이터 제어 회로(313)의 블록도이다. 기입 데이터 제어 회로(313)는 정정된 데이터(CJData) 및 정정된 ECC 데이터(CJECC(Data))를 뱅크 ECC 인코딩 회로(301)에 제공하는 것으로 도 3b에 도시되어 있다. 기입 데이터 제어 회로(313)는 본 개시내용의 일부 실시예에서 도 3a의 ECC 제어 회로(300)의 기입 데이터 제어 회로(310)에 포함될 수 있다.
기입 데이터 제어 회로(313)는 DBI 인코딩된 데이터 "D_Data", ECC 데이터 "ECC(Data, DBI)" 및 DBI 데이터 "DBI"가 제공되는 역 직렬화 회로(315)를 포함한다. 역 직렬화 회로(315)에 제공되는 ECC(Data, DBI)는 DBI 인코딩된 "ECC(Data)"인 데이터에 대한 ECC 데이터와 DBI 데이터 "ECC(DBI)"에 대한 ECC 데이터를 포함할 수 있다. D_Data, ECC(Data, DBI), DBI 데이터는 직렬 방식으로 제공될 수 있다. 역 직렬화 회로(315)는 D_Data, ECC(Data, DBI) 및 DBI 데이터를 역 직렬화하고 D_Data, ECC(Data), ECC(DBI) 및 DBI 데이터를 병렬 방식으로 제공한다. 데이터를 제공하는 직렬 및 병렬 방식은 나중에 도 4를 참조하여 설명한다.
기입 데이터 제어 회로(313)는 ECC 디코딩 회로(325)를 포함한다. ECC 디코딩 회로(325)에는 역 직렬화 회로(315)로부터의 ECC(DBI) 및 DBI 데이터가 제공된다. ECC 디코딩 회로(325)는 ECC(DBI)를 사용하여 DBI 데이터를 정정하고 정정된 DBI 데이터 "C_DBI"를 제공한다. 기입 데이터 제어 회로(313)는 ECC 디코딩 회로(340)를 추가로 포함한다. D_Data는 ECC(Data)와 함께, ECC(Data)를 사용하여 D_Data를 정정하는 ECC 디코딩 회로(340)에 제공되어, 중간 데이터로 고려될 수 있는 정정된 DBI 인코딩된 데이터 "CD_Data"를 제공한다. ECC 디코딩 회로(340)는 추가로 정정된 ECC 데이터 "C_ECC(Data)"로서 ECC(Data)를 제공한다. 본 개시내용의 일부 실시예에서, C_ECC(Data)는 Data를 정정하는 데 사용되면서 ECC(DBI)와 함께 역 직렬화 회로(315)에 제공된 ECC(Data)와 동일하다.
CD_Data는 기입 데이터 제어 회로(313)에도 포함되는 DBI 디코딩 회로(330)에 C_DBI와 함께 제공된다. DBI 디코딩 회로(330)는 C_DBI를 사용하여 CD_Data를 디코딩하여 정정된 데이터 "C_Data"를 제공한다. C_Data 및 C_ECC(Data)는 뱅크 ECC 인코딩 회로(301)에 제공되고, 이는 ECC(Data) 및 C_Data를 제공하기 위해 C_Data 및 C_ECC(Data)를 ECC 인코딩한다. ECC(Data) 및 C_Data는 저장을 위해 메모리 어레이에 제공될 수 있다.
기입 데이터 제어 회로(313)에서, (DBI 인코딩된) D_Data에 대한 ECC 디코딩 및 DBI 데이터에 대한 ECC 디코딩은 각각 ECC 디코딩 회로(340) 및 ECC 디코딩 회로(325)에 의해 병렬로 수행된다. 기입 데이터 제어 회로(313)의 배열에서, D_Data에 대한 ECC 디코딩 및 DBI 데이터에 대한 ECC 디코딩이 병렬로 수행됨에 따라, D_Data의 ECC 디코딩이 (정정된) DBI 인코딩된 데이터()의 DBI 디코딩 이전에 발생한다. DBI 인코딩된 데이터(CD_Data)가 ECC 디코딩 회로에 의해 ECC 디코딩되는 기입 데이터 제어 회로(313)와 같은 본 개시내용의 실시예의 경우, DBI 인코딩된 데이터(CD_Data)의 ECC 디코딩 결과는 평이한 Data의 ECC 디코딩에 대한 것과 동일한 계산 결과를 제공하는 것이 바람직하다. 즉, DBI 인코딩된 데이터(CD_Data)의 오류를 정정하기 위해 ECC 디코딩에 어떠한 문제도 없을 것이다.
도 3c는 본 개시내용의 실시예에 따른 판독 데이터 제어 회로(323)의 블록도이다. 판독 데이터 제어 회로(323)는 뱅크 ECC 디코딩 회로(303)로부터 ECC(Data) 및 Data를 수신하는 것으로 도 3c에 도시되어 있다. 판독 데이터 제어 회로(323)는 본 개시내용의 일부 실시예에서 도 3a의 ECC 제어 회로(300)의 판독 데이터 제어 회로(320)에 포함될 수 있다.
뱅크 ECC 디코딩 회로(303)는 예를 들어 메모리 어레이로부터 Data "ECC(Data)"에 대한 "Data" 및 BCC 데이터가 제공된다. 뱅크 ECC 디코딩 회로(303)는 ECC(Data)를 사용하여 Data를 정정하여 중간 데이터로 고려될 수 있는 정정된 데이터 "C_Data,,5를 제공한다. 뱅크 ECC 디코딩 회로(303)는 정정된 ECC 데이터 "C_ECC(Data)"로서 ECC(Data)를 추가로 제공한다. 본 개시내용의 일부 실시예에서, C_ECC(Data)는 Data를 정정하는 데 사용되고 Data와 함께 뱅크 ECC 디코딩 회로(303)에 제공된 ECC(Data)와 동일하다. 앞서 설명한 바와 같이, 뱅크 오류 정정 코딩은 메모리 어레이에 저장되는 동안 발생할 수 있는 임의의 오류를 정정하기 위해 사용될 수 있다.
C_Data는 DBI 인코딩 회로(318)에 제공된다. DBI 인코딩 회로(31.8)는 C_Data를 평가하고 이에 따라 C_Data를 인코딩하여 DBI 인코딩된 정정 Data "DC_Data"를 제공한다. DBI 인코딩 회로(318)는 DC_Data가 참인지 또는 C_Data에 대한 보수인지를 나타내는 DBI 데이터 "DBI"를 더 제공한다. DBI 데이터는 ECC 인코딩 회로(328)에 제공된다. ECC 인코딩 회로(328)는 DBI 데이터를 평가하고 DBI 데이터에 기초하여 DBI 데이터 "ECC(DBI)"에 대한 ECC 데이터를 제공한다. ECC(DBI)는 예를 들어 컨트롤러에 의해 DBI 데이터를 정정하는 데 사용될 수 있다. DC_Data는 ECC 인코딩 회로(338)에 제공된다. ECC 인코딩 회로(338)는 DC_Data를 평가하고 DC_Data 데이터에 기초하여 DC_Data "ECC(Data)"에 대한 ECC 데이터를 제공한다. 예를 들어, 컨트롤러에서 ECC(Data)를 사용하여 DC_Data를 정정할 수 있다. 판독 데이터 제어 회로(323)에서, (DBI 인코딩된) DC_Data에 대한 ECC 인코딩 및 DBI 데이터에 대한 ECC 인코딩은 각각 ECC 인코딩 회로(338) 및 ECC 인코딩 회로(328)에 의해 병렬로 수행된다.
ECC(DBI) 및 DBI 데이터는 ECC 인코딩 회로(328)에 의해 직렬화 회로(348)에 제공된다. 직렬화 회로(348)는 또한 ECC 인코딩 회로(338)에 의해 ECC(Data) 및 DC_Data를 제공받는다. 직렬화 회로(348)는 DC_Data, ECC(Data), DBI 데이터 및 ECC(DBI)를 병렬로 제공받고, 이를 직렬화하여 D_Data 및 DBI 데이터 "ECC(Data, DBI)에 대한 D_Data, DBI 데이터 및 ECC 데이터를 직렬 방식으로 제공한다. D_Data, DBI 데이터 및 ECC(Data, DBI)는 예를 들어 컨트롤러에 제공될 수 있다.
D_Data에 대한 ECC 데이터 C_ECC(Data)는 Data 또는 C_Data에 대해 ECC 인코딩 동작을 수행할 필요 없이 판독 데이터 제어 회로(323)에 의해 제공될 수 있다. 예를 들어, ECC 데이터(C_ECC(Data))는 예컨대 C_ECC(Data) 및 D_Data가 제공되는 컨트롤러에 의해 및/또는 메모리 어레이에 기입되고 판독 동작을 위해 나중에 판독 데이터 제어 회로(3:23)에 제공될 수 있는 데이터 및 ECC(data)를 제공하는 기입 데이터 컨트롤러 회로에 의해 C_ECC(Data)를 기초로 D_Data의 ECC 디코딩에 사용되는 공통(예를 들어, 동일한) 결정 요인(예를 들어, H-매트릭스)을 사용하여 인코딩될 수 있다. 동일한 H-매트릭스에 기초하여 동일한 ECC 동작을 수행함으로써(예를 들어, 컨트롤러, 그리고, 또한 반도체 디바이스에 의해) D_Data의 하나 이상의 ECC 인코딩 동작을 피할 수 있다.
판독 데이터 제어 회로(323)를 포함하는 개시내용의 실시예에서, 도 3b의 기입 데이터 제어 회로(313)는 나중에 판독 동작에 응답하여 판독 데이터 제어 회로(323)에 제공되는, 메모리 어레이에 기입되는 C_Data 및 C_ECC(Data)를 제공하기 위한 동작을 수행하는 데 사용될 수 있다. 기입 데이터 제어 회로(313)에 의해 수행되는 ECC 디코딩은 본 개시내용의 일부 실시예에서 판독 제어 회로(323)에 의해 수행되는 ECC 디코딩에 또한 사용되는 공통 H-매트릭스에 기초하여 실행될 수 있다. 본 개시내용의 일부 실시예에서, 판독 데이터 제어 회로(323)는 상이한 기입 데이터 제어 회로와 함께 사용될 수 있다.
도 3d는 본 개시내용의 실시예에 따른 컨트롤러와 메모리 사이의 오류 정정 코딩을 위한 흐름도이다. 메모리에 데이터를 기입하는 흐름은 도면의 위쪽 절반에 도시되고 메모리에서 데이터를 판독하는 흐름은 도면의 아래쪽 절반에 도시된다. 메모리를 위한 데이터를 기입하기 위한 흐름은 기입 데이터 제어 회로(313)에 의해 본 개시내용의 일부 실시예에서 수행될 수 있다. 메모리에 대한 데이터를 판독하기 위한 흐름은 판독 데이터 제어 회로(323)에 의해 본 개시내용의 일부 실시예에서 수행될 수 있다. 도 3d에 도시되어 있는 바와 같이 기입 데이터에 대한 ECC 디코딩과 DBI 데이터에 대한 ECC 디코딩은 메모리에서 병렬로 수행되고, 판독 데이터에 대한 ECC 인코딩과 DBI 데이터에 대한 ECC 인코딩이 메모리에서 병렬로 수행된다. 도 3d에 또한 도시되어 있는 바와 같이 컨트롤러와 메모리 사이의 데이터 전달 오류를 정정하기 위한 링크 ECC는 뱅크 ECC에서 별도로(직렬로) 수행된다.
도 4는 본 개시내용의 실시예에 따른 기입 데이터 제어 회로(400)의 블록도이다. 기입 데이터 제어 회로(400)는 본 개시내용의 일부 실시예에서 도 3a의 ECC 제어 회로(300)의 기입 데이터 제어 회로(310)에 포함될 수 있다.
기입 데이터 제어 회로(400)는 DBI 인코딩된 데이터 "D_Data", ECC 데이터 "ECC(Data, DBI)" 및 DBI 데이터 "DBI"가 제공되는 역 직렬화 회로(410)를 포함한다. 역 직렬화 회로(410)에 제공되는 ECC(Data, DBI)는 DBI 인코딩된 "ECC(Data)"인 데이터에 대한 ECC 데이터와 DBI 데이터 "ECC(DBI)"에 대한 ECC 데이터를 포함할 수 있다. D_Data, ECC(Data, DBI), DBI 데이터는 역 직렬화 회로(410)에 직렬 방식으로 제공될 수 있으며, 즉, 복수의 비트가 역 직렬화 회로(410)에 연속적으로 제공될 수 있다. 각각의 비트는 클록과 동기화된 타이밍, 예를 들어 데이터 클록이 제공될 수 있다.
역 직렬화 회로(410)는 D_Data, ECC(Data, DBI) 및 DBI 데이터를 역 직렬화하고 D_Data, ECC(Data), ECC(DBI) 및 DBI 데이터를 병렬 방식으로 제공한다. 예를 들어, D_Data의 N 비트는 데이터 클록의 M/2 클록 사이클에 걸쳐 한 번에 1 비트씩 연속적으로 수신될 수 있으며, 역 직렬화 회로(410)는 N 비트를 일 그룹으로 수집한 다음 D_Data의 N 비트 모두를 동시에 제공한다. 직렬로 제공되는 ECC(Data, DBI) 및 DBI 데이터의 비트는 마찬가지로 그룹으로 수집되고 역 직렬화 회로(410)에 의해 병렬로 제공된다.
기입 데이터 제어 회로(400)는 ECC 디코딩 회로(420)를 추가로 포함한다. ECC 디코딩 회로(420)에는 역 직렬화 회로(41(1)로부터의 ECC(DBI) 및 DBI 데이터가 제공된다. ECC 디코딩 회로(420)는 ECC(DBI)를 사용하여 DBI 데이터를 정정하고 정정된 DBI 데이터 "C_DBI"를 제공한다. C_DBI는 DBI 인코딩된 데이터(D_Data)와 함께 또한 기입 데이터 제어 회로(400)에 포함된 DBI 디코딩 회로(430)에 제공된다. DBI 디코딩 회로(430)는 C_DBI를 사용하여 D_Data를 디코딩하여 중간 데이터로 고려될 수 있는 평이한(인코딩되지 않은) "Data"를 제공한다. 기입 데이터 제어 회로(400)는 ECO 디코딩 회로(440)를 추가로 포함한다. Data는 정정된 데이터 "C_Data"를 제공하기 위해 ECC(Data)를 사용하여 Data를 정정하는 ECC 디코딩 회로(440)에 ECC(Data)와 함께 제공된다. ECC 디코딩 회로(440)는 추가로 정정된 ECC 데이터 "C_ECC(Data)"로서 ECC(Data)를 제공한다. 본 개시내용의 일부 실시예에서, C_ECC(Data)는 Data를 정정하는 데 사용되면서 ECC(DBI)와 함께 역 직렬화 회로(410)에 제공된 ECC(Data)와 동일하다.
C_Data 및 C_ECC(Data)는 기입 데이터 제어 회로(400)에 의해 제공되어 메모리 어레이, 예를 들어 본 개시내용의 일부 실시예에서 도 2의 반도체 디바이스(200)의 메모리 어레이(250)에 저장될 수 있다.
C_Data에 대한 ECC 데이터 C_ECC(Data)는 메모리에 저장하기 위한 C_Data 및 C_ECC(Data)를 제공하기 전에 C_Data에 대해 ECC 인코딩 동작을 수행할 필요 없이 기입 데이터 제어 회로(400)에 의해 제공될 수 있다. C_ECC(Data)는 역 직렬화 회로(410)에 제공된 ECC 데이터 ECC(Data)를 기초로 할 수 있다. 예를 들어, 본 개시내용의 일부 실시예에서, C_ECC(Data)는 역 직렬화 회로(410)에 제공되는 동일한 ECC(Data)이다. 앞서 설명한 바와 같이, C_ECC(Data)를 제공하기 위해 C_Data에 대해 ECC 인코딩 동작을 수행하지 않음으로써, 기입 데이터 제어 회로(400)에 의해 제공되는 데이터 및 ECC 데이터를 준비하는 시간이 종래의 접근법에 비교하여 감소될 수 있다.
도 5a는 본 개시내용의 실시예에 따른 판독 데이터 제어 회로(500)의 블록도이다. 판독 데이터 제어 회로(500)는 본 개시내용의 일부 실시예에서 도 3a의 ECC 제어 회로(300)의 판독 데이터 제어 회로(320)에 포함될 수 있다.
판독 데이터 제어 회로(500)는 ECC 디코딩 회로(510)를 포함한다. ECC 디코딩 회로(510)는 Data "ECC(Data)"에 대한 "Data" 및 ECC 데이터가 제공된다. ECC 디코딩 회로(510)는 ECC(Data)를 사용하여 Data를 정정하여 중간 데이터로 고려될 수 있는 정정된 데이터 "C_Data"를 제공한다. ECC 디코딩 회로(510)는 추가로 정정된 ECC 데이터 "C_ECC(Data)"로서 ECC(Data)를 제공한다. 본 개시내용의 일부 실시예에서, C_ECC(Data)는 Data를 정정하는 데 사용되고 Data와 함께 ECC 디코딩 회로(510)에 제공된 ECC(Data)와 동일하다.
C_Data는 DBI 인코딩 회로(520)에 제공된다. DBI 인코딩 회로(520)는 C_Data를 평가하고 이에 따라 C_Data를 인코딩하여 DBI 인코딩된 정정 Data "DC_Data"를 제공한다. DBI 인코딩 회로(520)는 DC_Data가 참인지 또는 C_Data에 대한 보수인지를 나타내는 DBI 데이터 "DBI"를 더 제공한다. DBI 데이터는 ECC 인코딩 회로(530)에 제공된다. ECC 인코딩 회로(530)는 DBI 데이터를 평가하고 DBI 데이터에 기초하여 DBI 데이터 "ECC(DBI)"에 대한 ECC 데이터를 제공한다. ECC(DBI)는 예를 들어 컨트롤러에서 DBI 데이터를 정정하는 데 사용될 수 있다.
ECC(DBI) 및 DBI 데이터는 ECC 인코딩 회로(530)에 의해 직렬화 회로(540)에 제공된다. 직렬화 회로(540)는 또한 DC_Data 및 C_ECC(Data)를 제공받는다. 직렬화 회로(540)는 DC_Data, C_ECC(Data), DBI 데이터 및 ECC(DBI)를 병렬로 제공받고, 이를 직렬화하여 D_Data 및 DBI 데이터 "ECC(Data, DBI)에 대한 D_Data, DBI 데이터 및 ECC 데이터를 직렬 방식으로 제공한다. D_Data, DBI 데이터 및 ECC(Data, DBI)는 예를 들어 컨트롤러에 제공될 수 있다.
D_Data에 대한 ECC 데이터 C_ECC(Data)는 Data 또는 C_Data에 대해 ECC 인코딩 동작을 수행할 필요 없이 판독 데이터 제어 회로(500)에 의해 제공될 수 있다. 예를 들어, ECC 데이터(C_ECC(Data))는 예컨대 C_ECC(Data) 및 D_Data가 제공되는 컨트롤러에 의해 및/또는 메모리 어레이에 기입되고 판독 동작을 위해 나중에 판독 데이터 제어 회로(500)에 제공될 수 있는 데이터 및 ECO(data)를 제공하는 기입 데이터 컨트롤러 회로에 의해 C_ECC(Data)를 기초로 D_Data의 ECC 디코딩에 사용되는 공통(예를 들어, 동일한) 결정 요인(예를 들어, H-매트릭스)을 사용하여 인코딩될 수 있다. 동일한 B-매트릭스에 기초하여 동일한 ECC 동작을 수행함으로써(예를 들어, 컨트롤러, 그리고, 또한 반도체 디바이스에 의해) D_Data의 하나 이상의 ECC 인코딩 동작을 피할 수 있다. C_ECC(Data)는 ECC 디코딩 회로(510)에 제공되는 ECC 데이터 ECC(Data)를 기초로 할 수 있다. 예를 들어, ECC(Data)는 예를 들어 ECC 디코딩 회로(SKI)에 함께 제공되는 Data와 함께 메모리 어레이에 저장될 수 있다. 본 개시내용의 일부 실시예에서, 판독 데이터 제어 회로(500)에 의해 제공되는 ECC(Data)는 ECC 디코딩 회로(510)에 제공되는 ECC(Data)와 동일하다. C_ECC(Data)를 제공하기 위해 Data 또는 C_Data에 대해 ECC 인코딩 동작을 수행하지 않음으로써, 판독 데이터 제어 회로(500)에 의해 제공되는 데이터 및 ECC 데이터를 준비하는 시간이 종래의 접근법에 비교하여 감소될 수 있다.
판독 데이터 제어 회로(500)를 포함하는 개시내용의 실시예에서, 도 4의 기입 데이터 제어 회로(400)는 나중에 판독 동작에 응답하여 판독 데이터 제어 회로(500)에 제공되는, 메모리 어레이에 기입되는 D_Data 및 ECC(Data)를 제공하기 위한 동작을 수행하는 데 사용될 수 있다. 기입 데이터 제어 회로(400)에 의해 수행되는 ECC 디코딩은 본 개시내용의 일부 실시예에서 판독 제어 회로(500)에 의해 수행되는 ECC 디코딩에 또한 사용되는 공통 H-매트릭스에 기초하여 실행될 수 있다. 본 개시내용의 일부 실시예에서, 판독 데이터 제어 회로(500)는 상이한 기입 데이터 제어 회로와 함께 사용될 수 있다.
도 5b는 본 개시내용의 실시예에 따른 컨트롤러와 메모리 사이의 오류 정정 코딩을 위한 흐름도이다. 메모리에 데이터를 기입하는 흐름은 도면의 위쪽 절반에 도시되고 메모리에서 데이터를 판독하는 흐름은 도면의 아래쪽 절반에 도시된다. 메모리를 위한 데이터를 기입하기 위한 흐름은 기입 데이터 제어 회로(400)에 의해 본 개시내용의 일부 실시예에서 수행될 수 있다. 메모리에 대한 데이터를 판독하기 위한 흐름은 판독 데이터 제어 회로(500)에 의해 본 개시내용의 일부 실시예에서 수행될 수 있다. 도 Sb에 도시된 바와 같이, DBI 데이터에 대한 ECC 디코딩과 기입 데이터에 대한 ECC 디코딩은 메모리에서 직렬로 수행되고, 판독 데이터에 대한 ECC 디코딩과 DBI 데이터에 대한 ECC 인코딩이 메모리에서 직렬로 수행된다. 도 5b에 또한 도시되어 있는 바와 같이 ECC 인코딩은 컨트롤러에서 DBI 인코딩 전에 수행된다. DBI 디코딩 후 ECC 디코딩의 역방향 흐름이 메모리에 의해 적용된다.
도 6a는 본 개시내용의 실시예에 따른 기입 데이터 제어 회로(600)의 블록도이다. 기입 데이터 제어 회로(600)는 본 개시내용의 일부 실시예에서 도 3a의 ECC 제어 회로(300)의 기입 데이터 제어 회로(T10)에 포함될 수 있다.
기입 데이터 제어 회로(600)는 OBI 인코딩된 데이터 "D_Data", ECC 데이터 "ECC(Data, DBI)" 및 OBI 데이터 "DBI"가 제공되는 역 직렬화 회로(610)를 포함한다. 역 직렬화 회로(610)에 제공되는 ECC(Data, DBI)는 DBI 인코딩된 "ECC(Data)"인 데이터에 대한 ECC 데이터와 DBI 데이터 "ECC(DBI)"에 대한 ECC 데이터를 포함할 수 있다. D_Data, ECC(Data, DBI), OBI 데이터는 직렬 방식으로 제공될 수 있다. 역 직렬화 회로(610)는 D_Data, ECC(Data, DBI) 및 DBI 데이터를 역 직렬화하고 DJData, ECC(Data), ECC(OBI) 및 DBI 데이터를 병렬 방식으로 제공한다. 데이터를 제공하는 직렬 및 병렬 방식은 이전에 도 4를 참조하여 설명되었다.
기입 데이터 제어 회로(600)는 ECC 디코딩 회로(620)를 포함한다. ECC 디코딩 회로(620)에는 역 직렬화 회로(6r))로부터의 ECC(DBI) 및 DBI 데이터가 제공된다. ECC 디코딩 회로(620)는 ECC(DBI)를 사용하여 DBI 데이터를 정정하고 정정된 DBI 데이터 "C_DBI"를 제공한다. 기입 데이터 제어 회로(600)는 ECC 디코딩 회로(640)를 추가로 포함한다. D_Data는 ECC(Data)와 함께, ECC(Data)를 사용하여 D_Data를 정정하는 ECC 디코딩 회로(640)에 제공되어, 중간 데이터로 고려될 수 있는 정정된 DBI 인코딩된 데이터 "CD_Data"를 제공한다. ECC 디코딩 회로(640)는 추가로 정정된 ECC 데이터 "C_ECC(Data)"로서 ECC(Data)를 제공한다. 본 개시내용의 일부 실시예에서, C_ECC(Data)는 Data를 정정하는 데 사용되면서 ECC(DBI)와 함께 역 직렬화 회로(610)에 제공된 ECC(Data)와 동일하다.
CD_Data는 기입 데이터 제어 회로(600)에도 포함되는 DBI 디코딩 회로(630)에 C_DBI와 함께 제공된다. DBI 디코딩 회로(630)는 C_DBI를 사용하여 CD_Data를 디코딩하여 정정된 데이터 "C_Data"를 제공한다.
도 4의 기입 데이터 제어 회로(400)와는 대조적으로, 기입 데이터 제어 회로(600)에서, (DBI 인코딩된) D_Data에 대한 ECC 디코딩 및 DBI 데이터에 대한 ECC 디코딩은 각각 ECC 디코딩 회로(640) 및 ECC 디코딩 회로(620)에 의해 병렬로 수행된다. 기입 데이터 제어 회로(400)에서, ECC 디코딩 회로(420)에 의한 DBI 데이터의 ECC 디코딩, 평이한 Data의 복구를 위한 DBI 디코딩 회로(430)에 의한 D_Data의 DBI 디코딩 및 ECC 디코딩 회로(440)에 의한 평이한 Data의 ECC 디코딩이 직렬로 수행된다. 이러한 배열에서, 평이한 Data를 제공하기 위한 DBI 디코딩은 Data의 ECC 디코딩 이전에 발생한다. 그러나, 기입 데이터 제어 회로(600)의 배열에서, D_Data에 대한 ECC 디코딩 및 DBI 데이터에 대한 ECC 디코딩이 병렬로 수행됨에 따라, D_Data의 ECC 디코딩이 (정정된) DBI 인코딩된 데이터(CD_Data)의 DBI 디코딩 이전에 발생한다. 기입 데이터 제어 회로(600)의 병렬 동작의 결과, 메모리 어레이에 기입 위한 기입 데이터를 처리하는 것은 기입 데이터 제어 회로(400)에 비교하여 시간이 덜 걸릴 수 있다.
기입 데이터 제어 회로(600)를 포함하는 본 개시내용의 실시예에서, 도 5a의 판독 데이터 제어 회로(500)는 일부 실시예에 대해 D_Data, DBI 데이터 및 ECC(Data, DBI) 데이터를 제공하기 위한 동작을 수행하기 위해 사용될 수 있다. 본 개시내용의 다른 실시예에서, 기입 데이터 제어 회로(600)는 상이한 판독 데이터 제어 회로와 함께 사용될 수 있다.
DBI 인코딩된 데이터(CD_Data)가 ECC 디코딩 회로에 의해 ECC 디코딩되는 기입 데이터 제어 회로(600)와 같은 본 개시내용의 실시예의 경우, DBI 인코딩된 데이터(CD_Data)의 ECC 디코딩 결과는 평이한 Data의 ECC 디코딩에 대한 것과 동일한 계산 결과를 제공하는 것이 바람직하다. 즉, DBI 인코딩된 데이터(CD_Data)의 오류를 정정하기 위해 ECC 디코딩에 어떠한 문제도 없을 것이다.
도 6b는 본 개시내용의 실시예에 따른 판독 데이터 제어 회로(605)의 블록도이다. 판독 데이터 제어 회로(605)는 본 개시내용의 일부 실시예에서 도 3a의 ECC 제어 회로(TOO)의 판독 데이터 제어 회로(320)에 포함될 수 있다. 판독 데이터 제어 회로(605)는 본 개시내용의 일부 실시예에서 기입 데이터 제어 회로(600)와 함께 사용될 수 있다.
판독 데이터 제어 회로(605)는 ECC(Data) 및 Data를 수신하는 것으로 도 6b에 도시되어 있다. Data 및 ECC(Data)는 예를 들어 메모리 어레이에서 제공될 수 있다. Data는 DBI 인코딩 회로(615)에 제공된다. DBI 인코딩 회로(615)는 Data를 평가하고 이에 따라 Data를 인코딩하여 DBI 인코딩된 Data "D_Data"를 제공한다. DBI 인코딩 회로(615)는 D_Data가 참인지 또는 Data에 대한 보수인지를 나타내는 DBI 데이터 "DBI"를 추가로 제공한다. DBI 데이터는 ECC 인코딩 회로(6:25)에 제공된다. ECC 인코딩 회로(625)는 DBI 데이터를 평가하고 DBI 데이터에 기초하여 DBI 데이터 "ECC(DBI)"에 대한 ECC 데이터를 제공한다. ECC(DBI)는 예를 들어 컨트롤러에 의해 DBI 데이터를 정정하는 데 사용될 수 있다.
D_Data 및 ECC(Data)는 ECC 디코딩 회로(645)에 제공된다. ECC 디코딩 회로(645)는 ECC(Data)를 사용하여 D_Data를 정정하여 중간 데이터로 고려될 수 있는 정정된 데이터 "CD_Data"를 제공한다. ECC 디코딩 회로(645)는 또한 ECC(Data)를 제공한다. ECC(Data)는 예를 들어 컨트롤러에서 D_Data를 정정하는 데 사용될 수 있다. 본 개시내용의 일부 실시예에서, ECC 디코딩 회로(645)에 의해 제공되는 ECC(Data)는 D_Data를 정정하는 데 사용되고 D_Data와 함께 ECC 디코딩 회로(645)에 제공되는 ECC(Data)와 동일하다.
판독 데이터 제어 회로(605)에서, D_Data에 대한 ECC 디코딩 및 DBI 데이터에 대한 ECC 인코딩은 각각 ECC 디코딩 회로(645) 및 ECC 인코딩 회로(625)에 의해 병렬로 수행된다.
ECC(DBI) 및 DBI 데이터는 ECC 인코딩 회로(625)에 의해 직렬화 회로(635)에 제공된다. 직렬화 회로(635)는 또한 ECC 인코딩 회로(645)에 의해 ECC(Data) 및 CD_Data를 제공받는다. 직렬화 회로(635)는 CD_Data, ECC(Data), DBI 데이터 및 ECC(DBI)를 병렬로 제공받고, 이를 직렬화하여 D_Data 및 DBI 데이터 "ECC(Data, DBI)에 대한 CD_Data, DBI 데이터 및 ECC 데이터를 직렬 방식으로 제공한다. CD_Data, DBI 데이터 및 ECC(Data, DBI)는 예를 들어 컨트롤러에 제공될 수 있다.
CD_Data에 대한 ECC 데이터 ECC(Data)는 Data 또는 D_Data에 대해 ECC 인코딩 동작을 수행할 필요 없이 판독 데이터 제어 회로(605)에 의해 제공될 수 있다. 예를 들어, ECC 데이터 ECC(Data)는 예컨대, ECC(Data) 및 CD_Data가 제공되는 컨트롤러에 의해 및/또는 메모리 어레이에서 판독된 데이터 및 ECC(data)를 제공하는 판독 데이터 컨트롤러 회로에 의해 ECC(Data)에 기초한 CD_Data의 ECC 디코딩에 사용되는 공통(예를 들어, 동일한) 결정 요인(예를 들어, H-매트릭스)을 사용하여 제공될 수 있다. 동일한 H-매트릭스에 기초하여 동일한 ECC 동작을 수행함으로써(예를 들어, 컨트롤러, 그리고, 또한 반도체 디바이스에 의해) 데이터의 하나 이상의 ECC 인코딩 동작을 피할 수 있다.
판독 데이터 제어 회로(605)를 포함하는 개시내용의 실시예에서, 도 6a의 기입 데이터 제어 회로(600)는 나중에 판독 동작에 응답하여 Data 및 ECC(Data)로서 판독 데이터 제어 회로(323)에 제공되는, 메모리 어레이에 기입되는 C_Data 및 C_ECC(Data)를 제공하기 위한 동작을 수행하는 데 사용될 수 있다. 기입 데이터 제어 회로(600)에 의해 수행되는 ECC 디코딩은 본 개시내용의 일부 실시예에서 판독 제어 회로(605)에 의해 수행되는 ECC 디코딩에 또한 사용되는 공통 H-매트릭스에 기초하여 실행될 수 있다. 본 개시내용의 일부 실시예에서, 판독 데이터 제어 회로(605)는 상이한 기입 데이터 제어 회로와 함께 사용될 수 있다.
도 7aa, 도 7ab 및 도 7ac 및 도 7b는 본 개시내용의 일 실시예에 따른 ECC 인코딩 및/또는 디코딩 동작을 수행하기 위한 결정 요인(예를 들어, H-매트릭스)의 도면이다. 도 7aa, 도 7ab 및 도 7ac은 데이터에 사용할 수 있는 예시적인 결정 요인이다. 도 7b는 DBI 데이터에 사용될 수 있는 예시적인 결정 요인이다. 도 7aa, 도 7ab, 도 7ac 및 도 7b의 예시적인 결정 요인은 각 바이트(S0, S1,..., S8)에서 짝수의 "T" 및 "0"을 갖는다. 결과적으로, 도 7aa, 도 7ab, 도 7ac 및 도 7b의 예시적인 결정 요인은 평이한 데이터와 DBI 인코딩된 데이터 모두에 대해 동일한 ECC 계산 결과를 제공한다.
도 7aa, 도 7ab, 도 7ac 및 도 7b의 결정 요인은 예를 들어, 이전에 참조된 미국 특허 제9,690,653호에 개시된 것과 유사한 오류 정정 회로와 함께 사용될 수 있고, 이전에 설명된 바와 같이, 그 전체 개시내용은 여기에 참조로 통합된다. '653 특허에서 설명한 바와 같이, 각 신드롬 인자(Si)는 H-매트릭스에서 1을 통해 입력되는 각 데이터를 통해 EXOR 회로로 구성될 수 있다. 신드롬 S(0 아님)는 오류가 1개이고 S = 0인 경우 오류 비트의 위치를 나타낸다. E-매트릭스의 각 바이트에 짝수의 "1" 만 있는 경우 EXOR 회로는 동일한 결과를 출력한다. 예를 들어, Data가 DBI 인코딩된 경우 EXOR 회로의 입력이 00000000으로부터 11111111으로 변경되지만 계산 결과는 동일한 "0"(오류 없음)이다. 이와 유사하게, EXOR 회로의 입력이 00100000로부터 로 변경되지만 계산 결과는 동일한"1"(오류)이다.
도 7aa, 도 7ab, 도 7ac 및 도 7b의 예시적인 결정 요인은 DBI 인코딩된 데이터에 대한 ECC 디코딩 및 병렬로 수행된 DBI 데이터에 대한 ECC 디코딩과 함께 사용될 수 있으며, (정정된) DBI 인코딩된 데이터의 DBI 디코딩 이전에 DBI 인코딩된 데이터의 ECC 디코딩과 함께 사용될 수 있다. 본 개시내용의 실시예는 도 7aa, 도 7ab, 도 7ac 및 도 7b의 특정 예시적인 결정 요인으로 제한되기를 의도하지 않으며, 따라서 본 개시내용의 다른 실시예는 ECC 디코딩 및/또는 인코딩을 위한 대안적인 결정 요인을 사용한다.
도 8a는 본 개시내용의 실시예에 따른 기입 데이터 제어 회로(800)의 블록도이다. 기입 데이터 제어 회로(800)는 본 개시내용의 일부 실시예에서 도 3a의 ECC 제어 회로(300)의 기입 데이터 제어 회로(310)에 포함될 수 있다.
기입 데이터 제어 회로(800)는 DBI 인코딩된 데이터 "D_Data" 및 DBI 데이터 "DBI"가 제공되는 역 직렬화 회로(810)를 포함한다. D_Data 및 DBI 데이터는 직렬 방식으로 제공될 수 있으며, 역 직렬화 회로(810)는 D_Data 및 DBI 데이터를 역 직렬화하고 D_Data 및 DBI 데이터를 병렬 방식으로 제공한다.
기입 데이터 제어 회로(800)는 ECC 디코딩 회로(820) 및 ECC 디코딩 회로(840)를 추가로 포함한다. 기입 데이터 제어 회로(800)에서, ECC 디코딩 회로(820, 840)는 DBI 인코딩된 데이터(D_Data) 및 DBI 데이터 만이 기입 데이터 제어 회로(800)에 제공되기 때문에 비활성화되고 바이패스(예를 들어, 스킵)된다고 가정한다. 그 결과, D_Data 및 DBI 데이터는 각각 ECC 디코딩 회로(840) 및 ECC 디코딩 회로(820)를 통해 기입 데이터 제어 회로(800)에 포함된 DBI 디코딩 회로(830)에 제공된다. DBI 디코딩 회로(830)는 DBI 데이터를 사용하여 D_Data를 디코딩하여 DBI 디코딩 데이터 "Data"를 제공한다. Data는 기입 데이터 제어 회로(800)에 의해 ECC 인코딩 회로(850)에 제공된다. ECC 인코딩 회로(850)는 Data를 평가하고 Data "ECC(Data)"에 대한 ECC 데이터를 제공한다. Data 및 ECC(Data)는 메모리 어레이, 예를 들어 도 2의 반도체 디바이스(200)의 메모리 어레이(250)에 저장될 수 있다. ECC 인코딩 회로(850)는 메모리 어레이에 저장되는 동안 발생할 수 있는 오류를 정정하기 위해 사용될 수 있는 뱅크 오류 정정 코딩을 제공한다.
기입 데이터 제어 회로(800)를 포함하는 본 개시내용의 실시예에서, D_Data 및 DBI 데이터를 제공하기 위한 동작을 수행하기 위해 도 5a의 판독 데이터 제어 회로(500)가 포함될 수도 있다. 이러한 실시예에서, ECC 디코딩 회로(510)는 정정된 ECC 데이터(예를 들어, C_ECC(Data))를 제공하지 않으며, ECC 인코딩 회로(530)가 비활성화되어 DBI 데이터(예를 들어, ECC(DBI))에 대한 ECC 데이터도 제공되지 않는다. 그 결과, DBI 인코딩된 데이터(D_Data) 및 DBI 데이터 만이 판독 데이터 제어 회로(500)에 의해 제공된다. D_Data 및 DBI 데이터는 예를 들어 컨트롤러에 제공될 수 있다. 본 개시내용의 다른 실시예에서, 기입 데이터 제어 회로(800)는 상이한 판독 데이터 제어 회로와 함께 사용될 수 있다.
도 8b는 본 개시내용의 실시예에 따른 판독 데이터 제어 회로(805)의 블록도이다. 판독 데이터 제어 회로(805)는 뱅크 ECC 디코딩 회로(803)로부터 정정된 데이터(C_Data)를 수신하는 것으로 도 8b에 도시되어 있다. 판독 데이터 제어 회로(805)는 본 개시내용의 일부 실시예에서 도 3a의 ECC 제어 회로(300)의 판독 데이터 제어 회로(320)에 포함될 수 있다. 판독 데이터 제어 회로(80S)는 본 개시내용의 일부 실시예에서 기입 데이터 제어 회로(800)와 함께 사용될 수 있다.
뱅크 ECC 디코딩 회로(803)는 예를 들어 메모리 1 어레이로부터 Data "ECC(Data)"에 대한 "Data" 및 ECC 데이터가 제공된다. 뱅크 ECC 디코딩 회로(803)는 ECC(Data)를 사용하여 Data를 정정하여 중간 데이터로 고려될 수 있는 정정된 데이터 "CJData?>"를 제공한다. 앞서 설명한 바와 같이, 뱅크 오류 정정 코딩은 메모리 어레이에 저장되는 동안 발생할 수 있는 임의의 오류를 정정하기 위해 사용될 수 있다.
판독 데이터 제어 회로(805)는 뱅크 ECC 디코딩 회로(803)로부터 C_Data를 수신하는 것으로 도 8b에 도시되어 있다. C_Data는 DBI 인코딩 회로(815)에 제공된다. DBI 인코딩 회로(815)는 Data를 평가하고 이에 따라 Data를 인코딩하여 DBI 인코딩된 Data "DC_Data"를 제공한다. DBI 인코딩 회로(815)는 DC_Data가 참인지 또는 C_Data에 대한 보수인지를 나타내는 DBI 데이터 "DBI"를 더 제공한다. DBI 데이터는 ECC 인코딩 회로(825)에 제공되고 DC_Data는 ECC 인코딩 회로(845)에 제공된다.
판독 데이터 제어 회로(805)에서, ECC 인코딩 회로(8:25 및 845)가 비활성화되고 바이패스되고 ECC 데이터 ECC(Data) 및 ECC(DBI)가 판독 데이터 제어 회로(805)에 의해 제공되지 않는다고 가정한다. 그 결과, DC_Data 및 DBI 데이터는 각각 ECC 인코딩 회로(845) 및 ECC 인코딩 회로(825)를 통해 직렬화 회로(835)에 제공되고 직렬화 회로는 이를 직렬화하여 DC_Data 및 DBI 데이터를 직렬 방식으로 제공한다. DC_Data 및 DBI 데이터는 예를 들어 컨트롤러에 제공될 수 있다.
기입 데이터 제어 회로(800)를 포함하는 본 개시내용의 실시예에서, DC_Data 및 DBI 데이터를 제공하기 위한 동작을 수행하기 위해 판독 데이터 제어 회로(805)가 포함될 수도 있다. 본 개시내용의 다른 실시예에서, 판독 데이터 제어 회로(805)는 상이한 기입 데이터 제어 회로와 함께 사용될 수 있다. 도 9는 본 개시내용의 다양한 실시예에 따른 기입 데이터 제어 회로 및 판독 데이터 제어 회로에 대한 레이아웃 도면이다. 레이아웃 도면은 주변 구역(910) 및 메모리 어레이 구역(920)을 포함한다.
기입 데이터 제어 회로의 경우, ECC 디코딩(DBI) 및 DBI 디코딩은 주변 구역(910)의 회로, 예를 들어 영역(913 및 915)에 각각 위치한 회로에 의해 수행될 수 있다. 기입 데이터 제어 회로에 대한 ECC 디코딩(Data)은 주변 구역(910) 또는 메모리 셀 어레이 구역(920)의 회로에 의해 수행될 수 있다. 메모리 셀 어레이 구역(920)의 회로에 의해 수행되는 경우, 회로는 예를 들어 영역(925)에 위치할 수 있다. 그러나, 메모리 셀 어레이 구역(920)에 추가적인 신호 라인을 갖지 않도록 주변 구역(910)에서의 ECC 디코딩(Data)이 바람직할 수 있다.
판독 데이터 제어 회로의 경우, ECC 인코딩(DBI) 및 DBI 인코딩은 주변 구역(910)의 회로, 예를 들어 영역(913 및 915)에 각각 위치한 회로에 의해 수행될 수 있다. 판독 데이터 제어 회로에 대한 ECC 디코딩(Data)은 기입 데이터 제어 회로에 대해 앞서 설명한 것과 동일한 방식으로 주변 구역(910) 또는 메모리 셀 어레이 구역(920)의 회로에 의해 수행될 수 있다.
DBI 인코딩된 데이터(D_Data) 및 DBI 데이터(데이터 또는 DBI 데이터에 대한 ECC 데이터 없음)가 제공되는 기입 데이터 제어 회로의 실시예에서, 추가 ECC 인코딩(Data)은 메모리 셀 어레이 구역(920)에 배열될 수 있으며, 이는 상대적으로 긴 신호 라인일 수 있는 주변 구역(910)으로부터 메모리 셀 어레이 구역(920)으로 연장되는 신호 라인의 수를 감소시킬 수 있다. 상대적으로 긴 신호 라인의 수를 감소시키면 전력 소비를 감소시킬 수 있다. 마찬가지로, 판독 데이터 제어 회로를 위한 ECO 디코딩(Data)이 메모리 셀 어레이 구역(920)에 배열될 수 있다.
도 9의 레이아웃은 예로서 제공되었으며, 본 개시내용의 범위를 도 9의 예에서 특정 레이아웃으로 제한하기를 의도하는 것은 아니다. 결과적으로, 본 개시내용의 다른 실시예는 도 9에 도시되어 있는 것 이외의 기입 데이터 제어 회로 및 판독 데이터 제어 회로에 대한 레이아웃을 포함할 수 있다.
앞서 설명한 바로부터, 본 개시내용의 특정 실시예가 예시의 목적으로 여기에 설명되었지만, 본 개시내용의 사상 및 범위를 벗어나지 않고 다양한 수정이 이루어질 수 있다는 것을 이해할 것이다. 따라서, 본 개시내용의 범위는 본 명세서에 설명된 특정 실시예 중 어느 것으로도 제한되어서는 안된다.

Claims (21)

  1. 방법으로서,
    신호 버스들로부터 기입 데이터 및 대응하는 ECC 데이터를 수신하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 상기 기입 데이터를 정정하여 정정된 기입 데이터를 제공하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 정정된 대응하는 ECC 데이터를 제공하는 단계 - 상기 정정된 기입 데이터 및 상기 정정된 대응하는 ECC 데이터는 메모리 어레이에 저장되도록 제공됨 -; 및
    상기 대응하는 ECC 데이터에 기초하여 상기 기입 데이터를 정정하기 전에 정정된 DBI 데이터에 기초하여 상기 기입 데이터를 DBI 디코딩하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 정정된 대응하는 ECC 데이터는 상기 대응하는 ECC 데이터를 포함하는 방법.
  3. 방법으로서,
    신호 버스들로부터 기입 데이터 및 대응하는 ECC 데이터를 수신하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 상기 기입 데이터를 정정하여 정정된 기입 데이터를 제공하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 정정된 대응하는 ECC 데이터를 제공하는 단계 - 상기 정정된 기입 데이터 및 상기 정정된 대응하는 ECC 데이터는 메모리 어레이에 저장되도록 제공됨 -; 및
    대응하는 ECC 데이터에 기초하여 상기 기입 데이터를 정정한 후에 정정된 DBI 데이터에 기초하여 기입 데이터를 DBI 디코딩하는 단계
    를 포함하는 방법.
  4. 방법으로서,
    신호 버스들로부터 기입 데이터 및 대응하는 ECC 데이터를 수신하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 상기 기입 데이터를 정정하여 정정된 기입 데이터를 제공하는 단계; 및
    상기 대응하는 ECC 데이터에 기초하여 정정된 대응하는 ECC 데이터를 제공하는 단계 - 상기 정정된 기입 데이터 및 상기 정정된 대응하는 ECC 데이터는 메모리 어레이에 저장되도록 제공되고, 상기 기입 데이터에 대응하는 ECC 데이터에 기초하여 상기 기입 데이터를 정정하는 것은 DBI 데이터에 대응하는 ECC 데이터에 기초하여 상기 DBI 데이터를 정정하는 것과 병렬로 수행되고, 상기 ECC 데이터에 기초하여 상기 기입 데이터를 정정하는 단계는 평이한 데이터 및 DBI 인코딩된 데이터 모두에 대해 동일한 ECC 계산 결과들을 제공하는 결정 요인에 따라 수행됨 -
    를 포함하는 방법.
  5. 방법으로서,
    신호 버스들로부터 기입 데이터 및 대응하는 ECC 데이터를 수신하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 상기 기입 데이터를 정정하여 정정된 기입 데이터를 제공하는 단계; 및
    상기 대응하는 ECC 데이터에 기초하여 정정된 대응하는 ECC 데이터를 제공하는 단계 - 상기 정정된 기입 데이터 및 상기 정정된 대응하는 ECC 데이터는 메모리 어레이에 저장되도록 제공되고, 상기 기입 데이터에 대응하는 ECC 데이터에 기초하여 상기 기입 데이터를 정정하는 단계는 상기 DBI 데이터에 대응하는 ECC 데이터에 기초하여 DBI 데이터를 정정하는 단계와 병렬로 수행되고, 상기 ECC 데이터에 기초하여 상기 기입 데이터를 정정하는 단계는 각각의 바이트에 짝수 "1" 및 "0"을 포함하는 결정 요인에 따라 수행됨 -
    를 포함하는 방법.
  6. 제1항에 있어서,
    상기 정정된 기입 데이터를 상기 메모리에 저장하기 전에 상기 정정된 기입 데이터에 대해 오류 정정 코딩을 수행하는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 메모리 어레이로부터 판독 데이터 및 대응하는 ECC 데이터를 수신하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 상기 판독 데이터를 정정하여 정정된 판독 데이터를 제공하는 단계; 및
    상기 대응하는 ECC 데이터에 기초하여 정정된 대응하는 ECC 데이터를 제공하는 단계 - 상기 정정된 판독 데이터 및 상기 정정된 대응하는 ECC 데이터는 상기 신호 버스들에 제공됨 -
    를 더 포함하는 방법.
  8. 제7항에 있어서, 상기 정정된 대응하는 ECC 데이터는 상기 대응하는 ECC 데이터를 포함하는 방법.
  9. 방법으로서,
    신호 버스들로부터 기입 데이터 및 대응하는 ECC 데이터를 수신하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 상기 기입 데이터를 정정하여 정정된 기입 데이터를 제공하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 정정된 대응하는 ECC 데이터를 제공하는 단계 - 상기 정정된 기입 데이터 및 상기 정정된 대응하는 ECC 데이터는 메모리 어레이에 저장되도록 제공됨 -;
    상기 메모리 어레이로부터 판독 데이터 및 대응하는 ECC 데이터를 수신하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 상기 판독 데이터를 정정하여 정정된 판독 데이터를 제공하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 정정된 대응하는 ECC 데이터를 제공하는 단계 - 상기 정정된 판독 데이터 및 상기 정정된 대응하는 ECC 데이터는 상기 신호 버스들에 제공됨 -;
    DBI 데이터에 대응하는 ECC 데이터를 제공하기 위해 상기 정정된 판독 데이터를 DBI 인코딩하고 DBI 데이터를 ECC 인코딩하는 단계; 및
    상기 DBI 데이터 및 상기 DBI 데이터에 대응하는 ECC 데이터를 상기 신호 버스들에 제공하는 단계
    를 포함하는 방법.
  10. 방법으로서,
    신호 버스들로부터 기입 데이터 및 대응하는 ECC 데이터를 수신하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 상기 기입 데이터를 정정하여 정정된 기입 데이터를 제공하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 정정된 대응하는 ECC 데이터를 제공하는 단계 - 상기 정정된 기입 데이터 및 상기 정정된 대응하는 ECC 데이터는 메모리 어레이에 저장되도록 제공됨 -;
    상기 메모리 어레이로부터 판독 데이터 및 대응하는 ECC 데이터를 수신하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 상기 판독 데이터를 정정하여 정정된 판독 데이터를 제공하는 단계;
    상기 대응하는 ECC 데이터에 기초하여 정정된 대응하는 ECC 데이터를 제공하는 단계 - 상기 정정된 판독 데이터 및 상기 정정된 대응하는 ECC 데이터는 상기 신호 버스들에 제공됨 -; 및
    상기 메모리 어레이로부터 상기 판독 데이터를 수신하기 전에 상기 판독 데이터에 대해 에러 정정 코딩을 수행하는 단계
    를 포함하는 방법.
  11. 방법으로서,
    제1 데이터, 상기 제1 데이터에 관련된 데이터-버스-반전(DBI) 데이터, 상기 제1 데이터와 연관된 제1 ECC 데이터 및 상기 DBI 데이터와 연관된 제2 ECC 데이터를 수신하는 단계;
    제1 ECC 디코딩을 실행함으로써 상기 DBI 데이터 및 상기 제2 ECC 데이터에 적어도 부분적으로 응답하여 정정된 DBI 데이터를 생성하는 단계;
    제2 ECC 디코딩을 실행함으로써 상기 정정된 DBI 데이터 및 상기 제1 ECC 데이터에 적어도 부분적으로 응답하여 정정된 제1 데이터 및 정정된 제1 ECC 데이터를 생성하는 단계; 및
    상기 정정된 제1 데이터 및 상기 정정된 제1 ECC 데이터를 메모리 어레이에 저장하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서,
    상기 제1 데이터 및 상기 정정된 DBI 데이터를 수신하고 DBI 디코딩된 제1 데이터를 생성하는 단계; 및
    상기 DBI 디코딩된 제1 데이터 및 상기 제1 ECC 데이터를 수신하고 상기 정정되고 DBI 디코딩된 제1 데이터를 상기 정정되고 그리고 상기 정정된 제1 ECC 데이터로서 생성하는 단계
    를 더 포함하는 방법.
  13. 제11항에 있어서,
    상기 제1 데이터 및 상기 제1 ECC 데이터를 수신하고 정정된 제1 데이터 및 정정된 제1 ECC 데이터를 생성하는 단계; 및
    상기 정정된 제1 데이터 및 상기 정정된 DBI 데이터를 수신하고 상기 정정되고 DBI 디코딩된 제1 데이터를 생성하는 단계
    를 더 포함하는 방법.
  14. 제11항에 있어서,
    상기 메모리 어레이로부터 제2 데이터 및 제3 ECC 데이터를 수신하고 정정된 제2 데이터 및 정정된 제3 ECC 데이터를 생성하는 단계를 더 포함하는 방법.
  15. 제14항에 있어서,
    상기 정정된 제2 데이터에 응답하여 추가 DBI 데이터를 생성하는 단계; 및
    상기 추가 DBI 데이터에 응답하여 제4 ECC 데이터를 생성하는 단계
    를 더 포함하는 방법.
  16. 제14항에 있어서,
    제3 데이터, 상기 추가 DBI 데이터, 상기 정정된 제3 ECC 데이터 및 제4 ECC 데이터를 외부적으로 출력하는 단계를 더 포함하고,
    상기 제3 데이터는 상기 정정된 제2 데이터 및 상기 추가 DBI 데이터에 응답하여 생성되는 방법.
  17. 방법으로서,
    제1 데이터 및 상기 제1 데이터와 연관된 제1 ECC 데이터를 수신하는 단계;
    제1 ECC 디코딩을 실행함으로써 상기 제1 데이터 및 상기 제1 ECC 데이터에 적어도 부분적으로 응답하여 정정된 제1 데이터 및 정정된 제1 ECC 데이터를 생성하는 단계;
    상기 정정된 제1 데이터 및 상기 정정된 제1 ECC 데이터를 상기 메모리 어레이에 저장하는 단계;
    상기 메모리 어레이로부터 제2 데이터 및 상기 제2 데이터에 대응하는 제2 ECC 데이터를 수신하는 단계;
    제2 ECC 디코딩을 실행함으로써 정정된 제2 데이터 및 정정된 제2 ECC 데이터를 생성하는 단계; 및
    상기 정정된 제2 데이터 및 상기 정정된 제2 ECC 데이터를 송신하는 단계
    를 포함하는 방법.
  18. 제17항에 있어서, 상기 제1 ECC 디코딩 및 상기 제2 ECC 디코딩 각각은 공통 H-매트릭스에 기초하여 실행되는 방법.
  19. 제17항에 있어서, 상기 제2 데이터는 DBI 데이터이고 상기 제1 데이터는 상기 DBI 데이터에 기초하여 인코딩된 DBI이며,
    상기 제2 ECC 데이터에 응답하여 상기 DBI 데이터에 대해 제2 ECC 디코딩을 실행함으로써 정정된 DBI 데이터를 생성하는 단계;
    상기 정정된 DBI 데이터에 응답하여 상기 제1 데이터에 대해 DBI 디코딩을 실행함으로써 중간 제1 데이터를 생성하는 단계; 및
    상기 중간 제1 데이터 및 상기 제1 ECC 데이터에 대해 상기 제1 ECC 디코딩을 실행함으로써 상기 정정된 제1 데이터 및 상기 정정된 제1 ECC 데이터를 생성하는 단계
    를 더 포함하는 방법.
  20. 제17항에 있어서, 상기 제2 데이터는 DBI 데이터이고 상기 제1 데이터는 상기 DBI 데이터에 기초하여 인코딩된 DBI이며,
    상기 제1 데이터 및 상기 제1 ECC 데이터에 대해 상기 제1 ECC 디코딩을 실행함으로써 중간 제1 데이터 및 상기 정정된 제1 ECC 데이터를 생성하는 단계;
    상기 DBI 데이터 및 상기 제2 ECC 데이터에 대해 제2 ECC 디코딩을 실행함으로써 정정된 DBI 데이터를 생성하는 단계; 및
    상기 정정된 DBI 데이터에 응답하여 상기 중간 제1 데이터에 대해 DBI 디코딩을 실행함으로써 상기 정정된 제1 데이터를 생성하는 단계
    를 더 포함하는 방법.
  21. 제20항에 있어서,
    상기 메모리 어레이로부터 제2 데이터 및 상기 제2 데이터에 대응하는 제2 ECC 데이터를 수신하는 단계;
    상기 제2 데이터 및 상기 제2 ECC 데이터에 대해 제3 ECC 디코딩을 실행함으로써 중간 제2 데이터 및 정정된 제2 ECC 데이터를 생성하는 단계;
    상기 중간 제2 데이터에 대해 DBI 인코딩을 실행함으로써 정정된 제2 데이터 및 추가 DBI 데이터를 생성하는 단계;
    상기 추가 DBI 데이터에 대해 ECC 인코딩을 실행함으로써 제3 ECC 데이터를 생성하는 단계;
    상기 정정된 제2 데이터, 정정된 제2 ECC 데이터, 추가 DBI 데이터 및 상기 제3 ECC 데이터를 송신하는 단계
    를 더 포함하는 방법.
KR1020237036124A 2018-09-10 2019-09-09 반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법 KR20230153497A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16/126,991 2018-09-10
US16/126,991 US10795759B2 (en) 2018-09-10 2018-09-10 Apparatuses and methods for error correction coding and data bus inversion for semiconductor memories
PCT/US2019/050177 WO2020055731A1 (en) 2018-09-10 2019-09-09 Apparatuses and methods for error correction coding and data bus inversion for semiconductor memories
KR1020217009065A KR102594059B1 (ko) 2018-09-10 2019-09-09 반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217009065A Division KR102594059B1 (ko) 2018-09-10 2019-09-09 반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20230153497A true KR20230153497A (ko) 2023-11-06

Family

ID=69720787

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237036124A KR20230153497A (ko) 2018-09-10 2019-09-09 반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법
KR1020217009065A KR102594059B1 (ko) 2018-09-10 2019-09-09 반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217009065A KR102594059B1 (ko) 2018-09-10 2019-09-09 반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법

Country Status (6)

Country Link
US (2) US10795759B2 (ko)
EP (1) EP3850488A4 (ko)
KR (2) KR20230153497A (ko)
CN (1) CN112384897A (ko)
TW (2) TWI735026B (ko)
WO (1) WO2020055731A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795759B2 (en) 2018-09-10 2020-10-06 Micron Technology, Inc. Apparatuses and methods for error correction coding and data bus inversion for semiconductor memories
US11068340B2 (en) * 2019-06-19 2021-07-20 Samsung Electronics Co., Ltd. Semiconductor memory devices and memory systems
JP6994649B2 (ja) * 2019-07-09 2022-01-14 パナソニックIpマネジメント株式会社 半導体メモリデバイス、エラー通知方法
US11816339B2 (en) * 2020-09-07 2023-11-14 Micron Technology, Inc. Selectable error control for memory device
US11605441B1 (en) 2021-08-30 2023-03-14 Samsung Electronics Co., Ltd. Memory systems having memory devices therein with enhanced error correction capability and methods of operating same
DE102022106281A1 (de) 2022-03-17 2023-09-21 Aesculap Ag Instrumententracking und -inspektion zur automatischen Identifikation medizinischer/chirurgischer Gegenstände

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3305966B2 (ja) * 1995-12-25 2002-07-24 ソニー株式会社 データ復号装置及びその方法並びにデータ再生装置
JP3871471B2 (ja) * 1999-07-12 2007-01-24 松下電器産業株式会社 Ecc回路搭載半導体記憶装置及びその検査方法
US6691276B2 (en) * 2001-06-25 2004-02-10 Intel Corporation Method for detecting and correcting failures in a memory system
US7143332B1 (en) 2003-12-16 2006-11-28 Xilinx, Inc. Methods and structures for providing programmable width and error correction in memory arrays in programmable logic devices
US8127204B2 (en) * 2008-08-15 2012-02-28 Micron Technology, Inc. Memory system and method using a memory device die stacked with a logic die using data encoding, and system using the memory system
US8181101B2 (en) * 2009-01-30 2012-05-15 International Business Machines Corporation Data bus system, its encoder/decoder and encoding/decoding method
US8677211B2 (en) * 2010-12-23 2014-03-18 International Business Machines Corporation Data bus inversion using spare error correction bits
US8484542B2 (en) 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data
JP5204868B2 (ja) * 2011-04-12 2013-06-05 シャープ株式会社 半導体記憶装置
US8954825B2 (en) * 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization
KR102094878B1 (ko) * 2014-02-10 2020-03-30 에스케이하이닉스 주식회사 반도체 메모리 장치 및 동작 방법
US9405721B2 (en) * 2014-06-06 2016-08-02 Micron Technology, Inc. Apparatuses and methods for performing a databus inversion operation
US9979416B2 (en) * 2014-12-10 2018-05-22 Rambus Inc. Memory controller and method of data bus inversion using an error detection correction code
JP2016126813A (ja) 2015-01-08 2016-07-11 マイクロン テクノロジー, インク. 半導体装置
KR102324769B1 (ko) 2015-06-29 2021-11-10 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US10268539B2 (en) * 2015-12-28 2019-04-23 Intel Corporation Apparatus and method for multi-bit error detection and correction
KR20170121798A (ko) * 2016-04-26 2017-11-03 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
US10067827B2 (en) 2016-06-29 2018-09-04 Micron Technology, Inc. Error correction code event detection
KR20180072026A (ko) * 2016-12-20 2018-06-29 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 그의 동작 방법
US10795759B2 (en) 2018-09-10 2020-10-06 Micron Technology, Inc. Apparatuses and methods for error correction coding and data bus inversion for semiconductor memories

Also Published As

Publication number Publication date
TWI735026B (zh) 2021-08-01
EP3850488A4 (en) 2022-06-01
EP3850488A1 (en) 2021-07-21
US11314591B2 (en) 2022-04-26
KR102594059B1 (ko) 2023-10-25
TW202022881A (zh) 2020-06-16
CN112384897A (zh) 2021-02-19
WO2020055731A1 (en) 2020-03-19
TWI786707B (zh) 2022-12-11
US20200081769A1 (en) 2020-03-12
US10795759B2 (en) 2020-10-06
KR20210040162A (ko) 2021-04-12
US20200409786A1 (en) 2020-12-31
TW202139203A (zh) 2021-10-16

Similar Documents

Publication Publication Date Title
KR102594059B1 (ko) 반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법
CN110800056B (zh) 用于使用共享地址路径在存取存储器排组的同时刷新另一存储器排组的系统和方法
US11681579B2 (en) Semiconductor memory devices and memory systems including the same
US10297294B2 (en) Apparatuses and methods for performing intra-module databus inversion operations
US10338997B2 (en) Apparatuses and methods for fixing a logic level of an internal signal line
US11276456B2 (en) Systems and methods for capture and replacement of hammered word line address
US11544010B2 (en) Apparatuses and methods to mask write operations for a mode of operation using ECC circuitry
CN111627487A (zh) 占据面积减少的熔丝电路
US6304502B1 (en) Semiconductor memory device connected to memory controller and memory system employing the same
US11923039B2 (en) Apparatuses and methods including multilevel command and address signals
CN112289367A (zh) 半导体存储装置和操作半导体存储装置的方法
CN110942798A (zh) 半导体存储器件、存储系统及操作半导体存储器件的方法
CN114627957A (zh) 存储器装置和包括该存储器装置的存储器系统
US11947810B2 (en) Semiconductor memory device and memory system including the same
US11334457B1 (en) Semiconductor memory device and memory system including the same
KR20220095576A (ko) 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
CN112820342A (zh) 对列平面压缩数据进行编码的装置和方法
US11928021B2 (en) Systems and methods for address fault detection
US20230186960A1 (en) Memory device, memory system having the same, and method of operating the same
CN111108559B (zh) 写突发期间的功率减小技术
JP2006092634A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal