Configuration aware readback scrubber

Correa Oliva, Carlos Javier (2019). Configuration aware readback scrubber. Thesis (Master thesis), E.T.S.I. Industriales (UPM).

Description

Title: Configuration aware readback scrubber
Author/s:
  • Correa Oliva, Carlos Javier
Contributor/s:
  • Torre Arnanz, Eduardo de la
  • Pérez García, Arturo
Item Type: Thesis (Master thesis)
Masters title: Ingeniería Industrial
Date: 11 October 2019
Subjects:
Freetext Keywords: FPGA, 7-Series, SoC, ZYNQ-7000, Soft Error Mitigation, SECDEC, ECC, CRC, Configuration Scrubber, Readback, PCAP, Configuration Aware, Partial Reconfiguration, Xilinx, bitstream
Faculty: E.T.S.I. Industriales (UPM)
Department: Ingeniería Electrónica
Creative Commons Licenses: Recognition - Share

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (2MB) | Preview

Abstract

El continuo desarrollo de los sistemas de procesamiento y las necesidades crecientes de las aplicaciones que en ellos corren, han llevado a considerar el empleo de dispositivos FPGAs, basado en memorias SRAM, a ser partícipes de los sistemas destinados a servir en entornos con gran cantidad de impactos de partículas ionizantes, ya sean provocados por la fisión nuclear, dentro de la atmósfera terrestre, o por impacto de partículas de alta energía características del espacio exterior. Los dispositivos programables basados en memorias SRAM presentan un comportamiento muy deficiente en estos entornos, ya que el impacto de una partícula ionizante puede provocar que el estado de una célula de memoria cambie de valor de forma no intencionada por el sistema. En el caso particular de las FPGAs, se emplean memorias SRAM para almacenar el estado de configuración de la lógica del sistema. Esto tiene como consecuencia que estos dispositivos puedan perder su funcionalidad y quedar inservibles si sufren este tipo de agresión. El empleo de dispositivos diseñados específicamente para trabajar en el espacio, acarrea un coste superior, debido a la forma en que se diseñan y fabrican estos componentes, al mismo tiempo que presentan unas capacidades de procesamiento menores que sus coetáneos comerciales, así, debido a las necesidades de mejorar la potencia de procesamiento en los sistemas espaciales, de reducir coste en su fabricación y de mejorar la autonomía de estos dispositivos surgen alternativas a los procesos de endurecimiento tradicionales. Las FPGAs son elementos de gran capacidad de procesamiento y existe gran interés en que participen del procesamiento de los sistemas destinados a servir en el espacio exterior. Para paliar los efectos de las radiaciones se han desarrollado multitud de mecanismos de protección, ya sean debidos a redundancia en los transistores que conforman las células de memoria, o empleando elementos que modifican los umbrales de activación de dichas células, se han planteado sistemas de redundancia triple modular con dispositivos capaces de ignorar parte de la lógica cuando se reconoce un error en la misma. Del mismo modo, se han comenzado a aplicar algoritmos de mayor complejidad que buscan detectar la posición de los errores dentro de las memorias de configuración de las FPGAs, la mayoría de ellos basados en códigos de corrección de errores (ECC) y en códigos de comprobación redundante cíclica (CRC). A esta forma de mitigación a partir del acceso a la memoria de configuración en busca de errores se conoce como configuration scrubbers. Todos los scrubbers comparten tres elementos en su arquitectura, una memoria de configuración, sobre la que se realizan las operaciones de corrección, una memoria de seguridad, que contiene una copia original del sistema en un elemento endurecido, y la lógica del scrubber implementado. Las arquitecturas de estos scrubbers se basan en la capacidad de leer y reconfigurar las FPGAs, de tal forma que ellas mismas, o desde un elemento de procesamiento externo, puedan llevar a cabo la comprobación de los valores almacenados en memoria, identificar errores a partir de los algoritmos de ECC y CRC, y tomar decisiones en cuanto a la forma de reparación necesaria. Es más, estas mecánicas abren paso a la capacidad de distinguir si una región de la FPGA se encuentra incapacitada debido a un fallo físico del sistema. El fabricante Xilinx, tiene integrado en sus dispositivos circuitería capaz de computar un algoritmo de Hamming [1], que permite la capacidad de posicionar un error simple y de detectar errores múltiples en una unidad básica de memoria denominada frame. Además, cuenta con otro tipo de protección de la memoria completa basada en un circuito que es capaz de computar el valor de CRC. A partir del empleo de estos elementos, que se encuentran embebidos en el silicio de las FPGAs de Xilinx, han surgido diferentes tipos de arquitecturas de scrubbing. Para permitir el acceso a la memoria de configuración, las FPGAs de Xilinx cuentan con un módulo programable a través del cual se escriben los valores de los frames, que, a su vez, representan el circuito lógico sintetizado por la herramienta software VIVADO. Este elemento se denomina módulo de configuración. Para acceder al módulo de configuración se pueden emplear varias rutas, desde el exterior se puede emplear un puerto JTAG o un puerto SelectMAP, desde el interior se puede emplear el puerto ICAP o el puerto PCAP, este último característico de la familia ZYNQ-7000 [2]. Esta familia se corresponde con un conjunto de dispositivos formados por un único circuito integrado que alberga un elemento de procesamiento basado en lógica programable, una FPGA, y otro elemento de procesamiento basado en un microprocesador. En particular, en este proyecto se ha empleado una XC7Z020-1CLG400C, que cuenta con una FPGA equivalente a una Artix 7, y dos microprocesadores ARM Cortex 9. En este proyecto se ha buscado la implementación de un Configuration Aware Readback Scrubber a partir de un scrubber Híbrido. La arquitectura de un scrubber híbrido pretende sacar el máximo partido de los mecanismos de mitigación presentes en las FPGAs haciendo un uso mínimo de los recursos de la lógica programable. En particular las FPGAs de la serie 7 de Xilinx cuentan con un elemento denominado Readback CRC que es capaz de acceder a la memoria de configuración y de extraer datos para calcular los valores de ECC y CRC correspondientes. En base a estos algoritmos, el Readback CRC es capaz de identificar posiciones de bits erróneos, si estos errores son simples, o de lanzar una bandera, si los errores son múltiples. Ante errores simples el mecanismo hará un intento de corrección del bit mediante la escritura del frame afectado. Cabe destacar la gran ventaja que supone poder ejecutar una corrección desde la matriz de la FPGA sin tener que recurrir al acceso de una memoria externa de seguridad. Cuando se da una situación que no es corregible desde el valor de ECC, se lanzan los avisos correspondientes para ejecutar alternativas a la reparación. En particular, se puede recurrir a memorias externas de seguridad para que se pueda reconfigurar la posición de memoria afectada a partir de una copia original. Este mecanismo de detección no es perfecto y necesita de una segunda capa de protección para cuando el código de ECC falla. Por ello, las FPGAs de Xilinx cuentan con un algoritmo de CRC. Este algoritmo tiene una gran probabilidad de detectar hasta 31 bits erróneos en cada frame analizado, siendo su principal desventaja la incapacidad de identificar la posición de memoria afectada. Esto implica que un error de CRC debe ir acompañado de una reconfiguración completa de la memoria de la FPGA. En los scrubbers híbridos se confían las tareas de reconfiguraciones completas del sistema al procesador externo y las tareas de corrección en base a ECC y de detección por ECC y CRC al hardware de la FPGA. En el caso de las ZYNQ-7000 el procesador se encuentra fabricado en el mismo circuito integrado y cuenta con un puerto de acceso dedicado hacia la memoria de configuración de la FPGA. En particular, cuentan con una serie de registros mapeados en memoria, denominado Device Configuration, que permiten configurar el acceso mediante el PCAP y poder así establecer transferencias entre el procesador y la memoria de configuración a través de la interfaz PCAP que interactúa con el módulo de configuración. Sin embargo, los scrubbers híbridos tienen una serie de desventajas cuando se enfrentan a sistemas que pretenden funcionar con regiones reconfigurables. El primero de ellos radica en que el valor de CRC se modifica en función del módulo que se configure, por lo que este mecanismo de protección perdería funcionalidad tras la primera reconfiguración. Por otro lado, los scrubbers son deterministas y trazan lecturas de la memoria de forma incremental, ignorando por completo las necesidades de priorización que pudiera tener un sistema real. Frente a estos inconvenientes, el presente proyecto plantea la implementación de una arquitectura pensada para trabajar en conjunto con un sistema de redundancia triple modular para tres regiones reconfigurables, de tal forma que, cuando el votador reporte un fallo en uno de las regiones, el sistema sea capaz de escanear dicha región directamente, frame a frame, pretendiendo mejorar la velocidad de respuesta desde la inducción de un error en la configuración. Además, se plantean los comandos que se deben emplear durante los procesos de reconfiguración para provocar que el Readback CRC recalcule el valor de CRC de referencia del sistema. La integración de este sistema permitiría a los sistemas de procesamiento en el espacio, la capacidad de disponer de un mecanismo de scrubbing híbrido, destinado a monitorizar el estado de toda la FPGA, haciendo un uso mínimo de los elementos lógicos programables, al mismo tiempo que permitiría ejecutar un modo de funcionamiento basado en el reconocimiento del estado de configuración, siendo capaz de priorizar el buen estado de las regiones que suponen módulos de cómputo críticos para el sistema, sin perder la capacidad de operar bajo la protección de un scrubber híbrido, una vez se ha reparado el módulo reconfigurable. Con el desarrollo de este trabajo se ha logrado implementar la funcionalidad descrita en un entorno de ensayo controlado, mediante la inducción de errores a través del mismo puerto de configuración. Del mismo modo, no se ha integrado el sistema de scrubbing con un sistema de procesamiento real, por lo que la continuación lógica de este proyecto supondría la implementación de un complejo sistema de pruebas de funcionamiento que opere en un entorno de partículas ionizantes, así como la integración de este mecanismo con un sistema de procesamiento real destinado a operar en el espacio. El futuro de las técnicas de mitigación de errores va a suponer una nueva forma de diseño de los sistemas espaciales, buscando el desarrollo de plataformas de gran autonomía con capacidad de discernir su estado de configuración y su estado de fallo, de tal forma que puedan tomar decisiones instantáneas sobre módulos no funcionales, ya sean estos embebidos en una FPGA, pertenecientes a un sistema periférico o un punto de comunicación externo. Este escenario, en conjunto con la capacidad de reconfiguración de las FPGAs podría ser el germen de sistemas autorreparables y capaces de hacer peticiones sobre su propio mantenimiento.

More information

Item ID: 65303
DC Identifier: http://oa.upm.es/65303/
OAI Identifier: oai:oa.upm.es:65303
Deposited by: Carlos Javier Correa Oliva
Deposited on: 08 Nov 2020 10:47
Last Modified: 08 Nov 2020 10:47
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM