13
Politecnico di Milano 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

Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

Embed Size (px)

Citation preview

Page 1: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

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

Page 2: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- 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

Page 3: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- 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.

Page 4: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- 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

Page 5: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- 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

Page 6: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- 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

Page 7: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- 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

Page 8: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- 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

Page 9: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- 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

Page 10: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- 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

Page 11: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- 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

Page 12: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- 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

Page 13: Politecnico di Milano SINTESI DI IMMAGINI FRATTALI ATTRAVERSO CALCOLI IN MULTITHREAD SU DIOPSIS 740 Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio

- Falcetti Massimo – 13

Fine presentazioneFine presentazione