Ir al contenido

Documat


Resumen de Selective software-implemented hardware fault tolerance techniques to detect soft errors in processors with reduced overhead

Eduardo Chielle

  • 1. Introducción Las aplicaciones aeroespaciales utilizan de decenas a cientos de procesadores (FERNANDEZ-LEON, 2013), (ANTHONY, 2012), que son susceptibles a fallos transitorios causados por la radiación presente en el entorno (O’BRYAN, 2015). Por otra parte, los procesadores, al igual que otros circuitos integrados, han mejorado significativamente su rendimiento en las últimas décadas debido a los avances en la industria de los semiconductores. Tales avances han habilitado la fabricación de circuitos integrados de alta densidad (CIs), llegándose actualmente a los límites físicos para formar la puerta de un transistor (KIM, 2003), (THOMPSON, 2005). Por otra parte, la mayor cantidad de transistores por dado en combinación con reducidas tensiones de alimentación y altas frecuencias de funcionamiento han hecho a los CIs más sensibles a fallos transitorios causados por la radiación (BAUMANN, 2001). Los fallos transitorios son causadas por partículas energéticas presentes en el espacio o partículas secundarias, tales como las partículas alfa, generadas por la interacción de neutrones y materiales presentes tanto a altitud de vuelo como al nivel del mar (ITRS, 2005). La interacción de estas partículas con el transistor puede cargar o descargar un nodo del circuito. La consecuencia es un pulso transitorio en la lógica del circuito, también conocido como Single Event Effect (SEE). Un SEE puede ser potencialmente destructivo, dando lugar a lo que se conoce como fallo permanente, o no destructivo, conocido como fallo transitorio o soft error (O’BRYAN, 2015). En este trabajo, nos centramos en los fallos transitorios. La consecuencia en los circuitos puede ser visto como un bit flip (alteración del valor lógico) en elementos de memoria, conocido como Single Event Upset (SEU), o como un pulso transitorio en la lógica combinacional, conocido como Single Event Transient (SET), que puede ser capturado por un elemento de memoria. Con respecto al procesador, la consecuencia de tales fallos puede ser visto como un error que afecta el control de flujo de una aplicación en ejecución, cuando se produce un salto inesperado, o como un error que afecta al flujo de datos, cuando el resultado del programa es incorrecto, incluso si la aplicación se ejecuta hasta su finalización. En los sistemas críticos, estos errores son inaceptables. Dado que los sistemas críticos actuales utilizan de decenas a cientos de procesadores embebidos, es necesario garantizar la fiabilidad de estos procesadores con el fin de proporcionar confiabilidad a todo el sistema. En este contexto, es posible usar procesadores endurecidos a la radiación (procesadores RadHard). Sin embargo, estos procesadores presentan varias limitaciones, tales como: Baja velocidad de procesamiento: la frecuencia de operación es significativamente menor que los procesadores comerciales, como puede verse en la Tabla 1 Alto consumo energético: el consumo energético por tarea también es mayor, sobre todo porque el procesador RadHard necesita mucho más tiempo para ejecutarla Alto precio: el alto costo de los dispositivos RadHard se está convirtiendo en un factor determinante que motiva el uso creciente de dispositivos comerciales, principalmente en las partes menos críticas de los sistemas (MCHALE, 2014). Además, la necesidad de hardware adicional en aplicaciones aeroespaciales tiene un coste adicional, ya que el peso y el espacio físico que ocupa el dispositivo también son factores importantes en este sentido (E2V, 2015) Restricciones comerciales: otra limitación para el uso de procesadores RadHard que hace que la búsqueda de otras alternativas más interesante es la existencia de restricciones para el comercio de dispositivos RadHard, debido a las regulaciones comerciales internacionales, tales como ITAR (International Traffic in Arms Regulations), lo que hace imposible a muchos países la comprar de muchos de estos dispositivos (CASTRO NETO, 2010). Tabla 1: Frecuencia de operación y potencia de los procesadores RadHard. Procesador Frecuencia (MHz) Potencia (W) GR712RC Dual-Core 100 1.5 / core UT699 Single-Core 66 No disponible LEON3FT-RTAX 25 0.3 – 0.5 Fuente: (COBHAM GAISLER AB, 2015) Los procesadores comerciales son una alternativa al uso de procesadores RadHard. Además, y presentan algunas ventajas tales como: Tecnología más reciente: procesadores comerciales son producidos con la tecnología más reciente, que todavía no es utilizada en los procesadores RadHard Alta velocidad de procesamiento: procesadores comerciales operan en frecuencias significativamente más altas, como se muestra en la Tabla 2. Permite, por ejemplo, que mucha de la información sea procesada a bordo, antes de enviarla a la Tierra Baja potencia/energía: existen modelos de procesadores comerciales de ultra baja potencia, como se puede ver en la Tabla 2. En general, el consumo energético de los procesadores comerciales es más bajo debido a su mayor velocidad de procesamiento Bajo precio: procesadores comerciales son considerablemente más baratos, lo que hace que su utilización muy interesante para reducir los costes. Este enfoque podría facilitar el desarrollo e implementación de nuevos sistemas que no podrían desarrollarse debido a alto coste que implicaría la utilización de dispositivos RadHard. Tabla 2: Frecuencia de operación, potencia, y precio de procesadores comerciales. Procesador Frecuencia (MHz) Potencia (W) Precio (USD) TMS320C6748 375-456 0.006 – 0.42 11 ARM Cortex-A9 800 – 2000 0.5 – 1.9 33 Intel I7 960 3200 130 414 Fuentes: (TEXAS INSTRUMENTS, 2015), (ARM, 2015), (EBAY, 2015), (AMAZON, 2015), and (WANG, 2011). Por otro lado, los procesadores comerciales son más sensibles a la radiación. Sin embargo, es posible utilizar técnicas software de tolerancia a fallos para proporcionar una mayor confiabilidad a los procesadores comerciales (OH, 2002a), (AZAMBUJA, 2011a), (REIS, 2005b), (GOLOUBEVA, 2003), (VEMU, 2011). Estas técnicas también son conocidas en la literatura como técnicas SIHFT (Software-Implemented Hardware Fault Tolerance) (GOLOUBEVA, 2006). Las técnicas SIHFT modifican el código fuente de una aplicación sin modificar el hardware subyacente. Por lo tanto, son aplicables a los procesadores comerciales. Las técnicas de tolerancia a fallos basados en software son capaces de detectar una gran cantidad de errores que afectan a los procesadores por el efecto que causan en la ejecución del programa. Aunque la redundancia software aporta confiabilidad al sistema, se requiere tiempo de procesamiento adicional, ya que se ejecutan más instrucciones. Como consecuencia, el consumo de energía se incrementa (YAO, 2013), (ASSAYAD, 2013). Además, un programa confiable requerirá más cantidad de memoria ya que se añade un mayor número de instrucciones para conseguir la redundancia. Un tamaño de código más grande aumenta la probabilidad de cache misses, lo que aumenta el número de accesos a la memoria principal y reduce el rendimiento. Además, la redundancia de instrucciones también aumenta el número de accesos a la memoria. Todas estas transferencias de memoria adicionales contribuyen al aumento del consumo energético (VOGELSANG, 2010), (LI, 2003). El objetivo de esta tesis es proporcionar confiabilidad a los procesadores comerciales, manteniendo un nivel de cobertura a fallos similar a las técnicas SIHFT más modernas, y reduciendo al mismo tiempo los sobrecostes (overheads) inherentes a estas técnicas (tiempo de ejecución y tamaño de memoria). Por lo tanto, la aplicación se ejecutará más rápido, ocupando menos espacio en memoria, y, como consecuencia, tendrá un consumo reducido de energía. Además, cuanto más rápido una aplicación se ejecuta, menor es la probabilidad de que sea afectado por un fallo transitorio, simplemente porque la aplicación se ejecuta en menos tiempo. Por lo tanto, la exposición a la radiación es menor. En consecuencia, la confiabilidad es mayor. Además, un tamaño de código más pequeño reduce la probabilidad de cache misses. El objetivo principal de este trabajo consiste en reducir drásticamente los sobrecostes en tiempo de ejecución y tamaño de memoria, manteniendo una cobertura frente a fallos similar a las técnicas SIHFT del estado de la técnica. Para conseguirlo, se proponen tres pasos: (1) el desarrollo de técnicas SIHFT con los sobrecostes más bajos; (2) la aplicación de métodos de endurecimiento selectivo utilizando las técnicas propuestas para avanzar en la reducción de sobrecostes; y (3) la propuesta de un método para indicar los mejores parámetros para el endurecimiento selectivo. A continuación se presenta una lista detallada a seguir: Descomposición de las técnicas SIHFT en reglas generales de construcción para permitir una evaluación exhaustiva, en términos de confiabilidad y sobrecostes. Como resultado, se proponen nuevas técnicas específicamente diseñadas para combinar la protección de los datos y de flujo de control con sobrecostes reducidos Implementación de métodos selectivos de aplicación de las técnicas de datos y control propuestas. Con respecto a las técnicas de flujo de datos, la selectividad se basa en la selección de registro. Los registros más críticos tienen mayor prioridad a proteger. En cuanto a la técnica de flujo de control, hay dos métodos para la aplicación selectiva: (a) eliminación de verificadores de los bloques básicos menos críticos, y (b) proteger sólo los bloques básicos más críticos Aliviar la necesidad de excesivas pruebas de tolerancia a errores, que demandan demasiado tiempo. Propuesta de un método para guiar la aplicación selectiva de las técnicas SIHFT con el fin de encontrar, en un tiempo más corto, mejores soluciones de compromiso entre la confiabilidad y el rendimiento. Este método modela el espacio de diseño de las técnicas selectivas e indica los mejores parámetros de endurecimiento reduciendo considerablemente los ensayos requeridos. Las métricas escogidas para la evaluación de todas las técnicas y métodos SIHFT selectivos son: la cobertura frente a fallos, el tiempo de ejecución, el tamaño del código. Por lo tanto, las principales aportaciones de este trabajo de tesis son: Mejorar la confiabilidad de las técnicas SIHFT mediante la reducción de los sobrecostes. Esta mayor confiabilidad es alcanzable con las nuevas técnicas SIHFT propuestas y complementado con las metodologías de endurecimientos selectivos existentes y las nuevas propuestas Proporcionar una alta confiabilidad con sobrecostes muy bajos utilizando las técnicas SIHFT propuestas con metodologías de endurecimiento selectivo. Esto permite la protección de las aplicaciones que requieran de fuertes restricciones de rendimiento o energía Proporcionar una alta confiabilidad para aplicaciones con disponibilidad limitada de recursos para la redundancia. A veces, no hay recursos suficientes para aplicar en su totalidad las técnicas SIHFT. En estos escenarios, la protección de las partes más sensibles puede aumentar significativamente la confiabilidad del sistema. Por lo tanto, es importante identificar y proteger estas partes Proponer un modelo que pueda orientar a los diseñadores en la selección de la cantidad de protección que se necesita para llegar a uno de los siguientes parámetros: Máxima confiabilidad Sobrecarga mínima para una cobertura frente a fallos específicos Confiabilidad máxima para una sobrecarga máxima. 2. Metodología y resultados Las técnicas de protección del flujo de datos se basan en la repetición de la información y la verificación de si la información original coincide con la réplica. Para ello los registros libres se utilizan como réplicas de los registros utilizados por la aplicación. Las réplicas realizan las mismas operaciones que los registros originales. Finalmente, se insertan verificadores en el código para comparar el contenido del registro original con su réplica. Dado que el código está totalmente replicado y además se han insertado verificadores, los sobrecostes introducidos por estas técnicas son bastante altas. Como una primera aproximación de los caminos a explorar para reducir este tipo de sobrecostes se pueden enumerar los siguientes: Reducción del número de instrucciones duplicadas: si la memoria está protegido por algun ECC, es posible eliminar la duplicación de las instrucciones de store. También elimina la necesidad de duplicar los datos en la memoria Reducción del número de verificadores: teniendo en cuenta que los errores probablemente se propagarán y pueden ser detectados más tarde, es posible eliminar verificadores del código endurecido. Con el fin de reducir los sobrecostes causados por las técnicas de datos, la propuesta denominada VAR se centrará en la reducción de la duplicación y el número de verificadores. El objetivo es evaluar distintas soluciones de compromiso entre confiabilidad y sobrecostes y encontrar el punto en el que la inserción de más verificadores satura la confiabilidad y sólo aumenta los sobrecostes. Con el fin de complementar las técnicas de datos y promover una protección tanto de los datos como del control, también se introduce una técnica llamada SETA (Software-only Error-detection Technique using Assertions) que permite detectar errores de control en los procesadores sin realizar modificaciones ni agregar hardware adicional. Las penalizaciones en el rendimiento y la memoria causados por SETA son más bajos que otras técnicas de control. SETA se basa en HETA y CEDA. Estas técnicas utilizan firmas en el código para detectar errores que afectan el flujo de control de una aplicación en ejecución. HETA utiliza una firma adicional, lo que aumenta los sobrecostes. Además, se hace uso de un watchdog para ayudar en la detección, lo que requiere energía adicional. Como el autor afirma, el watchdog necesita para su funcionamiento acceder a los buses de memoria. Algunos procesadores que utilizan memorias caché on-chip pueden no ser accesibles por el watchdog, lo que hace imposible aplicar esta técnica en procesadores ARM, por ejemplo. Por otra parte, tanto CEDA y HETA están centrados solamente en la reducción de la tasa de detección pero no tienen en cuenta los sobrecostes que ocasionan. Con el objetivo de proporcionar una tasa de detección de error similar a CEDA pero con unos sobrecostes más bajos, se propone SETA. La técnica utiliza firmas calculadas a priori y que serán procesadas en tiempo de ejecución. Para ello, el código del programa se divide en bloques básicos (BB), y las firmas se asignan a estos bloques básicos. Para conseguir proteger tanto el flujo de datos cuanto el flujo de control de una aplicación en ejecución, SETA se combinó con algunas de las técnicas de datos VAR propuestas (3, 3+, 3++, 4, 4+, 4++, 5, 5+, y 5++). Todos los casos de estudio se evaluaron teniendo en cuenta todas las combinaciones de una técnica VAR y SETA en términos de tiempo de ejecución, tamaño del código, MWTF, y cobertura frente a fallos. La cobertura frente a fallos se evaluó mediante simulación de inyección de fallos. Sin embargo, algunos casos seleccionados se también se evaluaron mediante experimentos de radiación con el fin de validar las inyecciones de fallos simuladas. Los resultados muestran una mejora de la confiabilidad debido a la gran reducción del tiempo de ejecución. Además, se ha notado la importancia de la protección y verificación de instrucciones de store, load, y branch. Como consecuencia, las variaciones de la técnica VAR, debido a sus diferentes niveles de confiabilidad y sobrecostes, abren un abanico de posibilidades para el endurecimiento de las aplicaciones dependiendo de diferentes restricciones. Las implementaciones selectivas utilizando una de las técnicas de datos propuestos, además de la técnica de flujo de control propuesta se introducen a continuación. En primer lugar, el endurecimiento selectivo se lleva a cabo con una técnica de datos a través de la selección de los registros a endurecer. Posteriormente, la técnica de datos selectiva se complementa con una técnica de flujo de control (sin endurecimiento selectivo). Después de eso, la selectividad se implementa en la técnica de flujo de control de dos maneras: (1) la eliminación de los verificadores de bloques básicos seleccionados y (2) la eliminación de toda la protección de los bloques básicos seleccionados. Estos dos enfoques se prueban tanto individualmente como complementada con una técnica de flujo de datos. Por último, el endurecimiento selectivo se aplica en ambas técnicas de datos y de control. Mediante la aplicación de ambas técnicas de forma selectiva, se reducen todavía más los sobrecostes. El objetivo es encontrar la configuración de la protección que presenta unos costes mínimos y en la que la cobertura frente a fallos sigua siendo similar al caso en que las técnicas se apliquen de forma completa. Por otra parte, encontrar la mejor solución de compromiso entre la confiabilidad y el rendimiento es un punto de interés. Técnicas de datos duplican todos los registros utilizados por una aplicación, lo que puede causar gastos significativos. Por lo tanto, el uso de técnicas de datos puede ser inviable si la aplicación tiene unas fuertes restricciones de rendimiento o de memoria. Por otra parte, a veces, la aplicación utiliza muchos registros, no dejando suficiente para duplicar todos los registros utilizados. En tales casos, un subconjunto de los registros utilizados puede ser endurecido. Esto presentará sobrecostes más bajos que el endurecimiento todos los registros, lo que puede satisfacer las limitaciones de la aplicación y proporcionar cierta confiabilidad. Sin embargo, los registros no se pueden seleccionar de forma aleatoria. Una selección aleatoria de registros normalmente proporciona una confiabilidad más baja que un aplicar un enfoque más inteligente basado en el comportamiento de la aplicación. Por lo tanto, el método para seleccionar registros es de gran importancia y afectará a la confiabilidad de la aplicación. Con el fin de mejorar el compromiso entre confiabilidad y sobrecostes, debe analizarse cada registro individualmente. Sin embargo, las pruebas sobre todos los posibles subconjuntos de registros puede resultar inviable debido a que su número crece de forma exponencial. La ecuación 1 demuestra que el número de posibles subconjuntos C de una aplicación depende del número de registros utilizados n. Es dada por la suma de 0 a n del binomio de Newton con coeficientes n y i, donde i es la variable suma. Esta ecuación es equivalente a 2n. (Ec. 1) C_(i:0→n)=∑_(i=0)^n▒n!/i!(n-i)!=∑_(0≤i≤n)▒(n¦i) =2^n Una métrica para definir la criticidad de los registros fue propuesto por Restrepo-Calle (2015). En este trabajo se analiza la aplicación de forma dinámica, evaluando el tiempo de vida de los registros, sus dependencias funcionales, y su utilización por instrucciones derivadas. Como resultado, la métrica proporciona una lista de registros clasificados según su criticidad. Por lo tanto, no hay necesidad de realizar pruebas exhaustivas. En el presente trabajo se utiliza esa métrica como guía para la protección selectiva de los registros. Respecto del endurecimiento selectivo en las técnicas de flujo de control, en este trabajo se aplica a los bloques básicos. Los bloques básicos seleccionados se endurecen con la técnica de flujo de control mientras que el resto se dejan desprotegidos, dependiendo del método de endurecimiento selectivo aplicado. Como SETA demostró ser una técnica de flujo de control superior, el endurecimiento selectivo en las técnicas de flujo de control se implementa utilizando esta técnica. En cuanto a los métodos de endurecimiento selectivo, hay dos enfoques, uno citado por Vemu (VEMU, 2011), pero sin ninguna implementación o evaluación, y otras propuestas en este trabajo. A continuación se explican estos enfoques: SETA-C (SETA minus Checkers): consiste en retirar verificadores de los bloques básicos, como se indica en (VEMU, 2011). Todos los bloques básicos están protegidos por SETA con las firmas. Sin embargo, no todos ellos reciben un verificador. Bloques básicos con más conexiones (predecesores y sucesores) tienen una mayor prioridad para recibir un verificador. Si se produce un error en un bloque básico, sin verificador, se puede detectalo en un bloque básico posterior ya que el error se propagará. SETA-C presenta sobrecostes más bajos que el estándar SETA S-SETA (Selective SETA): es un nuevo método selectivo. Consiste en ignorar por completo algunos bloques básicos. Los bloques básicos ignorados reciben ninguna firma o verificadores. Por lo tanto, es posible proporcionar sobrecostes incluso más bajo que solamente la eliminación de verificadores. Este método de endurecimiento selectivo de SETA selecciona los bloques por su tamaño. Bloques básicos pequeños se ejecutan de forma rápida y utiliza menos posiciones de memoria. Por lo tanto, la probabilidad de ser afectados por una falla es menor. Si se ejecutan sólo unas pocas veces, no serían muy sensible, por lo que su protección no es muy importante. Por otro lado, si se ejecutan con frecuencia, su susceptibilidad a los fallos aumentar debido a su mayor tiempo de exposición, pero la inserción de la protección en tales bloques básicos pequeños puede causar disminución significativa del rendimiento. En base a estas consideraciones se presentan algunas conclusiones: Hemos observado que las aplicaciones pueden llegar a una cobertura máxima de falla de aproximadamente 98-99%. Sin embargo, es muy complicado predecir la detección de fallos para cada nivel de endurecimiento selectivo a través del análisis del código. Hay demasiadas variables que influyen en ello. Cualquier cambio en uno de los siguientes elementos puede causar un cambio significativo en la cobertura frente a fallos y en los sobrecostes Depende de qué tarea realiza la aplicación Depende de cómo se implementó la aplicación Depende de cómo se compiló Una aplicación compilada sin optimizaciones tendrán pocos registros que realizan la mayor parte de los cálculos. Estos registros son mucho más críticos que los otros, ya que son mucho más utilizados. Por otro lado, significa que los sobrecostes cuando los protegen son más altos La misma aplicación compilado con optimizaciones tendría resultados completamente diferentes, con un uso más distribuida de registros Si la aplicación fue implementada en lenguaje ensamblador, la cobertura de la fallos y los sobrecostes dependerá de cómo se implementó la aplicación Una característica que fue posible observar se refiere a la regla de verificación C6. Cuando el número promedio de veces que los bloques básicos se ejecutan es alta, hay una mayor probabilidad de errores afectando los desvíos debido a trastornos en los registros utilizados por estas instrucciones. Por lo tanto, la regla de verificación C6 aumenta significativamente la cobertura frente a fallos en tales casos. La dificultad en la búsqueda de patrones en el código debido a la gran cantidad de parámetros y la alta variabilidad que causan en los sobrecostes y la cobertura frente a fallos de una aplicación endurecida selectivamente hace interesante la búsqueda de otros enfoques para encontrar las mejores soluciones de compromiso entre cobertura frente a fallos y sobrecostes utilizando endurecimiento selectivo. A seguir, se introduce un método para extrapolar los resultados utilizando un pequeño conjunto de resultados como entrada, que proporciona una visión global precisa de la confiabilidad de las aplicaciones y los sobrecostes. El uso de endurecimiento selectivo se puede hacer al mismo tiempo en ambas técnicas de datos y de control. De este modo, sería posible conseguir aún mejores soluciones de compromiso entre confiabilidad y rendimiento que sólo aplicando el endurecimiento selectivo en una de las técnicas. Sin embargo, es difícil de encontrar patrones en el endurecimiento selectivo porque la aplicación es muy variable debido a los muchos parámetros que influyen en su cobertura frente a fallos y los sobrecostes. Por otra parte, la exploración de todas las posibilidades para cada aplicación no es factible, debido principalmente a la necesidad de realizar campañas de inyección de fallos en todas las posibles versiones selectivas endurecidas. La prueba de cada versión toma de varias horas a semanas en el nivel RTL, dependiendo de la aplicación. Esto significa que las pruebas de todas las posibilidades para el endurecimiento selectivo tomarían de semanas a años. Un método con menor tiempo para encontrar los puntos de interés, o al menos para indicar las áreas más prometedoras, puede acelerar el tiempo necesario para proteger y evaluar una aplicación. Una extrapolación de los resultados se realizó utilizando una interpolación lineal de cuatro regresiones de tangente hiperbólica. Cada tangente hiperbólica (como la presentada en la Ec. D.2) representa un extremo de la combinación de S-VAR, con S-SETA. Por ejemplo, cuando S-SETA es 0 (no tiene bloque básicos endurecidos), x es el porcentaje de registros endurecidos, e y la detección de fallos. Entonces, ajustamos a la Ec. 2 con los datos de simulados con respecto a S-VAR (x), S-SETA (0). El mismo proceso se lleva a cabo para los otros tres extremos. Por último, las cuatro ecuaciones se interpolan linealmente con el fin de obtener una superficie de coberturas de fallos para todas las posibles variaciones de registros endurecidos o bloques básicos endurecidos. (Ec. 2) y=A∙tanh(B∙x+C)+D En resumen, hemos propuesto y aplicado métodos de endurecimiento selectivo a técnicas de datos y de control. El endurecimiento selectivo de las técnicas de datos consiste en la selección de los registros que son endurecidos. Considerando S-VAR aplicado conjuntamente con SETA, se observó que la confiabilidad es mayor para una mayor cantidad de registros endurecidos, incluso cuando los resultados son normalizados por el tiempo de ejecución (que es más alto para más registros endurecidos). Sin embargo, es importante notar que la confiabilidad aumenta más para el endurecimiento de los registros más importantes que la confiabilidad adicional proporcionada por los registros posteriores (basado en el grado de criticidad). Hay dos justificaciones: (1) los registros más críticos son proporcionalmente mucho más críticos; por lo tanto, aumenta más la cobertura frente a fallos cuando son endurecidos; y (2) cuanto más registros son endurecidos, más las protecciones de los registros se superponen. En resumen, esto significa que aún es posible lograr coberturas altas de fallo cuando endureciendo menos registros. En lo que respecta al endurecimiento selectivo de técnicas de flujo de control, se compararon dos enfoques: SETA-C y S-SETA. SETA-C proporciona una alta confiabilidad incluso cuando se seleccionan unos pocos bloques básicos. Que se justifica porque SETA-C protege todos los bloques básicos y selecciona solamente los bloques básicos recibirán verificadores. Por lo tanto, un fallo que afecta a un bloque básico puede propagarse y puede ser detectado en uno de los siguientes bloques básicos. La desventaja es que SETA-C no reduce mucho los sobrecostes. En algunos casos, el endurecimiento de 70% los bloques básicos con S-SETA presenta sobrecostes más bajos que el endurecimiento de 10% de los bloques básicos con SETA-C. S-SETA implementa un nuevo método para la selección de los bloques básicos, en el cual bloques básicos son completamente ignorados. S-SETA no mejora la confiabilidad cuando se endurecen muy pocos bloques básicos. Sin embargo, logra muy altos MWTFs cuando más de la mitad de los bloques básicos son endurecidos. Y esto es debido principalmente a sus sobrecostes más bajos. Por último, para evaluar todas las posibilidades de utilizar el endurecimiento selectivo con ambas técnicas de datos y técnicas de control, y ayudar a los diseñadores a obtener una imagen global de la confiabilidad de una aplicación, se propuso un modelo para extrapolar los resultados simulados. El modelo mostró exactitud en la estimación de la cobertura frente a fallos, tiempo de ejecución, y MWTF, y señalando las áreas de mayor MWTF, incluso cuando se utilizan menos puntos como entrada al modelo. 3. Conclusiones Este trabajo presentó un estudio para reducir el tiempo de ejecución y los sobrecostes de memoria sin perder confiabilidad. De esta manera, se propuso un conjunto de técnicas de datos basadas en reglas denominadas técnicas VAR. Ellas incluyen y extienden las técnicas de datos anteriores debido a las reglas de construcción generales. Con las reglas, un análisis completo de las técnicas de datos en base a la redundancia fue posible. Siguiendo los resultados de MWTF, se ha demostrado que no vale la pena proteger una aplicación con las técnicas de datos sólo porque los inconvenientes causados por los sobrecostes podrán superar la confiabilidad proporcionada por la técnica. Sin embargo, las técnicas de datos deben ser utilizadas junto con técnicas de control. En esta situación, los beneficios proporcionados por las técnicas SIHFT son claros. El mayor MWTF se consigue mediante una nueva técnica de datos (VAR3+) combinada con SETA. SETA es una nueva técnica de flujo de control que es un 11,0% más rápido y ocupa 10,3% menos posiciones de memoria con cobertura frente a fallos similar a una técnica estado del arte. Al usar una de las técnicas de datos VAR más prometedores con SETA, se consigue una cobertura frente a fallos similar a las técnicas presentes en la literatura, con la reducción de los sobrecostes. En tal escenario, las aplicaciones endurecidas llegaron a un MWTF promedio de 5.17x. Un paso extra en la reducción de los sobrecostes o en el aumento del MWTF se hace con el uso de endurecimiento selectivo. Se puede reducir significativamente los sobrecostes con ninguna o una pequeña pérdida en la cobertura frente a fallos. En cuanto a las técnicas de datos, el endurecimiento selectivo se llevó a cabo con el fin de encontrar qué registro debe y cual no debe ser endurecido en función de su criticidad. Uno puede notar que es posible lograr una cobertura falta similar endureciendo menos registros. Esta información es muy útil en muchas aplicaciones que no tienen suficientes registros disponibles para ser asignados como réplicas. De todos modos, se logró el mayor MWTF cuando se endurecen mayoría de los registros. Por lo tanto, si hay suficientes registros no utilizados, y los sobrecostes siguen cumpliendo las restricciones de aplicación, es recomendable la protección de todos los registros. En relación al endurecimiento selectivo en las técnicas de control, dos métodos se evaluaron utilizando SETA. Un endurecimiento todos los bloques básicos, pero con eliminación de verificadores de los bloques menos críticos (llamada SETA-C), y otro donde solamente seleccionados bloques son endurecidos (llamada S-SETA). El último método es una novedad de este trabajo. Ambos métodos de endurecimiento selectivo pueden mejorar el MWTF con la reducción de los sobrecostes. Esta mejora es más notable en S-SETA debido a sus sobrecostes significativamente más bajos. Los MWTFs más altos se alcanzan habitualmente a partir del endurecimiento de 60% de los bloques básicos, cuando se utiliza S-SETA. Los resultados convergen para SETA cerca de 100% de los bloques básicos endurecidos. En resumen, los dos principales aportaciones de las técnicas SIHFT propuestas y métodos de endurecimiento selectivo son: (1) fue posible reducir significativamente los sobrecostes con una pequeña reducción en la cobertura frente a fallos, que puede traer la confiabilidad a las aplicaciones con tiempo limitado o restricciones de energía; y (2) fue posible mantener la cobertura frente a fallos similar a las técnicas SIHFT del estado del arte y reducir los sobrecostes. En otras palabras, esto significa un aumento de la confiabilidad, debido al tiempo más corte de exposición. Finalmente, se propone un método para extrapolar la cobertura frente a fallos y el tiempo de ejecución, y estimar los resultados alcanzables mediante la combinación de técnicas selectivas de datos y control. El método estima los resultados con gran precisión, lo que puede acelerar significativamente el proyecto, ya que sólo unos pocos casos necesitan ser probados, en lugar de probar todas las posibilidades, con el fin de encontrar la mejor combinación de la técnica selectivas datos y control que se adapte a los requisitos de la aplicación.


Fundación Dialnet

Mi Documat