Fault-tolerant Cache Coherence Protocols for CMPs
- Manuel Eugenio Acacio Sánchez Director/a
- José Manuel García Carrasco Director/a
Universidad de defensa: Universidad de Murcia
Fecha de defensa: 23 de julio de 2009
- José Francisco Duato Marin Presidente/a
- Juan Luis Aragón Alcaraz Secretario/a
- Emre Özer Vocal
- Antonio González Colás Vocal
- Angelos Bilas Vocal
Tipo: Tesis
Resumen
Las tendencias tecnológicas hacen posible poner miles de millones de transistores en un solo chip, lo cual ha permitido a los arquitectos de computadores construir multiprocesadores en un solo chip (CMPs). Por desgracia, estas tendencias de miniaturización también implican que la fiabilidad de los transistores individuales disminuye. De esta forma, los fallos transitorios, que eran anteriormente un problema serio solo para las memorias y en entornos extremos como las aplicaciones aeroespaciales, se espera que sean un problema para los futuros CMPs con gran número de núcleos. Uno de los componentes propenso a experimentar fallos transitorios en sistemas CMP será la red de interconexión del chip. En esta tesis se propone una nueva forma de tratar con fallos transitorios en la red de interconexión que es diferente del enfoque clásico consistente en construir una red de interconexión tolerante a fallos. En particular, se propone proveer de medidas tolerantes a fallos al nivel del protocolo de coherencia de forma que garantice la correcta ejecución de programas paralelos incluso si la red de interconexión no entrega necesariamente todos los mensajes correctamente. De esta forma se puede aprovechar el diferente significado de cada mensaje para implementar la tolerancia a fallos con menor sobrecarga que al nivel de la red de interconexión, la cual tiene que tratar todos los mensajes de la misma manera. Para demostrar la viabilidad de nuestro enfoque, se diseñan varios protocolos de coherencia tolerantes a fallos. En primer lugar, se diseña FtTokenCMP}, basado en el marco de coherencia de tokens. FtTokenCMP añade timeouts para detección de fallos y mecanismos simples de recuperación para fallos transitorios a un protocolo basado en tokens previamente propuesto. También se extienden las reglas generales de conteo de tokens para asegurar la transferencia fiable de datos en propiedad, para simplificar la aplicación de estas medidas de tolerancia a fallos a otros protocolos de coherencia caché basados en el marco de coherencia de tokens. En segundo lugar, se diseña FtDirCMP: un protocolo de coherencia basado en directorio que añade medidas de tolerancia a fallos inspiradas en el trabajo anterior realizado para FtTokenCMP. Finalmente, las mismas ideas se usan en el diseño de FtHammerCMP}: un protocolo de coherencia basado en difusión y fisgoneo similar al utilizado por AMD en los procesadores Opteron. Las propuestas se evalúan usando simulación de sistema completo de varias aplicaciones paralelas. Los resultados de esta evaluación muestran que, en ausencia de fallos, nuestras medidas de tolerancia a fallos no incrementan significativamente el tiempo de ejecución de las aplicaciones y que su mayor coste es un incremento en el tráfico de la red debido a los mensajes de reconocimiento usados para asegurar la transferencia fiable de propiedad entre los nodos de coherencia, que se envían fuera del camino crítico de los fallos de caché. Los resultados también muestran que el rendimiento de un sistema usando nuestros protocolos se degrada adecuadamente cuando se producen fallos transitorios en la red de interconexión, soportando tasas de fallo que son mucho mayores de las esperadas en el mundo real con un incremento pequeño en el tiempo de ejecución.