CodingBox Документация

CDR — восстановление тактов и данных

Последовательная оптическая линия не несёт отдельного тактового сигнала: приёмник должен восстановить такт из самого потока данных и затем пересэмплировать («ретаймить») биты по нему. Схема, которая это делает, — CDR (clock and data recovery). Где стоит CDR — в хосте или внутри модуля — одно из определяющих различий форм-факторов, а его биты управления входят в память, которую CodingBox читает и кодирует.

Что делает CDR

  1. Извлекает такт из фронтов входящих бит с помощью петли ФАПЧ.
  2. Ретаймит данные — пересэмплирует каждый бит по фронту восстановленного такта, убирая накопленный по пути временной шум (джиттер).
  3. Регенерирует чистые фронты к следующей ступени (драйвер лазера на стороне Tx, SerDes хоста на стороне Rx).

Таким образом CDR — точка сброса джиттера. У каждой линии есть бюджет джиттера, разделяемый между дорожкой платы хоста, разъёмом и модулем; ретаймер в модуле позволяет хосту тратить свою долю свободнее.

На хосте или в модуле

Форм-факторГде CDRСледствие
XFPв модуле (интерфейс XFI)простой хост, протоколонезависимый модуль; модуль крупнее и горячее
SFP+на хосте (интерфейс SFI)маленький, холодный, дешёвый модуль; хосту нужны CDR/EDC; возможны linear-модули (LRM)
SFP28обычно в модулебюджет джиттера 25G слишком тесен для хоста в одиночку
QSFP+ 40Gв модуле часто нетхост ретаймит 4×10G
QSFP28 100GCDR Tx и Rx в модуле (типично)поканальное включение/выключение; объявляются биты CDR present
Модули PAM4 (QSFP56 / QSFP-DD / OSFP)DSP — CDR с эквализацией и знанием о FECвысокая мощность; LPO снова его убирает

Именно поэтому SFP+ обошёл XFP в плотной коммутации 10G, а модули 100G горячее, чем 40G.

Где это в памяти модуля

SFF-8636 (QSFP+/QSFP28) — см. SFF-8636:

БайтПолеСмысл
129 (верхняя страница 00h)Extended Identifier, биты 3 / 2CDR present в Tx / в Rx
98 (нижняя страница)CDR controlбиты 7–4 включают Tx CDR по каналам, биты 3–0 — Rx CDR по каналам
5 (нижняя страница)флаги LOLбиты 7–4 Tx loss of lock по каналам, биты 3–0 Rx LOL по каналам
194 (верхняя страница 00h)Optionsреализованы ли управление CDR и флаги LOL

CMIS (QSFP-DD, OSFP, QSFP112) — Page 01h объявляет поддержку Tx/Rx CDR и возможность управлять bypass; на Page 10h — поканальные включение/обход Tx/Rx CDR, а автомат состояний data-path не дойдёт до activated, если требуемый CDR не захватится (Проблемы CMIS).

SFF-8472 (SFP/SFP+/SFP28) — стандартного управления CDR нет; CDR модуля (если есть) управляется внутренне. Родственный видимый хосту механизм — выбор скорости, переключающий полосу приёмника между группами скоростей.

Почему это важно на практике

  • Многоскоростные модули. CDR захватывается в диапазоне скоростей. Модуль 25G на 10G или 100G QSFP28 в breakout 4×10G должны иметь CDR с поддержкой низкой скорости — либо хост должен его обойти (байт 98 / CMIS). «Работает на 25G, мёртв на 10G» — обычно это.
  • Loss of lock как диагностика. Флаги LOL означают, что CDR не может восстановить такт: сигнал слишком деградировал, неверная скорость или сигнала нет — проверьте мощность Rx и настройки скорости, прежде чем подозревать модуль (уровни DDM).
  • Мощность и задержка. Каждый ретаймер стоит мощности (десятки–сотни мВт на 25G; ватты для DSP PAM4) и добавляет задержку. Короткие DAC и чувствительные к задержке фабрики часто работают с обходом CDR.
  • Согласованность при кодировании. При перекодировке QSFP28 биты CDR present (байт 129) должны соответствовать железу: хост, считающий, что CDR есть, может оставить их включёнными на скорости, которую отсутствующий/другой CDR не потянет. См. Аппаратные спецификации семейства QSFP.

В CodingBox

Редактор EEPROM подписывает эти поля при наведении — CDR present, CDR control, флаги LOL, Options — по SFF-8636 или CMIS, так что можно прочитать конфигурацию CDR модуля, увидеть потерю захвата на канале и сохранить биты CDR согласованными с железом при кодировании идентификации.

«Линкуется на 25G, мёртв на 10G» и другие симптомы захвата скорости разобраны в Проблемах скорости, режимов и breakout.