KR100894811B1 - 서데스의 역직렬화기 및 그것의 데이터 역직렬화 방법 - Google Patents

서데스의 역직렬화기 및 그것의 데이터 역직렬화 방법 Download PDF

Info

Publication number
KR100894811B1
KR100894811B1 KR1020070003446A KR20070003446A KR100894811B1 KR 100894811 B1 KR100894811 B1 KR 100894811B1 KR 1020070003446 A KR1020070003446 A KR 1020070003446A KR 20070003446 A KR20070003446 A KR 20070003446A KR 100894811 B1 KR100894811 B1 KR 100894811B1
Authority
KR
South Korea
Prior art keywords
data
clock
delete delete
comma
serial data
Prior art date
Application number
KR1020070003446A
Other languages
English (en)
Other versions
KR20080066245A (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 KR1020070003446A priority Critical patent/KR100894811B1/ko
Priority to US11/972,037 priority patent/US7626523B2/en
Publication of KR20080066245A publication Critical patent/KR20080066245A/ko
Application granted granted Critical
Publication of KR100894811B1 publication Critical patent/KR100894811B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/527Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K21/00Details of pulse counters or frequency dividers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/135Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of time reference signals, e.g. clock signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

본 발명에 따른 데이터 역직렬화 방법은: (a) 직렬 데이터를 소정 단위의 데이터로 변환하는 단계; (b) 상기 변환된 데이터를 병렬화시키는 단계; 및 (c) 상기 (b)단계를 진행하면서 상기 병렬화된 데이터를 정렬시키는 단계를 포함한다.
서데스, 레이턴시, 글리치

Description

서데스의 역직렬화기 및 그것의 데이터 역직렬화 방법{ DESERIALIZER OF SERDES AND DATA DESERIALIZING METHOD THEREOF}
도 1은 서데스를 이용한 일반적인 데이터 송수신 시스템을 보여주고 있다.
도 2는 종래의 역직렬화기를 보여주고 있다.
도 3은 종래의 역직렬화기에서 데이터를 정렬하는 방법을 보여주고 있다.
도 4는 본 발명에 따른 역직렬화기를 보여주고 있다.
도 5는 본 발명의 제 1 병렬 변환기에 대한 실시예이다.
도 6은 도 5에 도시된 제 1 병렬 변환기에 따른 직렬 데이터를 네개의 직렬 데이터로 나누어지는 과정에 대한 타이밍도이다.
도 7은 본 발명에 따른 제 2 병렬 변환기의 제 1 디멀티플렉서에 대한 실시예를 보여주고 있다.
도 8은 본 발명에 따른 클록 분주기를 보여주고 있다.
도 9는 본 발명에 따른 컴마 감지에 따른 클록 분주기의 리셋 방법을 보여주고 있다.
도 10은 본 발명의 클록 분주기의 상태 다이어그램을 보여주고 있다.
도 11은 본 발명에 따른 컴마 감지기를 보여주고 있다.
도 12는 본 발명에 따른 직렬 데이터에서 존재할 수 있는 네가지 형태의 컴마를 보여주고 있다.
도 13은 본 발명의 제 1 감지회로에 대한 실시예를 보여주고 있다.
도 14는 본 발명에 따른 선택기에 대한 실시예를 보여주고 있다.
*도면의 주요부분에 대한 부호의 설명*
1: 데이터 송수신 시스템 10,40: 서데스
20: 링크 레이어 30: 호스트
100,300: 역직렬화기 200: 시리얼 라이저
2200,3400: 컴마 감지기
3100: 제 1 병렬 변환기 3200: 제 2 병렬 변환기
3500: 엔코더 3600: 선택기
3300: 클록 분주기 3340~3345: 리셋 회로
3111~3129,3340~3324: 플립플롭 3402~3408: 감지회로
3602~3608: 멀티플렉서
본 발명은 서데스(SERDES)에 관한 것으로, 좀 더 구체적으로 데이터 레이턴시(latency)를 줄이는 서데스의 역직렬화기(Deserializer)에 관한 것이다.
서데스(SERDES)는 고속 시리얼 링크 사이에 전달되는 신호의 송수신에 관련한 송수신기(transceiver) 이다. 서데스는 병렬 신호를 직렬 신호를 변환시켜 주거 나 직렬신호를 병렬신호를 변환시켜 주는 역할을 한다. 일반적으로 서데스 시스템은 직렬화기(Serializer)와 역직렬화기(Deserializer)를 포함한다. 여기서 직렬화기(Serializer)는 병렬 신호를 직렬 신호로 변환시켜 주는 장치이며, 역직렬화기(Deserializer)는 직렬 신호를 병렬 신호로 변환시켜 주는 장치이다. 이러한 서데스는 반도체 집적회로에서 보다 높은 대역폭의 데이터 통신을 수행하기 위해서 현재 많이 채용되고 있다.
도 1은 서데스(10)를 이용한 일반적인 데이터 송수신 시스템(1)을 보여주고 있다. 도 1을 참조하면, 데이터 송수신 시스템(1)은 서데스(10), 링크 레이어(20) 및 호스트(30)를 포함하고 있다. 호스트(30)와 링크 레이어(20)는 서데스(10)를 이용하여 고속 직렬 데이터를 송수신하고 있다.
서데스(10)는 역직렬화기(100) 및 직렬화기(200)를 포함하고 있다. 역직렬화기(100)는 호스트(30)로부터 고속 직렬 데이터 수신하여 N비트의 병렬 데이터를 복원하여 링크 레이어(20)에 전송한다. 직렬화기(200)는 링크 레이어(20)로부터 N비트의 병렬 데이터를 전달받아 고속 직렬 데이터로 변환하여 호스트(30)로 전송한다. 일반적으로 직렬화기(200)는 링크 레이어(20)로부터 8B10B 코드로 엔코딩(encoding)된 10비트의 병렬 데이터를 직렬화시킨다.
도 2는 종래의 역직렬화기(100)를 보여주고 있다. 도 2를 참조하면, 역직렬화기(100)는 병렬 변환기(1000) 및 데이터 정렬기(2000)를 포함하고 있다. 병렬 변환기(1000)는 고속 직렬 데이터를 수신하여 N비트의 병렬 데이터 및 클록을 복원(recovery)한다. 데이터 정렬기(2000)는 복원된 데이터에 대한 컴마(comma:K28.5)를 감지하여 데이터 정렬(alignment)을 실시한다. 여기서 데이터 정렬기(2000)는 컴마를 감지하여 감지신호(CDET)을 생성하는 컴마 감지기(2200)를 포함하고 있다.
도 3은 종래의 역직렬화기(100)에서 데이터를 정렬하는 방법을 보여주고 있다. 일반적으로 병렬 변환기(1000)는 10비트의 병렬 데이터를 복원하고 있으며, 컴마는 7비트의 값이며, 바이트(10비트)단위로 데이터 정렬을 한다. 도 3을 참조하면, 역직렬화기(100)는 복원된 병렬 데이터를 정렬하기 위하여, 컴마 감지기(2200)는 제 1 바이트 및 제 2 바이트에서 한 비트씩 이동된 7비트를 한꺼번에 검사하여 컴마를 감지하게 된다. 컴마 감지기(2200)는 컴마를 감지하여 감지신호(CDET)를 생성한다. 데이터 정렬기(2000)는 감지신호(CDET)에 응답하여 복원된 데이터를 정렬시킨다.
일반적으로, FC-AL의 모니터링 혹은 아비트레이팅 상태(arbitrating state)d에서 전송 워드(tranmission word)의 최대 지연시간은 6 전송 워드(240bit)를 초과해서는 안된다. 여기서 전송 워드의 지연시간은 서데스(10)가 호스트(30)로부터 직렬 데이터를 입력받아 링크 레이어(20)를 경유하여 호스트(30)로 출력할 때까지 걸리는 시간이다. 그런데 링크 레이어(20)에서 전송 워드의 지연시간을 줄이는데에는 한계가 있다.
따라서 최근에 서데스(10)는 전송 워드의 지연시간을 줄이기 위하여 데이터 레이턴시(data latency)을 줄여야 하는 기술적 과제를 가지고 있다. 한편, 서데스의 직병렬변환기는 복원클록에 글리치가 생성되지 않도록 해야 한다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 데이터 레이턴시를 줄이는 역직렬화기 및 그것의 데이터 역직렬화 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 데이터를 병렬화하면서 복원클록에 글리치가 생성되지 않도록 하는 역직렬화기 및 그것의 데이터 역직렬화 방법을 제공하는 데 있다.
본 발명에 따른 데이터 역직렬화 방법은: (a) 직렬 데이터를 소정 단위의 데이터로 변환하는 단계; (b) 상기 변환된 데이터를 병렬화시키는 단계; 및 (c) 상기 (b)단계를 진행하면서 상기 병렬화된 데이터를 정렬시키는 단계를 포함한다.
실시예에 있어서, 상기 역직렬화기는 컴마를 감지하여 상기 직렬 데이터를 정렬시킨다.
실시예에 있어서, 상기 역직렬화기는 상기 직렬 데이터를 소정 단위의 데이터로 변환하기 위한 제 1 병렬 변환기; 상기 제 1 병렬 변환기로부터 변환된 상기 데이터를 병렬화시키는 제 2 병렬 변환기; 및 상기 변환된 상기 데이터로부터 상기 컴마를 감지하는 컴마 감지기를 포함한다.
실시예에 있어서, 상기 제 1 병렬 변환기는 외부 클록에 동기하여 상기 직렬 데이터를 n(여기서 n은 자연수)개의 m비트(여기서 m은 자연수) 데이터로 변환하고, 상기 제 1 클록에 동기하여 상기 n개의 m비트 데이터를 상기 제 2 병렬 변환기에 전달하되, 상기 제 1 클록의 주기는 상기 외부 클록의 상기 2/n배이다.
실시예에 있어서, 상기 제 1 병렬 변환기는 상기 제 1 클록을 상기 제 2 병렬 변환기에 전달한다.
실시예에 있어서, 상기 제 2 병렬 변환기는 상기 제 1 클록에 동기하여 상기 n개의 데이터 각각 상기 m개의 데이터로 병렬화시킨다.
실시예에 있어서, 상기 제 2 병렬 변환기는 상기 제 2 클록에 동기하여 상기 병렬화된 데이터를 출력하되, 상기 제 2 클록의 주기는 상기 제 1 클록의 상기 1/m 배이다.
실시예에 있어서, 상기 역직렬화기는 상기 제 1 클록을 입력받아 상기 제 2 클록을 생성하는 클록 분주기를 포함한다.
실시예에 있어서, 상기 클록 분주기는 상기 컴마 감지에 따라 상기 제 2 클록을 리셋시키며, 상기 제 2 클록에 글리치가 발생하지 않게 한다.
실시예에 있어서, 상기 클록 분주기는 존슨(Johnson) 카운터를 포함한다.
실시예에 있어서, 상기 클록 분주기는 상기 m개의 상태를 가지며, 그 중 한가지 상태를 상기 제 2 클록으로 이용하며, 상기 제 2 클록 및 컴마 감지신호에 따라 상기 제 2 클록을 리셋시키되, 상기 컴마 감지기는 상기 컴마를 감지하여 상기 컴마 감지신호를 출력한다.
실시예에 있어서, 상기 제 2 클록이 논리 "하이" 상태일 때, 상기 클록 분주기는 상기 컴마 감지신호에 응답하여 상기 제 2 클록을 논리 "하이" 상태로 리셋시킨다.
실시예에 있어서, 상기 제 2 클록이 논리 "로우" 상태일 때, 상기 클록 분주기는 상기 컴마 감지신호에 응답하여 상기 제 2 클록을 논리 "로우" 상태로 리셋시키고, 상기 컴마 감지신호의 상기 m/2 클록만큼 지연된 신호에 응답하여 상기 제 2 클록을 논리 "하이" 상태로 리셋시킨다.
실시예에 있어서, 상기 제 2 클록이 논리 "로우" 상태이고 상기 컴마가 감지된 직후 상기 제 2 클록이 라이징되는 경우, 상기 클록 분주기는 상기 제 2 클록을 논리 "하이" 상태로 리셋시킨다.
실시예에 있어서, 상기 클록 분주기는 상기 m/2개의 플립플롭들이 직렬로 연결되고, 연속한 제 1 플립플롭의 입력단과 상기 제 2 플립플롭의 출력단 사이에는 리셋회로들이 각각 연결되어 있으며, 상기 리셋회로들은 상기 컴마 감지신호 및 상기 컴마 감지신호의 m/2클록만큼 지연된 신호에 응답하여 상기 제 1 플립플롭의 출력을 리셋하여 상기 제 2 플립플롭에 입력단에 전달한다.
본 발명에 따른 역직렬화기는 직렬 데이터를 소정 단위의 데이터로 변환하는 제 1 병렬 변환기; 상기 변환된 데이터를 병렬화시키는 제 2 병렬 변환기; 상기 제 1 병렬 변환기로부터 변환된 데이터로부터 컴마를 감지하여 컴마 감지신호를 생성하는 컴마 감지기; 및 상기 컴마 감시신호에 응답하여 상기 병렬화된 데이터를 정렬하는 데이터 정렬기를 포함하되, 상기 변환된 데이터를 병렬화시키면서 상기 컴마를 감지한다.
실시예에 있어서, 상기 제 1 병렬 변환기는 상기 직렬 데이터를 n(n은 자연수)개의 m비트 데이터로 변환하기 위한 디멀티플렉서를 포함한다.
실시예에 있어서, 상기 디멀티플렉서는 외부 클록에 동기하여 상기 직렬 데이터를 상기 n개의 m비트 데이터로 변환하며 제 1 클록에 동기하여 상기 n개의 변환된 데이터를 출력하되, 상기 제 1 클록의 주기는 상기 외부 클록의 2/n배이다.
실시예에 있어서, 상기 제 2 병렬 변환기는 상기 n개의 m비트 데이터를 각각 상기 m개의 데이터로 변환하기 위한 상기 n개의 디멀티플렉서들을 포함한다.
실시예에 있어서, 상기 디멀티플렉서들은 각각 상기 제 1 클록에 동기하여 상기 m비트 데이터를 상기 m개의 데이터로 변환하며 상기 제 2 클록에 동기하여 상기 m개의 데이터를 출력하되, 상기 제 2 클록은 상기 제 1 클록에 상기 1/m 주기이다.
실시예에 있어서, 상기 데이터 정렬기는 상기 제 2 병렬 변환기로부터 상기 n×m 개의 병렬 데이터를 입력받으며, 상기 컴마 감지신호에 응답하여 정렬된 상기 n×m 개의 병렬 데이터를 출력시킨다.
실시예에 있어서, 상기 컴마 감지기 상기 n개의 m비트 데이터 중에서 각각 k비트씩 읽어와 상기 컴마를 감지하되, 상기 k는 상기 m보다 작다.
실시예에 있어서, 상기 컴마 감지기는 적어도 상기 n개의 컴마 감지 패턴을 포함하고 있다.
실시예에 있어서, 상기 역직렬화기는 상기 제 1 클록을 입력받아 상기 제 2 클록을 생성하는 클록 분주기를 더 포함한다.
실시예에 있어서, 상기 클록 분주기는 상기 컴마 감지신호에 응답하여 상기 제 2 클록에 글리치가 생성되지 않도록 상기 제 2 클록을 리셋시킨다.
실시예에 있어서, 상기 클록 분주기는 상기 컴마 감지신호 및 상기 제 2 클록의 논리 상태에 따라 상기 제 2 클록을 리셋시킨다.
실시예에 있어서, 상기 클록 분주기는 존슨 카운터를 포함한다.
실시예에 있어서, 상기 클록 분주기는 상기 m/2개의 플립플롭들이 직렬로 연결되고, 연속한 제 1 플립플롭의 입력단과 상기 제 2 플립플롭의 출력단 사이에는 리셋회로들이 각각 연결되어 있으며, 상기 리셋회로들은 상기 컴마 감지신호 및 상기 컴마 감지신호의 m/2클록만큼 지연된 신호에 응답하여 상기 제 1 플립플롭의 출력을 리셋하여 상기 제 2 플립플롭에 입력단에 전달한다.
실시예에 있어서, 상기 제 2 클록이 논리 "하이" 상태일 때, 상기 클록 분주기는 상기 컴마 감지신호에 응답하여 상기 제 2 클록을 논리 "하이"로 리셋시킨다.
실시예에 있어서, 상기 제 2 클록이 논리 "로우" 상태일 때, 상기 클록 분주기는 상기 컴마 감지신호에 응답하여 상기 제 2 클록을 논리 "로우"로 리셋시키며 상기 컴마 감지신호의 상기 m/2 클록 뒤의 신호에 응답하여 상기 제 2 클록을 논리 "하이"로 리셋시킨다.
실시예에 있어서, 상기 제 2 클록이 논리 "로우" 상태이며 상기 컴마가 감지된 직후 상기 제 2 클록이 라이징되는 경우, 상기 클록 분주기는 상기 제 2 클록을 논리 "하이" 상태로 리셋시킨다.
실시예에 있어서, 상기 데이터 정렬기는 상기 제 2 병렬 변환기로부터 상기 n×m 개의 병렬 데이터를 입력받아 적어도 상기 n개의 상기 n×m 개의 병렬 데이터로 정렬한다.
실시예에 있어서, 상기 데이터 정렬기는 상기 컴마 감지신호에 응답하여 상기 n개의 n×m개의 병렬 데이터중 하나를 선택하여 출력시킨다.
실시예에 있어서, 상기 역직렬화기는 서데스(SERDES)에 이용된다.
본 발명에 또 다른 역직렬화기는: 직렬 데이터를 소정 단위의 데이터로 변환하는 제 1 병렬 변환기; 상기 변환된 데이터를 병렬화시키는 제 2 병렬 변환기; 상기 제 2 병렬 변환기로부터 변환된 데이터로부터 컴마를 감지하여 컴마 감지신호를 생성하는 컴마 감지기; 및 상기 컴마 감시신호에 응답하여 상기 병렬화된 데이터를 정렬하는 데이터 정렬기를 포함하되, 상기 변환된 데이터를 병렬화시키면서 상기 컴마를 감지한다.
실시예에 있어서, 상기 제 1 병렬 변환기는 상기 직렬 데이터를 n(n은 자연수)개의 m비트 데이터로 변환하기 위한 디멀티플렉서를 포함한다.
실시예에 있어서, 상기 디멀티플렉서는 외부 클록에 동기하여 상기 직렬 데이터를 상기 n개의 m비트 데이터로 변환하며 제 1 클록에 동기하여 상기 n개의 변환된 데이터를 출력하되, 상기 제 1 클록의 주기는 상기 외부 클록의 2/n배이다.
실시예에 있어서, 상기 제 2 병렬 변환기는 상기 n개의 m비트 데이터를 각각 상기 m개의 데이터로 변환하기 위한 상기 n개의 디멀티플렉서들을 포함한다.
실시예에 있어서, 상기 디멀티플렉서들은 각각 상기 제 1 클록에 동기하여 상기 m비트 데이터를 상기 m개의 데이터로 변환하며 상기 제 2 클록에 동기하여 상기 m개의 데이터를 출력하되, 상기 제 2 클록은 상기 제 1 클록에 상기 1/m 주기이다.
실시예에 있어서, 상기 데이터 정렬기는 상기 제 2 병렬 변환기로부터 상기 n×m 개의 병렬 데이터를 입력받으며, 상기 컴마 감지신호에 응답하여 정렬된 상기 n×m 개의 병렬 데이터를 출력시킨다.
실시예에 있어서, 상기 컴마 감지기 상기 n개의 m비트 데이터 중에서 각각 k비트씩 읽어와 상기 컴마를 감지하되, 상기 k는 상기 m보다 작다.
실시예에 있어서, 상기 컴마 감지기는 적어도 상기 n개의 컴마 감지 패턴을 포함하고 있다.
실시예에 있어서, 상기 역직렬화기는 상기 제 1 클록을 입력받아 상기 제 2 클록을 생성하는 클록 분주기를 더 포함한다.
실시예에 있어서, 상기 클록 분주기는 상기 컴마 감지신호에 응답하여 상기 제 2 클록에 글리치가 생성되지 않도록 상기 제 2 클록을 리셋시킨다.
실시예에 있어서, 상기 클록 분주기는 상기 컴마 감지신호 및 상기 제 2 클록의 논리 상태에 따라 상기 제 2 클록을 리셋시킨다.
실시예에 있어서, 상기 클록 분주기는 존슨 카운터를 포함한다.
실시예에 있어서, 상기 클록 분주기는 상기 m/2개의 플립플롭들이 직렬로 연결되고, 연속한 제 1 플립플롭의 입력단과 상기 제 2 플립플롭의 출력단 사이에는 리셋회로들이 각각 연결되어 있으며, 상기 리셋회로들은 상기 컴마 감지신호 및 상기 컴마 감지신호의 m/2클록만큼 지연된 신호에 응답하여 상기 제 1 플립플롭의 출력을 리셋하여 상기 제 2 플립플롭에 입력단에 전달한다.
실시예에 있어서, 상기 제 2 클록이 논리 "하이" 상태일 때, 상기 클록 분주기는 상기 컴마 감지신호에 응답하여 상기 제 2 클록을 논리 "하이"로 리셋시킨다.
실시예에 있어서, 상기 제 2 클록이 논리 "로우" 상태일 때, 상기 클록 분주기는 상기 컴마 감지신호에 응답하여 상기 제 2 클록을 논리 "로우"로 리셋시키며 상기 컴마 감지신호의 상기 m/2 클록 뒤의 신호에 응답하여 상기 제 2 클록을 논리 "하이"로 리셋시킨다.
실시예에 있어서, 상기 제 2 클록이 논리 "로우" 상태이며 상기 컴마가 감지된 직후 상기 제 2 클록이 라이징되는 경우, 상기 클록 분주기는 상기 제 2 클록을 논리 "하이" 상태로 리셋시킨다.
실시예에 있어서, 상기 데이터 정렬기는 상기 제 2 병렬 변환기로부터 상기 n×m 개의 병렬 데이터를 입력받아 적어도 상기 n개의 상기 n×m 개의 병렬 데이터로 정렬한다.
실시예에 있어서, 상기 데이터 정렬기는 상기 컴마 감지신호에 응답하여 상기 n개의 n×m개의 병렬 데이터중 하나를 선택하여 출력시킨다.
본 발명에 따른 역직렬화기의 클록 분주기는: 직렬로 연결되고, 제 1 클록에 동기하여 동작하는 복수의 플립플럽들; 및 상기 각각의 플립플롭들의 출력단에 연결되며, 리셋 신호에 응답하여 이전 플립플롭의 출력을 리셋하여 다음 플립플롭의 입력단으로 출력하는 리셋회로들을포함하되, 상기 리셋회로들의 출력들 중에서 어느 하나를 복원 클록으로 이용하되, 상기 리셋회로들은 상기 복원 클록의 논리 상태에 따라 리셋되어 상기 복원 클록에 글리치가 발생하지 않게 한다.
실시예에 있어서, 상기 복원 클록이 논리 "하이" 상태일 때, 상기 리셋 회로들은 상기 리셋 신호에 응답하여 상기 복원 클록을 논리 "하이"로 리셋시킨다.
실시예에 있어서, 상기 복원 클록이 논리 "로우" 상태일 때, 상기 리셋 회로들은 상기 리셋 신호에 응답하여 상기 복원 클록을 논리 "로우"로 리셋시키며 상기 리셋 신호의 상기 복수 클록 지연된 신호에 응답하여 상기 복원 클록을 논리 "하이"로 리셋시킨다.
실시예에 있어서, 상기 복원 클록이 논리 "로우" 상태이며 상기 리셋 신호의 폴링 직후 상기 복원 클록이 라이징되는 경우, 상기 리셋 회로들은 상기 복원 클록을 논리 "하이" 상태로 리셋시킨다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예를 첨부된 도면을 참조하여 설명한다.
도 4는 본 발명의 역직렬화기(300)에 대한 실시예이다. 도 4를 참조하면, 역직렬화기(300)는 제 1 병렬 변환기(3100), 제 2 병렬 변환기(3200), 클록 분주기(3300), 컴마 감지기(3400), 엔코더(3500), 선택기(3600)를 포함하고 있다.
도 4을 참조하면, 역직렬화기(300)는 직렬 데이터(SDATA)을 입력받아 40비트 병렬 데이터(RXD) 및 복원 클록(RBC:receive byte clock)을 생성한다. 역직렬화기(300)는 다음과 같이 동작한다.
제 1 병렬 변환기(3100)는 클록(CLK) 및 클록(CLK180)에 응답하여 직렬 데이터(SDATA)을 네 개의 10비트 데이터(DSD0~DSD3)로 변환한다. 제 1 병렬 변환기(3100)는 제 1 클록(/2CLK)에 응답하여 변환된 데이터(DSD0~DSD3)을 제 2 병렬 변환기(3200)로 출력한다. 여기서, 클록(CLK180)의 위상은 클록(CLK)의 위상보다 180도 느리다. 또한, 제 1 클록(/2CLK)의 주기는 클록(CLK)의 반이다. 도 5에서 보았듯이, 제 1 병렬 변환기(3100)는 1:4 디멀티플렉서(Demultiplex)를 포함하고 있다.
제 2 병렬 변환기(3200)는 제 1 클록(/2CLK)에 응답하여 제 1 병렬 변환기(3100)으로부터 전달된 데이터(DSDO~DSD3)을 각각 10비트 병렬 데이터로 변환한다. 곧 제 2 병렬 변환기(3200)는 정렬되지 않은 40비트의 병렬 데이터를 생성하게 된다. 한편, 제 2 병렬 변환기(3200)는 2 클록(RBC)에 응답하여 40비트의 병렬 데이터(RXD')을 선택기(3600)에 전달한다. 여기서, 제 2 클록(RBC)의 주기는 제 1 클록(/2CLK)의 1/10이다. 도 5에서 보았듯이, 제 2 병렬 변환기(3200)는 네개의 1:10 디멀티플레서들(3202~3208)을 포함하고 있다. 각각의 디멀티플렉서들(3202~3208)은 제 1 병렬 변환기(3100)으로부터 데이터(DSD0~DSD3)을 각각 입력받아 10비트의 병렬 데이터로 변환한다.
클록 분주기(3300)는 제 1 병렬 변환기(3100)로부터 제 1 클록(/2CLK)을 입력받아 1/10로 분주된 제 2 클록(RBC)을 생성한다. 여기서 제 2 클록(RBC)은 송신바이트 클록(Receive Byte Clock)의 약어로서 역직렬화기(300)의 출력중의 하나이다.
컴마 감지기(3400)는 컴마를 감지하는 장치이다. 컴마 감지기(3400)는 제 1 병렬 변환기(3100)의 디멀티플렉서들(3202~3208)의 출력들로부터 각각 상위 3비트씩을 전달받아 컴마를 감지하게 된다. 컴마 감지기(3400)는 컴마를 감지하여 감지신호들(CDET0~CDET3)을 생성한다.
엔코더(3500)는 컴마 감지기(2340)의 감지신호들(CDET0~CDET3)을 입력받아 선택신호들(SO,S1)을 생성한다.
선택기(3600)는 엔코더(3500)에 전달된 선택신호들(S0,S1)에 응답하여 제 2 병렬 변환기(3200)로부터 출력된 40비트의 병렬 데이터의 정렬을 결정하게 된다. 따라서, 선택기(3600)는 정렬된 40비트의 병렬 데이터(RXD)를 출력하게 된다.
본 발명에 따른 역직렬화기(300)는 직렬 데이터(SDATA)를 입력받아 N비트 병렬 데이터로 변환한다. 동시에 역직렬화기(300)는 감지신호에 응답하여 병렬 데이터를 정렬시킨다. 역직렬화기(300)는 정렬된 N비트 병렬 데이터(RXD)를 출력한다. 여기서, N비트는 설명의 편의를 위하여 40비트(워드)로 한정하겠다.
종래의 역직렬화기(100)는 병렬 변환기(1000)로부터 직렬 데이터를 병렬 데이터로 변환한 뒤 병렬 데이터 도메인에서 데이터를 정렬하였다. 즉, 종래의 역직렬화기(100)는 복원된 병렬 데이터로부터 컴마를 감지하여 데이터 정렬을 실시하였다. 종래의 역직렬화기(100)는 데이터 정렬기(2000)에서 감지된 컴마에 따라 바이트 단위로 데이터를 정렬하였다.
반면에, 본 발명의 역직렬화기(300)는 직렬 데이터(SDATA)를 병렬 데이터로 변환하면서 동시에 데이터 정렬을 실시하고 있다. 역직렬화기(300)는 워드 단위(40 비트)로 데이터를 복원하고 있다. 본 발명의 역직렬화기(300)는 직렬 데이터 도메인에서 컴마를 감지하고 워드 단위(40비트)로 데이터 정렬을 실시하기 때문에 데이터 레이턴시를 줄일 수 있게 된다.
본 발명의 역직렬화기(300)는 직렬 데이터 도메인에서 데이터를 정렬하여 40비트의 병렬 데이터를 생성한다. 본 발명의 역직렬화기(300)는 워드(word) 단위로 데이터를 정렬하게 된다.
도 5는 본 발명의 제 1 병렬 변환기(3100)에 대한 실시예이다. 도 5를 참조하면, 제 1 병렬 변환기(3100)는 플립플롭들(3121~3129)을 포함하고 있다. 도 6은 도 5에 도시된 제 1 병렬 변환기(3100)에 따른 직렬 데이터(SDATA)를 네개의 직렬 데이터(DSD0~DSD3)로 변환되는 과정을 보여주는 타이밍도이다.
도 5 및 도 6을 참조하면, 제 1 병렬 변환기(3100)의 동작은 다음과 같다. 플립플롭들(3121~3129)은 입력되는 클록의 라이징 엣지(rising edge)에 동기하여 데이터를 래치한다고 가정하겠다. 플립플롭(3121)은 클록(CLK)에 동기하여 직렬 데이터(SDATA)를 래치한다. 플립플롭(3122)는 클록(CLK)에 동기하여 플립플롭(3121)의 출력을 래치한다. 플립플롭(3123)는 클록(CLK180)에 동기하여 직렬 데이터(SDATA)을 래치한다. 여기서, 제 2 클록(CLK90)의 위상은 제 1 클록(CLK)와 비교하여 180도 빠르다. 따라서, 플립플롭(3122) 및 플립플롭(3123)은 직렬 데이터(SDATA)를 클록의 두배 주기로 각각 래치된 데이터(SD0,SD1)을 출력한다. 상술한 방법으로, 플립플롭들(3124~3129)은 클록(/2CLK)과 클록(/2CLK90)에 동기하여 데이터(SD0,SD1)을 네개의 직렬 데이터(DSD0~DSD3)로 출력시킨다. 여기서 클록(/2CLK)의 주기는 클록(CLK)의 반이다. 또한, 클록(/2CLK90)의 위상은 클록(/2CLK)보다 90도 빠르다.
아래에서는 설명의 편의를 위하여 제 1 병렬 변환기(3100)으로부터 40비트의 직렬 데이터(SDATA:D0~D39)를 다음 표1와 같이 10비트의 데이터(DSD0~DSD3)로 변환시킨다고 가정하겠다.
변환된 10비트 직렬 데이터
DSD0 <D0 D4 D8 D12 D16 D20 D24 D28 D32 D36>
DSD1 <D1 D5 D9 D13 D17 D21 D25 D29 D33 D37>
DSD2 <D2 D6 D10 D14 D18 D22 D26 D30 D34 D38>
DSD3 <D3 D7 D11 D15 D19 D23 D27 D31 D35 D39>
한편, 본 발명의 제 2 병렬 변환기(3200)는 설명의 편의를 위하여 각각의 디멀티플렉서(3202~3208)들이 다음 표2와 같은 40비트의 병렬 데이터를 변환시킨다고 가정하여 설명하겠다.
변환된 병렬데이터
제 1 디멀티플렉서(3202) D0 D4 D8 D12 D16 D20 D24 D28 D32 D36
제 2 디멀티플렉서(3204) D1 D5 D9 D13 D17 D21 D25 D29 D33 D37
제 3 디멀티플렉서(3206) D2 D6 D10 D14 D18 D22 D26 D30 D34 D38
제 4 디멀티플렉서(3208) D3 D7 D11 D15 D19 D23 D27 D31 D35 D39
도 7은 본 발명에 따른 제 2 병렬 변환기(3200)의 제 1 디멀티플렉서(3202)에 대한 실시예를 보여주고 있다. 도 7을 참조하면, 제 1 디멀티플렉서(3202)는 제 1 플립플롭들(3220~3229) 및 제 2 플립플롭들(3230~3239)을 포함하고 있다.
제 1 플립플롭들(3220~3229)은 제 1 클록(/2CLK)에 동기하여 제 1 병렬 변환기(3100)으로부터 전달된 직렬 데이터(DSD0)를 각각 래치하게 된다. 여기서 제 1 클록(/2CLK)은 제 1 병렬 변환기(3100)로부터 입력된다.
제 2 플립플롭들(3230~3239)은 제 2 클록(RBC)에 동기하여 제 1 플립플롭들(3220~3229)로부터 각각 래치된 데이터를 출력하게 된다. 여기서 제 2 클록(RBC)은 클록 분주기(3300)로부터 입력된다. 제 2 클록(RBC)의 주기는 제 3 클록의 1/10이다. 제 2 플립플롭들(3230~3239)은 제 2 클록(RBC)에 동기하여 10비트의 병렬 데이터(D0,D4,D8,D12,D16,D20,D24,D28,D32,D36)을 출력시킨다.
제 2 병렬 변환기(3200)로부터 출력된 10비트의 데이터(D0,D4,D8,D12,D16,D20,D24,D28,D32,D36)은 선택기(3600)로 출력된다. 한편, 제 1 플립플롭들(3227,3228,3229)의 출력들(D0,D4,D8)은 컴마 감지기(3400)로 출력된다.
도 8은 본 발명에 따른 클록 분주기(3300)를 보여주고 있다. 도 8을 참조하면, 클록 분주기(3300)는 플립플럽들(3320~3324) 및 리셋 회로들(3340~3344)을 포함하고 있다.
클록 분주기(3300)는 제 1 클록(/2CLK)을 입력받아 10분주하여 제 2 클록(RBC)을 생성한다. 클록 분주기(3300)는 5비트의 존슨 카운터(Johnson Counter) 구조를 이용하여 10분주하고 있다. 여기서, 제 2 클록(RBC)은 존슨 카운터의 출력들(Q0~Q4)중 어느 하나이다. 아래에서는 설명의 편의를 위하여 제 2 클록(RBC)는 출력(Q1)으로 한정하겠다.
한편, 클록 분주기(3300)는 리셋 신호들(RS0,RS1)을 이용하여 제 2 클록 (RBC)을 리셋시킨다. 여기서 제 1 리셋 신호(RS0)는 컴마 감지기(3400)로부터 출력된 감지신호들(CDET0~CDET3)이다. 제 2 리셋 신호(RS1)는 제 1 리셋 신호(RS0)의 5 클록 지연된 클록이다. 본 발명의 클록 분주기(3240)는 제 1 리셋 신호(RSO) 및 제 2 리셋 신호(RS1)을 적절하게 조합하여 제 2 클록(RBC)을 리셋함으로 제 2 클록(RBC)의 글리치를 제거한다.
도 9은 본 발명에 따른 컴마 감지에 따른 클록 분주기(3300)의 리셋 방법을 보여주고 있다. 도 9을 참조하면, 클록 분주기(3300)는 제 2 클록(RBC)의 값에 따라 전체적으로 10가지의 타이밍을 가지게 된다. 본 발명의 클록 분주기(3300)는 제 2 클록(RBC)의 논리 상태에 따라 각각 제 2 클록(RBC)에 대한 리셋을 제어한다. 아래에서 클록 분주기(3300)의 리셋 방법에 대하여 설명하도록 하겠다.
클록 분주기(3300)의 리셋 방법은 제 2 클록(RBC)의 상태에 따라 크게 세 가지로 구분된다. 먼저, 제 2 클록(RBC)이 논리 "하이" 상태일 때 컴마가 감지될 경우, 즉 (a)~(e)에서 클록 분주기(3300)는 컴마에 동기하여 제 2 클록(RBC)을 논리 "하이" 상태로 리셋시킨다.
다음으로 제 2 클록(RBC)가 논리 "로우" 상태일 때 컴마가 감지될 경우 즉 (f)~(i)에서 클록 분주기(3300)는 컴마에 동기하여 제 2 클록(RBC)을 논리 "로우" 상태로 리셋시킨다.
마지막으로 컴마가 감지된 직후 제 2 클록(RBC)이 라이징되는 경우 즉 상태이며 즉 (j)에서 클록 분주기(3300)는 컴마에 동기하여 제 2 클록(RBC)을 논리 "하이" 상태로 리셋시킨다.
상술한 바와 같이, 클록 분주기(3300)는 제 2 클록(RBC)에 대한 글리치를 발생시키지 않는다.
도 10은 본 발명의 클록 분주기(3300)의 상태 다이어그램을 보여주고 있다. 도 10을 참조하면, 클록 분주기(3300)의 동작은 다음과 같다.
컴마가 감지되지 않았을 때 즉 제 1 리셋 신호(RS0) 및 제 2 리셋 신호(RS1)가 모두 논리 "로우" 상태일 때, 클록 분주기(3300)는 정상적인 존슨 카운터 동작을 수행하게 된다.
제 2 클록(RBC)이 논리 "하이" 상태이고 컴마가 감지될 경우, 클록 분주기(3300)는 제 1 리셋 신호(RS0)에 응답하여 각각 "11000"상태로 리셋된다. 즉, 리셋 회로들(3340~3344)은 각각 논리 "1", "1","0","0" 및 "0"을 출력시킨다.
반면에 제 2 클록(RBC)이 논리 "로우" 상태이고 컴마가 감지될 경우, 클록 분주기(3300)는 제 1 리셋 신호(RS0)에 응답하여 "00111"상태로 리셋된다. 즉, 리셋 회로들(3340~3344)은 각각 논리 "0", "0","1","1" 및 "1"을 출력시킨다.
제 1 리셋 신호(RS0)가 논리 "로우"상태이고 제 2 리셋 신호(RS1)가 논리 "하이" 상태일 때, 클록 분주기(3300)는 제 2 리셋 신호(RS1)에 응답하여 "00111"상태로 리셋된다. 즉, 리셋 회로들(3344~3344)은 각각 논리 "0", "0","1","1" 및 "1"을 출력시킨다.
본 발명의 클록 분주기(3300)는 제 2 클록(RBC)의 상태 및 컴마 감지신호에 응답하여 제 2 클록(RBC)의 리셋을 수행함으로 제 2 클록(RBC)에 대한 글리치를 발생하지 않게 한다.
도 11은 본 발명에 따른 컴마 감지기(3400)를 보여주고 있다. 도 11를 참조하면, 컴마 감지기(3400)는 네 개의 감지회로들(3402~3408)을 포함하고 있다. 컴마 감지기(3400)는 각각의 디멀티플렉서들(3202~3208)로부터 상위 3비트씩 읽어와 컴마를 감지하게 된다. 즉 컴마 감지기(3400)는 제 1 디멀티플렉서(3202)로부터 병렬 데이터(DO,D4,D8), 제 2 디멀티플렉서(3204)로부터 병렬 데이터(D1,D5,D9), 제 3 디멀티플렉서(3206)로부터 병렬 데이터(D2,D6,D10) 및 제 4 디멀티플렉서(3208)로부터 병렬 데이터(D3,D7,D11)을 입력받는다. 컴마 감지기(3400)는 제 2 병렬 변환기(3200)로부터 입력된 병렬 데이터(D0~D11)을 입력받아 컴마를 감지하여 감지신호들(CDET0~CDET3)을 생성한다.
여기서 컴마는 7비트 데이터로 가정하겠다. 제 1 병렬 변환기(3100)로부터 전달된 직렬 데이터(DSD0~DSD3)의 경우, 존재할 수 있는 컴마의 경우는 네 가지 경우뿐이다. 도 12는 본 발명에 따른 직렬 데이터(DSD0~DSD3)에서 존재할 수 있는 네가지 형태의 컴마를 보여주고 있다.
감지회로들(3402~3408)은 각각의 컴마의 경우에 따라 컴마를 감지한다. 제 1 감지회로(3402)는 도 12a에 도시된 형태의 컴마를 감지한다. 제 1 감지회로(3402)는 병렬 데이터(D0~D6)을 비교하여 일치하는지 감지하여 감지신호(CDET0)을 생성한다. 제 2 감지회로(3404)는 도 12b에 도시된 형태의 컴마를 감지한다. 제 2 감지회로(3242)는 병렬 데이터(D1~D7)을 컴마와 비교하여 일치하는지 감지하여 감지신호(CDET1)을 생성한다. 제 3 감지회로(3406)는 도 12c에 도시된 형태의 컴마를 감지한다. 제 3 감지회로(3406)은 병렬 데이터(D2~D8)을 컴마와 비교하여 일치하는지 감지하여 감지신호(CDET2)을 생성한다. 제 4 감지회로(3408)는 도 12d에 도시된 형태의 컴마를 감지한다. 제 4 감지회로(3408)는 병렬 데이터(D3~D9)을 컴마와 비교하여 일치하는지 감지하여 감지신호(CDET3)을 생성한다.
도 13은 본 발명의 제 1 감지회로(3402)에 대한 실시예를 보여주고 있다. 도 13을 참조하면, 제 1 감지회로(3402)는 노아 논리회로들(3420,3421) 및 앤드 논리회로들(3343~3348)를 포함하고 있다. 여기서 컴마는 "0011111"이라고 가정하겠다.
제 1 노아 논리회로(3420)는 데이터(D0) 및 논리 '로우' 상태를 입력받아 노아 연산하여 출력한다. 제 2 노아 논리회로(3421)는 데이터(D1) 및 논리 '로우' 상태를 입력받아 노아 연산하여 출력한다. 제 1 앤드 논리회로(3422)는 데이터(D2) 및 논리 '하이' 상태를 입력받아 앤드 연산하여 출력한다. 제 2 앤드 논리회로(3423)는 데이터(D3) 및 논리 '하이' 상태를 입력받아 앤드 연산하여 출력한다.제 3 앤드 논리회로(3424)는 데이터(D4) 및 논리 '하이' 상태를 입력받아 앤드 연산하여 출력한다. 제 4 앤드 논리회로(3425)는 데이터(D5) 및 논리 '하이' 상태를 입력받아 앤드 연산하여 출력한다. 제 5 앤드 논리회로(3426)는 데이터(D6) 및 논리 '하이' 상태를 입력받아 앤드 연산하여 출력한다. 앤드 논리회로(3427)는 노아 논리회로들(3420,3421) 및 앤드 논리회로들(3422~3426)의 출력값들을 입력받아 앤드 연산하여 제 1 감지신호(DET0)을 출력한다.
본 발명의 컴마 감지기(3400)는 제 2 병렬 변환기(32220)의 출력들(D0~D11)을 입력받아 컴마를 감지하여 감지신호들(CDET0~CDET3)을 출력한다. 컴마 감지기(3400)의 감지신호들(CDET0~CDET3)은 분주기(3300) 및 엔코더(3500)에 전달된다.
다음 표3은 본 발명에 따른 엔코더(3500)의 입력값에 따른 출력값을 보여주고 있다.
CDET0 CDET1 CDET2 CDET3 엔코더 출력
S0 S1
1 0 0 0 0 0
0 1 0 0 0 1
0 0 1 0 1 0
0 0 0 1 1 1
엔코더(3500)는 컴마 감지기(3400)의 출력값들(CDET0~CDEDT3)을 입력받아 출력신호들(SO,S10)을 출력한다. 위의 표를 참조하면, 제 1 감지신호(CDET0)가 논리 "하이" 상태일 때, 엔코더(3500)는 논리 "로우"상태의 제 1 선택신호(S0) 및 논리 "로우" 상태의 제 2 선택신호(S1)를 생성하여 출력한다. 제 2 감지신호(CDET1)가 논리 "하이" 상태일 때, 엔코더(3500)는 논리 "로우"상태의 제 1 선택신호(S0) 및 논리 "하이" 상태의 제 2 선택신호(S1)를 생성하여 출력한다. 제 3 감지신호(CDET2)가 논리 "하이" 상태일 때, 엔코더(3500)는 논리 "하이"상태의 제 1 선택신호(S0) 및 논리 "하이" 상태의 제 2 선택신호(S1)를 생성하여 출력한다. 제 4 감지신호(CDET3)가 논리 "하이" 상태일 때, 엔코더(3500)는 논리 "하이"상태의 제 1 선택신호(S0) 및 논리 "하이" 상태의 제 2 선택신호(S1)를 생성하여 출력한다.
도 14는 본 발명에 따른 선택기(3600)에 대한 실시예를 보여주고 있다. 도 14을 참조하면, 선택기(3600)는 멀티플렉서들(3602~3608)을 포함하고 있다. 선택기(3600)는 선택신호들(S0,S1)에 따라 40비트의 데이터를 출력하게 된다. 다음 표4는 도 14의 선택신호들(S0,S1)에 따른 선택되는 데이터를 보여주고 있다.
S0 S1 데이터 선택
0 0 A
0 1 B
1 0 C
1 1 D
도 14 및 표 4를 참조하면, 선택기(3600)는 네 가지 종류의 40비트 병렬 데이터를 출력하게 된다.
선택신호(S0)가 논리 "로우" 상태이고, 선택신호(S1)이 논리 "로우" 상태일 때, 멀티플렉서들(3602~3608)은 각각 A 형태의 데이터를 선택하여 출력하게 된다. 따라서, 선택기(3600)는 40비트 병렬 데이터(D0~D39)을 출력한다.
선택신호(S0)가 논리 "로우" 상태이고, 선택신호(S1)이 논리 "하이" 상태일 때, 멀티플렉서들(3602~3608)은 각각 B 형태의 데이터를 선택하여 출력하게 된다. 따라서, 선택기(3600)는 40비트 병렬 데이터(D1~D40)을 출력한다.
선택신호(S0)가 논리 "하이" 상태이고, 선택신호(S1)이 논리 "로우" 상태일 때, 멀티플렉서들(3602~3608)은 각각 C 형태의 데이터를 선택하여 출력하게 된다. 따라서, 선택기(3600)는 40비트 병렬 데이터(D2~D41)을 출력한다.
선택신호(S0)가 논리 "하이" 상태이고, 선택신호(S1)이 논리 "하이" 상태일 때, 멀티플렉서들(3602~3608)은 각각 D 형태의 데이터를 선택하여 출력하게 된다. 따라서, 선택기(3600)는 40비트 병렬 데이터(D3~D42)을 출력한다.
선택기(3600)는 제 2 병렬 변환기(3200)로부터 40비트의 병렬 데이터 입력받아 선두 비트를 달리하는 네 가지 형태의 데이터로 입력받는다. 이를 도 13의 제 1 멀티플렉서(3602)에 입력되는 데이터에 대하여 좀더 자세히 설명해 보겠다. 제 1 멀티플렉서(3602)는 <D0,D4,,,,,D36>, <D1,D5,...,D37>, <D2,D6,...,D38> 및 <D3,D7,...,D39>의 네가지 형태의 10비트 병렬 데이터를 입력받는다. 제 1 멀티플렉서(3602)는 콤마 형태에 따라 <D0,D4,,,,,D36>, <D1,D5,...,D37>, <D2,D6,...,D38> 및 <D3,D7,...,D39>의 네가지 형태의 10비트 병렬 데이터중에서 어느 하나를 선택하여 출력시킨다.
본 발명의 선택기(3602)는 컴마의 종류에 따라 정렬된 40비트의 병렬 데이터(RXD)을 출력한다.
한편, 본 발명의 역직렬화기(300)는 복원 클록(RBC)의 논리 상태 및 컴마 감지에 따라 복원 클록(RBC)의 리셋을 실시함으로 복원 클록(RBC)에 대한 글리치를 발생하지 않게 한다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명에 따른 역직렬화기 및 그것의 데이터 역직렬화 방법은 데이터를 병렬화시키면서 동시에 데이터 정렬을 함으로 데이터 레이턴시를 줄이게 된다.
한편, 본 발명에 따른 역직렬화기 및 그것의 데이터 역직렬화 방법은 복원 클록에 동기하여 직렬 데이터를 병렬 데이터로 변환하되, 복원 클록의 상태에 따라 복원 클록을 리셋시킴으로 병렬 데이터에 글리치가 발생하지 않게 된다.

Claims (56)

  1. 역직렬화기의 데이터 역직렬화 방법에 있어서:
    직렬 데이터를 소정 단위의 직렬 데이터로 변환하는 단계;
    상기 변환된 직렬 데이터를 병렬화시키는 단계; 및
    상기 병렬화된 직렬 데이터를 정렬시키는 단계를 포함하되,
    상기 변환된 직렬 데이터를 병렬화시키면서 상기 병렬화된 데이터를 정렬시키는 것을 특징으로 하는 데이터 역직렬화 방법.
  2. 제 1 항에 있어서,
    상기 역직렬화기는 컴마를 감지하여 상기 병렬화된 데이터를 정렬시키는 것을 특징으로 하는 데이터 역직렬화 방법.
  3. 제 2 항에 있어서,
    상기 역직렬화기는,
    상기 직렬 데이터를 복수의 직렬 데이터로 변환하는 제 1 병렬 변환기;
    상기 복수의 직렬 데이터를 입력받아 병렬 데이터로 변환하는 제 2 병렬 변환기; 및
    상기 복수의 직렬 데이터로부터 상기 컴마를 감지하는 컴마 감지기를 포함하는 데이터 역직렬화 방법.
  4. 제 3 항에 있어서,
    상기 제 1 병렬 변환기는,
    외부 클록에 동기하여 상기 직렬 데이터를 n(여기서 n은 자연수)개의 직렬 데이터로 변환하고 제 1 클록에 동기하여 상기 n개의 직렬 데이터를 상기 제 2 병렬 변환기에 출력하되,
    상기 n개의 직렬 데이터 각각은 m(여기서 m은 자연수) 비트 데이터이고,
    상기 제 1 클록의 주기는 상기 외부 클록의 주기의 n/2배인 것을 특징으로 하는 데이터 역직렬화 방법.
  5. 제 4 항에 있어서,
    상기 제 1 병렬 변환기는 상기 제 1 클록을 상기 제 2 병렬 변환기에 전달하고,
    상기 제 2 병렬 변환기는 상기 제 1 클록에 동기하여 상기 n개의 직렬 데이터 각각을 상기 m개의 병렬 데이터로 병렬화시키되,
    상기 제 2 병렬 변환기는 제 2 클록에 동기하여 상기 병렬화된 상기 m개의 병렬 데이터를 출력하되,
    상기 제 2 클록의 주기는 상기 제 1 클록의 주기의 m 배인 것을 특징으로 하는 데이터 역직렬화 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 직렬 데이터를 소정 단위의 직렬 데이터로 변환하는 제 1 병렬 변환기;
    상기 변환된 직렬 데이터를 병렬화시키는 제 2 병렬 변환기;
    상기 변환된 직렬 데이터로부터 컴마를 감지하여 컴마 감지신호를 생성하는 컴마 감지기; 및
    상기 컴마 감지신호에 응답하여 상기 병렬화된 데이터를 정렬하는 데이터 정렬기를 포함하되,
    상기 변환된 직렬 데이터를 병렬화시키면서 상기 컴마를 감지하는 것을 특징으로 하는 역직렬화기.
  17. 제 16 항에 있어서,
    상기 제 1 병렬 변환기는 상기 직렬 데이터를 n(n은 자연수)개의 직렬 데이터로 변환하는 디멀티플렉서를 포함하되,
    상기 n개의 직렬 데이터는 m(m은 자연수) 비트 데이터이고,
    상기 디멀티플렉서는 외부 클록에 동기하여 상기 직렬 데이터를 상기 n개의 직렬 데이터로 변환하고 제 1 클록에 동기하여 상기 n개의 직렬 데이터를 출력하되,
    상기 제 1 클록의 주기는 상기 외부 클록의 n/2배이고,
    상기 제 2 병렬 변환기는 입력된 상기 n개의 직렬 데이터를 각각 상기 m개의 병렬 데이터로 변환하는 디멀티플렉서들을 포함하고,
    상기 디멀티플렉서들 각각은 상기 제 1 클록에 동기하여 m 비트의 직렬 데이터를 상기 m개의 병렬 데이터로 변환하고 제 2 클록에 동기하여 상기 m개의 병렬 데이터를 출력하되,
    상기 제 2 클록의 주기는 상기 제 1 클록의 주기의 m배인 것을 특징으로 하는 역직렬화기.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 제 17 항에 있어서,
    상기 데이터 정렬기는 상기 제 2 병렬 변환기로부터 n×m 개의 병렬 데이터를 입력받고 상기 컴마 감지신호에 응답하여 정렬된 상기 n×m 개의 병렬 데이터를 출력시키는 것을 특징으로 하는 역직렬화기.
  22. 제 21 항에 있어서,
    상기 컴마 감지기는 상기 n개의 직렬 데이터 중에서 각각 k비트씩 읽어와 상기 컴마를 감지하되,
    상기 k는 상기 m보다 작고,
    상기 컴마 감지기는 적어도 n개의 컴마들을 포함하는 역직렬화기.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 직렬 데이터를 소정 단위의 직렬 데이터로 변환하는 제 1 병렬 변환기;
    상기 변환된 직렬 데이터를 병렬화시키는 제 2 병렬 변환기;
    상기 제 2 병렬 변환기로부터 병렬화된 데이터로부터 컴마를 감지하여 컴마 감지신호를 생성하는 컴마 감지기; 및
    상기 컴마 감시신호에 응답하여 상기 병렬화된 데이터를 정렬하는 데이터 정렬기를 포함하되,
    상기 변환된 데이터를 병렬화시키면서 상기 컴마를 감지하는 것을 특징으로 하는 역직렬화기.
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
KR1020070003446A 2007-01-11 2007-01-11 서데스의 역직렬화기 및 그것의 데이터 역직렬화 방법 KR100894811B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070003446A KR100894811B1 (ko) 2007-01-11 2007-01-11 서데스의 역직렬화기 및 그것의 데이터 역직렬화 방법
US11/972,037 US7626523B2 (en) 2007-01-11 2008-01-10 Deserializer, related method, and clock frequency divider

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070003446A KR100894811B1 (ko) 2007-01-11 2007-01-11 서데스의 역직렬화기 및 그것의 데이터 역직렬화 방법

Publications (2)

Publication Number Publication Date
KR20080066245A KR20080066245A (ko) 2008-07-16
KR100894811B1 true KR100894811B1 (ko) 2009-04-24

Family

ID=39617343

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070003446A KR100894811B1 (ko) 2007-01-11 2007-01-11 서데스의 역직렬화기 및 그것의 데이터 역직렬화 방법

Country Status (2)

Country Link
US (1) US7626523B2 (ko)
KR (1) KR100894811B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7913104B1 (en) * 2007-10-12 2011-03-22 Xilinx, Inc. Method and apparatus for receive channel data alignment with minimized latency variation
US20090265490A1 (en) * 2008-04-04 2009-10-22 Tarun Setya High-Speed Video Serializer and Deserializer
US8036248B2 (en) * 2008-10-29 2011-10-11 Silicon Image, Inc. Method, apparatus, and system for automatic data aligner for multiple serial receivers
US8401043B1 (en) * 2008-11-18 2013-03-19 Marvell Israel (M.L.S.L) Ltd. Hardware interface utilizing alignment symbols for demultiplexing
US7990293B2 (en) * 2009-07-07 2011-08-02 Mediatek Inc. Programmable deserializer
JP2012065094A (ja) * 2010-09-15 2012-03-29 Sony Corp 位相調整回路、受信装置、および通信システム
EP2515442A1 (en) 2011-04-21 2012-10-24 STMicroelectronics SA An arrangement
US8823426B2 (en) * 2012-10-24 2014-09-02 SK Hynix Inc. Deserializers
KR101914297B1 (ko) * 2012-10-24 2018-11-01 에스케이하이닉스 주식회사 직병렬변환기
JP2014164776A (ja) * 2013-02-22 2014-09-08 Micron Technology Inc 半導体装置及びその制御方法
US9767062B2 (en) 2015-04-17 2017-09-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Low power parallelization to multiple output bus widths
EP3641138A1 (en) 2016-03-11 2020-04-22 Socionext Inc. Demultiplexer circuit, and semiconductor integrated circuit
KR102666132B1 (ko) 2016-12-21 2024-05-14 삼성전자주식회사 반도체 메모리 장치의 데이터 정렬 회로, 반도체 메모리 장치 및 반도체 메모리 장치의 데이터 정렬 방법
US10141949B1 (en) * 2017-11-07 2018-11-27 Cavium, Llc Modular serializer and deserializer
US10778357B2 (en) * 2018-10-31 2020-09-15 Samsung Display Co., Ltd. Word alignment using deserializer pattern detection
CN112073152B (zh) * 2020-09-15 2022-06-24 四川九洲空管科技有限责任公司 一种提高chsi接收数据可靠性的fpga抗干扰处理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004135337A (ja) 2002-10-08 2004-04-30 Agilent Technol Inc バウンダリ・スキャン・テスト技法と協働するserdes

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594275B1 (en) * 1998-04-03 2003-07-15 Texas Instruments Incorporated Fibre channel host bus adapter having multi-frequency clock buffer for reduced power consumption
US6535527B1 (en) 1999-04-29 2003-03-18 Cypress Semiconductor Corp. Low latency, low power deserializer
US6862296B1 (en) 1999-12-21 2005-03-01 Lsi Logic Corporation Receive deserializer circuit for framing parallel data
US6518805B2 (en) 2000-10-04 2003-02-11 Broadcom Corporation Programmable divider with built-in programmable delay chain for high-speed/low power application
US6854044B1 (en) 2002-12-10 2005-02-08 Altera Corporation Byte alignment circuitry
EP1579612B1 (en) * 2002-12-19 2006-11-15 Koninklijke Philips Electronics N.V. Frame synchronizing device and method
JP4335730B2 (ja) * 2004-03-31 2009-09-30 Necエレクトロニクス株式会社 デマルチプレクサ装置
US7499516B2 (en) * 2004-11-19 2009-03-03 Agere Systems, Inc. Methods and apparatus for interface buffer management and clock compensation in data transfers
JP4676792B2 (ja) * 2005-03-17 2011-04-27 株式会社リコー データリカバリ方法、データリカバリ回路、データ送受信装置及び情報処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004135337A (ja) 2002-10-08 2004-04-30 Agilent Technol Inc バウンダリ・スキャン・テスト技法と協働するserdes

Also Published As

Publication number Publication date
KR20080066245A (ko) 2008-07-16
US7626523B2 (en) 2009-12-01
US20080169946A1 (en) 2008-07-17

Similar Documents

Publication Publication Date Title
KR100894811B1 (ko) 서데스의 역직렬화기 및 그것의 데이터 역직렬화 방법
US6201829B1 (en) Serial/parallel GHZ transceiver with pseudo-random built in self test pattern generator
US5648776A (en) Serial-to-parallel converter using alternating latches and interleaving techniques
US7253754B2 (en) Data form converter between serial and parallel
US6732205B2 (en) Serial/parallel conversion circuit, data transfer control device, and electronic equipment
US6593863B2 (en) Serializer
KR101174234B1 (ko) 직렬 데이터 수신 회로 장치 및 직렬 데이터 수신 방법
US8464145B2 (en) Serial interface devices, systems and methods
JPS62157425A (ja) 直列のデ−タパタ−ン信号を変換するための装置
US9154291B2 (en) Differential signal skew adjustment method and transmission circuit
US4691319A (en) Method and system for detecting a predetermined number of unidirectional errors
US7924185B2 (en) Semiconductor integrated circuit device, pattern detection method and serial-parallel conversion method
CN105591645B (zh) 一种多级串并转换电路
EP3734465B1 (en) Data transmission code and interface
US7796063B2 (en) Data transmission circuits and data transceiver systems
US7102553B2 (en) Signal transmission method and signal transmission device
US7528748B2 (en) Serial data receiving circuit and serial data receiving method
JP2013055502A (ja) シリアル通信回路
US11329669B2 (en) Multi-lane serializer device
US10565156B1 (en) Wired-data bus transmission using signal transition coding
US20190280850A1 (en) Techniques For Word Alignment Based On Transition Density
US10778357B2 (en) Word alignment using deserializer pattern detection
US7392334B2 (en) Circuits and methods for high speed and low power data serialization
WO2023104210A1 (zh) 数据传输芯片及电子设备
US11012087B2 (en) Encoding and decoding architecture for high speed data communication system and related physical layer circuit, transmitter and receiver and communication system thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment
FPAY Annual fee payment
FPAY Annual fee payment

Payment date: 20190329

Year of fee payment: 11