Come implementare l’edge computing a bassa potenza e ad alte prestazioni grazie agli FPGA Efinix predisposti per la tecnologia Quantum
Latenza, sicurezza dei dati, privacy dell’utente finale, larghezza di banda disponibile e affidabilità della connessione sono tutte problematiche connesse al cloud computing. Per cercare di trovare una soluzione, i progettisti e i sistemisti si stanno indirizzando verso l’edge computing. L’edge computing, tuttavia, non è a sua volta privo di sfide, che spaziano dai costi, dalle dimensioni, dalle prestazioni e dal consumo energetico sino alla scalabilità, alla flessibilità e alle possibilità di aggiornamento. Ciò vale in particolare quando i progettisti puntano a elaborare una maggior quantità di immagini e a implementare algoritmi di intelligenza artificiale (IA) e di apprendimento automatico (ML) più vicino alla sorgente dei dati.
È per questo motivo che stanno andando oltre i tradizionali microcontroller (MCU) o processori per applicazioni (AP) e stanno prendendo in considerazione i gate array programmabili sul campo (FPGA) e le loro capacità di elaborazione in parallelo. I costanti miglioramenti nella progettazione e nell’implementazione degli FPGA fanno sì che attualmente essi siano in grado di soddisfare molti di questi requisiti, sia come dispositivi standalone sia associati a MCU e AP. Ciò premesso, molti progettisti non hanno familiarità con gli FPGA e sono preoccupati della curva di apprendimento.
In questo articolo analizzeremo brevemente la migrazione dal cloud all’edge computing e il motivo dell’incapacità delle convenzionali architetture di elaborazione di gestire l’elaborazione di immagini, nonché IA e ML. Passeremo poi a parlare brevemente degli FPGA e della ragione per cui sono vantaggiosi, dal punto di vista dell’architettura, per queste applicazioni edge ad alta intensità di dati. Da ultimo, presenteremo un nuovo approccio agli FPGA – la tecnologia quantistica di Efinix – e alle sue modalità di applicazione.
Perché l’edge computing?
Nel cloud computing tradizionale, i dati vengono raccolti da miriadi di luoghi remoti e inviati a un sistema cloud per la memorizzazione e l’analisi. Tuttavia, questo approccio presenta molti svantaggi. Tra questi, il costo per la trasmissione di grandi quantità di dati grezzi, mantenendo la loro integrità e sicurezza durante transito, le latenze della risposta, le preoccupazioni degli utenti finali in merito alla privacy, connessioni spesso inaffidabili a Internet e un uso non ottimale della larghezza di banda disponibile.
Come suggerisce il nome, l’edge computing consiste nello spostare l’elaborazione – il calcolo e l’analisi – più vicino alla periferia di Internet, dove i dati vengono generati, analizzati, raccolti e applicati. L’edge computing non è legato ad applicazioni o a dispositivi specifici e i progettisti possono scegliere l’elaborazione “solo edge” o un compromesso tra cloud ed edge a seconda del caso.
Nelle applicazioni edge rientrano ad esempio stabilimenti, città, case e trasporti intelligenti. Inoltre, i dispositivi periferici possono spaziare dai grandi server di fascia alta a sistemi di sensori e attuatori relativamente piccoli all’estrema periferia di Internet, nel punto di origine dei dati.
I vantaggi degli FPGA
Parlando di calcolo, i processori tradizionali sono estremamente efficienti quando si tratta di decisioni e di attività sequenziali ma terribilmente inefficienti nel gestire molti algoritmi di elaborazione dati come quelli utilizzati per l’elaborazione di immagini, l’intelligenza artificiale e l’apprendimento automatico. Queste attività possono spesso essere suddivise in pipeline di elaborazione massicciamente parallele (non sequenziali). Si dà il caso che la migrazione alla periferia e all’estrema periferia riguardi proprio queste applicazioni.
Il fatto che gli FPGA possano essere programmati (configurati) per implementare qualsiasi combinazione di funzioni consente loro di eseguire algoritmi di elaborazione delle immagini, dell’intelligenza artificiale e dell’apprendimento automatico in una modalità massicciamente parallela, riducendo così la latenza e il consumo di energia. Oltre a disporre di una struttura programmabile principale, gli FPGA sono dotati di blocchi di elaborazione dei segnali digitali (DSP) su chip che contengono moltiplicatori specifici in grado di aumentare drasticamente la velocità delle applicazioni ad alta intensità DSP. Gli FPGA dispongono anche di blocchi di memoria su chip che agevolano l’elaborazione su chip, molto più veloce di quella non su chip.
Vi sono numerosi fornitori di FPGA, ciascuno con le proprie proposte esclusive. Uno di questi, Efinix, ha sviluppato una speciale architettura FPGA chiamata Quantum, pensata appositamente per l’egde computing in generale e per l’elaborazione di immagini in particolare. Attorno a questa tecnologia, l’azienda ha sviluppato la serie di FPGA Trion e di ASIC Quantum, in grado di offrire vantaggi in termini di potenza, prestazioni e ingombro rispetto alle tradizionali tecnologie FPGA (Figura 1). L’ambiente di sviluppo integrato (IDE) Efinity abbina i domini FPGA e ASIC.
Con gli IDE Efinity, gli utenti possono migrare senza soluzione di continuità da un FPGA Trion a un ASIC Quantum per la produzione ad altissimo volume. (Immagine per gentile concessione di Efinix)
Che cosa è la tecnologia Quantum?
Analogamente agli FPGA tradizionali, gli FPGA Trion contengono blocchi di memoria e DSP, la differenza sta nella struttura programmabile (Figura 2). Il cuore della logica programmabile è l’elemento logico (LE). Ognuno di questi elementi contiene una tabella di ricerca (LUT), un multiplexer e un registro, che possono tutti essere configurati come opportuno. Nel caso degli FPGTA tradizionali, la loro struttura programmabile può essere descritta come “a grana grossa”.
Nelle strutture a grana grossa, numerosi elementi logici vengono riuniti in un blocco logico più grande a cluster (CLB). Si presti attenzione al fatto che alcuni fornitori utilizzano il termine “blocco logico configurabile” (CLB) mentre altri “blocco di array logici” (LAB) ma si tratta sempre della stessa cosa.
Questa illustrazione, va ricordato, è un’astrazione. I CLB e i selettori di instradamento (interconnessione programmabile) degli FPGA tradizionali non hanno uno schema a scacchi come quello mostrato qui. Tuttavia, hanno una logica fissa e immutabile in quanto la logica programmabile rimarrà sempre logica programmabile e così anche l’interconnessione programmabile.
Rispetto alle architetture tradizionali, gli FPGA Trion hanno una grana molto più fine, sino ad arrivare a una risoluzione di un singolo elemento logico. Inoltre, ogni cella a logica intercambiabile di instradamento (XLR) può essere configurata per comportarsi come elemento logico o come parte della matrice di instradamento.
Le celle di configurazione utilizzate nell’architettura Quantum sono basate su SRAM, perciò questa tecnologia è “indipendente dal silicio”. Possono essere fabbricate con qualsiasi processo standard per CMOS, senza dover ricorrere ad alcuna fase speciale di lavorazione, richiesta invece da tecnologie di configurazione alternative, come flash e antifusibile, utilizzate in alcuni FPGA di fascia media. Sono questa logica e questo instradamento programmabili tramite software e l’interconnessione adattiva ad alte prestazioni a consentire all’approccio basato sulla tecnologia Quantum di migliorare sino a quattro volte la potenza, le prestazioni e l’ingombro rispetto agli FPGA tradizionali basati su SRAM creati nello stesso nodo di processo.
Inoltre, gli FPGA creati con l’architettura Quantum necessitano solo di sette strati di metallizzazione, rispetto agli oltre 12 degli FPGA tradizionali. Alla luce del fatto che ogni strato aggiuntivo di metallo richiede varie fasi di mascheratura e di processo, l’utilizzo di sette strati riduce i costi di progettazione e di produzione e aumenta la resa.
Sono tutte caratteristiche e funzionalità molto utili per i progettisti che sono in cerca di benefici in fatto di costi, dimensioni, prestazioni e flessibilità per l’edge computing e l’elaborazione di immagini. Gli FPGA Trion sono perciò la soluzione ottimale sia per le tradizioni applicazioni FPGA sia per quelle emergenti dell’egde computing e dell’elaborazione di immagini. Queste ultime includono il settore della telefonia mobile, l’Internet delle cose (IoT), l’automazione, la robotica, la fusione sensoriale, la visione artificiale, l’intelligenza artificiale e l’apprendimento automatico.
gli FPGA sono in teoria adatti sia per le applicazioni tradizionali degli FPGA sia per le applicazioni emergenti dell’edge computing in settori come telefonia mobile, IoT, automazione, robotica, fusione sensoriale, visione artificiale, IA e ML.
La struttura degli FPGA Trion
Gli FPGA Trion sono prodotti con un processo al silicio a bassa potenza a 40 nanometri con un numero di elementi logici compreso tra quattromila e duecentomila, scalabile per dispositivi ben più grandi. Tutti gli FPGA Trion comprendono blocchi di memoria e DSP, ma la loro capacità e numero variano in relazione alle dimensioni del dispositivo. I dispositivi più piccoli come T4F81C2 hanno caratteristiche più limitate (3.888 elementi logici, 78.848 bit di memoria, 59 GPIO) e sono pensati per le funzioni dei piani di controllo palmari.
I dispositivi di fascia più alta come T20F256C3 contengono più risorse (19.728 elementi logici, 1.069.548 bit di memoria, 195 GPIO). T13F256C3 è simile a T20F256C3, ma con 12.828 elementi logici. Inoltre, dispositivi come T13/T20 vengono proposti in diverse versioni (Figura 3).
MIPI CSI-2 è l’interfaccia per foto/videocamera più utilizzata nel mercato della telefonia mobile e in altri in virtù della sua bassa potenza, bassa latenza e di un’economica connettività chip-chip. Supporta inoltre una vasta gamma di formati ad alte prestazioni, inclusi video a 1080p, 4K, 8K (e superiori), nonché l’elaborazione immagini ad alta risoluzione. Un dato particolarmente interessante a questo proposito è il fatto che MIPI CSI-2 è l’interfaccia predominante utilizzata per i sensori di visione nelle applicazioni edge. Per supportare i progetti destinati a queste applicazioni, gli FPGA T13/T20 BGA169 contengono due blocchi hard core MIPI D-PHY/CSI-2 (Figura 3).
La memoria DDR supporta trasferimenti di dati su un’alta larghezza di banda ma deve anche rispettare uno stretto protocollo di temporizzazione. Oltre alle interfacce integrate nell’hardware MIPI D-PHY/CSI-2, i Trion T13/T20 BGA324 (sempre Figura 3) contengono un’interfaccia integrata nell’hardware DRAM DDR a 16 bit e un controller destinato a progetti con uso intensivo della larghezza di banda della memoria.
ASIC Quantum
Come abbiamo menzionato in precedenza, le celle di configurazione utilizzate negli FPGA Trion
sono basate su SRAM. Di conseguenza, quando il sistema viene alimentato per la prima volta, gli FPGA devono caricare la configurazione dati o da un dispositivo di memoria esterno o tramite un’emulazione software che passa del processore host. A tal fine, in una produzione ad altissimo volume Efinix propone anche soluzioni con FPGA embedded accelerati Quantum (eFPGA) sotto forma di ASIC Quantum. In questo caso, Efinix può prendere i progetti di T4, T8, T13 o T20 per creare versioni di ASIC Quantum programmati con maschere che si avviano internamente senza bisogno di un dispositivo di configurazione esterno.
Progettazione e sviluppo con gli FPGA Trion
Efinix propone una vasta gamma di schede di valutazione e kit di sviluppo che consentono agli utenti di familiarizzare con gli FPGA Trion. Tra questi, il kit di sviluppo per FPGA T8 Trion T8F81C-DK, la scheda di valutazione per FPGA T20 Trion T20F256C-DK e il kit di sviluppo per MIPI D-PHY/CSI-2 T20 Trion T20MIPI-DK.
Una delle tecniche più diffuse per lo sviluppo di FPGA è la progettazione guidata dal linguaggio (LDD). Ciò comporta l’acquisizione dell’intento progettuale a un livello di astrazione noto come livello a trasferimento tra registri (RTL) utilizzando un linguaggio di descrizione dell’hardware (HDL), come Verilog o VHDL. Dopo la verifica tramite simulazione logica, questa rappresentazione viene inserita in un motore di sintesi, insieme a informazioni aggiuntive come il tipo di FPGA di destinazione, le assegnazioni dei pin e i vincoli di temporizzazione quali i ritardi massimi tra ingresso e uscita. Il motore di sintesi produce un file di configurazione che viene caricato direttamente nell’FPGA o in un dispositivo di memoria esterno (Figura 4).
L’IDE Efinity di Efinix rientra in questa categoria di strumenti. È un software che restituisce un flusso completo dall’RTL al bitstream tramite un’interfaccia grafica utente intuitiva e un supporto per script tramite riga di comando. Un pannello intuitivo guida lo sviluppatore lungo il flusso (sintesi, posizionamento, instradamento, generazione del bitstream), per controllare manualmente o automaticamente ogni stadio. Gli sviluppatori possono usare il motore di sintesi Efinity per sfruttare appieno l’architettura Quantum degli FPGA Trion e generare dispositivi che migliorano sino a quattro volte la potenza, le prestazioni e l’ingombro. Oltre a supportare flussi di simulazione con i simulatori ModelSim, NCSim o IVerilog gratuiti, l’IDE Efinity dispone anche di un Interface Designer per i vincoli logici e per assegnare i pin ai blocchi alla periferia del dispositivo, di un Floorplan Editor per spostarsi nella logica di un progetto e nel posizionamento dell’instradamento, di un Timing Browser e dell’analisi statica della temporizzazione per misurare le prestazioni di un progetto e di un Debugger hardware integrato con analizzatore logico e core di debug per I/O virtuali.