La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS Oviedo Marcos Introducción.

Presentaciones similares


Presentación del tema: "DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS Oviedo Marcos Introducción."— Transcripción de la presentación:

1 DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS Oviedo Marcos Introducción

2 2 / Oviedo / 6/10/2014 Agenda Arquitecturas Mixtas Lógica Programable en FPGAs Ventajas y desventajas de plataformas basadas en FPGAs Porque el creciente interés de las FPGAs Implementación de un SoC Diseño embebido en una FPGA (SoC) Motivación para utilizar un SO Componentes aceleradores en FPGA Canal de comunicación entre componentes de hardware y software Temas propuestos

3 3 / Oviedo / 6/10/2014 Arquitecturas Mixtas Una arquitectura mixta se basa en la utilización conjunta de un sistema embebido y módulos de computación reconfigurable a través de FPGAs. – Esta integración de componentes también se conoce como Sistemas en Chip Un sistema en chip (SoC) es la habilidad de colocar múltiples funcionalidades de hardware o "sistemas" en una sola pastilla de silicio. Esto permite por ejemplo desarrollar un sistema embebido basado en microprocesador que trabaje en conjunto con un componente acelerador implementado en una FPGA.

4 4 / Oviedo / 6/10/2014 Lógica Programable en FPGAs Una FPGA (Field Programmable gate array) es un chip de lógica programable que contiene: – Bloques lógicos programable – Matrices de interconexión programables – Puertos de entrada/salida programables – RAM en bloque – Puede contener microprocesadores necesarios para implementar sistemas embebidos Computación reconfigurable – Bloques de hardware que se pueden reprogramar e interconectar de manera diferente para implementar un nuevo componente de aplicación especifica.

5 5 / Oviedo / 6/10/2014 Arquitectura de una FPGA Programmable IO K LUT Inputs D FF Clock Out BLE # 1 BLE # N N Outputs I Inputs Clock I N Programmable Logic (CLB) Programmable Routing

6 6 / Oviedo / 6/10/2014 Ventajas y desventajas de plataformas basadas en FPGAs Ideal para prototipado de sistema – La gran variedad de kits de desarrollo disponibles permiten encontrar los requerimientos de hardware que necesitamos para desarrollar un prototipo de nuestro sistema. Se simplifican las actualizaciones en campo – La arquitectura es reconfigurable! Simplemente se baja un nueva configuración (bitstream) y se actualiza la funcionalidad.

7 7 / Oviedo / 6/10/2014 Ventajas y desventajas de plataformas basadas en FPGAs (continuación) Existe un gran numero de funcionalidades de hardware en forma de librerías (IP Cores) disponibles para usar. – Procesadores por software, buses de alta velocidad, interfaces de telecomunicaciones, etc. – Esto permite elegir los componentes necesarios y crear nuestra plataforma. Como desventaja, el uso de plataformas basadas en FPGAs requiere conocimientos muy diferentes a los necesarios para utilizar plataformas de computo tradicionales. – La curva de aprendizaje es reducida mediante el uso de herramientas EDA y ESL.

8 8 / Oviedo / 6/10/2014 Porque el creciente interés de las FPGAs Field Programmable Gate Arrays Increasing speed & density Increased I/O pin count and bandwidth Lower power Lower cost per gate Integration of hard IP (e.g. multipliers, PowerPC cores) Architectural Synthesis Emergence of hardware synthesis tools based on conventional software languages (C, Fortran…) Improved hardware compiler optimization techniques Mapping of software design patterns to hardware 80s90sNow

9 9 / Oviedo / 6/10/2014 Implementación de un SoC Para implementar el SoC se puede utilizar el kit de desarrollo Avnet FX12 Minimodule, compuesto por: – Una FPGA Virtex4 de la empresa XILINX. – Un puerto PHY 10/100/1000 Ethernet. – 64 MB DDR RAM. – Interfase serial RS232. – Interface de programación JTAG.

10 10 / Oviedo / 6/10/2014 Implementación de un SoC (continuación)

11 11 / Oviedo / 6/10/2014 Implementación de un SoC (continuación)

12 12 / Oviedo / 6/10/2014 SoC sin personalización FPGA uP I/O Connector Ethernet Serial Port SDRAM GPIO FLASH FPGA Board

13 13 / Oviedo / 6/10/2014 SOC - Diseño Puramente HW uP I/O Connector Logic FPGA Board FPGA Ethernet Serial Port SDRAM GPIO FLASH

14 14 / Oviedo / 6/10/2014 SOC - Diseño Embebido basado en PPC PowerPC I/O Connector GPIO Controller SDRAM Controller UART Controller Ethernet Controller PLB Bus FPGA Ethernet Serial Port SDRAM GPIO FLASH FPGA Board FLASH Controller

15 15 / Oviedo / 6/10/2014 SOC - Codiseño HW/SW basado en PPC FPGA PowerPC I/O Connector Ethernet SDRAM Serial Port FLASH Card FLASH Controller UART Controller SDRAM Controller PLB Bus Logic FPGA Board

16 16 / Oviedo / 6/10/2014 Diseño embebido en una FPGA (SoC) La implementación del SoC se realiza a través de la creación de un sistema embebido y uno o mas componentes de aplicación especifica sobre la FPGA utilizada. El sistema embebido desarrollado esta compuesto por un microprocesador (hard-core/soft-core), un conjunto de componentes de hardware necesarios para el funcionamiento del mismo y el sw de control necesario. Los componentes de aplicación especifica son independientes del sistema embebido y están implementados en el HW virgen de la FPGA

17 17 / Oviedo / 6/10/2014 Diseño embebido en una FPGA (SoC) (continuación) Desarrollo del sistema embebido basado en microprocesador. – Desarrollo de software de control. – Desarrollo de arquitectura de hardware que soporte el sistema embebido Desarrollo del componente acelerador/aplicación especifica implementado en hardware. Desarrollo del canal de comunicación hardware/software.

18 18 / Oviedo / 6/10/2014 Diseño embebido en una FPGA (SoC) (continuación) FPGA Componente de HW - Lógica Fija Hardware VirgenMicroprocesador Comunicaciones HW-SW Componente de HW - Lógica Fija

19 19 / Oviedo / 6/10/2014 Diseño embebido en una FPGA (SoC) (continuación) Se desarrollara una infraestructura de interconexión entre los bloques lógicos – Buses propietarios como la familia CrossConnect de XILINX El procesador disponible en la FPGA se interconectara también utilizando la infraestructura de buses establecida.

20 20 / Oviedo / 6/10/2014 PowerPC 405 Core Dedicated Hard IP Flexible Soft IP RocketIO Detalle de sistema embebido basado en PPC Full system customization to meet performance, functionality, and cost goals DCR Bus UART GPIO On-Chip Peripheral Hi-Speed Peripheral GB E-Net e.g. Memory Controller Arbiter On-Chip Peripheral Bus OPB Arbiter Processor Local Bus InstructionData PLB DSOCM BRAM ISOCM BRAM Off-Chip Memory ZBT SRAM DDR SDRAM SDRAM Bus Bridge IBM CoreConnect on-chip bus standard PLB, OPB, and DCR Source: Xilinx

21 21 / Oviedo / 6/10/2014 Detalle de sistema embebido basado en Microblaze Flexible Soft IP MicroBlaze 32-Bit RISC Core UART 10/100 E-Net On-Chip Peripheral Off-Chip Memory FLASH/SRAM LocalLink FIFO Channels 0,1…….32 Custom Functions Custom Functions BRAM Local Memory Bus D-Cache BRAM I-Cache BRAM Configurable Sizes Possible in Virtex-II Pro Arbiter OPB On-Chip Peripheral Bus Source: Xilinx

22 22 / Oviedo / 6/10/2014 Motivación para utilizar un SO Las aplicaciones necesitan un entorno de ejecución. – Portabilidad, interfaces standard – Acceso controlado a archivos y dispositivos – Multitarea preemptiva – Memoria virtual (memoria protegida, paginacion, etc) – Librerias compartidas – Soporte de stack TCP/IP – etc Soporte para integrar nuevos dispositivos de hardware. – Framework para escribir drivers para distintos subsistemas – Abstracciones de funcionalidades de drivers – Soporte de módulos de extensión

23 23 / Oviedo / 6/10/2014 Motivación para utilizar un SO (continuación) Caminos de ejecución

24 24 / Oviedo / 6/10/2014 Componentes aceleradores en FPGA Dispositivos inherentemente paralelos – Las operaciones computacionales se implementan espacialmente. – Elimina el cuello de botella causado por la ejecución serial de las arquitecturas Von Neumman (procesadores actuales). Computación temporal (serial): Solo una operación computacional puede ser ejecutada a la vez. El procesador tiene que encargarse de traer datos o código antes de ejecutar la operación. Computación espacial: Distintos bloques de circuiteria programable procesan en paralelo distintas partes del algoritmo computacional.

25 25 / Oviedo / 6/10/2014 Componentes aceleradores en FPGA (continuación)

26 26 / Oviedo / 6/10/2014 Componentes aceleradores en FPGA (continuación) Los sistemas basados en procesador ofrecen posibilidad de implementar computación flexible pero al costo de minimizar la performance. Los sistemas basados en hardware no son óptimos para implementar computación de propósito general. – Diseño único, no es practico diseñar/comprar una nueva maquina cada vez que corremos una aplicación diferente – El diseño de hardware requiere un esfuerzo considerable. – Barreras de costo para la implementación. Los sistemas reconfigurables ofrecen lo mejor de los mundos. – Aplicación especifica con flexibilidad

27 27 / Oviedo / 6/10/2014 Canal de comunicación entre componentes de hardware y software Se necesita establecer un mecanismo físico para poder comunicar los componentes de HW y SW En la arquitectura de XILINX: Se puede utilizar Memory Mapped I/O a través de algún BUS Se puede utilizar el controlador APU del procesador PowerPC para interfacear el hardware y el software

28 28 / Oviedo / 6/10/2014 Temas Propuestos GNU LINUx - Overview de GNU Linux (Kernel y entorno GNU) - Overview del kernel y su arquitectura. Subsistemas. Interaccion entre userspace y kernelspace. Scheduler. Modos de booteo del kernel. - Userland. Entorno GNU. Toolchains de compilacion. - Compilacion del kernel. Configuracion de los dispositivos soportados. Configuracion de los subsistemas. - Codigo a desarrollar: Construccion de un driver basico. Modos de comunicacion entre el hardware y el software. Codigo de Interaccion con el MMU. Codigo de Interaccion con dispositivos de IO. Inspeccion de drivers avanzados.

29 29 / Oviedo / 6/10/2014 Temas Propuestos (continuación) SISTEMAS EMBEBIDOS CON XILINX - FPGAs de Xilinx. Caracteristicas. Desarrollo de logica especifica y desarrollo de sistemas embebidos. Interaccion de sistemas embebidos con logica especifica. - Arquitectura de sistemas embebidos propietaria de xilinx: Procesadores disponibles, buses de interconexion, IP cores disponibles, etc. Modos de uso. - Herramientas de desarrollo para sistemas embebidos: EDK y ISE. Herramientas de desarrollo de IP cores utilizables en EDK: ImpulseC. - Desarrollo del hardware un sistema embebido. Alternativas basadas en procesador por hardware o procesador por software. Configuracion de controladores y IP cores a usar. Configuracion de mapas de memoria. Desarrollo de hardware dedicado que interactue con un bus propietario en VHDL. - Desarrollo de software para el sistema embebido. Compilacion y ejecucion sobre el sistema embebido. Herramientas de prueba y debuggeo. Comunicacion entre el hardware y el software. - Uso de Impact para grabar la platform FLASH y la FPGA. Utilizacion Basica de XMD

30 30 / Oviedo / 6/10/2014 Temas Propuestos (continuación) DESARROLLO DE IP CORE PARA SISTEMA EMBEBIDO XILINX USANDO HERRAMIENTAS ESL - Herramientas ESL: ImpulseC, Matlab, etc. - Desarrollo hardware/software con ImpulseC. Primitavas de CSP. - Modelado de una aplicacion, caracterizacion mediante profiling y porting a ImpulseC. - Generacion de componentes de hardware y software. - Tecnicas de paralelizacion. Optimizacion y debuggeo del codigo obtenido. - Simulacion de hardware con ModelSIM. - Simulacion de software con GDB. - Creacion de IP Core con ImpulseC. Canales de comunicacion a utilizar.

31 31 / Oviedo / 6/10/2014 Temas Propuestos (continuación) LINUX SOBRE SISTEMAS EMBEBIDOS DE XILINX - Customizacion de linux para que soporte el sistema embebido. - Soporte de canales de comunicacion hardware/software. - Modos de ejecucion de binarios ELF compilados para la arquitectura del sistema embebido. - Crosscompilacion de linux. Ejecucion sobre el sistema embebido. - Creacion de drivers que interactuen con componentes de hardware (Comunicacion Hardware/software) - Debuggeo del kernel y del sistema embebido. Uso de GDB, GDB Server y XMD. - Desarrollo de toolchain y herramientas de userspace usando buildroot. - Booteo del kernel a traves de RED. - Bootloader para el kernel usando uboot. - Optimizacion de performance de dispositivos de red.

32 32 / Oviedo / 6/10/2014 Gracias! Preguntas?


Descargar ppt "DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS Oviedo Marcos Introducción."

Presentaciones similares


Anuncios Google