El serializador/deserializador ( SerDes ) es un par de bloques de funciones comúnmente utilizados en comunicaciones de alta velocidad para convertir datos entre interfaces seriales y paralelas en ambas direcciones. El término "SerDes" se refiere a las interfaces genéricas utilizadas en diversas tecnologías y aplicaciones. El uso principal de SerDes es proporcionar transferencia de datos de alta velocidad a través de una sola línea o un par diferencial para reducir la cantidad de pines de E/S en un chip y la interconexión entre componentes.
La estructura principal de SerDes se divide en dos bloques funcionales: un bloque convertidor de paralelo a serie (PISO, Parallel In Serial Out ) y un bloque convertidor de serie a paralelo (SIPO, Serial In Parallel Out ). Hay cuatro arquitecturas SerDes diferentes:
Un bloque convertidor de paralelo a serie PISO normalmente tiene una entrada de reloj paralela, un conjunto de líneas de entrada de datos y una entrada de retención de datos. Puede usar un bucle de bloqueo de fase interno o externo (PLL) para multiplicar la señal de reloj paralelo entrante a la frecuencia de reloj de salida en serie. La forma más simple de PISO tiene solo un registro de desplazamiento , que toma datos paralelos con reloj paralelo y los avanza a una velocidad de reloj serial más alta. Las implementaciones también pueden usar almacenamiento en búfer doble de registros para evitar la metaestabilidad al transferir datos entre partes con diferentes frecuencias de reloj.
Los SIPO, la unidad convertidora de serie a paralelo, suelen tener una salida de reloj de entrada, un conjunto de líneas de datos de salida y pestillos de datos de salida. El reloj de recepción se puede recuperar de los datos utilizando el método de recuperación de reloj. Sin embargo, los SerDes que no transmiten señales de reloj usan relojes de referencia para bloquear el PLL a la frecuencia de TX requerida para evitar los armónicos de baja frecuencia presentes en el flujo de datos . El bloque SIPO reduce el reloj entrante para la salida paralela. Las implementaciones suelen tener dos registros conectados como un búfer doble. Un registro se usa para cronometrar el flujo en serie y el otro se usa para almacenar datos en el lado paralelo más lento.
Algunos tipos de SerDes incluyen un bloque de codificación/descodificación. El propósito de dicha codificación y decodificación suele ser cambiar las propiedades estadísticas de la señal transmitida para facilitar la recuperación del reloj en el receptor y mantener la sincronización de cuadros. La codificación también puede proporcionar un equilibrio de CC.
Los SerDes sincronizados en paralelo se utilizan normalmente para serializar un bus de entrada paralelo junto con las señales de dirección y control. El flujo serializado se envía junto con la señal del reloj. Jitter de reloj del orden de 5-10 ps rms.
SerDes con reloj interno serializa los datos y el reloj en un solo flujo. Primero, se transmite un ciclo de reloj y luego el flujo de bits de datos; esto crea un flanco ascendente periódico al comienzo del flujo de bits de datos. Dado que los relojes están integrados y se pueden extraer del flujo de bits, la tolerancia a la fluctuación del serializador (transmisor) es de 80-120 ps rms, mientras que la disparidad del reloj de referencia en el deserializador puede ser de ±50 000 ppm (es decir, 5 %).
SerDes tipo 8b/10b traduce cada byte de datos en un código de 10 bits antes de serializar los datos. El deserializador usa la frecuencia de referencia para controlar los relojes recuperados del flujo de bits. Dado que la información del reloj se generaliza en el flujo de bits de datos y no se integra explícitamente en él, la fluctuación rms del serializador (transmisor) está en el rango de 5-10 ps, y la disparidad de frecuencia de referencia en el deserializador es de aproximadamente ±100 ppm .
El esquema de codificación estándar utilizado en SerDes es la codificación 8b/10b . Esto mantiene el equilibrio DC, asegura el encuadre y garantiza transiciones frecuentes. Las transiciones garantizadas permiten que el receptor extraiga relojes integrados. Los códigos de control permiten el enmarcado, generalmente al comienzo de un paquete. La interfaz típica del lado paralelo SerDes 8b/10b tiene una línea de reloj, una línea de control y 8 líneas de datos.
Dicho serializador, junto con un codificador 8b/10b y un bloque de deserializador y decodificador, se define en la especificación Gigabit Ethernet .
Otro esquema de codificación estándar utilizado con SerDes es la codificación 64b/66b. Este circuito proporciona balance DC estadístico y transiciones codificadoras. El encuadre se entrega a través de transiciones deterministas en bits de encuadre agregados.
Dichos bloques serializador-más-codificador 64b/66b y deserializador-más-decodificador se definen en la especificación de 10 Gigabit Ethernet . La parte transmisora contiene un codificador 64b/66b, un codificador y una caja de cambios que convierte una señal 66b en una interfaz de 16 bits. Otro serializador luego convierte esta interfaz de 16 bits en una señal serial.
SerDes intercalado de bits multiplexa varios flujos de datos en serie lentos en flujos en serie más rápidos, y el receptor demultiplexa los flujos de bits más rápidos en flujos más lentos.
El Optical Internetworking Forum ( OIF ) ha publicado Acuerdos de Interoperabilidad ( IAs ) para Common Electrical I/O , dentro de los cuales se han definido 5 generaciones de interfaces eléctricas SerDes que operan a 3.125, 6, 10, 28 y 56 Gbps. FPMO también anunció nuevos proyectos que operan a 112 Gbps [1] . Además, se han publicado descripciones de tres generaciones anteriores de interfaces eléctricas. Estas convenciones se han adaptado o adoptado en diversos grados, o han influido en las interfaces eléctricas definidas por IEEE 802.3 , InfiniBand , Serial RapidIO , Fibre Channel y muchos otros estándares.