POLITECNICO DI MILANO Politecnico di Milano A.A. 2005/06 MECCANISMI DI SINCRONIZZAZIONE PER SISTEMI...

Post on 01-May-2015

215 views 2 download

Transcript of POLITECNICO DI MILANO Politecnico di Milano A.A. 2005/06 MECCANISMI DI SINCRONIZZAZIONE PER SISTEMI...

POLITECNICO DI MILANO

Politecnico di Milano A.A. 2005/06

MECCANISMI DI SINCRONIZZAZIONE PER SISTEMI MULTIPROCESSORE BASATI SUL DISPOSITIVO D740

Candidato: Davide Rossignoli

Matricola: 661483

Relatore: Prof. Anna Antola

Correlatore: Ing. Marco Domenico Santambrogio

2

SommarioSommario

Obiettivi

Descrizione dell’architettura D740 e JTST

La funzione di cross-correlazione

Sincronismo tra i processori con semafori e buffer

Sincronismo mediante coda ciclica

Test su scheda JTST

Conclusioni

3

Applicazione per la cross-correlazione mediante semafori (con problemi di prestazioni globali)

+Meccanismo di sincronizzazione a coda ciclica

Applicazione per il calcolo della cross-correlazione con coda ciclica

Miglioramento prestazioni del sistema globale

ObiettiviObiettivi

4

Chip a due processori: - ARM7TDMI RISC

- mAgic DSP

Parallelismo e sincronizzazione (mediante Interrupt e PARM)

Elevata capacità di calcolo (giga-operazioni/s)

Diopsis 740Diopsis 740

5

Permette lo scambio di dati tra i due processori

2 modalità di funzionamento:

• SYSTEM MODE : ARM accede a tutta la memoria mAgic

• RUN MODE : ARM accede alla PARM

In System Mode il mAgic è in attesa!

Memoria Condivisa PARMMemoria Condivisa PARM

6

Utilizzata per stabilire una relazione tra due segnaliLocalizzazione epicentri di eventi sismici

Punto di max-somiglianza

La cross-correlazioneLa cross-correlazione

7

• ARM riempie il buffer 1

• mAgic preleva dal buffer 2

• ARM riempie il buffer 2

• mAgic preleva dal buffer 1

Sincronizzazione con semaforiSincronizzazione con semafori

• Vantaggi

• Semplice implementazione

• Svantaggi

• mAgic sempre in attesa dell’ARM

• Basse prestazioni globali

• Buffer dinamici non risolvono il problema non solo un problema di architettura disponibile

8

2 array contenenti n segnali ciascuno, un array per i risultati e due indici per i processori

Posizione del segnale nell’array : Indice nella coda % Lunghezza Coda

Segnale in posizione 2 nell’array S1

Segnale in posizione 2 nell’array S2

Risultato tra i due segnali

Es: Lunghezza Coda: 4

Indice di un processore: 18

Posizione nella coda: 2

Coda ciclica e cross-correlazione (1)Coda ciclica e cross-correlazione (1)

9

ARM mAgic

mAgic non è rimasto “troppo” indietro, ARM non sovrascrive dati da processare

ARM ha già caricato nuovi dati

Per stampare solo dati corretti (quindi già elaborati)

Coda ciclica e cross-correlazione (2)Coda ciclica e cross-correlazione (2)

10

HyperTerminal®

Prova su scheda JTST (1)Prova su scheda JTST (1)

11

• Creazione soluzione con utilizzo di un solo processore

• Creazione soluzione su PC

• librerie a disposizione per le prestazioni

• simulazione mediante threads del parallelismo

• Risultati ottenuti:

ARM-only (Scheda) 1 min 10 s (100 iter.)

ARM-mAgic (Scheda) 1 min (100 iter.)

PROBLEMA:

- alcune librerie C non implementate in MADE

- mancanza di supporto all’analisi delle prestazioni

Singolo processore (PC) 43 s

Doppio processore (PC) 30 s

Prova su scheda JTST (2)Prova su scheda JTST (2)

12

• Problemi di prestazioni riscontrati a causa di :

• accesso lento della memoria condivisa PARM

• limitatezza della memoria PARM (512 words x 2)

• Miglioramenti possibili :

• utilizzo del buffer ADDA System MODE con mappaggio in ARM

• avendo a disposizione più memoria PARM

ConsiderazioniConsiderazioni

• Simulazione su PC• guadagno del 17% nonostante l’overhead per i threads

• Soluzione a singolo processore• utilizzando solo ARM non si passa dalla memoria PARM

• Confronto con la soluzione precedente• codice mAgic era ottimizzato a livello ASM• buffer dinamici non risolvevano il problema • il metodo di sincronizzazione non vincola più le prestazioni• migliore gestione della memoria condivisa

13

Possibilità di analizzare le prestazioni nell’ambiente di sviluppo MADEOttimizzazioni sorgenti mAgic con codice ASMCaricamento segnali in ADDA e gestione sincronismo mediante SYSTEM MODE

Possibili sviluppi futuriPossibili sviluppi futuri

14

Fine PresentazioneFine Presentazione

Grazie per l’attenzione!