El conmutador STC104 , también conocido como conmutador C104 en sus primeras fases, es un chip de enrutamiento de paquetes asíncrono diseñado para construir redes de comunicación punto a punto de alto rendimiento. Fue desarrollado por INMOS en la década de 1990 y fue el primer ejemplo de un chip de enrutamiento de paquetes de producción de propósito general. También fue el primer chip de enrutamiento en implementar el enrutamiento de túnel , desacoplar el tamaño del paquete del protocolo de control de flujo e implementar el enrutamiento aleatorio de intervalos y de dos fases. [ 1 ] [ 2 ]
El STC104 cuenta con 32 enlaces de comunicación bidireccionales, denominados DS-Links, que operan a 100 Mbit/s cada uno . Estos enlaces están conectados mediante una matriz de conmutación sin bloqueo que permite la transmisión simultánea de paquetes entre todos los enlaces de entrada y salida.
Traspuesta
El STC104 utiliza la conmutación de túnel para reducir la latencia y el requisito de almacenamiento en búfer por enlace. La conmutación de túnel funciona dividiendo los paquetes en fragmentos de tamaño fijo (llamados flits ) para su transmisión, lo que permite que el paquete se procese en paralelo en la red. El primer flit de cabecera abre una ruta (o circuito ) a través de cada conmutador de la red, lo que permite que los flits subsiguientes no experimenten retardo de conmutación. El último flit cierra la ruta. [ 3 ]
Dado que el flit de cabecera puede procesarse independientemente de los flits subsiguientes, la latencia del paquete es independiente de su tamaño. Por consiguiente, la cantidad de búfer que proporcionan los enlaces también puede elegirse independientemente del tamaño del paquete. Además, el requisito total de búfer es pequeño, ya que, por lo general, solo se necesita almacenar un número reducido de flits para cada enlace. Esto contrasta con la conmutación de almacenamiento y reenvío , donde se debe almacenar en búfer un paquete completo en cada extremo del enlace.
Enrutamiento
Los mensajes se enrutan en redes de C104 mediante enrutamiento por intervalos. [ 4 ] En una red donde cada destino tiene un número único, el enrutamiento por intervalos asocia rangos de destinos contiguos y no superpuestos con cada enlace de salida. Se elige un enlace de salida para un paquete comparando el destino (contenido en la cabecera del paquete) con cada intervalo y seleccionando el que contiene dicho destino. [ 5 ] Las ventajas del enrutamiento por intervalos son que es suficiente para proporcionar enrutamiento determinista en una variedad de topologías de red y que puede implementarse simplemente con una búsqueda basada en tablas, por lo que ofrece decisiones de enrutamiento con baja latencia. El enrutamiento por intervalos puede utilizarse para implementar estrategias de enrutamiento eficientes para muchas clases de topologías de red regulares . [ 6 ]
En algunas redes, varios enlaces se conectarán al mismo STC104 o punto final del procesador, o a un conjunto de dispositivos equivalentes. En esta circunstancia, el STC104 proporciona un mecanismo de enrutamiento adaptativo agrupado , donde varios conjuntos de enlaces pueden compartir el mismo intervalo y se elige un enlace de forma adaptativa dentro de un conjunto en función de su disponibilidad. [ 7 ] Este mecanismo aprovecha eficientemente el ancho de banda disponible del enlace, asegurando que un paquete no espere por un enlace mientras haya otro equivalente disponible.
Una capacidad adicional del enrutamiento por intervalos es la de dividir la red en subredes independientes. Esto puede utilizarse para evitar bloqueos o para separar el tráfico de alta prioridad y permitir que circule sin contención.
Eliminación de encabezado
Para admitir el enrutamiento en redes jerárquicas, como las redes mariposa multietapa o Clos , el STC104 proporciona un mecanismo para la eliminación de encabezados. Cada enlace de salida conectado al siguiente nivel de la jerarquía puede programarse para descartar el encabezado, de modo que el paquete se enrute posteriormente mediante el nuevo encabezado, que precede inmediatamente al eliminado. [ 8 ]
La eliminación de encabezados también puede utilizarse para implementar el enrutamiento aleatorio de dos fases. Este método previene la contención de la red y funciona enrutando los paquetes a un nodo intermedio elegido aleatoriamente, antes de enrutarlos al destino. [ 9 ] El efecto es reducir todo el tráfico a un caso promedio en el peor de los casos, con latencia y ancho de banda predecibles. El enrutamiento aleatorio de dos fases se implementa mediante el STC104 configurando enlaces donde el tráfico ingresa a la red para anteponer un encabezado con un destino aleatorio. El destino es otro dispositivo STC104, que reconoce el encabezado y lo descarta antes de enrutarlo a su destino real.
Dado que el enrutamiento aleatorio de mensajes a través de un destino intermedio puede crear dependencias cíclicas entre diferentes paquetes, puede producirse un bloqueo . Sin embargo, este bloqueo puede evitarse dividiendo la red en dos componentes: uno para la fase de aleatorización y otro para la fase de destino. [ 10 ]
Topologías de red
El STC104 se puede utilizar para construir una variedad de topologías de red, incluyendo cuadrículas y toros multidimensionales , hipercubos y redes Clos (y el árbol Fat estrechamente relacionado ). [ 11 ]
Enlaces DS
Los enlaces STC104 se denominan enlaces DS. Un único enlace DS es una conexión unidireccional, asíncrona y controlada por flujo que opera en serie, con un ancho de banda de hasta 100 Mbit/s. [ 12 ]
Físicamente, un DS-Link se implementa con dos cables: un cable de datos que transporta la señal y una señal de sincronización que cambia solo cuando los datos no cambian. La señal de sincronización permite que el receptor recupere la señal de reloj del transmisor y se sincronice con ella. Esto permite que el transmisor y el receptor mantengan sus propios relojes con frecuencia y fase potencialmente variables.
Un enlace DS-Link implementa la transferencia de datos a través de los cables mediante un protocolo de token. Un token puede transportar un byte de datos o un mensaje de control, como control de flujo, fin de paquete o fin de mensaje . Un bit distingue el tipo de token y se utiliza una paridad adicional para la detección de errores. Por lo tanto, un byte se codifica en 10 bits y un token de control en 4 bits.
Cada enlace DS dispone de un búfer con capacidad para almacenar ocho tokens. Para evitar la recepción de tokens cuando el búfer está lleno, se utiliza un mecanismo de control de flujo a nivel de token . Este mecanismo envía automáticamente tokens de control al remitente cuando hay espacio disponible en el búfer.
Microarquitectura
El STC104 puede clasificarse como un procesador MIMD de propósito especial con control distribuido. [ 1 ] Los componentes principales son 32 segmentos de enlace conectados a la matriz de conmutación y lógica para servicios globales como la inicialización y el reinicio. Cada segmento de enlace proporciona una entrada y una salida con un par de enlaces DS y lógica adicional para implementar la funcionalidad de enrutamiento y proporcionar almacenamiento en búfer. Los segmentos de enlace operan de forma concurrente e independiente, y su estado está determinado únicamente por sus parámetros de configuración y los datos que fluyen a través de ellos.
Implementación física
El STC104 fue diseñado y fabricado con un proceso CMOS de 1,0 micra (SGS-Thomson HCMOS4) con tres capas metálicas para el enrutamiento. El chip tenía un área de aproximadamente 204,6 mm² , 1,875 millones de transistores y disipaba hasta 5 W de potencia, operando a 50 MHz . [ 1 ]
Notas
- 1 2 3 Thompson 1994 .
- ↑ Mayo de 1993 .
- ↑ Mayo de 1993 , Capítulo 3.
- ↑ Van Leeuwen 1987 .
- ↑ Mayo de 1993 , Sección 3.6.3.
- ↑ Jones 1997 , Sección 3.4.
- ↑ Mayo de 1993 , Sección 3.6.5.
- ↑ Mayo de 1993 , Sección 3.6.2.
- ↑ Valiant 1982 .
- ↑ Mayo de 1993 , 1.6.1.
- ↑ Jones 1997 .
- ↑ Mayo de 1993 , Capítulo 3, Capítulo 4.
Referencias
- Thompson, P.; Lewis, J. (1994). "El chip de enrutamiento de paquetes STC104" . VLSI Design . 2 (4): 305– 314. doi : 10.1155/1995/92096 .
- May, MD; Thompson, PW; Welch, P. h., eds. (1993). Redes, enrutadores y transputadores: función, rendimiento y aplicaciones . INMOS Limited. IOS Press.
- Jones, NJ; Davies, MA; Wright, CJ (1997). Manual del diseñador de redes . IOS Press.
- Datos técnicos del conmutador de paquetes asíncrono INMOS STC104 (Informe técnico). SGS-Thompson Microelectronics. Junio de 1996.
- Van Leeuwen, Jan; Tan, Richard B. (1987). "Enrutamiento por intervalos" . The Computer Journal . 30 (4): 298– 307. doi : 10.1093/comjnl/30.4.298 .
- Valiant, Leslie G. (1982). "Un esquema para la comunicación paralela rápida". SIAM Journal on Computing . 11 (2): 350– 361. doi : 10.1137/0211027 .
Véase también
Enlaces externos
- Redes, enrutadores y transcomputadores: funcionamiento, rendimiento y aplicaciones
- Datos de ingeniería del conmutador de paquetes asíncrono STC104 de SGS-Thompson Microelectronics
- Página de Transputers de David May
- Control de flujo (datos)
- Interruptores
- Enrutamiento