리클로킹 (Reclocking)
1. 개요
리클로킹(Reclocking)이란 디지털 시스템의 물리 계층(Physical Layer)에서 신호 무결성(Signal Integrity)을 확보하기 위해 사용하는 기술이다. 디지털 신호 전송 과정에서 누적된 타이밍 오차와 지터(Jitter, 신호의 시간축 상의 미세한 떨림)를 제거하기 위해, 입력 신호를 정밀한 기준 클록(Reference Clock)에 맞춰 다시 샘플링하여 깨끗한 신호로 재생성하는 것을 의미한다.
디지털 시스템에서 데이터는 특정 클록 주기에 맞춰 전송되지만, 물리적 전송 경로를 거치며 신호의 상승/하강 시간이 변하거나 외부 노이즈가 유입되면 데이터의 유효 구간(Eye Diagram의 개구부)이 좁아지게 된다. 리클로킹은 이러한 왜곡된 신호를 다시 정렬함으로써 데이터 복구 확률을 높이고 시스템의 안정성을 확보하는 것을 목적으로 한다.
2. 작동 원리
리클로킹의 핵심은 입력된 불안정한 신호를 그대로 통과시키는 것이 아니라, 신호의 논리 값(0 또는 1)만을 추출하여 완전히 새로운 클록 소스에 동기화시켜 출력하는 것이다.
2.1 메커니즘
- 입력 샘플링: 입력 신호가 들어오면, 최적의 샘플링 시점(보통 데이터의 중심점)에서 신호의 레벨을 읽는다.
- 상태 저장: 읽어들인 논리 값을 플립플롭(Flip-Flop)과 같은 저장 소자에 일시적으로 저장한다.
- 재생성: 매우 정밀한 로컬 클록(Local Clock)의 에지에 맞춰 저장된 값을 출력함으로써, 입력 신호가 가지고 있던 시간축의 흔들림(지터)을 완전히 제거한 새로운 파형을 생성한다.
- PLL (Phase-Locked Loop, 위상 고정 루프): 입력 신호의 주파수와 위상을 추적하여 내부적으로 매우 안정적인 고주파 클록을 생성하는 회로이다. 리클로킹의 기준이 되는 '깨끗한 클록'을 제공하는 핵심 부품이다.
- CDR (Clock and Data Recovery, 클록 및 데이터 복구): 별도의 클록 라인이 없는 직렬 통신(SerDes 등)에서 데이터 스트림 자체로부터 클록을 추출하고 데이터를 복원하는 기술이다. PLL 기반의 CDR 외에도 다음과 같은 방식이 사용된다.
- Oversampling: 입력 데이터보다 훨씬 빠른 클록으로 여러 번 샘플링하여 데이터의 전이(Transition) 지점을 찾아내는 방식.
- DLL (Delay-Locked Loop): 위상 지연 소자를 이용하여 입력 신호와 출력 클록의 위상을 정밀하게 맞추는 방식.
2.3 리클로킹 전/후 신호 특성 비교
| 특성 |
리클로킹 전 (Before) |
리클로킹 후 (After) |
| 에지 정렬 |
지터로 인해 에지 위치가 불규칙함 |
기준 클록에 맞춰 에지가 일정함 |
| 아이 다이어그램 |
Eye Opening이 좁고 닫혀 있음 |
Eye Opening이 넓고 명확함 |
| 타이밍 마진 |
셋업/홀드 타임 마진 부족 위험 |
충분한 타이밍 마진 확보 |
| 신호 무결성 |
전송 경로에 따른 왜곡 누적 |
왜곡이 초기화되어 재생성됨 |
[시각적 참고: 아이 다이어그램 비교]
* Before: 신호의 겹침이 심하고 중앙의 빈 공간(Eye)이 매우 좁아 0과 1의 판별이 어려운 상태.
* After: 지터가 제거되어 신호의 에지가 수직으로 정렬되고, 중앙의 빈 공간(Eye)이 크게 열려 판별력이 극대화된 상태.
3. 리클로킹의 필요성 및 효과
3.1 신호 왜곡(Degradation) 현상
디지털 신호가 PCB 패턴이나 케이블을 통해 장거리 전송될 때 다음과 같은 현상이 발생한다.
* ISI (Inter-Symbol Interference): 이전 비트의 잔류 전하가 다음 비트에 영향을 주어 파형이 뭉개지는 현상.
* Skew (스큐): 여러 신호선 간의 도달 시간 차이로 인해 동기화가 깨지는 현상.
* Additive Jitter: 전원 노이즈나 전자기 간섭(EMI)으로 인해 신호의 타이밍이 미세하게 변하는 현상.
3.2 지터 종류별 해결 사례
리클로킹은 지터의 성격에 따라 다음과 같이 대응한다.
* Deterministic Jitter (결정적 지터): ISI나 반사파로 인해 발생하는 예측 가능한 지터. 리클로킹을 통해 샘플링 시점을 최적화함으로써 데이터 오류를 방지한다.
* Random Jitter (무작위 지터): 열 잡음 등으로 발생하는 불규칙한 지터. 고정밀 오실레이터 기반의 리클로킹 회로를 통과시키면 입력단의 무작위 지터가 제거되고 출력단에는 로컬 클록의 매우 낮은 지터만 남게 된다.
4. 주요 구현 방식 및 회로 구성
4.1 하드웨어 구현 방법
- Flip-Flop 기반: 가장 기본적인 형태로, D-플립플롭의 클록 입력단에 정밀 클록을 연결하여 데이터를 래치(Latch)하는 방식이다.
- FIFO (First-In-First-Out) 버퍼: 입력 클록 도메인과 출력 클록 도메인이 다를 때 사용한다. 데이터를 메모리에 임시 저장한 후 다른 클록으로 읽어내어 도메인 교차(Clock Domain Crossing)를 처리한다.
- 전용 Reclocking IC: 고속 인터페이스를 위해 PLL, CDR, 드라이버가 통합된 칩을 사용하여 신호를 재생성한다.
4.2 일반적인 회로 배치 구조
graph LR;
A[입력 신호] --> B[Equalizer]
B --> C[CDR/PLL]
C --> D[Flip-Flop]
D --> E[Driver]
E --> F[출력 신호]
5. 활용 분야 및 사례
- 고해상도 AV 전송: HDMI, DisplayPort와 같은 고속 인터페이스에서 케이블 길이가 길어질 때 발생하는 신호 감쇄와 지터를 제거하여 화면 깨짐(Artifact)을 방지한다.
- 고속 데이터 통신: PCIe, SATA, Ethernet 등 Gbps 단위의 통신에서 리타이머(Retimer) 칩을 통해 데이터 무결성을 유지한다.
- FPGA 및 ASIC 설계: 서로 다른 클록 소스를 사용하는 칩 간 데이터 전송 시, 수신단에서 리클로킹을 수행하여 메타스태빌리티(Metastability, 불확정 상태)를 방지한다.
5.1 리타이머(Retimer) vs 리드라이버(Redriver)
리클로킹 기술이 적용된 하드웨어 구현체는 주로 리타이머이며, 단순 증폭 장치인 리드라이버와 다음과 같이 구분된다.
* 리드라이버 (Redriver): 단순히 신호의 진폭을 키우고(Gain) 고주파 성분을 보정(Equalization)하여 신호를 멀리 보내는 장치이다. 지터를 제거하지 못하며, 오히려 입력된 지터가 그대로 통과하거나 증폭될 수 있다.
* 리타이머 (Retimer): 내부적으로 CDR과 PLL을 통해 신호를 완전히 리클로킹한다. 지터를 완전히 제거하고 새로운 깨끗한 클록으로 신호를 재생성하므로, 리드라이버보다 훨씬 강력한 신호 복구 능력을 갖춘다.
6. 리타이밍(Retiming)과의 차이점
리클로킹과 리타이밍은 모두 타이밍을 조정한다는 점에서 유사하나, 기술적 범위와 목적에서 차이가 있다.
| 구분 |
리타이밍 (Retiming) |
리클로킹 (Reclocking) |
| 핵심 개념 |
레지스터 위치를 이동시켜 경로 지연 최적화 |
새로운 클록으로 신호를 완전히 재생성 |
| 주요 목적 |
조합 회로의 최대 동작 주파수(Fmax) 향상 |
전송 경로의 지터 제거 및 신호 무결성 확보 |
| 작동 방식 |
논리적 설계 단계에서 플립플롭 재배치 |
물리적 회로에서 샘플링 및 재생성 수행 |
| 적용 시점 |
주로 RTL 설계 및 합성 단계 |
주로 물리 계층(PHY) 및 하드웨어 구현 단계 |
7. 실제 회로 설계 시 주의사항
리클로킹 회로를 설계할 때는 다음과 같은 기술적 요소를 반드시 고려해야 한다.
- 메타스태빌리티(Metastability) 방지: 비동기 신호를 샘플링할 때 플립플롭의 셋업/홀드 타임을 만족하지 못하면 출력이 0과 1 사이에서 진동하는 메타스태빌리티가 발생할 수 있다.
- 구체적 예시: 이를 방지하기 위해 2-Stage 또는 3-Stage Synchronizer를 구성한다. 즉, 첫 번째 플립플롭의 출력을 두 번째(및 세 번째) 플립플롭의 입력으로 연결하여, 첫 단에서 발생한 불안정한 상태가 다음 클록 에지까지 안정화될 시간을 확보함으로써 최종 출력의 신뢰성을 높인다.
- 클록 지터(Clock Jitter) 관리: 리클로킹의 품질은 기준 클록의 품질에 전적으로 의존한다. 따라서 저지터 오실레이터(Low-jitter Oscillator)를 사용하고, 클록 라인에 전원 노이즈가 유입되지 않도록 디커플링 커패시터를 충분히 배치해야 한다.
- 전력 소모 및 발열: 고속 CDR 및 PLL 회로는 전력 소모가 크고 열이 많이 발생한다. 특히 고밀도 PCB 설계 시 열 방산(Thermal Dissipation) 대책이 필요하다.
- 임피던스 매칭: 리클로킹 칩 전후의 전송선로 임피던스를 50Ω 또는 100Ω (차동 신호 기준)으로 정밀하게 매칭하여 신호 반사로 인한 2차 지터 발생을 억제해야 한다.
# 리클로킹 (Reclocking)
## 1. 개요
리클로킹(Reclocking)이란 디지털 시스템의 **물리 계층(Physical Layer)**에서 신호 무결성(Signal Integrity)을 확보하기 위해 사용하는 기술이다. 디지털 신호 전송 과정에서 누적된 타이밍 오차와 지터(Jitter, 신호의 시간축 상의 미세한 떨림)를 제거하기 위해, 입력 신호를 정밀한 기준 클록(Reference Clock)에 맞춰 다시 샘플링하여 깨끗한 신호로 재생성하는 것을 의미한다.
디지털 시스템에서 데이터는 특정 클록 주기에 맞춰 전송되지만, 물리적 전송 경로를 거치며 신호의 상승/하강 시간이 변하거나 외부 노이즈가 유입되면 데이터의 유효 구간(Eye Diagram의 개구부)이 좁아지게 된다. 리클로킹은 이러한 왜곡된 신호를 다시 정렬함으로써 데이터 복구 확률을 높이고 시스템의 안정성을 확보하는 것을 목적으로 한다.
## 2. 작동 원리
리클로킹의 핵심은 입력된 불안정한 신호를 그대로 통과시키는 것이 아니라, 신호의 논리 값(0 또는 1)만을 추출하여 완전히 새로운 클록 소스에 동기화시켜 출력하는 것이다.
### 2.1 메커니즘
1. **입력 샘플링**: 입력 신호가 들어오면, 최적의 샘플링 시점(보통 데이터의 중심점)에서 신호의 레벨을 읽는다.
2. **상태 저장**: 읽어들인 논리 값을 플립플롭(Flip-Flop)과 같은 저장 소자에 일시적으로 저장한다.
3. **재생성**: 매우 정밀한 로컬 클록(Local Clock)의 에지에 맞춰 저장된 값을 출력함으로써, 입력 신호가 가지고 있던 시간축의 흔들림(지터)을 완전히 제거한 새로운 파형을 생성한다.
### 2.2 PLL 및 CDR의 역할
* **PLL (Phase-Locked Loop, 위상 고정 루프)**: 입력 신호의 주파수와 위상을 추적하여 내부적으로 매우 안정적인 고주파 클록을 생성하는 회로이다. 리클로킹의 기준이 되는 '깨끗한 클록'을 제공하는 핵심 부품이다.
* **CDR (Clock and Data Recovery, 클록 및 데이터 복구)**: 별도의 클록 라인이 없는 직렬 통신(SerDes 등)에서 데이터 스트림 자체로부터 클록을 추출하고 데이터를 복원하는 기술이다. PLL 기반의 CDR 외에도 다음과 같은 방식이 사용된다.
* **Oversampling**: 입력 데이터보다 훨씬 빠른 클록으로 여러 번 샘플링하여 데이터의 전이(Transition) 지점을 찾아내는 방식.
* **DLL (Delay-Locked Loop)**: 위상 지연 소자를 이용하여 입력 신호와 출력 클록의 위상을 정밀하게 맞추는 방식.
### 2.3 리클로킹 전/후 신호 특성 비교
| 특성 | 리클로킹 전 (Before) | 리클로킹 후 (After) |
| :--- | :--- | :--- |
| **에지 정렬** | 지터로 인해 에지 위치가 불규칙함 | 기준 클록에 맞춰 에지가 일정함 |
| **아이 다이어그램** | Eye Opening이 좁고 닫혀 있음 | Eye Opening이 넓고 명확함 |
| **타이밍 마진** | 셋업/홀드 타임 마진 부족 위험 | 충분한 타이밍 마진 확보 |
| **신호 무결성** | 전송 경로에 따른 왜곡 누적 | 왜곡이 초기화되어 재생성됨 |
**[시각적 참고: 아이 다이어그램 비교]**
* **Before**: 신호의 겹침이 심하고 중앙의 빈 공간(Eye)이 매우 좁아 0과 1의 판별이 어려운 상태.
* **After**: 지터가 제거되어 신호의 에지가 수직으로 정렬되고, 중앙의 빈 공간(Eye)이 크게 열려 판별력이 극대화된 상태.
## 3. 리클로킹의 필요성 및 효과
### 3.1 신호 왜곡(Degradation) 현상
디지털 신호가 PCB 패턴이나 케이블을 통해 장거리 전송될 때 다음과 같은 현상이 발생한다.
* **ISI (Inter-Symbol Interference)**: 이전 비트의 잔류 전하가 다음 비트에 영향을 주어 파형이 뭉개지는 현상.
* **Skew (스큐)**: 여러 신호선 간의 도달 시간 차이로 인해 동기화가 깨지는 현상.
* **Additive Jitter**: 전원 노이즈나 전자기 간섭(EMI)으로 인해 신호의 타이밍이 미세하게 변하는 현상.
### 3.2 지터 종류별 해결 사례
리클로킹은 지터의 성격에 따라 다음과 같이 대응한다.
* **Deterministic Jitter (결정적 지터)**: ISI나 반사파로 인해 발생하는 예측 가능한 지터. 리클로킹을 통해 샘플링 시점을 최적화함으로써 데이터 오류를 방지한다.
* **Random Jitter (무작위 지터)**: 열 잡음 등으로 발생하는 불규칙한 지터. 고정밀 오실레이터 기반의 리클로킹 회로를 통과시키면 입력단의 무작위 지터가 제거되고 출력단에는 로컬 클록의 매우 낮은 지터만 남게 된다.
## 4. 주요 구현 방식 및 회로 구성
### 4.1 하드웨어 구현 방법
1. **Flip-Flop 기반**: 가장 기본적인 형태로, D-플립플롭의 클록 입력단에 정밀 클록을 연결하여 데이터를 래치(Latch)하는 방식이다.
2. **FIFO (First-In-First-Out) 버퍼**: 입력 클록 도메인과 출력 클록 도메인이 다를 때 사용한다. 데이터를 메모리에 임시 저장한 후 다른 클록으로 읽어내어 도메인 교차(Clock Domain Crossing)를 처리한다.
3. **전용 Reclocking IC**: 고속 인터페이스를 위해 PLL, CDR, 드라이버가 통합된 칩을 사용하여 신호를 재생성한다.
### 4.2 일반적인 회로 배치 구조
```mermaid
graph LR;
A[입력 신호] --> B[Equalizer]
B --> C[CDR/PLL]
C --> D[Flip-Flop]
D --> E[Driver]
E --> F[출력 신호]
```
## 5. 활용 분야 및 사례
* **고해상도 AV 전송**: HDMI, DisplayPort와 같은 고속 인터페이스에서 케이블 길이가 길어질 때 발생하는 신호 감쇄와 지터를 제거하여 화면 깨짐(Artifact)을 방지한다.
* **고속 데이터 통신**: PCIe, SATA, Ethernet 등 Gbps 단위의 통신에서 리타이머(Retimer) 칩을 통해 데이터 무결성을 유지한다.
* **FPGA 및 ASIC 설계**: 서로 다른 클록 소스를 사용하는 칩 간 데이터 전송 시, 수신단에서 리클로킹을 수행하여 메타스태빌리티(Metastability, 불확정 상태)를 방지한다.
### 5.1 리타이머(Retimer) vs 리드라이버(Redriver)
리클로킹 기술이 적용된 하드웨어 구현체는 주로 **리타이머**이며, 단순 증폭 장치인 **리드라이버**와 다음과 같이 구분된다.
* **리드라이버 (Redriver)**: 단순히 신호의 진폭을 키우고(Gain) 고주파 성분을 보정(Equalization)하여 신호를 멀리 보내는 장치이다. 지터를 제거하지 못하며, 오히려 입력된 지터가 그대로 통과하거나 증폭될 수 있다.
* **리타이머 (Retimer)**: 내부적으로 CDR과 PLL을 통해 신호를 완전히 **리클로킹**한다. 지터를 완전히 제거하고 새로운 깨끗한 클록으로 신호를 재생성하므로, 리드라이버보다 훨씬 강력한 신호 복구 능력을 갖춘다.
## 6. 리타이밍(Retiming)과의 차이점
리클로킹과 리타이밍은 모두 타이밍을 조정한다는 점에서 유사하나, 기술적 범위와 목적에서 차이가 있다.
| 구분 | 리타이밍 (Retiming) | 리클로킹 (Reclocking) |
| :--- | :--- | :--- |
| **핵심 개념** | 레지스터 위치를 이동시켜 경로 지연 최적화 | 새로운 클록으로 신호를 완전히 재생성 |
| **주요 목적** | 조합 회로의 최대 동작 주파수(Fmax) 향상 | 전송 경로의 지터 제거 및 신호 무결성 확보 |
| **작동 방식** | 논리적 설계 단계에서 플립플롭 재배치 | 물리적 회로에서 샘플링 및 재생성 수행 |
| **적용 시점** | 주로 RTL 설계 및 합성 단계 | 주로 물리 계층(PHY) 및 하드웨어 구현 단계 |
## 7. 실제 회로 설계 시 주의사항
리클로킹 회로를 설계할 때는 다음과 같은 기술적 요소를 반드시 고려해야 한다.
1. **메타스태빌리티(Metastability) 방지**: 비동기 신호를 샘플링할 때 플립플롭의 셋업/홀드 타임을 만족하지 못하면 출력이 0과 1 사이에서 진동하는 메타스태빌리티가 발생할 수 있다.
* **구체적 예시**: 이를 방지하기 위해 **2-Stage 또는 3-Stage Synchronizer**를 구성한다. 즉, 첫 번째 플립플롭의 출력을 두 번째(및 세 번째) 플립플롭의 입력으로 연결하여, 첫 단에서 발생한 불안정한 상태가 다음 클록 에지까지 안정화될 시간을 확보함으로써 최종 출력의 신뢰성을 높인다.
2. **클록 지터(Clock Jitter) 관리**: 리클로킹의 품질은 기준 클록의 품질에 전적으로 의존한다. 따라서 저지터 오실레이터(Low-jitter Oscillator)를 사용하고, 클록 라인에 전원 노이즈가 유입되지 않도록 디커플링 커패시터를 충분히 배치해야 한다.
3. **전력 소모 및 발열**: 고속 CDR 및 PLL 회로는 전력 소모가 크고 열이 많이 발생한다. 특히 고밀도 PCB 설계 시 열 방산(Thermal Dissipation) 대책이 필요하다.
4. **임피던스 매칭**: 리클로킹 칩 전후의 전송선로 임피던스를 50Ω 또는 100Ω (차동 신호 기준)으로 정밀하게 매칭하여 신호 반사로 인한 2차 지터 발생을 억제해야 한다.