La interfaz coherente escalable o la interconexión coherente escalable ( SCI ) es un estándar de interconexión de alta velocidad para el multiprocesamiento de memoria compartida y el paso de mensajes. El objetivo era escalar bien, proporcionar coherencia de memoria en todo el sistema y una interfaz simple; es decir, un estándar para reemplazar los buses existentes en sistemas multiprocesador por uno sin limitaciones inherentes de escalabilidad y rendimiento.
Abreviatura | SCIzzL |
---|---|
Formación | 1996 |
Tipo | Sin ánimo de lucro |
Sitio web | www |
El IEEE Std 1596-1992, estándar IEEE para interfaz coherente escalable (SCI) fue aprobado por la junta de estándares IEEE el 19 de marzo de 1992. [1] Tuvo algún uso durante la década de 1990, pero nunca llegó a ser ampliamente utilizado y ha sido reemplazado por otros sistemas de principios de la década de 2000.
Historia
Poco después del proyecto de continuación de Fastbus (IEEE 960) Futurebus (IEEE 896) en 1987, algunos ingenieros predijeron que ya sería demasiado lento para el mercado de la informática de alto rendimiento para 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 escindió para formar un estándar dirigido a este mercado en julio de 1988. [2] Básicamente, era un subconjunto de características de Futurebus que se podían implementar 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 su experiencia en buses informáticos de alta velocidad . Entre los representantes de empresas de la industria informática y la comunidad de investigación se encuentran 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, Universidad de Oslo, Universidad de Wisconsin .
La intención original era un estándar único para todos los buses en la computadora. [3] Al grupo de trabajo pronto se le ocurrió la idea de utilizar la comunicación punto a punto en forma de anillos de inserción. Esto evitó la capacitancia concentrada, la longitud / velocidad física limitada de los problemas de luz y los reflejos de los extremos, además de permitir transacciones paralelas. El uso de anillos de inserción se le atribuye a Manolis Katevenis quien lo sugirió en una de las primeras reuniones del grupo de trabajo. El grupo de trabajo para desarrollar la norma fue dirigido por David B. Gustavson (presidente) y David V. James (vicepresidente). [4]
David V. James fue un colaborador importante en la redacción de las especificaciones, incluido el código C ejecutable. [ cita requerida ] 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é.
Empresas como Dolphin Interconnect Solutions , Convex, Data General AViiON implementaron diferentes versiones y derivados de SCI (utilizando chips de controlador de caché y controlador de enlace de Dolphin), Sequent y Cray Research. Dolphin Interconnect Solutions implementó un derivado de SCI conectado 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 alta gama, Thales Group y varios otros, incluidas aplicaciones de volumen para el paso de mensajes dentro de clústeres de HPC e imágenes médicas. SCI se utilizó a menudo para implementar arquitecturas de acceso a memoria no uniformes . También fue utilizado por Sequent Computer Systems como el bus de memoria del procesador en sus sistemas NUMA-Q. Numascale desarrolló un derivado para conectarse con HyperTransport coherente .
El estandar
El estándar definió dos niveles de interfaz:
- El nivel físico que se ocupa de señales eléctricas, conectores, 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 la 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ó que los nuevos desarrollos en la tecnología de interfaz física se adaptaran fácilmente sin ningún rediseño en el nivel lógico.
La escalabilidad para sistemas grandes se logra mediante un modelo de coherencia de caché distribuido basado en directorios . (Los otros modelos populares para la coherencia de caché se basan en la escucha (snooping) 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 vinculada comparte una línea de caché particular.
SCI define un espacio de direcciones planas de 64 bits (16 exabytes) donde se utilizan 16 bits para identificar un nodo (65.536 nodos) y 48 bits para la dirección dentro del nodo (256 terabytes). Un nodo puede contener muchos procesadores y / o memoria. El estándar SCI define una red conmutada por 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 completamente distribuida:
- Con un conmutador central, cada nodo está conectado al conmutador con un anillo (en este caso, un anillo de dos nodos).
- En los sistemas de conmutación distribuidos, cada nodo se puede conectar a un anillo de longitud arbitraria y todos o algunos de los nodos se pueden conectar a dos o más anillos.
La forma más común de describir estas topologías multidimensionales es k-ary n-cubes (o tori). La especificación del estándar SCI menciona varias topologías como ejemplos.
El toro 2-D 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 ampliar a tres o más dimensiones. El concepto de anillos plegables también se puede aplicar a las topologías Torus 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 de bandera. Una transición del bit de bandera 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 un encabezado con comando de dirección e información de estado, carga útil (desde 0 hasta longitudes de datos opcionales) y un símbolo de verificación CRC. El primer símbolo del encabezado del paquete contiene la dirección del nodo de destino. Si la dirección no está dentro del dominio manejado por el nodo receptor, el paquete se pasa a la salida a través de la FIFO de derivación. En el otro caso, el paquete se envía a una cola de recepción y se puede transferir a un anillo en otra dimensión. Todos los paquetes se marcan cuando pasan el depurador (un nodo se establece como depurador cuando se inicializa el anillo). Los paquetes sin una dirección de destino válida se eliminarán al pasar por el depurador por segunda vez para evitar llenar el anillo con paquetes que de otro modo circularían indefinidamente.
Coherencia de caché
La coherencia de la caché garantiza la coherencia de los datos en los sistemas multiprocesador. La forma más simple aplicada en sistemas anteriores se basaba en borrar el contenido de la caché entre conmutadores de contexto y deshabilitar la caché para los datos que se compartían entre dos o más procesadores. Estos métodos eran factibles cuando la diferencia de rendimiento entre la memoria caché y la memoria era inferior a un orden de magnitud. Los procesadores modernos con cachés que son más de dos órdenes de magnitud más rápidos que la memoria principal no funcionarían cerca del óptimo sin métodos más sofisticados para la coherencia de los datos. Los sistemas basados en bus utilizan métodos de escucha clandestina ( fisgoneo ) ya que los buses se transmiten de forma inherente. Los sistemas modernos con enlaces punto a punto utilizan métodos de transmisión con opciones de filtro de rastreo para mejorar el rendimiento. Dado que la transmisión y la escucha clandestina son intrínsecamente 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é particular. Cada nodo contiene un directorio para la memoria principal del nodo con una etiqueta para cada línea de memoria (la misma longitud de línea que la línea de caché). La etiqueta de memoria tiene un puntero al encabezado de la lista vinculada y un código de estado para la línea (tres estados: hogar, nuevo, desaparecido). Asociado con cada nodo también hay un caché para almacenar datos remotos con un directorio que contiene punteros hacia adelante y hacia atrás a los nodos en la lista vinculada que comparten la línea del caché. La etiqueta de la caché tiene siete estados (inválido, solo nuevo, cabeza fresca, solo sucio, cabeza sucio, medio válido, final válido).
El directorio distribuido es escalable. La sobrecarga para la coherencia de la 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 por el público como, por ejemplo, la familia Ethernet para conectar diferentes sistemas. Los diferentes proveedores de sistemas implementaron diferentes variantes de SCI para su infraestructura de sistema interno. Estas diferentes implementaciones interactúan con mecanismos muy intrincados en procesadores y sistemas de memoria, y cada proveedor debe preservar algunos grados de compatibilidad tanto para el hardware como para el software.
Gustavson dirigió un grupo llamado Scalable Coherent Interface y Serial Express Users, Developers, and Manufacturers Association y mantuvo un sitio web para la tecnología a partir de 1996. [3] Se llevó a cabo 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 tarde en 1996. [7] En enero de 1998, la SLDRAM Corporation se formó para poseer patentes en un intento de definir una nueva interfaz de memoria que estaba relacionada con otro grupo de trabajo llamado SerialExpress o Puerto de memoria de área local. [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 LME. [11] En julio de 2000, la Comisión Electrotécnica Internacional (CEI) de la Organización Internacional de Normalización (ISO) publicó una especificación actualizada como ISO / CEI 13961. [12]
Ver también
- Soluciones de interconexión Dolphin
- Lista de anchos de banda de dispositivos
- NUMAlink
- QuickRing
- HIPPI
- IEEE 1355
- RapidIO
- Myrinet
- QsNet
- Futurebus
- InfiniBand
Referencias
- ^ a b Estándar IEEE para interfaz coherente escalable (SCI) . IEEE Std 1596-1992 . Junta de Normas IEEE. 1992. ISBN 9780738129501.
- ^ David B. Gustavson (septiembre de 1991). "La interfaz coherente escalable y proyectos de estándares relacionados" (PDF) . Publicación SLAC 5656 . Centro acelerador lineal de Stanford . Consultado el 31 de agosto de 2013 .
- ^ a b "Asociación de Fabricantes, Desarrolladores y Usuarios de Interfaz Coherente Escalable y Serial Express" . Sitio web del grupo . Consultado el 31 de agosto de 2013 .
- ^ "1596 WG - Grupo de trabajo para interfaz coherente escalable" . Sitio web del grupo de trabajo . Consultado el 31 de agosto de 2013 .
- ^ Estándar IEEE para formatos de datos compartidos optimizados para procesadores de interfaz coherente escalable (SCI) . IEEE 1596.5-1993 . Junta de Normas IEEE. 25 de abril de 1994. ISBN 9780738112091.
- ^ Estándar IEEE para señales diferenciales de bajo voltaje (LVDS) para interfaz coherente escalable (SCI) . IEEE IEEE 1596.3-1996 . Junta de Normas IEEE. 31 de julio de 1996. ISBN 9780738131368.
- ^ Estándar EEE para interfaz de memoria de alto ancho de banda basado en tecnología de señalización de interfaz coherente escalable (SCI) (RamLink) . IEEE IEEE 1596.4-1996 . Junta de Normas IEEE. 16 de septiembre de 1996. ISBN 9780738131375.
- ^ David B. Gustavson (10 de febrero de 1999). "Organizándose por alternativas" .
- ^ David V. James; David B. Gustavson; B. Fleischer (mayo-junio de 1998). "SerialExpress-una interconexión de estación de trabajo de alto rendimiento". IEEE Micro . IEEE: 54–65. doi : 10.1109 / 40.683105 .
- ^ David Lammers (19 de febrero de 1999). "ISSCC: el grupo SLDRAM se transforma en DDR II" . EE Times .
- ^ Hermann Hellwagner; Alexander Reinefeld, eds. (1999). SCI: Interfaz coherente escalable: arquitectura y software para clústeres informáticos de alto rendimiento . Apuntes de conferencias en informática. Saltador. ISBN 978-3540666967.
- ^ Interfaz coherente escalable (SCI) (PDF) . Estándar internacional ISO / IEC 13961 IEEE Std 1596 . 10 de julio de 2000.