Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf ·...

102
MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica de máquinas de estados Lectura de tesis doctoral Director: José Luis Guisado Lizar (Univ. de Sevilla) 25 de septiembre de 2012 Tribunal: Manuel Jesús Bellido Díaz (Univ. de Sevilla) Juan Antonio Gómez Pulido (Univ. de Extremadura) José María Rodríguez Corral (Univ. de Cádiz) Pedro Guerra Gutiérrez (Univ. de Politécnica de Madrid) Daniel Cagigas Muñiz (Univ. de Sevilla) Autor: Raouf Senhadji Navarro

Transcript of Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf ·...

Page 1: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Una contribución a la implementación electrónica de máquinas de estados

Lectura de tesis doctoral

Director:

• José Luis Guisado Lizar

(Univ. de Sevilla)

25 de septiembre de 2012

Tribunal:

• Manuel Jesús Bellido Díaz

(Univ. de Sevilla)

• Juan Antonio Gómez Pulido

(Univ. de Extremadura)

• José María Rodríguez Corral

(Univ. de Cádiz)

• Pedro Guerra Gutiérrez

(Univ. de Politécnica de Madrid)

• Daniel Cagigas Muñiz

(Univ. de Sevilla)

Autor:

• Raouf Senhadji Navarro

Page 2: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONTENIDO

Introducción

Caracterización de implementaciones basadas en

memoria de FSM sobre FPGA

Máquinas de Estados Virtuales Finitos (FVSM)

Implementación de FVSM en FPGA

Generación automática de implementaciones FVSM

Comparativa entre implementaciones FSM y FVSM

Otras aportaciones a la implementación basada en

memoria de FSM

Conclusiones y trabajo futuro

2

Page 3: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONTENIDO

Introducción

Caracterización de implementaciones basadas en

memoria de FSM sobre FPGA

Máquinas de Estados Virtuales Finitos (FVSM)

Implementación de FVSM en FPGA

Generación automática de implementaciones FVSM

Comparativa entre implementaciones FSM y FVSM

Otras aportaciones a la implementación basada en

memoria de FSM

Conclusiones y trabajo futuro

2

Page 4: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MOTIVACIÓN

Una máquina de estados finitos (FSM) es un modelo que permite describir el comportamiento de un circuito secuencial

Investigación en la implementación electrónica de FSM

Una implementación eficiente involucra problemas computacionalmente complejos

Nuevos retos: Diseñar hardware para tareas tradicionalmente implementadas por software con objeto de alcanzar las altas prestaciones demandadas

Pueden transformarse en FSM con un número elevado de estados

El reconocimiento de patrones o el rutado de paquetes en redes

Nuevos recursos y capacidades en las FPGA

Importante crecimiento de los recursos de memoria (94% SoC)

Arquitecturas basadas en memoria

Herramientas para mapear lógica en bloques de memoria

3

Page 5: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

DEFINICIÓN DE UNA FSM

Una FSM se define como una 6-tupla (X, Y, S, h, g, s0) donde:

X es un conjunto finito de variables de entrada

Y es un conjunto finito de variables de salida

S es un conjunto finito de estados

h : S × X → S es la función de transición

g : S × X → Y es la función de salida (FSM de Mealy)

g : S → Y en una FSM de Moore

s0 ∈ S es el estado inicial

4

Page 6: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

IMPLEMENTACIÓN BASADA EN MEMORIA DE FSM

Ventajas respecto a las implementaciones convencionales:

Área Al usar bloques se liberan LUT

Con RAM distribuida se redujo la ocupación en LUT

Velocidad La velocidad en un único bloque es independiente

de la complejidad de la FSM

Con RAM de bloques se mejoró la velocidad

Consumo de potencia La memoria puede deshabilitarse en los bucles,

reduciendo el consumo de potencia

Capacidad de “reconfiguración” Puede usarse en dispositivos sin DPR

No requiere cambiar el place&routing

Portabilidad

Menor tamaño de datos y latencia de reconfiguración

Cálculo dinámico de la “reconfiguración”

Implementación

basada en memoria

5

Page 7: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONTENIDO

Introducción

Caracterización de implementaciones basadas en

memoria de FSM sobre FPGA

Máquinas de Estados Virtuales Finitos (FVSM)

Implementación de FVSM en FPGA

Generación automática de implementaciones FVSM

Comparativa entre implementaciones FSM y FVSM

Otras aportaciones a la implementación basada en

memoria de FSM

Conclusiones y trabajo futuro

6

Page 8: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

IMPLEMENTACIONES BASADAS EN MEMORIA

Una RAM se construye con:

Elementos de memoria

(bloques o LUTs)

Multiplexores (Lectura)

Decodificador (Escritura)

Características específicas de las FPGA:

Bloque de memoria

LUT

Multiplexores empotrados

Lógica de decodificación

Interconexión de bloques adyacentes

7

Page 9: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CARACTERIZACIÓN DE IMPLEMENTACIONES

RAM distribuida

Número de entradas Número de salidas Número de bits de codificación de estados

Número de entradas Número de salidas Número de bits de codificación de estados

Fre

cu

en

cia

(M

Hz)

Fre

cu

en

cia

(M

Hz)

Fre

cu

en

cia

(M

Hz)

Núm

ero

de

LU

T

Núm

ero

de

LU

T

Núm

ero

de

LU

T

8

Page 10: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CARACTERIZACIÓN DE IMPLEMENTACIONES

RAM distribuida

Número de entradas Número de salidas Número de bits de codificación de estados

Número de entradas Número de salidas Número de bits de codificación de estados

5%

Fre

cu

en

cia

(M

Hz)

Fre

cu

en

cia

(M

Hz)

Fre

cu

en

cia

(M

Hz)

Núm

ero

de

LU

T

Núm

ero

de

LU

T

Núm

ero

de

LU

T

8

Page 11: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CARACTERIZACIÓN DE IMPLEMENTACIONES

RAM distribuida

Número de entradas Número de salidas Número de bits de codificación de estados

Número de entradas Número de salidas Número de bits de codificación de estados

Fre

cu

en

cia

(M

Hz)

Fre

cu

en

cia

(M

Hz)

Fre

cu

en

cia

(M

Hz)

Núm

ero

de

LU

T

Núm

ero

de

LU

T

Núm

ero

de

LU

T

17%

8

Page 12: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CARACTERIZACIÓN DE IMPLEMENTACIONES

RAM de bloques

Número de entradas Número de salidas Número de bits de codificación de estados

Número de entradas Número de salidas Número de bits de codificación de estados

Fre

cu

en

cia

(M

Hz)

Fre

cu

en

cia

(M

Hz)

Fre

cu

en

cia

(M

Hz)

Núm

ero

de

recu

rsos

Núm

ero

de

recu

rsos

Núm

ero

de

recu

rsos

9

Page 13: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CARACTERIZACIÓN DE IMPLEMENTACIONES

RAM de bloques

Número de entradas Número de salidas Número de bits de codificación de estados

Número de entradas Número de salidas Número de bits de codificación de estados

45%

Fre

cu

en

cia

(M

Hz)

Fre

cu

en

cia

(M

Hz)

Fre

cu

en

cia

(M

Hz)

Núm

ero

de

recu

rsos

Núm

ero

de

recu

rsos

Núm

ero

de

recu

rsos

9

Page 14: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CARACTERIZACIÓN DE IMPLEMENTACIONES

Las características específicas de la FPGA influyen

en las prestaciones

Crecimiento lineal de recursos y mantenimiento de

la velocidad para

Salidas

Crecimiento exponencial de recursos y

disminución de velocidad para

Entradas

Número de bits de codificación de estados

Dependencia directa entre el tiempo de respuesta

de la RAM y su profundidad (complejidad del MUX

en camino crítico)

Se requieren técnicas para mejorar las

prestaciones

En diseños de bajo consumo, incluso con bloques

grandes, se reduce significativamente la velocidad,

debido a las configuraciones de bloques requeridas

Optimización en

consumo de potencia

Optimización en velocidad

Conclusiones

10

Page 15: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONTENIDO

Introducción

Caracterización de implementaciones basadas en

memoria de FSM sobre FPGA

Máquinas de Estados Virtuales Finitos (FVSM)

Implementación de FVSM en FPGA

Generación automática de implementaciones FVSM

Comparativa entre implementaciones FSM y FVSM

Otras aportaciones a la implementación basada en

memoria de FSM

Conclusiones y trabajo futuro

11

Page 16: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Modelo inspirado en la jerarquía de memoria

Aprovechamiento de la localidad en los accesos a los estados

Jerarquía de dos niveles: Memoria Principal y Memoria Secundaria

Puede verse como un sistema de caché con pre-búsqueda (sin fallos)

Terminología básica

Estado virtual (sk)

Marco de estado (fk)

Instancia de máquina (ik)

Estado de actualización (sk)

12

Page 17: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Modelo inspirado en la jerarquía de memoria

Aprovechamiento de la localidad en los accesos a los estados

Jerarquía de dos niveles: Memoria Principal y Memoria Secundaria

Puede verse como un sistema de caché con pre-búsqueda (sin fallos)

Terminología básica

Estado virtual (sk)

Marco de estado (fk)

Instancia de máquina (ik)

Estado de actualización (sk)

i0

12

Page 18: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Modelo inspirado en la jerarquía de memoria

Aprovechamiento de la localidad en los accesos a los estados

Jerarquía de dos niveles: Memoria Principal y Memoria Secundaria

Puede verse como un sistema de caché con pre-búsqueda (sin fallos)

Terminología básica

Estado virtual (sk)

Marco de estado (fk)

Instancia de máquina (ik)

Estado de actualización (sk)

i1

12

Page 19: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Modelo inspirado en la jerarquía de memoria

Aprovechamiento de la localidad en los accesos a los estados

Jerarquía de dos niveles: Memoria Principal y Memoria Secundaria

Puede verse como un sistema de caché con pre-búsqueda (sin fallos)

Terminología básica

Estado virtual (sk)

Marco de estado (fk)

Instancia de máquina (ik)

Estado de actualización (sk)

f0

f1

f2

f3 i0

12

Page 20: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Modelo inspirado en la jerarquía de memoria

Aprovechamiento de la localidad en los accesos a los estados

Jerarquía de dos niveles: Memoria Principal y Memoria Secundaria

Puede verse como un sistema de caché con pre-búsqueda (sin fallos)

Terminología básica

Estado virtual (sk)

Marco de estado (fk)

Instancia de máquina (ik)

Estado de actualización (sk)

f0

f1

f3

f2

i0

12

Page 21: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Modelo inspirado en la jerarquía de memoria

Aprovechamiento de la localidad en los accesos a los estados

Jerarquía de dos niveles: Memoria Principal y Memoria Secundaria

Puede verse como un sistema de caché con pre-búsqueda (sin fallos)

Terminología básica

Estado virtual (sk)

Marco de estado (fk)

Instancia de máquina (ik)

Estado de actualización (sk)

f0

f1

f3

s2

f2

i0

12

Page 22: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Modelo inspirado en la jerarquía de memoria

Aprovechamiento de la localidad en los accesos a los estados

Jerarquía de dos niveles: Memoria Principal y Memoria Secundaria

Puede verse como un sistema de caché con pre-búsqueda (sin fallos)

Terminología básica

Estado virtual (sk)

Marco de estado (fk)

Instancia de máquina (ik)

Estado de actualización (sk)

f0

f3

f1

f2 i1

12

Page 23: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Modelo inspirado en la jerarquía de memoria

Aprovechamiento de la localidad en los accesos a los estados

Jerarquía de dos niveles: Memoria Principal y Memoria Secundaria

Puede verse como un sistema de caché con pre-búsqueda (sin fallos)

Terminología básica

Estado virtual (sk)

Marco de estado (fk)

Instancia de máquina (ik)

Estado de actualización (sk)

f0

f3

f1

f2 i1

12

Page 24: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Modelo inspirado en la jerarquía de memoria

Aprovechamiento de la localidad en los accesos a los estados

Jerarquía de dos niveles: Memoria Principal y Memoria Secundaria

Puede verse como un sistema de caché con pre-búsqueda (sin fallos)

Terminología básica

Estado virtual (sk)

Marco de estado (fk)

Instancia de máquina (ik)

Estado de actualización (sk)

s2

f0

f3

f1

f2 i1

12

Page 25: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Modelo inspirado en la jerarquía de memoria

Aprovechamiento de la localidad en los accesos a los estados

Jerarquía de dos niveles: Memoria Principal y Memoria Secundaria

Puede verse como un sistema de caché con pre-búsqueda (sin fallos)

Terminología básica

Estado virtual (sk)

Marco de estado (fk)

Instancia de máquina (ik)

Estado de actualización (sk)

f0

f1

f3

f2

i0

12

Page 26: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Modelo inspirado en la jerarquía de memoria

Aprovechamiento de la localidad en los accesos a los estados

Jerarquía de dos niveles: Memoria Principal y Memoria Secundaria

Puede verse como un sistema de caché con pre-búsqueda (sin fallos)

Terminología básica

Estado virtual (sk)

Marco de estado (fk)

Instancia de máquina (ik)

Estado de actualización (sk)

f0

f1

f3

f2

i0

12

Page 27: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

DEFINICIÓN FORMAL DE UNA FVSM

Definimos una FVSM como una 9-tupla (X, Y, F, I, t, o, u, i0, f0) donde:

X es un conjunto finito de variables de entrada

Y es un conjunto finito de variables de salida

F es un conjunto finito de marcos de estado

I es un conjunto de instancias de máquina

t : I × F × X → F es la función de transición

o : I × F × X → Y es la función de salida (FVSM de Mealy)

o: I × F → Y en una FVSM de Moore

u: I × F → I es la función de actualización

i0 ∈ I es la instancia inicial

f0 ∈ F es el marco inicial

13

Page 28: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

EQUIVALENCIA ENTRE FVSM Y FSM

Decimos que una FVSM y una FSM son equivalentes si para cualquier secuencia de entradas se obtiene en ambas la misma salida

Condición de suficiencia: Son equivalentes si existe una función parcial w: I × F → S (denominada función de virtualización) para la que se cumple que

w(i0, f0) = s0

y que, para todo estado alcanzable sk y entrada x, existe una instancia ip y un marco fq para los que se cumplen las siguientes condiciones:

w(ip, fq) = sk

w(u(ip, fq), t(ip, fq,x)) = h(sk, x)

o(ip, fq, x) = g(sk, x)

14

Page 29: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

EQUIVALENCIA ENTRE FVSM Y FSM. EJEMPLO

FVSM

FSM

15

Page 30: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

EQUIVALENCIA ENTRE FVSM Y FSM. EJEMPLO

FVSM

FSM

15

Page 31: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

EQUIVALENCIA ENTRE FVSM Y FSM. EJEMPLO

FVSM

FSM

15

Page 32: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

EQUIVALENCIA ENTRE FVSM Y FSM. EJEMPLO

FVSM

FSM

15

Page 33: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

EQUIVALENCIA ENTRE FVSM Y FSM. EJEMPLO

FVSM

FSM

15

Page 34: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

EQUIVALENCIA ENTRE FVSM Y FSM. EJEMPLO

FVSM

FSM

15

Page 35: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

EQUIVALENCIA ENTRE FVSM Y FSM. EJEMPLO

FVSM

FSM

15

Page 36: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

EQUIVALENCIA ENTRE FVSM Y FSM. EJEMPLO

FVSM

FSM

15

Page 37: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

EQUIVALENCIA ENTRE FVSM Y FSM. EJEMPLO

FVSM

FSM

15

Page 38: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONTENIDO

Introducción

Caracterización de implementaciones basadas en

memoria de FSM sobre FPGA

Máquinas de Estados Virtuales Finitos (FVSM)

Implementación de FVSM en FPGA

Generación automática de implementaciones FVSM

Comparativa entre implementaciones FSM y FVSM

Otras aportaciones a la implementación basada en

memoria de FSM

Conclusiones y trabajo futuro

16

Page 39: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM

La memoria principal contiene la instancia actual

Genera el próximo estado y la salida

Gestiona los cambios de instancia

RAM de doble puerto simple

La memoria secundaria contiene todas las actualizaciones de

instancia y las direcciones donde éstas se escriben en memoria

principal

17

Page 40: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM

La memoria principal contiene la instancia actual

Genera el próximo estado y la salida

Gestiona los cambios de instancia

RAM de doble puerto simple

La memoria secundaria contiene todas las actualizaciones de

instancia y las direcciones donde éstas se escriben en memoria

principal

17

Page 41: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM

La memoria principal contiene la instancia actual

Genera el próximo estado y la salida

Gestiona los cambios de instancia

RAM de doble puerto simple

La memoria secundaria contiene todas las actualizaciones de

instancia y las direcciones donde éstas se escriben en memoria

principal

17

Page 42: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM. IMPLEMENTACIÓN

La memoria principal es una RAM de doble puerto asimétrico con

configuración primero-escritura

La profundidad mínima en escritura ω (en bits) de los recursos de

memoria influye en el número máximo de marcos k (en bits) que pueden

ser modificados en un cambio de instancia

Se habla de ω-recursos

En Xilinx Spartan-3, ω=4 para LUT y ω=9 para bloques

El número total de marcos r (en bits) influye también en k

Se impone la siguiente restricción:

k ≤ r – ω

ω

Configuración en lectura

Configuración en escritura

18

Page 43: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM. CAMBIOS DE INSTANCIA

Dirección

memoria

Datos

ai dai

0 s0, s5 0

1 s3, s4 0

Memoria secundaria

Memoria principal

Secuencia de

actualización (2 ciclos)

Selección de

actualización de

instancia

Habilitación de

actualización de

instancia

Pipeline

(1 actualización/ciclo)

Implementabilidad de

una FVSM en la

arquitectura propuesta

FVSM

FSM

19

Page 44: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM. CAMBIOS DE INSTANCIA

Dirección

memoria

Datos

ai dai

0 s0, s5 0

1 s3, s4 0

Memoria secundaria

Memoria principal

Secuencia de

actualización (2 ciclos)

Selección de

actualización de

instancia

Habilitación de

actualización de

instancia

Pipeline

(1 actualización/ciclo)

Implementabilidad de

una FVSM en la

arquitectura propuesta

FVSM

FSM

19

Page 45: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM. CAMBIOS DE INSTANCIA

Dirección

memoria

Datos

ai dai

0 s0, s5 0

1 s3, s4 0

Memoria secundaria

Memoria principal

Secuencia de

actualización (2 ciclos)

Selección de

actualización de

instancia

Habilitación de

actualización de

instancia

Pipeline

(1 actualización/ciclo)

Implementabilidad de

una FVSM en la

arquitectura propuesta

FVSM

FSM

19

Page 46: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM. CAMBIOS DE INSTANCIA

Dirección

memoria

Datos

ai dai

0 s0, s5 0

1 s3, s4 0

Memoria secundaria

Memoria principal

Secuencia de

actualización (2 ciclos)

Selección de

actualización de

instancia

Habilitación de

actualización de

instancia

Pipeline

(1 actualización/ciclo)

Implementabilidad de

una FVSM en la

arquitectura propuesta

i1

FVSM

FSM

19

Page 47: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM. CAMBIOS DE INSTANCIA

Dirección

memoria

Datos

ai dai

0 s5, s0 0

1 s4, s3 0

Memoria secundaria

Memoria principal

Secuencia de

actualización (2 ciclos)

Selección de

actualización de

instancia

Habilitación de

actualización de

instancia

Pipeline

(1 actualización/ciclo)

Implementabilidad de

una FVSM en la

arquitectura propuesta

s4 s3

1

FVSM

FSM

19

Page 48: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM. CAMBIOS DE INSTANCIA

Dirección

memoria

Datos

ai dai

0 s5, s0 0

1 s4, s3 0

Memoria secundaria

Memoria principal

Secuencia de

actualización (2 ciclos)

Selección de

actualización de

instancia

Habilitación de

actualización de

instancia

Pipeline

(1 actualización/ciclo)

Implementabilidad de

una FVSM en la

arquitectura propuesta

FVSM

FSM

19

Page 49: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM. CAMBIOS DE INSTANCIA

Secuencia de

actualización (2 ciclos)

Selección de

actualización de

instancia

Habilitación de

actualización de

instancia

Pipeline

(1 actualización/ciclo)

Implementabilidad de

una FVSM en la

arquitectura propuesta

20

Page 50: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ARQUITECTURA FVSM. CAMBIOS DE INSTANCIA

Secuencia de

actualización (2 ciclos)

Selección de

actualización de

instancia

Habilitación

actualización de

instancia

Pipeline

(1 actualización/ciclo)

Implementabilidad de

una FVSM en la

arquitectura propuesta

21

Page 51: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

VENTAJAS DE LAS IMPLEMENTACIONES FVSM

Velocidad

Influencia de los parámetros en la profundidad

Memoria principal

Número de entradas

Número de marcos

Memoria secundaria

Número de instancias (o actualizaciones de instancia)

La profundidad de ambas memorias se reducen con respecto a la de

una FSM

Las instancias tienen menos estados que la FSM

Existen menos instancias que estados en la FSM

Las entradas no afectan a la profundidad de la memoria

secundaria

La memoria con mayor profundidad impone la velocidad de la

FVSM

Objetivo: equilibrar la profundidad de ambas memorias

22

Page 52: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

OTRAS VENTAJAS DE LAS IMPLEMENTACIONES FVSM

Consumo de potencia

La memoria secundaria puede ser deshabilitada siempre que

no haya cambios de instancia

Capacidad de reconfiguración

Las distintas instancias pueden ser “reconfiguradas” en la

memoria secundaria mientras la principal sigue operando

correctamente

23

Page 53: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Influencia en área y velocidad del: Número de entradas

Número de salidas

Número de bits de codificación de marcos

Número de bits de codificación de actualizaciones de instancia

Número de bits de codificación de marcos por actualización de instancia

CARACTERIZACIÓN DE IMPLEMENTACIONES FVSM 24

Page 54: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Influencia en área y velocidad del:

Número de entradas Número de salidas

Número de bits de codificación de marcos

Número de bits de codificación de actualizaciones de instancia

Número de bits de codificación de marcos por actualización de instancia

CARACTERIZACIÓN DE IMPLEMENTACIONES FVSM

Número de entradas Número de entradas

Fre

cu

en

cia

(M

hz)

me

ro d

e L

UT

Influye en la profundidad de la principal

Influye en el ancho de la secundaria

24

Page 55: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Influencia en área y velocidad del: Número de entradas

Número de salidas Número de bits de codificación de marcos

Número de bits de codificación de actualizaciones de instancia

Número de bits de codificación de marcos por actualización de instancia

CARACTERIZACIÓN DE IMPLEMENTACIONES FVSM

Número de salidas Número de salidas

Fre

cu

en

cia

(M

hz)

me

ro d

e L

UT

25

Influye en el ancho de la principal

Influye en el ancho de la secundaria

Page 56: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Influencia en área y velocidad del: Número de entradas

Número de salidas

Número de bits de codificación de marcos Número de bits de codificación de actualizaciones de instancia

Número de bits de codificación de marcos por actualización de instancia

CARACTERIZACIÓN DE IMPLEMENTACIONES FVSM

Número de bits de codificación de marcos Número de bits de codificación de marcos

Fre

cu

en

cia

(M

hz)

me

ro d

e L

UT

26

Influye en la profundidad de la principal

Page 57: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Influencia en área y velocidad del: Número de entradas

Número de salidas

Número de bits de codificación de marcos

Número de bits de codificación de actualizaciones de instancia Número de bits de codificación de marcos por actualización de instancia

CARACTERIZACIÓN DE IMPLEMENTACIONES FVSM

Núm. de bits de codificación de actualizaciones de instancia Núm. de bits de codificación de actualizaciones de instancia

Fre

cu

en

cia

(M

hz)

me

ro d

e L

UT

27

Influye en la profundidad de la secundaria

Page 58: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Influencia en área y velocidad del: Número de entradas

Número de salidas

Número de bits de codificación de marcos

Número de bits de codificación de actualizaciones de instancia

Número de bits de codificación de marcos por actualización de instancia

CARACTERIZACIÓN DE IMPLEMENTACIONES FVSM

Núm. de bits de codificación de marcos por actualización Núm. de bits de codificación de marcos por actualización

Fre

cu

en

cia

(M

hz)

me

ro d

e L

UT

28

Influye en el ancho de la secundaria

Page 59: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CARACTERIZACIÓN DE IMPLEMENTACIONES FVSM

Velocidad

Un número elevado de entradas facilita el equilibrado

El impacto del número de estados en la velocidad viene amortiguado por la jerarquía de memoria

El número de bits de codificación de marcos por actualización de instancia no influye en la velocidad

Se elige el valor máximo que permite la restricción impuesta por los ω-recursos

Área

Memoria secundaria con un número de recursos similar a la FSM (con excepción de los bits de control y redundancia de estados)

La memoria principal supone un coste adicional

Los multiplexores y decodificadores de las FVSM son más simples

Conclusiones

29

Page 60: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONTENIDO

Introducción

Caracterización de implementaciones basadas en

memoria de FSM sobre FPGA

Máquinas de Estados Virtuales Finitos (FVSM)

Implementación de FVSM en FPGA

Generación automática de implementaciones FVSM

Comparativa entre implementaciones FSM y FVSM

Otras aportaciones a la implementación basada en

memoria de FSM

Conclusiones y trabajo futuro

30

Page 61: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

VIRTUALIZACIÓN: DE UNA FSM A UNA FVSM (I)

Conjunto generador A S

El conjunto generador contiene los que serán estados de actualización

Conjuntos de estados virtuales D = {Dj}

Cada conjunto de estados virtuales contiene los estados de una

instancia

A = {s1, s2}

31

Page 62: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Conjunto generador A S

El conjunto generador contiene los que serán estados de actualización

Conjuntos de estados virtuales D = {Dj}

Cada conjunto de estados virtuales contiene los estados de una

instancia

VIRTUALIZACIÓN: DE UNA FSM A UNA FVSM (I)

G0

A = {s1, s2}

s1 ∈ A; D0 = {}

31

Page 63: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Conjunto generador A S

El conjunto generador contiene los que serán estados de actualización

Conjuntos de estados virtuales D = {Dj}

Cada conjunto de estados virtuales contiene los estados de una

instancia

VIRTUALIZACIÓN: DE UNA FSM A UNA FVSM (I)

G0

A = {s1, s2}

s1 ∈ A; D0 = {s2}

31

Page 64: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Conjunto generador A S

El conjunto generador contiene los que serán estados de actualización

Conjuntos de estados virtuales D = {Dj}

Cada conjunto de estados virtuales contiene los estados de una

instancia

VIRTUALIZACIÓN: DE UNA FSM A UNA FVSM (I)

G0

A = {s1, s2}

s1 ∈ A; D0 = {s2, s5}

31

Page 65: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Conjunto generador A S

El conjunto generador contiene los que serán estados de actualización

Conjuntos de estados virtuales D = {Dj}

Cada conjunto de estados virtuales contiene los estados de una

instancia

VIRTUALIZACIÓN: DE UNA FSM A UNA FVSM (I)

G0

A = {s1, s2}

s1 ∈ A; D0 = {s2, s5, s0}

31

Page 66: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

VIRTUALIZACIÓN: DE UNA FSM A UNA FVSM (I)

G0

Conjunto generador A S

El conjunto generador contiene los que serán estados de actualización

Conjuntos de estados virtuales D = {Dj}

Cada conjunto de estados virtuales contiene los estados de una

instancia

A = {s1, s2}

s1 ∈ A; D0 = {s2, s5, s0, s1}

31

Page 67: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Conjunto generador A S

El conjunto generador contiene los que serán estados de actualización

Conjuntos de estados virtuales D = {Dj}

Cada conjunto de estados virtuales contiene los estados de una

instancia

VIRTUALIZACIÓN: DE UNA FSM A UNA FVSM (I)

A = {s1, s2}

s2 ∈ A; D1 = {s2, s3, s4, s1}

G1

31

Page 68: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

VIRTUALIZACIÓN: DE UNA FSM A UNA FVSM (I)

A = {s1, s2}

s2 ∈ A; D1 = {s2, s3, s4, s1}

s1 ∈ A; D0 = {s2, s5, s0, s1}

Conjunto generador A S

El conjunto generador contiene los que serán estados de actualización

Conjuntos de estados virtuales D = {Dj}

Cada conjunto de estados virtuales contiene los estados de una

instancia

31

Page 69: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

VIRTUALIZACIÓN: DE UNA FSM A UNA FVSM (II)

Por cada Dj ∈ D, se crea una instancia ij

Se crean tantos marcos fk ∈ F como elementos tenga el mayor Dj

Se define la función de virtualización w: I × F → S

w(ij, fk) = dk(j) ∀ dk

(j) ∈ Dj

ip y fq son la instancia y marco inicial, respectivamente, si

w(ip, fq) = s0 y s0 ∈ Dp

Se define la función de actualización u: I × F → S

Se define la función de transición t: I × F × X → F

t(ij, fk, x) = fl donde w(u(ij,fk), fl) = h(dk(j),x) ∀ dk

(j) ∈ Dj y ∀ x ∈ X

Se define la función de salida o: I × F × X → Y

o(ij,fk,x) = g(dk(j), x) ∀ dk

(j) ∈ Dj y ∀ x ∈ X

=

= "

A a d i

A d i f i w D d

q

j

k q

j

k j

k j j

j

k ) (

) (

) (

si

si ) , ( ,

32

Page 70: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

=

= "

A a d i

A d i f i w D d

q

j

k q

j

k j

k j j

j

k ) (

) (

) (

si

si ) , ( ,

Por cada Dj ∈ D, se crea una instancia ij

Se crean tantos marcos fk ∈ F como elementos tenga el mayor Dj

Se define la función de virtualización w: I × F → S

w(ij, fk) = dk(j) ∀ dk

(j) ∈ Dj

ip y fq son la instancia y marco inicial, respectivamente, si

w(ip, fq) = s0 y s0 ∈ Dp

Se define la función de actualización u: I × F → S

Se define la función de transición t: I × F × X → F

t(ij, fk, x) = fl donde w(u(ij,fk), fl) = h(dk(j),x) ∀ dk

(j) ∈ Dj y ∀ x ∈ X

Se define la función de salida o: I × F × X → Y

o(ij,fk,x) = g(dk(j), x) ∀ dk

(j) ∈ Dj y ∀ x ∈ X

VIRTUALIZACIÓN: DE UNA FSM A UNA FVSM (II)

Se ha demostrado que

la FSM y la FVSM creada

son equivalentes

Pág.

237-240

32

Page 71: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

IMPLEMENTACIONES FVSM

Definición de una implemementación FVSM

L = {L1, L2, …, Ln} con Lk = (li,j) ∈ Mp×q

Ejemplo

k

Grafo de instancias

Conjuntos de

estados virtuales Implementación

D = {D1, D2, D3, D4}

D1 = {s1, s2, s3, s0}

D2 = {s1, s2, s4, s5}

D3 = {s3, s6, s7}

D4 = {s1, s2, s8, s9}

L = {L1, L2, L3, L4}

=

54

21

2ss

ssL

=

03

76

3ss

ssL

=

98

21

4ss

ssL

=

03

21

1ss

ssL

33

Page 72: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONDICIONES DE IMPLEMENTACIÓN

Las condiciones que debe cumplir una implementación

con ω-recursos de una FVSM equivalente a una FSM

dada son:

Compatibilidad

Equivalencia

Empaquetabilidad

Adecuidad

34

Page 73: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONDICIÓN DE COMPATIBILIDAD

El conjunto generador es un conjunto independiente en el grafo de

incompatibilidad de la FSM

Estados incompatibles a ⋈ b

pa ⋂ pb ≠ Ø donde ps = {s’ ∈ S : (s,s’) ∈ T} con s ∈ S

Grafo de incompatibilidad H=(S,E)

{s,t} ∈ E si y solo si s ⋈ t con s,t ∈ S

Condición impuesta por la arquitectura propuesta

G = (S, T)

FSM

Grafo de

incompatibilidad

s2 ⋈ s5

/ H = (S, E)

35

Page 74: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Grafo de instancias

Conjuntos de

estados virtuales Implementación

D = {D1, D2, D3, D4}

D1 = {s1, s2, s3, s0}

D2 = {s1, s2, s4, s5}

D3 = {s3, s6, s7}

D4 = {s1, s2, s8, s9}

L = {L1, L2, L3, L4}

=

54

21

2ss

ssL

=

03

76

3ss

ssL

=

98

21

4ss

ssL

=

03

21

1ss

ssL

CONDICIÓN DE EQUIVALENCIA

Para cualquier conjunto virtual Dj ∈ D, se verifica que, para todo

estado s ∈ Dj, existen un i y un j tal que li,j = s

Esta condición garantiza que la FVSM es equivalente a la FSM dada

k

36

Page 75: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONDICIÓN DE EMPAQUETABILIDAD

Para cualquier par de instancias adyacentes ia,ib ∈ I se cumple que:

donde

Grafo de instancias

Conjuntos de

estados virtuales Implementación

D = {D1, D2, D3, D4}

D1 = {s1, s2, s3, s0}

D2 = {s1, s2, s4, s5}

D3 = {s3, s6, s7}

D4 = {s1, s2, s8, s9}

L = {L1, L2, L3, L4}

=

54

21

2ss

ssL

=

03

76

3ss

ssL

=

98

21

4ss

ssL

=

03

21

1ss

ssL

Esta condición garantiza

que no existan instancias

adyacentes que difieran

en más de un paquete

(o fila)

=

= contrario caso en 0

si 1 ) , ( , ,

,

b j i

a j i

b a

l l j i g

" >

= contrario caso en 0

} ,..., 1 { 0 ) , ( si 1 ) (

,

,

q j j i g i h

b a

b a

1 ) ( ) , ( 1

, = D

=

p

i b a b a i h L L

37

Page 76: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONDICIÓN DE EMPAQUETABILIDAD

Grafo de instancias

Conjuntos de

estados virtuales Implementación

D = {D1, D2, D3, D4}

D1 = {s1, s2, s3, s0}

D2 = {s1, s2, s4, s5}

D3 = {s3, s6, s7}

D4 = {s1, s2, s8, s9}

L = {L1, L2, L3, L4}

=

54

21

2ss

ssL

=

03

76

3ss

ssL

=

98

21

4ss

ssL

=

03

21

1ss

ssL

Para cualquier par de instancias adyacentes ia,ib ∈ I se cumple que:

donde

Esta condición garantiza

que no existan instancias

adyacentes que difieran

en más de un paquete

(o fila)

=

= contrario caso en 0

si 1 ) , ( , ,

,

b j i

a j i

b a

l l j i g

" >

= contrario caso en 0

} ,..., 1 { 0 ) , ( si 1 ) (

,

,

q j j i g i h

b a

b a

1 ) ( ) , ( 1

, = D

=

p

i b a b a i h L L

38

Page 77: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONDICIÓN DE ADECUIDAD

Dada una implementación L = {L1, L2, …, Ln} con Lk = (li,j) ∈ Mp×q

la condición impuesta por los ω-recursos se reescribe como:

log2 q ≤ log2 pq – ω

Esta condición garantiza una implementación con ω-recursos

Grafo de instancias

Conjuntos de

estados virtuales Implementación

D = {D1, D2, D3, D4}

D1 = {s1, s2, s3, s0}

D2 = {s1, s2, s4, s5}

D3 = {s3, s6, s7}

D4 = {s1, s2, s8, s9}

L = {L1, L2, L3, L4}

=

54

21

2ss

ssL

=

03

76

3ss

ssL

=

98

21

4ss

ssL

=

03

21

1ss

ssL

q = 2

pq = 4

Se requieren

1-recursos

39

Page 78: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

PROBLEMA DEL COSTE MÍNIMO DE IMPLEMENTACIÓN

A cada implementación L le asignamos un coste mediante la

función:

c : L → ℤ0

El Problema del Mínimo Coste de Implementación (MICP) se

define como sigue:

min c(L)

sujeto a que L cumpla las condiciones de implemementación

+

40

Page 79: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

PROBLEMA DE LA MÍNIMA PROFUNDIDAD DE MEMORIA

Para optimizar la velocidad es necesario minimizar el máximo

entre la profundidad de la memoria principal (μ) y la de la

secundaria (σ). Definimos profundidad FVSM (d) como sigue:

d = max {μ, σ}

Dada una L = {L1, L2, …, Ln} con Lk = (lki,j) ∈ Mp×q que

cumple las condiciones de implementación tenemos que:

d = max {|X| + log2 pq, σ}

donde σ viene dado por el número de actualizaciones de

instancia

El Problema de la Mínima Profundidad de Memoria (MMDP)

consiste en encontrar la implementación L que minimiza d

41

Page 80: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

COMPLEJIDAD DEL MMDP

Problema de decisión asociado al MMDP

Dada una FSM M = (X,Y, S, f, g, s0) y un entero J ≤ |X| + ⌈log2 |S|⌉, ¿existe una

implementación de una FVSM equivalente a M que utilice ω-recursos y tenga

una profundidad memoria menor o igual que J?

Se ha demostrado que el MMDP es NP-completo mediante reducción del

Máximo Conjunto Independiente

Dada una FVSM, el problema de generar la optimización óptima se denomina

Problema del Empaquetamiento

Se ha demostrado que el problema del empaquetamiento es NP-completo

mediante reducción del 3-SAT

Pág. 248-257

A1 S FVSM M1 Impl. ópt. M1

A2 S FVSM M2 Impl. ópt. M2

A3 S FVSM M3 Impl. ópt. M3

. . . . . . . . . .

Virtualización

FSM

Empaquetamiento

Virtualización

Virtualización

Implemtación

óptima de

una FVSM

equivalente

MMDP

Pág. 258-268

Empaquetamiento

Empaquetamiento

42

Page 81: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ALGORITMO PARA GENERAR IMPLEMENTACIONES FVSM

... ...

...

G, {}, S

...

G, A, P

G: Grafo de incompatibilidad

A: Conjunto generador

P: Pendientes de ser procesados

43

Esquema de branch and bound (ramificación y acotamiento)

Cada nodo es la implementación de la FVSM obtenida mediante una heurística a

partir del conjunto generador A (conjunto independiente en todo momento)

Se construye dinámicamente un árbol de soluciones (ramificación)

Se realizan podas para evitar el crecimiento del árbol (acotamiento)

Se inicializa con una solución de greedy

Page 82: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ALGORITMO PARA GENERAR IMPLEMENTACIONES FVSM

s∊P

...

G, {}, S

...

Ramificación

G, A, P

Primero en profundidad

43

Esquema de branch and bound (ramificación y acotamiento)

Cada nodo es la implementación de la FVSM obtenida mediante una heurística a

partir del conjunto generador A (conjunto independiente en todo momento)

Se construye dinámicamente un árbol de soluciones (ramificación)

Se realizan podas para evitar el crecimiento del árbol (acotamiento)

Se inicializa con una solución de greedy

Page 83: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ALGORITMO PARA GENERAR IMPLEMENTACIONES FVSM

...

G, A, P\{s}) G, A∪{s}, P\({s}∪Is)

... ...

G, {}, S

...

Ramificación

A∪{s} es un conjunto independiente

Se añade s No se añade s s∊P

G, A, P

43

Esquema de branch and bound (ramificación y acotamiento)

Cada nodo es la implementación de la FVSM obtenida mediante una heurística a

partir del conjunto generador A (conjunto independiente en todo momento)

Se construye dinámicamente un árbol de soluciones (ramificación)

Se realizan podas para evitar el crecimiento del árbol (acotamiento)

Se inicializa con una solución de greedy

Page 84: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ALGORITMO PARA GENERAR IMPLEMENTACIONES FVSM

...

G, {}, S

...

A∪{s} no es un conjunto independiente

Ramificación

G, A, P\{s}) G, A∪{s}, P\({s}∪Is)

... ...

Se añade s No se añade s s∊P

G, A, P

43

Esquema de branch and bound (ramificación y acotamiento)

Cada nodo es la implementación de la FVSM obtenida mediante una heurística a

partir del conjunto generador A (conjunto independiente en todo momento)

Se construye dinámicamente un árbol de soluciones (ramificación)

Se realizan podas para evitar el crecimiento del árbol (acotamiento)

Se inicializa con una solución de greedy

Page 85: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ALGORITMO PARA GENERAR IMPLEMENTACIONES FVSM

...

G, {}, S

...

Ramificación

G, A, P

Se elige el estado s∊P que tiene

más estados incompatibles en G[P] G, A, P\{s}) G, A∪{s}, P\({s}∪Is)

... ...

Se añade s No se añade s s∊P

43

Esquema de branch and bound (ramificación y acotamiento)

Cada nodo es la implementación de la FVSM obtenida mediante una heurística a

partir del conjunto generador A (conjunto independiente en todo momento)

Se construye dinámicamente un árbol de soluciones (ramificación)

Se realizan podas para evitar el crecimiento del árbol (acotamiento)

Se inicializa con una solución de greedy

Page 86: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ALGORITMO PARA GENERAR IMPLEMENTACIONES FVSM

...

G, A’, P

G, {}, S

...

... ...

G, A, P

... ...

d=f(A’)

Acotamiento

43

Esquema de branch and bound (ramificación y acotamiento)

Cada nodo es la implementación de la FVSM obtenida mediante una heurística a

partir del conjunto generador A (conjunto independiente en todo momento)

Se construye dinámicamente un árbol de soluciones (ramificación)

Se realizan podas para evitar el crecimiento del árbol (acotamiento)

Se inicializa con una solución de greedy

Page 87: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ALGORITMO PARA GENERAR IMPLEMENTACIONES FVSM

...

G, A’, P

G, {}, S

...

... ...

G, A, P d=f(A)

Acotamiento

43

Esquema de branch and bound (ramificación y acotamiento)

Cada nodo es la implementación de la FVSM obtenida mediante una heurística a

partir del conjunto generador A (conjunto independiente en todo momento)

Se construye dinámicamente un árbol de soluciones (ramificación)

Se realizan podas para evitar el crecimiento del árbol (acotamiento)

Se inicializa con una solución de greedy

Page 88: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ALGORITMO PARA GENERAR IMPLEMENTACIONES FVSM

...

G, A’, P

G, {}, S

...

... ...

G, A, P

... ...

d=f(A) f(A∪P) ≥ d

Acotamiento

43

Esquema de branch and bound (ramificación y acotamiento)

Cada nodo es la implementación de la FVSM obtenida mediante una heurística a

partir del conjunto generador A (conjunto independiente en todo momento)

Se construye dinámicamente un árbol de soluciones (ramificación)

Se realizan podas para evitar el crecimiento del árbol (acotamiento)

Se inicializa con una solución de greedy

Page 89: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONTENIDO

Introducción

Caracterización de implementaciones basadas en

memoria de FSM sobre FPGA

Máquinas de Estados Virtuales Finitos (FVSM)

Implementación de FVSM en FPGA

Generación automática de implementaciones FVSM

Comparativa entre implementaciones FSM y FVSM

Otras aportaciones a la implementación basada en

memoria de FSM

Conclusiones y trabajo futuro

44

Page 90: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

COMPARATIVA DE VELOCIDAD ENTRE ARQUITECTURAS

Se han comparado las arquitecturas FSM y FVSM con valores de parámetros que permiten alojar un número de estados del mismo orden

Para unos determinados parámetros de FSM existen distintas FVSM (mejor caso)

Cuanto más estados tiene la FSM mayor potencial presenta la arquitectura

El incremento de velocidad crece con el número de bits de codificación de estados (mayor reducción de la profundidad)

Número de bits de

codificación de estados Número de entradas

Incre

me

nto

de

ve

locid

ad

(%

)

La FVSM es siempre más rápida

(mínimo incremento del 7%)

En el 52% de los casos,

los incrementos de velocidad

son superiores al 50%

Existen casos en los que

la velocidad de la FVSM

es más del doble

45

Page 91: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

BATERÍAS DE PRUEBAS. EFECTIVIDAD DE LA TÉCNICA

Total

Reducción

Grupo 1 # medio estados = 54

# medio transiciones = 88

Grupo 2 # medio estados = 61

# medio transiciones = 160

Grupo 3 # medio estados = 358

# medio transiciones = 600

Grupo 4 # medio estados = 352

# medio transiciones = 1045

4 bits

3 bits

2 bits

1 bits

0 bits

10% 3% 8%

26%

54%

25%

75%

20%

80%

10%

40%

50%

10%

30%

60%

46

Page 92: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

BATERÍAS DE PRUEBAS. EFECTIVIDAD DE LA TÉCNICA

Total

Reducción

4 bits

3 bits

2 bits

1 bits

0 bits

10% 3% 8%

26%

54%

25%

75%

20%

80%

10%

40%

50%

10%

30%

60%

92%

1.6 bits

100%

1.3 bits

80%

1 bit

100%

2.6 bits

90%

1.2 bits

46

Grupo 1 # medio estados = 54

# medio transiciones = 88

Grupo 2 # medio estados = 61

# medio transiciones = 160

Grupo 3 # medio estados = 358

# medio transiciones = 600

Grupo 4 # medio estados = 352

# medio transiciones = 1045

Page 93: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

BATERÍAS DE PRUEBAS. INCREMENTO DE VELOCIDAD

En 9 de los 20 casos del Grupo 3, los incrementos son superiores al 33%

Se alcanzan valores del orden del 80%

47

Page 94: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONTENIDO

Introducción

Caracterización de implementaciones basadas en

memoria de FSM sobre FPGA

Máquinas de Estados Virtuales Finitos (FVSM)

Implementación de FVSM en FPGA

Generación automática de implementaciones FVSM

Comparativa entre implementaciones FSM y FVSM

Otras aportaciones a la implementación basada en

memoria de FSM

Conclusiones y trabajo futuro

48

Page 95: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

ASYMRAM

Se ha desarrollado una descripción arquitectural genérica

(ASYMmetric RAM) debido a que las herramientas de diseño no

infieren RAM asimétrica:

Se ha utilizado en las implementaciones FVSM

Se ha publicado como una herramienta para

realizar implementaciones basadas en memoria

de FSM reconfigurables

Un puerto de lectura para el funcionamiento

de la FSM

Un puerto de escritura para el proceso de

reconfiguración

49

Page 96: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

FSMIM: FSM CON MULTIPLEXIÓN DE ENTRADAS

Para reducir el impacto del número de entradas en el tamaño de la memoria, se proponen las FSM con multiplexión de entradas Se aprovechan las indeterminaciones en las

entradas

Hemos propuesto una técnica (FSMIM) que reduce significativamente la complejidad del multiplexor y los requerimientos de memoria

Reducción media de memoria del 87%

Sólo en el 19% de los casos se requirieron multiplexores de más de 4 entradas

En el 81% de los casos, la velocidad fue superior a la de las implementaciones basadas en LUT

FSMIM

50

Page 97: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

Para dotar de capacidad de reconfiguración a las implementaciones FSM con

multiplexión de entrada es necesario disponer de multiplexor reconfigurable

Las entradas que afectan a un determinado estado pueden cambiar tras el

proceso de reconfiguración

Hemos propuesto CRMUX

Los resultados muestran significativas mejoras en área, velocidad y

capacidad de reconfiguración respecto al estado del arte

MULTIPLEXOR RECONFIGURABLE. RMUX

CRMUX Estado

del arte

m salidas

n entradas

m salidas

n m + 1 entradas

51

Page 98: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONTENIDO

Introducción

Caracterización de implementaciones basadas en

memoria de FSM sobre FPGA

Máquinas de Estados Virtuales Finitos (FVSM)

Implementación de FVSM en FPGA

Generación automática de implementaciones FVSM

Comparativa entre implementaciones FSM y FVSM

Otras aportaciones a la implementación basada en

memoria de FSM

Conclusiones y trabajo futuro

52

Page 99: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONCLUSIONES (I)

Se han caracterizado las implementaciones basadas en memoria

de FSM sobre FPGA, observándose una importante reducción de

velocidad en FSM con un número de elevado de estados.

Se ha definido el modelo FVSM y estudiado su equivalencia con las

FSM.

Se ha propuesto una arquitectura para la implementación de FVSM

y estudiado el impacto de sus parámetros en las prestaciones

obtenidas en FPGA. La arquitectura ofrece ventajas en velocidad,

consumo de potencia y capacidad de reconfiguración.

Se ha estudiado el problema de generar implementaciones FVSM

óptimas. Se ha propuesto la versión del problema que maximiza la

velocidad, probándose su NP-completitud.

53

Page 100: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

CONCLUSIONES (II)

Se ha propuesto un algoritmo para maximizar la velocidad de las

implementaciones FVSM, probándose su eficiencia y efectividad.

Se ha probado que la arquitectura FVSM ofrece mayor velocidad

potencial respecto a la arquitectura basada en memoria

convencional.

La aplicación de la técnica a casos prácticos ha demostrado la

utilidad del modelo, arquitectura y algoritmos propuestos.

Se propuesto una descripción arquitectural que facilita el diseño de

memorias asimétricas.

Se ha propuesto un multiplexor para FSM reconfigurables con

multiplexión de entradas con ventajas en área, velocidad y coste de

reconfiguración.

54

Page 101: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

TRABAJO FUTURO

Extender el modelo propuesto a una jerarquía con mayor número de

niveles, con la posibilidad incluir un nivel externo a la FPGA

Estudiar y evaluar otras posibles arquitecturas para las FVSM. Tales

como memoria secundaria multi-puerto o relojes diferentes para los

distintos niveles de la jerarquía.

Realizar estudios de implementación de FVSM con multiplexión de

entradas y evaluar la aplicación de técnicas como dummy states.

Incluir criterios de área ocupada o potencia consumida en los

algoritmos para generar implementaciones FVSM y realizar los

correspondientes estudios comparativos.

Buscar otras aplicaciones a los problemas NP-completos propuestos.

Paralelizar los algoritmos para la generación de FVSM para lograr

una ejecución eficiente en arquitecturas paralelas

55

Page 102: Máquinas de estados Finitos Virtualespersonal.us.es/raouf/documentos/presentacion_tesis.pdf · MÁQUINAS DE ESTADOS VIRTUALES FINITOS Una contribución a la implementación electrónica

MÁQUINAS DE ESTADOS VIRTUALES FINITOS

Una contribución a la implementación electrónica de máquinas de estados

Lectura de tesis doctoral

Director:

• José Luis Guisado Lizar

(Univ. de Sevilla)

25 de septiembre de 2012

Tribunal:

• Manuel Jesús Bellido Díaz

(Univ. de Sevilla)

• Juan Antonio Gómez Pulido

(Univ. de Extremadura)

• José María Rodríguez Corral

(Univ. de Cádiz)

• Pedro Guerra Gutiérrez

(Univ. de Politécnica de Madrid)

• Daniel Cagigas Muñiz

(Univ. de Sevilla)

Autor:

• Raouf Senhadji Navarro