Las siglas SCI se corresponden con:
Escalabilidad (Scalability): Un sistema es escalable cuando su funcionamiento es independiente del número de procesadores que en él intervienen. La escalabilidad en la arquitectura de un sistema posee varias dimensiones que atienden a eficiencia, coste económico, tamaño físico, direccionamiento, independencia del software, etc...
Coherencia (Coherence): Utilización de forma eficiente y consistente de la memoria cache en los sistemas multiprocesador con memoria compartida.
Interface: Disponer de una arquitectura de comunicación abierta que permita la utilización de múltiples productos de diversos fabricantes.
El estándar SCI (Scalable Coherent Interface) fue concebido en un intento de incrementar el ancho de banda de los buses en blackplane, superando los límites físicos encontrados en los mismos y, de esta forma, satisfacer las necesidades de las nuevas generaciones de chips; algunos de los cuales pueden saturar los buses más rápidos que existen actualmente.
Una primera idea sería el uso de múltiples buses, de modo que sea posible más de una transferencia al mismo tiempo. No obstante, este tipo de solución conlleva propuestas complejas, y a menudo costosas, sobre todo cuando se quiere mantener la coherencia en el uso de memoria cache, ya que requiere conexiones puente entre los distintos buses del sistema.
Para superar las prestaciones, más allá de lo que los buses backplane ofrecen, se necesitan mejores técnicas de señalización y el uso concurrente de numerosos canales de datos. En lugar de usar líneas de bus tipo backplane, SCI está basado en la tecnología de conexiones punto a punto que elimina muchos de los problemas físicos proporcionando velocidades mayores. SCI, de hecho, simula un bus, dando los mismos servicios que un bus (incluso otros que normalmente no se ofrecen) pero sin usar buses.
Los sistemas multiprocesadores pueden ser de memoria compartida o de intercambio de mensajes (no hay memoria común), siendo los más utilizados los primeros, dentro de los cuales cabe destacar las siguientes arquitecturas:
El SCI está dentro de la arquitectura de redes de interconexión estática.
La mayoría de los diseñadores de SCI provienen de haber participado en buses de altas velocidades, tales como Fastbus (IEEE Std 960-1989) o Futurebus (IEEE Std 896.1-1987), que estén diseñados para soportar multiproceso y utilizan la tecnología más alta en cuanto a señales de bus se refiere. Pese a ello, a medida que aumentan las necesidades de procesado de datos, la arquitectura de "bus común" puede llegar a ser un obstáculo, como ya hemos visto, sobre todo cuando los accesos se multiplican.
La configuración básica de SCI es un anillo que contiene varios nodos conectados entre sí por enlaces (links) unidireccionales punto a punto. Cada aplicación se conecta a SCI a través de un nodo, el cual es visto por la aplicación como un bus convencional. Los nodos, a su vez, se enlazan entre si con links punto a punto a velocidad muy alta ya que no tienen las limitaciones de los backplanes.
Cada nodo está conectado al anillo SCI por un link (SCI IN) proveniente del nodo precedente y por otro link (SCI OUT) con destino al nodo siguiente y, a su vez, está conectado con la aplicación normalmente por el bus propio. Cuando un paquete que circule por el anillo llegue al nodo, el address decoder verá si el paquete es para ese nodo o no. En caso de que sí lo sea lo encaminará a la FiFo de entrada, en el caso contrario, lo será hacia la "bypass FiFo", o sea, hacia el anillo SCI. El codificador/decodificador de paquetes transformará el paquete entrante en el formato del bus y se usa para comunicar en ambos sentidos con la aplicación. Cuando se mande un paquete de salida a SCI, éste irá a la FiFo de salida y si no hay ningún paquete mandándose en ese momento, desde la bypass FiFo, el paquete será encaminado hacia el link de salida.
Es un estándar que permite a sistemas crecer con componentes modulares de diferentes vendedores.
El propósito de SCI es definir un interface estándar para sistemas multiprocesadores de prestaciones muy altas, que soporten un modelo de memoria compartida coherente y escalable a sistemas de un gran número de nodos, además debe facilitar la integración de procesadores, memoria, I/O y tarjetas que adopten el bus de diferentes fabricantes en sistemas de procesamiento paralelo masivo con throughputs que alcancen hasta más de 1012 operaciones por segundo.
Un objetivo prioritario era que SCI tuviera un coste razonable tanto para sistemas pequeños como para los de procesamiento paralelo masivo. Así, el reducido número de señales de SCI (18 en el link) y la topología de anillo simple permiten que sistemas de pocos procesadores y prestaciones medias sean más fáciles de construir con SCI que con sistemas de bus backplane.
Para la consecución de la escalabilidad se pensó primero en el empleo de un backplane mejorado, llamado Superbus, pero pronto se observó que no existía ningún bus capaz de realizar lo que se deseaba, se cambió entonces la filosofía de trabajo y la denominación de Superbus a SCI. En un bus blackplane, la velocidad está limitada por la distancia que la señal ha de recorrer y el retraso de propagación. En buses asíncronos, como VME, el límite es el tiempo que se necesita para que una señal de handshake llegue del origen a su destino y la respuesta vuelva al origen, mientras que en buses síncronos, es la diferencia entre las señales de reloj y de datos que se generan en puntos distintos. Por otro lado, las líneas de transmisión en un bus backplane están afectadas por las reflexiones provocadas por los múltiples conectores y por las variaciones en la carga a medida que cambia el número de módulos insertados, lo que convierte al bus en una línea de transmisión imperfecta.
SCI soluciona estos problemas definiendo un sistema de interconexión que permite múltiples configuraciones, desde anillos simples a redes de conmutación multinivel en las que anillos de alta capacidad están conectados a anillos más pequeños de menor calidad y coste. Ejemplo de ello es el propuesto por RD-24 para sistemas de adquisición de datos.
La velocidad de 1 Gbyte/s en el link, especificada para la implementación en ECL, fue escogida basándose en una combinación de consideraciones de tipo marketing y de ingeniería. Desde el punto de vista de marketing, era necesario definir un territorio que no perturbara los estándares de 32 bits o de redes presentes en el mercado, superando a éstos, y desde el punto de vista de ingeniería, esta velocidad en el link estaba cerca del límite de lo que la tecnología de señalización puede ofrecer y de lo que la tecnología de circuitos integrados puede soportar.
Genéricamente, SCI usa una comunicación unidireccional y con un ancho de banda que depende del medio de transmisión que se emplee, los nodos SCI pueden ser interconectados de 4 formas diferentes:
1. Interconexión por medio de fibra óptica a 125 Mbytes/s: Pensado para largas distancias.
2. Cable coaxial a 125 Mbytes/s: Para aplicaciones con distancias no superiores a 50 metros.
3. ECL diferencial, cable triaxial a 1 Gbyte/s: Donde se necesiten conexiones rápidas y cortas, distancias no superiores a 15 metros.
4. CMOS diferencial de baja tensión, cable triaxial a 1 Gbyte/s: Conexiones rápidas para distancias no superiores a 15 metros (primeras implementaciones hasta 150-250 Mbytes/s y distancias de 25-30 cm).
En el caso de las señales ECL, se requiere una gran calidad y precisión en los cables, la longitud de ellos y sus terminaciones juegan un papel esencial en el cumplimiento de los límites de los tiempos de subida y bajada de las señales.
Para conseguir una velocidad de transmisión alta, las señales son enviadas de forma diferencial dado que éstas son menos sensibles al ruido producido por otras fuentes. Por eso también el sentido de transmisión es unidireccional para evitar el ruido creado por los drivers, en los enlaces bidireccionales, al conmutar éstos de un sentido a otro.
El sistema SCI se considera generalmente como una arquitectura de 64 bits, debido al tamaño de sus direcciones (16 bit para la selección de nodo, más 48 bits para direccionamiento dentro de cada nodo); sin embargo, el ancho de los datos es menos restringido, SCI manda datos en múltiplos de 16 bytes siendo los tamaños más significativos los de 64 y 256 bytes.
SCI se describe, desde el punto de vista de modelo de memoria, como compartido distribuido con coherencia cache. Sin embargo, también provee mecanismos por paso de mensajes y transacciones no coherentes y todos estos tipos de operaciones pueden ser dinámicamente mezclados en un sistema a voluntad.
Cada nodo interface dispone al menos de dos enlaces, uno de entrada y otro de salida. Estos enlaces funcionan constantemente, enviando símbolos libres cuando no se está realizando una transición de paquetes, de forma que los nodos pueden permanecer perfectamente sincronizados todo el tiempo. En la interconexión entre los nodos, la señal de salida de un módulo alimenta a la entrada del módulo siguiente y entre distintos anillos podemos establecer unos puentes y, de esta forma, ampliar a otros anillos la arquitectura.
Protocolo básico de funcionamiento:
La transmisión de información en un anillo SCI, se realiza en forma de paquete desde el nodo fuente hasta el nodo destino, éste último recibe el paquete enviado y devuelve un eco que circula en el sentido del flujo de datos hacia el remitente (nodo fuente), informando sobre el estado del paquete enviado (si se ha aceptado por el nodo destino, si ha sido rechazado por un desbordamiento o si ha ocurrido algún error de cualquier tipo en la transacción). Según la información recibida por el nodo fuente, este actuará en consecuencia. A su vez, existen también paquetes de petición y de respuesta.
Cuando un nodo fuente desea enviar un paquete al anillo, primero lo almacena en la cola de salida, entonces si está vacía y además el nodo no está puenteando información (bypass FiFo), entonces el paquete podrá ser volcado al anillo.
Cuando el nodo fuente ha transmitido, debe de crear una copia hasta la recepción del correspondiente eco, que se desechará o reutilizará en función de la información del paquete de eco.
Cuando llega un paquete a un nodo y, a la vez, éste está transmitiendo datos, el paquete entrante se almacena en la bypass FiFo hasta que la transmisión del nodo haya concluido y sólo cuando el nodo ha terminado sus datos; la bypass FiFo se descarga hasta recuperar su estado normal, a su vez, hasta que no se descarga dicha FiFo el nodo en cuestión no puede enviar más paquetes.

Los enlaces SCI transmiten símbolos que contienen 16 bits de datos más el delimitador de paquete (FLAG) e información de reloj (ver figura 3.7), ésta última proporciona una referencia precisa del tiempo que el receptor usa para extraer los datos de la señal que llega. Un símbolo puede formar parte de un paquete o ser un símbolo libre (que se transmite en el intervalo entre paquetes para mantener el sincronismo).
El paquete que se transmite se compone de una cabecera de 16 bytes y de un bloque de datos opcionales de 16, 64 ó 256 bytes. La cabecera consta de direcciones, comandos, información de control y al final del paquete se encuentra el CRC de 16 bits.
Los procesadores de altas prestaciones necesitan caches locales para reducir la latencia de acceso a memoria. En sistemas multiprocesadores, esto puede derivar en conflictos debidos a que varios procesadores quieran modificar copias locales cacheadas de los mismos datos.
Los protocolos de coherencia cache definen mecanismos que garantizan la consistencia de datos incluso cuando son cacheados y modificados localmente por múltiples procesadores, están basados en hardware con lo que se reduce el esfuerzo del programador de software para asegurar consistencia y también se minimiza la complejidad del sistema operativo.
Los protocolos de coherencia cache definidos para SCI se fundamentan en una solución que resuelven los problemas clásicos de los mismos, basándose en directorios distribuidos y consigue escalarse bien incluso cuando el número de nodos crece drásticamente.