Juan Diego Echeverri E juan@microe.udea.edu.co Microelectrónica y Control Universidad de Antioquia.

Post on 02-Feb-2016

231 views 0 download

Transcript of Juan Diego Echeverri E juan@microe.udea.edu.co Microelectrónica y Control Universidad de Antioquia.

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