SerDes
Serializer /Deserializer ( SerDes ) to para bloków funkcjonalnych powszechnie używanych w szybkiej komunikacji w celu skompensowania ograniczonego wejścia/wyjścia. Bloki te konwertują dane między danymi szeregowymi a interfejsami równoległymi w każdym kierunku. Termin „SerDes” ogólnie odnosi się do interfejsów używanych w różnych technologiach i aplikacjach. Podstawowym zastosowaniem SerDes jest zapewnienie transmisji danych przez pojedynczą linię lub parę różnicową w celu zminimalizowania liczby pinów we/wy i połączeń.
Funkcja ogólna
Podstawowa funkcja SerDes składa się z dwóch bloków funkcjonalnych: bloku Parallel In Serial Out (PISO) (aka konwertera równoległego na szeregowy) i bloku Serial In Parallel Out (SIPO) (znanego również jako konwerter szeregowy na równoległy). Istnieją 4 różne architektury SerDes: (1) SerDes z zegarem równoległym, (2) SerDes z wbudowanym zegarem, (3) SerDes 8b/10b, (4) SerDes z przeplotem bitowym.
Blok PISO (Parallel Input, Serial Output) zazwyczaj ma równoległe wejście zegarowe, zestaw linii wejściowych danych i zatrzaski danych wejściowych. Może wykorzystywać wewnętrzną lub zewnętrzną pętlę synchronizacji fazowej (PLL) do zwielokrotnienia przychodzącego zegara równoległego do częstotliwości szeregowej. Najprostsza forma PISO ma pojedynczy rejestr przesuwny , który odbiera dane równoległe raz na zegar równoległy i przesuwa je z wyższą częstotliwością zegara szeregowego. Implementacje mogą również wykorzystywać podwójnie buforowany, aby uniknąć metastabilności podczas przesyłania danych między domenami zegara.
Blok SIPO (Serial Input, Parallel Output) zazwyczaj ma wyjście zegarowe odbioru, zestaw linii wyjściowych danych i zatrzaski danych wyjściowych. Zegar odbiorczy mógł zostać odzyskany z danych za pomocą odzyskiwania zegara szeregowego . Jednak SerDes, które nie przesyłają zegara, używają zegara odniesienia do zablokowania PLL na prawidłowej częstotliwości Tx, unikając niskich częstotliwości harmonicznych obecnych w strumieniu danych . Blok SIPO następnie dzieli nadchodzący zegar w dół do szybkości równoległej. Implementacje zazwyczaj mają dwa rejestry połączone jako podwójny bufor. Jeden rejestr służy do taktowania w strumieniu szeregowym, a drugi służy do przechowywania danych dla wolniejszej, równoległej strony.
Niektóre typy SerDes obejmują bloki kodowania/dekodowania. Celem tego kodowania/dekodowania jest zazwyczaj umieszczenie co najmniej statystycznych granic szybkości przejść sygnału, aby umożliwić łatwiejsze odzyskiwanie zegara w odbiorniku, zapewnić kadrowanie i zapewnić równowagę DC .
Synchroniczne taktowanie źródła
Zegar równoległy SerDes jest zwykle używany do serializacji wejścia magistrali równoległej wraz z adresem danych i sygnałami sterującymi. Serializowany strumień jest wysyłany wraz z zegarem odniesienia. jittera zegara w serializatorze wynosi 5–10 ps rms.
Wbudowane taktowanie
Wbudowany zegar SerDes serializuje dane i zegar w jeden strumień. Najpierw przesyłany jest jeden cykl sygnału zegarowego, po którym następuje strumień bitów danych; tworzy to okresowe zbocze narastające na początku strumienia bitów danych. Ponieważ zegar jest wyraźnie osadzony i można go odzyskać ze strumienia bitów, tolerancja jittera zegara serializatora (nadajnika) jest złagodzona do 80–120 ps rms, podczas gdy rozbieżność zegara odniesienia w deserializatorze może wynosić ± 50 000 ppm (tj. 5%) .
Kodowanie danych
8b/10b SerDes odwzorowuje każdy bajt danych na 10-bitowy kod przed serializacją danych. Deserializator używa zegara odniesienia do monitorowania odzyskanego zegara ze strumienia bitów. Ponieważ informacje o zegarze są syntetyzowane w strumieniu bitów danych, zamiast jawnie je osadzać, tolerancja jittera zegara serializatora (nadajnika) wynosi 5–10 ps rms, a różnica zegara odniesienia w deserializatorze wynosi ± 100 ppm.
Częstym schematem kodowania używanym w SerDes jest kodowanie 8b/10b . Obsługuje to balans DC, zapewnia kadrowanie i gwarantuje częste przejścia. Gwarantowane przejścia umożliwiają odbiornikowi wyodrębnienie wbudowanego zegara. Kody kontrolne umożliwiają tworzenie ramek, zwykle na początku pakietu. Typowe równoległe interfejsy boczne SerDes 8b/10b mają jedną linię zegara, jedną linię sterowania i 8 linii danych.
Takie bloki serializer-plus-enkoder 8b/10b i deserializer-plus-dekoder są zdefiniowane w specyfikacji Gigabit Ethernet .
Innym powszechnym schematem kodowania używanym w SerDes jest kodowanie 64b/66b . Ten schemat statystycznie zapewnia równowagę prądu stałego i przejścia dzięki zastosowaniu skramblera. Ramkowanie jest dostarczane przez deterministyczne przejścia dodanych bitów kadrowania.
Takie bloki serializer-plus-64b/66b koder i deserializator-plus-dekoder są zdefiniowane w specyfikacji 10 Gigabit Ethernet . Strona nadawcza zawiera koder 64b/66b, szyfrator i przekładnię, która przetwarza sygnał 66b na interfejs 16-bitowy. Następnie inny serializator konwertuje ten 16-bitowy interfejs na sygnał w pełni szeregowy.
SerDes z przeplotem bitowym
SerDes z przeplotem bitowym multipleksuje kilka wolniejszych strumieni danych szeregowych w szybsze strumienie szeregowe, a odbiornik demultipleksuje szybsze strumienie bitowe z powrotem do wolniejszych strumieni.
Standaryzacja SerDes
Forum Optical Internetworking Forum (OIF) opublikowało umowy dotyczące interoperacyjności (IA) Common Electrical I/O (CEI), które zdefiniowały sześć generacji interfejsu elektrycznego SerDes, na 3.125, 6, 10, 28, 56 i 112 Gb/ S. OIF ogłosił nowe projekty na 224 Gb/s. OIF opublikował również trzy wcześniejsze generacje interfejsów elektrycznych. Te IA zostały przyjęte lub dostosowane lub wpłynęły na szybkie interfejsy elektryczne zdefiniowane przez IEEE 802.3 , Infiniband , RapidIO , Fibre Channel i wiele innych organizacji.
Zobacz też
- Rejestr przesuwny - Służy do tworzenia SerDes
- Podwarstwa kodowania fizycznego
- 8b/10b lista popularnych protokołów, które używają SerDes zakodowanych w standardzie 8b/10b
- Interfejs SerDes Framer
- Wielogigabitowy transceiver
- Architektura SerDes autorstwa Dave'a Lewisa, National Semiconductor Corporation
- Specyfikacja Ethernet, w tym SerDes w połączeniu z kodowaniem/dekodowaniem 8B/10B dla GE i kodowaniem/dekodowaniem 64B/66B dla 10GE