politecnico di milano politecnico di milano a.a. 2005/06 meccanismi di sincronizzazione per sistemi...
TRANSCRIPT
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!