L’evoluzione degli FPGA

Dai primissimi FPGA (Field Programmable Gate Array,) nel 1984, questi sorprendenti dispositivi hanno riportato un aumento della capacità di oltre 10.000 volte e un aumento della velocità di 100 volte, con un consumo di energia e un costo per singola funzione che è diminuito di oltre 10.000 volte. Entro il 2020, oltre 50 miliardi di dispositivi e macchine saranno connessi e dovranno soddisfare le crescenti richieste degli utenti finali, e allo stesso tempo dovranno elaborare una quantità di dati che aumenta in modo esponenziale, pur consumando meno potenza possibile. L’articolo che segue esamina l’evoluzione che gli FPGA hanno avuto negli ultimi 30 anni e oltre, e come la tecnologia di elaborazione più dinamica presente sul mercato sta rendendo possibile una rapida innovazione, offrendo risorse di calcolo adattabili ed intelligenti per dare forma alla prossima generazione di sistemi.

Date fondamentali:

Xilinx ha introdotto i primi FPGA nel 1984

Il termine FPGA è stato reso popolare nel 1988

  • Era dell’Invenzione: 1984-1992
  • Era dell’Espansione: 1992-1999
  • Era dell’Accumulazione: 2000-2007
  • Era dei SoC: 2008 – 2017
  • Era dell’accelerazione dell’elaborazione adattativa 2018 –

Le Ere degli FPGA

Fin dalla loro introduzione, i dispositivi FPGA hanno progredito attraverso diverse fasi di sviluppo. Ogni fase è stata condizionata sia dalla disponibilità di nuovi processi tecnologici, sia dalla domanda di applicazioni. Queste pressioni determinanti hanno prodotto cambiamenti osservabili nelle caratteristiche dei dispositivi e nei tool. Queste ere degli FPGA sono:

  • L’Era dell’Invenzione
  • L’Era dell’Espansione
  • L’Era dell’Accumulazione
  • L’Era dei Sistemi

Xilinx introdusse i primi FPGA nel 1984, anche se non furono chiamati FPGA finché Actel rese popolare il termine intorno al 1988. Nel corso dei successivi trenta anni, i dispositivi che chiamiamo FPGA hanno subito un aumento della capacità di oltre 10.000 volte e un aumento della velocità di un fattore 100. I costi e i consumi di potenza per singola funzione sono diminuiti di oltre 10.000 volte (si veda la Figura 1).

Figura 1.  Caratteristiche degli FPGA di Xilinx rispetto al 1988. I prezzi e i consumi si sono ridotti di 10.000 volte.

Questi progressi sono stati determinati in larga misura dalla tecnologia di processo e si è tentati di percepire l’evoluzione degli FPGA come un semplice aumento progressivo della capacità a seguito del processo di miniaturizzazione. Questa spiegazione è troppo semplicistica. La vera storia è molto più interessante.

L’Era dell’Invenzione: 1984-1992

Il primo FPGA, l’XC2064 di Xilinx, conteneva solo 64 blocchi logici, ognuno dei quali conteneva due Look-Up Table (LUT) a 3 ingressi e un registro. Con l’attuale sistema di conteggio, sarebbero stati pari a circa 64 celle logiche — meno di 1000 gate. Malgrado la sua piccola capacità, il die dell’XC2064 era molto grande — più grande dei microprocessori dell’epoca — e la tecnologia di processo da 2,5 micron era a malapena in grado di consentire la produzione del dispositivo.

Le dimensioni del die e il costo per singola funzione erano di importanza tremendamente vitale. L’XC2064 era dotato di appena 64 flip-flop, ma costava centinaia di dollari perché il suo die era così grande. La resa ha un andamento non lineare per i die di dimensioni maggiori, per cui un aumento delle dimensioni del die del 5% avrebbe raddoppiato i costi e avrebbe potuto far crollare le rese a zero, lasciando la nascente Xilinx senza alcun tipo di prodotto. Il contenimento dei costi non era una questione di pura ottimizzazione; era una questione di sopravvivenza dell’azienda.

A causa delle pressioni sui costi, gli architetti di sistemi FPGA fecero ricorso ad innovazioni nelle architetture e nei processi per massimizzare l’efficienza della progettazione FPGA. Anche se gli FPGA basati su SRAM erano riprogrammabili, le SRAM su chip dominavano l’area del die dell’FPGA. Gli FPGA basati su antifusibili hanno eliminato la penalizzazione di area su chip tipica della memoria SRAM (a scapito della riprogrammabilità). Nel 1990, l’FPGA con la massima capacità era il 1280 di Actel, che era basato su antifusibili. Quicklogic e Crosspoint seguirono Actel e svilupparono FPGA basati su antifusibili. Alla ricerca dell’efficienza, le architetture abbracciavano aspetti che andavano dalle strutture complesse basate su LUT alle porte NAND, fino ai singoli transistor.

Durante l’Era dell’Invenzione, gli FPGA erano molto più piccoli rispetto alle applicazioni in cui gli utenti desideravano integrarli. Di conseguenza, sistemi basati su più FPGA diventarono popolari e automatizzati, e il software di partizionamento multi-chip diventò una componente importante di una suite di progettazione FPGA. Il posizionamento e l’instradamento automatico delle connessioni non lo erano. La presenza di architetture FPGA radicalmente diverse precludeva l’esistenza di tool di progettazione universali, così i produttori di FPGA si assunsero l’onere aggiuntivo di sviluppare le soluzioni EDA per i propri dispositivi. La progettazione manuale degli FPGA, a livello sia logico, sia fisico, era considerata accettabile per via della piccola scala del problema. La progettazione e l’ottimizzazione manuale erano spesso necessarie perché le risorse limitate per l’instradamento dei segnali sul chip presentava sfide di progetto significative.

L’Era dell’Espansione: 1992-1999

Le società startup FPGA erano fabless, una novità all’epoca. In quanto tali, esse di norma non poterono ottenere la tecnologia su silicio all’avanguardia fino ai primi anni ’90. Di conseguenza, gli FPGA entrarono nell’Era dell’Espansione in ritardo rispetto alla curva di sviluppo dei processi di fabbricazione degli IC. Verso la fine del decennio, le fonderie di IC compresero che gli FPGA costituivano dei dispositivi pilota ideali per i nuovi processi tecnologici, e gli FPGA diventarono strumenti di ottimizzazione delle fasi dei processi. Le fonderie erano in grado di realizzare FPGA basati su SRAM non appena esse potevano produrre transistor e connessioni in una nuova tecnologia di processo. Ogni nuova generazione di processo ha raddoppiato il numero dei transistori disponibili, dimezzando il costo per singola funzione e raddoppiando le dimensioni del più grande FPGA disponibile. La lappatura chimico-meccanica (CMP) ha consentito alle fonderie di impilare più strati di metallizzazioni su un IC, il che ha permesso ai fornitori di FPGA di aumentare aggressivamente il numero di interconnessioni su chip per alloggiare LUT di capacità maggiori (si veda la Figura 2).

Figura 2. La crescita del numero di LUT e di interconnessioni negli FPGA nel corso del tempo. La lunghezza delle interconnessioni è misurata in milioni di lunghezze di transistor.

L’area non era così preziosa come lo è stata nell’Era dell’Invenzione. L’area ora poteva essere ottimizzata a spese delle prestazioni, delle funzionalità e della facilità d’uso. I progetti basati su FPGA di dimensioni maggiori necessitavano di strumenti di sintesi con posizionamento e instradamento automatico dei segnali. Alla fine degli anni ‘90, la sintesi, il posizionamento l’instradamento automatico dei segnali erano fasi indispensabili del processo di progettazione. La vita di una compagnia FPGA dipendeva allora tanto sulla capacità dei propri tool EDA quanto sulle funzionalità dei propri FPGA.

Ma soprattutto, il modo più semplice per raddoppiare la capacità e dimezzare i costi della logica sui chip FPGA era quello di puntare al successivo nodo di tecnologia di processo, poiché l’accesso precoce ai nuovi nodi di processo forniva un valore aggiunto enorme. In questo periodo, gli FPGA basati su SRAM ottennero un vantaggio di prodotto significativo, perché erano i primi ad adottare ogni nuovo nodo di processo: i dispositivi basati su SRAM potevano ricorrere immediatamente ai nuovi processi più densi, mentre occorrevano mesi o anni in più per qualificare i dispositivi ad antifusibili sui nuovi nodi. Gli FPGA basati su antifusibili persero così il loro vantaggio competitivo. L’innovazione architetturale restò in disparte rispetto alla migrazione di processo allo scopo di ottenere vantaggi di velocità e di costi.

L’Era dell’Accumulazione: 2000-2007

All’inizio del nuovo millennio, gli FPGA erano componenti comuni all’interno dei sistemi digitali. La capacità e le dimensioni dei progetti crebbero rapidamente e gli FPGA trovarono un mercato enorme nella comunicazione di dati. La bolla delle dot-com all’inizio degli anni 2000 diede origine a un disperato bisogno di ridurre i costi, cosa che eliminò molti utenti “occasionali” di ASIC. I dispositivi personalizzati su silicio erano semplicemente troppo rischiosi affinché un piccolo team potesse operare con successo. Quando videro che potevano risolvere i loro problemi con un FPGA, essi diventarono clienti FPGA.

Gli FPGA erano allora più grandi rispetto alle dimensioni tipiche dell’applicazione e l’aumento della capacità da solo non era sufficiente a garantire la crescita del mercato. I produttori di FPGA affrontarono questa sfida in due modi. Per la fascia bassa del mercato, i fornitori si focalizzarono nuovamente sull’efficienza e produssero famiglie di FPGA con capacità inferiore, prestazioni inferiori, a “basso costo”, come le famiglie di FPGA Spartan di Xilinx. Per il mercato di alta fascia, i produttori di FPGA si sforzarono di rendere più semplice per i clienti l’utilizzo degli FPGA di dimensioni maggiori, producendo librerie di logica sintetizzabile (IP) per le funzioni più importanti. Le più notevoli fra queste funzioni di logica sintetizzabile erano i controllori di memoria, i vari blocchi di protocolli di comunicazione tra cui i MAC Ethernet, e inoltre i microprocessori sintetizzabili come il processore MicroBlaze di Xilinx.

Le caratteristiche dei progetti cambiarono nel corso degli anni 2000. Gli FPGA più grandi ospitavano progetti di dimensioni molto elevate che costituivano sottosistemi completi. Gli utenti degli FPGA non li utilizzavano più unicamente per implementare la logica; avevano bisogno del proprio progetto su FPGA per ottenere la conformità agli standard di sistema. Questi ultimi erano principalmente standard e protocolli di comunicazione per la trasmissione di segnali, per l’interfacciamento verso componenti esterni o per la comunicazione fra blocchi interni. Gli standard di elaborazione evidenziarono il ruolo crescente degli FPGA nelle applicazioni complesse. Verso la fine dell’Era dell’Accumulazione, gli FPGA non erano più semplici matrici di porte logiche, bensì collezioni di funzioni complesse integrate con la logica programmabile. Essi diventarono il sistema.

L’era dei SoC: 2008 – 2017

Abbracciando i vari aspetti della progettazione a livello di sistema, gli FPGA incorporarono in misura via via crescente blocchi di sistema come transceiver ad alta velocità, memorie, grandi quantità di unità di elaborazione DSP e sottosistemi completi di elaborazione. Essi integrarono inoltre importanti funzioni per la sicurezza come la crittografia bitstream e l’autenticazione. In più, erano spesso disponibili funzioni a livello di sistema per potenti funzionalità di elaborazione a segnale misto e di controllo, per il monitoraggio della temperatura del sistema e per la gestione dell’alimentazione.  Queste funzionalità furono introdotte per la prima volta nella famiglia di prodotti SoC Zynq-7000 e furono ulteriormente estese negli MPSoC Zynq UltraScale + e negli RFSoC Zynq UltraScale +.  Durante questo periodo, venne compiuto un importante passo in avanti verso il miglioramento dell’efficienza nella programmazione. Grazie all’introduzione della sintesi ad alto livello (HLS), l’ambiente di programmazione tradizionale basato sui linguaggi di progettazione HW come il VHDL e il Verilog fu esteso dai flussi di tipo software utilizzando OpenCL, il C e il C++.  Questo è stato un importante passo in avanti per combinare la facilità d’uso del software e l’efficienza dell’hardware.

L’Era del Calcolo: 2018 –

Con i vantaggi dell’evoluzione della legge di Moore che rallentano, i sistemi di calcolo tradizionali si trovano a fronteggiare grandi sfide importanti in termini di ulteriore miglioramento delle prestazioni, dell’efficienza energetica e dei costi. Inoltre, i requisiti di prestazioni in tempo reale, di privacy e di larghezza di banda delle comunicazioni, determinati dai settori emergenti quali le auto autonome e il wireless 5G, creano la necessità di capacità di calcolo più potenti ed efficienti al bordo delle reti.

In questo contesto, sta emergendo il calcolo specifico per un dominio. Quest’ultimo utilizza un’architettura personalizzabile e un ambiente di programmazione su misura per un determinato dominio di applicazione. Considerando che la disponibilità di hardware di calcolo più veloce può essere essenziale per migliorare le prestazioni di un sistema, altri aspetti quali l’accesso efficiente alla memoria, la larghezza di banda delle interconnessioni, il comportamento deterministico e la bassa latenza possono avere pari importanza.

La piattaforma adattabile per l’accelerazione del calcolo (ACAP) assumerà un ruolo centrale nell’implementazione dei futuri sistemi di calcolo sul cloud e delle infrastrutture al bordo delle reti. Essa fornisce una piattaforma programmabile parallela ed eterogenea che può essere personalizzata per soddisfare in modo ottimale i requisiti di prestazioni di diversi domini di applicazione.

Dove conduce tutto ciò?  Programmabilità e adattabilità si sono rivelate essere di importanza fondamentale.  Le personalizzazioni efficienti delle funzioni di logica, di accesso alla memoria, di connettività per il trasferimento dei dati e per il calcolo parallelo, saranno tutte necessarie per accelerare i carichi di lavoro del futuro.  Questa tecnologia continuerà ad esistere e ad evolversi.

A cura di Ivo Bolsens, Xilinx Inc., CTO e Vice-Presidente Senior

 

 

2 Commenti

  1. Il progetto Janus implementa proprio questo concetto: tante FPGA collegate tra loro per ottenere un supercomputer programmabile a piacere in base alle necessità computazionali. http://www.janus-computer.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Menu