Contributions to the fault tolerance of soft-core processors implemented in sram-based fpga systems
- Aitzol Zuloaga Izaguirre Director
Universidad de defensa: Universidad del País Vasco - Euskal Herriko Unibertsitatea
Fecha de defensa: 26 de julio de 2018
- Eduardo Torre Arnanz Presidente/a
- Javier del Ser Lorente Secretario
- Alvaro Llaria Leal Vocal
Tipo: Tesis
Resumen
Gracias al desarrollo de las tecnolog¿¿as de disen¿o y fabricaci¿on, los circuitos electr¿onicos han llegado a grandes niveles de integraci¿on. De esta forma, hoy en d¿¿a es posible implementar completos y complejos sistemas dentro de un u¿nico dispositivo incorporando gran variedad de elementos como: procesadores, oscila- dores, lazos de seguimiento de fase (PLLs), interfaces, conversores ADC y DAC, m¿odulos de memoria, etc. A este concepto de disen¿o se le denomina comu¿nmente SoC (System-on-Chip).Una de las plataformas para implementar estos sistemas que m¿as importancia est¿a cobrando son las FPGAs (Field Programmable Gate Array). Hist¿oricamente la plataforma m¿as utilizada para albergar los SoCs han sido las ASICs (Application- Specific Integrated Circuits), debido a su bajo consumo energ¿etico y su gran rendimiento. No obstante, su costoso proceso de desarrollo y fabricaci¿on hace que solo sean rentables en el caso de producciones masivas. Las FPGAs, por el contrario, al ser dispositivos configurables ofrecen, la posibilidad de implementar disen¿os personalizados a un coste mucho m¿as reducido. Por otro lado, los conti- nuos avances en la tecnolog¿¿a de las FPGAs est¿an haciendo que ¿estas compitan con las ASICs a nivel de prestaciones (consumo, nivel de integraci¿on y eficiencia).Ciertas tecnolog¿¿as de FPGA, como las SRAM y Flash, poseen una caracter¿¿sti- ca que las hace especialmente interesantes en multitud de disen¿os: la capacidad de reconfiguraci¿on. Dicha caracter¿¿stica, que incluso puede ser realizada de for- ma aut¿onoma, permite cambiar completamente el disen¿o hardware implementado con solo cargar en la FPGA un archivo de configuraci¿on denominado bitstream. La reconfiguraci¿on puede incluso permitir modificar una parte del circuito con- figurado en la matriz de la FPGA, mientras el resto del circuito implementado continu¿a inalterado. Esto que se conoce como reconfiguraci¿on parcial din¿amica, posibilita que un mismo chip albergue en su interior numerosos disen¿os hardware que pueden ser cargados a demanda. Gracias a la capacidad de reconfiguraci¿on, las FPGAs ofrecen numerosas ventajas como: posibilidad de personalizaci¿on de disen¿os, capacidad de re-adaptaci¿on durante el funcionamiento para responder a cambios o corregir errores, mitigaci¿on de obsolescencia, diferenciaci¿on, menores costes de disen¿o o reducido tiempo para el lanzamiento de productos al mercado.Los SoC basados en FPGAs allanan el camino hacia un nuevo concepto de in- tegraci¿on de hardware y software, permitiendo que los disen¿adores de sistemas electr¿onicos sean capaces de integrar procesadores embebidos en los disen¿os pa- ra beneficiarse de su gran capacidad de computaci¿on. Gracias a esto, una parte importante de la electr¿onica hace uso de la tecnolog¿¿a FPGA abarcando un gran abanico de campos, como por ejemplo: la electr¿onica de consumo y el entreteni- miento, la medicina o industrias como la espacial, la avi¿onica, la automovil¿¿stica o la militar.Las tecnolog¿¿as de FPGA existentes ofrecen dos v¿¿as de utilizaci¿on de procesado- res embebidos: procesadores hard-core y procesadores soft-core. Los hard-core son procesadores discretos integrados en el mismo chip de la FPGA. Generalmente ofrecen altas frecuencias de trabajo y una mayor previsibilidad en t¿erminos de rendimiento y uso del ¿area, pero su disen¿o hardware no puede alterarse para ser personalizado. Por otro lado, un procesador soft-core, es la descripci¿on hardware en lenguaje HDL (normalmente VDHL o Verilog) de un procesador, sintetizable e implementable en una FPGA. Habitualmente, los procesadores soft-core suelen basarse en disen¿os hardware ya existentes, siendo compatibles con sus juegos de instrucciones, muchos de ellos en forma de IP cores (Intellectual Property co- res). Los IP cores ofrecen procesadores soft-core predisen¿ados y testeados, que dependiendo del caso pueden ser de pago, gratuitos u otro tipo de licencias. De- bido a su naturaleza, los procesadores soft-core, pueden ser personalizados para una adaptaci¿on ¿optima a disen¿os espec¿¿ficos. As¿¿ mismo, ofrecen la posibilidad de integrar en el disen¿o tantos procesadores como se desee (siempre que haya disponibles recursos l¿ogicos suficientes). Otra ventaja importante es que, gracias a la reconfiguraci¿on parcial din¿amica, es posible an¿adir el procesador al disen¿o u¿nicamente en los casos necesarios, ahorrando de esta forma, recursos l¿ogicos y consumo energ¿etico.Uno de los mayores problemas que surgen al usar dispositivos basados en las tecnolog¿¿as SRAM o la flash, como es el caso de las FPGAs, es que son especial- mente sensibles a los efectos producidos por part¿¿culas energ¿eticas provenientes de la radiaci¿on c¿osmica (como protones, neutrones, part¿¿culas alfa u otros iones pesados) denominados efectos de eventos simples o SEEs (Single Event Effects). Estos efectos pueden ocasionar diferentes tipos de fallos en los sistemas: desde fallos despreciables hasta fallos realmente graves que compromentan la funcio- nalidad del sistema. El correcto funcionamiento de los sistemas cobra especial relevancia cuando se trata de tecnolog¿¿as de elevado costo o aquellas en las que peligran vidas humanas, como por ejemplo, en campos tales como el transporte ferroviario, la automoci¿on, la avi¿onica o la industria aeroespacial.Dependiendo de distintos factores, los SEEs pueden causar fallos de operaci¿on transitorios, cambios de estados l¿ogicos o dan¿os permanentes en el dispositivo. Cuando se trata de un fallo f¿¿sico permanente se denomina hard-error, mientras que cuando el fallo afecta el circuito moment¿aneamente se denomina soft-error. Los SEEs m¿as frecuentes son los soft-errors y afectan tanto a aplicaciones comer- ciales a nivel terrestre, como a aplicaciones aeron¿auticas y aeroespaciales (con mayor incidencia en estas u¿ltimas). La contribuci¿on exacta de este tipo de fallos a la tasa de errores depende del disen¿o espec¿¿fico de cada circuito, pero en general se asume que entorno al 90 % de la tasa de error se debe a fallos en elementos de memoria (latches, biestables o celdas de memoria). Los soft-errors pueden afectar tanto al circuito l¿ogico como al bitstream cargado en la memoria de configuraci¿on de la FPGA. Debido a su gran taman¿o, la memoria de configuraci¿on tiene m¿as probabilidades de ser afectada por un SEE.La existencia de problemas generados por estos efectos reafirma la importancia del concepto de tolerancia a fallos. La tolerancia a fallos es una propiedad relativa a los sistemas digitales, por la cual se asegura cierta calidad en el funcionamiento ante la presencia de fallos, debiendo los sistemas poder soportar los efectos de dichos fallos y funcionar correctamente en todo momento. Por tanto, para lo- grar un disen¿o robusto, es necesario garantizar la funcionalidad de los circuitos y asegurar la seguridad y confiabilidad en las aplicaciones cr¿¿ticas que puedan verse comprometidos por los SEE. A la hora de hacer frente a los SEE existe la posibilidad de explotar tecnolog¿¿as espec¿¿ficas centradas en la tolerancia a fallos, como por ejemplo las FPGAs de tipo fusible, o por otro lado, utilizar la tecno- log¿¿a comercial combinada con t¿ecnicas de tolerancia a fallos. Esta u¿ltima opci¿on va cobrando importancia debido al menor precio y mayores prestaciones de las FPGAs comerciales.Generalmente las t¿ecnicas de endurecimiento se aplican durante la fase de di- sen¿o. Existe un gran nu¿mero de t¿ecnicas y se pueden llegar a combinar entre si. Las t¿ecnicas prevalentes se basan en emplear algu¿n tipo de redundancia, ya sea hardware, software, temporal o de informaci¿on. Cada tipo de t¿ecnica presenta diferentes ventajas e inconvenientes y se centra en atacar distintos tipos de SEE y sus efectos. Dentro de las t¿ecnicas de tipo redundancia, la m¿as utilizada es la hardware, que se basa en replicar el m¿odulo a endurecer. De esta forma, cada una de las r¿eplicas es alimentada con la misma entrada y sus salidas son comparadas para detectar discrepancias. Esta redundancia puede implementarse a diferentes niveles. En t¿erminos generales, un mayor nivel de redundancia hardware implica una mayor robustez, pero tambi¿en incrementa el uso de recursos. Este incremento en el uso de recursos de una FPGA supone tener menos recursos disponibles para el disen¿o, mayor consumo energ¿etico, el tener m¿as elementos susceptibles de ser afectados por un SEE y generalmente, una reducci¿on de la m¿axima frecuencia alcanzable por el disen¿o. Por ello, los niveles de redundancia hardware m¿as utili- zados son la doble, conocida como DMR (Dual Modular Redundancy) y la triple o TMR (Triple Modular Redundancy).La DMR minimiza el nu¿mero de recursos redundantes, pero presenta el problema de no poder identificar el m¿odulo fallido ya que solo es capaz de detectar que se ha producido un error. Ello hace necesario combinarlo con t¿ecnicas adicionales. Al caso de DMR aplicado a procesadores se le denomina lockstep y se suele com- binar con las t¿ecnicas checkpoint y rollback recovery. El checkpoint consiste en guardar peri¿odicamente el contexto (contenido de registros y memorias) de ins- tantes identificados como correctos. Gracias a esto, una vez detectado y reparado un fallo es posible emplear el rollback recovery para cargar el u¿ltimo contexto correcto guardado. Las desventajas de estas estrategias son el tiempo requerido por ambas t¿ecnicas (checkpoint y rollback recovery ) y la necesidad de elementos adicionales (como memorias auxiliares para guardar el contexto).Por otro lado, el TMR ofrece la posibilidad de detectar el m¿odulo fallido me- diante la votaci¿on por mayor¿¿a. Es decir, si tras comparar las tres salidas una de ellas presenta un estado distinto, se asume que las otras dos son correctas. Esto permite que el sistema continu¿e funcionando correctamente (como sistema DMR) au¿n cuando uno de los m¿odulos quede inutilizado. En todo caso, el TMR solo enmascara los errores, es decir, no los corrige. Una de las desventajas m¿as destacables de ¿esta t¿ecnica es que incrementa el uso de recursos en m¿as de un 300 %. Tambi¿en cabe la posibilidad de que la salida discrepante sea la realmente correcta (y que por tanto, las otras dos sean incorrectas), aunque este caso es bas- tante improbable. Uno de los problemas que no se ha analizado con profundidad en la bibliograf¿¿a es el problema de la sincronizaci¿on de procesadores soft-core en sistemas TMR (o de mayor nivel de redundancia). Dicho problema reside en que, si tras un fallo se inutiliza uno de los procesadores y el sistema continua funcionando con el resto de procesadores, una vez reparado el procesador fallido,¿este necesita sincronizar su contexto al nuevo estado del sistema.Una pr¿actica bastante comu¿n en la implementaci¿on de sistemas redundantes es combinarlos con la t¿ecnica conocida como scrubbing. Esta t¿ecnica basada en la reconfiguraci¿on parcial din¿amica, consiste en sobrescribir peri¿odicamente el bits- tream con una copia libre de errores apropiadamente guardada. Gracias a ella, es posible corregir los errores enmascarados por el uso de algunas t¿ecnicas de endurecimiento como la redundancia hardware. Esta copia libre de errores suele omitir los bits del bitstream correspondientes a la memoria de usuario, por lo que solo actualiza los bits relacionados con la configuraci¿on de la FPGA. Por ello, a esta t¿ecnica tambi¿en se la conoce como configuration scrubbing. En toda la lite- ratura consultada se ha detectado un vacio en cuanto a t¿ecnicas que propongan estrategias de scrubbing para la memoria de usuario.Con el objetivo de proponer alternativas innovadoras en el terreno de la toleran- cia a fallos para procesadores soft-core, en este trabajo de investigaci¿on se han desarrollado varias t¿ecnicas y flujos de disen¿o para manejar los datos de usuario a trav¿es del bitstream, pudiendo leer, escribir o copiar la informaci¿on de registros o de memorias implementadas en bloques RAMs de forma aut¿onoma. As¿¿ mismo se ha desarrollado un abanico de propuestas tanto como para estrategias lockstep como para la sincronizaci¿on de sistemas TMR, de las cuales varias hacen uso de las t¿ecnicas desarrolladas para manejar las memorias de usuario a trav¿es del bitstream. Estas u¿ltimas t¿ecnicas tienen en comu¿n la minimizaci¿on de utilizaci¿on de recursos respecto a las estrategias tradicionales. De forma similar, se propo- nen dos alternativas adicionales basadas en dichas t¿ecnicas: una propuesta de scrubbing para las memorias de usuario y una para la recuperaci¿on de informa- ci¿on en memorias implementadas en bloques RAM cuyas interfaces hayan sido inutilizadas por SEEs.Todas las propuestas han sido validadas en hardware utilizando una FPGA de Xilinx, la empresa l¿¿der en fabricaci¿on de dispositivos reconfigurables. De esta forma se proporcionan resultados sobre los impactos de las t¿ecnicas propuestas en t¿erminos de utilizaci¿on de recursos, consumos energ¿eticos y m¿aximas frecuencias alcanzables.