politecnico di milano sintesi di immagini frattali attraverso calcoli in multithread su diopsis 740...
TRANSCRIPT
Politecnico di MilanoPolitecnico di Milano
SINTESI DI IMMAGINI FRATTALI ATTRAVERSOCALCOLI IN MULTITHREAD SU DIOPSIS 740
Referenti:
Prof. Anna Antola
Ing. Marco Domenico Santambrogio
Candidato: Falcetti Massimo matr. 659164
A.A. 2005/2006
- Falcetti Massimo – 2
ObiettiviObiettivi
• Partecipazione al DIOPSIS 740 – DSP Contest 2005
• Studio dell’architettura del D740
• Scelta di un’applicazione che sfrutti l’architettura e ne esalti le qualità di multithreading (processori disaccoppiati)
• Applicazione di test per il profiling (Scelta partizionamento) – In C standard
• Ideazione algoritmo per l’architettura del D740• Scambio di valori float tra le due CPU (non previsto
dall’architettura)
• Metodo di sincronizzazione tra i due processori (coda ciclica)
• Analisi dei risultati ottenuti
- Falcetti Massimo – 3
Diopsis 740 OverviewDiopsis 740 Overview DDual ual iinter nter ooperating perating pprocessors for rocessors for sisilicon licon ssystemsystems
• Struttura biprocessore dotata di una normale CPU RISC a 32 bit (ARM), accoppiata ad un DSP - VLIW (mAgic) ottimizzato per lavorare in campo complesso e con numeri floating point a 40 bit.
- Falcetti Massimo – 4
mAgicmAgicFunzionamento: RUN MODE – SYSTEM Funzionamento: RUN MODE – SYSTEM MODEMODE
Arm System32K ARM
Memory
mAgic DSP core
Shared
Memory
Amba ASB
Data Memory(6k+6k) x 40 bit
Double BankDouble Port
mAAr
8Kx128 bitProgramMemory
RUN MODE – effettivo funzionamento di mAgic (accesso da parte di mAgic della sola memoria
PARM)
SYSTEM MODE – mAgic in attesa
- Falcetti Massimo – 5
Scambio di float tra ARM e Scambio di float tra ARM e mAgicmAgic
Recupero puntatore a cella base
Conversione puntatore a long long* (x avere il mappaggio come
sopra)
Aggiunta dell’offset della cella a cui accedere
Recupero del valore delle due word
Unione delle due parti e shift a destra di 8 posizioni
Lettura da ARM di un float di mAgic
NON PREVISTO DALL’ARCHITETTURA
Cast al tipo di dato opportuno
- Falcetti Massimo – 6
L’Applicazione – schema L’Applicazione – schema idealeideale
JTST Board
System User
ARMFractal request
Bitmap
mAgic
US
B
US
B
• Richiesta immagine frattale da PC a JTST (via USB)
• Presa in carico della richiesta da parte della scheda JTST (ARM gestisce le connessioni)
• Calcolo frattale secondo i parametri richiesti (mAgic + ARM)
• Invio dei dati elaborati (immagine bitmap) al chiamante (via USB)
• NB – note reale implementazione
- Falcetti Massimo – 7
Scheda di sviluppo JTST su cui Scheda di sviluppo JTST su cui è implementata l’applicazioneè implementata l’applicazione
CLKDIV
3.3VLED
IRQBUTTON
PIO CONN
SRAM ARM DATA L
128Kx8
SRAM ARM DATA H
128Kx8
FLASHARM PRG
1Mx16SSRAMMAGICDATA L128Kx36
EXTCLKCONN
DIP SWITCH
SPI-0 CONN
M-ICE JTAG CONN
Diopsis 740
PIO USARTsRST
XMA
XMD[15:0]
CLKsCNTRLs
SPIsADDA
ARMD
PLL
ICE
ARMC
ARMA
XMD[55:40]
XMD[31:16]
XMD[71:56]
XMD[39:32]
XMD[79:72]
SSRAMMAGICDATA H128Kx36
SSRAMMAGICDATA E128Kx36
USBCNTRL
US
BC
ON
N
EX
T P
SU
C
ON
N
CO
DE
C
CO
DE
C
CO
DE
C
CO
DE
CCLKDIV
25 MHzOSC
RS
232
BU
FF
RS
232
BU
FF
USART 0 CONN
USART 1 CONN
7-SEG DISPLAY
GND
GND
RESISTOR NETWORK
RESISTOR NETWORK
6 MHz
D-9 RS232CONN
D-9 RS232CONN
RSTBUTTON
VREG 5-1.8
SPI-1 CONN
VREG 5-3.3
USBLED
LEDBUFF
RSTBUFF
ADDABUFF
POW-ON RST
AUDIO OUT
CONN
AUDIOIN
CONN
AUDIO OUT
CONN
AUDIOIN
CONN
AUDIO OUT
CONN
AUDIOIN
CONN
AUDIO OUT
CONN
AUDIOIN
CONN
RE
SIS
TO
R N
ET
WO
RK
RE
SIS
TO
R N
ET
WO
RK
RE
SIS
TO
R N
ET
WO
RK
RESISTOR NETWORK
RESISTOR NETWORK
JP8 JP9
JP5
JP4
JP11
JP7
JP2
JP3
JP6
JP10
JP1
TP
5
TP2 TP1
TP
4
TP3
TP7
TP8
TP6
TP9
TP10
TP11
USB
Porta seriale
Chip Diopsis 740
• Periferiche utilizzate per l’implementazione di questa applicazione
• Presenza di altri componenti per adattare la scheda a qualsiasi utilizzo
- Falcetti Massimo – 8
Sincronizzazione – Coda Sincronizzazione – Coda CiclicaCiclica
punt ARM = punt mAgic ARM Run, mAgic Wait(mAgic non ha ancora pronti i dati da processare perché ARM non ha ancoraterminato l’inserimento dei valori in memoria)
|Punt ARM| > |Punt mAgic|ARM Run, mAgic RunQuesta è la condizione normale dioperatività: ARM riempie le pagine vuote della memoria ciclica e mAgicesegue la computazione matematica, che essendo molto dispendiosa, lo farimanere sempre qualche cella di memoria indietro.
|Punt ARM| <> |Punt mAgic| (DISCORDI)ARM è una pagina avanti a mAgic. Anche in questa situazione il funzionamentodelle CPU è quello normale poiché entrambi i processori hanno qualcosa da fare.ARM Run, mAgic Run
|Punt ARM| = |Punt mAgic| (DISCORDI)ARM ha raggiunto la cella di memoria che mAgic sta elaborando, è statoquindi così veloce da essere esattamente una pagina avanti rispetto al DSP.ARM Wait, mAgic Run
- Falcetti Massimo – 9
Partizionamento 1Partizionamento 1• Possibilità di due partizionamenti dell’algoritmo sulle due cpu a disposizione.
Cambia la cpu che esegue il mappaggio dei punti del piano complesso.
• PRIMO METODO:• Apertura canale di comunicazione (da parte dell’ARM)
• Generazione dell’header della bitmap (ARM)
• Generazione della palette per la bitmap (ARM)
• Mappaggio di ciascun pixel nel piano complesso (ARM)
• Calcolo effettivo del frattale (mAgic)
• Determinazione del colore per ogni pixel (ARM)
• Chiusura del canale di comunicazione (ARM)
mAgicShared memused as FIFO
Bitmap
Fractalcalc
ReE
ARMmapping
Color + Write
D
F
Im
- Falcetti Massimo – 10
Partizionamento 2Partizionamento 2
• SECONDO METODO:• Apertura canale di comunicazione (da parte dell’ARM)
• Generazione dell’header della bitmap (ARM)
• Generazione della palette per la bitmap (ARM)
• Mappaggio di ciascun pixel nel piano complesso (mAgic)
• Calcolo effettivo del frattale (mAgic)
• Determinazione del colore per ogni pixel (ARM)
• Chiusura del canale di comunicazione (ARM)
mAgic
Shared memused as FIFO
Bitmap
Fractalcalc
Re
E
ARM
mapping
Color + Write
D
F
Im
- Falcetti Massimo – 11
Confronto prestazioniConfronto prestazioni
Il primo metodo di partizionamento, quello cioè che lascia la fase di mappingdei pixel ad ARM, risulta leggermente più
rapido se l’algoritmo prevede un altonumero di iterazioni per uscire dal cerchio di raggio 2, e quindi un’elevata precisione
nella creazione dell’immagine bitmap.
Il secondo metodo di partizionamento, invece, permette una miglior precisionenei calcoli. In questo caso infatti i valori
float calcolati nella fase di mappinghanno una precisione calcolata su 40 bit (32 bit nel caso di mappaggio da parte
di ARM).
Scelta metodo in base alle esisgenze
- Falcetti Massimo – 12
Stato Attuale e Lavori futuriStato Attuale e Lavori futuri
• STATO ATTUALE:
• Visualizzazione bitmap a mezzo di printf e predisposizione del codice alla comunicazione USB
• Possibilità di eseguire l’algoritmo nei due metodi di sincronizzazione, ma anche esclusivamente su ARM
• LAVORI FUTURI:
• Implementazione completa della comunicazione USB con le nuove librerie funzionanti fornite da ATMEL
- Falcetti Massimo – 13
Fine presentazioneFine presentazione