CDR——時鐘與數據恢復
串行光鏈路不攜帶獨立的時鐘:接收端必須直接從數據流本身恢復出時鐘,再依據該時鐘對位元重新採樣(即「retime」)。完成這一工作的電路就是 CDR(時鐘數據恢復)。CDR 位於主機側還是模組內部,是不同封裝形式之間的一項根本區別,其控制位也是 CodingBox 讀取和編碼的記憶體內容的一部分。
CDR 的作用
- 提取時鐘:通過鎖相環從輸入的位元跳變中提取時鐘。
- 重新定時:在恢復出的時鐘邊沿對每個位元重新採樣,從而消除傳輸途中累積的定時噪聲(抖動,jitter)。
- 再生:向下一級(Tx 側的激光驅動器、Rx 側的主機 SerDes)輸出乾淨的邊沿信號。
因此,CDR 相當於一個抖動復位點。每條鏈路的抖動預算由主機 PCB 走線、連接器和模組共同分攤;模組內置 retimer 後,主機側就可以更寬鬆地使用自己的那部分預算。
主機側還是模組側
| 封裝形式 | CDR 位置 | 影響 |
|---|---|---|
| XFP | 在模組內(XFI 介面) | 主機簡單,模組與協議無關;模組更大更熱 |
| SFP+ | 在主機上(SFI 介面) | 模組小、涼、便宜;主機需要 CDR/EDC;可以做成線性(LRM)模組 |
| SFP28 | 通常在模組內 | 25G 的抖動預算太緊,僅靠主機不夠 |
| QSFP+ 40G | 模組內通常沒有 | 由主機對 4×10G 重新定時 |
| QSFP28 100G | 典型情況下 Tx 和 Rx 的 CDR 都在模組內 | 支援逐通道開關控制;通過 CDR-present 位對外聲明 |
| PAM4 模組(QSFP56 / QSFP-DD / OSFP) | DSP:具備均衡和 FEC 感知能力的 CDR | 功耗高;LPO 又將其去掉 |
這正是 SFP+ 在高密度 10G 交換場景中勝過 XFP 的原因,也是 100G 模組比 40G 模組更熱的原因。
在模組記憶體中的位置
SFF-8636(QSFP+/QSFP28),參見 SFF-8636:
| 位元組 | 欄位 | 含義 |
|---|---|---|
| 129(upper page 00h) | Extended Identifier,bit 3 / 2 | Tx / Rx 是否存在 CDR(CDR present) |
| 98(lower page) | CDR control | bit 7–4 逐通道使能 Tx CDR,bit 3–0 逐通道使能 Rx CDR |
| 5(lower page) | LOL flags | bit 7–4 為每通道 Tx 失鎖(loss of lock),bit 3–0 為每通道 Rx LOL |
| 194(upper page 00h) | Options | 是否實現了 CDR 開關控制和 LOL 旗標 |
CMIS(QSFP-DD、OSFP、QSFP112):Page 01h 聲明 Tx/Rx 是否支援 CDR,以及 bypass 是否可控;Page 10h 儲存逐通道的 Tx/Rx CDR 使能(bypass)控制位,如果所需的 CDR 無法鎖定,數據通路狀態機就無法進入 activated 狀態(參見 CMIS 問題排查)。
SFF-8472(SFP/SFP+/SFP28):沒有標準化的 CDR 控制;模組的 CDR(如果有)由內部自行管理。與之相關、主機側可見的機制是 速率選擇,用於在不同速率組之間切換接收器頻寬。
實際影響
- 多速率模組。 CDR 只能鎖定某個速率範圍。把 25G 模組用在 10G 上,或者把 100G 的 QSFP28 拆分成 4×10G,都要求 CDR 支援較低的速率,否則主機必須將其 bypass (byte 98 / CMIS)。「25G 能跑,10G 就不通」通常就是這個原因。
- 失鎖作為診斷依據。 LOL 旗標表示 CDR 無法恢復時鐘:可能是信號劣化過多、速率設置錯誤,或者根本沒有信號,懷疑模組之前應先檢查 Rx 功率和速率設定(參見 DDM 數值解讀)。
- 功耗與時延。 每顆 retimer 都要消耗功率(25G 下為幾十到幾百 mW,PAM4 DSP 則要幾瓦)並增加時延。短距 DAC 鏈路和對時延敏感的網絡結構常常把 CDR 直接 bypass。
- 編碼一致性。 重新編碼 QSFP28 時,CDR-present 位(byte 129)必須與硬件實際情況一致:如果主機以為 CDR 存在,就可能在缺失或不同的 CDR 無法支援的速率下仍將其保持使能。參見 QSFP 系列硬件規格。
在 CodingBox 中
EEPROM editor 會按 SFF-8636 或 CMIS 的定義,在滑鼠懸停時顯示這些欄位的名稱(CDR present、CDR control、LOL flags、Options),因此你可以讀出模組的 CDR 配置,查看是否有通道失鎖,並在編碼身份資訊時讓 CDR 位與硬件保持一致。
「25G 能連通,10G 卻不行」以及其他速率鎖定相關的症狀,在 速率與模式問題 中有詳細排查方法。
CDR 在驅動器、TIA 和控制器之間處於甚麼位置,以及 PAM4 模組如何將其納入帶均衡和 gearbox 功能的 DSP:參見 模組電子學、調制與 DSP。
哪些主機介面要求模組經過重定時(XFI、CAUI-4 C2M、PAM4 AUI),哪些可以容忍線性模組(SFI、LPO):參見 XGMII、XAUI 與 AUI 家族。