DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS

Slides:



Advertisements
Presentaciones similares
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities scuola.
Advertisements

SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
1 Datos sobre webloggers Datos extraidos de la encuesta a webloggers disponibles en la web de los autores.
Arquitectura de una red MAN
Los números del 0 al cero uno dos tres cuatro cinco 6 7 8
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
01- OFERTA FORMATIVA v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Respuestas Buscando a Nemo.
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
Área Razón Social 0 0 Telefónica Servicios Audiovisuales S.A. / Telefónica España S.A. Título de la ponencia / Otros datos de interés / Kit.
FAMILIA DE LÓGICA PROGRAMABLE EMBEBIDA ALTERA FLEX 10K.
El ordenador.
© 2007 Cisco Systems, Inc. All rights reserved. Traducido en apoyo a la capacitación de Instructores de la Red Proydesa Comunicación por la red Fundamentos.
Los Objetos de la Clase Escriban la palabra (the word) en español para los objetos de la clase (#1-20).
CLASE 3 SOFTWARE DEL MICROPROCESADOR
Presentación 20 de Mayo 2009.
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities alimentazione.
Montículos Daniel González Pérez Cristina Sánchez Aragón
1. Apoyo exterior sobre ala inferior de viga de acero
1 Reporte Componente Impacto Por Orden Territorial Por Departamento No Disponible ND *Los indicadores para el año 2008 no fueron calculados.
Antecedentes 1 PC 1 Usuario =.
Universidad Nacional Autónoma de Honduras
ARQUITECTURA DE COMPUTADORAS
50 principios La Agenda 1.- Presentar un único interlocutor a los clientes. 2.- Tratar de modo distinto a las diferentes clases de clientes. 3.- Saber.
INTRODUCCIÓN A JAVA.
TEMA 2: «CONFIGURACIÓN DE MÁQUINAS VIRTUALES»
FabricanteMicrosoft TipoVideoconsola de sobremesa GeneraciónSexta generación Lanzamiento 15 nov feb mar 2002 CPUIntel Coppermine Core.
EL OSO APRENDIZ Y SUS AMIGOS
1 SEGUNDO FORO REGIONAL HERMOSILLO, SON Sistema Nacional de Transparencia Fiscalización y Rendición de Cuentas:
50 principios 1. Los clientes asumen el mando.
Proyecto para Centros que trabajan una vez por semana.
CO-PROCESADOR PARA CÁLCULO DE RMSD EN ESQUELETOS DE PROTEÍNAS
Ecuaciones Cuadráticas
3 Enero 2010 PERÚ: IV CENSO NACIONAL ECONÓMICO, APURÍMAC.
TIPOS DE PROCESADORES DE ULTIMA GENERACIÓN.
Kpmg. El comercio electrónico y sus incertidumbres Resultado de la encuesta sobre
Julio Cadena Gabriel Mollocana
DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
Proyecto Fin de Carrera E.T.S. Ingeniería Informática 26 de Septiembre de 2006 DESARROLLO DE UN COMPONENTE TECLADO ALUMNO: Fco. Javier Sánchez Ramos TUTORES:
Introducción a los Procesadores Digitales de Señal (DSP)
Iván López Espejo Jonathan Prados Garzón
Trabajo Practico – Base de Datos II
BEATRIZ LAFONT VILLODRE
CURSO MULTIHAZ HYPACK ®
MSc. Lucía Osuna Wendehake
CURSO: UNIDAD 4: LENGUAJES HDL
Sistema Inteligente de Transporte
Partes Internas De Una Computadora PC
Manual de Procedimientos Procedimiento de ejecución del programa de
“Android – Hola Mundo” Rogelio Ferreira Escutia. 2 Creación del Proyecto.
Direcciones físicas y direcciones virtuales (lógicas)
CHAPTER 4 VOCABULARY: PART II
FUNDAMENTOS DE CALIDAD EN LA GESTIÓN PÚBLICA
Guía de Implementación
Universidad de Las Palmas de Gran Canaria DCIC Universidad de Las Palmas de Gran Canaria 2008 Autor: Christian Pérez Fajardo.
LOS SISTEMAS OPERATIVOS
Ing. Diego Barragán Guerrero
PUERTO AGP (ACELERATED GRAPHICS PORT)
Edición del código Podemos usar casi cualquier cosa Bloc de notas de Windows GNU Emacs VIM Set Edit...
Tema: Historia de los Microprocesadores
I.- COMPONENTES BÁSICOS DE UNA MICROCOMPUTADORA
 En la RAM se cargan todas las instrucciones que ejecutan la unidad central de procesamiento (procesador) y otras unidades de cómputo.  Se denominan.
I.- COMPONENTES BÁSICOS DE UNA MICROCOMPUTADORA
Tecnologías y Arquitecturas de SE
Transcripción de la presentación:

DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS Desarrollo de Sistemas en Chip (SoCs) Oviedo Marcos <moviedo@gmail.com>

Agenda Sistemas en chip Beneficios que provee un SoC Componentes de un SoC Metodología simplificada de desarrollo de un SoC Herramientas de desarrollo de diseños embebidos sobre FPGAs Ejemplo de hardware necesario para la implementación de un SoC Buses de interconexión Ejemplos de SoC Roadmap del curso

Sistemas en chip Un sistema en chip (SoC) es la habilidad de colocar múltiples funcionalidades de hardware (IPcores) en una sola pastilla de silicio. Un SoC generalmente esta compuesto por un sistema embebido basado en un microprocesador procesador y componentes de hardware de aplicación especifica Cuando se utiliza un microprocesador, el software es desarrollado en paralelo a modo de particionar/distribuir la logica deseada tanto en hardware como en software. Se llama arquitectura mixta porque permite crear una plataforma en donde se mezclen componentes de hardware y software. Para un gran numero de aplicaciones de telecomunicaciones el diseño embebido es el único diseño de hardware posible, por lo que soluciones ingeniosas deben ser utilizadas para suplir las demandas de performance.

Beneficios que provee un SoC Es una alternativa económica a implementar la misma funcionalidad en distintos componentes. Al implementar todo el sistema en una sola pastilla, elimina la complejidad y problemas que poseen los PCBs con componentes distribuidos Problemas de integridad de señales Complejidad para validad/verificar el board Múltiples puntos de falla Menor consumo de potencia que varios componentes distribuidos en el PCB

Beneficios que provee un SoC (contd) Utilización de IPcores preverificadas. Posibilidad de reconfiguración en campo mediante el uso de tecnología FPGA Alta performance mediante el uso de coprocesadores implementados en hardware Alta reutilización de IPCores propios o externos. Posibilidad de control total del sistema a través de SW

Componentes de un SoC Un SoC típicamente esta compuesto por los siguientes IPCores Al menos un microprocesador/microcontrolador generalmente de 32 bits. Fuentes de reloj necesarias para el timing del sistema, como pueden ser DCMs, osciladores, plls, etc. Componentes que implementan los controladores de los buses de comunicación internos. Componentes específicos como pueden ser RTCs, PowerOnReset, wrappers de recursos fijos, componentes de glue-logic, etc.

Componentes de un SoC (contd) Controladores encargados de gestionar los chips de memorias presentes en el board (off-chip components). Estos pueden ser controladores de RAM, FLASH, EEPROM, ROM, etc. Componentes que implementan controladores para interfaces externas de comunicación como controladores USB, Ethernet, USART, SPI, Fireware, etc. Componentes de regulación de tensión y power management. Componentes de aplicación especifica: Coprocesadores de alta performance, monitoreo para alta disponibilidad, etc.

Metodología simplificada de desarrollo de un SoC Primero se establecen los requerimientos del sistema Luego se determina como el sistema se va a particionar e implementar (Codiseño HW/SW) En la partición de HW se determinan: El microprocesador a utilizar Los buses de interconexión que serán utilizados y como van a ser conectados los componentes Los componentes necesarios para volver al sistema embebido funcional. Para esto se pueden utilizar IPCores propios o de terceros. Los componentes de aplicación especifica necesarios para cumplir con los requerimientos del sistema

Metodología simplificada de desarrollo de un SoC (contd) En la partición de SW se determinan: El software de control que correrá sobre el microprocesador: Software standalone o sistema operativo. Los drivers necesarios para controlar los componentes de HW del hardware subyacente. La funcionalidad de SW que será necesaria para satisfacer los requerimientos del sistema. Se determinara ademas como sera el canal de comunicación entre el HW y el SW Registros mapeados en memoria Mecanismos especificos de la plataforma de FPGA: APU por ejemplo DMA

Metodología simplificada de desarrollo de un SoC (contd) Una vez que los componentes del codiseño HW/SW fueron establecidos se determinara como se simulara el funcionamiento de los mismos. El software se simulara y validara en forma separa en entornos de desarrollo en otras arquitecturas. Cada uno de los componentes de HW podrá ser simulador y validado en forma separada y luego en su interacción con el resto del sistema. Una vez que los componentes del SoC son validados, se implementara el diseño y se validara el mismo a nivel de sistema. Para esto se determinara cual sera el canal que permitira interactuar con el SoC: un canal de debugging interno o a traves de alguna de las interfaces funcionales de comunicación del SoC.

Herramientas de desarrollo de diseños embebidos sobre FPGAs Existen algunas herramientas que permiten desarrollar diseños de hardware que utilicen los dispositivos FPGA con un mayor nivel de abstracción (Electronic Design Automation o EDA) Algunas permiten que se puedan utilizar dispositivos de lógica programable sin un intenso conocimiento de desarrollo de hardware. Algunas inclusive poseen SDKs para la creación de los componentes de software. Permiten validar funcionalmente el diseño antes de ser implementando en hardware. Inclusive simular la comunicación entre la partición hardware y software.

Ejemplo de hardware necesario para la 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. Interfase de programación JTAG. Virtex-4 FX Mini-Module Kit Includes: Virtex-4 FX12 FPGA 10/100/1000 Ethernet Port 32M x 16 DDR Memory 2M x 16 Flash Memory 8Mb Platform Flash User LED 76 User I/O AC/DC Power Supply Adapter Serial Cable Complete Reference Designs with Source Code (VHDL and/or Verilog HDL) Bundled Software Options Mini-Module Baseboards Kit Includes: Mini-Module Socket Adapter 2 x 16 Character LCD RS232 Port USB-UART Port User Switches and LEDs System ACE Interface JTAG and SPI Programming Ports 3.3V, 2.5V and 1.2V Regulators Downloadable Documentation and Reference Design

Ejemplo de hardware necesario para la implementación de un SoC (contd)

Ejemplo de hardware necesario para la implementación de un SoC (contd)

FPGA sin personalización FPGA Board FPGA uP FLASH GPIO SDRAM Serial Port Ethernet I/O Connector I/O Connector

Fpga con diseño puramente de HW FPGA Board FPGA uP FLASH GPIO SDRAM Logic Serial Port Ethernet I/O Connector I/O Connector

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

Buses de interconexión Toda plataforma de computo basada en microprocesador implementa un canal de comunicación entre el microprocesador y los distintos dispositivos de la plataforma. Este canal de comunicación es conocido como bus y dependiendo de los requerimientos del sistema adopta diferentes características. Algunos ejemplos de buses de interconexión en las PCs de escritorio son: PCI, PCI-X, PCIe, SMBus, Hypertransport, FSB, DMI, Quick Path Interconnect, etc.

Buses de interconexión (contd) Evolución arquitectura Intel

Buses de interconexión (contd) Evolución arquitectura AMD

Ejemplos de SoC En la industria y en la comunidad se pueden encontrar ejemplos de SoC. Estos sistemas varían en el tipo de procesador, los buses de interconexión y los IPCores utilizados. Los componentes ya desarrollados de los SoC disponibles en la industria y comunidad pueden ser utilizados en el contexto definidos por su licencia Existen componentes con licencias GPL, LGPL, BSD, etc y otros con licencias propietarias del fabricante y de fuente cerrada. Por lo general los SoC opensource no son dependientes de un fabricante si no que pueden ser implementados en cualquier tipo de FPGA.

Ejemplos de SoC Algunos ejemplos de SoC que desarrollaremos a continuación SoC de XILINX (basado en PPC o Microblaze) Milkymist SOC (basado en LaticceMico32) GRLIB (Basado en LEON3) Opensparc SOC (Basado en S1 Core de SUN) Lattice SystemMico32 SoC (Basado en LaticceMico32) MinSoC SoC (Basado en OpenRisc OR1200)

SoC de Xilinx Se desarrollan utilizando el entorno EDK. El entorno provee una extensa librería de IPCores testeados y listos para ser usados. El código de los IPCores esta disponible pero con licencias que no permiten su uso fuera del entorno de Xilinx Se pueden usar siempre que se tenga la licencia de EDK. Algunos IPCores son de libre uso dentro de EDK y otros requieren licencia extra. El código de estos IPCores que requieren licencia extra no esta disponible. El código de los IPCores, la instanciación de los mismos y de los templates necesarios para acceder a los buses esta desarrollado en VHDL.

SoC de Xilinx (contd) El procesador del sistema embebido puede ser un softcore (Microblaze) o, cuando esta disponible en la fpga a utilizar, un hardcore PowerPC. El diseño se puede sintetizar solamente en FPGAs de Xilinx. El diseño puede ser exportado a herramientas de la suite de desarrollo de Xilinx: ISE y PlanAhead. IPCores pueden ser creados y agregados al diseño de manera simple mediante el uso de EDK.

SoC de Xilinx (contd) Se utilizan la familia de buses CrossConnect para la interconexión de los IPCores Desarrollada por IBM Esta compuesto por los siguientes buses Processor Local Bus (PLB) Device Control Register Bus (DCR) On-Chip Peripheral Bus (OPB) Fabric Coprocessor Bus (FCB) Fast Simplex Link (FSL) On-Chip Memory (OCM)

SoC de Xilinx (contd) La herramienta Embedded Development Kit (EDK) permite disponer, configurar e interconectar los distintos IP Cores para desarrollar una plataforma de computo funcional. Facilita la creación de codiseños HW/SW Permite validar, depurar y simular el diseño de hardware. Permite desarrollar, depurar, validar y ejecutar software de control sobre el sistema embebido desarrollado en la FPGA.

SoC de Xilinx (contd) Se puede utilizar un ecosistema GNU para el desarrollo de SW. Ambos procesadores poseen un toolchain gcc que los soporta. Existen soporte para ambos procesadores y periféricos en uboot Existe soporte para ambos procesadores y periféricos comunes en el mainline del kernel de linux Existe además soporte para ambos procesadores en distintas herramientas opensource como buildroot, qemu, etc.

SoC de Xilinx - Sistema basado en PPC (hardcore) PowerPC 405 Core Dedicated Hard IP Flexible Soft IP RocketIO DSOCM BRAM ISOCM IBM CoreConnect™ on-chip bus standard PLB, OPB, and DCR DCR Bus Arbiter Processor Local Bus Instruction Data PLB Arbiter On-Chip Peripheral Bus OPB Bus Bridge Hi-Speed Peripheral GB E-Net e.g. Memory Controller UART GPIO On-Chip Peripheral Off-Chip Memory ZBT SRAM DDR SDRAM SDRAM Full system customization to meet performance, functionality, and cost goals Source: Xilinx

SoC de Xilinx - Sistema basado en Microblaze (softcore) I-Cache BRAM Local Memory Bus MicroBlaze 32-Bit RISC Core Flexible Soft IP BRAM Configurable Sizes D-Cache BRAM Possible in Virtex-II Pro LocalLink™ FIFO Channels 0,1…….32 Custom Functions Arbiter OPB On-Chip Peripheral Bus UART 10/100 E-Net On-Chip Peripheral Off-Chip Memory FLASH/SRAM Source: Xilinx

OpenSPARC SoC www.opensparc.net Basado en OpenSparc, el primer procesador opensource CMT de 64 bits Versiones T1 y T2 liberadas, así como también una versión reducida y sintetizable en fpgas actuales: S1 core. Procesador basado en arquitectura SparcV9 Procesador con soporte en gcc, linux kernel, opensolaris y sun solaris studio. El SoC esta compuesto por IPCores obtenidos de opencores. El bus por defecto en los proyectos de opencores es Wishbone. El procesador accede al bus wishbone a través de un bridge desarrollado para el proyecto El bridge es necesario porque los IPCores se conectan a través de Wishbone y el CPU/FPU solo hablan CCX (Cache-processor interface y processor-cache interface) www.opensparc.net

OpenSPARC SoC (contd)

OpenSPARC SoC (integración con SoC de Xilinx) (contd) SPARC T1 Core processor-to-crossbar interface (PCX) Microblaze Proc Fast Simplex Links interface (FSL) PCX-FSL Interposer External DDR2 Dimm MCH-OPB MemCon Microblaze Debug UART IBM Coreconnect OPB Bus SPARC T1 UART 10/100 Ethernet MultiPort Memory Controller FPGA Boundary Xilinx Embedded Developer’s (EDK) Design Block must be developed

GRLIB SoC www.gaisler.com La GRLIB es una librería de IP Cores desarrollada por AeroFlex que permiten armar un SoC. La librería incluye el softcore del procesador LEON3. Procesador de 32 bits Basado en SparcV8 Posee MMU Ademas se incluyen cores para controlar componentes off-chip (Memorias, Controladores Ethernet, controladores USB, GPIO, etc) y cores para implementar glue logic necesaria para el SoC. El procesador se comunica a los dispositivos a través del bus AMBA AHB/APB. El procesador posee soporte en GCC, Linux kernel, Uboot, Buildroot, etc. www.gaisler.com

GRLIB SoC (contd)

MinSoC SoC http://opencores.com/project,minsoc Minimal OpenRisc SoC (MinSoC) es un proyecto de la comunidad opencores.org Basado en el procesador de 32 bits insignia de la comunidad OpenRisc OR1200 Main bus Wishbone UART, controladores de Red y Memoria Facilidades de debugging MMU incluido Soporte en GCC, linux, uboot y buildroot. http://opencores.com/project,minsoc

MinSoC SoC (contd)

Lattice SystemMico32 SoC Desarrollado y liberado baja licencia GPL por la empresa Lattice El entorno MicoSystem32 es un conjunto de IP cores y soft processor Se desarrolla utilizando Mico System Builder (MSB) Se basa en procesador de 32 bits LatticeMico32 No posee MMU Se comunica con el resto de los perifericos a traves del bus Wishbone Lattice ofrece un toolchain gcc para poder desarrollar aplicaciones. No existe soporto oficial en gcc, linux, buildroot ni uboot. Si existe un port en RTEMS y uclinux. http://www.latticesemi.com/products/intellectualproperty/ipcores/mico32

Lattice SystemMico32 SoC (contd)

Lattice SystemMico32 SoC (contd)

Milkymist SoC milkymist.org SoC GPL desarrollado para el proyecto Milkymist (VJ render station) Basado en el procesador LatticeMico32 Multiples IPCores de comunicación, perifericos orientados a multimedia y aceleradores graficos. Desarrollado enteramente desde cero en Verilog VHDL (Solamente el procesador fue reusado) En continuo desarrollo en la comunidad. PCB propio desarrollado. Es el SoC de referencia en la comunidad. Están apareciendo otros proyectos opensource basados en este. Toolchain disponible. Mismo soporte en aplicaciones opensource que LatticeMico32 SoC. milkymist.org

Milkymist SoC (contd)

Milkymist SoC (contd)

Roadmap del curso Ecosistema SoC de Xilinx Desarrollo de SoC usando PPC y Microblaze Desarrollo de software de control standalone Desarrollo de hardware y software de periferico especifico Desarrollo de toolchain y rootfs mediante buildroot Port del diseño de hardware a linux Emulación del board utilizando QEMU Utilización de ImpulseC para desarrollar periféricos específicos Soporte para uboot

Roadmap del curso (contd) Ecosistema SoC opensource Desarrollo de SoC usando procesador opensource y dispositivos de opencores.org Desarrollo de software de control standalone Desarrollo de hardware y software de periferico especifico Desarrollo de toolchain y rootfs mediante buildroot Port del diseño de hardware a linux Emulación del board utilizando QEMU Utilización de ImpulseC para desarrollar periféricos específicos Soporte para uboot Proyecto mixto?

Preguntas? Gracias!

Referencias http://www.opensparc.net/ http://utic.inti.gov.ar/publicaciones/Sase2010/FPGA_SoftCores_PARTE2.pdf http://www.gaisler.com http://milkymist.org/thesis/thesis.pdf http://en.wikipedia.org/wiki/OpenRISC_1200 http://opencores.com/project,minsoc http://www.latticesemi.com/products/intellectualproperty/ipcores/mico32/index.cfm http://milkymist.org/mmsoc.html