KR101688051B1 - 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치 - Google Patents

에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치 Download PDF

Info

Publication number
KR101688051B1
KR101688051B1 KR1020100110343A KR20100110343A KR101688051B1 KR 101688051 B1 KR101688051 B1 KR 101688051B1 KR 1020100110343 A KR1020100110343 A KR 1020100110343A KR 20100110343 A KR20100110343 A KR 20100110343A KR 101688051 B1 KR101688051 B1 KR 101688051B1
Authority
KR
South Korea
Prior art keywords
data
crc code
crc
data processing
bit
Prior art date
Application number
KR1020100110343A
Other languages
English (en)
Other versions
KR20120049436A (ko
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 KR1020100110343A priority Critical patent/KR101688051B1/ko
Priority to US13/239,156 priority patent/US8645790B2/en
Priority to DE102011084751.0A priority patent/DE102011084751B4/de
Priority to CN2011103494654A priority patent/CN102468921A/zh
Publication of KR20120049436A publication Critical patent/KR20120049436A/ko
Application granted granted Critical
Publication of KR101688051B1 publication Critical patent/KR101688051B1/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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Abstract

에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리장치를 포함하는 반도체 장치가 개시된다. 본 발명의 일실시예에 따른 데이터 처리 장치는, 제1 데이터로부터 복수의 비트로 구성된 CRC(Cyclic Redundancy Check) 정보를 생성하는 CRC 생성부 및 상기 생성된 CRC 정보와 상기 제1 데이터를 결합하여 제2 데이터를 송신하는 데이터 송신부를 포함하고, 상기 제1 데이터가 제1 패턴을 갖는 경우, 상기 제1 데이터로부터 생성된 상기 CRC 정보의 적어도 하나의 비트가 토글링되는 것을 특징으로 한다.

Description

에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치{Data processing device and method using error detection code, method for compensating data skew and semiconductor device having data processing device}
본 발명은 데이터 처리 장치 및 데이터 처리 방법에 관한 것으로서, 자세하게는 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리장치를 포함하는 반도체 장치에 관한 것이다.
데이터 처리 장치나 이를 포함하는 반도체 장치에서, 빠른 속도의 연산 또는 신호 처리를 하기 위해서는 데이터 처리 장치가 동시에 처리할 수 있는 데이터 비트의 수가 많아야 하며, 또한 처리되어야 할 많은 비트 수의 데이터가 연속적으로 데이터 처리 장치로 제공되어야 한다. 데이터의 전송 과정에서 다양한 요인에 의하여 데이터의 지연 및 왜곡이 발생할 수 있으며, 또한 출력되는 데이터들 사이의 지연 시간이 서로 다르게 되는 것은 출력 데이터들 사이의 스큐(skew)의 원인이 된다.
데이터의 전송 속도가 증가함에 따라 데이터에 오류가 발생하거나 데이터들 사이에 스큐가 발생할 가능성이 높아지게 된다. 따라서 이러한 오류나 스큐의 발생 가능성을 감소시킬 필요성이 대두된다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일실시예에 따른 데이터 처리 장치는, 제1 데이터로부터 복수의 비트로 구성된 CRC(Cyclic Redundancy Check) 정보를 생성하는 CRC 생성부 및 상기 생성된 CRC 정보와 상기 제1 데이터를 결합하여 제2 데이터를 송신하는 데이터 송신부를 포함하고, 상기 제1 데이터가 제1 패턴을 갖는 경우, 상기 제1 데이터로부터 생성된 상기 CRC 정보의 적어도 하나의 비트가 토글링되는 것을 특징으로 한다.
한편, 본 발명의 일실시예에 따른 데이터 처리 방법은, 제1 데이터로부터 복수의 비트로 구성된 CRC 정보를 생성하는 단계 및 상기 생성된 CRC 정보를 상기 제1 데이터와 결합하여 제2 데이터를 생성하는 단계를 포함하고, 상기 제1 데이터가 제1 패턴을 갖는 경우, 상기 제1 데이터로부터 생성된 상기 CRC 정보의 적어도 하나의 비트가 토글링되는 것을 특징으로 한다.
상기한 바와 같은 본 발명의 데이터 처리 장치 및 데이터 처리 방법에 따르면, 에러 검출을 위한 코드를 데이터의 천이를 위한 천이 비트(Transition Bit)로 이용함으로써, 불필요한 신호의 전송이나 데이터 코딩 동작을 감소할 수 있는 효과가 있다.
또한, 상기한 바와 같은 본 발명의 데이터 처리 장치 및 데이터 처리 방법에 따르면, 데이터에 다수의 천이 비트(Transition Bit)를 부가할 수 있으므로 데이터의 위상 디텍팅 또는 트랙킹 성능을 향상하며 또한 데이터 마진을 향상할 수 있는 효과가 있다.
또한, 본 발명의 반도체 장치에 따르면, 데이터 전송시 불필요한 신호의 전송을 감소하여 데이터의 전송 속도를 증가함과 동시에, 데이터의 위상 디텍팅 또는 트랙킹 성능을 향상하여 데이터의 마진 증가 및 데이터 판독의 정확도를 향상시킬 수 있는 효과가 있다.
도 1은 본 발명의 일실시예에 따른 데이터 처리 장치를 포함하는 반도체 시스템을 나타내는 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 데이터 처리 장치를 포함하는 반도체 시스템을 나타내는 블록도이다.
도 3은 본 발명의 또 다른 실시예에 따른 데이터 처리 장치를 포함하는 반도체 시스템을 나타내는 블록도이다.
도 4는 본 발명의 또 다른 실시예에 따른 데이터 처리 장치를 포함하는 반도체 시스템을 나타내는 블록도이다.
도 5는 도 4의 제2 데이터 처리 장치의 직렬-병렬 변환기의 일 구현예를 나타내는 블록도이다.
도 6은 도 4의 반도체 시스템에서의 데이터와 CRC 코드의 전송의 일예를 나타내는 도면이다.
도 7은 도 4의 반도체 시스템에서의 데이터와 CRC 코드의 전송의 다른 예를 나타내는 도면이다.
도 8은 본 발명의 또 다른 실시예에 따른 데이터 처리 장치를 포함하는 반도체 시스템을 나타내는 블록도이다.
도 9는 본 발명의 일실시예에 따른 반도체 시스템에서 CRC 코드의 생성 및 전송의 일예를 나타내는 도면이다.
도 10은 본 발명의 일실시예에 따른 데이터 처리 방법을 나타내는 플로우차트이다.
도 11은 본 발명의 다른 실시예에 따른 데이터 처리 방법을 나타내는 플로우차트이다.
도 12는 메모리 콘트롤러와 메모리 장치를 포함하는 본 발명의 메모리 시스템의 응용 예를 나타내는 블록도이다.
도 13은 본 발명의 반도체 장치를 포함하는 전자 시스템의 응용 예를 도시한 블록도이다.
도 14는 본 발명에 따른 반도체 장치를 사용하는 메모리 카드의 응용 예를 나타내는 블록도이다.
도 15는 본 발명에 따른 메모리 카드의 다른 응용 예를 나타내는 블록도이다.
도 16은 본 발명의 실시 예에 따른 메모리 장치 또는 메모리 시스템을 포함한 컴퓨팅 시스템을 나타내는 블록도이다.
* 도면의 주요부분에 대한 부호의 설명 *
100: 반도체 시스템
110: 제1 데이터 처리 장치
120: 제2 데이터 처리 장치
111: 데이터 생성부
112: CRC 생성부
113: 데이터 송신부
121: 데이터 수신부
122: 데이터 저장부
123: 에러 체크부
124: CRC 검출부
130: 데이터 전송 라인
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 데이터 처리 장치를 포함하는 반도체 시스템을 나타내는 블록도이다. 도 1에 도시된 바와 같이, 반도체 시스템(100)은 하나 이상의 반도체 장치(110, 120)를 포함하며, 반도체 장치(110, 120)는 서로 데이터 및 기타 신호들을 송수신한다. 반도체 장치(110, 120) 각각은 송수신되는 데이터를 처리하기 때문에 상기 반도체 장치(110, 120)를 각각 제1 데이터 처리 장치(110) 및 제2 데이터 처리 장치(120)로 지칭한다. 도 1의 구성 및 동작을 설명함에 있어서, 제1 데이터 처리 장치(110)는 데이터 전송 장치이며 제2 데이터 처리 장치(120)는 데이터 수신 장치인 것으로 가정한다. 그러나, 제1 및 제2 데이터 처리 장치(110) 각각은 데이터를 송신하기 위한 회로 구성과 데이터를 수신하기 위한 회로 구성을 모두 포함하여도 무방하다.
제1 데이터 처리 장치(110)는 데이터 생성부(111), 에러 검출 코드 생성부(112) 및 데이터 송신부(113)를 구비한다. 또한, 제2 데이터 처리 장치(120)는 데이터 수신부(121), 데이터 저장부(122), 에러 체크부(123) 및 코드 검출부(124)를 구비한다. 또한, 제1 데이터 처리 장치(110)와 제2 데이터 처리 장치(120)는 데이터 전송 라인(130)을 통해 신호를 송수신한다. 또한, 제1 데이터 처리 장치(110)는 데이터를 전송함에 있어서 데이터를 천이시키기 위한 부가적인 비트를 생성하여 이를 데이터에 삽입하며, 예컨대 소정의 방식에 따라 에러 검출을 위한 코드를 생성하고, 상기 생성된 코드를 부가적인 비트로서 상기 데이터에 삽입한다.
에러 검출을 위한 코드는 다양한 방식에 의해 생성될 수 있다. 예컨대 하나의 데이터 블록에 대응하여 패리티(Parity)를 생성하고 이를 상기 데이터에 삽입할 수 있다. 다수의 데이터 비트로 이루어지는 하나의 데이터 블록에 대응하여 하나 이상의 비트의 패리티를 생성하고, 생성된 패리티를 데이터의 끝에 추가하거나 또는 생성된 패리티를 데이터의 중간에 삽입하는 형태로 부가할 수 있다. 또는, 에러 검출을 위한 코드는 CRC(Cyclic Redundancy Check) 코드로 이루어질 수 있으며, 이 경우 제1 데이터 처리 장치(110)는 전송될 데이터를 이용하여 CRC 정보(예컨대, CRC 코드)를 발생하고, 제2 데이터 처리 장치(120)는 CRC 코드가 포함된 수신 데이터에 대한 CRC 체크를 통해 데이터 전송 과정에서 오류가 발생되었는지를 판단한다. 본 발명의 실시예에서는, 상기 에러 검출을 위한 코드가 CRC 코드인 것으로 가정하며, 이 경우 에러 검출 코드 생성부(112)는 CRC 생성부로 정의될 수 있으며, 코드 검출부(124)는 CRC 검출부로 정의될 수 있다.
상기와 같이 구성될 수 있는 도 1의 반도체 시스템(100) 및 제1, 제2 데이터 처리 장치(110, 120)의 구체적인 동작을 설명하면 다음과 같다.
데이터 생성부(111)는 데이터(DATA)를 생성한다. 예컨대 데이터 생성부(111)는 데이터를 저장하기 위한 메모리 셀 어레이를 포함하여 데이터 리드 동작시 메모리 셀 어레이에 저장된 데이터를 데이터 전송 라인(130)을 통해 제공할 수 있다. 또는, 제1 데이터 처리 장치(110)가 메모리 장치를 제어하기 위한 컨트롤러인 경우, 데이터 생성부(111)는 각종 정보, 예컨대 영상 정보나 음성 정보 등을 메모리 저장용 데이터로 변환하는 데이터 변환부일 수 있다. CRC 생성부(112)는 데이터 생성부(111)로부터의 데이터(DATA)를 수신하고 이를 이용하여 CRC 코드(CRC Code)를 생성한다. 데이터 송신부(113)는 데이터 생성부(111)로부터의 데이터와 CRC 생성부(112)로부터의 CRC 코드를 수신하여 이를 결합하고, 결합된 데이터(DATA + CRC Code)를 데이터 전송 라인(130)을 통해 전송한다.
CRC 생성부(112)는 데이터(DATA)에 대한 연산 동작을 통해 CRC 코드(CRC Code)를 생성한다. 예컨대, CRC 생성부(112)는 쉬프트 레지스터(Shift Register) 및 하나 이상의 게이트 소자(예컨대, EX-OR)를 사용하여 CRC 코드(CRC Code)를 생성한다. CRC 생성부(112)는 소정 비트 수의 데이터(DATA)에 대응하여 하나 이상의 CRC 코드(CRC Code)를 생성할 수 있으며, 예컨대 8 비트의 데이터(DATA)마다 한 비트의 CRC 코드(CRC Code)를 생성할 수 있다. 생성된 CRC 코드(CRC Code)는 데이터(DATA)와 함께 데이터 전송 라인(130)을 통해 전송된다. 만약 제1 데이터 처리 장치(110)가 직렬 전송 방식을 통해 데이터(DATA) 및 CRC 코드(CRC Code)를 전송하는 경우, 소정의 프레임 포맷(frame format)에 따라 병렬 형태의 데이터를 직렬 형태의 데이터로 변환하고, 출력할 데이터의 순서를 결정하여 출력한다. 예컨대, 직렬 전송 방식에 있어서, 데이터(DATA) 및 CRC 코드(CRC Code)가 n 개의 시간 간격 또는 유닛 인터벌(unit-interval)동안 직렬 전송되는 경우, CRC 코드(CRC Code)는 상기 n 개의 시간 간격(또는, 유닛 인터벌) 각각에 분산되어 전송될 수 있으며, n 개의 시간 간격 중 어느 하나의 시간 간격 동안에 전송될 수 있다.
CRC 생성부(112)는 데이터(DATA)에 대응하여 생성된 CRC 코드(CRC Code) 중 적어도 하나의 비트를 토글링(toggling)시키기 위한 수단을 구비한다. 도 1에서는 상기 적어도 하나의 비트를 토글링시키기 위한 수단으로서, 생성된 CRC 코드(CRC Code)의 적어도 하나의 비트를 인버팅하기 위한 인버터가 도시된다. CRC 코드(CRC Code) 중 인버팅이 수행되는 비트의 위치에 관계된 정보는 기 설정되어 제1 및 제2 데이터 처리 장치(120) 각각에 저장될 수 있다. CRC 코드(CRC Code) 중 적어도 하나의 비트를 인버팅시킴으로써, CRC 코드(CRC Code)의 패턴에서 적어도 하나의 비트가 토글링(toggling)되도록 한다.
CRC 코드(CRC Code)에 대한 인버팅 동작을 수행함으로써, 결합 데이터(DATA + CRC Code)의 모든 비트의 값이 동일해지는 경우를 방지한다. 예컨대, 결합 데이터(DATA + CRC Code)의 모든 비트의 값이 논리 하이(예컨대 "1"의 비트값)가 되거나 논리 로우(예컨대 "0"의 비트값)가 되는 경우를 방지한다. 데이터(DATA)가 모두 "0"의 비트값을 갖는 경우, 이에 대응하여 CRC 코드(CRC Code) 또한 모두 "0"의 비트값을 가질 수 있으나, CRC 코드(CRC Code)에 대한 인버팅 동작을 수행하여 CRC 코드(CRC Code)의 일부 비트들이 토글링되도록 한다. 또한, 데이터(DATA)의 소정의 패턴에 의하여 CRC 코드(CRC Code)가 "10101010"의 값으로 발생하고, 상기 짝수 번째 비트의 인버팅 동작에 의하여 CRC 코드(CRC Code)가 모두 "0"의 비트값을 갖더라도, 결합 데이터(DATA + CRC Code)는 적어도 한번 토글링을 하게 되므로 결합 데이터(DATA + CRC Code)의 모든 비트의 값이 동일한 경우가 발생하지 않는다.
한편, CRC 생성부(112)는 소정의 판단 동작을 수행하고 그 결과에 따라 CRC 코드(CRC Code)에 대한 토클링 동작을 제어할 수 있다. 예컨대, CRC 생성부(112)는 데이터(DATA)와 이에 대응하는 CRC 코드(CRC Code)가 토글링되는 적어도 하나의 비트를 포함하는지를 판단할 수 있다. 판단 결과, 데이터(DATA)와 CRC 코드(CRC Code)가 토글링되는 비트를 포함하지 않는 경우에 CRC 코드(CRC Code) 중 적어도 하나의 비트를 인버팅시킬 수 있다.
데이터 송신부(113)는 데이터(DATA)와 CRC 코드(CRC Code)를 결합하여 결합 데이터(DATA + CRC Code)를 생성하고 이를 데이터 전송 라인(130)을 통해 전송한다. 데이터 전송 라인(130)을 통해 전송된 결합 데이터(DATA + CRC Code)는 제2 데이터 처리 장치(120)의 데이터 수신부(121)에 의해 수신된다. 데이터 수신부(121)는 결합 데이터(DATA + CRC Code)를 수신하여 이를 데이터(DATA)와 CRC 코드(CRC Code)로 분리하고, 데이터(DATA)를 데이터 저장부(122)로 제공하며 또한 CRC 코드(CRC Code)를 CRC 검출부(124)로 제공한다. CRC 검출부(124)는, 수신된 CRC 코드(CRC Code)를 일시 저장하고, 수신된 CRC 코드(CRC Code)의 적어도 일부의 비트를 인버팅하여 원래의 CRC 코드(CRC Code)를 검출한다. 에러 체크부(123)는 데이터(DATA)와 CRC 코드(CRC Code)를 이용한 연산 동작에 기반하여 수신된 데이터(DATA)에 에러가 발생하였는지를 검출하고 그 검출 결과를 발생한다. 제2 데이터 처리 장치(120)는 에러 체크부(123)의 검출 결과에 응답하여 데이터(DATA)의 재전송을 요청하는 명령을 제1 데이터 처리 장치(110)로 제공하는 등의 동작을 수행할 수 있다.
상기와 같은 구성 및 동작에 의하여, 제1 데이터 처리 장치(110)는 데이터(DATA)에 에러 검출에 사용되는 CRC 코드(CRC Code) 등의 에러 검출 코드를 천이 비트(Transition Bit)로서 데이터(DATA)에 부가하여 전송한다. CRC 코드(CRC Code)의 비트 값은 전송될 데이터(DATA)의 패턴에 의존하므로, 데이터(DATA)의 패턴에 따라 CRC 코드(CRC Code)가 모두 "0"의 값을 가질 가능성이 존재하게 된다. 이에 따라, CRC 코드(CRC Code)를 생성하는 CRC 생성부(112)는 CRC 코드(CRC Code)의 적어도 하나의 비트 값을 반전시키기 위한 인버터를 더 구비하며, 일부의 비트 값이 반전된 CRC 코드(CRC Code)를 생성한다.
또한, 제2 데이터 처리 장치(120)는 상기 CRC 코드(CRC Code)가 부가된 결합 데이터(DATA + CRC Code)를 수신하며, 클럭 신호(미도시)의 위상을 결합 데이터(DATA + CRC Code)의 천이(transition)에 트랙킹하고, 트랙킹된 클럭 신호를 이용하여 데이터(DATA)와 CRC 코드(CRC Code)를 샘플링한다. 또한, 결합 데이터(DATA + CRC Code)로부터 데이터(DATA)와 CRC 코드(CRC Code)를 분리하고, 데이터(DATA)를 데이터 저장부(122)로 출력하고 CRC 코드(CRC Code)를 CRC 검출부(124)로 출력한다. CRC 검출부(124)는 수신된 CRC 코드(CRC Code)의 적어도 하나의 비트를 인버팅시켜 출력하며, 에러 체크부(123)는 데이터(DATA)와 CRC 검출부(124)로부터의 CRC 코드(CRC Code)를 이용한 연산 동작에 기반하여 데이터(DATA)의 에러 발생 여부를 검출한다.
도 2는 본 발명의 다른 실시예에 따른 데이터 처리 장치를 포함하는 반도체 시스템을 나타내는 블록도이다. 도 2에 도시된 바와 같이, 반도체 시스템(200)은 제1 데이터 처리 장치(210) 및 제2 데이터 처리 장치(220)를 포함할 수 있다. 전술한 바와 같이, 제1 및 제2 데이터 처리 장치(210, 220)는 각각 데이터의 송신 처리나 수신 처리를 수행하는 반도체 칩, 반도체 장치 또는 반도체 시스템 중 어느 하나가 적용될 수 있다. 도 2의 반도체 시스템(200)을 설명함에 있어서, 앞서 도 1에서 설명되었던 구성과 동일한 구성에 대해서는 그 동작 또한 동일 또는 유사하므로 이에 대한 자세한 설명은 생략한다. 또한, 제1 데이터 처리 장치(210)는 데이터 전송 장치이며 제2 데이터 처리 장치(220)는 데이터 수신 장치인 것으로 가정한다.
제1 데이터 처리 장치(210)는 데이터 생성부(211), CRC 생성부(212) 및 병렬-직렬 변환기(213)를 구비한다. 또한, 제2 데이터 처리 장치(220)는 직렬-병렬 변환기(221), 데이터 저장부(222), 에러 체크부(223) 및 CRC 검출부(224)를 구비한다. 또한, 제1 데이터 처리 장치(210)와 제2 데이터 처리 장치(220) 사이의 데이터 전송을 위한 데이터 전송 라인(230)이 반도체 시스템(200)에 배치된다.
데이터 생성부(211)는 제2 데이터 처리 장치(120)로 제공될 데이터(DATA)를 생성한다. 또한, CRC 생성부(212)는 데이터(DATA)를 수신하고, 상기 데이터(DATA)를 이용한 연산 동작에 기반하여 CRC 코드(CRC Code)를 생성한다. CRC 생성부(212)는 생성된 CRC 코드(CRC Code) 중 적어도 하나의 비트를 인버팅함으로써 결합 데이터(DATA + CRC Code)의 적어도 하나의 비트가 토글링되도록 한다. 병렬-직렬 변환기(213)는 데이터(DATA)와 CRC 코드(CRC Code)를 결합하고, 결합 데이터(DATA + CRC Code)를 소정의 프레임 포맷(frame format)에 따라 병렬 형태에서 직렬 형태로 변환한다. 병렬-직렬 변환기(213)는 데이터 전송 라인(230)을 통해 결합 데이터(DATA + CRC Code)를 전송하기 위한 출력 드라이버(미도시)를 구비할 수 있다. CRC 코드(CRC Code)의 인버팅 동작과 관련하여, 예컨대 CRC 코드(CRC Code)의 n 번째 비트를 인버팅시킴에 의하여 CRC 코드(CRC Code)의 적어도 하나의 비트를 토글링시키며, 이에 따라 전송될 데이터(DATA)의 모든 비트가 "0"의 값을 갖더라도 결합 데이터(DATA+CRC Code)의 모든 비트가 "0"의 값을 갖는 경우가 발생하지 않도록 한다.
데이터 전송 라인(230)을 통해 전송된 결합 데이터(DATA + CRC Code)는 제2 데이터 처리 장치(220)의 직렬-병렬 변환기(221)에 의해 수신된다. 직렬-병렬 변환기(221)는 데이터 전송 라인(230)을 통해 전송되는 결합 데이터(DATA + CRC Code)를 수신하기 위한 입력 버퍼(미도시)를 구비할 수 있다. 직렬-병렬 변환기(221)는 직렬한 형태로 수신된 결합 데이터(DATA + CRC Code)를 병렬 형태로 변환하며, 또한 병렬 형태로 변환된 결합 데이터(DATA + CRC Code)를 분리하여 데이터(DATA)와 CRC 코드(CRC Code)를 생성한다. 직렬-병렬 변환기(221)는 데이터(DATA)를 데이터 저장부(222)로 제공하며 CRC 코드(CRC Code)를 CRC 검출부(224)로 제공한다. CRC 검출부(224)는 수신된 CRC 코드(CRC Code) 중 적어도 하나의 비트를 인버팅하여 원래의 CRC 코드(CRC Code)를 검출한다. 에러 체크부(223)는 데이터(DATA)와 CRC 검출부(224)로부터의 CRC 코드(CRC Code)를 이용하여 연산 동작을 수행하고, 연산 결과에 기반하여 수신된 데이터(DATA)에 에러가 발생하였는지를 검출하고 그 검출 결과를 발생한다. 데이터(DATA)에 에러가 발생한 것으로 검출된 경우, 상기 데이터 전송 라인(230) 또는 별도의 라인을 통해 제1 데이터 처리 장치(210)로 그 결과를 피드백할 수 있다.
도 3은 본 발명의 또 다른 실시예에 따른 데이터 처리 장치를 포함하는 반도체 시스템을 나타내는 블록도이다. 도 3에 도시된 바와 같이, 반도체 시스템(300)은 제1 데이터 처리 장치(310) 및 제2 데이터 처리 장치(320)를 포함할 수 있다. 전술한 바와 같이, 제1 및 제2 데이터 처리 장치(310, 320)는 각각 데이터의 송신 처리나 수신 처리를 수신하는 반도체 칩, 반도체 장치 또는 반도체 시스템 중 어느 하나가 적용될 수 있다.
제1 데이터 처리 장치(310)는 데이터 생성부(311), CRC 생성부(312), 병렬-직렬 변환기(313) 및 제1 패턴 체크부(314)를 구비한다. 또한, 제2 데이터 처리 장치(320)는 직렬-병렬 변환기(321), 데이터 저장부(322), 에러 체크부(323), CRC 검출부(324) 및 제2 패턴 체크부(325)를 구비한다. 또한, 제1 데이터 처리 장치(310)와 제2 데이터 처리 장치(320) 사이의 데이터 전송을 위한 데이터 전송 라인(330)이 반도체 시스템(300)에 배치된다.
데이터 생성부(311)는 제2 데이터 처리 장치(320)로 제공될 데이터(DATA)를 생성한다. 제1 패턴 체크부(314)는 데이터 생성부(311)로부터 제공되는 데이터(DATA)의 패턴을 체크하고 그 결과를 출력한다. 예컨대, 제1 패턴 체크부(314)는 데이터(DATA)의 패턴이 기 설정된 패턴과 동일한 것인지를 체크하고 그 결과를 출력하며, 바람직하게는 데이터(DATA)의 패턴이 모두 "0"인지를 체크하여 이를 나타내는 결과를 출력한다. 제1 패턴 체크부(314)로부터의 체크결과는 CRC 생성부(312)로 제공되며, CRC 생성부(312)는 상기 체크결과를 이용하여 CRC 코드(CRC Code)에 대한 인버팅 동작을 제어한다.
구체적으로, CRC 생성부(312)는 데이터(DATA)를 수신하고, 상기 데이터(DATA)를 이용한 연산 동작에 기반하여 CRC 코드(CRC Code)를 생성한다. 도 3에 도시되지는 않았으나, CRC 생성부(312)는 데이터 생성부(311)로부터 직접 데이터(DATA)를 수신할 수 있으며, 또는 제1 데이터 패턴 체크부(314)로부터 데이터(DATA) 및 체크 결과를 함께 수신할 수 있다. 상기 체크 결과가 제1 상태인 경우, CRC 생성부(312)는 생성된 CRC 코드(CRC Code)에 대하여 인버팅 동작을 수행하지 않고 출력한다. 반면에, 상기 체크 결과가 제2 상태인 경우, CRC 생성부(312)는 CRC 코드(CRC Code)를 생성하고 상기 CRC 코드(CRC Code) 중 적어도 하나의 비트를 인버팅하여 출력한다. 데이터(DATA)의 패턴이 모두 "0"의 값을 갖는 경우 CRC 생성부(312)는 CRC 코드(CRC Code)들 중 적어도 하나의 비트를 인버팅시키며, 예컨대 CRC 코드(CRC Code)들 중 기 설정된 위치의 비트값을 인버팅시킬 수 있다.
병렬-직렬 변환기(313)는 데이터(DATA)와 CRC 코드(CRC Code)를 결합하여 결합 데이터(DATA + CRC Code)를 발생하고, 결합 데이터(DATA + CRC Code)를 직렬 전송 방식에 따라 데이터 전송 라인(330)을 통해 제2 데이터 처리 장치(320)로 제공한다.
제2 데이터 처리 장치(320)의 직렬-병렬 변환기(321)는 결합 데이터(DATA + CRC Code)를 수신하고, 수신된 결합 데이터(DATA + CRC Code)를 병렬 형태로 변환한다. 또한, 직렬-병렬 변환기(321)는 결합 데이터(DATA + CRC Code)를 데이터(DATA)와 CRC 코드(CRC Code)로 분리하며, 데이터(DATA)를 데이터 저장부(322)로 제공하고 CRC 코드(CRC Code)를 CRC 검출부(324)로 제공한다. 제2 데이터 패턴 체크부(325)는 데이터(DATA)의 패턴이 기 설정된 패턴과 동일한지를 체크하며, 예컨대 데이터(DATA)의 패턴이 모두 "0"의 값을 갖는지를 체크한다. 그 체크 결과는 CRC 검출부(324)로 제공되며, CRC 검출부(324)는 상기 체크 결과에 응답하여 CRC 코드(CRC Code)에 대한 적어도 하나의 비트를 인버팅한다. 에러 체크부(323)는 데이터(DATA)와 CRC 검출부(324)로부터의 CRC 코드(CRC Code)를 이용하여 연산 동작을 수행하고, 상기 연산 동작에 기반하여 데이터(DATA)에 에러가 발생하였는지를 검출하고 그 결과를 출력한다. 검출 결과는 제1 데이터 처리 장치(310)로 제공될 수 있으며, 예컨대 상기 검출 결과는 데이터 전송 라인(330)을 통해 제1 데이터 처리 장치(310)로 제공될 수 있다.
도 4는 본 발명의 또 다른 실시예에 따른 데이터 처리 장치를 포함하는 반도체 시스템을 나타내는 블록도이다. 도 4에 도시된 바와 같이, 반도체 시스템(400)은 제1 데이터 처리 장치(410) 및 제2 데이터 처리 장치(420)를 포함할 수 있다. 전술한 바와 같이, 제1 및 제2 데이터 처리 장치(410, 420)는 각각 데이터의 송신 처리나 수신 처리를 수신하는 반도체 칩, 반도체 장치 또는 반도체 시스템 중 어느 하나가 적용될 수 있다.
제1 데이터 처리 장치(410)는 데이터 생성부(411), CRC 생성부(412), 병렬-직렬 변환기(413) 및 제1 정보 레지스터(414)를 구비한다. 또한, 제2 데이터 처리 장치(420)는 직렬-병렬 변환기(421), 데이터 저장부(422), 에러 체크부(423), CRC 검출부(424) 및 제2 정보 레지스터(425)를 구비한다. 또한, 제1 데이터 처리 장치(410)와 제2 데이터 처리 장치(420) 사이의 데이터 전송을 위한 데이터 전송 라인(430)이 반도체 시스템(400)에 배치된다.
데이터 생성부(411)는 제2 데이터 처리 장치(420)로 제공될 데이터(DATA)를 생성하고, 생성된 데이터(DATA)를 CRC 생성부(412)로 제공한다. 또한, 제1 정보 레지스터(414)는 CRC 코드(CRC Code)의 적어도 하나의 비트의 토글링을 위한 제어 정보(예컨대, 제1 정보)를 저장하며, 바람직하게는 제1 정보 레지스터(414)는 데이터(DATA)를 이용하여 생성된 CRC 코드(CRC Code) 중 인버팅을 수행할 특정 비트에 관계된 정보를 저장한다. 예컨대, CRC 코드(CRC Code) 중 a 번째 비트를 인버팅하여 전송하는 경우, 제1 정보 레지스터(414)는 CRC 코드(CRC Code)의 a 번째 비트의 위치에 관계된 정보를 저장하며, 또는 CRC 코드(CRC Code) 중 홀수 번째 비트를 인버팅하여 전송하는 경우, 제1 정보 레지스터(414)는 CRC 코드(CRC Code)의 홀수 번째 비트의 위치에 관계된 정보를 저장한다. 제1 정보 레지스터(414)에 저장된 제1 정보는 CRC 생성부(412)로 제공된다.
CRC 생성부(412)는 데이터(DATA)와 제1 정보를 수신하고, 이에 응답하여 CRC 코드(CRC Code)를 발생한다. 예컨대, 데이터(DATA)를 이용한 연산 동작에 기반하여 CRC 코드(CRC Code)를 생성하고, 제1 정보 레지스터(414)로부터의 제1 정보를 이용하여 CRC 코드(CRC Code) 중 특정한 하나 이상의 비트를 인버팅시켜 출력한다. 병렬-직렬 변환기(413)는 데이터(DATA)와 CRC 코드(CRC Code)를 결합하여 결합 데이터(DATA + CRC Code)를 발생하고, 결합 데이터(DATA + CRC Code)를 직렬 전송 방식에 따라 데이터 전송 라인(430)을 통해 제2 데이터 처리 장치(420)로 제공한다.
제2 데이터 처리 장치(420)의 직렬-병렬 변환기(421)는 결합 데이터(DATA + CRC Code)를 수신하고, 수신된 결합 데이터(DATA + CRC Code)를 병렬 형태로 변환한다. 또한, 직렬-병렬 변환기(421)는 결합 데이터(DATA + CRC Code)를 데이터(DATA)와 CRC 코드(CRC Code)로 분리하며, 데이터(DATA)를 데이터 저장부(422)로 제공하고 CRC 코드(CRC Code)를 CRC 검출부(424)로 제공한다. 제2 정보 레지스터(425)는 수신된 CRC 코드(CRC Code) 중 인버팅을 수행할 특정 비트에 관계된 제어 정보(예컨대, 제2 정보)를 저장하고, 저장된 제2 정보를 CRC 검출부(424)로 제공한다. 제2 정보 레지스터(425)에 저장된 제2 정보는 제1 정보 레지스터(414)에 저장된 제1 정보와 실질적으로 동일할 수 있으며, 이에 따라 제1 데이터 처리 장치(410)에서 인버팅된 CRC 코드(CRC Code)의 일부 비트는 제2 데이터 처리 장치(420) 내에서 다시 인버팅된다. 에러 체크부(423)는 데이터(DATA)와 CRC 검출부(424)로부터의 CRC 코드(CRC Code)를 이용하여 연산 동작을 수행하고, 상기 연산 동작에 기반하여 데이터(DATA)에 에러가 발생하였는지를 검출하고 그 결과를 출력한다.
도 5는 도 4의 제2 데이터 처리 장치의 직렬-병렬 변환기의 일 구현예를 나타내는 블록도이다. 도 5에 도시된 바와 같이, 직렬-병렬 변환기(421)는 결합 데이터(DATA + CRC Code)를 수신하고 이를 분리하여 데이터(DATA)와 CRC 코드(CRC Code)를 생성한다. 또한, 직렬-병렬 변환기(421)는 CDR 방식에 따라 결합 데이터(DATA + CRC Code)로부터 데이터(DATA)와 CRC 코드(CRC Code)를 샘플링한다. 이를 위하여, 직렬-병렬 변환기(421)는 샘플링 회로(421_1), 클럭 리커버리 회로(421_2) 및 변환부(421_3)를 구비할 수 있다.
데이터 전송 라인을 통해 수신된 결합 데이터(DATA + CRC Code)는 입력 버퍼를 통하여 샘플링 회로(421_1) 및 클럭 리커버리 회로(421_2)로 각각 제공된다. 클럭 리커버리 회로(421_2)는 클럭 신호(CLK)를 수신하고, 상기 클럭 신호(CLK)의 위상을 결합 데이터(DATA + CRC Code)의 천이에 트랙킹시킨다. 송신 장치(미도시)에서 CRC 코드(CRC Code)의 적어도 하나의 비트를 인버팅시키므로, 데이터(DATA)가 모두 "0"의 값을 갖더라도 결합 데이터(DATA + CRC Code)의 적어도 하나의 비트는 토글링된다. 트랙킹된 클럭 신호(CLK_1)는 샘플링 회로(421_1)로 제공되며, 샘플링 회로(421_1)는 트랙킹된 클럭 신호(CLK_1)를 이용하여 결합 데이터(DATA + CRC Code)를 샘플링한다. 샘플링 회로(421_1)에 의해 샘플링된 데이터(DATA)와 CRC 코드(CRC Code)는 변환부(421_3)로 제공되며, 변환부(421_3)는 데이터(DATA) 및 CRC 코드(CRC Code)를 직렬 형태로 변환한다.
도 5에서는 도 4의 직렬-병렬 변환기(421)를 구현하는 일예를 나타내었으나, 상기 도 5에 도시된 구성은 전술한 실시예에서도 동일 또는 유사하게 구현될 수 있다. 예컨대, 전술한 실시예에서 언급된 제2 데이터 처리 장치에 구비되는 데이터 수신부나 직렬-병렬 변환기 또한 CDR 방식에 따라 데이터(DATA)와 CRC 코드(CRC Code)를 샘플링할 수 있으며, 이 경우 데이터 수신부나 직렬-병렬 변환기 각각에는 샘플링 회로와 클럭 리커버리 회로가 구비될 수 있다.
도 6은 도 4의 반도체 시스템에서의 데이터와 CRC 코드의 전송의 일예를 나타내는 도면이다. 도 4 및 도 5를 참조하면, 제1 데이터 처리 장치(410) 내의 데이터(DATA)와 CRC 코드(CRC Code)가 병렬-직렬 변환기(413)로 제공된다. 이 때 CRC 코드(CRC Code)의 하나 이상의 특정 비트가 인버팅되어 병렬-직렬 변환기(413)로 제공된다. CRC 코드(CRC Code) 중 인버팅될 비트의 위치는 제1 정보 레지스터(414)에 저장된 제1 정보를 이용하여 제어될 수 있다. 병렬-직렬 변환기(413)는 데이터(DATA)와 특정 비트가 인버팅된 CRC 코드(CRC Code)를 결합하고, 결합 데이터(DATA + CRC Code)를 출력 버퍼를 통해 직렬 전송한다. 또한, 제2 데이터 처리 장치(420)의 직렬-병렬 변환기(421)는 입력 버퍼를 통해 결합 데이터(DATA + CRC Code)를 수신하고, 결합 데이터(DATA + CRC Code)를 데이터(DATA)와 CRC 코드(CRC Code)로 분리한다. 또한, 분리된 CRC 코드(CRC Code)의 하나 이상의 특정 비트가 인버팅되며, CRC 코드(CRC Code) 중 인버팅될 비트의 위치는 제2 정보 레지스터(425)에 저장된 제2 정보를 이용하여 제어될 수 있다.
도 7은 도 4의 반도체 시스템에서의 데이터와 CRC 코드의 전송의 다른 예를 나타내는 도면이다. 도 4 및 도 7을 참조하면, 제1 데이터 처리 장치(410) 내의 데이터(DATA)와 CRC 코드(CRC Code)가 병렬-직렬 변환기(413)로 제공되며, 병렬-직렬 변환기(413)는 데이터(DATA)와 CRC 코드(CRC Code)를 결합한다. 결합 데이터(DATA + CRC Code)는 소정의 프레임 포맷(frame format)에 따라 병렬 형태의 데이터에서 직렬 형태의 데이터로 변환된다.
제1 데이터 처리 장치(410) 내의 제1 정보 레지스터(414)는 CRC 코드(CRC Code) 중 인버팅될 비트의 위치에 관계된 정보 이외에도 병렬-직렬 변환기(413)로부터 전송될 데이터(DATA)와 CRC 코드(CRC Code)의 전송 순서에 관계된 정보를 더 저장한다. 제1 정보 레지스터(414)는 상기와 같은 정보들을 CRC 생성부(412)와 병렬-직렬 변환기(413)로 제공한다. CRC 생성부(412)는 상기 정보에 응답하여 CRC 코드(CRC Code) 중 특정한 위치의 하나 이상의 비트를 인버팅시키고, 또한 병렬-직렬 변환기(413)는 데이터(DATA)와 CRC 코드(CRC Code)를 결합함에 있어서 제1 정보 레지스터(414)로부터의 전송 순서에 관계된 정보를 이용하여 데이터(DATA)와 CRC 코드(CRC Code)를 이용한 프레임 포맷을 구성한다. 상기 구성된 프레임 포맷에 따라 결합 데이터(DATA + CRC Code)를 출력 버퍼를 통해 직렬 방식으로 전송한다. 도 7에는, 전송 순서와 관련하여, CRC 코드(CRC Code)가 데이터(DATA)의 후단에 부가되어 전송되는 경우와, CRC 코드(CRC Code)의 비트들이 데이터(DATA)의 중간에 삽입되어 전송되는 경우가 예시된다.
또한, 제2 데이터 처리 장치(420)의 직렬-병렬 변환기(421)는 입력 버퍼를 통해 결합 데이터(DATA + CRC Code)를 수신하고, 결합 데이터(DATA+CRC Code)를 데이터(DATA)와 CRC 코드(CRC Code)로 분리한다. 제2 정보 레지스터(425)는, CRC 코드(CRC Code) 중 인버팅될 비트의 위치에 관계된 정보 이외에도 제1 데이터 처리 장치(410)로부터 전송되는 데이터(DATA)와 CRC 코드(CRC Code)의 전송 순서와 관계된 정보를 더 저장한다. 직렬-병렬 변환기(421)는 제2 정보 레지스터(425)로부터의 정보들을 이용하여 결합 데이터(DATA + CRC Code)를 데이터(DATA)와 CRC 코드(CRC Code)로 분리한다. 또한, CRC 검출부(424)는, 제2 정보 레지스터(425)로부터의 정보들을 이용하여 CRC 코드(CRC Code) 중 하나 이상의 특정 비트를 인버팅하여 출력한다.
본 실시예 및 전술한 실시예에서는, CRC 코드(CRC Code)를 인버팅시킴에 있어서, 데이터를 전송하는 장치에서는 CRC 생성부 내에 CRC 코드(CRC Code)를 인버팅시키기 위한 수단이 구비되고, 데이터를 수신하는 장치에서는 CRC 검출부 내에 CRC 코드(CRC Code)를 인버팅시키기 위한 수단이 구비되는 것으로 설명되었다. 그러나, 본 발명의 실시예는 반드시 이에 국한될 필요가 없다. 예컨대, 데이터를 전송하는 장치에서, 하나 이상의 인버터가 데이터 송신부 또는 병렬-직렬 변환기 내에 구비되고, 인버팅을 수행할 비트의 위치를 나타내는 정보가 데이터 송신부 또는 직렬-병렬 변환기로 제공될 수도 있다. 이와 유사하게, 데이터를 수신하는 장치에서, 하나 이상의 인버터가 데이터 수신부 또는 직렬-병렬 변환기 내에 구비되고, 인버팅을 수행할 비트의 위치를 나타내는 정보가 데이터 수신부 또는 직렬-병렬 변환기로 제공될 수도 있다.
도 8은 본 발명의 또 다른 실시예에 따른 데이터 처리 장치를 포함하는 반도체 시스템을 나타내는 블록도이다. 도 8에 도시된 바와 같이, 반도체 시스템(500)은 제1 데이터 처리 장치(510) 및 제2 데이터 처리 장치(520)를 포함할 수 있다. 제1 데이터 처리 장치(510)는 데이터 생성부(511), CRC 생성부(512) 및 데이터 송신부(513)를 구비하며, 또한, 제2 데이터 처리 장치(520)는 데이터 수신부(521), 데이터 저장부(522), 에러 체크부(523) 및 CRC 검출부(524)를 구비할 수 있다. 또한, 제1 데이터 처리 장치(510)와 제2 데이터 처리 장치(520) 사이의 데이터의 병렬 전송을 위한 데이터 전송 라인(530)이 반도체 시스템(500)에 배치된다.
도 8의 반도체 시스템(500)에서는, 제1 데이터 처리 장치(510)와 제2 데이터 처리 장치(520)가 다수의 채널을 갖는 데이터 전송 라인(530)을 통해 결합 데이터(DATA + CRC Code)를 병렬 통신한다. CRC 생성부(512)는 데이터 생성부(511)로부터의 데이터(DATA)를 연산하여 CRC 코드(CRC Code)를 생성하고, 상기 CRC 코드(CRC Code) 중 적어도 하나의 비트를 토글링(또는 인버팅)시킨다. 데이터 송신부(513)는 데이터(DATA)와 CRC 코드(CRC Code)를 결합하여 결합 데이터(DATA + CRC Code)를 생성하고, 결합 데이터(DATA + CRC Code)를 n 개의 채널을 통해 제2 데이터 처리 장치(520)로 병렬 전송한다. 예컨대, 데이터 전송 라인(530)이 8 개의 채널을 포함하는 경우, 제1 데이터 내지 제8 데이터(DQ0 ~ DQ7)가 데이터 전송 라인(530)을 통해 병렬 전송되며, 상기와 같은 병렬 전송 방식에 따라 8 바이트(Byte)의 데이터(DATA)가 전송되고 난 후 CRC 코드(CRC Code)가 데이터 전송 라인(530)을 통해 전송될 수 있다.
도 8에 도시된 제1 내지 제8 CRC 코드(/CRC0 ~ /CRC7)는 상기 8 바이트(Byte)의 데이터(DATA)에 대응하여 생성된 CRC 코드(CRC Code)이며, 또한 적어도 하나의 비트가 인버팅된 CRC 코드(CRC Code)이다. 데이터 전송 라인(530)의 각각의 채널 당 8 비트의 데이터(DATA)와 1 비트의 CRC 코드(CRC Code)를 순차적으로 전송한다고 가정할 때, 상기 8 비트의 데이터(DATA)가 모두 "0"인 경우 CRC 코드(CRC Code) 또한 "0"이 될 수 있으므로, 어느 하나의 채널을 통해 전송되는 결합 데이터(DATA + CRC Code)의 비트값이 모두 "0"이 될 수 있다. 이를 방지하기 위하여, 데이터 전송 라인(530)의 각각의 채널을 통해 전송되는 CRC 코드(CRC Code)를 항상 인버팅시킬 수 있다. 예컨대, 제1 내지 제8 CRC 코드(/CRC0 ~ /CRC7)가 각각 8 개의 채널을 통해 병렬하게 전송되는 경우, 제1 내지 제8 CRC 코드(/CRC0 ~ /CRC7)는 CRC 코드 생성부(512)로부터 생성된 원래의 CRC 코드(CRC0 ~ CRC7)를 모두 반전시킨 코드이다.
한편, 결합 데이터(DATA + CRC Code)를 병렬 전송하고, CRC 코드(CRC Code)가 데이터(DATA)의 합산 연산에 기반하여 생성되는 경우, 데이터(DATA)가 모두 "1"의 값을 갖는 경우에 이에 대응하는 CRC 코드(CRC Code) 또한 "1"의 값을 갖는 경우가 발생한다. 예컨대, 도 8에 도시된 데이터들(8 바이트의 데이터)이 모두 "1"의 값을 갖는 경우, 상기 데이터들을 연산하여 생성된 CRC 코드(CRC Code)는 "1"의 값을 갖거나 "0"의 값을 가질 수 있다. 이에 따라, 8 개의 채널들 중 일부의 채널에는, 데이터(DATA)와 CRC 코드(CRC Code)의 모든 비트의 값이 "1"의 값을 갖는 경우가 발생하며, 이에 따라 일부의 채널을 통해 전송되는 결합 데이터(DATA + CRC Code)에는 토글링이 발생하지 않을 수 있다.
CRC 코드(CRC Code)를 생성하기 위한 연산식과 관련된 정보는 데이터 전송 장치 및 데이터 수신 장치에 기 설정되어 있으므로, 데이터(DATA)가 모두 "1"인 경우에 상기 데이터(DATA)에 대응하여 생성되는 CRC 코드(CRC Code)의 비트들 중 "1"의 값을 갖는 비트의 위치를 알 수 있다. 이에 따라, 데이터(DATA)가 모두 "1"인 경우에 CRC 코드(CRC Code)의 특정 비트를 인버팅시키기 위한 정보가 데이터 전송 장치나 데이터 수신 장치에 더 저장될 수 있다. 또한, 전술한 실시예에서 설명된 데이터(DATA)의 패턴을 체크하는 패턴 체크부는 데이터(DATA)가 모두 "1"인지를 더 체크할 수 있다. 전송될 데이터(DATA)가 모두 "1"의 비트값을 갖는 경우, CRC 코드(CRC Code)의 특정 비트를 인버팅시키기 위한 정보에 따라 CRC 코드(CRC Code)에 대한 인버팅 동작을 수행한다. 데이터 수신 장치 또한 수신된 데이터(DATA)가 모두 "1"의 비트값을 갖는지를 체크하고, 그 체크 결과에 따라 CRC 코드(CRC Code)에 대한 인버팅 동작을 수행한다.
도 9는 본 발명의 일실시예에 따른 반도체 시스템에서 CRC 코드의 생성 및 전송의 일예를 나타내는 도면이다. 도 9에 도시된 바와 같이, 64 비트(또는 8 바이트)의 데이터(DATA[0:63])에 대응하여 8 비트의 CRC 코드(CRC[0:7])가 생성되고, 데이터(DATA[0:63])와 CRC 코드(CRC[0:7])를 결합한 결합 데이터가 데이터 전송 라인을 통해 전송된다. CRC 코드(CRC[0:7])는 데이터(DATA[0:63])를 연산함에 의하여 생성될 수 있으며, 예컨대, CRC 코드(CRC[0:7])가 데이터(DATA[0:63])의 합산(summation) 연산에 기반하여 생성되는 경우 데이터(DATA[0:63])의 모든 비트가 모두 "0"의 값을 가질 때 CRC 코드(CRC[0:7]) 또한 모든 비트가 모두 "0"의 값을 가진다. 이 경우, 결합 데이터의 모든 비트값 역시 "0"의 값을 갖게 되므로 데이터의 천이(Transition)가 발생하지 않게 되며, 이와 같은 결합 데이터의 전송 시 이를 수신하는 장치에서 데이터를 적절히 샘플링할 수 없게 된다.
이에 따라, 본 발명의 일실시예에 따른 반도체 시스템에서는 CRC 코드(CRC Code)의 적어도 하나의 비트를 토글링하는 프로토콜을 정하고, 상기 프로토콜에 따라 데이터 처리 장치들 사이에서 데이터(DATA) 및 CRC 코드(CRC Code)가 전송되도록 한다. 도 8에 도시된 바와 같이, 다수의 비트로 이루어지는 CRC 코드(CRC Code) 중 홀수 번째의 비트들을 인버팅시키도록 프로토콜이 정해지거나, 또는 CRC 코드(CRC Code) 중 짝수 번째의 비트들을 인버팅시키도록 프로토콜이 정해질 수 있다. 또는, 전술한 실시예에서와 같이 하나 이상의 일정한 비트를 인버팅시키는 방법에 의하여 프로토콜이 정해질 수 있으며, 또는 데이터(DATA)의 패턴을 검출하여 상기 데이터(DATA)의 모든 비트들이 "0"의 값을 갖는 경우 CRC 코드(CRC Code)의 적어도 하나의 비트를 인버팅시키는 방법에 의하여 프로토콜이 정해질 수 있다.
도 10은 본 발명의 일실시예에 따른 데이터 처리 방법을 나타내는 플로우차트이다. 특히 도 10은 데이터(DATA)와 CRC 코드(CRC Code)를 결합한 결합 데이터를 전송하는 데이터 처리 장치의 동작 방법을 나타낸다.
도 10에 도시된 바와 같이, 데이터를 전송하는 장치 내에서 원본 데이터(Original Data)가 생성되면, CRC 코드를 생성하는 로직 블록은 상기 원본 데이터(Original Data)를 수신하며(S11), 상기 수신된 원본 데이터(Original Data)를 연산 처리하여 CRC 코드(CRC Code)를 생성한다(S12). 특히, CRC 코드를 생성하는 로직 블록은 생성된 CRC 코드(CRC Code)의 적어도 하나의 비트를 토글링시키며, 예컨대 CRC 코드(CRC Code) 중 기 지정된 하나 이상의 비트를 인버팅시키거나, 또는 원본 데이터(Original Data)의 데이터 패턴을 검출하고 그 검출 결과에 따라 CRC 코드(CRC Code)의 적어도 하나의 비트를 인버팅시키거나 인버팅시키지 않는다. 원본 데이터(Original Data)의 비트들이 모두 "0"의 값을 갖는 경우, CRC 코드(CRC Code)의 적어도 하나의 비트를 인버팅시킬 수 있다.
상기와 같이 적어도 하나의 비트가 토글링된 CRC 코드(CRC Code)가 생성되면, CRC 코드(CRC Code)를 원본 데이터(Original Data)에 부가하여 결합 데이터를 생성하고(S13), 상기 생성된 결합 데이터를 데이터 전송 라인을 통해 데이터 수신 장치로 제공한다(S14). 본 발명의 실시예에 따른 데이터 처리 방법을 설명함에 있어서, 도 1에 도시된 반도체 시스템의 동작의 일예를 참조하여 설명하였으나 본 발명의 데이터 처리 방법은 이에 국한될 필요가 없다. 즉, 본 발명의 실시예에 따른 데이터 처리 방법은 전술한 다른 실시예, 예컨대 결합 데이터를 직렬 전송하는 방식, 병렬 전송하는 방식, 원본 데이터(Original Data)의 패턴에 무관하게 레지스터에 저장된 정보를 이용하여 CRC 코드(CRC Code)의 특정한 비트를 인버팅시키는 방식 및 원본 데이터(Original Data)의 패턴에 따라 선택적으로 CRC 코드(CRC Code)의 특정한 비트를 인버팅시키는 방식 등에 모두 적용될 수 있다.
도 11은 본 발명의 다른 실시예에 따른 데이터 처리 방법을 나타내는 플로우차트이다. 특히 도 11은 데이터(DATA)와 CRC 코드(CRC Code)를 결합한 결합 데이터를 수신하는 데이터 처리 장치의 동작 방법을 나타낸다.
도 11에 도시된 바와 같이, 데이터를 수신하는 장치는 데이터 전송 라인을 통해 전송되는 결합 데이터를 수신한다(S21). 데이터를 수신하는 장치는 CDR 동작에 기반하여 상기 결합 데이터에 대한 샘플링 동작을 수행한다(S22). 또한, 결합 데이터로부터 데이터와 CRC 코드(CRC Code)를 분리한다(S23). 결합 데이터 전송시 데이터를 전송하는 단에서 CRC 코드(CRC Code)의 적어도 하나의 비트를 인버팅시킨 것에 대응하여, 상기 결합 데이터로부터 분리된 CRC 코드(CRC Code) 중 적어도 하나의 비트를 인버팅시킨다. 데이터를 수신하는 장치에서 CRC 코드(CRC Code) 중 인버팅을 수행해야 할 비트에 관한 정보는 다양한 방식에 따라 얻어질 수 있다. 예컨대, 데이터를 전송하는 장치는 결합 데이터 이외에 별도의 정보를 추가로 전송하고, 상기 추가로 전송된 정보는 CRC 코드(CRC Code) 중 인버팅된 비트의 위치를 나타내는 정보를 포함할 수 있다. 또는, CRC 코드(CRC Code)의 특정한 비트를 인버팅시키기 위한 비트의 위치 정보가 데이터를 전송하는 장치 및 수신하는 장치 각각의 내부에 구비되는 레지스터에 기 설정되어 저장될 수 있으며, 데이터를 수신하는 장치는 상기 레지스터에 저장된 정보를 참조하여 결합 데이터로부터 분리된 CRC 코드(CRC Code)의 특정한 비트를 인버팅시킨다.
상기와 같은 결합 데이터로부터 분리 동작 및 CRC 코드(CRC Code)의 검출 동작이 완료되면, CRC 코드(CRC Code)를 이용하여 에러 발생 여부를 체크한다(S24). 에러가 발생한 것으로 체크되면 데이터의 재전송 요청을 데이터 전송 장치로 제공할 수 있다. 한편, 에러가 발생하지 않은 경우, 상기와 같은 과정에 의하여 얻어진 원본 데이터(Original Data)를 데이터 수신 장치 내에 구비되는 데이터 저장부에 저장한다(S25).
도 12는 메모리 콘트롤러와 메모리 장치를 포함하는 본 발명의 메모리 시스템의 응용 예를 나타내는 블록도이다.
도 12의 (a)의 메모리 시스템(600A)를 참조하면, 메모리 콘트롤러(610A)와 메모리 장치(예컨대 DRAM, 620A) 사이의 버스 프로토콜이 개시되어 있는 바, 메모리 콘트롤러로부터 /CS, CKE, /RAS, /CAS, /WE 등의 제어 신호(C/S, Control signal)와 어드레스 신호(ADDR)가 메모리에 제공된다. 데이터(DQ)는 양방향으로 전송된다. 메모리 콘트롤러(610A)가 라이트 데이터와 함께 CRC 코드를 메모리 장치(620A)로 제공하는 경우, 메모리 콘트롤러(610A)는 전술한 실시예에서 데이터 전송 장치로 동작하며, 메모리 장치(620A)는 데이터 수신 장치로 동작할 수 있다. 또한, 메모리 콘트롤러(610A)와 메모리 장치(620A) 사이에서 데이터가 동일한 데이터 채널을 통해 양방향으로 전송되므로, 라이트 데이터 전송시와 리드 데이터 전송시에 CRC 코드의 인버팅을 위한 프로토콜을 공통 사용할 수 있다.
도 12의 (b)의 메모리 시스템(600B)를 참조하면, 메모리 콘트롤러(610B)로부터 패킷화된 제어 및 어드레스 신호(C/A Packet; Packetized control signals and address signals)가 메모리 장치(620B)에 제공되고, 데이터(DQ)는 양방향으로 전송된다. 메모리 콘트롤러(610B) 및 메모리 장치(620B) 각각은 데이터 전송 및 수신 장치로서 모두 동작할 수 있다.
도 12의 (c)의 메모리 시스템(600C)를 참조하면, 메모리 콘트롤러(610C)로부터 패킷화된 제어 신호와 어드레스 신호 및 라이트 데이터(C/A/WD Packet; Packetized control signals and address signals and write signals)가 메모리 장치(620C)에 제공되고, 데이터 출력(Q)은 메모리 장치(620C)에서 메모리 콘트롤러(610C)로 단방향으로 전송된다. 라이트 데이터(WD) 전송시나 리드 데이터(Q) 전송시 어느 하나만에 CRC 코드의 인버팅이 적용된 프로토콜이 사용될 수도 있으며, 라이트 및 리드 데이터(WD, Q) 전송시 모두 CRC 코드의 인버팅이 적용된 프로토콜이 사용될 수도 있다. 또한 라이트 데이터(WD) 전송시나 리드 데이터(Q) 전송시의 서로 다른 프로토콜이 적용될 수도 있다.
도 12의 (d)의 메모리 시스템(600D)를 참조하면, 메모리 콘트롤러(610D)로부터 제어 신호(C/S; Control signals)가 메모리 장치(620D), 예컨대 플래쉬 SRAM(Flash SRAM)에 제공되고, 명령과 어드레스 및 데이터(C/A/DQ)는 양방향으로 전송된다.
도 13은 본 발명의 반도체 장치를 포함하는 전자 시스템의 응용 예를 도시한 블록도이다. 도 13을 참조하면, 전자 시스템(700)은 입력 장치(710), 출력 장치(720), 프로세서 장치(730) 및 반도체 메모리 장치(740)를 포함한다. 반도체 메모리 장치(740)는 메모리(741)를 포함하며, 또한 상기 메모리(741)를 구동하기 위한 메모리 컨트롤러(미도시)를 포함할 수 있다. 데이터를 송수신하는 장치들 사이에서 본 발명의 일실시예에 따른 데이터 처리 방법이 적용될 수 있으며, 예컨대 프로세서 장치(730)와 반도체 메모리 장치(740) 사이에서 CRC 코드의 토글링을 이용한 데이터 전송 방법이 적용될 수 있다. 또한, 반도체 메모리 장치(740) 내의 메모리 컨트롤러(미도시)와 메모리(741) 사이에서 CRC 코드의 토글링을 이용한 데이터 전송 방법이 적용될 수 있다. 프로세서 장치(730)는 각각 해당하는 인터페이스를 통해서 입력 장치(710), 출력 장치(720) 그리고 반도체 메모리 장치(740)를 제어한다.
도 14는 본 발명에 따른 반도체 장치를 사용하는 메모리 카드의 응용 예를 나타내는 블록도이다. 도 14를 참조하면, 메모리 카드(800)는 인터페이스부(810), 컨트롤러(820) 그리고 반도체 메모리 장치(830)를 포함한다. 반도체 메모리 장치(830)로서, 상기하였던 휘발성 메모리 장치로서 DRAM 이외에도 비휘발성 메모리 장치가 적용되는 예가 도 14에 도시된다.
인터페이스부(810)는 메모리 카드(800)와 호스트(미도시)와의 인터페이싱을 제공한다. 인터페이스부(810)는 호스트와의 인터페이싱을 위해 호스트에 대응하는 데이터 교환 프로토콜을 구비한다. 인터페이스부(810)는 USB(Universal Serial Bus), MMC(Multi-Media Card), PCI-E(Peripheral Component Interconnect-Express), SAS(Serial-attached SCSI), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Disk Interface), 그리고 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 호스트와 통신하도록 구성될 것이다.
컨트롤러(820)는 인터페이스부(810)를 통해서 외부로부터 제공되는 데이터 및 어드레스를 제공받는다. 컨트롤러(820)는 호스트로부터 제공되는 데이터, 어드레스를 참조하여 반도체 메모리 장치(830)를 액세스한다. 컨트롤러(820)는 반도체 메모리 장치(830)로부터 읽혀진 데이터(Data)를 인터페이스부(810)를 경유하여 호스트로 전달할 수 있다. 컨트롤러(820)는 버퍼 메모리(821)를 포함할 수 있다.
버퍼 메모리(821)에는 호스트로부터 제공되는 쓰기 데이터 또는 반도체 메모리 장치(830)로부터 읽혀진 데이터가 일시 저장된다. 호스트의 읽기 요청 시에 반도체 메모리 장치(830)에 존재하는 데이터가 캐시 되어 있는 경우에는, 버퍼 메모리(821)는 캐시 된 데이터를 직접 호스트로 제공하는 캐시 기능을 지원한다. 일반적으로, 호스트의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 메모리 카드(800)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트의 인터페이스 속도가 월등히 높은 경우, 버퍼 메모리(821)를 제공함으로써 속도 차이로 발생하는 성능(Performance) 저하를 최소화할 수 있다.
반도체 메모리 장치(830)는 메모리 카드(800)의 저장 매체로서 제공된다. 예를 들면, 반도체 메모리 장치(830)는 저항성 메모리 장치로 구현될 수 있다. 또는, 반도체 메모리 장치(830)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 구현될 수 있다. 반도체 메모리 장치(830)는 복수의 메모리 장치를 포함할 수 있다. 이 경우, 각각의 반도체 메모리 장치들은 채널 단위로 컨트롤러(820)와 연결된다. 저장 매체로서 반도체 메모리 장치(830)는 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 또한, 상기 메모리 카드(800)에는 본 발명의 일실시예에 따른 데이터 처리 방법이 적용될 수 있으며, 예컨대 컨트롤러(820)와 외부의 호스트(미도시) 사이에서 CRC 코드의 토글링을 이용한 데이터 전송 방법이 적용될 수 있다. 또한, 메모리 카드(800) 내의 컨트롤러(820)와 반도체 메모리 장치(830) 사이에서 CRC 코드의 토글링을 이용한 데이터 전송 방법이 적용될 수 있다.
도 15는 본 발명에 따른 메모리 카드의 다른 응용 예를 나타내는 블록도이다. 도 15를 참조하면, 메모리 카드(900)는 인터페이스부(910), 컨트롤러(920) 그리고 반도체 메모리 장치(930)를 포함한다. 인터페이스부(910)와 반도체 메모리 장치(930)의 구성은 도 14의 그것들과 실질적으로 동일하다. 따라서, 이것들에 대한 설명은 생략하기로 한다.
컨트롤러(920)는 어드레스 변환 테이블(922)이 구성되는 버퍼 메모리(921)를 포함한다. 컨트롤러(920)는 어드레스 변환 테이블(922)을 참조하여 인터페이스부(910)로부터 제공되는 논리 어드레스(Logical Address)를 물리 어드레스(Physical Address)로 변환한다. 변환된 물리 어드레스(Physical Address)를 참조하여 컨트롤러(920)는 반도체 메모리 장치(930)를 액세스하게 될 것이다.
도 14 및 도 15에 도시된 메모리 카드(800, 900)는 디지털 카메라, PMP(Portable Media Player), 모바일 폰, 노트북 컴퓨터와 같은 정보 처리 장치에 장착될 수 있다. 메모리 카드(800, 900)는 MMC 카드, SD 카드(Secure Digital Card), 마이크로 SD 카드, 메모리 스틱(Memory Stick), ID 카드, PCMCIA(Personal Computer Memory Card International Association) 카드, 칩 카드(Chip Card), USB 카드, 스마트 카드(Smart Card), CF 카드(Compact Flash Card) 등으로 더 구성될 수 있다.
도 16은 본 발명의 실시 예에 따른 메모리 장치 또는 메모리 시스템을 포함한 컴퓨팅 시스템(1000)이 개략적으로 도시되어 있다. 본 발명에 따른 컴퓨팅 시스템(1000)은 시스템 버스(1600)에 전기적으로 연결된 마이크로프로세서(1200), 램(1300), 사용자 인터페이스(1400), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(1500) 및 메모리 시스템(1100)을 포함한다.
메모리 시스템(1100)이나 램(1300)은 데이터를 저장하거나 출력하는 장치로서, 그 내부에 구동하기 위한 다양한 로직회로들을 각각 구비한다. 본 발명에 따른 컴퓨팅 시스템(1000)이 모바일 장치인 경우, 컴퓨팅 시스템(1000)의 동작 전압을 공급하기 위한 배터리(도시하지 않음)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(1000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIP), 모바일 디램(Mobile DRAM) 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 시스템(1100)은, 예를 들면, 데이터를 저장하는 데 비휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 또는, 메모리 시스템(1100)은, 퓨전 플래시 메모리(예를 들면, SRAM 버퍼와 NAND 플래시 메모리 및 NOR 인터페이스 로직이 결합된 메모리)로 제공될 수 있다.
데이터를 송수신하는 장치들 사이에서 본 발명의 일실시예에 따른 데이터 처리 방법이 적용될 수 있으며, 예컨대 메모리 시스템(1100)과 마이크로프로세서(1200) 사이의 데이터 통신 및/또는 메모리 시스템(1100)과 모뎀(1500) 사이의 데이터 통신에서 CRC 코드의 토글링을 이용한 데이터 전송 방법이 적용될 수 있다. 또한, 메모리 시스템(1100) 내에서 콘트롤러와 메모리 장치(이상, 미도시) 사이의 데이터 통신에서 CRC 코드의 토글링을 이용한 데이터 전송 방법이 적용될 수 있다. 또한, 램(1300)과 마이크로프로세서(1200) 사이의 데이터 통신 및/또는 램(1300)과 모뎀(1500) 사이의 데이터 통신에서 CRC 코드의 토글링을 이용한 데이터 전송 방법이 적용될 수 있다.
본 발명에 따른 반도체 장치 및/또는 시스템은 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 반도체 장치 및/또는 시스템은 PoP(Package on Package), BGAs(Ball grid arrays), CSPs(Chip scale packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-Line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-Line Package), MQFP(Plastic Metric Quad Flat Pack), TQFP(Thin Quad Flatpack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline Package), TQFP(Thin Quad Flatpack), SIP(System In Package), MCP(Multi Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package) 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (10)

  1. 제1 데이터로부터 복수의 비트로 구성된 CRC(Cyclic Redundancy Check) 정보를 생성하는 CRC 생성부;
    상기 생성된 CRC 정보와 상기 제1 데이터를 결합하여 제2 데이터를 송신하는 데이터 송신부; 및
    상기 제1 데이터의 패턴이 특정한 패턴을 갖는지를 체크하고 체크 결과를 출력하는 패턴 체크부를 포함하고,
    상기 제1 데이터가 기 설정된 패턴과 동일한 제1 패턴을 갖는 경우 상기 제1 데이터로부터 생성된 상기 CRC 정보의 적어도 하나의 비트에 대해 인버팅이 수행되고, 상기 제1 데이터가 기 설정된 패턴과 동일하지 않은 패턴을 갖는 경우 상기 CRC 정보에 대해 인버팅이 수행되지 않는 데이터 처리 장치.
  2. 제1항에 있어서,
    상기 인버팅이 수행된 CRC 정보는 적어도 하나의 특정 비트가 토글링되는 데이터 처리 장치.
  3. 제2항에 있어서,
    상기 적어도 하나의 특정 비트가 토글링되도록 설정된 제어 정보를 제공하는 레지스터를 더 포함하는 데이터 처리 장치.
  4. 제1항에 있어서,
    상기 제1 패턴은, 상기 제1 데이터의 모든 비트가 동일한 값을 갖는 패턴인 데이터 처리 장치.
  5. 삭제
  6. 삭제
  7. 제1 데이터로부터 복수의 비트로 구성된 CRC 정보를 생성하는 단계;
    상기 생성된 CRC 정보를 상기 제1 데이터와 결합하여 제2 데이터를 생성하는 단계;
    상기 제1 데이터와 CRC 정보가 결합된 상기 제2 데이터에서 적어도 하나의 비트가 토글링되는 지를 판단하는 단계; 및
    상기 제1 데이터와 상기 CRC 정보가 토글링되는 적어도 하나의 비트를 포함하지 않음에 따라 상기 CRC 정보의 적어도 하나의 비트를 인버팅시키는 단계를 구비하고,
    상기 제1 데이터가 제1 패턴을 갖는 경우, 상기 제1 데이터와 상기 CRC 정보가 토글링되는 적어도 하나의 비트를 포함하지 않는 것으로 판단되는 데이터 처리 방법.
  8. 제7항에 있어서,
    상기 인버팅이 수행된 CRC 정보는 적어도 하나의 특정 비트가 토글링되는 데이터 처리 방법.
  9. 제7항에 있어서,
    상기 제1 패턴은, 상기 제1 데이터의 모든 비트가 동일한 값을 갖는 패턴인 데이터 처리 방법.
  10. 삭제
KR1020100110343A 2010-11-08 2010-11-08 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치 KR101688051B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020100110343A KR101688051B1 (ko) 2010-11-08 2010-11-08 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치
US13/239,156 US8645790B2 (en) 2010-11-08 2011-09-21 Data processing device and method using error detection code, method of compensating for data skew, and semiconductor device having the data processing device
DE102011084751.0A DE102011084751B4 (de) 2010-11-08 2011-10-19 Datenverarbeitungsbauelement, -system und -verfahren
CN2011103494654A CN102468921A (zh) 2010-11-08 2011-11-08 数据处理装置、方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100110343A KR101688051B1 (ko) 2010-11-08 2010-11-08 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치

Publications (2)

Publication Number Publication Date
KR20120049436A KR20120049436A (ko) 2012-05-17
KR101688051B1 true KR101688051B1 (ko) 2016-12-20

Family

ID=45971311

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100110343A KR101688051B1 (ko) 2010-11-08 2010-11-08 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치

Country Status (4)

Country Link
US (1) US8645790B2 (ko)
KR (1) KR101688051B1 (ko)
CN (1) CN102468921A (ko)
DE (1) DE102011084751B4 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103703447B (zh) * 2011-05-31 2017-02-08 艾沃思宾技术公司 Mram场的干扰检测和恢复
KR20130081388A (ko) * 2012-01-09 2013-07-17 삼성전자주식회사 메모리 장치와 이의 동작 방법
US20140089755A1 (en) * 2012-09-27 2014-03-27 Shveta KANTAMSETTI Reliability enhancements for high speed memory - parity protection on command/address and ecc protection on data
CN108650057B (zh) 2012-10-17 2023-10-13 华为技术有限公司 一种编译码的方法、装置及系统
US9081700B2 (en) 2013-05-16 2015-07-14 Western Digital Technologies, Inc. High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
CN103338092B (zh) * 2013-06-13 2016-09-21 清华大学 分布式短波电台通信的方法及系统
US9304709B2 (en) 2013-09-06 2016-04-05 Western Digital Technologies, Inc. High performance system providing selective merging of dataframe segments in hardware
CN103546240B (zh) * 2013-09-24 2017-06-30 许继集团有限公司 以太网crc校验方法
CN103631671B (zh) * 2013-11-19 2016-05-04 无锡众志和达数据计算股份有限公司 一种ssd存储器的数据保护方法及控制器
US10783030B2 (en) * 2014-03-12 2020-09-22 Sensia Llc Network synchronization for master and slave devices
US20180307555A1 (en) * 2015-10-27 2018-10-25 Cirus Logic International Semiconductor Limited. Transfer of data with check bits
US10379947B2 (en) 2017-01-11 2019-08-13 SK Hynix Inc. Semiconductor device
US10476658B1 (en) * 2017-09-25 2019-11-12 Cadence Design Systems, Inc. Method and system for implementing high speed source synchronous clock alignment
KR102514636B1 (ko) * 2018-10-22 2023-03-28 주식회사 엘엑스세미콘 디스플레이장치를 구동하기 위한 데이터처리장치, 데이터구동장치 및 시스템
CN109684789B (zh) * 2018-11-19 2021-03-23 日立楼宇技术(广州)有限公司 嵌入式产品中软件安全保护的方法、装置及计算机设备
US11863318B2 (en) * 2020-08-31 2024-01-02 Frontiir Pte Ltd. Error correction for network packets

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4544962A (en) * 1981-07-06 1985-10-01 Matsushita Electric Industrial Co., Ltd. Method and apparatus for processing binary data
JPH08195736A (ja) * 1995-01-13 1996-07-30 Nec Corp 通信システム
JP2001175490A (ja) 1999-12-21 2001-06-29 Nec Corp データ転送方式
JP2003134092A (ja) 2001-10-22 2003-05-09 Toshiba Corp 通信システム、送信装置、受信装置、誤り検出符号化回路および誤り検出回路
KR100480268B1 (ko) * 2003-01-14 2005-04-07 삼성전자주식회사 직교 주파수 분할 다중 시스템의 피크전력 대 평균전력 비 감소를 위한 장치 및 방법
KR20070072229A (ko) 2005-12-31 2007-07-04 삼성전자주식회사 Eds 구조를 이용하는 반도체 메모리 장치
CN101136000B (zh) * 2006-09-01 2011-01-05 飞思卡尔半导体公司 实现sd主机/从属设备的应用处理器电路和电子设备
US7644344B2 (en) * 2007-05-15 2010-01-05 Intel Corporation Latency by offsetting cyclic redundancy code lanes from data lanes
US8196009B2 (en) * 2008-06-18 2012-06-05 Intel Corporation Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code

Also Published As

Publication number Publication date
DE102011084751B4 (de) 2022-08-25
KR20120049436A (ko) 2012-05-17
CN102468921A (zh) 2012-05-23
US20120117443A1 (en) 2012-05-10
US8645790B2 (en) 2014-02-04
DE102011084751A1 (de) 2012-05-10

Similar Documents

Publication Publication Date Title
KR101688051B1 (ko) 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치
KR101457518B1 (ko) 메모리 제어기들에 있어서의 데이터 무결성 및 방법들
CN109643257B (zh) 用于存储器系统中的链路纠错的方法和设备
US20080075279A1 (en) Encryption processor of memory card and method for writing and reading data using the same
US20130173986A1 (en) Memory controller, data storage device, and memory controlling method
US11099932B2 (en) Controller and memory system
US20200241956A1 (en) Memory system and operating method thereof
US20150019934A1 (en) Data storage device, operating method thereof, and data processing system including the same
US20150026509A1 (en) Storage device having a data stream converter
KR102638790B1 (ko) 반도체장치 및 반도체시스템
US20140136925A1 (en) Method of operating a data storage device
ES2895367T3 (es) Protección contra errores de enlace dinámico en sistemas de memoria
US8719669B2 (en) Error correction decoder and error correction method thereof
US8423878B2 (en) Memory controller and memory system including the same having interface controllers generating parity bits
EP3499376B1 (en) Memory system varying operation of memory controller according to internal status of memory device
KR20140081954A (ko) 데이터 저장 장치 및 그것의 에러 정정 코드 처리 방법
KR20180023079A (ko) 반도체시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20191129

Year of fee payment: 4