KR101880655B1 - 데이터 복원 회로 및 데이터 복원 방법 - Google Patents

데이터 복원 회로 및 데이터 복원 방법 Download PDF

Info

Publication number
KR101880655B1
KR101880655B1 KR1020120033742A KR20120033742A KR101880655B1 KR 101880655 B1 KR101880655 B1 KR 101880655B1 KR 1020120033742 A KR1020120033742 A KR 1020120033742A KR 20120033742 A KR20120033742 A KR 20120033742A KR 101880655 B1 KR101880655 B1 KR 101880655B1
Authority
KR
South Korea
Prior art keywords
data
error
sampling
outputting
restored
Prior art date
Application number
KR1020120033742A
Other languages
English (en)
Other versions
KR20130111690A (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 KR1020120033742A priority Critical patent/KR101880655B1/ko
Priority to US13/718,403 priority patent/US9042503B2/en
Publication of KR20130111690A publication Critical patent/KR20130111690A/ko
Application granted granted Critical
Publication of KR101880655B1 publication Critical patent/KR101880655B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/048Speed or phase control by synchronisation signals using the properties of error detecting or error correcting codes, e.g. parity as synchronisation signal

Abstract

데이터 복원 회로가 개시된다. 상기 데이터 복원 회로는 서로 다른 위상을 갖는 다수의 샘플링 클락 신호들 각각을 이용해서 데이터를 샘플링하여 다수의 샘플링 데이터를 출력하는 샘플링 회로와, 상기 다수의 샘플링 데이터를 논리 연산하여 논리 연산 결과에 따라 다수의 중간 복원 데이터를 생성하는 복원 데이터 생성 회로와, 상기 다수의 중간 복원 데이터 각각에 대해서 CRC(cyclic redundancy check)를 수행하고 상기 다수의 중간 복원 데이터 중에서 에러를 포함하지 않는 중간 복원 데이터를 복원 데이터로서 출력하는 복원 회로를 포함한다.

Description

데이터 복원 회로 및 데이터 복원 방법{DATA RECOVERY CIRCUIT AND METHOD THEREOF}
본 발명의 개념에 따른 실시 예는 데이터 복원 기술에 관한 것으로, 특히 다수의 중간 복원 데이터 중에서 에러(error)가 없는 중간 복원 데이터를 복원 데이터로서 출력할 수 있는 데이터 복원 회로 및 그 방법에 관한 것이다.
통신 기술이 발달함에 따라, 데이터의 전송 속도가 초당 수십 기가비트 (gigabit)로부터 수백 기가비트까지 이르게 되었다. 일반적으로 초고속 통신에서는 병렬 인터페이스(parallel interface) 또는 직렬 인터페이스(serial interface)가 사용된다.
병렬 인터페이스에서는 전송되는 데이터에 포함된 비트들 사이의 크로스-토크(cross-talk) 및/또는 노이즈 커플링(noise coupling) 등으로 의해 최대 전송 거리 및/또는 최대 전송 속도가 제한되기 때문에, 데이터를 전송하기 위한 인터페이스로서 직렬 인터페이스가 주로 사용된다.
직렬 인터페이스는 병렬 데이터를 직렬 데이터로 변환하여 전송한다.
직렬 인터페이스는, 클락 신호와 데이터 각각을 서로 다른 전송 라인 (transmission line)을 통하여 동시에 전송하는 병렬 인터페이스와 달리, 클락 신호에 대한 정보를 포함하는 데이터를 하나의 전송 라인으로 전송한다. 그 이유는 초고속 통신에서 데이터의 단위 간격(unit interval)이 보통 1㎱이하로 짧고 전송 거리가 길기 때문에, 클락 신호와 데이터를 동시에 전송하면 수신단에서 상기 클락 신호와 상기 데이터 사이에서 스큐(skew)가 발생할 수 있기 때문이다.
따라서, 송신단은 클락 신호에 대한 정보를 포함하는 데이터를 전송하고, 수신단은 수신된 데이터로부터 상기 클락 신호와 데이터를 추출 또는 복원해야 한다.
직렬 인터페이스는 클락 및 데이터 복원 회로(clock and data recovery circuit)를 이용하여 클락 신호에 대한 정보를 포함하는 데이터로부터 상기 클락 신호와 데이터를 추출 또는 복원한다.
본 발명이 이루고자 하는 기술적인 과제는 다수의 중간 복원 데이터 중에서 에러가 없는 중간 복원 데이터를 복원 데이터로서 출력할 수 있는 데이터 복원 회로 및 그 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 데이터 복원 회로는 서로 다른 위상을 갖는 다수의 샘플링 클락 신호들 각각을 이용해서 데이터를 샘플링하여 다수의 샘플링 데이터를 출력하는 샘플링 회로와, 상기 다수의 샘플링 데이터를 논리 연산하여 논리 연산 결과에 따라 다수의 중간 복원 데이터를 생성하는 복원 데이터 생성 회로와,상기 다수의 중간 복원 데이터 각각에 대해서 에러를 체크하고, 상기 다수의 중간 복원 데이터 중에서 에러를 포함하지 않는 중간 복원 데이터를 복원 데이터로서 출력하는 복원 회로를 포함한다.
상기 복원 데이터 생성 회로는 상기 다수의 샘플링 데이터 각각의 로직 레벨이 동일한지의 여부를 판단하고, 판단 결과에 따라 판단 신호를 출력하는 논리 게이트 회로와, 상기 판단 신호에 응답하여 상기 다수의 샘플링 데이터 중에서 어느 하나의 로직 레벨에 따라 서로 동일한 로직 레벨 또는 서로 다른 로직 레벨을 갖는 상기 다수의 중간 복원 데이터를 생성하는 데이터 생성 회로를 포함한다.
상기 논리 게이트 회로는 상기 다수의 샘플링 데이터 각각의 상기 로직 레벨이 서로 동일할 때 제1레벨을 갖는 판단 신호를 출력하고, 상기 데이터 생성 회로는 상기 제1레벨을 갖는 상기 판단 신호에 응답하여 서로 동일한 로직 레벨을 갖는 상기 다수의 중간 복원 데이터를 생성한다.
상기 논리 게이트 회로는 상기 다수의 샘플링 데이터 각각의 상기 로직 레벨이 서로 동일하지 않을 때 제2레벨을 갖는 판단 신호를 출력하고, 상기 데이터 생성 회로는 상기 제2레벨을 갖는 상기 판단 신호에 응답하여 서로 다른 로직 레벨을 갖는 상기 다수의 중간 복원 데이터를 생성한다.
상기 논리 게이트 회로는 각각이 상기 다수의 샘플링 데이터 중에서 대응되는 적어도 두 개의 샘플링 데이터를 수신하는 다수의 배타 논리합 게이트들과, 상기 다수의 배타 논리합 게이트들 각각의 출력 신호를 논리합 연산하여 상기 판단 신호를 출력하는 논리합 게이트를 포함한다.
실시 예에 따라, 상기 복원 회로는 각각이 상기 다수의 중간 복원 데이터 각각에 대해 에러를 체크하기 위해 CRC(cyclic redundancy check)를 수행하고 에러 발생 여부를 지시하는 판단 신호를 출력하는 다수의 CRC 검사기들과, 각각이 상기 다수의 중간 복원 데이터 각각을 저장하기 위한 다수의 프레임 버퍼들과, 상기 다수의 CRC 검사기들 각각으로부터 출력된 상기 판단 신호에 응답하여 선택 신호를 출력하는 선택 신호 발생기와, 상기 선택 신호에 응답하여, 상기 다수의 프레임 버퍼들 중에서 어느 하나로부터 출력된 데이터를 상기 복원 데이터로서 출력하는 먹스를 포함한다.
다른 실시 예에 따라, 상기 복원 회로는 각각이 상기 다수의 중간 복원 데이터 각각에 대해 에러를 체크하기 위해 CRC를 수행하는 다수의 CRC 검사 유닛들과, 상기 다수의 CRC 검사 유닛들 중에서 어느 하나로부터 출력되고 에러를 포함하는 제1중간 복원 데이터와 상기 다수의 CRC 검사 유닛들 중에서 다른 하나로부터 출력되고 에러를 포함하지 않는 제2중간 복원 데이터를 서로 비교하여 에러의 위치를 추출하고, 상기 제1중간 복원 데이터와 상기 에러의 위치를 출력하는 추출 유닛과, 상기 에러의 위치에 기초하여 상기 제1중간 복원 데이터에 포함된 에러를 정정하여 상기 복원 데이터를 출력하는 에러 정정 유닛을 포함한다.
상기 샘플링 회로와 상기 복원 데이터 생성 회로는 피지컬 레이어(physical layer)에 구현되고, 상기 복원 회로는 링크 레이어에 구현된다.
본 발명의 실시 예에 따른 데이터 복원 회로의 동작 방법은 서로 다른 위상을 갖는 다수의 샘플링 클락 신호들 각각을 이용해서 데이터를 샘플링하여 다수의 샘플링 데이터를 출력하는 단계와, 상기 다수의 샘플링 데이터를 배타 논리합 연산하여 연산 결과에 따라 다수의 중간 복원 데이터를 생성하는 단계와, 상기 다수의 중간 복원 데이터 각각에 대해서 에러를 체크하고 상기 다수의 중간 복원 데이터 중에서 에러를 포함하지 않는 중간 복원 데이터를 복원 데이터로서 출력하는 단계를 포함한다.
상기 다수의 중간 복원 데이터를 생성하는 단계는 상기 다수의 샘플링 데이터 각각의 로직 레벨이 서로 동일할 때 서로 동일한 로직 레벨을 갖는 상기 다수의 중간 복원 데이터를 생성하고, 상기 다수의 샘플링 데이터 각각의 로직 레벨이 서로 동일하지 않을 때 서로 다른 로직 레벨을 갖는 상기 다수의 중간 복원 데이터를 생성한다.
실시 예에 따라 상기 복원 데이터로서 출력하는 단계는 상기 다수의 중간 복원 데이터 각각에 대해 에러를 체크하기 위해 CRC(cyclic redundancy check)를 수행하고 에러 발생 여부를 지시하는 각각의 판단 신호를 출력하는 단계와, 상기 각각의 판단 신호에 응답하여, 각각이 상기 다수의 중간 복원 데이터 각각을 저장하는 다수의 프레임 버퍼들 중에서 어느 하나로부터 출력된 데이터를 상기 복원 데이터로서 출력하는 단계를 포함한다.
다른 실시 예에 따라 상기 복원 데이터로서 출력하는 단계는 다수의 CRC 검사 유닛들 각각을 이용하여 상기 다수의 중간 복원 데이터 각각에 대해 에러를 체크하기 위해 CRC를 수행하는 단계와, 상기 다수의 CRC 검사 유닛들 중에서 어느 하나로부터 출력되고 에러를 포함하는 제1중간 복원 데이터와 상기 다수의 CRC 검사 유닛들 중에서 다른 하나로부터 출력되고 에러를 포함하지 않는 제2중간 복원 데이터를 서로 비교하여 에러의 위치를 추출하고, 상기 제1중간 복원 데이터와 상기 에러의 위치를 출력하는 단계와, 상기 에러의 위치에 기초하여 상기 제1중간 복원 데이터에 포함된 에러를 정정하여 상기 복원 데이터를 출력하는 단계를 포함한다.
실시 예에 따라 상기 데이터 복원 회로의 동작 방법은 SATA(Serial Advanced Technology Attachment) 인터페이스를 포함하는 시스템에서 수행된다.
다른 실시 예에 따라 상기 데이터 복원 회로의 동작 방법은 PCIe(Peripheral Component Interconnect Express) 표준을 사용하는 시스템에서 수행된다.
본 발명의 실시 예에 따른 데이터 복원 회로는 서로 다른 위상을 갖는 다수의 샘플링 클락 신호들 각각을 이용해서 데이터를 샘플링하여 생성된 다수의 샘플링 데이터를 배타 논리합 연산하고, 연산 결과에 따라 생성된 다수의 중간 복원 데이터 각각에 대해서 에러를 체크하고, 상기 다수의 중간 복원 데이터 중에서 에러를 포함하지 않는 중간 복원 데이터를 복원 데이터로서 출력하는 할 수 있는 효과가 있다.
즉, 상기 데이터 복원 회로는 다수의 중간 복원 데이터 중에서 에러가 없는 중간 복원 데이터를 복원 데이터로서 출력할 수 있으므로, 상기 복원 데이터의 비트 에러률(bit error rate)을 감소시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 인터페이스의 블록도이다.
도 2는 도 1에 도시된 복원 데이터 생성 회로에 포함된 논리 게이트 회로의 회로도와 데이터 생성 회로의 회로도이다.
도 3은 데이터에 에러가 포함되어 있지 않은 경우 중간 복원 데이터의 생성 과정을 설명하기 위한 도면이다.
도 4는 데이터에 에러가 포함되어 있는 경우 중간 복원 데이터의 생성 과정을 설명하기 위한 도면이다.
도 5는 도 1에 도시되고 본 발명의 일 실시 예에 따른 복원 회로의 블록도를 나타내는 도면이다.
도 6은 도 1에 도시되고 본 발명의 다른 실시 예에 따른 복원 회로의 블록도를 나타내는 도면이다.
도 7은 본 발명의 일 실시 예에 따른 인터페이스의 데이터 복원 방법을 나타내는 순서도이다.
도 8은 본 발명의 실시 예에 따른 데이터 복원 방법을 계층별로 설명하기 위한 도면이다.
도 9는 본 발명의 다른 실시 예에 따른 인터페이스의 데이터 복원 방법을 나타내는 순서도이다.
도 10은 도 1에 도시된 인터페이스를 포함하는 반도체 시스템의 개략적인 블록도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 인터페이스의 블록도이다. 도 1에서는 설명의 편의를 위해, 인터페이스(10)와 호스트(20)가 함께 도시되어 있다. 여기서 인터페이스(10)는 데이터 복원 회로의 기능을 수행한다.
인터페이스(10)와 호스트(20)를 포함하는 시스템은 SATA(Serial Advanced Technology Attachment) 인터페이스를 포함하는 시스템 또는 PCIe(Peripheral Component Interconnect Express) 표준을 사용하는 시스템일 수 있다.
또한, 인터페이스(10)와 호스트(20)를 포함하는 시스템은 PC(personal computer), 랩-탑(lap-top) 컴퓨터, 또는 휴대용 장치(portable device)를 의미할 수 있다.
도 1을 참조하면, 인터페이스(10)는 호스트(20)로부터 출력된 데이터(IDATA)에 포함된 에러를 제거하고 에러가 없는 복원 데이터(RDATA)를 생성한다. 인터페이스(10)는 샘플링 클락 신호 발생기(30), 샘플링 회로(40), 복원 데이터 생성 회로 (50), 및 복원 회로(60)를 포함한다.
샘플링 클락 신호 발생기(30)는 도 3와 도 4에 도시된 바와 같이 서로 다른 위상 (phase)을 갖는 다수의 샘플링 클락 신호들(JC, QC, 및, KC)을 발생시킬 수 있다.
실시 예에 따라 샘플링 클락 신호 발생기(30)는 다수의 샘플링 클락 신호들(JC, QC, 및, KC) 각각의 발생에 기준이 되는 기준 클락 신호(도 3의 IC)를 더 발생시킬 수 있다. 기준 클락 신호(도 3의 IC)의 각 엣지(edge; 도 3의 Ii, i=자연수, 예컨대 i=1, 2, 3)는 데이터(IDATA)의 각 엣지와 일치하도록 설정될 수 있다.
이 경우 샘플링 회로(40)의 샘플링에 사용되는 신호들은 다수의 샘플링 클락 신호들(JC, QC, 및, KC)이므로, 도 1에서는 설명의 편의를 위해 기준 클락 신호(IC)의 도시는 생략한다.
실시 예에 따라, 샘플링 클락 신호 발생기(30)는 위상 변조기(30-1)를 포함할 수 있다. 따라서, 샘플링 클락 신호 발생기(30)는 위상 변조기(30-1)를 이용하여 서로 다른 위상을 갖는 다수의 샘플링 클락 신호들(JC, QC, 및 KC)을 발생할 수 있다.
다수의 샘플링 클락 신호들(JC, QC, 및 KC) 각각의 상승 타이밍(rising timing) 및/또는 하강 타이밍(falling timing)은 외부로부터 입력된 제어 신호에 따라 조절될 수 있다.
샘플링 회로(40)는 서로 다른 위상을 갖는 다수의 샘플링 클락 신호들, 예컨대, 제1샘플링 클락 신호(JC), 제2샘플링 클락 신호(QC), 및 제3샘플링 클락 신호 (KC) 각각을 이용해서 호스트(20)로부터 출력된 데이터(IDATA)를 샘플링하고, 다수의 샘플링된 데이터, 예컨대, 제1샘플링 데이터(DJi), 제2샘플링 데이터(DQi), 및 제3샘플링 데이터(DKi)를 생성한다.
복원 데이터 생성 회로(50)는 샘플링 회로(40)로부터 전송된 다수의 샘플링 데이터(DJi, DQi, 및 DKi) 각각에 기초하여 다수의 중간 복원 데이터, 예컨대 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2)를 생성할 수 있다.
복원 회로(60)는 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2) 각각의 에러를 체크하고, 에러를 포함하지 않는 중간 복원 데이터(RDC1 또는 RDC2)를 복원 데이터(RDATA)로서 출력할 수 있다.
복원 데이터 생성 회로(50)와 복원 회로(60)는 도 2 내지 도 6을 참조하여 상세히 설명된다.
도 2는 도 1에 도시된 복원 데이터 생성 회로에 포함된 논리 게이트 회로의 회로도와 데이터 생성 회로의 회로도이다.
도 3은 데이터에 에러가 포함되어 있지 않은 경우 중간 복원 데이터의 생성 과정을 설명하기 위한 도면이고, 도 4는 데이터에 에러가 포함되어 있는 경우 중간 복원 데이터의 생성 과정을 설명하기 위한 도면이다.
도 1 내지 도 4를 참조하면, 샘플링 회로(40)는 각 샘플링 클락 신호(JC, QC, 및 KC)의 각 엣지(Ji, Qi, 및 Ki; i=자연수, 예컨대 i=1, 2, 3)에 응답하여 데이터(IDATA)를 샘플링하고 각 샘플링 데이터(DJi, DQi, 및 DKi)를 출력할 수 있다.
복원 데이터 생성 회로(50)는 각 샘플링 데이터(DJi, DQi, 및 DKi)를 논리 연산, 예컨대 배타 논리합(exclusive OR(XOR)) 연산하고 논리 연산 결과에 따라 다수의 중간 복원 데이터, 예컨대 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2)를 생성할 수 있다.
복원 데이터 생성 회로(50)는 논리 게이트 회로(52)와 데이터 생성 회로(53)를 포함한다.
논리 게이트 회로(52)는 제1배타 논리합(XOR) 게이트(exclusive OR(XOR) gate; 52-1), 제2XOR 게이트(52-2), 및 논리합(OR) 게이트(52-3)를 포함한다.
제1XOR 게이트(52-1)는 제1샘플링 데이터(DJi)와 제2샘플링 데이터(DQi)를 배타 논리합 연산하고, 제2XOR 게이트(52-2)는 제2샘플링 데이터(DQi)와 제3샘플링 데이터(DKi)를 배타 논리합 연산하고, OR 게이트(52-3)는 제1XOR 게이트(52-1)의 출력 신호와 제2XOR 게이트(52-2)의 출력 신호를 논리합 연산한다.
논리 게이트 회로(52)는, 각 샘플링 데이터(DJi, DQi, 및 DKi)의 로직 레벨이 서로 동일할 때, 제1레벨, 예컨대 데이터 0을 판단 신호(DS)로서 출력한다. 이때 데이터 생성 회로(53)는 데이터 0을 나타내는 판단 신호(DS)에 응답하여(S51), 서로 동일한 로직 레벨을 갖는 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2)를 출력한다(S53). 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2) 각각은 제2샘플링 데이터(DQi)와 동일한 로직 레벨을 가질 수 있다.
논리 게이트 회로(52)는, 다수의 샘플링 데이터(DJi, DQi, 및 DKi) 중에서 로직 레벨이 다른 샘플링 데이터(DJi, DQi, 또는 DKi)가 있을 때, 제2레벨, 예컨대 데이터 1을 판단 신호(DS)로서 출력한다. 이때 데이터 생성 회로(53)는 데이터 1을 나타내는 판단 신호(DS)에 응답하여(S51), 서로 다른 로직 레벨을 갖는 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2)를 출력한다(S55). 제1중간 복원 데이터(RDC1)는 제2샘플링 데이터(DQi)와 동일한 로직 레벨을 가지고, 제2중간 복원데이터(RDC2)는 제2샘플링 데이터(DQi)와 다른 로직 레벨을 가질 수 있다.
이 경우, 서로 다른 로직 레벨을 가지는 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2)는 복원 데이터(RDATA)의 후보가 되는 데이터를 의미할 수 있다. 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2) 중에서 에러가 없는 데이터를 판단하는 동작은 복원 회로(60)에서 수행될 수 있다.
도 3과 도 4에서는 다수의 중간 복원 데이터(RDC1 및 RDC2)가 생성되는 과정을 설명하기 위해, 데이터(IDATA), 예컨대 직렬 데이터 스트림(serial data stream)에 포함된 데이터는 '101'이라고 가정한다.
도 3을 참조하면, 도 3에 도시된 데이터(IDATA)는 에러, 예컨대 지터(jitter)를 포함하지 않는 경우의 직렬 데이터 스트림을 의미할 수 있다.
다수의 샘플링 클락 신호들(JC, QC, 및 KC) 각각의 첫번째 엣지(J1, Q1, 또는 K1)에서 샘플링되는 샘플링 데이터(DJ1, DQ1, 또는 DK1)의 로직 레벨은 '1'이다.
이 경우, 논리 게이트 회로(52)는, 각 샘플링 데이터(DJ1, DQ1, 및 DK1)의 로직 레벨이 서로 동일하므로 데이터 0을 판단 신호(DS)로서 출력할 수 있다.
데이터 생성 회로(53)는 데이터 0을 나타내는 판단 신호(DS)에 응답하여, 서로 동일한 로직 레벨을 갖는 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2)를 출력한다(S53). 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2) 각각은 제2샘플링 데이터(DQ1)와 동일한 로직 레벨 '1'을 가질 수 있다.
다수의 샘플링 클락 신호들(JC, QC, 및 KC) 각각의 두번째 엣지(J2, Q2, 또는 K2)에서 샘플링되는 샘플링 데이터(DJ2, DQ2, 또는 DK2)의 로직 레벨은 '0'이다.
이 경우, 논리 게이트 회로(52)는, 각 샘플링 데이터(DJ2, DQ2, 및 DK2)의 로직 레벨이 서로 동일하므로 데이터 0을 판단 신호(DS)로서 출력할 수 있다.
데이터 생성 회로(53)는 데이터 0을 나타내는 판단 신호(DS)에 응답하여, 서로 동일한 로직 레벨을 갖는 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2)를 출력한다(S53). 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2) 각각은 제2샘플링 데이터(DQ2)와 동일한 로직 레벨 '0'을 가질 수 있다.
다수의 샘플링 클락 신호들(JC, QC, 및 KC) 각각의 세번째 엣지(J3, Q3, 또는 K3)에서 샘플링되는 샘플링 데이터(DJ3, DQ3, 또는 DK3)의 로직 레벨은 '1'이다.
이 경우, 논리 게이트 회로(52)는, 각 샘플링 데이터(DJ3, DQ3, 및 DK3)의 로직 레벨이 서로 동일하므로 데이터 0을 판단 신호(DS)로서 출력할 수 있다.
데이터 생성 회로(53)는 데이터 0을 나타내는 판단 신호(DS)에 응답하여, 서로 동일한 로직 레벨을 갖는 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2)를 출력한다(S53). 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2) 각각은 제2샘플링 데이터(DQ3)와 동일한 로직 레벨 '1'을 가질 수 있다.
즉, 도 3의 경우 제1중간 복원 데이터(RDC1)의 스트림과 제2중간 복원 데이터(RDC2)의 스트림은 '101'로 서로 동일하며, 이는 도 3의 데이터(IDATA)가 에러를 포함하지 않음을 의미할 수 있다.
도 4를 참조하면, 도 4에 도시된 데이터(IDATA)는 에러, 예컨대 지터를 포함하는 경우의 직렬 데이터 스트림을 의미할 수 있다.
다수의 샘플링 클락 신호들(JC, QC, 및 KC) 각각의 첫번째 엣지(J1, Q1, 또는 K1)에서 샘플링되는 샘플링 데이터(DJ1, DQ1, 또는 DK1)의 로직 레벨은 '1'이다.
이 경우, 논리 게이트 회로(52)는, 각 샘플링 데이터(DJ1, DQ1, 및 DK1)의 로직 레벨이 서로 동일하므로 데이터 0을 판단 신호(DS)로서 출력할 수 있다.
데이터 생성 회로(53)는 데이터 0을 나타내는 판단 신호(DS)에 응답하여, 서로 동일한 로직 레벨을 갖는 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2)를 출력한다(S53). 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2) 각각은 제2샘플링 데이터(DQ1)와 동일한 로직 레벨 '1'을 가질 수 있다.
제1샘플링 클락 신호(JC)의 두번째 엣지(J2)에서 샘플링되는 제1샘플링 데이터(DJ2)의 로직 레벨은 '1'이고, 제2샘플링 클락 신호(QC)의 두번째 엣지(Q2)에서 샘플링되는 제2샘플링 데이터(DQ2)의 로직 레벨은 '0'이고, 제3샘플링 클락 신호(KC)의 두번째 엣지(K2)에서 샘플링되는 제3샘플링 데이터(DK2)의 로직 레벨은 '0'이다.
이 경우, 논리 게이트 회로(52)는, 다수의 샘플링 데이터(DJ2, DQ2, 및 DK2) 중에서 로직 레벨이 다른 샘플링 데이터(DJ2)를 포함하므로 데이터 1을 판단 신호(DS)로서 출력할 수 있다.
데이터 생성 회로(53)는 데이터 1을 나타내는 판단 신호(DS)에 응답하여, 서로 다른 로직 레벨을 갖는 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2)를 출력한다(S55). 제1중간 복원 데이터(RDC1)는 제2샘플링 데이터(DQ2)와 동일한 로직 레벨 '0'을 가지고, 제2중간 복원데이터(RDC2)는 제2샘플링 데이터(DQ2)와 다른 로직 레벨 '1'을 가질 수 있다.
다수의 샘플링 클락 신호들(JC, QC, 및 KC) 각각의 세번째 엣지(J3, Q3, 또는 K3)에서 샘플링되는 샘플링 데이터(DJ3, DQ3, 또는 DK3)의 로직 레벨은 '1'이다.
이 경우, 논리 게이트 회로(52)는, 각 샘플링 데이터(DJ3, DQ3, 및 DK3)의 로직 레벨이 서로 동일하므로 데이터 0을 판단 신호(DS)로서 출력할 수 있다.
데이터 생성 회로(53)는 데이터 0을 나타내는 판단 신호(DS)에 응답하여, 서로 동일한 로직 레벨을 갖는 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2)를 출력한다(S53). 제1중간 복원 데이터(RDC1)와 제2중간 복원데이터(RDC2) 각각은 제2샘플링 데이터(DQ3)와 동일한 로직 레벨 '1'을 가질 수 있다.
도 4의 경우 제1중간 복원 데이터(RDC1)의 스트림은 '101'이고, 제2중간 복원 데이터(RDC2)의 스트림은 '111'이다. 따라서 제1중간 복원 데이터(RDC1)의 스트림과 제2중간 복원 데이터(RDC2)의 스트림이 서로 다른 경우, 예컨대 도 4의 데이터(IDATA)의 경우는 에러를 포함함을 의미할 수 있다.
도 5는 도 1에 도시되고 본 발명의 일 실시 예에 따른 복원 회로의 블록도를 나타내는 도면이다.
도 5를 참조하면, 도 1의 복원 회로(60)의 일 실시 예에 따른 복원 회로 (60A)는 제1CRC(cyclic redundancy check) 검사기(61), 제2CRC 검사기(62), 제1프레임 버퍼(63), 제2프레임 버퍼(64), 선택 신호 발생기(65), 및 먹스(MUX; 66)를 포함한다.
본 명세서에서 설명되는 CRC는 에러를 체크하는 방법의 일 실시 예에 불과하며, 이에 한정되지 않는다. 실시 예에 따라 에러를 체크하는 방법으로써 8B/10B 인코딩(encoding)에서의 인코딩 오류를 체크하는 방법 또는 8B/10B 인코딩된 신호의 러닝 디스패리티(running disparity)의 오류를 체크하는 방법 등이 사용될 수 있다.
복원 데이터 생성 회로(50)로부터 출력된 제1중간 복원 데이터(RDC1)는 제1프레임 버퍼(63)에 저장되고, 복원 데이터 생성 회로(50)로부터 출력된 제2중간 복원 데이터(RDC2)는 제2프레임 버퍼(64)에 저장된다.
제1CRC 검사기(61)는 제1중간 복원 데이터(RDC1)에 대해 CRC(cyclic redundancy check)를 수행하여 에러 발생 여부를 판단하고 판단 결과로서 제1판단 신호(S1)을 출력한다. 제2CRC 검사기(62)는 제2중간 복원 데이터(RDC2)에 대해 CRC를 수행하여 에러 발생 여부를 판단하고 판단 결과에 따라 제2판단 신호(S2)를 출력한다.
선택 신호 발생기(65)는 제1판단 신호(S1)와 제2판단 신호(S2)에 응답하여 선택 신호(SEL)를 출력한다.
실시 예에 따라, 제1판단 신호(S1)가 제1중간 복원 데이터(RDC1)에 에러가 포함됨을 지시하고 제2판단 신호(S2)가 제2중간 복원 데이터(RDC2)에 에러가 포함되지 않음을 지시할 때, 선택 신호 발생기(65)는 제1로직 레벨을 갖는 선택 신호(SEL)를 발생한다.
따라서, 먹스(66)는 선택 신호(SEL)에 응답하여 제2프레임 버퍼(64)의 출력 신호, 예컨대 제2중간 복원 데이터(RDC2)를 복원 데이터(RDATA)로서 출력한다.
다른 실시 예에 따라, 제1판단 신호(S1)가 제1중간 복원 데이터(RDC1)에 에러가 포함되지 않음을 지시하고 제2판단 신호(S2)가 제2중간 복원 데이터(RDC2)에 에러가 포함됨을 지시할 때, 선택 신호 발생기(65)는 제2로직 레벨을 갖는 선택 신호(SEL)를 발생한다.
따라서, 먹스(66)는 선택 신호(SEL)에 응답하여 제1프레임 버퍼(63)의 출력 신호, 예컨대 제1중간 복원 데이터(RDC1)를 복원 데이터(RDATA)로서 출력한다.
또한, 제1판단 신호(S1)가 제1중간 복원 데이터(RDC1)에 에러가 포함되지 않음을 지시하고 제2판단 신호(S2)가 제2중간 복원 데이터(RDC2)에 에러가 포함되지 않음을 지시할 때, 선택 신호 발생기(65)는 제1로직 레벨과 제2로직 레벨 중에서 어느 하나를 갖는 선택 신호(SEL)를 먹스(66)로 출력할 수 있다.
도 6는 도 1에 도시되고 본 발명의 다른 실시 예에 따른 복원 회로의 블록도를 나타내는 도면이다.
도 4와 도 6를 참조하면, 도 1의 복원 회로(60)의 다른 실시 예에 따른 복원 회로 (60B)는 제1CRC 검사 유닛(71), 제2CRC 검사 유닛(73), 및 추출 유닛(75)을 포함할 수 있다. 실시 예에 따라 복원 회로(60B)는 에러 정정 유닛(77)을 더 포함할 수 있다. 이하에서는 데이터(IDATA)가 에러, 예컨대 지터를 포함하는 도 4의 경우를 가정한다.
제1CRC 검사 유닛(71)은 제1중간 복원 데이터(RDC1)에 대해 CRC를 수행한 후, 수행 결과에 따라 생성된 제1CRC 플래그(CRC FLAG1)를 제1중간 복원 데이터(RDC1)와 함께 추출 유닛(75)으로 전송한다.
제2CRC 검사 유닛(73)은 제2중간 복원 데이터(RDC2)에 대해 CRC를 수행한 후, 수행 결과에 따라 생성된 제2CRC 플래그(CRC FLAG2)를 제2중간 복원 데이터(RDC2)와 함께 추출 유닛(75)으로 전송한다.
추출 유닛(75)은 제1중간 복원 데이터(RDC1=101)와 제2중간 복원 데이터(RDC2=111)를 서로 비교하고, 비교 결과에 따라 제1중간 복원 데이터 (RDC1)에 포함된 에러의 위치(EP)를 추출할 수 있다.
실시 예에 따라 에러의 위치(EP)는 제1중간 복원 데이터(RDC1=101)와 제2중간 복원 데이터(RDC2=111)의 데이터가 서로 다른 비트의 위치일 수 있다.
추출 유닛(75)은 제1중간 복원 데이터(RDC1=101), 에러의 위치(EP), 및/또는 제1CRC 플래그(CRC FLAG1)를 에러 정정 유닛(77)으로 전송할 수 있다.
실시 예에 따라 복원 회로(60B)가 에러 정정 유닛(77)을 포함하지 않는 경우, 추출 유닛(75)은 제1중간 복원 데이터(RDC1=101), 에러의 위치(EP), 및/또는 제1CRC 플래그(CRC FLAG1)를 도 8에 도시된 상위 레이어(705)로 전송할 수 있다.
에러 정정 유닛(77)은 에러의 위치(EP), 및/또는 제1CRC 플래그(CRC FLAG1)에 기초하여, 제1중간 복원 데이터(RDC1)의 에러를 포함하는 비트(bit)를 정정, 예컨대 인버팅(inverting) 할 수 있다. 에러 정정 유닛(77)은 에러가 정정된 복원 데이터(RDATA)를 도 8에 도시된 상위 레이어(705)로 전송할 수 있다.
도 7은 본 발명의 실시 예에 따른 인터페이스의 데이터 복원 방법을 나타내는 순서도이고, 도 8은 본 발명의 실시 예에 따른 데이터 복원 방법을 계층별로 설명하기 위한 도면이다.
설명의 편의를 위하여, 피지컬 레이어(701)에는 샘플링 회로(40)와 복원 데이터 생성 회로(50)가 구현되고 링크 레이어(703)에서 복원 회로(60)가 구현되는 것으로 가정한다.
도 1 내지 도 5, 도 7, 및 도 8을 참조하면, 피지컬 레이어(701)의 샘플링 회로(40)는 서로 다른 위상을 갖는 다수의 샘플링 클락 신호들(JC, QC, 및, KC) 각각을 이용해서 데이터(IDATA)를 샘플링하고 다수의 샘플링 데이터(DJi, DQi, 및, DKi)를 출력한다(S61).
피지컬 레이어(701)의 복원 데이터 생성 회로(50)는 다수의 샘플링 데이터 (DJi, DQi, 및, DKi)를 논리 연산하고 논리 연산 결과에 따라 다수의 중간 복원 데이터, 예컨대 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2)를 생성한다 (S63).
제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2)는 링크 레이어 (703)의 복원 회로(60A)로 전송된다(S63).
링크 레이어(703)의 복원 회로(60 또는 60A)는 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2) 각각에 대해서 오류를 체크, 예컨대 CRC를 수행할 수 있다(S65). 수행 결과에 따라, 링크 레이어(703)의 복원 회로(60 또는 60A)는 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2) 중에서 어느 하나를 에러가 없는 복원 데이터(RDATA)로서 출력한다(S67). 이때 상위 레이어(705)는 복원 데이터(RDATA)를 바이패스(bypass)할 수 있다.
도 9은 본 발명의 다른 실시 예에 따른 인터페이스의 데이터 복원 방법을 나타내는 순서도이다.
도 1 내지 도 4, 도 6, 도 8, 및 도 9을 참조하면, 피지컬 레이어(701)의 샘플링 회로(40)는 서로 다른 위상을 갖는 다수의 샘플링 클락신호들(JC, QC, 및, KC) 각각을 이용해서 데이터(IDATA)를 샘플링하고 다수의 샘플링 데이터(DQ, DJ, 및, DK)를 출력한다(S71).
피지컬 레이어(701)의 복원 데이터 생성 회로(50)는 다수의 샘플링 데이터 (DJi, DQi, 및, DKi)를 논리 연산하여 연산 결과에 따른 다수의 중간 복원 데이터, 예컨대 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2)를 생성한다(S73).
제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2)는 도 8에 도시된 링크 레이어(703)의 복원 회로(60B)로 전송될 수 있다(S73).
복원 회로(60B)에 포함된 CRC 검사 유닛(71 또는 73)은 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2) 각각에 대해 에러를 체크, 예컨대 CRC를 수행한다(S75).
실시 예에 따라 CRC 검사 유닛(71 또는 73)은 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2) 각각의 에러를 체크하고, 체크한 결과에 따라 CRC 플래그(CRC FLAG1 또는 CRC FLAG2)를 발생시킬 수 있다.
복원 회로(60)에 포함된 추출 유닛(75)은 제1중간 복원 데이터(RDC1)와 제2중간 복원 데이터(RDC2)를 서로 비교하여 비교 결과에 따라 제1중간 복원 데이터(RDC1)에 포함된 에러의 위치(EP)를 추출한다(S77).
복원 회로(60)에 포함된 추출 유닛(75)은 제1중간 복원 데이터(RDC1), 에러의 위치(EP), 및/또는 제1CRC 플래그(CRC FLAG1)를 에러 정정 유닛(77) 또는 상위 레이어(705)로 전송할 수 있다.
복원 회로(60)에 포함된 에러 정정 유닛(77)이 추출 유닛(75)으로부터 제1중간 복원 데이터(RDC1), 에러의 위치(EP), 및/또는 제1CRC 플래그(CRC FLAG1)를 수신한 경우, 에러 정정 유닛(77)은 제1중간 복원 데이터(RDC1), 에러의 위치(EP), 및/또는 제1CRC 플래그(CRC FLAG1)를 이용하여 제1중간 복원 데이터(RDC1)의 에러를 정정하고 에러 정정된 복원 데이터(RDATA)를 상위 레이어(705)로 전송할 수 있다(S79).
상위 레이어(705)가 추출 유닛(75)으로부터 제1중간 복원 데이터(RDC1), 에러의 위치(EP), 및/또는 제1CRC 플래그(CRC FLAG1)를 수신한 경우, 상위 레이어(705)는 제1중간 복원 데이터(RDC1), 에러의 위치(EP), 및/또는 제1CRC 플래그(CRC FLAG1)를 이용하여 제1중간 복원 데이터(RDC1)의 에러를 정정하고 에러 정정된 복원 데이터(RDATA)를 출력할 수 있다(S79).
도 10는 도 1에 도시된 인터페이스를 포함하는 반도체 시스템의 개략적인 블록도이다.
도 1과 도 10를 참조하면, 반도체 시스템(800)은 호스트(810)와 SSD(solid state drive; 820)를 포함한다. 호스트(810)는 SSD(820)의 데이터 처리 동작, 예컨대 라이트 동작과 리드 동작을 제어한다.
SSD(820)는 데이터 저장 유닛(830)과 컨트롤러(840)를 포함한다.
데이터 저장 유닛(830)은 SSD(820)의 데이터 저장 매체로서 다수의 불휘발성 메모리 장치들(830-1~830-N; N은 자연수)을 포함한다. 데이터 저장 유닛(830)은 NAND 플래시 메모리와 같은 불휘발성 메모리로 구현될 수 있다.
데이터 저장 유닛(830)과 컨트롤러(840) 사이에는, 하나 이상의 채널들(예컨대, N개의 채널들)이 구현될 수 있다. 각각의 채널(CH0∼CH(N-1))에는 다수의 NAND 플래시 메모리들(830-1∼830-N)이 연결될 수 있다.
컨트롤러(840)는 도 1부터 도 5를 참조하여 설명한 인터페이스(10)를 포함하며, 인터페이스(10)로부터 출력되고 에러를 포함하지 않는 복원 데이터(RDATA)는 다수의 채널들(CH0∼CH(N-1)) 중에서 대응되는 채널을 통하여 다수의 불휘발성 메모리 장치들(830-1~830-N) 중에서 어느 하나에 저장될 수 있다.
호스트(810)는 컨트롤러(840)를 통하여 데이터 저장 유닛(830)과 데이터를 주고받을 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 인터페이스
20: 호스트
30: 샘플링 클락 신호 발생기
40: 샘플링 회로
50: 복원 데이터 생성 회로
52: 논리 게이트 회로
53: 데이터 생성 회로
60, 60A, 및 60B: 복원 회로
61: 제1CRC 검사기
62: 제2CRC 검사기
63: 제1프레임 버퍼
64: 제2프레임 버퍼
65: 선택 신호 발생기
66: 먹스(MUX)
71: 제1CRC 검사 유닛
73: 제2CRC 검사 유닛

Claims (10)

  1. 서로 다른 위상을 갖는 다수의 샘플링 클락 신호들 각각을 이용해서 데이터를 샘플링하여 다수의 샘플링 데이터를 출력하는 샘플링 회로;
    상기 다수의 샘플링 데이터를 논리 연산하여 논리 연산 결과에 따라 다수의 중간 복원 데이터를 생성하는 복원 데이터 생성 회로; 및
    상기 다수의 중간 복원 데이터 각각에 대해서 에러를 체크하고, 상기 다수의 중간 복원 데이터 중에서 에러를 포함하지 않는 중간 복원 데이터를 복원 데이터로서 출력하는 복원 회로를 포함하고,
    상기 복원 데이터 생성 회로는,
    상기 다수의 샘플링 데이터 각각의 로직 레벨이 서로 동일한지의 여부를 판단하고 판단 결과에 따라 판단 신호를 출력하는 논리 게이트 회로; 및
    상기 판단 신호에 응답하여, 상기 다수의 샘플링 데이터 중에서 어느 하나의 로직 레벨에 따라 서로 동일한 로직 레벨 또는 서로 다른 로직 레벨을 갖는 상기 다수의 중간 복원 데이터를 생성하는 데이터 생성 회로를 포함하는 데이터 복원 회로.
  2. 삭제
  3. 제1항에 있어서,
    상기 논리 게이트 회로는 상기 다수의 샘플링 데이터 각각의 상기 로직 레벨이 서로 동일할 때 제1레벨을 갖는 상기 판단 신호를 출력하고, 상기 다수의 샘플링 데이터 각각의 상기 로직 레벨이 서로 동일하지 않을 때 제2레벨을 갖는 상기 판단 신호를 출력하고,
    상기 데이터 생성 회로는 상기 제1레벨을 갖는 상기 판단 신호에 응답하여 서로 동일한 로직 레벨을 갖는 상기 다수의 중간 복원 데이터를 생성하고, 상기 제2레벨을 갖는 상기 판단 신호에 응답하여 서로 다른 로직 레벨을 갖는 상기 다수의 중간 복원 데이터를 생성하는 데이터 복원 회로.
  4. 제1항에 있어서, 상기 논리 게이트 회로는,
    각각이 상기 다수의 샘플링 데이터 중에서 대응되는 적어도 두 개의 샘플링 데이터를 수신하는 다수의 배타 논리합 게이트들; 및
    상기 다수의 배타 논리합 게이트들 각각의 출력 신호를 논리합 연산하여 상기 판단 신호를 출력하는 논리합 게이트를 포함하는 데이터 복원 회로.
  5. 제1항에 있어서, 상기 복원 회로는,
    각각이 상기 다수의 중간 복원 데이터 각각에 대해 에러를 체크하기 위해 CRC(cyclic redundancy check)를 수행하고 에러 발생 여부를 지시하는 판단 신호를 출력하는 다수의 CRC 검사기들;
    각각이 상기 다수의 중간 복원 데이터 각각을 저장하기 위한 다수의 프레임 버퍼들;
    상기 다수의 CRC 검사기들 각각으로부터 출력된 상기 판단 신호에 응답하여 선택 신호를 출력하는 선택 신호 발생기; 및
    상기 선택 신호에 응답하여, 상기 다수의 프레임 버퍼들 중에서 어느 하나로부터 출력된 데이터를 상기 복원 데이터로서 출력하는 먹스를 포함하는 데이터 복원 회로.
  6. 제1항에 있어서, 상기 복원 회로는,
    각각이 상기 다수의 중간 복원 데이터 각각에 대해 에러를 체크하기 위해 CRC를 수행하는 다수의 CRC 검사 유닛들;
    상기 다수의 CRC 검사 유닛들 중에서 어느 하나로부터 출력되고 에러를 포함하는 제1중간 복원 데이터와 상기 다수의 CRC 검사 유닛들 중에서 다른 하나로부터 출력되고 에러를 포함하지 않는 제2중간 복원 데이터를 서로 비교하여 에러의 위치를 추출하고, 상기 제1중간 복원 데이터와 상기 에러의 위치를 출력하는 추출 유닛; 및
    상기 에러의 위치에 기초하여 상기 제1중간 복원 데이터에 포함된 에러를 정정하여 상기 복원 데이터를 출력하는 에러 정정 유닛을 포함하는 데이터 복원 회로.
  7. 서로 다른 위상을 갖는 다수의 샘플링 클락 신호들 각각을 이용해서 데이터를 샘플링하여 다수의 샘플링 데이터를 출력하는 단계;
    상기 다수의 샘플링 데이터를 배타 논리합 연산하여 연산 결과에 따라 다수의 중간 복원 데이터를 생성하는 단계; 및
    상기 다수의 중간 복원 데이터 각각에 대해서 에러를 체크하고, 상기 다수의 중간 복원 데이터 중에서 에러를 포함하지 않는 중간 복원 데이터를 복원 데이터로서 출력하는 단계를 포함하고,
    상기 다수의 중간 복원 데이터를 생성하는 단계는,
    상기 다수의 샘플링 데이터 각각의 로직 레벨이 서로 동일할 때 서로 동일한 로직 레벨을 갖는 상기 다수의 중간 복원 데이터를 생성하고,
    상기 다수의 샘플링 데이터 각각의 로직 레벨이 서로 동일하지 않을 때 서로 다른 로직 레벨을 갖는 상기 다수의 중간 복원 데이터를 생성하는 데이터 복원 회로의 동작 방법.
  8. 삭제
  9. 제7항에 있어서, 상기 복원 데이터로서 출력하는 단계는,
    상기 다수의 중간 복원 데이터 각각에 대해 에러를 체크하기 위해 CRC(cyclic redundancy check)를 수행하고 에러 발생 여부를 지시하는 각각의 판단 신호를 출력하는 단계; 및
    상기 각각의 판단 신호에 응답하여, 각각이 상기 다수의 중간 복원 데이터 각각을 저장하는 다수의 프레임 버퍼들 중에서 어느 하나로부터 출력된 데이터를 상기 복원 데이터로서 출력하는 단계를 포함하는 데이터 복원 회로의 동작 방법.
  10. 제7항에 있어서, 상기 복원 데이터로서 출력하는 단계는,
    다수의 CRC 검사 유닛들 각각을 이용하여 상기 다수의 중간 복원 데이터 각각에 대해 에러를 체크하기 위해 CRC를 수행하는 단계;
    상기 다수의 CRC 검사 유닛들 중에서 어느 하나로부터 출력되고 에러를 포함하는 제1중간 복원 데이터와 상기 다수의 CRC 검사 유닛들 중에서 다른 하나로부터 출력되고 에러를 포함하지 않는 제2중간 복원 데이터를 서로 비교하여 에러의 위치를 추출하고, 상기 제1중간 복원 데이터와 상기 에러의 위치를 출력하는 단계; 및
    상기 에러의 위치에 기초하여 상기 제1중간 복원 데이터에 포함된 에러를 정정하여 상기 복원 데이터를 출력하는 단계를 포함하는 데이터 복원 회로의 동작 방법.
KR1020120033742A 2012-04-02 2012-04-02 데이터 복원 회로 및 데이터 복원 방법 KR101880655B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120033742A KR101880655B1 (ko) 2012-04-02 2012-04-02 데이터 복원 회로 및 데이터 복원 방법
US13/718,403 US9042503B2 (en) 2012-04-02 2012-12-18 Data recovery circuit and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120033742A KR101880655B1 (ko) 2012-04-02 2012-04-02 데이터 복원 회로 및 데이터 복원 방법

Publications (2)

Publication Number Publication Date
KR20130111690A KR20130111690A (ko) 2013-10-11
KR101880655B1 true KR101880655B1 (ko) 2018-07-20

Family

ID=49235026

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120033742A KR101880655B1 (ko) 2012-04-02 2012-04-02 데이터 복원 회로 및 데이터 복원 방법

Country Status (2)

Country Link
US (1) US9042503B2 (ko)
KR (1) KR101880655B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101704278B1 (ko) 2015-11-04 2017-02-08 인하대학교 산학협력단 직교 위상 전압 제어 발진기를 이용한 버스트 모드 클락 복원 회로 및 그 동작 방법
KR102589534B1 (ko) * 2022-08-19 2023-10-16 주식회사 피델릭스 전류 소모를 저감하는 반도체 시스템의 데이터 송수신 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040075243A (ko) * 2003-02-20 2004-08-27 삼성전자주식회사 고속 직렬 링크에서 데이터 복원시 에러 발생을감소시키는 데이터 복원장치 및 그 복원방법
KR20050011760A (ko) * 2003-07-23 2005-01-31 삼성전자주식회사 지터 성분에 둔감한 고속 직렬 링크용 데이터 복원장치 및그 복원방법
JP2013102372A (ja) * 2011-11-09 2013-05-23 Renesas Electronics Corp クロックデータリカバリ回路およびそれを内蔵する送受信半導体集積回路
JP2015003754A (ja) * 2013-06-21 2015-01-08 大日本印刷株式会社 袋および袋製造方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6211741B1 (en) 1998-10-16 2001-04-03 Cypress Semiconductor Corp. Clock and data recovery PLL based on parallel architecture
KR100346837B1 (ko) 2000-09-02 2002-08-03 삼성전자 주식회사 클럭 스큐에 의한 에러를 최소화하는 데이타 복원 장치 및그 방법
JP2004242243A (ja) 2003-02-10 2004-08-26 Ricoh Co Ltd データ受信装置
KR100715701B1 (ko) 2004-11-29 2007-05-09 인하대학교 산학협력단 4배속 오버 샘플링 방식 위상 검출기를 사용하는클럭/데이터 복원 회로 및 그 제어 방법
US7522687B2 (en) 2005-08-29 2009-04-21 International Business Machines Corporation Clock and data recovery system and method for clock and data recovery based on a forward error correction
KR100925387B1 (ko) 2008-04-10 2009-11-09 주식회사 하이닉스반도체 반도체 메모리 장치의 데이터 복원 회로
US8111985B2 (en) * 2008-05-02 2012-02-07 Broadlight, Ltd. Apparatus and method for performing line analysis of continuous data signals
KR100985874B1 (ko) 2008-07-08 2010-10-08 포항공과대학교 산학협력단 싱글 비트 블라인드 오버샘플링 데이터 복원회로 및복원방법
JP2010147558A (ja) 2008-12-16 2010-07-01 Renesas Electronics Corp クロックデータリカバリ回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040075243A (ko) * 2003-02-20 2004-08-27 삼성전자주식회사 고속 직렬 링크에서 데이터 복원시 에러 발생을감소시키는 데이터 복원장치 및 그 복원방법
KR20050011760A (ko) * 2003-07-23 2005-01-31 삼성전자주식회사 지터 성분에 둔감한 고속 직렬 링크용 데이터 복원장치 및그 복원방법
JP2013102372A (ja) * 2011-11-09 2013-05-23 Renesas Electronics Corp クロックデータリカバリ回路およびそれを内蔵する送受信半導体集積回路
JP2015003754A (ja) * 2013-06-21 2015-01-08 大日本印刷株式会社 袋および袋製造方法

Also Published As

Publication number Publication date
US9042503B2 (en) 2015-05-26
US20130259177A1 (en) 2013-10-03
KR20130111690A (ko) 2013-10-11

Similar Documents

Publication Publication Date Title
US11886312B2 (en) Characterizing error correlation based on error logging for computer buses
KR101688051B1 (ko) 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치
US9621303B2 (en) Method and apparatus for valid encoding
TW201035987A (en) Data integrity in memory controllers and methods
TWI676991B (zh) 測試儲存單元的方法以及使用該方法的裝置
CN111352765B (zh) 控制器及存储器系统
US20080022193A1 (en) Error correction for digital systems
CN101527171B (zh) 一种多通道并行纠错的闪存控制方法和装置
US9647688B1 (en) System and method of encoding in a serializer/deserializer
US9191030B2 (en) Memory controller, data storage device, and memory controlling method
US11762017B2 (en) Performing scan data transfer inside multi-die package with SERDES functionality
CN102142987A (zh) 一种串行总线设备及其传输数据的方法
KR101880655B1 (ko) 데이터 복원 회로 및 데이터 복원 방법
JP2006250824A (ja) 半導体集積回路およびその半導体集積回路におけるデータ解析方法
CN113742282A (zh) 一种基于fpga的sata ip核及数据存储方法
JP2016014972A (ja) 通信制御装置,ストレージ装置及び通信制御プログラム
KR20150043044A (ko) 반도체 장치 및 이를 포함하는 반도체 시스템
US11237729B1 (en) Fast bus inversion for non-volatile memory
CN106528392A (zh) 一种基于aurora协议的b3g测试工具
CN112332865A (zh) 基于bch并行算法和ldpc算法的纠错电路及方法
KR101062759B1 (ko) 반도체 메모리 장치 및 그 데이터 독출 방법
KR102237563B1 (ko) 테스트 시간을 감축하는 메모리 장치 및 이를 포함하는 컴퓨팅 시스템
TWI779578B (zh) 數據邊界偵測電路及利用其之控制晶片和電子裝置
Maragkoudaki et al. Energy-efficient encoding for high-speed serial interfaces
KR20220135984A (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
GRNT Written decision to grant