Implementación de una Unidad de Manejo de Memoria (MMU) en la lógica programable del FPGA para administrar las memorias DDRAM, SRAM y eNVM de la OBC - Angos Jaqui, Angelo Vladimir (2024)
El auge del uso de sistemas embebidos en todos los campos de la electrónica, está promoviendo su utilización en ambientes críticos. En este sentido, el ámbito espacial no es una excepción y en los últimos años se está trabajando en la propuesta de computadoras de a bordo de satélites(OBC) que incluyan este tipo de componentes. Considerando que uno de los principales retos es brindar robustez al sistema y ampliar el ciclo de vida útil de un satélite, es imprescindible mitigar los efectos negativos de la radiación sobre la OBC. Uno de los principales efectos sobre la circuitería es el cambio del estado de un bit en un registro de memoria (SEU), lo que puede producir errores inesperados en el comportamiento del satélite. En este sentido, el proyecto de investigación titulado “Desarrollo de un sistema de gestión de misión tolerante a fallos para un nanosatélite destinado a aplicaciones meteorológicas” con el que contribuye el presente proyecto, ha propuesto utilizar una OBC que tenga como componente central un SoC, que contiene un procesador embebido y un área de lógica programable de FPGA. Esta área programable permite implementar componentes y algoritmos que generen un sistema tolerante a fallos. Una técnica ampliamente usada es la redundancia Triple Modular implementada en espacios de memorias. El uso de este tipo de algoritmos sobrecarga el trabajo del procesador en la gestión de memoria y por ello la importancia de implementar una Unidad de Manejo de Memoria (MMU). Este trabajo propone la implementación de una MMU utilizando los recursos del SoC y creando los módulos en VHDL que permitan gestionar todos los espacios de memorias con los que cuenta el dispositivo. Estos incluyen memorias no volátiles y volátiles del tipo eNVM, SRAM y DDRAM embebidas en la OBC. Durante el desarrollo del presente trabajo fue posible implementar la MMU y validar su funcionamiento en la gestión de los diferentes espacios de memoria, todo ello a pesar de la dificultad intrínseca en el desarrollo de sistemas embebidos con arquitecturas complejas.