18 aprile 2012

CPU+FPGA: combinazione vincente per l'SDR?

Credo che la lettura di questo breve articolo di Jack Ganssle su EE Times - "The rise of the FPGA?" - possa risultare stimolante per le schiere di sperimentatori dell'SDR (molti dei quali italiani) che utilizzano la logica programmabile delle FPGA per implementare gli algoritmi di "down conversion" nei ricevitori SDR a campionamento diretto. Come il Perseus o il più recente FDM-S1 di Elad. L'editoriale di Ganssle parte dall'annuncio di una nuova tipologia di prodotto della società Xilink, il big della produzione di FPGA (tra lei e Altera controllano oltre l'80% del mercato della logica programmabile), una linea chiamata Zynq. La particolarità di Zynq è il fatto di integrare sullo stesso chip un microcontrollore ARM Cortex-A9, di per sé molto potente, circondato da una grande quantità (fino a 350K celle secondo il datasheet) di logica, appunto, programmabile. Il chip è direttamente cablato sul componente (hard-IP), si tratta in pratica di un ibrido CPU-FPGA.
Inizialmente, confessa l'autore del pezzo, il componente non appariva come una novità sconvolgente. Da tempo, scrive Ganssle, in logica programmabile vengono implementati veri e propri processori general purpose, sia sotto forma di logica cablata "hardwired" (hard-IP, dove IP sta per intellectual property) sia come logica soft (soft-IP) da caricare sulla FPGA al momento in fase di boot, di avviamento. Ora che Xilink ha annunciato l'implementazione Linux per la famiglia di FPGA ibride Zynq-7000 Extensible Processing Platform, la prima reazione di Ganssle è stata di forte scetticismo: perché sprecare tante celle di logica programmabile per implementare un sistema operativo?



Ganssle ammette di non aver preso in considerazione un fattore: su Zynq il "core" del processore ARM è cablato e tutto il resto della logica programmabile resta disponibile per la realizzazione di operazioni più complesse, come l'I/O o certi tipi di trattamento del segnale. Che è poi la missione di una FPGA, considerando che questi dispositivi non sono altro che delle grosse matrici di porte logiche elementari la cui "programmazione" consiste nel settare le linee di comunicazione tra una cella e l'altra in modo che un insieme di celle possa svolgere una funzione logica molto più complessa. Le FPGA lavorano così, implementando in modo molto più veloce algoritmi che programmati su un microprocessore universale (dove la programmazione implica istruzioni software) risulterebbero vincolati al set di istruzioni del processore stesso e al suo passo di esecuzione.
La combinazione CPU-logica programmabile è dunque qualcosa di molto interessante perché offre a chi costruisce dispositivi digitali la convenienza di un microcontrollore generico (che in questo caso per esempio esegue il kernel di un sistema operativo) e la flessibilità e velocita di una logica completamente plasmabile. Tanto da far compiere a Ganssle un ragionamento ulteriore. Nella vulgata dell'industria digitale contemporanea ci sono dispositivi che, come i personal computer o gli smartphone, possono funzionare alla perfezione con un microprocessore. Altri, come certi componenti che troviamo all'interno dei nostri decoder televisivi, che richiedono una logica più personalizzata che viene tuttavia cablata all'interno di chip customizzati come gli ASIC, che oltretutto consumano molto meno. Operazioni veramente di nicchia - vedi il caso dei nostri ricevitori SDR - vengono implementate su FPGA per ragioni di costo. Quando la genericità di un microprocessore costringe i progettisti hardware a ricorrere a logiche personalizzate, solo volumi di produzione molto elevati giustificano l'uso di un ASIC. Mentre per produzioni molto limitate può risultare molto più conveniente, nel complesso, servirsi della logica programmabile FPGA, che singolarmente è un prodotto molto costoso e abbastanza famelico in termini di potenza dissipata.
Questo però è quanto avveniva fino a ieri. Oggi, spiega Ganssle, il mercato degli ASIC sta rapidamente cambiando perché le geometrie del silicio si stanno restringendo sempre di più. Per risultare economici degli ASIC sulla scala dei 28 nm, per esempio, richiedono volumi di produzione enormi, sull'ordine delle centinaia di milioni di pezzi. Con Zynq a chi dovesse realizzare dispositivi in quantità meno importanti, potrebbe risultare più conveniente rinunciare agli ASIC, optando piuttosto per una combinazione FPGA+microcontrollore. Ganssle cita addirittura l'industria automobilistica, oggi alle prese con una problematica nuova come l'implementazione della logica di controllo dei sistemi radar anti-collisione (una funzione che in Europa dovrebbe diventare obbligatoria nei prossimi anni). Questa è una tipica applicazione da logica programmabile o cablata, anche perché i radar che dovevano originariamente entrare in produzione utilizzavano la frequenza di 24 GHz e recentemente la Commissione Europea ha accettato una proroga che sposta al 20118 l'adozione di questi sistemi per consentire all'industria di spingerne la frequenza fino a 79 GHz, una porzione di spettro più praticabile se si punta a un impiego su vasta scala dei sistemi anti-collisione. L'industria automobilistica avrà bisogno di chip molto performanti e a basso consumo ma, conclude Ganssle, non è per forza detto che agli attuali costi degli ASIC, questi ultimi risultino meno costosi della nuova generazione di FPGA ibrida che Xilink ha introdotto sul mercato con Zynq.
Tornando alla questione che ci interessa di più, l'SDR, immaginate le potenzialità di una FPGA che oltre a consentire l'implementazione di un down converter molto efficiente, permettesse anche di gestire funzioni DSP come il filtraggio e la demodulazione e in più la gestione delle interfacce utente. Sarebbe un vero break-through sul fronte delle radio SDR indipendenti da computer e processori esterni.

1 commento:

Anonimo ha detto...

In un altro articolo su EETimes viene riportato anche il costo previsto.

"Based on forward volume-production pricing, the Zynq-7000 family will have an entry point below $15 in high volumes."