KR20180023079A - 반도체시스템 - Google Patents

반도체시스템 Download PDF

Info

Publication number
KR20180023079A
KR20180023079A KR1020160106757A KR20160106757A KR20180023079A KR 20180023079 A KR20180023079 A KR 20180023079A KR 1020160106757 A KR1020160106757 A KR 1020160106757A KR 20160106757 A KR20160106757 A KR 20160106757A KR 20180023079 A KR20180023079 A KR 20180023079A
Authority
KR
South Korea
Prior art keywords
data
host
parity
media
bit
Prior art date
Application number
KR1020160106757A
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 에스케이하이닉스 주식회사
Priority to KR1020160106757A priority Critical patent/KR20180023079A/ko
Priority to US15/611,151 priority patent/US10261860B2/en
Publication of KR20180023079A publication Critical patent/KR20180023079A/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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • 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
    • 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
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • 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

Abstract

반도체시스템은 호스트 및 미디어컨트롤러를 포함한다. 상기 호스트는 오류체크매트릭스를 토대로 제1 호스트데이터로부터 제1 호스트패러티를 생성한다. 상기 미디어컨트롤러는 제1 입출력회로 및 제2 입출력회로를 포함한다. 제1 입출력회로는 상기 오류체크매트릭스를 토대로 상기 제1 호스트패러티를 사용하여 상기 제1 호스트데이터에 포함된 에러를 정정함으로써 제1 내부데이터를 생성한다. 상기 제2 입출력회로는 상기 제1 내부데이터로부터 상기 제1 미디어데이터 및 상기 제1 미디어패러티를 생성한다.

Description

반도체시스템{SEMICONDUCTOR SYSTEM}
본 발명은 오류정정코드를 사용하여 데이터를 전송하는 반도체시스템에 관한 것이다.
최근 반도체장치의 동작속도를 증가시키기 위해 클럭 사이클(cycle)마다 4비트 또는 8비트의 데이터를 입/출력하는 DDR2, DDR3 방식 등이 사용되고 있다. 데이터의 입/출력 속도가 빨라지는 경우 데이터가 전송되는 과정 중 발생되는 오류의 발생 확률도 증가 되므로, 데이터 전송의 신뢰성을 보장하기 위한 별도의 장치와 방법이 추가적으로 요구되고 있다.
데이터 전송시마다 오류 발생 여부를 확인할 수 있는 오류코드를 생성하여 데이터와 함께 전송함으로써, 데이터 전송의 신뢰성을 보장하는 방법을 사용하고 있다. 오류코드에는 발생한 오류를 검출할 수 있는 오류검출코드(Error Detection Code, EDC)와, 오류 발생시 이를 자체적으로 정정할 수 있는 오류정정코드(Error Correction Code, ECC) 등이 있다.
본 발명은 호스트와 미디어간의 데이터 전송을 제어하는 미디어컨트롤러를 포함하는 반도체시스템을 제공한다.
이를 위해 본 발명은 오류체크매트릭스를 토대로 제1 호스트데이터로부터 제1 호스트패러티를 생성하는 호스트; 및 제1 입출력회로 및 제2 입출력회로를 포함하고, 상기 제1 호스트데이터 및 제1 호스트패러티를 수신하여 제1 미디어데이터 및 제1 미디어패러티를 생성하는 미디어컨트롤러를 포함하되, 상기 제1 입출력회로는 상기 오류체크매트릭스를 토대로 상기 제1 호스트패러티를 사용하여 상기 제1 호스트데이터에 포함된 에러를 정정함으로써 제1 내부데이터를 생성하고, 상기 제2 입출력회로는 상기 제1 내부데이터로부터 상기 제1 미디어데이터 및 상기 제1 미디어패러티를 생성하는 반도체시스템을 제공한다.
또한, 본 발명은 오류체크매트릭스를 토대로 제1 호스트데이터로부터 제1 호스트패러티를 생성하는 호스트; 및 제1 디코더 및 제1 인코더를 포함하고, 상기 제1 호스트데이터 및 제1 호스트패러티를 수신하여 제1 미디어데이터 및 제1 미디어패러티를 생성하는 미디어컨트롤러를 포함하되, 상기 제1 디코더는 상기 오류체크매트릭스를 토대로 상기 제1 호스트패러티를 사용하여 상기 제1 호스트데이터에 포함된 에러를 정정한 후 상기 에러가 정정된 상기 제1 호스트데이터를 제1 내부데이터로 출력하고, 상기 제1 인코더는 상기 오류체크매트릭스를 토대로 제2 내부데이터로부터 제2 호스트데이터 및 제2 호스트패러티를 생성하여 상기 호스트로 전송하는 반도체시스템을 제공한다.
또한, 본 발명은 오류체크매트릭스를 토대로 제1 호스트데이터로부터 제1 호스트패러티를 생성하고, 상기 오류체크매트릭스로부터 로우정보를 추출하여 출력하는 호스트; 및 제1 디코더 및 제1 인코더를 포함하고, 상기 제1 호스트데이터 및 제1 호스트패러티를 수신하여 제1 미디어데이터 및 제1 미디어패러티를 생성하는 미디어컨트롤러를 포함하되, 상기 제1 디코더는 상기 로우정보를 토대로 상기 제1 호스트패러티를 사용하여 상기 제1 호스트데이터에 포함된 에러를 정정한 후 상기 에러가 정정된 상기 제1 호스트데이터를 제1 내부데이터로 출력하고, 상기 제1 인코더는 상기 로우정보를 토대로 제2 내부데이터로부터 제2 호스트데이터 및 제2 호스트패러티를 생성하여 상기 호스트로 전송하는 반도체시스템을 제공한다.
본 발명에 의하면 호스트에서 사용된 오류정정코드의 정보를 미디어컨트롤러가 이용하여 데이터를 전송함으로써, 패러티 저장을 위한 회로를 최소화하면서 데이터 전송 효율을 향상시킬 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 반도체시스템의 구성을 도시한 블록도이다.
도 2는 도 1에 도시된 반도체시스템에서 사용되는 오류체크매트릭스의 일 실시예를 도시한 표이다.
도 3은 도 1에 도시된 반도체시스템에 포함된 제1 디코더의 일 실시예에 따른 구성을 도시한 블럭도이다.
도 4는 도 3에 도시된 제1 디코더에 포함된 신드롬생성회로의 일 실시예에 따른 회로도이다.
도 5는 도 1에 도시된 반도체시스템에 포함된 제1 인코더의 일 실시예에 따른 구성을 도시한 블럭도이다.
도 6은 본 발명의 다른 실시예에 따른 반도체시스템의 구성을 도시한 블록도이다.
도 7은 도 6에 도시된 반도체시스템에서 사용되는 오류체크매트릭스의 제1 내지 제3 로우정보의 일 실시예를 도시한 표이다.
도 8은 도 6에 도시된 반도체시스템에 포함된 제1 디코더의 일 실시예에 따른 구성을 도시한 블럭도이다.
도 9는 도 8에 도시된 제1 디코더에 포함된 신드롬생성회로의 일 실시예에 따른 회로도이다.
도 10은 도 6에 도시된 반도체시스템에 포함된 제1 인코더의 일 실시예에 따른 회로도이다.
도 11 및 도 12는 도 1 및 도 6에 도시된 반도체시스템이 적용된 전자시스템의 일 실시예에 따른 구성을 도시한 도면이다.
이하, 실시예를 통하여 본 발명을 더욱 상세히 설명하기로 한다. 이들 실시예는 단지 본 발명을 예시하기 위한 것이며, 본 발명의 권리 보호 범위가 이들 실시예에 의해 제한되는 것은 아니다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 반도체시스템은 호스트(1), 미디어컨트롤러(2) 및 미디어(3)를 포함할 수 있다.
호스트(1)는 제1 호스트데이터(HD1<1:M>) 및 제1 호스트패러티(HP1<1:K>)를 미디어컨트롤러(2)에 인가할 수 있다. 호스트(1)는 해밍코드(Hamming Code)를 이용한 오류정정코드(Error Correction Code, ECC) 방식을 사용하여 제1 호스트데이터(HD1<1:M>)로부터 제1 호스트패러티(HP1<1:K>)를 생성할 수 있다. 해밍코드(Hamming Code)는 데이터의 오류를 정정하기 위한 오류체크매트릭스에 의해 구현된다. 호스트(1)가 해밍코드를 이용한 오류정정코드 방식을 사용하는 것은 일 실시예일 뿐 실시예에 따라서 다양한 방식으로 구현된 오류정정을 위한 코드를 사용할 수 있다. 호스트(1)는 제2 호스트데이터(HD2<1:M>) 및 제2 호스트패러티(HP2<1:K>)를 미디어컨트롤러(2)로부터 입력받을 수 있다. 호스트(1)는 오류체크매트릭스를 토대로 제2 호스트데이터(HD2<1:M>) 및 제2 호스트패러티(HP2<1:K>)를 이용하여 제2 호스트데이터(HD2<1:M>)에 포함된 에러를 정정할 수 있다.
미디어컨트롤러(2)는 제1 입출력회로(21) 및 제2 입출력회로(22)를 포함할 수 있다.
제1 입출력회로(21)는 오류체크매트릭스저장회로(211), 제1 디코더(212) 및 제1 인코더(213)를 포함할 수 있다. 오류체크매트릭스저장회로(211)는 호스트(1)에서 사용된 오류체크매트릭스에 대한 오류체크매트릭스정보(ECM)가 저장될 수 있다. 제1 디코더(212)는 오류체크매트릭스정보(ECM)를 토대로 제1 호스트데이터(HD1<1:M>) 및 제1 호스트패러티(HP1<1:K>)로부터 제1 내부데이터(ID1<1:M>)를 생성할 수 있다. 제1 디코더(212)는 제1 호스트패러티(HP1<1:K>)를 사용하여 제1 호스트데이터(HD1<1:M>)에 포함된 에러를 정정한 후 에러가 정정된 제1 호스트데이터(HD1<1:M>)를 제1 내부데이터(ID1<1:M>)로 출력할 수 있다. 제1 인코더(213)는 제2 내부데이터(ID2<1:M>)로부터 제2 호스트데이터(HD2<1:M>) 및 제2 호스트패러티(HP2<1:K>)를 생성할 수 있다. 제1 인코더(213)는 오류체크매트릭스정보(ECM)를 토대로 제2 호스트데이터(HD2<1:M>)에 포함된 에러를 정정하기 위한 제2 호스트패러티(HP2<1:K>)를 생성할 수 있다. 제1 인코더(213)는 제2 내부데이터(ID2<1:M>)를 버퍼링하여 제2 호스트데이터(HD2<1:M>)로 출력할 수 있다. 제1 디코더(212) 및 제1 인코더(213)의 보다 구체적인 구성 및 동작은 도 3 내지 도 5를 참고하여 후술한다.
제2 입출력회로(22)는 제2 인코더(221) 및 제2 디코더(222)를 포함할 수 있다. 제2 인코더(221)는 제1 내부데이터(ID1<1:M>)로부터 제1 미디어데이터(MD1<1:M>) 및 제1 미디어패러티(MP1<1:J>)를 생성할 수 있다. 제2 인코더(221)는 예들 들어, 해밍코드(Hamming Code) 또는 BCH코드(BCH code)를 사용하여 제1 미디어데이터(MD1<1:M>)에 포함된 에러를 정정하기 위한 제1 미디어패러티(MP1<1:J>)를 생성할 수 있다. 제2 인코더(221)는 제1 내부데이터(ID1<1:M>)를 버퍼링하여 제1 미디어데이터(MD1<1:M>)로 출력할 수 있다. 제2 디코더(222)는 예들 들어, 해밍코드(Hamming Code) 또는 BCH코드(BCH code)를 사용하여 제2 미디어데이터(MD2<1:M>) 및 제2 미디어패러티(MP2<1:J>)로부터 제2 내부데이터(ID2<1:M>)를 생성할 수 있다. 제2 디코더(222)는 제2 미디어패러티(MP2<1:J>)를 토대로 제2 미디어데이터(MD2<1:M>)에 포함된 에러를 정정한 후 에러가 정정된 제2 미디어데이터(MD2<1:M>)를 제2 내부데이터(ID2<1:M>)로 출력할 수 있다.
미디어(3)는 해밍코드(Hamming Code) 또는 BCH코드(BCH code)를 토대로 제1 미디어패러티(MP1<1:J>)를 사용하여 제1 미디어데이터(MD1<1:M>)에 포함된 에러를 정정할 수 있다. 미디어(3)는 해밍코드(Hamming Code) 또는 BCH코드(BCH code)를 토대로 제2 미디어데이터(MD2<1:M>)에 포함된 에러를 정정하기 위한 제2 미디어패러티(MP2<1:J>)를 생성할 수 있다.
본 실시예에 따른 반도체시스템은 미디어컨트롤러(2)에 제1 디코더(212) 및 제1 인코더(213)를 포함한 제1 입출력회로(21)를 구비한다. 제1 디코더(212)에 의해 미디어컨트롤러(2)의 내부에서는 패러티 없이 제1 내부데이터(ID1<1:M>)만 생성되어 제2 인코더(221)에 전달되므로, 제2 인코더(221)에서 생성되는 제1 미디어패러티(MP1<1:J>)에 포함된 비트 수의 증가가 최소화된다. 또한, 본 실시예에 따른 반도체시스템은 제1 입출력회로(21)에 제2 호스트데이터(HD2<1:M>) 및 제2 호스트패러티(HP2<1:K>)를 생성할 수 있는 제1 인코더(213)를 구비함에 따라 제2 내부데이터(ID2<1:M>)를 생성하는 데 사용되는 제2 미디어패러티(MP2<1:J>)를 적은 비트 수로 구현할 수 있다. 즉, 본 실시예에 따른 반도체시스템은 미디어컨트롤러(2)에 제1 디코더(212) 및 제1 인코더(213)를 포함한 제1 입출력회로(21)를 구비함으로써, 미디어(3)에 제1 미디어패러티(MP1<1:J>) 및 제2 미디어패러티(MP2<1:J>)를 저장하는데 필요한 회로를 최소화하여 전송 효율을 향상시킨다.
도 2를 참고하면 본 발명의 일 실시예에 따른 오류체크매트릭스를 확인할 수 있다.
도 2에 도시된 바와 같이, 오류체크매트릭스의 제1 컬럼라인(C1)에 위치한 컬럼벡터는 '1110'으로 설정되고, 제2 컬럼라인(C2)에 위치한 컬럼벡터는 '0111'로 설정되며, 제3 컬럼라인(C3)에 위치한 컬럼벡터는 '1011'로 설정되고, 제4 컬럼라인(C4)에 위치한 컬럼벡터는 '1101'로 설정될 수 있다. 또한, 오류체크매트릭스의 제5 컬럼라인(C5)에 위치한 컬럼벡터는 '1010'으로 설정되고, 제6 컬럼라인(C6)에 위치한 컬럼벡터는 '0110'으로 설정되며, 제7 컬럼라인(C7)에 위치한 컬럼벡터는 '1001'로 설정되고, 제8 컬럼라인(C8)에 위치한 컬럼벡터는 '0101'로 설정될 수 있다. 여기서, '1'은 로직하이레벨이고, '0'은 로직로우레벨로 설정됨을 의미한다.
도 2에 도시된 바와 같이, 오류체크매트릭스의 제1 로우라인(R1)에 위치한 오류체크매트릭스의 로우벡터는 '10111010'으로 설정되고, 제2 로우라인(R2)에 위치한 오류체크매트릭스의 로우벡터는 '11010101'로 설정되며, 제3 로우라인(R3)에 위치한 오류체크매트릭스의 로우벡터는 '11101100'으로 설정되고, 제4 로우라인(R4)에 위치한 오류체크매트릭스의 로우벡터는 '01110011'로 설정될 수 있다.
도 2에 도시된 오류체크매트릭스에 의해 4 비트의 패러티와 신드롬을 생성할 수 있고, 신드롬을 사용하여 데이터에 포함된 1 비트의 에러를 정정할 수 있다. 패러티, 신드롬의 비트 수 및 신드롬에 의해 정정되는 데이터의 비트 수는 실시예에 따라서 다양하게 설정될 수 있다. 도 2에 도시된 일 실시예에 따른 오류체크매트릭스를 이용하여 패러티와 신드롬을 생성하고, 에러를 정정하는 구성 및 동작을 도 3 내지 도 5를 참고하여 구체적으로 살펴보면 다음과 같다. 도 3 내지 도 5에 도시된 실시예에 포함된 신호의 비트 수는 실시예에 따라서 다르게 설정될 수 있다.
도 3에 도시된 바와 같이, 제1 디코더(212)는 신드롬생성회로(215) 및 데이터교정회로(216)를 포함할 수 있다.
신드롬생성회로(215)는 오류체크매트릭스정보(ECM)를 토대로 제1 호스트데이터(HD1<1:8>) 및 제1 호스트패러티(HP1<1:4>)로부터 신드롬(S<1:4>)을 생성할 수 있다. 신드롬생성회로(215)의 보다 구체적인 구성 및 동작은 도 4를 참고하여 후술한다.
데이터교정회로(216)는 오류체크매트릭스정보(ECM) 및 신드롬(S<1:4>)을 이용하여 제1 호스트데이터(HD1<1:8>)에 포함된 에러를 정정하여 제1 내부데이터(ID1<1:8>)를 생성할 수 있다. 좀 더 구체적으로, 데이터교정회로(216)는 신드롬(S<1:4>)의 논리레벨조합과 오류체크매트릭스정보(ECM)에 포함된 컬럼벡터들을 비교하여 제1 호스트데이터(HD1<1:8>)에 포함된 에러를 정정할 수 있다. 예를 들어, 신드롬(S<1:4>)의 논리레벨조합이 제6 컬럼라인(C6)에 위치한 컬럼벡터인 '0110'과 동일한 경우 제1 호스트데이터의 6번째 비트(HD1<6>)에 에러가 포함된 것을 의미하므로, 제1 호스트데이터(HD1<1:8>)에 포함된 에러를 정정할 수 있다.
도 4를 참고하면 신드롬생성회로(215)는 제1 신드롬생성회로(41), 제2 신드롬생성회로(42), 제3 신드롬생성회로(43) 및 제4 신드롬생성회로(44)를 포함할 수 있다.
제1 신드롬생성회로(41)는 배타적논리합소자들(XOR411~XOR414)을 포함할 수 있다. 도 2에 도시된 오류체크매트릭스에 있어 제1 로우라인(R1)에 위치한 로우벡터는 '10111010'으로 설정되므로, 제1 신드롬(S<1>)은 제1 호스트데이터의 첫번째 비트(HD1<1>), 제1 호스트데이터의 세번째 비트(HD1<3>), 제1 호스트데이터의 네번째 비트(HD1<4>), 제1 호스트데이터의 다섯번째 비트(HD1<5>), 제1 호스트데이터의 일곱번째 비트(HD1<7>) 및 제1 호스트패러티의 첫번째 비트(HP1<1>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
제2 신드롬생성회로(42)는 배타적논리합소자들(XOR421~XOR424)을 포함할 수 있다. 도 2에 도시된 오류체크매트릭스에 있어 제2 로우라인(R2)에 위치한 로우벡터는 '11010101'로 설정되므로, 제2 신드롬(S<2>)은 제1 호스트데이터의 첫번째 비트(HD1<1>), 제1 호스트데이터의 두번째 비트(HD1<2>), 제1 호스트데이터의 네번째 비트(HD1<4>), 제1 호스트데이터의 여섯번째 비트(HD1<6>), 제1 호스트데이터의 여덟번째 비트(HD1<8>) 및 제1 호스트패러티의 두번째 비트(HP1<2>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
제3 신드롬생성회로(43)는 배타적논리합소자들(XOR431~XOR434)을 포함할 수 있다. 도 2에 도시된 오류체크매트릭스에 있어 제3 로우라인(R3)에 위치한 로우벡터는 '11101100'으로 설정되므로, 제3 신드롬(S<3>)은 제1 호스트데이터의 첫번째 비트(HD1<1>), 제1 호스트데이터의 두번째 비트(HD1<2>), 제1 호스트데이터의 세번째 비트(HD1<3>), 제1 호스트데이터의 다섯번째 비트(HD1<5>), 제1 호스트데이터의 여섯번째 비트(HD1<6>) 및 제1 호스트패러티의 세번째 비트(HP1<3>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
제4 신드롬생성회로(44)는 배타적논리합소자들(XOR441~XOR444)을 포함할 수 있다. 도 2에 도시된 오류체크매트릭스에 있어 제4 로우라인(R4)에 위치한 로우벡터는 '01110011'로 설정되므로, 제4 신드롬(S<4>)은 제1 호스트데이터의 두번째 비트(HD1<2>), 제1 호스트데이터의 세번째 비트(HD1<3>), 제1 호스트데이터의 네번째 비트(HD1<4>), 제1 호스트데이터의 일곱번째 비트(HD1<7>), 제1 호스트데이터의 여덟번째 비트(HD1<8>) 및 제1 호스트패러티의 네번째 비트(HP1<4>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
도 5를 참고하면 제1 인코더(213)는 제1 패러티생성회로(51), 제2 패러티생성회로(52), 제3 패러티생성회로(53), 제4 패러티생성회로(54) 및 호스트데이터생성회로(55)를 포함할 수 있다.
제1 패러티생성회로(51)는 배타적논리합소자들(XOR511~XOR513)을 포함할 수 있다. 도 2에 도시된 오류체크매트릭스에 있어 제1 로우라인(R1)에 위치한 로우벡터는 '10111010'으로 설정되므로, 제2 호스트패러티의 첫번째 비트(HP2<1>)는 제2 내부데이터의 첫번째 비트(ID2<1>), 제2 내부데이터의 세번째 비트(ID2<3>), 제2 내부데이터의 네번째 비트(ID2<4>), 제2 내부데이터의 다섯번째 비트(ID2<5>) 및 제2 내부데이터의 일곱번째 비트(ID2<7>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
제2 패러티생성회로(52)는 배타적논리합소자들(XOR521~XOR523)을 포함할 수 있다. 도 2에 도시된 오류체크매트릭스에 있어 제2 로우라인(R2)에 위치한 로우벡터는 '11010101'로 설정되므로, 제2 호스트패러티의 두번째 비트(HP2<2>)는 제2 내부데이터의 첫번째 비트(ID2<1>), 제2 내부데이터의 두번째 비트(ID2<2>), 제2 내부데이터의 네번째 비트(ID2<4>), 제2 내부데이터의 여섯번째 비트(ID2<6>) 및 제2 내부데이터의 여덟번째 비트(ID2<8>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
제3 패러티생성회로(53)는 배타적논리합소자들(XOR531~XOR533)을 포함할 수 있다. 도 2에 도시된 오류체크매트릭스에 있어 제3 로우라인(R3)에 위치한 로우벡터는 '11101100'으로 설정되므로, 제2 호스트패러티의 세번째 비트(HP2<3>)는 제2 내부데이터의 첫번째 비트(ID2<1>), 제2 내부데이터의 두번째 비트(ID2<2>), 제2 내부데이터의 세번째 비트(ID2<3>), 제2 내부데이터의 다섯번째 비트(ID2<5>) 및 제2 내부데이터의 여섯번째 비트(ID2<6>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
제4 패러티생성회로(54)는 배타적논리합소자들(XOR541~XOR543)을 포함할 수 있다. 도 2에 도시된 오류체크매트릭스에 있어 제4 로우라인(R4)에 위치한 로우벡터는 '01110011'로 설정되므로, 제2 호스트패러티의 네번째 비트(HP2<4>)는 제2 내부데이터의 두번째 비트(ID2<2>), 제2 내부데이터의 세번째 비트(ID2<3>), 제2 내부데이터의 네번째 비트(ID2<4>), 제2 내부데이터의 일곱번째 비트(ID2<7>) 및 제2 내부데이터의 여덟번째 비트(ID2<8>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
호스트데이터생성회로(55)는 제2 내부데이터(ID2<1:8>)를 버퍼링하여 제2 호스트데이터(HD2<1:8>)를 생성할 수 있다. 호스트데이터생성회로(55)에 포함된 인버터의 수는 실시예에 따라 다양하게 설정될 수 있다. 실시예에 따라서 호스트데이터생성회로(55)는 제2 내부데이터(ID2<1:8>)를 바이패스하여 제2 호스트데이터(HD2<1:8>)로 출력할 수도 있다.
도 6에 도시된 바와 같이, 본 발명의 일 실시예에 따른 반도체시스템은 호스트(61), 미디어컨트롤러(62) 및 미디어(63)를 포함할 수 있다.
호스트(61)는 제1 호스트데이터(HD1<1:M>) 및 제1 호스트패러티(HP1<1:K>)를 미디어컨트롤러(62)에 인가할 수 있다. 호스트(61)는 예를 들어, 해밍코드(Hamming Code)를 이용한 오류정정코드(Error Correction Code, ECC) 방식을 사용하여 제1 호스트데이터(HD1<1:M>)로부터 제1 호스트패러티(HP1<1:K>)를 생성할 수 있다. 해밍코드(Hamming Code)는 데이터의 오류를 정정하기 위한 오류체크매트릭스에 의해 구현된다. 호스트(61)는 오류체크매트릭스에 포함된 제1 로우정보(R1<1:M>), 제2 로우정보(R2<1:M>) 및 제3 로우정보(R3<1:M>)를 미디어컨트롤러(62)에 인가할 수 있다. 제1 로우정보(R1<1:M>)는 오류체크매트릭스의 첫번째 로우라인의 정보를 포함할 수 있다. 제2 로우정보(R2<1:M>)는 오류체크매트릭스의 두번째 로우라인의 정보를 포함할 수 있다. 제3 로우정보(R3<1:M>)는 오류체크매트릭스의 세번째 로우라인의 정보를 포함할 수 있다. 호스트(61)는 제2 호스트데이터(HD2<1:M>) 및 제2 호스트패러티(HP2<1:K>)를 미디어컨트롤러(62)로부터 입력받을 수 있다. 호스트(61)는 오류체크매트릭스를 토대로 제2 호스트데이터(HD2<1:M>) 및 제2 호스트패러티(HP2<1:K>)를 이용하여 제2 호스트데이터(HD2<1:M>)에 포함된 에러를 정정할 수 있다.
미디어컨트롤러(62)는 제1 디코더(621), 제1 인코더(622), 제2 인코더(623) 및 제2 디코더(624)를 포함할 수 있다.
제1 디코더(621)는 제1 로우정보(R1<1:M>), 제2 로우정보(R2<1:M>) 및 제3 로우정보(R3<1:M>)를 토대로 제1 호스트데이터(HD1<1:M>) 및 제1 호스트패러티(HP1<1:K>)로부터 제1 내부데이터(ID1<1:M>)를 생성할 수 있다. 제1 디코더(621)는 제1 호스트패러티(HP1<1:K>)를 사용하여 제1 호스트데이터(HD1<1:M>)에 포함된 에러를 정정한 후 에러가 정정된 제1 호스트데이터(HD1<1:M>)를 제1 내부데이터(ID1<1:M>)로 출력할 수 있다.
제1 인코더(622)는 제2 내부데이터(ID2<1:M>)로부터 제2 호스트데이터(HD2<1:M>) 및 제2 호스트패러티(HP2<1:K>)를 생성할 수 있다. 제1 인코더(622)는 제1 로우정보(R1<1:M>), 제2 로우정보(R2<1:M>) 및 제3 로우정보(R3<1:M>)를 토대로 제2 호스트데이터(HD2<1:M>)에 포함된 에러를 정정하기 위한 제2 호스트패러티(HP2<1:K>)를 생성할 수 있다. 제1 인코더(622)는 제2 내부데이터(ID2<1:M>)를 버퍼링하여 제2 호스트데이터(HD2<1:M>)로 출력할 수 있다. 제1 디코더(621) 및 제1 인코더(622)의 보다 구체적인 구성 및 동작은 도 8 내지 도 10을 참고하여 후술한다.
제2 인코더(623)는 제1 내부데이터(ID1<1:M>)로부터 제1 미디어데이터(MD1<1:M>) 및 제1 미디어패러티(MP1<1:J>)를 생성할 수 있다. 제2 인코더(623)는 해밍코드(Hamming Code) 또는 BCH코드(BCH code)를 사용하여 제1 미디어데이터(MD1<1:M>)에 포함된 에러를 정정하기 위한 제1 미디어패러티(MP1<1:J>)를 생성할 수 있다. 제2 인코더(623)는 제1 내부데이터(ID1<1:M>)를 버퍼링하여 제1 미디어데이터(MD1<1:M>)로 출력할 수 있다.
제2 디코더(624)는 해밍코드(Hamming Code) 또는 BCH코드(BCH code)를 사용하여 제2 미디어데이터(MD2<1:M>) 및 제2 미디어패러티(MP2<1:J>)로부터 제2 내부데이터(ID2<1:M>)를 생성할 수 있다. 제2 디코더(624)는 제2 미디어패러티(MP2<1:J>)를 토대로 제2 미디어데이터(MD2<1:M>)에 포함된 에러를 정정한 후 에러가 정정된 제2 미디어데이터(MD2<1:M>)를 제2 내부데이터(ID2<1:M>)로 출력할 수 있다.
미디어(63)는 해밍코드(Hamming Code) 또는 BCH코드(BCH code)를 토대로 제1 미디어패러티(MP1<1:J>)를 사용하여 제1 미디어데이터(MD1<1:M>)에 포함된 에러를 정정할 수 있다. 미디어(63)는 해밍코드(Hamming Code) 또는 BCH코드(BCH code)를 토대로 제2 미디어데이터(MD2<1:M>)에 포함된 에러를 정정하기 위한 제2 미디어패러티(MP2<1:J>)를 생성할 수 있다.
본 실시예에 따른 반도체시스템은 미디어컨트롤러(62)에 제1 디코더(621) 및 제1 인코더(622)를 구비한다. 제1 디코더(621)에 의해 미디어컨트롤러(62)의 내부에서는 패러티 없이 제1 내부데이터(ID1<1:M>)만 생성되어 제2 인코더(623)에 전달되므로, 제2 인코더(623)에서 생성되는 제1 미디어패러티(MP1<1:J>)에 포함된 비트 수의 증가가 최소화된다. 또한, 본 실시예에 따른 반도체시스템은 제2 호스트데이터(HD2<1:M>) 및 제2 호스트패러티(HP2<1:K>)를 생성할 수 있는 제1 인코더(622)를 구비함에 따라 제2 내부데이터(ID2<1:M>)를 생성하는 데 사용되는 제2 미디어패러티(MP2<1:J>)를 적은 비트 수로 구현할 수 있다. 즉, 본 실시예에 따른 반도체시스템은 미디어컨트롤러(62)에 제1 디코더(621) 및 제1 인코더(622)를 구비함으로써, 미디어(63)에 제1 미디어패러티(MP1<1:J>) 및 제2 미디어패러티(MP2<1:J>)를 저장하는데 필요한 회로를 최소화하여 전송 효율을 향상시킨다.
도 7을 참고하면 도 6에 도시된 반도체시스템에 사용되는 오류체크매트릭스의 일 실시예를 확인할 수 있다.
도 7에 도시된 바와 같이, 오류체크매트릭스의 제1 컬럼라인(C1)에 위치한 컬럼벡터는 '111'로 설정되고, 제2 컬럼라인(C2)에 위치한 컬럼벡터는 '011'로 설정되며, 제3 컬럼라인(C3)에 위치한 컬럼벡터는 '101'로 설정되고, 제4 컬럼라인(C4)에 위치한 컬럼벡터는 '110'으로 설정될 수 있다. 여기서, '1'은 로직하이레벨이고, '0'은 로직로우레벨로 설정됨을 의미한다.
도 7에 도시된 바와 같이, 오류체크매트릭스의 제1 로우라인(R1)에 위치한 오류체크매트릭스의 로우벡터는 '1011'로 설정되고, 제2 로우라인(R2)에 위치한 오류체크매트릭스의 로우벡터는 '1101'로 설정되며, 제3 로우라인(R3)에 위치한 오류체크매트릭스의 로우벡터는 '1110'으로 설정될 수 있다. 제1 로우정보(R1<1:M>)는 오류체크매트릭스의 제1 로우라인(R1)의 정보 '1011'로 설정되고, 제2 로우정보(R2<1:M>)는 오류체크매트릭스의 제2 로우라인(R2)의 정보 '1101'로 설정되며, 제3 로우정보(R3<1:M>)는 오류체크매트릭스의 제3 로우라인(R3)의 정보 '1110'으로 설정될 수 있다.
도 7에 도시된 오류체크매트릭스에 의해 3 비트의 패러티와 신드롬을 생성할 수 있고, 신드롬을 사용하여 데이터에 포함된 1 비트의 에러를 정정할 수 있다. 도 7에 도시된 오류체크매트릭스를 이용하여 패러티와 신드롬을 생성하고, 에러를 정정하는 구성 및 동작을 도 8 내지 10을 참고하여 구체적으로 살펴보면 다음과 같다.
도 8에 도시된 바와 같이, 제1 디코더(621)는 신드롬생성회로(626) 및 데이터교정회로(627)를 포함할 수 있다.
신드롬생성회로(626)는 제1 로우정보(R1<1:M>), 제2 로우정보(R2<1:M>) 및 제3 로우정보(R3<1:M>)를 토대로 제1 호스트데이터(HD1<1:4>) 및 제1 호스트패러티(HP1<1:3>)로부터 신드롬(S<1:3>)을 생성할 수 있다. 신드롬생성회로(626)의 보다 구체적인 구성 및 동작은 도 9를 참고하여 후술한다.
데이터교정회로(627)는 제1 로우정보(R1<1:M>), 제2 로우정보(R2<1:M>), 제3 로우정보(R3<1:M>) 및 신드롬(S<1:3>)을 이용하여 제1 호스트데이터(HD1<1:4>)에 포함된 에러를 정정하여 제1 내부데이터(ID1<1:4>)를 생성할 수 있다. 좀 더 구체적으로, 데이터교정회로(627)는 신드롬(S<1:3>)의 논리레벨조합과 제1 로우정보(R1<1:M>), 제2 로우정보(R2<1:M>) 및 제3 로우정보(R3<1:M>)에 의해 구현되는 오류체크매트릭스에 포함된 컬럼벡터들을 비교하여 제1 호스트데이터(HD1<1:4>)에 포함된 에러를 정정할 수 있다. 예를 들어, 신드롬(S<1:3>)의 논리레벨조합이 제3 컬럼라인(C3)에 위치한 컬럼벡터인 '101'과 동일한 경우 제1 호스트데이터의 3번째 비트(HD1<3>)에 에러가 포함된 것을 의미하므로, 제1 호스트데이터(HD1<1:4>)에 포함된 에러를 정정할 수 있다.
도 9를 참고하면 신드롬생성회로(626)는 제1 신드롬생성회로(71), 제2 신드롬생성회로(72) 및 제3 신드롬생성회로(73)를 포함할 수 있다.
제1 신드롬생성회로(71)는 제1 데이터버퍼(711) 및 제1 신드롬출력회로(712)를 포함할 수 있다.
제1 데이터버퍼(711)는 제1 로우정보의 첫번째 비트(R1<1>) 및 제1 호스트데이터의 첫번째 비트(HD1<1>)에 대한 논리곱 연산을 수행하여 제1 버퍼데이터의 첫번째 비트(BD1<1>)를 생성할 수 있다. 제1 데이터버퍼(711)는 제1 로우정보의 두번째 비트(R1<2>) 및 제1 호스트데이터의 두번째 비트(HD1<2>)에 대한 논리곱 연산을 수행하여 제1 버퍼데이터의 두번째 비트(BD1<2>)를 생성할 수 있다. 제1 데이터버퍼(711)는 제1 로우정보의 세번째 비트(R1<3>) 및 제1 호스트데이터의 세번째 비트(HD1<3>)에 대한 논리곱 연산을 수행하여 제1 버퍼데이터의 세번째 비트(BD1<3>)를 생성할 수 있다. 제1 데이터버퍼(711)는 제1 로우정보의 네번째 비트(R1<4>) 및 제1 호스트데이터의 네번째 비트(HD1<4>)에 대한 논리곱 연산을 수행하여 제1 버퍼데이터의 네번째 비트(BD1<4>)를 생성할 수 있다.
제1 신드롬출력회로(712)는 제1 버퍼데이터의 첫번째 비트(BD1<1>), 제1 버퍼데이터의 두번째 비트(BD1<2>), 제1 버퍼데이터의 세번째 비트(BD1<3>), 제1 버퍼데이터의 네번째 비트(BD1<4>) 및 제1 호스트패러티의 첫번째 비트(HP1<1>)에 대한 배타적논리합 연산 결과를 통해 신드롬의 첫번째 비트(S<1>)를 생성할 수 있다.
도 7에 도시된 오류체크매트릭스에 있어 제1 로우정보(R1<1:M>)는 '1011'로 설정될 수 있으므로, 제1 로우정보의 첫번째 비트(R1<1>)는 로직하이레벨로 설정될 수 있고, 제1 로우정보의 두번째 비트(R1<2>)는 로직로우레벨로 설정될 수 있으며, 제1 로우정보의 세번째 비트(R1<3>)는 로직하이레벨로 설정될 수 있고, 제1 로우정보의 네번째 비트(R1<4>)는 로직하이레벨로 설정될 수 있다. 제1 데이터버퍼(711)에서 출력되는 제1 버퍼데이터의 첫번째 비트(BD1<1>)는 제1 호스트데이터의 첫번째 비트(HD1<1>)를 버퍼링한 신호로 생성될 수 있다. 제1 데이터버퍼(711)에서 출력되는 제1 버퍼데이터의 두번째 비트(BD1<2>)는 로직로우레벨로 설정된 제1 로우정보의 두번째 비트(R1<2>)에 의해 로직로우레벨로 생성될 수 있다. 제1 데이터버퍼(711)에서 출력되는 제1 버퍼데이터의 세번째 비트(BD1<3>)는 제1 호스트데이터의 세번째 비트(HD1<3>)를 버퍼링한 신호로 생성될 수 있다. 제1 데이터버퍼(711)에서 출력되는 제1 버퍼데이터의 네번째 비트(BD1<4>)는 제1 호스트데이터의 네번째 비트(HD1<4>)를 버퍼링한 신호로 생성될 수 있다. 제1 신드롬의 첫번째 비트(S<1>)는 제1 버퍼데이터의 첫번째 비트(BD1<1>), 제1 버퍼데이터의 세번째 비트(BD1<3>), 제1 버퍼데이터의 네번째 비트(BD1<4>) 및 제1 호스트패러티의 첫번째 비트(HP1<1>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
제2 신드롬생성회로(72)는 제2 데이터버퍼(721) 및 제2 신드롬출력회로(722)를 포함할 수 있다.
제2 데이터버퍼(721)는 제2 로우정보의 첫번째 비트(R2<1>) 및 제1 호스트데이터의 첫번째 비트(HD1<1>)에 대한 논리곱 연산을 수행하여 제2 버퍼데이터의 첫번째 비트(BD2<1>)를 생성할 수 있다. 제2 데이터버퍼(721)는 제2 로우정보의 두번째 비트(R2<2>) 및 제1 호스트데이터의 두번째 비트(HD1<2>)에 대한 논리곱 연산을 수행하여 제2 버퍼데이터의 두번째 비트(BD2<2>)를 생성할 수 있다. 제2 데이터버퍼(721)는 제2 로우정보의 세번째 비트(R2<3>) 및 제1 호스트데이터의 세번째 비트(HD1<3>)에 대한 논리곱 연산을 수행하여 제2 버퍼데이터의 세번째 비트(BD2<3>)를 생성할 수 있다. 제2 데이터버퍼(721)는 제2 로우정보의 네번째 비트(R2<4>) 및 제1 호스트데이터의 네번째 비트(HD1<4>)에 대한 논리곱 연산을 수행하여 제2 버퍼데이터의 네번째 비트(BD2<4>)를 생성할 수 있다.
제2 신드롬출력회로(722)는 제2 버퍼데이터의 첫번째 비트(BD2<1>), 제2 버퍼데이터의 두번째 비트(BD2<2>), 제2 버퍼데이터의 세번째 비트(BD2<3>), 제2 버퍼데이터의 네번째 비트(BD2<4>) 및 제1 호스트패러티의 두번째 비트(HP1<2>)에 대한 배타적논리합 연산 결과를 통해 신드롬의 두번째 비트(S<2>)를 생성할 수 있다.
도 7에 도시된 오류체크매트릭스에 있어 제2 로우정보(R2<1:M>)는 '1101'로 설정될 수 있으므로, 제2 로우정보의 첫번째 비트(R2<1>)는 로직하이레벨로 설정될 수 있고, 제2 로우정보의 두번째 비트(R2<2>)는 로직하이레벨로 설정될 수 있으며, 제2 로우정보의 세번째 비트(R2<3>)는 로직로우레벨로 설정될 수 있고, 제2 로우정보의 네번째 비트(R2<4>)는 로직하이레벨로 설정될 수 있다. 제2 데이터버퍼(721)에서 출력되는 제2 버퍼데이터의 첫번째 비트(BD2<1>)는 제1 호스트데이터의 첫번째 비트(HD1<1>)를 버퍼링한 신호로 생성될 수 있다. 제2 데이터버퍼(721)에서 출력되는 제2 버퍼데이터의 두번째 비트(BD2<2>)는 제1 호스트데이터의 두번째 비트(HD1<2>)를 버퍼링한 신호로 생성될 수 있다. 제2 데이터버퍼(721)에서 출력되는 제2 버퍼데이터의 세번째 비트(BD2<3>)는 로직로우레벨로 설정된 제2 로우정보의 세번째 비트(R2<3>)에 의해 로직로우레벨로 생성될 수 있다. 제2 데이터버퍼(721)에서 출력되는 제2 버퍼데이터의 네번째 비트(BD2<4>)는 제1 호스트데이터의 네번째 비트(HD1<4>)를 버퍼링한 신호로 생성될 수 있다. 제2 신드롬의 두번째 비트(S<2>)는 제2 버퍼데이터의 첫번째 비트(BD2<1>), 제2 버퍼데이터의 두번째 비트(BD2<2>), 제2 버퍼데이터의 네번째 비트(BD2<4>) 및 제1 호스트패러티의 두번째 비트(HP1<2>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
제3 신드롬생성회로(73)는 제3 데이터버퍼(731) 및 제3 신드롬출력회로(732)를 포함할 수 있다.
제3 데이터버퍼(731)는 제3 로우정보의 첫번째 비트(R3<1>) 및 제1 호스트데이터의 첫번째 비트(HD1<1>)에 대한 논리곱 연산을 수행하여 제3 버퍼데이터의 첫번째 비트(BD3<1>)를 생성할 수 있다. 제3 데이터버퍼(731)는 제3 로우정보의 두번째 비트(R3<2>) 및 제1 호스트데이터의 두번째 비트(HD1<2>)에 대한 논리곱 연산을 수행하여 제3 버퍼데이터의 두번째 비트(BD3<2>)를 생성할 수 있다. 제3 데이터버퍼(731)는 제3 로우정보의 세번째 비트(R3<3>) 및 제1 호스트데이터의 세번째 비트(HD1<3>)에 대한 논리곱 연산을 수행하여 제3 버퍼데이터의 세번째 비트(BD3<3>)를 생성할 수 있다. 제3 데이터버퍼(731)는 제3 로우정보의 네번째 비트(R3<4>) 및 제1 호스트데이터의 네번째 비트(HD1<4>)에 대한 논리곱 연산을 수행하여 제3 버퍼데이터의 네번째 비트(BD3<4>)를 생성할 수 있다.
제3 신드롬출력회로(732)는 제3 버퍼데이터의 첫번째 비트(BD3<1>), 제3 버퍼데이터의 두번째 비트(BD3<2>), 제3 버퍼데이터의 세번째 비트(BD3<3>), 제3 버퍼데이터의 네번째 비트(BD3<4>) 및 제1 호스트패러티의 세번째 비트(HP1<3>)에 대한 배타적논리합 연산 결과를 통해 신드롬의 세번째 비트(S<3>)를 생성할 수 있다.
도 7에 도시된 오류체크매트릭스에 있어 제3 로우정보(R3<1:M>)는 '1110'으로 설정될 수 있으므로, 제3 로우정보의 첫번째 비트(R3<1>)는 로직하이레벨로 설정될 수 있고, 제3 로우정보의 두번째 비트(R3<2>)는 로직하이레벨로 설정될 수 있으며, 제3 로우정보의 세번째 비트(R3<3>)는 로직하이레벨로 설정될 수 있고, 제3 로우정보의 네번째 비트(R3<4>)는 로직로우레벨로 설정될 수 있다. 제3 데이터버퍼(731)에서 출력되는 제3 버퍼데이터의 첫번째 비트(BD3<1>)는 제1 호스트데이터의 첫번째 비트(HD1<1>)를 버퍼링한 신호로 생성될 수 있다. 제3 데이터버퍼(731)에서 출력되는 제3 버퍼데이터의 두번째 비트(BD3<2>)는 제1 호스트데이터의 두번째 비트(HD1<2>)를 버퍼링한 신호로 생성될 수 있다. 제3 데이터버퍼(731)에서 출력되는 제3 버퍼데이터의 세번째 비트(BD2<3>)는 제1 호스트데이터의 세번째 비트(HD1<3>)를 버퍼링한 신호로 생성될 수 있다. 제3 데이터버퍼(731)에서 출력되는 제3 버퍼데이터의 네번째 비트(BD3<4>)는 로직로우레벨로 설정된 제3 로우정보의 세번째 비트(R3<3>)에 의해 로직로우레벨로 생성될 수 있다. 제3 신드롬의 세번째 비트(S<3>)는 제3 버퍼데이터의 첫번째 비트(BD3<1>), 제3 버퍼데이터의 두번째 비트(BD3<2>), 제3 버퍼데이터의 세번째 비트(BD3<3>) 및 제1 호스트패러티의 세번째 비트(HP1<3>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
도 10을 참고하면 제1 인코더(622)는 제1 패러티생성회로(81), 제2 패러티생성회로(82), 제3 패러티생성회로(83) 및 호스트데이터생성회로(84)를 포함할 수 있다.
제1 패러티생성회로(81)는 제1 패러티버퍼(811) 및 제1 패러티출력회로(812)를 포함할 수 있다.
제1 패러티버퍼(811)는 제1 로우정보의 첫번째 비트(R1<1>) 및 제2 내부데이터의 첫번째 비트(ID2<1>)에 대한 논리곱 연산을 수행하여 제1 버퍼패러티의 첫번째 비트(PD1<1>)를 생성할 수 있다. 제1 패러티버퍼(811)는 제1 로우정보의 두번째 비트(R1<2>) 및 제2 내부데이터의 두번째 비트(ID2<2>)에 대한 논리곱 연산을 수행하여 제1 버퍼패러티의 두번째 비트(PD1<2>)를 생성할 수 있다. 제1 패러티버퍼(811)는 제1 로우정보의 세번째 비트(R1<3>) 및 제2 내부데이터의 세번째 비트(ID2<3>)에 대한 논리곱 연산을 수행하여 제1 버퍼패러티의 세번째 비트(PD1<3>)를 생성할 수 있다. 제1 패러티버퍼(811)는 제1 로우정보의 네번째 비트(R1<4>) 및 제2 내부데이터의 네번째 비트(ID2<4>)에 대한 논리곱 연산을 수행하여 제1 버퍼패러티의 네번째 비트(PD1<4>)를 생성할 수 있다.
제1 패러티출력회로(812)는 제1 버퍼패러티의 첫번째 비트(PD1<1>), 제1 버퍼패러티의 두번째 비트(PD1<2>), 제1 버퍼패러티의 세번째 비트(PD1<3>) 및 제1 버퍼패러티의 네번째 비트(PD1<4>)에 대한 배타적논리합 연산 결과를 통해 제2 호스트패러티의 첫번째 비트(HP2<1>)를 생성할 수 있다.
도 7에 도시된 오류체크매트릭스에 있어 제1 로우정보(R1<1:M>)는 '1011'로 설정될 수 있으므로, 제1 로우정보의 첫번째 비트(R1<1>)는 로직하이레벨로 설정될 수 있고, 제1 로우정보의 두번째 비트(R1<2>)는 로직로우레벨로 설정될 수 있으며, 제1 로우정보의 세번째 비트(R1<3>)는 로직하이레벨로 설정될 수 있고, 제1 로우정보의 네번째 비트(R1<4>)는 로직하이레벨로 설정될 수 있다. 제1 패러티버퍼(811)에서 출력되는 제1 버퍼패러티의 첫번째 비트(PD1<1>)는 제2 내부데이터의 첫번째 비트(ID2<1>)를 버퍼링한 신호로 생성될 수 있다. 제1 패러티버퍼(811)에서 출력되는 제1 버퍼패러티의 두번째 비트(PD1<2>)는 로직로우레벨로 설정된 제1 로우정보의 두번째 비트(R1<2>)에 의해 로직로우레벨로 생성될 수 있다. 제1 패러티버퍼(811)에서 출력되는 제1 버퍼패러티의 세번째 비트(PD1<3>)는 제2 내부데이터의 세번째 비트(ID2<3>)를 버퍼링한 신호로 생성될 수 있다. 제1 패러티버퍼(811)에서 출력되는 제1 버퍼패러티의 네번째 비트(PD1<4>)는 제2 내부데이터의 네번째 비트(ID2<4>)를 버퍼링한 신호로 생성될 수 있다. 제2 호스트패러티의 첫번째 비트(HP2<1>)는 제1 버퍼패러티의 첫번째 비트(PD1<1>), 제1 버퍼패러티의 세번째 비트(PD1<3>) 및 제1 버퍼패러티의 네번째 비트(PD1<4>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
제2 패러티생성회로(82)는 제2 패러티버퍼(821) 및 제2 패러티출력회로(822)를 포함할 수 있다.
제2 패러티버퍼(821)는 제2 로우정보의 첫번째 비트(R2<1>) 및 제2 내부데이터의 첫번째 비트(ID2<1>)에 대한 논리곱 연산을 수행하여 제2 버퍼패러티의 첫번째 비트(PD2<1>)를 생성할 수 있다. 제2 패러티버퍼(821)는 제2 로우정보의 두번째 비트(R2<2>) 및 제2 내부데이터의 두번째 비트(ID2<2>)에 대한 논리곱 연산을 수행하여 제2 버퍼패러티의 두번째 비트(PD2<2>)를 생성할 수 있다. 제2 패러티버퍼(821)는 제2 로우정보의 세번째 비트(R2<3>) 및 제2 내부데이터의 세번째 비트(ID2<3>)에 대한 논리곱 연산을 수행하여 제2 버퍼패러티의 세번째 비트(PD2<3>)를 생성할 수 있다. 제2 패러티버퍼(821)는 제2 로우정보의 네번째 비트(R2<4>) 및 제2 내부데이터의 네번째 비트(ID2<4>)에 대한 논리곱 연산을 수행하여 제2 버퍼패러티의 네번째 비트(PD2<4>)를 생성할 수 있다.
제2 패러티출력회로(822)는 제2 버퍼패러티의 첫번째 비트(PD2<1>), 제2 버퍼패러티의 두번째 비트(PD2<2>), 제2 버퍼패러티의 세번째 비트(PD2<3>) 및 제2 버퍼패러티의 네번째 비트(PD2<4>)에 대한 배타적논리합 연산 결과를 통해 제2 호스트패러티의 두번째 비트(HP2<2>)를 생성할 수 있다.
도 7에 도시된 오류체크매트릭스에 있어 제2 로우정보(R2<1:M>)는 '1101'로 설정될 수 있으므로, 제2 로우정보의 첫번째 비트(R2<1>)는 로직하이레벨로 설정될 수 있고, 제2 로우정보의 두번째 비트(R2<2>)는 로직하이레벨로 설정될 수 있으며, 제2 로우정보의 세번째 비트(R2<3>)는 로직로우레벨로 설정될 수 있고, 제2 로우정보의 네번째 비트(R2<4>)는 로직하이레벨로 설정될 수 있다. 제2 패러티버퍼(821)에서 출력되는 제2 버퍼패러티의 첫번째 비트(PD2<1>)는 제2 내부데이터의 첫번째 비트(ID2<1>)를 버퍼링한 신호로 생성될 수 있다. 제2 패러티버퍼(821)에서 출력되는 제2 버퍼패러티의 두번째 비트(PD2<2>)는 제2 내부데이터의 두번째 비트(ID2<2>)를 버퍼링한 신호로 생성될 수 있다. 제2 패러티버퍼(821)에서 출력되는 제2 버퍼패러티의 세번째 비트(PD2<3>)는 로직로우레벨로 설정된 제2 로우정보의 세번째 비트(R2<3>)에 의해 로직로우레벨로 생성될 수 있다. 제2 패러티버퍼(821)에서 출력되는 제2 버퍼패러티의 네번째 비트(PD2<4>)는 제2 내부데이터의 네번째 비트(ID2<4>)를 버퍼링한 신호로 생성될 수 있다. 제2 호스트패러티의 두번째 비트(HP2<2>)는 제2 버퍼패러티의 첫번째 비트(PD2<1>), 제2 버퍼패러티의 두번째 비트(PD2<2>) 및 제2 버퍼패러티의 네번째 비트(PD2<4>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
제3 패러티생성회로(83)는 제3 패러티버퍼(831) 및 제3 패러티출력회로(832)를 포함할 수 있다.
제3 패러티버퍼(831)는 제3 로우정보의 첫번째 비트(R3<1>) 및 제2 내부데이터의 첫번째 비트(ID2<1>)에 대한 논리곱 연산을 수행하여 제3 버퍼패러티의 첫번째 비트(PD3<1>)를 생성할 수 있다. 제3 패러티버퍼(831)는 제3 로우정보의 두번째 비트(R3<2>) 및 제2 내부데이터의 두번째 비트(ID2<2>)에 대한 논리곱 연산을 수행하여 제3 버퍼패러티의 두번째 비트(PD3<2>)를 생성할 수 있다. 제3 패러티버퍼(831)는 제3 로우정보의 세번째 비트(R3<3>) 및 제2 내부데이터의 세번째 비트(ID2<3>)에 대한 논리곱 연산을 수행하여 제3 버퍼패러티의 세번째 비트(PD3<3>)를 생성할 수 있다. 제3 패러티버퍼(831)는 제3 로우정보의 네번째 비트(R3<4>) 및 제2 내부데이터의 네번째 비트(ID2<4>)에 대한 논리곱 연산을 수행하여 제3 버퍼패러티의 네번째 비트(PD3<4>)를 생성할 수 있다.
제3 패러티출력회로(832)는 제3 버퍼패러티의 첫번째 비트(PD3<1>), 제3 버퍼패러티의 두번째 비트(PD3<2>), 제3 버퍼패러티의 세번째 비트(PD3<3>) 및 제3 버퍼패러티의 네번째 비트(PD3<4>)에 대한 배타적논리합 연산 결과를 통해 제2 호스트패러티의 세번째 비트(HP2<3>)를 생성할 수 있다.
도 7에 도시된 오류체크매트릭스에 있어 제3 로우정보(R3<1:M>)는 '1110'으로 설정될 수 있으므로, 제3 로우정보의 첫번째 비트(R3<1>)는 로직하이레벨로 설정될 수 있고, 제3 로우정보의 두번째 비트(R3<2>)는 로직하이레벨로 설정될 수 있으며, 제3 로우정보의 세번째 비트(R3<3>)는 로직하이레벨로 설정될 수 있고, 제3 로우정보의 네번째 비트(R3<4>)는 로직로우레벨로 설정될 수 있다. 제3 패러티버퍼(831)에서 출력되는 제3 버퍼패러티의 첫번째 비트(PD3<1>)는 제2 내부데이터의 첫번째 비트(ID2<1>)를 버퍼링한 신호로 생성될 수 있다. 제3 패러티버퍼(831)에서 출력되는 제3 버퍼패러티의 두번째 비트(PD3<2>)는 제2 내부데이터의 두번째 비트(ID2<2>)를 버퍼링한 신호로 생성될 수 있다. 제3 패러티버퍼(831)에서 출력되는 제3 버퍼패러티의 세번째 비트(PD3<3>)는 제2 내부데이터의 세번째 비트(ID2<3>)를 버퍼링한 신호로 생성될 수 있다. 제2 패러티버퍼(821)에서 출력되는 제2 버퍼패러티의 네번째 비트(PD2<4>)는 로직로우레벨로 설정된 제3 로우정보의 네번째 비트(R3<4>)에 의해 로직로우레벨로 생성될 수 있다. 제2 호스트패러티의 세번째 비트(HP2<3>)는 제3 버퍼패러티의 첫번째 비트(PD3<1>), 제3 버퍼패러티의 두번째 비트(PD3<2>) 및 제3 버퍼패러티의 세번째 비트(PD3<4>)에 대한 배타적논리합 연산 결과로 생성될 수 있다.
호스트데이터생성회로(84)는 제2 내부데이터(ID2<1:4>)를 버퍼링하여 제2 호스트데이터(HD2<1:4>)를 생성할 수 있다. 호스트데이터생성회로(84)에 포함된 인버터의 수는 실시예에 따라 다양하게 설정될 수 있다. 실시예에 따라서 호스트데이터생성회로(84)는 제2 내부데이터(ID2<1:4>)를 바이패스하여 제2 호스트데이터(HD2<1:4>)로 출력할 수도 있다.
앞서, 도 1 내지 도 10에서 살펴본 반도체시스템은 메모리시스템, 그래픽시스템, 컴퓨팅시스템 및 모바일시스템 등을 포함하는 전자시스템에 적용될 수 있다. 예를 들어, 도 11을 참고하면 본 발명의 일 실시예에 따른 전자시스템(1000)은 데이터저장부(1001), 메모리컨트롤러(1002), 버퍼메모리(1003) 및 입출력인터페이스(1004)를 포함할 수 있다.
데이터저장부(1001)는 메모리컨트롤러(1002)로부터의 제어신호에 따라 메모리컨트롤러(1002)로부터 인가되는 데이터를 저장하고 저장된 데이터를 판독하여 메모리컨트롤러(1002)에 출력한다. 데이터저장부(1001)는 도 1에 도시된 미디어(3) 또는 도 6에 도시된 미디어(63)를 포함할 수 있다. 한편, 데이터저장부(1001)는 전원이 차단되어도 데이터를 잃지 않고 계속 저장할 수 있는 비휘발성 메모리를 포함할 수 있다. 비휘발성 메모리는 플래쉬 메모리(Nor Flash Memory, NAND Flash Memory), 상변환 메모리(Phase Change Random Access Memory; PRAM), 저항 메모리(Resistive Random Access Memory;RRAM), 스핀 주입자화반전 메모리(Spin Transfer Torque Random Access Memory; STTRAM), 자기메모리(Magnetic Random Access Memory; MRAM)로 구현될 수 있다.
메모리컨트롤러(1002)는 입출력인터페이스(1004)를 통해 외부기기(호스트 장치)로부터 인가되는 명령어를 디코딩하고 디코딩된 결과에 따라 데이터저장부(1001) 및 버퍼메모리(1003)에 대한 데이터 입출력을 제어한다. 도 11에서는 메모리컨트롤러(1002)가 하나의 블록으로 표시되었으나, 메모리컨트롤러(1002)는 데이터저장부(1001)를 제어하기 위한 컨트롤러와 휘발성 메모리인 버퍼메모리(1003)를 제어하기 위한 컨트롤러가 독립적으로 구성될 수 있다. 메모리컨트롤러(1002)는 도 1에 도시된 미디어컨트롤러(2) 또는 도 6에 도시된 미디어컨트롤러(62)를 포함할 수 있다.
버퍼메모리(1003)는 메모리컨트롤러(1002)에서 처리할 데이터 즉 데이터저장부(1001)에 입출력되는 데이터를 임시적으로 저장할 수 있다. 버퍼메모리(1003)는 제어신호에 따라 메모리컨트롤러(1002)에서 인가되는 데이터(DATA)를 저장할 수 있다. 버퍼메모리(1003)는 저장된 데이터를 판독하여 메모리컨트롤러(1002)에 출력한다. 버퍼메모리(1003)는 DRAM(Dynamic Random Access Memory), Moblie DRAM, SRAM(Static Random Access Memory) 등의 휘발성 메모리를 포함할 수 있다.
입출력인터페이스(1004)는 메모리컨트롤러(1002)와 외부기기(호스트) 사이의 물리적 연결을 제공하여 메모리컨트롤러(1002)가 외부기기로부터 데이터 입출력을 위한 제어신호를 수신하고 외부기기와 데이터를 교환할 수 있도록 해준다. 입출력인터페이스(1004)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 및 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 포함할 수 있다.
전자시스템(1000)은 호스트 장치의 보조 기억장치 또는 외부 저장장치로 사용될 수 있다. 전자시스템(1000)은 고상 디스크(Solid State Disk; SSD), USB 메모리(Universal Serial Bus Memory), 씨큐어 디지털 카드(Secure Digital; SD), 미니 씨큐어 디지털 카드(mini Secure Digital card; mSD), 마이크로 씨큐어 디지털 카드(micro SD), 고용량 씨큐어 디지털 카드(Secure Digital High Capacity; SDHC), 메모리 스틱 카드(Memory Stick Card), 스마트 미디어 카드(Smart Media Card; SM), 멀티 미디어 카드(Multi Media Card; MMC), 내장 멀티 미디어 카드(Embedded MMC; eMMC), 컴팩트 플래시 카드(Compact Flash; CF) 등을 포함할 수 있다.
도 12를 참고하면 본 발명의 다른 실시예에 따른 전자시스템(2000)은 호스트(2001), 메모리컨트롤러(2002) 및 데이터저장부(2003)를 포함할 수 있다.
호스트(2001)는 데이터저장부(2003)를 엑세스 하기 위해 메모리컨트롤러(2002)로 리퀘스트 및 데이터를 전송할 수 있다. 메모리컨트롤러(2002)는 리퀘스트에 응답하여 데이터, 데이터 스트로브, 커맨드, 어드레스 및 클럭 등을 데이터저장부(2003)에 제공하고, 이에 응답하여 데이터저장부(2003)는 라이트 또는 리드 동작을 수행하게 할 수 있다. 호스트(2001)는 데이터저장부(2003)로 데이터를 저장시키기 위해 데이터를 메모리컨트롤러(2002)로 전송할 수 있다. 또한 호스트는 데이터저장부(2003)로부터 출력된 데이터를 메모리컨트롤러(2002)를 통해 수신할 수 있다. 호스트(2001)는 오류정정코드(Error Correction Code, ECC) 방식을 사용하여 데이터에 포함된 에러를 정정하는 회로를 포함할 수 있다.
메모리컨트롤러(2002)는 호스트(2001)와 데이터저장부(2003) 사이의 통신을 중계할 수 있다. 메모리컨트롤러(2002)는 호스트(2001)로부터 리퀘스트와 데이터를 수신하고, 데이터저장부(2003)의 동작을 제어하기 위하여 데이터, 데이터 스트로브, 커맨드, 어드레스 및 클럭 등을 생성하여 데이터저장부(2003)로 제공할 수 있다. 또한, 메모리컨트롤러(2002)는 데이터저장부(2003)로부터 출력된 데이터를 호스트(2001)로 제공할 수 있다.
데이터저장부(2003)는 다수의 메모리들을 포함할 수 있다. 데이터저장부(2003)는 메모리컨트롤러(2002)로부터 데이터, 데이터 스트로브, 커맨드, 어드레스 및 클럭 등을 수신하여 라이트 또는 리드 동작을 수행할 수 있다. 데이터저장부(2003)에 포함된 다수의 메모리들은 오류정정코드(Error Correction Code, ECC) 방식을 사용하여 데이터에 포함된 에러를 정정하는 회로를 포함할 수 있다.
호스트(2001)에 포함된 에러를 정정하는 회로 및 다수의 메모리들에 포함된 에러를 정정하는 회로는 실시예에 따라서 모두 동작하거나 선택적으로 동작하도록 구현될 수 있다. 호스트(2001) 및 메모리컨트롤러(2002)는 실시예에 따라서 동일한 칩으로 구현될 수 있다. 메모리컨트롤러(2002) 및 데이터저장부(2003)는 실시예에 따라서 동일한 칩으로 구현될 수 있다.
1: 호스트 2: 미디어컨트롤러
3: 미디어 21: 제1 입출력회로
22: 제2 입출력회로 211: 오류체크매트릭스저장회로
212: 제1 디코더 213: 제1 인코더
221: 제2 인코더 222: 제2 디코더
215: 신드롬생성회로 216: 데이터교정회로
41: 제1 신드롬생성회로 42: 제2 신드롬생성회로
43: 제3 신드롬생성회로 44: 제4 신드롬생성회로
51: 제1 패러티생성회로 52: 제2 패러티생성회로
53: 제3 패러티생성회로 54: 제4 패러티생성회로
55: 호스트데이터생성회로
61: 호스트 62: 미디어컨트롤러
63: 미디어 621: 제1 디코더
622: 제1 인코더 623: 제2 인코더
624: 제2 디코더

Claims (20)

  1. 오류체크매트릭스를 토대로 제1 호스트데이터로부터 제1 호스트패러티를 생성하는 호스트; 및
    제1 입출력회로 및 제2 입출력회로를 포함하고, 상기 제1 호스트데이터 및 제1 호스트패러티를 수신하여 제1 미디어데이터 및 제1 미디어패러티를 생성하는 미디어컨트롤러를 포함하되,
    상기 제1 입출력회로는 상기 오류체크매트릭스를 토대로 상기 제1 호스트패러티를 사용하여 상기 제1 호스트데이터에 포함된 에러를 정정함으로써 제1 내부데이터를 생성하고, 상기 제2 입출력회로는 상기 제1 내부데이터로부터 상기 제1 미디어데이터 및 상기 제1 미디어패러티를 생성하는 반도체시스템.
  2. 제 1 항에 있어서, 상기 오류체크매트릭스는 해밍코드를 사용한 오류정정코드 방식으로 구현되는 반도체시스템.
  3. 제 1 항에 있어서, 상기 제1 입출력회로는
    상기 오류체크매트릭스에 대한 정보를 저장하는 오류체크매트릭스저장회로를 포함하는 반도체시스템.
  4. 제 1 항에 있어서, 상기 제1 입출력회로는
    상기 오류체크매트릭스를 토대로 상기 제1 호스트패러티를 사용하여 상기 제1 호스트데이터에 포함된 에러를 정정한 후 에러가 정정된 상기 제1 호스트데이터를 상기 제1 내부데이터로 출력하는 디코더를 포함하는 반도체장치.
  5. 제 4 항에 있어서, 상기 디코더는
    상기 제1 호스트데이터 및 상기 제1 호스트패러티로부터 신드롬을 생성하는 신드롬생성회로; 및
    상기 신드롬에 응답하여 상기 제1 호스트데이터로부터 상기 제1 내부데이터를 생성하는 데이터교정회로를 포함하는 반도체시스템.
  6. 제 4 항에 있어서, 상기 제1 입출력회로는
    상기 오류체크매트릭스를 토대로 제2 내부데이터로부터 제2 호스트데이터 및 제2 호스트패러티를 생성하여 상기 호스트로 전송하는 인코더를 더 포함하는 반도체시스템.
  7. 제 6 항에 있어서, 상기 제2 내부데이터는 제2 미디어패러티를 사용하여 제2 미디어데이터에 포함된 에러를 정정한 후 에러가 정정된 상기 제2 미디어데이터로부터 생성되는 반도체시스템.
  8. 제 1 항에 있어서, 상기 제2 입출력회로는 해밍코드 또는 BCH코드를 사용하여 상기 제1 미디어데이터로부터 상기 제1 미디어패러티를 생성하는 반도체시스템.
  9. 제 1 항에 있어서,
    상기 제1 미디어패러티를 사용하여 상기 제1 미디어데이터에 포함된 에러를 정정하고, 제2 미디어데이터로부터 제2 미디어패러티를 생성하는 미디어를 더 포함하는 반도체시스템.
  10. 오류체크매트릭스를 토대로 제1 호스트데이터로부터 제1 호스트패러티를 생성하는 호스트; 및
    제1 디코더 및 제1 인코더를 포함하고, 상기 제1 호스트데이터 및 제1 호스트패러티를 수신하여 제1 미디어데이터 및 제1 미디어패러티를 생성하는 미디어컨트롤러를 포함하되,
    상기 제1 디코더는 상기 오류체크매트릭스를 토대로 상기 제1 호스트패러티를 사용하여 상기 제1 호스트데이터에 포함된 에러를 정정한 후 상기 에러가 정정된 상기 제1 호스트데이터를 제1 내부데이터로 출력하고, 상기 제1 인코더는 상기 오류체크매트릭스를 토대로 제2 내부데이터로부터 제2 호스트데이터 및 제2 호스트패러티를 생성하여 상기 호스트로 전송하는 반도체시스템.
  11. 제 10 항에 있어서, 상기 오류체크매트릭스는 해밍코드를 사용한 오류정정코드 방식으로 구현되는 반도체시스템.
  12. 제 10 항에 있어서, 상기 미디어컨트롤러는
    상기 오류체크매트릭스에 대한 정보를 저장하는 오류체크매트릭스저장회로를 포함하는 반도체시스템.
  13. 제 10 항에 있어서, 상기 제1 디코더는
    상기 제1 호스트데이터 및 상기 제1 호스트패러티로부터 신드롬을 생성하는 신드롬생성회로; 및
    상기 신드롬에 응답하여 상기 제1 호스트데이터로부터 상기 제1 내부데이터를 생성하는 데이터교정회로를 포함하는 반도체시스템.
  14. 제 10 항에 있어서,
    상기 제1 내부데이터로부터 상기 제1 미디어데이터 및 상기 제1 미디어패러티를 생성하는 제2 인코더를 더 포함하는 반도체시스템.
  15. 제 10 항에 있어서,
    제2 미디어패러티를 사용하여 제2 미디어데이터에 포함된 에러를 정정한 후 에러가 정정된 상기 제2 미디어데이터를 상기 제2 내부데이터로 출력하는 제2 디코더를 더 포함하는 반도체시스템.
  16. 오류체크매트릭스를 토대로 제1 호스트데이터로부터 제1 호스트패러티를 생성하고, 상기 오류체크매트릭스로부터 로우정보를 추출하여 출력하는 호스트; 및
    제1 디코더 및 제1 인코더를 포함하고, 상기 제1 호스트데이터 및 제1 호스트패러티를 수신하여 제1 미디어데이터 및 제1 미디어패러티를 생성하는 미디어컨트롤러를 포함하되,
    상기 제1 디코더는 상기 로우정보를 토대로 상기 제1 호스트패러티를 사용하여 상기 제1 호스트데이터에 포함된 에러를 정정한 후 상기 에러가 정정된 상기 제1 호스트데이터를 제1 내부데이터로 출력하고, 상기 제1 인코더는 상기 로우정보를 토대로 제2 내부데이터로부터 제2 호스트데이터 및 제2 호스트패러티를 생성하여 상기 호스트로 전송하는 반도체시스템.
  17. 제 16 항에 있어서, 상기 로우정보는 제1 로우정보 및 제2 로우정보를 포함하고, 상기 제1 로우정보는 상기 오류체크매트릭스의 첫번째 로우라인에 대한 정보를 포함하고, 상기 제2 로우정보는 상기 오류체크매트릭스의 두번째 로우라인에 대한 정보를 포함하는 반도체시스템.
  18. 제 16 항에 있어서, 상기 제1 디코더는
    상기 제1 호스트데이터 및 상기 제1 호스트패러티로부터 신드롬을 생성하는 신드롬생성회로; 및
    상기 신드롬에 응답하여 상기 제1 호스트데이터로부터 상기 제1 내부데이터를 생성하는 데이터교정회로를 포함하는 반도체시스템.
  19. 제 16 항에 있어서,
    상기 제1 내부데이터로부터 상기 제1 미디어데이터 및 상기 제1 미디어패러티를 생성하는 제2 인코더를 더 포함하는 반도체시스템.
  20. 제 16 항에 있어서,
    제2 미디어패러티를 사용하여 제2 미디어데이터에 포함된 에러를 정정한 후 에러가 정정된 상기 제2 미디어데이터를 상기 제2 내부데이터로 출력하는 제2 디코더를 더 포함하는 반도체시스템.
KR1020160106757A 2016-08-23 2016-08-23 반도체시스템 KR20180023079A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160106757A KR20180023079A (ko) 2016-08-23 2016-08-23 반도체시스템
US15/611,151 US10261860B2 (en) 2016-08-23 2017-06-01 Semiconductor systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160106757A KR20180023079A (ko) 2016-08-23 2016-08-23 반도체시스템

Publications (1)

Publication Number Publication Date
KR20180023079A true KR20180023079A (ko) 2018-03-07

Family

ID=61240523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160106757A KR20180023079A (ko) 2016-08-23 2016-08-23 반도체시스템

Country Status (2)

Country Link
US (1) US10261860B2 (ko)
KR (1) KR20180023079A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11953988B2 (en) * 2019-05-23 2024-04-09 Micron Technology, Inc. Error correction memory device with fast data access
US20220230701A1 (en) * 2021-01-14 2022-07-21 Changxin Memory Technologies, Inc. Storage system
KR20220107007A (ko) 2021-01-14 2022-08-01 창신 메모리 테크놀로지즈 아이엔씨 비교 시스템

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE371862T1 (de) * 2003-10-28 2007-09-15 Mettler Toledo Ag Thermoanalytischer sensor und verfahren zu dessen herstellung
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US9152496B2 (en) * 2007-12-21 2015-10-06 Cypress Semiconductor Corporation High performance flash channel interface
US8935589B2 (en) * 2009-06-02 2015-01-13 Silicon Motion, Inc. Controller and data access method for flash memories
JP2014241057A (ja) * 2013-06-12 2014-12-25 ソニー株式会社 インターフェース制御回路、メモリシステム、および、インターフェース制御回路の制御方法
KR20150061393A (ko) 2013-11-27 2015-06-04 삼성전자주식회사 메모리 장치로부터 읽은 데이터를 고속으로 전송하는 메모리 컨트롤러 및 그것의 데이터 전송 방법.

Also Published As

Publication number Publication date
US20180060166A1 (en) 2018-03-01
US10261860B2 (en) 2019-04-16

Similar Documents

Publication Publication Date Title
US20180052732A1 (en) Semiconductor device and semiconductor system
US10388401B2 (en) Semiconductor device, semiconductor system, and method thereof
US10162703B2 (en) Methods of correcting data errors and semiconductor devices used therein
KR102647418B1 (ko) 반도체장치 및 반도체시스템
US20170286218A1 (en) Semiconductor devices, and semiconductor systems
US10579472B2 (en) Semiconductor devices
US10964406B2 (en) Methods of scrubbing errors and semiconductor modules using the same
US10261860B2 (en) Semiconductor systems
KR102420641B1 (ko) 에러정정방법 및 이를 이용한 반도체장치
US10917111B2 (en) Error correction code unit and error correction method
US20170344422A1 (en) Semiconductor devices and semiconductor systems
US10552277B2 (en) Electronic devices
KR102469809B1 (ko) 반도체장치
US10181863B2 (en) Semiconductor devices and semiconductor systems
KR20180055148A (ko) 반도체장치 및 반도체시스템
US10290333B2 (en) Semiconductor device
KR20180027655A (ko) 테스트방법 및 이를 이용한 반도체시스템
KR20210023317A (ko) 반도체장치
KR20180086817A (ko) 반도체장치
KR20180027656A (ko) 반도체장치 및 반도체시스템