000149408 001__ 149408 000149408 005__ 20250127135743.0 000149408 037__ $$aTAZ-TFG-2024-4160 000149408 041__ $$aspa 000149408 1001_ $$aLahoz Bernad, Fernando 000149408 24200 $$aA basic processor core for running BPF programs 000149408 24500 $$aDiseño de una CPU básica para la ejecución de programas BPF 000149408 260__ $$aZaragoza$$bUniversidad de Zaragoza$$c2024 000149408 500__ $$aResumen disponible también en inglés Referencia a repositorio con código fuente Contiene diagramas en horizontal 000149408 506__ $$aby-nc-sa$$bCreative Commons$$c3.0$$uhttp://creativecommons.org/licenses/by-nc-sa/3.0/ 000149408 520__ $$aLa 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.<br /> 000149408 521__ $$aGraduado en Ingeniería Informática 000149408 540__ $$aDerechos regulados por licencia Creative Commons 000149408 691__ $$a9 000149408 692__ $$aEste trabajo presenta un primer paso en lo que pretende ser un acelerador de programas de filtrado de paquetes, destinado al uso más eficiente de los recursos, entre los que se incluye el consumo eléctrico. Se trata de un proyecto de diseño, que aporta una solución alternativa e innovadora a la ejecución tradicional de programas BPF y a su inclusión en el ámbito de investigación de TSN y la arquitectura de computadores. En concreto, se busca contribuir a las metas 9.2 / 9.2.1; 9.4 / 9.4.1; y 9.5 / 9.5.2. 000149408 700__ $$aBriz Velasco, José Luis$$edir. 000149408 7102_ $$aUniversidad de Zaragoza$$bInformática e Ingeniería de Sistemas$$cArquitectura y Tecnología de Computadores 000149408 8560_ $$f800989@unizar.es 000149408 8564_ $$s4447480$$uhttps://zaguan.unizar.es/record/149408/files/TAZ-TFG-2024-4160.pdf$$yMemoria (spa) 000149408 909CO $$ooai:zaguan.unizar.es:149408$$pdriver$$ptrabajos-fin-grado 000149408 950__ $$a 000149408 951__ $$adeposita:2025-01-27 000149408 980__ $$aTAZ$$bTFG$$cEINA 000149408 999__ $$a20240906142942.CREATION_DATE