Abreviatura | ESCRIBIR |
---|---|
Formación | 1996 |
Tipo | No lucrativo |
Sitio web | www.scizzl.com |
La interfaz coherente escalable o 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.
El estándar 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] Se utilizó durante la década de 1990, pero nunca se generalizó y ha sido reemplazado por otros sistemas desde principios de la década de 2000.
Poco después del proyecto Futurebus (IEEE 896 ) que siguió al Fastbus (IEEE 960) 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 escindió para formar un estándar dirigido a este mercado en julio de 1988. [2] Era esencialmente 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 experiencia en buses de computadora de alta velocidad . Entre los representantes de empresas de la industria informática y de 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, Universidad de Oslo y 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 tuvo la idea de usar comunicación punto a punto en forma de 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 desarrollar el estándar estuvo dirigido por David B. Gustavson (presidente) y David V. James (vicepresidente). [4]
David V. James fue un importante colaborador 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 incluye la lógica de coherencia de caché.
Diferentes versiones y derivados de SCI fueron implementados por compañías como Dolphin Interconnect Solutions , Convex, Data General AViiON (usando controladores de caché y chips de controlador de enlace de Dolphin), Sequent y Cray Research. Dolphin Interconnect Solutions implementó un derivado conectado PCI y PCI-Express de SCI 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 la agrupación en clústeres de HPC y la imagenología médica. SCI se utilizó a menudo para implementar arquitecturas de acceso a memoria no uniforme . 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 estándar define dos niveles de interfaz:
Esta estructura permitió que los nuevos desarrollos en tecnología de interfaz física se adaptaran fácilmente sin necesidad de rediseñar 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 clandestina (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é particular.
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 muchos procesadores y/o memoria. El estándar SCI define una red conmutada por paquetes .
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:
La forma más común de describir estas topologías multidimensionales es n-cubos k-arios (o toros). La especificación estándar SCI menciona varias topologías de este tipo como ejemplos.
El toro bidimensional es una combinación de anillos en dos dimensiones. Para cambiar entre las dos dimensiones se necesita una pequeña capacidad de conmutación en el nodo. Esta capacidad se puede ampliar a tres o más dimensiones. El concepto de anillos plegables también se puede aplicar a las topologías de toroide para evitar segmentos de conexión largos.
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 comienzo de un paquete. Una transición de 1 a 0 se produce 1 (para ecos) o 4 símbolos antes del final del paquete. Un paquete contiene un encabezado con el 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 en el 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 pasa a la salida a través del FIFO de derivación. En el otro caso, el paquete se envía a una cola de recepción y puede transferirse a un anillo en otra dimensión. Todos los paquetes se marcan cuando pasan 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 eliminarán al pasar por el depurador por segunda vez para evitar llenar el anillo con paquetes que de otro modo circularían indefinidamente.
La coherencia de la caché garantiza la consistencia de los datos en sistemas multiprocesador. La forma más simple aplicada en los sistemas anteriores se basaba en borrar el contenido de la caché entre cambios 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 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 tendrían un rendimiento óptimo sin métodos más sofisticados para la consistencia de los datos. Los sistemas basados en bus utilizan métodos de escucha clandestina ( snooping ) ya 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 espionaje para mejorar el rendimiento. Dado que la difusión y la escucha clandestina son inherentemente no escalables, no se utilizan en SCI.
En su lugar, SCI utiliza un protocolo de coherencia de caché basado en directorios distribuidos 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 contiene un puntero a la cabecera de la lista enlazada y un código de estado para la línea (tres estados: inicio, nuevo, desaparecido). Asociado a cada nodo también hay una caché para almacenar datos remotos con un directorio que contiene punteros hacia delante y hacia atrás a los nodos en la lista enlazada que comparten la línea de caché. La etiqueta para la caché tiene siete estados (inválido, solo nuevo, cabeza fresca, solo sucio, cabeza sucia, mitad válida, cola válida).
El directorio distribuido es escalable. La sobrecarga de 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é.
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 distintos proveedores de sistemas implementaron distintas variantes de SCI para la infraestructura interna de sus sistemas. Estas distintas implementaciones interactúan con mecanismos muy complejos en los procesadores y sistemas de memoria y cada proveedor debe preservar ciertos grados de compatibilidad tanto para el hardware como para el 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 llevaron a cabo una serie de talleres a lo largo de 1999. Después de la primera edición de 1992, [1] los proyectos de seguimiento definieron formatos de datos compartidos en 1993, [5] una versión que utiliza 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, se formó la corporación SLDRAM para mantener patentes en 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, el nuevo estándar de memoria fue abandonado. [10]
En 1999 se publicó una serie de artículos como un 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]