POLITECNICO DI MILANO DRCP: Come gestire in modo efficiente la riconfigurazione parziale dinamica su FPGA Luca Cerri: [email protected] Relatore: Prof. Marco D. Santambrogio Correlatore: Ing. Fabio Cancarè Motivazioni e Obiettivi MOTIVAZIONI: Rilocazione spesso associata a riconfigurazione Il processo di riconfigurazione su FPGA richiede un notevole utilizzo di risorse, in termini di impiego del processore e di occupazione del canale di comunicazione. E’ conveniente riconfigurare solo grosse aree del dispositivo OBIETTIVI: Creare un componente che gestisca rilocazione e riconfigurazione Parallelizzare le operazioni nel componente per garantire maggiori prestazioni sgravando la CPU e il bus dati 2 Indice Stato dell’Arte Funzionamento attuale Esecuzione parallela Funzionamento desiderato Modello Implementazione del componente DRCP Struttura Funzionamento Risultati Sperimentali Conclusioni e sviluppi futuri 3 Stato dell’arte Rilocazione Filtri Software: PARABIT, Università di Washington (USA) BAnMaT, Politecnico di Milano, gruppo DRESD Filtri Hardware: REPLICA, Università di Paderborn (Ger) BiRF, Politecnico di Milano, gruppo DRESD Riconfigurazione Riconfigurazione del dispositivo attraverso porta ICAP (Internal Configuration Access Port), che va gestita via hardware Componenti Esistenti: OPB_HWICAP, Xilinx inc. ICAP DRESD, Politecnico di Milano, gruppo DRESD DRC, Politecnico di Milano, gruppo DRESD 4 Funzionamento attuale BiRF per la rilocazione DRC per la riconfigurazione Solo passi 6 e 1 eseguibili in parallelo ASPETTI NEGATIVI Gli scambi di dati avvengono sempre utilizzando il bus dati. La CPU, agendo come master, deve gestire ogni trasferimento su bus PRESTAZIONI LIMITATE 5 Esecuzione parallela: funzionamento desiderato Collegamento diretto tra BiRF e DRC Passi 1,2 e 3,4 eseguibili in parallelo 6 Esecuzione parallela: modello lunghezzaD ati NC larghezzaB us Ltask Lesecuzione Lsetup N C 2 Lesecuzione L parallelo Thr 7 lunghezzaD ati f ck Ltask DRCP: struttura Implementazione di BiRF e DRC nel componente per trasferire direttamente i dati senza l’uso del bus. Esecuzione parallela delle operazioni. Buffer in ingresso per implementare il throughput. Possibiltà di scegliere se utilizzare o meno la rilocazione. 8 DRCP: funzionamento 9 Risultati sperimentali Risultati ottenuti simulando per il dispositivo FPGA Virtex-II Pro di Xilinx Throughput medio maggiore dell’80% in DRCP senza buffer. Throughput medio maggiore del 144% in DRCP con buffer. Occupazione d’area modesta. Frequenza massima adatta per l’utilizzo in sistemi riconfigurabili. 10 Conclusioni e Sviluppi Futuri Obiettivi raggiunti: Miglioramento del Throughput. Minore occupazione del BUS di sistema e della CPU. Sviluppi futuri: Introduzione del DMA. Estensione alla rilocazione 2D. Supporto ad altre FPGA mediante creazione di un software di generazione automatica del componente. 11 Domande Grazie per l’attenzione! 12