IDSP
-
Upload
saoirse-plunkett -
Category
Documents
-
view
42 -
download
4
description
Transcript of IDSP
IDSPIDSPIDSPIDSP
Jesús M. Álvarez LlorenteJuan C. Díaz Martín
José M. Rodríguez GarcíaJuan L. García ZapataJuan A. Rico Gallego
Departamento de Informática
Universidad de Extremadura
un framework distribuido para multicomputadores
DSP TMS320C6000
un framework distribuido para multicomputadores
DSP TMS320C6000
IDSPIDSPIDSPIDSPun framework distribuido para multicomputadores
DSP TMS320C6000
un framework distribuido para multicomputadores
DSP TMS320C6000
Jesús M. Álvarez LlorenteJuan C. Díaz Martín
José M. Rodríguez GarcíaJuan L. García ZapataJuan A. Rico Gallego
Departamento de Informática
Universidad de Extremadura
IDSPIDSP Presentando IDSP...Presentando IDSP...
1. Introducción
2. Descripción de IDSP
3. Estado actual
4. Conclusiones
IDSPIDSP IntroducciónIntroducción
• API para programación distribuida
• En procesadores DSP:– Procesamiento numérico de señal– Muchos procesos encadenados– Tiempo real– Poca memoria
• Utilizamos DSP TMS320C6000 de Texas Instruments
IDSPIDSP IntroducciónIntroducción
• Texas Instruments ofrece DSP/BIOS:– Muy extendido– Pequeño (~25 KB.)– Tiempo real– Desarrollo complejo– No soporta distribución Diamond
La distribución de tareas se configura en
tiempo de compilación
La distribución de tareas se configura en
tiempo de compilación
IDSPIDSP IntroducciónIntroducción
• Soluciones distribuidas para DSP:
HERON API
Diamond -
Virtuoso
RTOS Compañía Recomendado
IDSPIDSP IntroducciónIntroducción
• Qué mejora IDSP:– Distribución de tareas en tiempo de ejecución
según criterio de reparto de cargas– Mantiene la transparencia a la ubicación– Interfaz sencilla
C 6000 C 6000 C 6000
D SP /B IO S D SP /B IO S D SP /B IO S
A P I ID SP
A P L IC A C IÓ N D IST R IB U ID A
IDSPIDSP Descripción de IDSPDescripción de IDSP
• Estructura de un algoritmo DSP
O p.0
F lu jo deen trada 1
F lu jo deen trada 2
F lu jo desa lida
O p.3
O p.1 O p.2 O p.4
O p.0
F lu jo deen trada 1
F lu jo deen trada 2
F lu jo desa lida
O p.3
O p.1 O p.2 O p.4
OperadorOperador
CanalCanal GrupoGrupo
IDSP
IDSPIDSP Descripción de IDSPDescripción de IDSP
• Direccionamiento:– Un grupo es una instancia de aplicación (gixgix)– Un operador es un hilo (oixoix)– El extremo de un canal en un operador es un
comunicador (oixoix)
O p.0
F lu jo deen trada 1
F lu jo deen trada 2
F lu jo desa lida
O p.3
O p.1 O p.2 O p.4
O p.0
F lu jo deen trada 1
F lu jo deen trada 2
F lu jo desa lida
O p.3
O p.1 O p.2 O p.4
OperadorOperador
CanalCanal GrupoGrupo
IDSPIDSP Descripción de IDSPDescripción de IDSP
• Destino del mensaje: (gix gix , oix oix , oixoix)
• Estructura del mensaje:
D irección de com unicador
D irección de operador
D ir. de g rupo
g ix o ix c ix
D irecciónorigen
Tam añodatos
D ireccióndes tino D atos o m étodo
IDSPIDSP Descripción de IDSPDescripción de IDSP
• Resolución de direcciones mediante servidores RPC del sistema
IDSPIDSP Descripción de IDSPDescripción de IDSP
• Arquitectura en capas
A rquitec tu ra ‘C 6000
C SL
N ivel de en lace
N ivel de red
N úcleo ID SP
Librería ID SP
N ivel de usuario
D SP/B IO S
A rqu itec tu ra ‘C 6000
C SL
N ivel de en lace
N ivel de red
N úcleo ID SP
Librería ID SP
N ivel de usuario
D SP/B IO S
IDSPIDSP Descripción de IDSPDescripción de IDSP
Int GROUP_self (Void);Int GROUP_create (Int *gix, Int appCode, Void *param[]);Int GROUP_kill (Int gix);Int GROUP_start (Int gix);Void GROUP_leave (Void);
Int GROUP_self (Void);Int GROUP_create (Int *gix, Int appCode, Void *param[]);Int GROUP_kill (Int gix);Int GROUP_start (Int gix);Void GROUP_leave (Void);
Oper_t OPER_self (Void);Int OPER_upgrade(Void);Void OPER_degrade(Void);Int OPER_create (Oper_t *oper, Int operCode, Int appCode, Oper_Addr_t addr, Void *param );Void OPER_destroy(Oper_t oper); Void OPER_exit (Void); Int OPER_start (Oper_t oper, Oper_Addr_t addr ); Int OPER_kill (Oper_t oper, Oper_Addr_t addr );
Oper_t OPER_self (Void);Int OPER_upgrade(Void);Void OPER_degrade(Void);Int OPER_create (Oper_t *oper, Int operCode, Int appCode, Oper_Addr_t addr, Void *param );Void OPER_destroy(Oper_t oper); Void OPER_exit (Void); Int OPER_start (Oper_t oper, Oper_Addr_t addr ); Int OPER_kill (Oper_t oper, Oper_Addr_t addr );
Int COMM_create (*ID, attr, addr);Int COMM_destroy (ID); Int COMM_receive (cix, Comm_Addr_t *src, char *buffer, Int *nbytes); Int COMM_send (Int cix, Comm_Addr_t dst, char *buffer, Int nbytes); Int COMM_sendrec (Int cix, Comm_Addr_t *addr, char *buffer, Int *nbytes); Int COMM_setTimeout(Int cix, Uns timeout);
Int COMM_create (*ID, attr, addr);Int COMM_destroy (ID); Int COMM_receive (cix, Comm_Addr_t *src, char *buffer, Int *nbytes); Int COMM_send (Int cix, Comm_Addr_t dst, char *buffer, Int nbytes); Int COMM_sendrec (Int cix, Comm_Addr_t *addr, char *buffer, Int *nbytes); Int COMM_setTimeout(Int cix, Uns timeout);
IDSPIDSP Estado actualEstado actual
• Desarrollo inicial sobre DSK TMS320C6711 – Codificador de audio al MCBSP y DIARCA– Multiprocesador simulado mediante
realimentación por el MCBSP– Probado 2 DSK iguales unidos por el MCBSP
IDSPIDSP Estado actualEstado actual
• Portando a Sundance SMT310Q con 4 DPS– DSPs TMS320C6201 (DMA, comm-ports,
memoria, cache, rendimiento)– Funciona con 2 procesadores, trabajamos en 3
IDSPIDSP ConclusionesConclusiones
• IDSP es el primer intento conocido de desarrollar un framework distribuido para multicomputadores DSP con transparencia a la ubicación.
• El diseño por capas facilita la migración a hardware diferente (es un sistema bien construido).
IDSPIDSP ConclusionesConclusiones
• Es sencillo, pequeño y rápido ( DIARCA)
Díaz Martin, JC. Garcia Zapata, JL. Rodriguez Garcia, J.M., Alvarez Salgado, J.F., Espada Bueno, P. Gómez Vilda, P., DIARCA: A Component Approach to Voice Recognition, Proc. of 7th European Conference on Speech Communication and Technology, Eurospeech 2001, Aalborg, Denmark, 2001, V4, pp. 2393-2396
IDSPIDSP ConclusionesConclusiones
• Objetivos futuros para IDSP:– Base para memoria compartida distribuida, que
apoyará una JVM distribuida para DSP.
– Integrar IDSP con PONNHI, un núcleo POSIX para C6000, como alternativa a DSP/BIOS.
Rodríguez García, J.M., Rico Gallego, J.A., Alvarez Llorente, J.M., Díaz Martín, J.C. PONNHI. Una nueva arquitectura microkernel Pthreads en espacio de usuario. Actas XII Jornadas de Paralelismo. Lleida, septiembre 2002