Che cos’è l’informatica riconfigurabile?

Computing riconfigurabile è un termine applicato a diverse opzioni di elaborazione. Un computer riconfigurabile è quello in cui i chip e i componenti dell’architettura del computer possono essere sostituiti con altri su richiesta. In alternativa, i chip e i componenti possono essere riorganizzati e cablati insieme in modo diverso per eseguire funzioni diverse e seguire disposizioni di flusso di dati diverse. Un computer riconfigurabile può contenere o meno un’unità di elaborazione del computer (CPU) di uso generale, può avere diverse CPU o essere gestito solo da circuiti integrati dedicati e array di porte programmabili sul campo. Alcune persone si riferiscono al calcolo riconfigurabile come calcolo ibrido, calcolo parallelo, calcolo pipeline o calcolo ad alte prestazioni.

I computer FPGA (Field Programmable Gate Array) possono avere una CPU per eseguire funzioni di piattaforma e di rete, o possono eseguire tutte le funzioni della CPU in modo indipendente, in un computer riconfigurabile. Questi FPGA sono componenti logici del computer che possono essere raggruppati insieme in una varietà di configurazioni di cablaggio, producendo funzioni e flussi di dati diversi e possono essere riorganizzati in nuove disposizioni in qualsiasi momento. Questa flessibilità offre la massima potenza di elaborazione grezza per attività di elaborazione specializzate e maggiori capacità di velocità rispetto ai computer generici. In opzioni alternative, gli FPGA possono essere ripetutamente riprogrammati da linguaggi specifici dell’hardware, nell’uso del calcolo parallelo, per produrre percorsi di flusso di dati diversi e operazioni simultanee sui dati della pipeline.

L’elaborazione ibrida è considerata un’elaborazione riconfigurabile in quanto coinvolge un core della CPU per scopi generici abbinato a core specifici dell’applicazione per usi specifici, aumentando le capacità e la velocità di determinate funzioni di elaborazione. Questi core specifici per l’applicazione possono essere FPGA, riconfigurati da un consumatore o array di elaborazione dati riconfigurabili (rDPA). Inoltre, una scheda di espansione per computer PCI Express® può essere aggiunta internamente alla scheda madre o esternamente nel proprio involucro, per aumentare le capacità della scheda grafica o di segnalazione. L’elaborazione riconfigurabile consiste nell’offrire opzioni ad alte prestazioni per attività specializzate.

Il motivo per cui i sistemi di elaborazione riconfigurabili sono preferiti rispetto all’elaborazione per scopi generici è che i sistemi riconfigurabili forniscono tale flessibilità di prestazioni. Un sistema riconfigurabile può essere modificato al volo prima dell’esecuzione, tra insiemi di funzioni o quasi in qualsiasi momento durante l’esecuzione tramite flussi di bit di istruzioni. Queste riconfigurazioni possono aver luogo mentre un’altra parte del sistema logico sta elaborando altre attività. C’è una grande differenza di velocità tra l’utilizzo di attività software e l’utilizzo della flessibilità dell’elaborazione riconfigurabile per eseguire le stesse attività, consumando meno energia.

Nelle comunità scientifiche, accademiche, militari e commerciali, vengono condotti molti campi di ricerca per far progredire le pratiche informatiche riconfigurabili. Gran parte di questa ricerca è finalizzata a produrre una migliore gestione dei costi generali nei sistemi operativi. In modo correlato, si stanno facendo ricerche sulle scelte nella delega dei compiti a CPU host e FPGA logici. Inoltre, vengono sottolineate le strategie di ottimizzazione per gli FPGA nell’elaborazione video, del segnale e di rete per le comunità scientifiche e militari e la bioinformatica per le comunità mediche.