CDR — khôi phục xung nhịp và dữ liệu
Một liên kết quang nối tiếp không mang xung nhịp riêng: bộ thu phải khôi phục xung nhịp từ chính luồng dữ liệu rồi lấy mẫu lại các bit (“retime”) theo xung nhịp đó. Mạch thực hiện việc này là CDR (khôi phục xung nhịp và dữ liệu). Vị trí đặt CDR — trong host hay bên trong module — là một trong những khác biệt mang tính quyết định giữa các form factor, và các bit điều khiển của nó là một phần của bộ nhớ mà CodingBox đọc và mã hóa.
CDR làm những gì
- Trích xuất xung nhịp từ các chuyển mức bit đến, bằng một vòng khóa pha (PLL).
- Retime dữ liệu — lấy mẫu lại từng bit tại cạnh xung nhịp đã khôi phục, nhờ vậy nhiễu định thời (jitter) tích lũy trên đường truyền bị loại bỏ.
- Tái tạo các cạnh sạch cho tầng tiếp theo (driver laser ở phía Tx, SerDes của host ở phía Rx).
Vì vậy CDR đóng vai trò một điểm đặt lại jitter. Mọi liên kết đều có một quỹ jitter được chia sẻ giữa đường mạch PCB của host, đầu nối và module; một retimer trong module cho phép phía host tiêu quỹ jitter của mình một cách thoải mái hơn.
Phía host hay phía module
| Form factor | Vị trí CDR | Hệ quả |
|---|---|---|
| XFP | trong module (giao diện XFI) | host đơn giản, module không phụ thuộc giao thức; module lớn hơn, nóng hơn |
| SFP+ | trên host (giao diện SFI) | module nhỏ, mát, rẻ; host cần CDR/EDC; có thể dùng module tuyến tính (LRM) |
| SFP28 | thường trong module | quỹ jitter ở 25G quá chặt nếu chỉ dựa vào host |
| QSFP+ 40G | thường không có trong module | host retime 4×10G |
| QSFP28 100G | CDR Tx và Rx trong module (điển hình) | điều khiển bật/tắt theo từng làn; quảng bá các bit CDR-present |
| Module PAM4 (QSFP56 / QSFP-DD / OSFP) | DSP — một CDR có cân bằng và nhận biết FEC | công suất cao; LPO loại bỏ nó trở lại |
Đây chính xác là lý do SFP+ vượt qua XFP trong chuyển mạch 10G mật độ cao, và lý do module 100G chạy nóng hơn module 40G.
Vị trí trong bộ nhớ module
SFF-8636 (QSFP+/QSFP28) — xem SFF-8636:
| Byte | Trường | Ý nghĩa |
|---|---|---|
| 129 (trang trên 00h) | Extended Identifier, bit 3 / 2 | CDR present ở Tx / ở Rx |
| 98 (trang dưới) | CDR control | bit 7–4 bật CDR Tx theo từng làn, bit 3–0 bật CDR Rx theo từng làn |
| 5 (trang dưới) | Cờ LOL | bit 7–4 mất khóa (loss of lock) của Tx theo từng làn, bit 3–0 LOL của Rx theo từng làn |
| 194 (trang trên 00h) | Options | có hay không việc triển khai điều khiển bật/tắt CDR và các cờ LOL |
CMIS (QSFP-DD, OSFP, QSFP112) — Page 01h quảng bá khả năng hỗ trợ CDR Tx/Rx và liệu bypass có điều khiển được hay không; Page 10h chứa các điều khiển bật (bypass) CDR Tx/Rx theo từng làn, và máy trạng thái luồng dữ liệu sẽ không đạt tới trạng thái activated nếu một CDR bắt buộc không khóa được (Sự cố CMIS).
SFF-8472 (SFP/SFP+/SFP28) — không có điều khiển CDR theo tiêu chuẩn; CDR của module (nếu có) được quản lý nội bộ. Cơ chế liên quan mà host nhìn thấy được là rate select, chuyển đổi băng thông bộ thu giữa các nhóm tốc độ.
Vì sao điều này quan trọng trong thực tế
- Module đa tốc độ. Một CDR khóa vào một dải tốc độ. Một module 25G dùng ở tốc độ 10G, hoặc một QSFP28 100G tách breakout thành 4×10G, phải có một CDR hỗ trợ được tốc độ thấp hơn — hoặc host phải bypass nó (byte 98 / CMIS). “Chạy được ở 25G, chết ở 10G” thường là do nguyên nhân này.
- Mất khóa như một chỉ báo chẩn đoán. Cờ LOL nghĩa là CDR không khôi phục được xung nhịp: tín hiệu suy giảm quá nhiều, sai tốc độ, hoặc không có tín hiệu — hãy kiểm tra công suất Rx và các thiết lập tốc độ trước khi nghi ngờ module (Các mức DDM).
- Công suất và độ trễ. Mỗi retimer tiêu tốn công suất (hàng chục đến hàng trăm mW ở 25G; hàng watt đối với DSP PAM4) và làm tăng độ trễ. Các liên kết DAC ngắn và các fabric nhạy cảm với độ trễ thường chạy với CDR ở chế độ bypass.
- Tính nhất quán khi mã hóa. Khi mã hóa lại một QSFP28, các bit CDR-present (byte 129) phải khớp với phần cứng: một host tin rằng CDR đang có mặt có thể để chúng ở trạng thái bật tại một tốc độ mà CDR bị thiếu hoặc khác loại không xử lý được. Xem Thông số phần cứng họ QSFP.
Trong CodingBox
EEPROM editor nêu tên các trường này khi di chuột tới — CDR present, CDR control, LOL flags, Options — theo SFF-8636 hoặc CMIS, nhờ vậy bạn có thể đọc cấu hình CDR của một module, xem một làn có bị mất khóa hay không, và giữ các bit CDR nhất quán với phần cứng khi mã hóa thông tin nhận dạng.
“Chạy được ở 25G, chết ở 10G” và các triệu chứng khóa tốc độ khác được phân tích trong Sự cố tốc độ, rate & mode.
Vị trí của CDR giữa driver, TIA và controller, và cách module PAM4 hợp nhất nó vào một DSP kèm cân bằng và gearbox: Điện tử của module, Điều chế & DSP.
Những giao diện host nào kỳ vọng một module đã retime (XFI, CAUI-4 C2M, các AUI PAM4) và những giao diện nào chấp nhận module tuyến tính (SFI, LPO): Họ giao diện XGMII, XAUI và AUI.