El diseño tolerante a fallos se ha convertido en obligación para un número creciente de dominios de aplicación (espacio, aviónica, automotriz, defensa, medicina, comunicaciones, etc.). A pesar de que durante las últimas décadas se han propuesto una gran variedad de enfoques basados en la incorporación de algún tipo de redundancia en el sistema (hardware, software, tiempo,¿), estas técnicas conllevan sobrecostos en el sistema que muchas veces pueden hacer que su aplicación no sea viable. En particular, para procesadores COTS (Commercial Off-The-Shelf), donde no es posible modificar el hardware, es necesario aplicar técnicas de protección basadas en el software, las cuales provocan habitualmente una degradación considerable del rendimiento y el aumento del código fuente de las aplicaciones. Por esto, existe una preocupación creciente en la comunidad científica que busca reducir estos sobrecostos ocasionados por las técnicas de protección (endurecimiento) basadas en software. La aplicación selectiva de dichas técnicas solamente en las partes más críticas de los sistemas representa una solución viable para obtener un alto nivel de fiabilidad a una fracción del costo. En particular, para diseñar una estrategia de mitigación de fallos selectiva para los sistemas basados en procesador, es obligatorio identificar y priorizar los registros más vulnerables en el banco de registros para ser protegidos (endurecidos). Sin embargo, la naturaleza de las técnicas software, y su impacto en el sistema, es muy diferente a sus homólogas en hardware. Existen evidencias de consideraciones de diseño adicionales que se deben tener en cuenta al utilizar una estrategia de protección selectiva basada en software, a diferencia de las estrategias tradicionales basadas en hardware. Por esto, las métricas de vulnerabilidad existentes principalmente tienen en cuenta aspectos relacionados con el hardware, y por esto son útiles a la hora de aplicar técnicas de protección hardware. Sin embargo, cuando se requieren técnicas software (selectivas o no), estas métricas no son tan eficientes. El presente proyecto de investigación busca desarrollar una nueva métrica software que, teniendo en cuenta la vulnerabilidad de los registros del microprocesador según la aplicación ejecutada, y al mismo tiempo, las consideraciones especiales de la aplicación de técnicas de tolerancia a fallos basadas en software selectivo, permita identificar y priorizar el conjunto de registros que es necesario proteger para garantizar la eficiencia de la protección software. |