Los sistemas de sincronización son sistemas informáticos tolerantes a fallos que ejecutan el mismo conjunto de operaciones simultáneamente en paralelo . [ 1 ] La redundancia (duplicación) permite la detección y corrección de errores: la salida de las operaciones de sincronización se puede comparar para determinar si ha habido un fallo si hay al menos dos sistemas ( redundancia modular dual DMR), y el error se puede corregir automáticamente si hay al menos tres sistemas ( redundancia modular triple TMR), mediante votación mayoritaria. El término « sincronización » proviene del ámbito militar, donde se refiere a la marcha sincronizada, en la que los participantes caminan lo más juntos posible.
Para funcionar de forma sincronizada, cada sistema está configurado para progresar de un estado bien definido al siguiente. Cuando un nuevo conjunto de entradas llega al sistema, este las procesa, genera nuevas salidas y actualiza su estado. Este conjunto de cambios (nuevas entradas, nuevas salidas, nuevo estado) se considera que define ese paso y debe tratarse como una transacción atómica; en otras palabras, o sucede todo o no sucede nada, pero no hay un punto intermedio. A veces se establece un desfase temporal (retardo) entre los sistemas, lo que aumenta la probabilidad de detección de errores inducidos por influencias externas (por ejemplo, picos de voltaje , radiación ionizante o ingeniería inversa in situ ).
Memoria sincronizada
Algunos proveedores, incluido Intel, utilizan el término memoria de sincronización para describir una disposición de memoria multicanal en la que las líneas de caché se distribuyen entre dos canales de memoria, de modo que la mitad de la línea de caché se almacena en un DIMM del primer canal, mientras que la segunda mitad va a un DIMM del segundo canal. Al combinar las capacidades de corrección de errores simple y detección de errores doble (SECDED) de dos DIMM con ECC habilitado en una disposición de sincronización, su naturaleza de corrección de datos de dispositivo único (SDDC) se puede extender a corrección de datos de dispositivo doble (DDDC), lo que proporciona protección contra el fallo de cualquier chip de memoria individual. [ 2 ] [ 3 ] [ 4 ] [ 5 ]
Las desventajas del diseño de memoria en bloque de Intel son la reducción de la cantidad de RAM efectivamente utilizable (en el caso de un diseño de memoria de triple canal, la cantidad máxima de memoria se reduce a un tercio del máximo físicamente disponible) y el rendimiento reducido del subsistema de memoria. [ 2 ] [ 4 ]
Redundancia modular doble
Cuando los sistemas informáticos están duplicados, pero ambos procesan activamente cada paso, resulta difícil distinguirlos si sus resultados difieren al final de un paso. Por este motivo, es práctica común utilizar sistemas DMR en configuraciones maestro/esclavo, donde el esclavo actúa como respaldo en caliente del maestro, en lugar de estar sincronizado. Dado que no hay ninguna ventaja en que la unidad esclava procese activamente cada paso, un método habitual consiste en que el maestro copie su estado al esclavo al finalizar el procesamiento de cada paso. Si el maestro falla en algún momento, el esclavo está preparado para continuar desde el paso anterior que se sabe que funciona correctamente.
Si bien tanto el enfoque de sincronización como el de DMR (cuando se combinan con algún método para detectar errores en el maestro) pueden proporcionar redundancia contra fallas de hardware en el maestro, no protegen contra errores de software. Si el maestro falla debido a un error de software, es muy probable que el esclavo, al intentar repetir la ejecución del paso que falló, simplemente repita el mismo error y falle de la misma manera, un ejemplo de falla de modo común .
Redundancia modular triple
Cuando los sistemas informáticos se triplican, es posible tratarlos como sistemas de votación. Si la salida de una unidad no coincide con la de las otras dos, se detecta como un fallo. La salida coincidente de las otras dos se considera correcta.
Programación de GPU
Aunque el concepto se originó en la computación tolerante a fallos, NVIDIA adoptó posteriormente la terminología para describir la ejecución de warps en la computación GPU, definiéndola como la ejecución simultánea de todos los hilos dentro de un warp. En el contexto del modelo de programación CUDA de NVIDIA y la arquitectura SIMT ( Instrucción única, múltiples hilos ), la ejecución en bloque garantiza que todos los hilos en un warp ejecuten la misma instrucción del kernel al mismo tiempo. [ 6 ]
Véase también
Referencias
- ↑ Stefan Poledna (1996). Sistemas tolerantes a fallos en tiempo real: El problema del determinismo de réplica . Springer. pág. 80. ISBN 9780585295800. Consultado el 8 de septiembre de 2014 .
- 1 2 Sree Syamalakumari (18 de febrero de 2014). "Descripción técnica de la familia de procesadores Intel Xeon E7 V2, sección 3.1: búfer de memoria escalable Intel C104/102" . Intel . Consultado el 9 de septiembre de 2014 .
- ↑ Thomas Willhalm (11 de julio de 2014). "Canal independiente frente a modo de sincronización: ¿cómo acelerar o hacer más segura su memoria?" . Intel . Consultado el 9 de septiembre de 2014 .
- 1 2 "Directrices de mejores prácticas para servidores ProLiant con la serie de procesadores Intel Xeon 5500. Documento técnico de ingeniería, 1.ª edición" (PDF) . HP . Mayo de 2009. págs. 8–9 . Consultado el 9 de septiembre de 2014 .
- ↑ "Hoja de datos del búfer de memoria escalable Intel C102/C104, Sección 1.3.1.2.2: Modo de sincronización de subcanal 1:1" (PDF) . Intel . Febrero de 2014. pág. 9. Consultado el 25 de enero de 2015 .
- ↑ "Guía de programación de NVIDIA" .
Enlaces externos
- Habilitación de las funciones de confiabilidad, disponibilidad y mantenimiento de la memoria en los servidores Dell PowerEdge , 2005
- Arquitectura de memoria correcta de Chipkill , agosto de 2000, por David Locklear
- Clases de computadoras
- Sistemas informáticos tolerantes a fallos
