Implementación de hardware evolutivo en un array sistólico mediante reconfiguración parcial

Abstract

El presente proyecto tiene por objeto el estudio, desarrollo y prueba de circuitos digitales usados en sistemas embebidos, cuya estructura pueda ser modificada autónomamente, sin tener que detenerse y ser reconfigurada por un componente externo. El objetivo es la implementación de hardware evolutivo capaz de generar automáticamente filtros digitales para la eliminación de ruido en imágenes. La principal utilidad de un sistema de este tipo es su empleo en situaciones en las que el funcionamiento deseado del circuito deba ser adaptable ante situaciones cambiantes en su entorno, a fallos en su estructura interna, o bien no se conozcan a priori las especificaciones completas del mismo (o éstas sean también variables en el tiempo). Un ejemplo sería la transmisión de datos, en la que puede darse el caso de la aparición de ruido y otros errores de transmisión: estos errores son aleatorios y pueden no responder a un patrón constante, sino que la calidad de la transmisión puede fluctuar con el tiempo. Otro ejemplo es la posibilidad de que el filtro se degrade con el paso del tiempo, haciendo que un filtro que antes era válido ya no lo sea al aparecer un error en un punto del circuito. Esto podría darse a causa del envejecimiento del dispositivo, o la acción de partículas espaciales en el caso de aplicaciones para satélites. Este tipo de filtro reprogramable sería sencillo de implementar en software. Las computadoras programables son un elemento bien conocido de la tecnología moderna, y hoy en día multitud de dispositivos de la vida cotidiana se basan en microcontroladores programables. Desafortunadamente, realizar una única operación con un microcontrolador conlleva a veces más ciclos de reloj que lo que llevaría hacerlo en hardware, debido al overhead por la lectura de instrucciones, además de no poder realizarse varias operaciones en paralelo. Por ello, para que la implementación sea eficiente en tiempo y en consumo, no queda más remedio que realizarla en hardware. El hardware permite efectuar varias operaciones en paralelo, y habitualmente permite realizar dichas operaciones en un menor número de ciclos de reloj. Incluso aunque no todas las operaciones puedan realizarse en paralelo, habiendo algunas que requieran ser realizadas secuencialmente, se puede emplear un mecanismo síncrono en el que cada operación se realice en un ciclo de reloj, de manera que se establezca una especie de “cadena de montaje” en la que antes de acabar de procesar un dato se ha empezado a procesar el siguiente. Este mecanismo se conoce como “segmentación” o “pipelining”. El problema del hardware, tal como se conoce habitualmente, es que es estático: se fabrica con un circuito determinado, y este mismo circuito se mantiene hasta el fin de la vida del dispositivo. Sin embargo, las tecnologías basadas en la lógica programable permiten reconfigurar un circuito, dotando así al hardware de una flexibilidad similar a la obtenida en un microprocesador. Gracias a esta tecnología, pueden desarrollarse sistemas capaces de alterar su funcionamiento de forma muy versátil manteniendo una alta velocidad de procesamiento

Similar works

This paper was published in Archivo Digital UPM.

Having an issue?

Is data on this page outdated, violates copyrights or anything else? Report the problem now and we will take corresponding actions after reviewing your request.