Sistemas para aplicaciones específicas Tendencias en Ingeniería de Computadores Centro Mediterráneo de la Universidad de Granada Almunecar 22-26 Julio 2013 Javier Díaz Alonso. Email: jda@ugr.es Arquitectura y Tecnología de los Computadores Universidad de Granada. Índice de contenidos 1. 2. 3. 4. 5. Introducción y conceptos generales Clasificación y tecnologías Ejemplos actuales Metodologías de diseño Conclusiones y perspectivas futuras Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 2 Sistemas para aplicaciones específicas INTRODUCCIÓN Y CONCEPTOS GENERALES Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 3 ¿Sistemas para propósito específico? Nombre autoexplicativo Sistemas de proposito específico vs. Sistemas de proposito general Qué es un “Sistema” Caso particular: sistemas empotrados 4 I7, Supercomputador, portátil ... Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 5 Empotrados Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 6 LHC (CERN) Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 7 Cuidado! Hablamos de muchos conceptos interrelacionados!!! Algunos “obsoletos” Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 8 Evolución En muchos sectores se aumentan funcionalidades Pasamos de sistemas de propósito específico a propósito general ¿Y viceversa? Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 9 ¿Son realmente necesarios? Tratan de resolver problemas como: ◦ coste número de unidades a vender ◦ Potencia ◦ Prestaciones ◦ Seguridad, Etc,… Costes / tiempos de ingeniería pueden ser MUY significativos 10 Mercados relevantes Medicina/biomedicina Aviónica/aeroespacial/automoción Industria (control, energía, domótica, …) Defensa Telecomunicaciones (seguridad, telefonía, ..) Multimedia (ocio, SmartTV, ..) Ciencia 11 Características Necesitan ingeniería a medida (desarrollo) ◦ Hardware (tarjetas, copro/procesadores, …) ◦ Software (a medida, middleware, SO, …) Tecnología “no siempre estándar” compatibilidad/interoperabilidad Problema del “time to market” Certificaciones Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 12 Optimizaciones Para mejorar prestaciones: ◦ Hardware dedicado para instrucciones frecuentes. ◦ Paralelismo (VLIW, SIMD, MIMD, multicores, etc…) ◦ Interfaces, mejor tecnología, etc.. Para mejorar consumo potencia ◦ Tecnologías más eficientes (< nm), reducción frecuencia. ◦ Hardware dedicado para instrucciones más frecuentes (más eficiente y/o reduce tiempos de ejecución) Para costes … Ingeniería de computadores Especialidad orientada a: ◦ Supercomputación ◦ Sistemas de propósito específico Soluciones a nivel de sistema Optimización: coste, potencia, prestaciones motores clave de la especialidad Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 14 Sistemas para aplicaciones específicas CLASIFICACIÓN Y TECNOLOGÍAS 15 Desarrollo a medida Los sistemas de propósito específico se basan en diseño a medida del software, hardware o ambos. ◦ Sistemas empotrados son claro ejemplo de ello. La aplicación y sus requisitos determinan el hardware a utilizar y el perfil del equipo de trabajo (programadores, diseñadores de hardware, mecánicos, etc... ) Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 16 Opciones de desarrollo Procesadores de propósito general. GPPs (General Purpose Processors). Circuitos de propósito específico.ASICs (Application Specific Integrated Circuits ) Procesadores específicos de aplicación. ASIP (Application Specific Instruction set Processor) ◦ Pueden requerir programación de bajo nivel Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 17 Flexibilidad (personalización del software) Flexibilidad vs especificidad Decisión basada en requisitos y experiencia del equipo desarrollador GPP ASIP ASIC Optimización (HW de propósito específico) Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 18 Tecnologías de implementación Flexibilidad (personalización del software) Generales Optimizadas A medida Procesador (GPP) Microcontrotrador DSPs ASIP (procesadores multimedia, video, audio, red, criptográficos, etc..) FPGAs ASICs Full-custom / Semi-custom Optimización (HW de propósito específico) Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 19 Implementación ASICs Semi-custom Celdas estándar Matrices de puertas (MPGA) Full-custom f1 x1 x1 f2 x2 x3 f1 x2 x3 Field Programmable Gate Arrays (FPGA) Field Programmable Gate Array ◦ No se les considera ASICs (termino reservado para soluciones full y semi-custom). ◦ Bloques programables muy simples ◦ Fabricación masiva de conexiones programables Compuestas por un numero grande de bloques lógicos en un mar de conexiones. 1,000 … 100,000+ FPGA Architecture FPGAs Los recursos los mediremos en: Flip-flops + LUTs y circuitos de uso específico como (multiplicadores, bloques de memoria, serializadores, etc…) 22 Pero además … Ley de Moore o … Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 23 Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 24 Perdón, estas si! Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 25 Multicore System-on-Chip (SoC) Son la base de los empotrados actuales Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 26 Carácterísticas SoC actuales Son multicore (típicamente microprocesadores pero también DSPs) Tienen coprocesadores/aceleradores de propósito específico (GPUs, DSPs o ASIP para tareas de video, red, etc..) ◦ Si cabe, mejor dentro … Múltiples interfaces de comunicaciones, controladores de memoria, etc.. Arquitectura de referencia para ASICs o FPGAs Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 27 Qualcomm Snapdragon 800 SoC SoC: son la base de los empotrados actuales Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 28 Antes de seguir… 29 Sistemas para aplicaciones específicas EJEMPLOS ACTUALES 30 Sistemas propósito específico ¿Y yo que escojo? Si puedes usa procesadores estándar (PCs). Valor añadido en el software. ◦ No valido para empotrados!! Si no, se escoge el procesador/chip óptimo para los requisitos pero con mayor flexibilidad (microcontroladores, DSPs, ASIPs, FPGAs o ASICs full/semi custom). CUIDADO CON ASICs Y LOS COSTES NO RECURRENTES (NRE) 31 Soluciones actuales Muchas y muy variadas! Ejemplos de procesadores específicos ◦ Procesadores para tabletas y dispositivos móviles ◦ Procesadores de video ◦ Procesadores multimedia ◦ Procesadores de red ◦ Procesadores criptográficos ◦ Procesadores gráficos (GPUs) ◦ Procesadores de entrada/salida Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 32 Soluciones actuales II Importante estudiar bien las opciones y … no inventar la rueda! Un buen estudio a tiempo puede ahorrar mucho tiempo y dinero. Como dijimos, la tendencia es desarrollar sistemas basados en multicore SoCs aunque para soluciones más económicas los microcontroladores están más optimizados. Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 33 VEAMOS ALGUNOS EJEMPLOS 34 Procesadores para tabletas y dispositivos móviles Snapdragon, Atom, Tegra, Exynos, Apple A5, etc… 35 Infineon Microcontrolador Tricore Aurix Aplicaciones críticas de automoción (certificación hasta ASIL-D) 36 Soluciones de Texas Instruments 37 TI DSP TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 38 Ti OMAP 5430 SoC Dirigido a aplicaciones industriales de altas prestaciones Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 39 TI Davinci DM64x Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 40 Anafocus Q-Eye Image Sensor ASIC de procesamiento de imágenes en el plano focal Procesador analógico programable! Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 41 Cavium H.264 Video processor Optimizado para la distribución de video comprimido en el hogar Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 42 Sigma SMP8910 Secure Media Processors Soluciones para IPTV y mediacenters. Protección de contenidos, aceso condicional y derechos de (DRM). Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 43 Broadcomm BCM1190 low cost IP phone chip Optimizado para telefonía IP 44 Vitese 16-Port L2 Ethernet Switch with VCore-II™ CPU L2 Switch-on-chip de 16 puertos Gigabit Ethernet. 45 Gaisler-Aeroflex Fault-Tolerant Leon3 Procesador para aplicaciones espaciales (certificado por la ESA). Implementa TMR para mejorar la robustez a la radiación 46 Intel procesador de entrada/salida IOP348 Coprocesador chipset para PCIe, SATA, memoria, … 47 Altera Stratix V FPGAs FPGAs como dispositivos hetereogeneos 48 Xilinx Zynq-7000 Extensible Processing Platform Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 49 Xilinx Zynq-7000 Extensible Processing Platform Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 50 Avalon A3256-Q48 ASIC Para minería de bitcoin, Open-hardware Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 51 MobileEye EyeQ2 ADAS processor ASIC (SoC) para asistencia a la conducción (ADAS) ◦ ◦ ◦ ◦ ◦ Detección de lineas Ángulo muerto Colisión frontal/lateral Peatones Aparcamiento automático ◦… 52 Kalray MPPA256 multicore Solución programable de 256 núcleos ◦ ◦ ◦ ◦ ◦ Audio/video Ciencia Seguridad Control … Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 53 Sistemas para aplicaciones específicas METODOLOGÍAS DE DISEÑO 54 Metodologías de diseño Centrado en el Hw: cuando tengo buenos ingenieros hw y la ventaja competitiva está en el circuito tipicamente FPGAs o ASICs. Centrado en el Sw: se utiliza una arquitectura hw estándar y el valor añadido es el sw (procesadores/microcontroladores) Basado en Componentes: Objetivo y valor diferenicial: integración de componentes hw y sw Diseño basado en plataformas: opción similar a la anterior pero con algo más que veremos … Diseño de ASICs/FPGAs Nos centraremos en diseño de hardware digital no procesadores, SoC o ASIP. Diseño típico basado en técnicas bien conocidas de diseño lógico, Cartas ASM, diseño RTL, etc… El proceso se ha simplificado significativamente gracias a los HDLs (tradicionalmente VHDL o Verilog) Reutilizacion de componentes cores IP Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 56 Concepto de Core IP Se suelen utilizar núcleos digitales (cores IP) o bloques IP (Intellectual Property) descritos completamente (componentes virtuales) y que el diseñador puede incluir en el diseño de un chip. ◦ Podemos incluir una descripción HDL del módulo IP en nuestro diseño a incluir en la FPGA o ASIC La complejidad de los bloques IP provoca que puedan serparametrizables, es muy variable ◦ Desde funciones específicas (módulos aritméticos, FFT, etc.) hasta procesadores completos (PowerPC, ARM, etc.). ESPECIFICACIÓN DEL PROBLEMA Especificación funcional Etapas de diseño de sistemas digitales DISEÑO Descendente Descripción funcional o de comportamiento, p.e. algoritmo Síntesis funcional Descripción arquitectural (a nivel RT) Síntesis RT Descripción lógica (funciones lógicas) Síntesis lógica Descripción de puertas lógicas y conexiones (tecnología) • Obtener sucesivas descripciones a diferentes niveles, progresivamente más detalladas • Verificar la adecuación de cada nueva representación con las especificaciones establecidas para el sistema, explorando diferentes alternativas Síntesis física Descripción física (mask, P&R, bit config) Diseño y verificación Problema de la productividad: ¿qué etapas están automatizadas? Puertas/semana Dataquest Dominio específico 8K – 12K Comportamental 2K – 10K RTL 1K – 2K Puerta 100 – 200 Transistor 10 – 20 Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 59 High-level Synthesis (HLS) Para diseño de bloques IP con lenguajes de alto nivel (C/C++, Marte UML, CUDA …) ◦ Metodología que no ha funcionado a nivel de sistema (de momento) pero si para bloques IP Permite rápida exploración y selección de la micro-arquitectura ◦ Puede requerir “asistencia” del diseñador (pragmas, restricciones, codificación del algoritmo, etc…) Facilita la trazabilidad de requisitos, reutilización de bancos de pruebas y la reduccion de errores. 60 Herramientas de diseño HLS Diseño basado en plataformas Orientado a diseño de SoCs: ◦ Utilizamos una librería de componentes virtuales o bloques IP, facilmente integrables arquitectura parcialmente predefinida ◦ Primitivas: procesadores, cores de comunicaciones, controladores de memorias, estructura de buses, sistemas operativos (o RTOS), librerías, middleware, etc.. La personalización se basa en: ◦ La conexión de los bloques IP ◦ El diseño de bloques IP propios (tipo DSP, ASIP o hardware a media) ◦ La escritura de software empotrado. Basado en técnicas de codiseño. Codiseño Pretende determinar de forma óptima el particionamiento hw/sw. Tiene en cuenta no sólo las características funcionales del diseño, sino también que debe utilizar componentes preexistentes. ◦ Reutilización clave para reducir el “time-to-market”. Incluye técnicas para determinar la forma de implementar cada módulo (soft/hard) ◦ En general, las secuencias de control complejas, tales como bucles de longitud variable se implementan mejor por software, mientras que las operaciones con flujos de datos fijos por hardware. 63 Codiseño II Flujo de diseño tradicional Inicio HW Flujo concurrente (codiseño) Inicio SW HW SW Diseñado por grupos diferentes de Diseñado por el mismo grupo de expertos de forma independiente expertos de forma colaborativa 64 Herramienta Xilinx: Orientado a diseño de SoC usando HLS para bloques IP en FPGAs de Xilinx. Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 65 Otras aproximaciones Diseño software convencional usando procesadores/microcontroladores. Diseño basado en MDD. Model-Driven Development ◦ Metodología basada en modelos, no programas. ◦ Ejemplo UML-MARTE. Diseño basado en lenguajes/herramientas específicas ◦ LISA para descripción de ASIPs. Diseño basado en arquitecturas multicore Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 66 Synopsys Processor Designer Diseño de ASIP y aceleradores programables Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 67 Metodología basada en multicores Solución alternativa al diseño de SoC para aumentar las prestaciones de un dispositivo ◦ Típicamente hablamos de “muchos cores”. ◦ Requiere la utilización de lenguajes como OpenMPI, OpenMP, CUDA o OpenCL. ◦ El valor diferencial está en el software. Reducción de costes o potencia discutible (depende de MIPS/€ y MIPS/watio). No son válidos los “programadores software de PCs convencionales” 68 Altera OpenCL SDK Conversión de OpenCL a caminos de datos específicos en la FPGA. Multiplataforma. Orientado a programadores software Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 69 Sistemas para aplicaciones específicas CONCLUSIONES 70 Tendencias actuales de diseño Dos aproximaciones se posicionan de forma relevante (no excluyentes): ◦ Soluciones basadas en SoCs heterogéneos ◦ Soluciones basadas en multinúcleo La primera requiere programadores de “bajo nivel” y diseñadores hardware (Ej. Xilinx con SystemC). La segunda opción requiere programadores hábiles en la paralelización de aplicaciones (Ej. Altera con OpenCL). 71 Conclusiones Los sistemas actuales son cada vez más exigentes Demos gracias a Moore! Los procesadores empotrados (propósito específico) ganan peso frente a los procesadores para escritorio ◦ Clave: optimización de las prestaciones/vatio! ◦ Acercamiento de las técnicas de diseño, programación, etc.. entre los sistemas de propósito específico y los de propósito general Multicore, SoC PARALELISMO! 72 Bibliografía recomendada Nohl, A., Schirrmeister, F., & Taussig, D. (2010, November). Application specific processor design: Architectures, design methods and tools. InComputer-Aided Design (ICCAD), 2010 IEEE/ACM International Conference on(pp. 349-352). IEEE. Dake Liu (2008). Embedded DSP Processor Design Application Specific Instruction-set Processors. MA: Elsevier Mogan Kaufmann. L.P. Carloni, F. De Bernardinis, C. Pinello, A.L. Sangiovanni-Vincentelli, and M. Sgroi. Platform-Based Design for Embedded Systems In R. Zurawski (Ed.), "The Embedded Systems Handbook", CRC Press , 2005. A Clive Maxfield, The Design Warrior's Guide to FPGAs. Academic Press, Inc 2004. Ronald Sass, Andrew G. Schmidt, Embedded Systems Design with Platform FPGAs: Principles and Practices. Elsevier 2010 David C. Black, Jack Donovan, Bill Bunton, Anna Keist, SystemC: From the Ground Up, Second Edition. Springer 2010. David Pellerin, Scott Thibault, Practical FPGA Programming in C, Prentice Hall Modern Semiconductor Design Series, 2005. Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 73 Bibliografía recomendada II Sitios web de fabricantes (datasheets) Analog devices: http://www.analog.com/en/processors-dsp/products/index.html Aeroflex-Gaisler: www.gaisler.com/ Freescale: http://www.freescale.com/webapp/sps/library/prod_lib.jsp?tid=FSH&site_preference= normal Anafocus: www.anafocus.com/ Texas Instruments: http://www.ti.com/lsds/ti/dsp/embedded_processor.page Mobileye: http://www.mobileye.com/ Cavium: http://www.cavium.com/Processor_CNW5XXX.html NXP: www.nxp.com/ Broadcom: http://www.broadcom.com/products/ Qualcomm: www.qualcomm.com/ Xilinx: www.xilinx.com Altera: www.altera.com Actel (Microsemi): http://www.microsemi.com/ Infineon: http://www.infineon.com/cms/en/product/index.html Kalray: http://www.kalray.eu/products/mppa-manycore/mppa-256/ Congresos internacionales Tendencias en Ingeniería de Computadores, Sistemas para aplicaciones específicas, Javier Díaz 75