Politecnico di Milano
SINTESI DI IMMAGINI FRATTALI ATTRAVERSO
CALCOLI IN MULTITHREAD SU DIOPSIS 740
Referenti:
Prof. Anna Antola
Ing. Marco Domenico Santambrogio
Candidato: Falcetti Massimo matr. 659164
A.A. 2005/2006
Obiettivi
• 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 –
2
Diopsis 740 Overview
Dual inter operating processors for silicon systems
• 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 –
3
mAgic
Funzionamento: RUN MODE – SYSTEM MODE
32K ARM
Memory
Arm System
Amba ASB
mAAr
Shared
Memory
8Kx128 bit
Program
Memory
mAgic DSP core
Data Memory
(6k+6k) x 40 bit
Double Bank
Double Port
RUN MODE – effettivo funzionamento di mAgic
(accesso da parte di mAgic della sola memoria
PARM)
SYSTEM MODE – mAgic in attesa
- Falcetti Massimo –
4
Scambio di float tra ARM e mAgic
Lettura da ARM di un float di mAgic
 NON PREVISTO DALL’ARCHITETTURA 
Recupero puntatore a cella base
Cast al tipo di dato opportuno
Conversione puntatore a long
long* (x avere il mappaggio come
sopra)
Unione delle due parti e shift a
destra di 8 posizioni
Aggiunta dell’offset della cella a
cui accedere
Recupero del valore delle due
word
- Falcetti Massimo –
5
USB
System
User
Fractal request
Bitmap
USB
L’Applicazione – schema ideale
ARM mAgic
JTST Board
• 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 –
6
Scheda di sviluppo JTST su cui è
implementata l’applicazione
RESISTOR NETWORK
D-9 RS232
CONN
RESISTOR NETWORK
D-9 RS232
CONN
RESISTOR NETWORK
3.3V
LED
GND
TP11
PIO CONN
RST
BUTTON
LED
BUFF
ICE
ARMC
CLK
DIV
XMD[31:16]
JP11
CLKs
CNTRLs
XMD[71:56]
ARMA
XMD[39:32]
CLK
DIV
XMD[79:72]
TP8
TP7
SSRAM
MAGIC
DATA E
128Kx36
TP6
SPI-1 CONN
ADDA
BUFF
USB
LED
SPIs
RESISTOR NETWORK
• Presenza di altri
componenti per
adattare la scheda a
qualsiasi utilizzo
Chip Diopsis 740
CODEC
CODEC
CODEC
CODEC
SPI-0 CONN
TP10
• Periferiche utilizzate
per l’implementazione
di questa applicazione
SSRAM
MAGIC
DATA H
128Kx36
Diopsis 740
RESISTOR NETWORK
JP1
JP3
JP2
6 MHz
CONN
RS
232
BUFF
ARMD
ADDA
USB
XMA
XMD[15:0]
XMD[55:40]
JP10
USB
CNTRL
RESISTOR NETWORK
USARTs
RST
PIO
SSRAM
MAGIC
DATA L
128Kx36
TP3 TP2 TP1
PLL
EXTCLK
CONN
SRAM
ARM DATA H
128Kx8
JP9
VREG
5-3.3
RESISTOR NETWORK
JP7
TP5
25
MHz
OSC
JP6
TP4
JP5
JP4
TP9
SRAM
ARM DATA L
128Kx8
JP8
RST
BUFF
M-ICE JTAG CONN
FLASH
ARM PRG
1Mx16
USART
1 CONN
VREG 51.8
POW-ON
RST
DIP SWITCH
USB
IRQ
BUTTON
USART
0 CONN
EXT PSU
CONN
7-SEG DISPLAY
RS
232
BUFF
Porta
seriale
GND
AUDIO
OUT
CONN
AUDIO
IN
CONN
AUDIO
OUT
CONN
AUDIO
IN
CONN
AUDIO
OUT
CONN
AUDIO
IN
CONN
AUDIO
OUT
CONN
AUDIO
IN
CONN
- Falcetti Massimo –
7
Sincronizzazione – Coda Ciclica
punt ARM = punt mAgic
ARM  Run, mAgic  Wait
(mAgic non ha ancora pronti i dati da
processare perché ARM non ha ancora
terminato l’inserimento dei valori in memoria)
|Punt ARM| > |Punt mAgic|
ARM  Run, mAgic  Run
Questa è la condizione normale di
operatività: ARM riempie le pagine vuote della
memoria ciclica e mAgic
esegue la computazione matematica, che
essendo molto dispendiosa, lo fa
rimanere sempre qualche cella di memoria
indietro.
|Punt ARM| <> |Punt mAgic| (DISCORDI)
ARM è una pagina avanti a mAgic. Anche in
questa situazione il funzionamento
delle 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, è stato
quindi così veloce da essere esattamente una
pagina avanti rispetto al DSP.
ARM  Wait, mAgic  Run
- Falcetti Massimo –
8
Partizionamento 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)
Im
• Chiusura del canale di comunicazione (ARM)
mAgic
ARM
Re
D mapping
F
Color +
Write
Shared mem
used as FIFO
Fractal E
calc
Bitmap
- Falcetti Massimo –
9
Partizionamento 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)
Im
mAgic
D mapping
ARM
Re
F
Color +
Write
Shared mem
used as FIFO
Fractal E
calc
Bitmap
- Falcetti Massimo –
10
Confronto prestazioni
Il primo metodo di partizionamento, quello
cioè che lascia la fase di mapping
dei pixel ad ARM, risulta leggermente più
rapido se l’algoritmo prevede un alto
numero 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 precisione
nei calcoli. In questo caso infatti i valori
float calcolati nella fase di mapping
hanno una precisione calcolata su 40 bit
(32 bit nel caso di mappaggio da parte
di ARM).
Scelta metodo in base alle esisgenze
- Falcetti Massimo –
11
Stato 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 –
12
Fine presentazione
- Falcetti Massimo –
13
Scarica

ThesisFalcetti_2006_IT