Servizio Comunitario di Informazione in materia di Ricerca e Sviluppo - CORDIS

Aiutare gli ingegneri di software a scegliere il giusto hardware

Gli sviluppatori di software spesso hanno competenze limitate nel settore dell'hardware e della progettazione di architetture di sistema. Un nuovo strumento sta colmando il divario tra la funzionalità desiderata e l'implementazione di hardware.
Aiutare gli ingegneri di software a scegliere il giusto hardware
La progettazione a livello di sistema elettronico (electronic system-level o ESL) è un innovativo sviluppo di semiconduttore e metodologia di verifica che ha grandi potenzialità per aiutare gli sviluppatori di software con la progettazione automatica di moduli hardware dalla rappresentazione ad alto livello di una task. Gli strumenti di linguaggio necessari per comunicare tra i vari strati di astrazione però per lo più mancano e questo ha come risultato l'aumento dei tempi di commercializzazione.

Gli scienziati hanno cercato di sfruttare i paradigmi di elaborazione parallela e il parallelismo dei dati che fanno sì che un'applicazione sia vista come unità computative individuali multiple (kernel) senza gestire esplicitamente la comunicazione tra queste unità. Il finanziamento da parte dell'UE del progetto ESL_STR ("Automatic hardware generation using the stream programming paradigm") ha permesso loro di raggiungere questo obiettivo. Il caso studio era l'applicazione a un field programmable gate array (FPGA), un semiconduttore che può essere "programmato" dall'utente (nel campo) dopo la produzione, rifacendo il circuito integrato del chip per produrre la funzionalità desiderata.

I ricercatori hanno prodotto uno strumento CAD (computer-aided design) per generare la programmazione del co-processore per un FPGA. Lo strumento impiega l'Open Computing Language (OpenCL), un ambiente di programmazione standard per scrivere programmi per architetture di calcolo eterogenee (quelle con più di un processore) che consistono in un elaboratore centrale o unità centrale di elaborazione (CPU) e il dispositivo o l'unità di elaborazione grafica (GPU). La versione di ESL_STR, chiamata OpenCL di silicio o SOpenCL, traccia una mappa del parallelismo (processori multipli) di un'applicazione su un FPGA riconfigurabile. Un compilatore di alto livello (HLC) divide i kernel di applicazione di un OpenCL tra CPU, GPU e lo stesso FPGA. Un compilatore di basso livello (LLC) elabora i kernel selezionati per girare sulle piattaforme FPGA, generando un progetto di hardware equivalente che soddisfa i requisiti di prestazione.

Lo strumento ESL_STR prepara il terreno per la portabilità del codice tra diverse piattaforme multi-processore, comprese le architetture fisse e riconfigurabili. Una tale capacità promette di rendere le nuove tecnologie come i FPGA elementi fondamentali del settore del calcolo ad alte prestazioni.

Informazioni correlate