Resumen: La tecnología BPF surgió como una alternativa flexible a los filtros de red y programas de depuración basados en módulos o alteraciones al código fuente del kernel de Linux. Se trata de un de una ISA pensada para ejecutar virtualmente el bytecode de un programa por medio de un JIT compiler. Su uso se ha extendido más allá del filtrado de paquetes como una forma de ganar ancho de banda y reducir la latencia introducida por el Sistema Operativo, hasta el punto de aparecer tarjetas de red capaces de ejecutar programas BPF previamente traducidos a arquitecturas ya establecidas en la industria. Esta idea hace que los programas se independicen del planificador del kernel, obteniendo un jitter mínimo apto para redes TSN. En este contexto y en el ámbito de investigación en TSN se decide comprobar la viabilidad de un procesador que ejecute directamente el repertorio de instrucciones extendido de BPF a partir de un primer diseño para FPGA. Este proyecto comprende las fases de análisis, diseño, implementación y pruebas de un core BPF que sirva de acelerador para un procesador de propósito general en un sistema baremetal, permitiendo cargar programas BPF con su debido contexto, controlar el comienzo y fin de la ejecución e interactuar por medio de mapas accedidos desde memoria compartida, de la misma forma que se hace en un entorno GNU/Linux. Este TFG se divide en dos partes. La primera incluye el desarrollo de un procesador segmentado multietapa capaz de ejecutar el repertorio de instrucciones eBPF, especificando su ruta de datos, unidades de control, componentes, interfaces de memoria y sistemas adicionales en el lenguaje de descripción de hardware VHDL, además de la ampliación de un proyecto de compilador de ensamblador eBPF. La segunda consiste en el diseño de un protocolo de comunicación con el core como periférico, planteando una distribución del espacio de memoria y los registros de control y aportando una solución original al problema de transacciones atómicas con buses de ancho reducido. Además, abarca la implementación en VHDL de un sistema de entrada y salida que implemente dicho protocolo para el procesador junto al desarrollo de una biblioteca en C que abstraiga la interacción con el periférico. El resultado del trabajo es un SoC sintetizable para FPGA que contiene el procesador BPF acoplado a un procesador MicroBlaze, comunicados por un bus AXI Lite accesible desde memoria.
Tipo de Trabajo Académico: Trabajo Fin de Grado
Notas: Resumen disponible también en inglés Referencia a repositorio con código fuente Contiene diagramas en horizontal