• Non ci sono risultati.

Sostituzione del bus di comunicazione

5.3 Soluzioni alternative sulla FPGA XC5VLX110T

5.3.2 Sostituzione del bus di comunicazione

Dall’analisi sulla scalabilità dei moduli mdr_block, effettuata nella pre- cedente sottosezione 5.3.1, è emerso che superato la soglia di utilizzo del processore, stimata a circa il 70%, le prestazioni si stabilizzano e diminui- scono quando l’utilizzo aumenta. Per ottenere migliori prestazioni è quindi necessario trovare una soluzione che consenta di abbassare il più possibi- le l’utilizzo del processore e contemporaneamente inserire ulteriori moduli mdr_block senza superare la soglia di utilizzo. Una possibile soluzione a tale problema è la sostituzione del bus di comunicazione fino ad ora im-

CAPITOLO 5. RISULTATI SPERIMENTALI 98

piegato, per ricercare un’alternativa efficace che consenta di trasferire i dati dal processore ai moduli in modo più efficiente.

Come descritto in dettaglio nella sottosezione 4.4.1, un’alternativa al bus PLB è l’utilizzo del bus unidirezionale Fast Simplex Link (FSL) [76] im- piegato per effettuare il trasferimento dei dati tra due elementi di design sulla FPGA. Per effettuare tale sostituzione è necessario sostituire l’intera interfaccia tra il modulo mdr_block e il bus di comunicazione. Trattando- si di un bus uni-direzionale e punto a punto, la comunicazione non viene gestita da un arbitro come nel PLB, ciò concorre a migliorare la velocità di trasferimento del dato tra master e slave. Tuttavia, per sfruttare appieno le caratteristiche di FSL, è necessario creare un’interfaccia ad-hoc che gestisca la comunicazione in ingresso e in uscita al modulo. Risulta necessario crea- re una macchina a stati che gestisca le letture e le scritture sul bus FSL in relazione al comportamento del modulo mdr_block. Studiando le caratte- ristiche di mdr_block è risultato necessario inserire due bus FSL per ogni modulo: un FSL master (MFSL) e un FSL slave (SFSL) per il primo bus e un FSL master e un FSL slave per il secondo bus. Il primo bus FSL si oc- cupa della gestione della macchina a stati del modulo mdr_block al fine di inviare i dati d’ingresso, ai quattro sotto moduli mdr_core, necessari per la valutazione del modello ottimale. Il secondo bus FSL si occupa della gestio- ne della macchina a stati del modulo mdr_block per ottenere le accuratezze e i dati relativi ai modelli ottenuti da ogni mdr_core.

L’architettura risultante prevede l’impiego di 2 FSL (ognuno dei quali costituito da un FSL master e uno slave) per ogni modulo mdr_block inse- rito, questo comporta l’utilizzo da parte del processore di 4 interfacce FSL per ogni modulo mdr_block connesso (vedi figura 5.7). Il MicroBlaze di- spone di 16 interfacce FSL master e altrettante di FSL slave, quindi senza considerare i vincoli di area, può connettere contemporaneamente fino a 8 moduli mdr_block. Il bus FSL collega direttamente ed esclusivamente un

modulo al processore, a differenza del PLB che gestisce la comunicazione della CPU con più moduli. All’interno di questa nuova architettura il PLB viene usato solo ed esclusivamente per connettere il processore ai tre timer che hanno il compito di acquisire i dati utili del sistema.

MicroBlaze MicroBlaze SFSL0 SFSL1 MFSL0 MFSL1 SFSL2 SFSL3 MFSL2 MFSL3 mdr_block_0 MicroBlaze MFSL0 MFSL1 SFSL0 SFSL1 mdr_block_1 MicroBlaze MFSL0 MFSL1 SFSL0 SFSL1

Figura 5.7: Schema del sistema composto da un processore MB collegato a due moduli mdr_block tramite bus di comunicazione FSL. Ogni acceleratore hardware per comunicare con il processore necessita di 2 canali FSL, connessi ognuno all’interfaccia master del modulo mdr_block (MFSL) all’interfaccia slave della CPU (SFSL) e dall’interfaccia master del processore (MFSL) a quella slave dell’acceleratore hardware (SFSL)

Tabella 5.6: Dati relativi all’architettura costituita da un processore MB connesso a 1-6 modu- li hardware mdr_block tramite un bus di comunicazione FSL sul dispositivo di Xilinx FPGA XC5VLX110T. Lo speed-up è confrontato con le prestazioni ottenute dalla soluzione con un solo acceleratore hardware

Num. mdr_block 1 2 3 4 5 6

Cicli clock esecuzione 5.283.346 3.325.215 2.709.181 4.994.126 5.051.559 5.095.893 Deviazione standard 28 84 211 951 180 26

Utilizzo processore 63,54% 67,68% 69,69% 75,87% 77,75% 79,46% Speed-up 1,00x 1,59x 1,95x 1,06x 1,05x 1,04x

CAPITOLO 5. RISULTATI SPERIMENTALI 100

FSL come bus di comunicazione.

All’interno del dispositivo FPGA XC5VLX110T è possibile inserire fino a 6 moduli mdr_block. 1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9 2,0 1 2 3 4 5 6 Spee d -up Numero mdr_block Speed-up 63% 64% 65% 66% 67% 68% 69% 70% 71% 72% 73% 74% 75% 76% 77% 78% 79% 80% 1 2 3 4 5 6 P er cen tu al e ( %) Numero mdr_block Utilizzo CPU

Soluzione con processore MicroBlaze™ e bus di comunicazione FSL – FPGA XC5VLX110T

Figura 5.8: Speed-up relativo alla soluzione con un processore MB che adotta come bus di comu- nicazione FSL sul dispositivo di XilinX FPGA XC5VLX110T. Lo speed-up è confrontato con le prestazioni ottenute dalla soluzione con un solo acceleratore hardware

La soluzioni che ottiene lo speed-up superiore (vedi figura 5.8) in re- lazione a quella con un unico modulo hardware, è quella che prevede tre mdr_block connessi, ottenendo uno speed-up di 1,95x con un utilizzo del processore pari a circa il 69,7%. Aumentando il numero di moduli, oltre 3, si ottengono prestazioni inferiori con un aumento dell’utilizzo della CPU. Confrontando i dati con quelli ottenuti attraverso l’architettura che impiega come bus di comunicazione il PLB descritta nella sottosezione 5.3.1, si no- ta nella soluzione con un singolo modulo, la diminuzione dei cicli di clock per esecuzione, passando da 6.557.969 con l’impiego del PLB a 5.283.346 con l’uso del FSL, ottenendo un miglioramento del 24%.

Inoltre con questa nuova soluzione si riduce l’utilizzo del processore, da 69,27% con l’impiego del bus PLB a 63,54% con l’uso del bus FSL, otte- nendo una riduzione del 5,73%. Nella figura 5.9 viene riportato la differen- za di utilizzo del processore in relazione al numero di moduli mdr_block

60% 65% 70% 75% 80% 1 2 3 4 5 6 P er cen tu al e ( %) Numero mdr_block

Utilizzo CPU - impiegando PLB Utilizzo CPU - impiegando FSL

Confronto soluzione con processore MicroBlaze™– FPGA XC5VLX110T

Figura 5.9: Differenza di uitilizzo del processore tra la soluzione che adotta come bus di comunicazione il PLB e la soluzione che impiega il bus FSL

collegati, tra la soluzione che prevede la comunicazione tramite PLB e la soluzione che impiega il bus FSL. Dal grafico si nota che le soluzioni con al massimo tre moduli collegati con FSL richiedono un utilizzo inferiore del processore rispetto alle soluzioni a pari numero di moduli collegati con bus PLB. Con architetture costituite da un numero di moduli mdr_block superiore a tre, l’utilizzo del processore risulta essere superiore nella solu- zione che impiega come bus di comunicazioni FSL rispetto alla soluzione che adotta il bus PLB. Questo significa che il processore riesce a gestire fino a tre moduli, attraverso comunicazione FSL, ottenendo migliori prestazioni rispetto alla comunicazione PLB, ma quando i moduli aumentano, il pro- cessore non riesce più a gestire le troppe comunicazioni punto a punto e risulta migliore la comunicazione affidata ad un arbitro, come quella PLB. In conclusione, adottando il bus FSL è diminuito l’utilizzo del processore

CAPITOLO 5. RISULTATI SPERIMENTALI 102

nelle soluzioni con un numero di moduli inferiore a tre senza superare la soglia di utilizzo di 70%.

Documenti correlati