Articulo de referencia

Interfaz coherente escalable

La Interfaz Coherente Escalable o Interconexión Coherente Escalable ( SCI ) es un estándar de interconexión de alta velocidad para el procesamiento paralelo y el paso de mensaje...

La Interfaz Coherente Escalable o Interconexión Coherente Escalable ( SCI ) es un estándar de interconexión de alta velocidad para el procesamiento paralelo y el paso de mensajes con memoria compartida. Su objetivo era lograr una buena escalabilidad, proporcionar coherencia de memoria en todo el sistema y una interfaz sencilla; es decir, un estándar para reemplazar los buses existentes en sistemas multiprocesador por uno sin limitaciones inherentes de escalabilidad ni rendimiento.

La norma IEEE Std 1596-1992, Norma IEEE para Interfaz Coherente Escalable (SCI), fue aprobada por la junta de normas IEEE el 19 de marzo de 1992. [ 1 ] Tuvo cierto uso durante la década de 1990, pero nunca se generalizó y fue reemplazada por otros sistemas a principios de la década de 2000.

Historia

Poco después del proyecto sucesor de Fastbus (IEEE 960), Futurebus (IEEE 896), en 1987, algunos ingenieros predijeron que ya sería demasiado lento para el mercado de la computación de alto rendimiento cuando se lanzara a principios de la década de 1990. En respuesta, se formó un grupo de estudio "Superbus" en noviembre de 1987. Otro grupo de trabajo de la asociación de estándares del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) se separó para formar un estándar dirigido a este mercado en julio de 1988. [ 2 ] Era esencialmente un subconjunto de características de Futurebus que podían implementarse fácilmente a alta velocidad, junto con pequeñas adiciones para facilitar la conexión a otros sistemas, como VMEbus . La mayoría de los desarrolladores tenían experiencia en buses de computadoras de alta velocidad . Entre los representantes de empresas de la industria informática y la comunidad de investigación se encontraban Amdahl, Apple Computer, BB&N , Hewlett-Packard , CERN, Dolphin Server Technology, Cray Research , Sequent, AT&T, Digital Equipment Corporation, McDonnell Douglas, National Semiconductor, Stanford Linear Accelerator Center, Tektronix, Texas Instruments, Unisys, la Universidad de Oslo y la Universidad de Wisconsin .

La intención original era un estándar único para todos los buses de la computadora. [ 3 ] El grupo de trabajo pronto propuso la idea de utilizar comunicación punto a punto mediante anillos de inserción. Esto evitaba los problemas de capacitancia concentrada, longitud física limitada/velocidad de la luz y reflexiones de stub, además de permitir transacciones paralelas. El uso de anillos de inserción se atribuye a Manolis Katevenis, quien lo sugirió en una de las primeras reuniones del grupo de trabajo. El grupo de trabajo para el desarrollo del estándar estuvo dirigido por David B. Gustavson (presidente) y David V. James (vicepresidente). [ 4 ]

David V. James contribuyó de manera significativa a la redacción de las especificaciones, incluido el código ejecutable en C. El grupo de Stein Gjessing en la Universidad de Oslo utilizó métodos formales para verificar el protocolo de coherencia, y Dolphin Server Technology implementó un chip controlador de nodo que incluía la lógica de coherencia de caché.

Diagrama de bloques de un ejemplo

Diferentes versiones y derivados de SCI fueron implementados por compañías como Dolphin Interconnect Solutions , Convex, Data General AViiON (usando chips de controlador de caché y controlador de enlace de Dolphin), Sequent y Cray Research. Dolphin Interconnect Solutions implementó un derivado de SCI conectado a PCI y PCI-Express que proporciona acceso a memoria compartida no coherente. Esta implementación fue utilizada por Sun Microsystems para sus clústeres de gama alta, Thales Group y varias otras, incluyendo aplicaciones de volumen para paso de mensajes dentro de clústeres HPC e imágenes médicas. SCI se usó frecuentemente para implementar arquitecturas de acceso a memoria no uniforme . También fue utilizado por Sequent Computer Systems como bus de memoria del procesador en sus sistemas NUMA-Q. Numascale desarrolló un derivado para conectarse con HyperTransport coherente .

El estándar

El estándar definía dos niveles de interfaz:

  • El nivel físico que se ocupa de las señales eléctricas, los conectores, las condiciones mecánicas y térmicas.
  • El nivel lógico que describe el espacio de direcciones, los protocolos de transferencia de datos, los mecanismos de coherencia de caché, las primitivas de sincronización, los registros de control y estado, y las funciones de inicialización y recuperación de errores.

Esta estructura permitió adaptar fácilmente los nuevos desarrollos en la tecnología de interfaz física sin necesidad de rediseñarla a nivel lógico.

La escalabilidad para sistemas grandes se logra mediante un modelo de coherencia de caché distribuido basado en directorios . (Otros modelos populares de coherencia de caché se basan en la interceptación (espionaje) de transacciones de memoria en todo el sistema, un esquema que no es muy escalable). En SCI, cada nodo contiene un directorio con un puntero al siguiente nodo en una lista enlazada que comparte una línea de caché específica.

SCI define un espacio de direcciones plano de 64 bits (16 exabytes) donde 16 bits se utilizan para identificar un nodo (65 536 nodos) y 48 bits para la dirección dentro del nodo (256 terabytes). Un nodo puede contener varios procesadores y/o memoria. El estándar SCI define una red de conmutación de paquetes .

Topologías

SCI se puede utilizar para construir sistemas con diferentes tipos de topologías de conmutación, desde conmutación centralizada hasta conmutación totalmente distribuida:

  • Con un conmutador central, cada nodo está conectado al conmutador mediante un anillo (en este caso, un anillo de dos nodos).
  • En los sistemas de conmutación distribuida, cada nodo puede conectarse a un anillo de longitud arbitraria, y todos o algunos de los nodos pueden conectarse a dos o más anillos.

La forma más común de describir estas topologías multidimensionales es mediante n-cubos (o toros) k-arios. La especificación estándar SCI menciona varias de estas topologías como ejemplos.

El toro bidimensional es una combinación de anillos en dos dimensiones. El cambio entre las dos dimensiones requiere una pequeña capacidad de conmutación en el nodo. Esto se puede extender a tres o más dimensiones. El concepto de anillos plegables también se puede aplicar a las topologías de toro para evitar segmentos de conexión largos.

Actas

SCI envía información en paquetes. Cada paquete consta de una secuencia ininterrumpida de símbolos de 16 bits. El símbolo va acompañado de un bit indicador. Una transición del bit indicador de 0 a 1 indica el inicio de un paquete. Una transición de 1 a 0 ocurre 1 (para ecos) o 4 símbolos antes del final del paquete. Un paquete contiene una cabecera con información de comando de dirección y estado, carga útil (desde 0 hasta longitudes de datos opcionales) y un símbolo de verificación CRC. El primer símbolo de la cabecera del paquete contiene la dirección del nodo de destino. Si la dirección no se encuentra dentro del dominio gestionado por el nodo receptor, el paquete se envía a la salida a través de la FIFO de derivación. En caso contrario, el paquete se introduce en una cola de recepción y puede transferirse a un anillo en otra dimensión. Todos los paquetes se marcan al pasar por el depurador (un nodo se establece como depurador cuando se inicializa el anillo). Los paquetes sin una dirección de destino válida se eliminan al pasar por el depurador por segunda vez para evitar que el anillo se llene con paquetes que, de otro modo, circularían indefinidamente.

Coherencia de caché

La coherencia de caché garantiza la consistencia de los datos en sistemas multiprocesador. La forma más simple aplicada en sistemas anteriores se basaba en borrar el contenido de la caché entre cambios de contexto y deshabilitarla para los datos compartidos entre dos o más procesadores. Estos métodos eran viables cuando la diferencia de rendimiento entre la caché y la memoria era menor a un orden de magnitud. Los procesadores modernos con cachés más de dos órdenes de magnitud más rápidas que la memoria principal no alcanzarían un rendimiento óptimo sin métodos más sofisticados para la consistencia de datos. Los sistemas basados ​​en bus utilizan métodos de interceptación ( snooping ) dado que los buses son inherentemente de difusión. Los sistemas modernos con enlaces punto a punto utilizan métodos de difusión con opciones de filtro de snooping para mejorar el rendimiento. Dado que la difusión y la interceptación son inherentemente no escalables, no se utilizan en SCI.

En cambio, SCI utiliza un protocolo de coherencia de caché distribuido basado en directorios con una lista enlazada de nodos que contienen procesadores que comparten una línea de caché específica. Cada nodo contiene un directorio para la memoria principal del nodo con una etiqueta para cada línea de memoria (de la misma longitud que la línea de caché). La etiqueta de memoria contiene un puntero al inicio de la lista enlazada y un código de estado para la línea (tres estados: inicio, nuevo, desaparecido). Asociada a cada nodo también hay una caché para almacenar datos remotos con un directorio que contiene punteros hacia adelante y hacia atrás a los nodos de la lista enlazada que comparten la línea de caché. La etiqueta de la caché tiene siete estados (inválido, solo nuevo, inicio nuevo, solo modificado, inicio modificado, medio válido, cola válida).

El directorio distribuido es escalable. La sobrecarga para la coherencia de caché basada en directorios es un porcentaje constante de la memoria y la caché del nodo. Este porcentaje es del orden del 4 % para la memoria y del 7 % para la caché.

Legado

SCI es un estándar para conectar los diferentes recursos dentro de un sistema informático multiprocesador, y no es tan conocido como, por ejemplo, la familia Ethernet para la conexión de diferentes sistemas. Los distintos fabricantes de sistemas implementaron diferentes variantes de SCI para su infraestructura interna. Estas implementaciones interactúan con mecanismos muy complejos en los procesadores y sistemas de memoria, y cada fabricante debe mantener cierto grado de compatibilidad tanto de hardware como de software.

Gustavson dirigió un grupo llamado Scalable Coherent Interface and Serial Express Users, Developers, and Manufacturers Association y mantuvo un sitio web para la tecnología a partir de 1996. [ 3 ] Se realizó una serie de talleres hasta 1999. Después de la primera edición de 1992, [ 1 ] proyectos posteriores definieron formatos de datos compartidos en 1993, [ 5 ] una versión que utilizaba señalización diferencial de bajo voltaje en 1996, [ 6 ] y una interfaz de memoria conocida como Ramlink más adelante en 1996. [ 7 ] En enero de 1998, se formó la corporación SLDRAM para obtener patentes sobre un intento de definir una nueva interfaz de memoria que estaba relacionada con otro grupo de trabajo llamado SerialExpress o Local Area Memory Port. [ 8 ] [ 9 ] Sin embargo, a principios de 1999 se abandonó el nuevo estándar de memoria. [ 10 ]

En 1999 se publicó una serie de artículos en forma de libro sobre SCI. [ 11 ] En julio de 2000, la Comisión Electrotécnica Internacional (IEC) de la Organización Internacional de Normalización (ISO) publicó una especificación actualizada como ISO/IEC 13961. [ 12 ]

Véase también

Referencias

  1. 1 2 Norma IEEE para interfaz coherente escalable (SCI) . Junta de Normas IEEE. 1992. ISBN 9780738129501.
  2. David B. Gustavson (septiembre de 1991). "The Scalable Coherent Interface and Related Standards Projects" (PDF) . Publicación SLAC 5656. Stanford Linear Accelerator Center . Consultado el 31 de agosto de 2013 .
  3. 1 2 "Scalable Coherent Interface and Serial Express Users, Developers, and Manufacturers Association" . Sitio web del grupo . Consultado el 31 de agosto de 2013 .
  4. "1596 WG - Grupo de trabajo para una interfaz coherente escalable" . Sitio web del grupo de trabajo . Archivado del original el 4 de marzo de 2016. Consultado el 31 de agosto de 2013 .
  5. Norma IEEE para formatos de datos compartidos optimizados para procesadores de interfaz coherente escalable (SCI) . Junta de Normas IEEE. 25 de abril de 1994. ISBN 9780738112091.
  6. Norma IEEE para señales diferenciales de bajo voltaje (LVDS) para interfaz coherente escalable (SCI) . Junta de Normas IEEE. 31 de julio de 1996. ISBN 9780738131368.
  7. Norma EEE para interfaz de memoria de alto ancho de banda basada en tecnología de señalización de interfaz coherente escalable (SCI) (RamLink) . Junta de Normas IEEE. 16 de septiembre de 1996. ISBN 9780738131375.
  8. David B. Gustavson (10 de febrero de 1999). "Organizando para alternativas" .
  9. David V. James; David B. Gustavson; B. Fleischer (mayo-junio de 1998). "SerialExpress: una interconexión de estaciones de trabajo de alto rendimiento". IEEE Micro . 18 (3). IEEE: 54–65 . doi : 10.1109/40.683105 .
  10. David Lammers (19 de febrero de 1999). "ISSCC: El grupo SLDRAM se transforma en DDR II" . EE Times .
  11. Hermann Hellwagner; Alexander Reinefeld, eds. (1999). SCI: Interfaz coherente escalable: Arquitectura y software para clústeres de computación de alto rendimiento . Lecture Notes in Computer Science. Springer. ISBN 978-3540666967.
  12. Interfaz coherente escalable (SCI) (PDF) . Norma internacional ISO/IEC 13961 IEEE Std 1596. 10 de julio de 2000.