juan diego echeverri e juan@microe.udea.edu.co microelectrónica y control universidad de antioquia
Post on 02-Feb-2016
231 Views
Preview:
TRANSCRIPT
Juan Diego Echeverri Ejuan@microe.udea.edu.co Microelectrónica y ControlUniversidad de Antioquia
Introducción La computación móvil, combina la computación
personal con las comunicaciones inalámbricas en dispositivos pequeños para ser portados la mayor parte del tiempo.
Durante los últimos años el volumen de venta de estos dispositivos móviles (celulares, PDA’s , Smart phones, handhelds) ha superado ampliamente las ventas de PCs de escritorio.
Estos dispositivos deben manejar diferentes tipos de datos que involucran complejos algoritmos que requieren elevado poder computacional,
El problema Las aplicaciones y los estándares cambian
frecuentemente, el resultado: rápida obsolescencia de los dispositivos Altos costos para los usuarios Poco tiempo en el mercado Basura electrónica
El ritmo al que crecen las baterías es inferior al crecimiento de la complejidad disponible en lo circuitos integrado.
¿Que es ARCOM?
ARCOM es una plataforma reconfigurable usada como dispositivo móvil.
El objetivo: Menor consumo de potencia y mayor desempeño al ejecutar ciertos algoritmos de alta complejidad.
¿Porqué Hardware Reconfigurable?
Flexibilidad / consumo de potencia
Dese
mpeño /
Cost
o
FPGAs
ASICs
Procesadores de propósito general
Cálculo espacial (FPGAs) vs Cálculo temporal (Procesador)
Multiplexación en el mismo dispositivo de diferentes IPs (adaptabilidad)
¿Como se utiliza el hardware reconfigurable?
Co-Procesador multimedia Desarrollo de IPs que puedan ser descargados desde Internet Reprogramación a través del puerto JTAG Conexión de la FPGA al bus de datos y direcciones del procesador
FPGA
Procesador
FLASHSRAM
SRAM
Procesador
Arquitectura de la aplicación
Usuario llama la aplicación
Verificar la necesidad de hardware reconfigurable
Ejecuta programa en CPU
Busca contexto en el terminal
[Es necesario]
Fin aplicación
Busca contextos en la red
Error en la aplicación
[No encuentra el contexto]
Programa Hardware reconfigurable
[Encuentra el contexto]
[Encuentra el contexto]
Ejecuta aplicación
[No es necesario]
[No encuentra el contexto]
Arquitectura general del sistema
INTERNET
Servidor
AP
Frontera de la aplicación 1
AP
Frontera de la aplicación 2
AMD
AMD
AMDAMD
AMD
AMD
AP
AMD
AMDAMD
Frontera de la aplicación 3
ARCOM Reprogramación Creación de módulos reconfigurables por
conversión de los archivos SVF a XML Permite un modo estándar de transmisión de datos Se puede agregar información adicional Es fácil realizar el parsing en la terminal. La programación es más lenta
¿Como validar la conversión a XML?
XML Schema
Dentro de la terminal La programación se hace a través del
puerto JTAG de la FPGA conectada a puertos de propósito general. Parsing en la terminal del XML con Xerces
(Apache Project) Driver tipo char en Linux Reprogramación total de la FPGA tarda
aproximadamente 4s.
Aplicación de usuario
Entorno de ventanas QT/Embedded – QTOPIA. Mejor desempeño, menor
consumo (Ver presentación de Monica)
Una gran comunidad de desarrolladores
No es gratis Buenas herramientas de
desarrollo (ej. designer)
Consumo de potencia – rendimiento DESConsumo de Potencia DES - FPGA
0,578
0,5785
0,579
0,5795
0,58
0,5805
0,581
0,5815
0,582
0,5825
0 5 10 15 20 25 30 35 40
Tiempo (s)
Po
ten
cia
(W)
Datos Encriptados• 238Mbytes de datos
Tiempo de Procesamiento•19.96s
Consumo promedio: •1.269mW
Energía por MegaByte•106.4 uJoules
Velocidad de encripción• 11.92MBytes por segundo
Consumo de Potencia DES - IMXL
1,7
1,75
1,8
1,85
1,9
1,95
2
2,05
2,1
2,15
0 5 10 15 20 25 30
Tiempo (s)
Po
ten
cia
(W)
Datos Encriptados•200Kbytes de datos
Tiempo de Procesamiento•15.57s
Consumo promedio: •353mW
Energía por MegaByte•28.121Joules
Velocidad de encripción• 12.84KBytes por segundo
Consumo de potencia - DCTConsumo de potencia - DCT - IMXL
1,7
1,75
1,8
1,85
1,9
1,95
2
2,05
2,1
0 5 10 15 20 25 30
Tiempo (s)
Po
ten
cia
(W)
Bloques decodificados• 1200 bloques de 8x8
Tiempo de procesamiento• 23.35s
Consumo de potencia• 314mW
Energía aplicar la DCT a 1200 bloques• 7.3319Joules
Velocidad de procesamiento• 0.04 imágenes por segundo
Consumo de potencia DCT - FPGA
0,5774
0,5776
0,5778
0,578
0,5782
0,5784
0,5786
0,5788
0,579
0,5792
0,5794
0,5796
0 5 10 15 20 25 30
Tiempo (s)
Po
ten
cia
(W)
Bloques decodificados• 7812500 bloques de 8x8
Tiempo de procesamiento• 10.00s
Consumo de potencia• 698uW
Energía aplicar la DCT a 1200 bloques• 1.07uJoule
Velocidad de procesamiento• 651 imágenes por segundo
Una aplicación más real
Bloque RAM
Registros I/O
Control DES
DES IP
DESCR(7:0)DATADES(15:0)Clave DES (63:0)
OE
WE
FPGA IRQ
Direcciones
Datos
FPGA XC3S200
LINUX 2.6.11
Aplicación deusuario
KERNEL
DriverComunicación
FPGA
Proesador i.MXL
RESULTADOS
RESULTADOS
0
5
10
15
20
25
30
35
40
45
0 100 200 300 400 500 600
Tiempo i.MXL(s)
Tiempo Spartan 3(s)
ESTADÍSTICAS LENGUAJES DE PROGRAMACIÓN UTILIZADOS
C: Desarrollo de múltiples drivers para el kernel de Linux. Desarrollo de programador JTAG para HC08
C++ Parsing de XML en la terminal Diseño de Interfaces gráficas para QT/Embedded
Python Parsing de XML en la terminal y manipulación del driver
Java SVF2XML
VHDL Controladores para las IPs de prueba (DES y DCT)
ANTLR Descripción de la gramática del SVF
HERRAMIENTAS CROSS-COMPILADAS Python PyXML Xerces QT/Embedded Qtopia Konqueror - Embedded
TRABAJO FUTURO
(Opcional) Reconfiguración parcial dinámica de la FPGA (Es complicado para Spartan-3)
Implementación de los algoritmos de prueba con técnicas de bajo consumo
Finalización del prototipo
top related