Artful

Los procesadores están evolucionando para obtener más rendimiento, utilizando más transistores y siendo cada vez más densos y más complejos. Un efecto secundario de este escenario es que los procesadores son cada vez menos robustos frente a fallos transitorios. Como las soluciones integradas en los...

Descripción completa

Detalles Bibliográficos
Autor: Dias Lima Gramacho, João Artur
Tipo de recurso: tesis doctoral
Fecha de publicación:2014
País:España
Institución:Universitat Autònoma de Barcelona
Repositorio:Dipòsit Digital de Documents de la UAB
Idioma:inglés
OAI Identifier:oai:ddd.uab.cat:127469
Acceso en línea:https://ddd.uab.cat/record/127469
Access Level:acceso abierto
Palabra clave:Transcient facults
Robustness
Processor
Descripción
Sumario:Los procesadores están evolucionando para obtener más rendimiento, utilizando más transistores y siendo cada vez más densos y más complejos. Un efecto secundario de este escenario es que los procesadores son cada vez menos robustos frente a fallos transitorios. Como las soluciones integradas en los propios procesadores son caras o tienden a degradar el rendimiento del procesador, estas soluciones para hacer frente a estos fallos transitorios se complementan con propuestas en las capas superiores, como en el sistema operativo, o incluso en los programas. Las propuestas de tolerancia a fallos para tratar fallos transitorios integrados en la capa de aplicación, para su validación y evaluación usan frecuentemente experimentos de inyección de fallos, de este modo pueden evaluar el comportamiento de los programas con y sin sus propuestas de detección de fallas. Utilizar experimentos de inyección de fallos para evaluar el comportamiento de los programas en presencia de fallos transitorios, requiere ejecutar el programa evaluado, haciendo la inyección de un fallo (por lo general cambiando un solo bit en un registro del procesador) una cantidad significativa de veces, siempre observando el comportamiento del programa y si este ha finalizado presentando el resultado esperado. Un problema con esta estrategia es que el espacio de inyección de fallos es proporcional a la cantidad de instrucciones ejecutadas multiplicado por la cantidad de bits en el archivo de registros de la arquitectura del procesador. En lugar de ser exhaustivos (que sería inviable), este método consume mucho tiempo de CPU ejecutando o simulando el programa que se está evaluando tantas veces como sea necesario para obtener una aproximación estadística válida razonable (por lo general sólo unos pocos miles de veces). Así, el tiempo requerido para evaluar cómo se comportaría un solo programa en presencia de fallos transitorios podría ser proporcional al tiempo necesario para ejecutar el programa cerca de cinco mil veces. En este trabajo se presenta el concepto de robustez de un programa frente a fallos transitorios y también presenta una metodología llamada ARTFUL diseñada para, en lugar de utilizar las ejecuciones con inyecciones de fallos, hacer el cálculo de la robustez de forma determinística, basada en una traza de ejecución del programa y en la información sobre la arquitectura utilizada. Nuestro método fue evaluado calculando la robustez precisa de conocidos benchmarks reduciendo significativamente el tiempo necesario para realizar la evaluación.