SerDes

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 23 februari 2021; kontroller kräver 2 redigeringar .

Serializer/Deserializer ( SerDes ) är ett par funktionsblock som vanligtvis används i höghastighetskommunikation för att konvertera data mellan seriella och parallella gränssnitt i båda riktningarna. Termen "SerDes" hänvisar till generiska gränssnitt som används i olika teknologier och applikationer. Den primära användningen av SerDes är att tillhandahålla höghastighetsdataöverföring över en enda linje eller differentiellt par för att minska antalet I/O-stift på ett chip och sammankopplingen mellan komponenter.

Allmän funktion

Huvudstrukturen för SerDes är uppdelad i två funktionella block: ett parallell-till-seriell-omvandlarblock (PISO, Parallel In Serial Out ) och ett seriell-till-parallell-omvandlarblock (SIPO, Serial In Parallel Out ). Det finns fyra olika SerDes-arkitekturer:

  1. SerDes med parallell klockning;
  2. SerDes med intern klockning;
  3. 8b/10b SerDes (eller mer komplexa koder);
  4. SerDes med bitinterleaving.

Ett PISO parallell-till-seriell-omvandlarblock har typiskt en parallellklockingång, en uppsättning dataingångslinjer och en datahållingång. Den kan använda en intern eller extern  faslåst slinga (PLL)  för att multiplicera den inkommande parallella klocksignalen till den seriella utgångens klockfrekvens. Den enklaste formen av PISO har bara ett  skiftregister , som tar parallella data med parallell klockning, och flyttar fram det med en högre seriell klockfrekvens. Implementeringar kan också använda registerdubbelbuffring för att undvika metastabilitet vid överföring av data mellan delar med olika klockhastigheter.

SIPOs, seriell-till-parallell-omvandlarenheten, har vanligtvis en ingångsklockutgång, en uppsättning utdatalinjer och utdatalås. Mottagningsklockan kan återställas från data med hjälp av klockåterställningsmetoden. SerDes som inte sänder klocksignaler använder emellertid referensklockor för att låsa PLL till den erforderliga TX-frekvensen för att undvika lågfrekventa övertoner som finns i dataströmmen . SIPO-blocket sänker den inkommande klockan för parallellutgången. Implementeringar har vanligtvis två register anslutna som en dubbel buffert. Ett register används för att klocka serieströmmen, och det andra används för att lagra data på den långsammare, parallella sidan.

Vissa typer av SerDes inkluderar ett kodnings-/avkodningsblock. Syftet med sådan kodning och avkodning är vanligtvis att ändra de statistiska egenskaperna hos den sända signalen för att underlätta klockåterställning vid mottagaren och upprätthålla ramsynkronisering. Kodningen kan också ge DC-balans.

SerDes med parallell klockning

Parallellklockade SerDes används vanligtvis för att serialisera en parallell ingångsbuss tillsammans med adress- och styrsignaler. Den serialiserade strömmen skickas tillsammans med klocksignalen. Klockjitter i storleksordningen 5-10 ps rms.

SerDes med inbyggd klockning

SerDes med intern klockning serialiserar data och klockning till en enda ström. Först sänds en klockcykel och sedan databitströmmen; detta skapar en periodisk stigande flank i början av databitströmmen. Eftersom klockorna är inbäddade och kan extraheras från bitströmmen är jittertoleransen för serialiseraren (sändaren) 80-120 ps rms, medan referensklockskillnaden i deserializern kan vara ±50 000 ppm (dvs. 5%).

8V/10V SerDes

SerDes typ 8b/10b översätter varje byte med data till en 10-bitars kod innan data serialiseras. Deserializern använder referensfrekvensen för att styra de återvunna klockorna från bitströmmen. Eftersom klockinformationen är generaliserad i databitströmmen och inte explicit inbäddad i den, är rms-jitter för serializern (sändaren) i intervallet 5-10 ps, ​​och referensfrekvensskillnaden i deserializern är ca. ±100 ppm .

Standardkodningsschemat som används i SerDes är 8b/10b-kodning . Detta upprätthåller DC-balans, säkerställer inramning och garanterar frekventa övergångar. Garanterade övergångar gör att mottagaren kan extrahera inbyggda klockor. Kontrollkoder tillåter inramning, vanligtvis i början av ett paket. Typiska parallella sidogränssnitt SerDes 8b/10b har en klocklinje, en kontrolllinje och 8 datalinjer.

En sådan serialiserare, tillsammans med en 8b/10b-kodare och ett deserializer-plus-dekoderblock, definieras i Gigabit Ethernet- specifikationen  .

Ett annat standardkodningsschema som används med SerDes är 64b/66b-kodning. Denna krets tillhandahåller statistisk DC-balans och scrambler-övergångar. Inramningen levereras via deterministiska övergångar i adderade inramningsbitar.

Sådana serializer-plus-64b/66b-kodare och deserializer-plus-dekoderblock definieras i  10 Gigabit Ethernet- specifikationen . Den sändande delen innehåller en 64b/66b-kodare, en kodare och en växellåda som omvandlar en 66b-signal till ett 16-bitars gränssnitt. En annan serialiserare omvandlar sedan detta 16-bitars gränssnitt till en seriell signal.

Bit-interleaved SerDes

Bit-interleaved SerDes multiplexerar flera långsamma seriella dataströmmar till snabbare seriella strömmar, och mottagaren demultiplexar de snabbare bitströmmarna tillbaka till långsammare strömmar.

SerDes standardisering

Optical Internetworking Forum ( OIF ) har publicerat Interoperability Agreements ( IAs  ) för Common Electrical I/O , inom vilka 5 generationer har definierats SerDes elektriska gränssnitt som arbetar med 3,125, 6, 10, 28 och 56 Gbps. FPMO tillkännagav också nya projekt med 112 Gbps [1] . Dessutom har beskrivningar av tre tidigare generationer av elektriska gränssnitt publicerats. Dessa konventioner har antingen anpassats eller antagits i varierande grad, eller påverkat de elektriska gränssnitten som definieras av IEEE 802.3 , InfiniBand , Serial RapidIO , Fibre Channel och många andra standarder.   

Anteckningar

  1. Accelererande chiplets med 112G XSR SerDes PHYs Arkiverad 10 december 2019 på Wayback Machine 

Länkar