CDR — 클록·데이터 복원
직렬 광 링크에는 별도의 클록이 없습니다. 수신기는 데이터 스트림 자체에서 클록을 복원한 다음, 그 클록에 맞춰 비트를 다시 샘플링(“리타이밍”)해야 합니다. 이 작업을 하는 회로가 CDR(클록과 데이터 복구)입니다. CDR이 호스트에 있는지 모듈 안에 있는지는 폼 팩터를 가르는 결정적 차이 중 하나이며, 그 제어 비트는 CodingBox가 읽고 코딩하는 메모리의 일부입니다.
CDR이 하는 일
- 클록을 추출합니다: 위상 고정 루프(PLL)로 들어오는 비트 전이에서 클록을 뽑아냅니다.
- 데이터를 리타이밍합니다: 복원한 클록의 에지에 맞춰 각 비트를 다시 샘플링해, 전달 과정에서 쌓인 타이밍 잡음(지터)을 제거합니다.
- 다음 단으로 깨끗한 에지를 재생성합니다: Tx 쪽은 레이저 드라이버로, Rx 쪽은 호스트 SerDes로 전달합니다.
그래서 CDR은 지터 리셋 지점 역할을 합니다. 모든 링크에는 호스트 PCB 트레이스, 커넥터, 모듈이 나눠 쓰는 지터 버짓이 있으며, 모듈 안에 리타이머가 있으면 호스트 쪽은 자신의 몫을 여유 있게 쓸 수 있습니다.
호스트 측 또는 모듈 측
| 폼 팩터 | CDR 위치 | 결과 |
|---|---|---|
| XFP | 모듈 안(XFI 인터페이스) | 단순한 호스트, 프로토콜 비의존적 모듈. 더 크고 더 뜨거운 모듈 |
| SFP+ | 호스트 위(SFI 인터페이스) | 작고 시원하고 저렴한 모듈. 호스트에 CDR/EDC 필요. 선형(LRM) 모듈도 가능 |
| SFP28 | 보통 모듈 안 | 25G 지터 버짓이 빠듯해 호스트만으로는 부족 |
| QSFP+ 40G | 모듈에 없는 경우가 많음 | 호스트가 4×10G를 리타이밍 |
| QSFP28 100G | 모듈 안에 Tx/Rx CDR(일반적) | 레인별 온/오프 제어. CDR 탑재 비트로 알림 |
| PAM4 모듈(QSFP56 / QSFP-DD / OSFP) | DSP: 이퀄라이제이션과 FEC 인식을 갖춘 CDR | 높은 전력. LPO는 이를 다시 없앰 |
바로 이 때문에 고밀도 10G 스위칭에서 SFP+가 XFP를 이겼고, 100G 모듈이 40G 모듈보다 더 뜨거운 것입니다.
모듈 메모리 속 위치
SFF-8636(QSFP+/QSFP28): 자세한 내용은 SFF-8636 참고.
| 바이트 | 필드 | 의미 |
|---|---|---|
| 129(상위 페이지 00h) | Extended Identifier, 비트 3 / 2 | Tx/Rx의 CDR 탑재 여부 |
| 98(하위 페이지) | CDR control | 비트 7–4는 레인별 Tx CDR 활성화, 비트 3–0은 레인별 Rx CDR 활성화 |
| 5(하위 페이지) | LOL flags | 비트 7–4는 레인별 Tx 동기 손실, 비트 3–0은 레인별 Rx 동기 손실(LOL) |
| 194(상위 페이지 00h) | Options | CDR 온/오프 제어와 LOL 플래그 구현 여부 |
CMIS(QSFP-DD, OSFP, QSFP112): 페이지 01h가 Tx/Rx CDR 지원 여부와 바이패스 제어 가능 여부를 알리고, 페이지 10h에 레인별 Tx/Rx CDR 활성화(바이패스) 제어가 있으며, 필요한 CDR이 락을 걸지 못하면 데이터 경로 상태 머신이 activated 상태에 도달하지 못합니다(CMIS 문제).
SFF-8472(SFP/SFP+/SFP28): 표준화된 CDR 제어가 없으며, 모듈의 CDR(있는 경우)은 내부적으로 관리됩니다. 호스트에서 볼 수 있는 관련 메커니즘은 속도 선택이며, 수신기 대역폭을 속도 그룹 사이에서 전환합니다.
실무에서 중요한 이유
- 다중 속도 모듈. CDR은 특정 속도 범위에 락을 겁니다. 10G로 쓰는 25G 모듈이나 4×10G로 분기한 100G QSFP28은 더 낮은 속도를 지원하는 CDR이 있어야 하며, 그렇지 않으면 호스트가 이를 바이패스해야 합니다(바이트 98 / CMIS). “25G에서는 되는데 10G에서는 죽는다”는 증상은 대개 이것이 원인입니다.
- 진단 지표로서의 동기 손실. LOL 플래그는 CDR이 클록을 복원하지 못한다는 뜻입니다. 신호 열화가 너무 심하거나, 속도가 맞지 않거나, 신호가 아예 없는 경우입니다. 모듈을 의심하기 전에 Rx 광출력과 속도 설정부터 확인하십시오(DDM 수치).
- 전력과 지연. 리타이머 하나마다 전력이 듭니다(25G에서 수십~수백 mW, PAM4 DSP에서는 수 W). 지연도 늘어납니다. 짧은 DAC 링크와 지연에 민감한 패브릭에서는 CDR을 바이패스한 채로 운용하는 경우가 많습니다.
- 코딩 일관성. QSFP28을 재코딩할 때는 CDR 탑재 비트(바이트 129)가 실제 하드웨어와 일치해야 합니다. CDR이 탑재되어 있다고 믿는 호스트는, 없거나 다른 CDR이 감당하지 못하는 속도에서도 CDR을 켜둔 채로 둘 수 있습니다. QSFP 계열 하드웨어 사양 참고.
CodingBox에서
EEPROM editor는 SFF-8636 또는 CMIS에 따라 이 필드들(CDR present, CDR control, LOL flags, Options)에 마우스를 올리면 이름을 보여주므로, 모듈의 CDR 설정을 읽고 레인이 동기를 잃었는지 확인하며, 식별 정보를 코딩할 때 CDR 비트를 하드웨어와 일치시킬 수 있습니다.
“25G에서는 링크되는데 10G에서는 죽는다” 등 속도 락 증상은 속도, 레이트, 모드 문제에서 다룹니다.
드라이버, TIA, 컨트롤러 사이에서 CDR이 차지하는 위치와, PAM4 모듈이 이퀄라이제이션과 기어박스 기능을 갖춘 DSP로 이를 흡수하는 방식: 모듈 전자 회로, 변조와 DSP.
어떤 호스트 인터페이스가 리타이밍된 모듈을 요구하고(XFI, CAUI-4 C2M, PAM4 AUI) 어떤 인터페이스가 선형 모듈을 허용하는지(SFI, LPO): XGMII, XAUI, AUI 계열.