Download Sistemas para aplicaciones específicas

Document related concepts
no text concepts found
Transcript
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: [email protected]
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