ESCUELA DE DOCTORADO

 
Tesis Doctorales de la Universidad de Alcalá
APORTACIONES AL DISEÑO DE ARQUITECTURA DE COMPUTADORES ORIENTADAS A INCREMENTAR LA FIABILIDAD Y SU USO OPTIMIZADO EN PROYECTOS ESPACIALES
Autor/aGamino del Río, Iván
DepartamentoAutomática
Director/aMartínez Hellín, Agustín
Codirector/aRodríguez Polo, Óscar
Fecha de depósito23-07-2024
Periodo de exposición pública24 de julio a 6 de septiembre de 2024
Fecha de defensaSin especificar
ModalidadPresencial
ProgramaInvestigación Espacial y Astrobiología (RD 99/2011)
Mención internacionalNo
ResumenLos sistemas software empleados en el ámbito espacial requieren de una validación y verificación exhaustiva dada su criticidad. Para ello, durante su fase de desarrollo se hace uso de técnicas de trazado que permiten la caracterización del software y proporcionan evidencias del cumplimiento de los requisitos no funcionales establecidos en las fases de definición y diseño. A día de hoy, existe una amplía gama de soluciones que tratan de abordar esta tarea, pero muchas de ellas son intrusivas e introducen sobrecarga en el tiempo de ejecución del software, lo que dificulta la estimación del valor del tiempo de ejecución en el peor caso de las funciones, necesario para analizar la planificabilidad de los sistemas críticos. Aquellas técnicas que no introducen sobrecarga carecen, sin embargo, de la capacidad de obtener una traza selectiva, por lo que generan un gran volumen de datos que complica su análisis. Esta tesis presenta dos propuestas de arquitectura de computadores que permiten una traza selectiva que evita la sobrecarga en el tiempo de ejecución del código. Se ha implementado sobre FPGA un procesador para cada arquitectura propuesta dando como resultado los procesadores RV32Xtrace y RV32Xnitrace. El procesador RV32Xtrace permite la ejecución transparente de instrucciones de traza introducidas mediante el mecanismo de la instrumentación, ampliamente utilizado en la caracterización de sistemas software empotrados. El procesador RV32Xnitrace, por su parte, evita el uso del mecanismo de la instrumentación, almacenando las instrucciones de traza en una memoria auxiliar. Ambas soluciones permiten la ejecución sincronizada y, en paralelo, de las instrucciones de traza con las instrucciones de programa trazadas. En el procesador RV32Xtrace se ha implementado la ejecución de un único tipo de instrucción de traza que habilita el cálculo del tiempo de ejecución en el peor caso del código. En el procesador RV32Xnitrace se ha ampliado el tipo de instrucciones de traza disponibles, de forma que éstas son capaces de trazar, además, diferentes elementos del contexto de ejecución del programa, como los registros de propósito general, los registros de control y estado e incluso el contenido de direcciones específicas de la memoria de datos. Es de especial interés la posibilidad de trazar el contenido de los registros de control y estado ya que son empleados por las unidades de monitorización de rendimiento para almacenar información del contexto de ejecución, y poder observar esta información sin interferir en la ejecución resulta muy útil en la caracterización del software. Ambos procesadores han sido validados empleando como referencia un software representativo de las misiones espaciales, como es el software de arranque de la unidad de control del instrumento EPD a bordo del satélite Solar Orbiter, que se encuentra actualmente en su fase de operación.