Vous êtes sur la page 1sur 63

Arquitecturas

Reconfigurables
Agenda Clase

• Tipos de Arquitecturas
• Arquitecturas Reconfigurables
• FPGA
• Adres
• XPP
• RAPID
• IoT con Arquitecturas Reconfigurables
Sistemas Embebidos

Son sistemas de hardware y software, de propósito específico


embebidos en algún producto del mercado. Por ejemplo:

–Embebidos de la industria automotriz : navegador GPS, de la


aviación: control de aterrizaje automático
–Embebidos de la industria de las telecomunicaciones: routers,
modems
–Embebidos de la industria de las comunicaciones: teléfonos celulares,
palms, e-books
–Embebidos de la industria del hogar: control de heladeras,
microondas, robots
–Etc, pero muchos etcéteras
Sistemas Embebidos
Si un ingeniero necesita desarrollar un producto nuevo, puede elegir
entre diversas alternativas:

–Procesadores de propósito general, adaptados para placas embebidas


–Microcontroladores
–ASIC´s
–FPGA´s
Sistemas Embebidos
Programación en Software:
La lógica programable se realiza directamente en el código del
programa

Ejemplo: S=A+B

Programación en Hardware:
La lógica programable se realiza directamente en el hardware

Ejemplo:
¿Porque reina ARM en el mercado
de los dispositivos móviles?
•El secreto de su éxito:
–ARM no fabrica micros, solo los diseña y luego los licencia a fabricantes de electrónica que los integran
en sus chips

–La clave es que los microchips que finalmente salen al mercado son algo mas que microprocesadores;
por ejemplo, un fabricante de teléfonos móviles fabricará procesadores que además del núcleo ARM
contendrán el transmisor 3G y el controlador de pantalla y teclado; de esta forma reducimos el número
de chips necesarios para montar el teléfono, con la consiguiente reducción de coste, tamaño

SOC
System on Chip
Idea de Intel para entrar en el
mercado de las cosas pequeñas…
Intel no licencia sus procesadores, por lo tanto si queremos hacer un teléfono móvil basado en Intel,
tendríamos que montar un conjunto extra de chips…y eso trae problemas y deja a Intel fuera del mercado de
las cosas pequeñas…

-Solución de Intel para entrar en ese mercado: hacer configurables a sus procesadores poner una FPGA.

-La FPGA es un chip que puede convertirse en una tarjeta gráfica, un sintonizador wifi, un controlador de
puertos, … Dicho con otras palabras, una FPGA proporciona a los fabricantes una capacidad para personalizar
el chip similar a la que proporciona ARM.
Agenda Clase

Con FPGA soy un genio,


Puedo crear cualquier cosa
Agenda Clase

• Sistemas Embebidos

• Arquitecturas Reconfigurables
• FPGA
• Adres
• XPP
• RAPID
• IoT con Arquitecturas Reconfigurables
Tipos de Arquitecturas

ASIC

No configurables Configurables ReConfigurables Adaptables

ASIC tradicionales GPU Grano Fino Grano Grueso


Microprocesadores
FPGA Adres

XPP

RAPID
No Configurable

Arquitectura Non Neunamm (CPU) ASIC (Application Specific IC)

–Diseñado para implementar


una función lógica particular.
Son “hechos a medida”.
–Son más rápidos que los FPGA
y manufacturados en gran escala
son mas baratos.
–Consumen menos.

Microprocesadores

-Las funciones se realizan en


software
-No son “custom parts” por lo
tanto no son tan buenos como
un chip dedicado (ASIC)
Configurable

GPU
Configurable
Diseño Ejecución
El compilador genera una
configuración para que la GPU se
configure para trabajar con un
bloque y cuatro hilos para resolver
la suma de matrices

El S.O carga esa configuración en la GPU, donde esta


determina antes de empezar a ejecutar como va a
implementar la ejecución de los hilos y bloques en los
distintos SMs

• La configuración de la GPU se realiza antes de empezar a


ejecutar el programa
• Yo en medio de la ejecución no puedo cambiar la
configuración, por ejemplo que la suma se ejecute con
más hilos. Para eso debo recompilar el código
ReConfigurable

La composición de esta arquitectura depende de como este


implementado, pero por lo general es:

Puede no estar Parte Reconfigurable

+
CPU
Secuencial

ARM,VLIW, x86,etc Matrix reconfigurable por


puntos físicos de control
Reconfigurable
Configuración 1
X=(a+b) * (c+d) * (e+f)
Matriz reconfigurable a c e R3
b 1 d 2 f 3
1 2 3 4 R1 R2

8
Configuración 2
5 6 7
a R1
b 1
9 10 11 12
c R4
2
R2 4
d
13 14 15 16
e R3
f 3
Reconfigurable
• Durante el diseño, el usuario diseña Ejecución
Diseño
en alto nivel como debe comportarse
la matriz reconfigurable para realizar
la suma
• El compilador y sintetizador generan
distintas configuraciones para que la
matriz resuelva la suma, las cuales
dependen de la ejecución. Por
ejemplo cuando sucede determinado
evento se cambia de configuración

El S.O carga las configuraciones en la memoria de la


unidad reconfigurable. Las cuales la unidad
reconfigurable ira utilizando durante la ejecución del
programa, dependiendo de como este se vaya
ejecutando

• La primera configuración de la M. Reconfigurable se


realiza antes de empezar a ejecutar el programa
• Yo en medio de la ejecución puedo cambiar la
configuración, por ejemplo que la suma se ejecute con
más hilos. NO HACE FALTA RECOMPILAR EL CODIGO
Adaptables

Reconfigurables: El compilador genera y optimiza el árbol que se


mapea en la matriz reconfigurable

Adaptables: El hardware es el que optimiza el árbol generado por el


compilador que se mapea en la matriz reconfigurable
Adaptables
Diseño Ejecución

El S.O carga el programa de


multiplicación en la memoria de la
unidad reconfigurable.

Durante la ejecución del programa la unidad reconfigurable ira generando


sus propias configuraciones, dependiendo de como este se vaya
ejecutando y de las cantidad de recurso que tenga disponibles.

• El compilador no genera las configuraciones


• Todas las configuraciones son creadas por la Unidad Reconfigurable
durante la ejecución del programa, adaptándolas a las cantidad de
recursos que tenga disponibles (unidad funcionales, memoria,etc).
Agenda Clase

• Sistemas Embebidos
• Tipos de Arquitecturas

• FPGA
• Adres
• XPP
• RAPID
• IoT con Arquitecturas Reconfigurables
Las Arquitecturas
reconfigurables funcionan
como el camaleón,
cambian
su configuración según la
ocasión
Conceptos Teóricos

+
CPU
Secuencial

Unidad Funcional
Conceptos Teóricos

Unidades Funcionales (FU):


Conceptos Teóricos
Conceptos Teóricos

3 entradas
Conceptos Teóricos
FPGA vs otros reconfigurables
FPGA OTROS RECONFIGURABLES
Trabaja a nivel de bits (Grano Fino) Trabaja a nivel de palabras (Grano Grueso)
Son bloques conformados por Son Unidades Funcionales programables
compuertas lógicas programables por el por el usuario
usuario
Nacieron a partir de mejoras en los Nacieron a partir de mejoras en los FPGA
Circuitos Integrados ASIC
Los bloques lógicos ocupan considerable Reducen el área de la arquitectura
espacio de la arquitectura
El tiempo de configuración es Reduce el tiempo de configuración
considerable porque se debe configurar
compuerta por compuerta
CPU
Secuencial + Parte
Reconfigurable
Tipos de comportamientos
Comportamiento Ventajas Desventajas
El Hardware RC • Agrega funcionalidad a la • El procesador debe estar
solamente programación tradicional indicando las instrucciones a la
proporciona FU al parte reconfigurable.
procesador principal
La unidad RC se usa •Permite realizar cálculos sin la •Elevada cantidad transmisión de
como coprocesador. supervisión del procesador. datos entre ambos.
La unidad RC se •La parte reconfigurable tiene •No comparten cache.
comporta como su propia memoria de trabajo.
procesador
adicional
La unidad RC es • La comunicación es muy •Aumenta la complejidad en la
una unidad de infrecuente. sintetización
procesamiento
externo.
Estrategias de programación reconfigurable

Procesador
Secuencial

Matriz reconfigurable

Lenguaje de programación -> Sistema reconfigurable


Estrategias de programación reconfigurable

Estrategia Ventajas Desventajas


Herramientas •El paso de un programa a una • Es diferente para cada
especializadas para arquitectura depende de un arquitectura y menos optimo.
compilar flujo de diseño.
Hacerlo todo •Es el método más potente •Hay que profundizar en la
manualmente arquitectura.
Mezcla de ambas •Crea rápidamente un circuito •Los circuitos creados tienen una
para el sistema reconfigurable y eficiencia relativa
lo hace más accesible a los
programadores.
Estrategias de programación reconfigurable

*: Etapas manuales
*

* *

*
Mercado de Arquitecturas Reconfigurables
Agenda Clase

• Sistemas Embebidos
• Tipos de Arquitecturas
• Arquitecturas Reconfigurables

• Adres
• XPP
• RAPID
• IoT con Arquitecturas Reconfigurables
FPGA
(Matriz de Puertas Programables)
FPGA

Arquitectura demostrativa,
no detallada, de un FPGA de Xilinx.

La configuración de como se va a comportar el FPGA se graba en la


memoria de configuracion
FPGA

Cada CLB contiene:


• Una LUT usada como
✓ RAM
✓ Registro de corrimiento
• Flip Flop
• Multiplexor
FPGA
Procesadores con FPGA

CPU separada físicamente del PGA

CPU
Secuencial + FPGA
FPGA
Procesadores con FPGA

Embebido todo junto en un solo chip (SoC)

Se lo llaman Microprocessor Cores

La CPU junto al FPGA Que la FPGA sea una CPU


HARD Microprocessor Core SOFT Microprocessor Core

Es posible diseñar
un
microprocesador
con el FPGA
usando los CLBs.
FPGA
Agenda Clase

• Sistemas Embebidos
• Tipos de Arquitecturas
• Arquitecturas Reconfigurables
• FPGA

• XPP
• RAPID
• IoT con Arquitecturas Reconfigurables
Arquitectura
ADRES
(Architecture for Dynamically Reconfigurable
Embedded System)
ADRES - Sistema

Programa Ejecutable

Instrucción ILP
Varias operaciones que pueden ser
ejecutadas en paralelo (ILP) se
empaquetan en una instrucción
larga
ADRES - Sistema

La detección del paralelismo


la hace
el compilador (off-line)

Luego de la captación y
decodificación de una
instrucción, las
operaciones contenidas son
emitidas
en paralelo.
ADRES - Sistema

Celdas
Reconfigurables
ADRES - Celda Reconfigurable (RC)

FU RF
Agenda Clase

• Sistemas Embebidos
• Tipos de Arquitecturas
• Arquitecturas Reconfigurables
• FPGA
• Adres

• RAPID
• IoT con Arquitecturas Reconfigurables
Arquitectura XPP
(Extreme Processing Platform)
XPP – Estructura del núcleo
XPP – Mapeo de flujos

x = (a*c) - (ib*id)
iy = (a*id) + (ib*c)

Configuración DataStream
XPP – Mapeo de flujos
Zoom PAEs - Calculo simple (flujo de x) x = (a*c) - (ib*id)

x SUB MUL MUL ADD iy

ib MUL MUL id

a c
XPP – Escalable x 4
Núcleo XPP

PAC
XPP – Vista completa
Agenda Clase

• Sistemas Embebidos
• Tipos de Arquitecturas
• Arquitecturas Reconfigurables
• FPGA
• Adres
• XPP

• IoT con Arquitecturas Reconfigurables


Arquitectura
Rapid
(Reconfigurable Pipelined Datapath)
RaPiD - Estructura

FU
RaPiD – Buses Interconexión

Interconexión con FU Bus Connector


RaPiD – Interconexión
Interconexión con FU Bus Connector(BC)

Multiplexor

Compuerta NOT
Agenda Clase

• Sistemas Embebidos
• Tipos de Arquitecturas
• Arquitecturas Reconfigurables
• FPGA
• Adres
• XPP
• RAPID
Reconfigurables + IoT
En Cloud Computing el procesamiento de los datos
se realiza en la nube
Reconfigurables + IoT
En Fog Computing el procesamiento de los datos
se realiza en la nube y en los dispositivos
Nube remota

Nube local
Reconfigurables + IoT
Para poder implementar eficientemente IoT + Fog Computing
Será necesario mucho procesamiento de datos en tiempo real.
Por ese motivo las arquitecturas reconfigurables
(especialmente FPGA) llevan a cabo un papel fundamental,
debido a que bajan los costos y tiempo de infraestructura.

Empresas que están utilizando IoT+Fog computing


• Amazon
• Microsoft
• Intel
• Dell

Vous aimerez peut-être aussi