Fault-tolerant Cache Coherence Protocols for CMPs

Las tendencias tecnologicas 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 miniaturizacion tambien 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 numero de nucleos. Uno de los componentes propenso a experimentar fallos transitorios en sistemas CMP sera la red de interconexion del chip. En esta tesis se propone una nueva forma de tratar con fallos transitorios en la red de interconexion que es diferente del enfoque clasico consistente en construir una red de interconexion 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 ejecucion de programas paralelos incluso si la red de interconexion 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 interconexion, la cual tiene que tratar todos los mensajes de la misma manera. Para demostrar la viabilidad de nuestro enfoque, se disenan varios protocolos de coherencia tolerantes a fallos. En primer lugar, se disena FtTokenCMP}, basado en el marco de coherencia de tokens. FtTokenCMP anade timeouts para deteccion de fallos y mecanismos simples de recuperacion para fallos transitorios a un protocolo basado en tokens previamente propuesto. Tambien se extienden las reglas generales de conteo de tokens para asegurar la transferencia fiable de datos en propiedad, para simplificar la aplicacion de estas medidas de tolerancia a fallos a otros protocolos de coherencia cache basados en el marco de coherencia de tokens. En segundo lugar, se disena FtDirCMP: un protocolo de coherencia basado en directorio que anade medidas de tolerancia a fallos inspiradas en el trabajo anterior realizado para FtTokenCMP. Finalmente, las mismas ideas se usan en el diseno de FtHammerCMP}: un protocolo de coherencia basado en difusion y fisgoneo similar al utilizado por AMD en los procesadores Opteron. Las propuestas se evaluan usando simulacion de sistema completo de varias aplicaciones paralelas. Los resultados de esta evaluacion muestran que, en ausencia de fallos, nuestras medidas de tolerancia a fallos no incrementan significativamente el tiempo de ejecucion de las aplicaciones y que su mayor coste es un incremento en el trafico de la red debido a los mensajes de reconocimiento usados para asegurar la transferencia fiable de propiedad entre los nodos de coherencia, que se envian fuera del camino critico de los fallos de cache. Los resultados tambien muestran que el rendimiento de un sistema usando nuestros protocolos se degrada adecuadamente cuando se producen fallos transitorios en la red de interconexion, soportando tasas de fallo que son mucho mayores de las esperadas en el mundo real con un incremento pequeno en el tiempo de ejecucion.