CDR — odzyskiwanie zegara i danych
Szeregowe łącze optyczne nie przenosi osobnego zegara: odbiornik musi odtworzyć zegar z samego strumienia danych, a następnie ponownie próbkować bity względem niego (retiming). Układ, który to robi, nazywa się CDR (odtwarzanie zegara i danych). To, gdzie znajduje się CDR — w hoście czy wewnątrz modułu — jest jedną z cech definiujących różnice między formatami obudów, a jego bity sterujące są częścią pamięci, którą CodingBox odczytuje i koduje.
Co robi CDR
- Wydobywa zegar z przejść bitów w przychodzącym sygnale za pomocą pętli fazowej (PLL).
- Retimuje dane — ponownie próbkuje każdy bit na zboczu odtworzonego zegara, dzięki czemu szum czasowy (jitter) nagromadzony po drodze zostaje usunięty.
- Regeneruje czyste zbocza w kierunku kolejnego stopnia (driver lasera po stronie Tx, SerDes hosta po stronie Rx).
CDR działa zatem jako punkt zerowania jittera. Każde łącze ma budżet jittera dzielony między ścieżkę PCB hosta, złącze i moduł; retimer w module pozwala stronie hosta swobodniej wykorzystywać swoją część budżetu.
Po stronie hosta czy po stronie modułu
| Format obudowy | Umiejscowienie CDR | Skutek |
|---|---|---|
| XFP | w module (interfejs XFI) | prosty host, moduł niezależny od protokołu; większy, cieplejszy moduł |
| SFP+ | na hoście (interfejs SFI) | mały, chłodny, tani moduł; host wymaga CDR/EDC; możliwe moduły liniowe (LRM) |
| SFP28 | zwykle w module | budżet jittera 25G zbyt ciasny dla rozwiązania tylko po stronie hosta |
| QSFP+ 40G | często brak w module | host retimuje 4×10G |
| QSFP28 100G | CDR Tx i Rx w module (typowo) | sterowanie wł./wył. na linię; zgłaszane bity CDR-present |
| Moduły PAM4 (QSFP56 / QSFP-DD / OSFP) | DSP — CDR z korekcją (equalizacją) i obsługą FEC | wysoka moc; LPO ponownie go usuwa |
Dokładnie dlatego SFP+ wyparł XFP w gęstym przełączaniu 10G i dlatego moduły 100G grzeją się bardziej niż moduły 40G.
Gdzie mieszka w pamięci modułu
SFF-8636 (QSFP+/QSFP28) — zobacz SFF-8636:
| Bajt | Pole | Znaczenie |
|---|---|---|
| 129 (strona górna 00h) | Extended Identifier, bity 3 / 2 | CDR present w Tx / w Rx |
| 98 (strona dolna) | CDR control | bity 7–4 włączają CDR Tx na linię, bity 3–0 włączają CDR Rx na linię |
| 5 (strona dolna) | LOL flags | bity 7–4 Tx utrata synchronizacji (loss of lock) na linię, bity 3–0 Rx LOL na linię |
| 194 (strona górna 00h) | Options | czy zaimplementowano sterowanie CDR wł./wył. i flagi LOL |
CMIS (QSFP-DD, OSFP, QSFP112) — strona 01h zgłasza obsługę CDR Tx/Rx oraz to, czy bypass jest sterowalny; strona 10h zawiera sterowanie włączaniem (bypass) CDR Tx/Rx na linię, a maszyna stanów ścieżki danych nie osiągnie stanu activated, jeśli wymagany CDR nie może się zsynchronizować (Problemy z CMIS).
SFF-8472 (SFP/SFP+/SFP28) — brak standardowego sterowania CDR; CDR modułu (jeśli w ogóle występuje) jest zarządzany wewnętrznie. Powiązany mechanizm widoczny dla hosta to wybór przepływności, który przełącza szerokość pasma odbiornika między grupami przepływności.
Dlaczego to ma znaczenie w praktyce
- Moduły wieloprędkościowe (multi-rate). CDR synchronizuje się w określonym zakresie przepływności. Moduł 25G używany przy 10G, albo QSFP28 100G rozbity (breakout) na 4×10G, musi mieć CDR obsługujący niższą przepływność — albo host musi go obejść (bypass) (bajt 98 / CMIS). „Działa przy 25G, martwy przy 10G” to zwykle właśnie to.
- Utrata synchronizacji jako diagnostyka. Flagi LOL oznaczają, że CDR nie może odtworzyć zegara: sygnał zbyt zdegradowany, zła przepływność albo brak sygnału — sprawdź moc Rx i ustawienia przepływności, zanim podejrzewasz moduł (Poziomy DDM).
- Moc i opóźnienie. Każdy retimer kosztuje moc (dziesiątki do setek mW przy 25G; waty dla DSP PAM4) i dodaje opóźnienie. Krótkie łącza DAC i sieci wrażliwe na opóźnienie często pracują z ominiętym (bypass) CDR.
- Spójność kodowania. Przy przekodowywaniu QSFP28 bity CDR-present (bajt 129) muszą odpowiadać sprzętowi: host, który uważa, że CDR-y są obecne, może zostawić je włączone przy przepływności, której brakujący lub inny CDR nie obsłuży. Zobacz Specyfikacje sprzętowe rodziny QSFP.
W CodingBox
EEPROM editor nazywa te pola po najechaniu kursorem — CDR present, CDR control, LOL flags, Options — zgodnie z SFF-8636 lub CMIS, dzięki czemu można odczytać konfigurację CDR modułu, sprawdzić, czy dana linia utraciła synchronizację, i zachować spójność bitów CDR ze sprzętem podczas kodowania danych identyfikacyjnych.
„Działa przy 25G, martwy przy 10G” i inne objawy związane z blokadą przepływności są omówione w Problemy z szybkością, przepływnością i trybem.
Gdzie CDR znajduje się wśród drivera, TIA i kontrolera, oraz jak moduły PAM4 wchłaniają go do DSP z korekcją (equalizacją) i zmianą przełożenia (gearboxing): Elektronika modułu, Modulacja i DSP.
Które interfejsy hosta oczekują modułu z retimingiem (XFI, CAUI-4 C2M, PAM4 AUI), a które tolerują moduł liniowy (SFI, LPO): XGMII, XAUI i rodzina AUI.