La tecnologia Fpga è apparsa sin dalla sua introduzione una tecnologia abilitante che avrebbe avuto grandi prospettive. La densità di integrazione sembrava essere la leva che avrebbe portato questa tecnologia a sostituire altre soluzioni di computing hardware come le Cpu e le Mpu, ma, anche quando le Fpga hanno reso disponibili densità di integrazione tali da realizzare in modalità soft-IP (soft Intellectual Proprierty) le Cpu a standard industriale, la soluzione Fpga+SoftCpu non ha creato l’alternativa alle Hard-Cpu e Hard-Mpu. L’efficienza dell’hardware è sempre stata superiore a quella del software, così, fino a quando non si è concretizzata la possibilità di integrazione nella logica programmabile di hardware IP relative alle Cpu e alle periferiche, la soluzione di sistema basata sulla logica Fpga non ha superato quella soglia critica di prestazione computazionale, tale da far propendere la scelta del progettista sulla soluzione sistem-on-chip basata sulla logica programmabile, in particolare quella Fpga. Il punto di svolta è stato l’integrazione tra la tecnologia Fpga e la tecnologia delle IP hardware. Una serie di annunci come la “Embedded Initiative” di Altera relativamente all’integrazione di un sottosistema Arm e di tecnologia Fpga a 28 nanometri, quello di Cypress relativo all’integrazione di logica programmabile Pld, di Arm Cortex-M3 e di funzionalità A/D, quella di Intel relativa al suo Atom E6X5C (una combinazione della versione SoC di Atom con la Fpga di Altera), di Microsemi-Actel relativo alla integrazione di Fpga, Arm Cortex-M3 e di funzionalità analogica programmabile e di Xilinx relativamente alla sua Embedded Product Platform che integra Arm Cortex-A9 e logica Fpga a 28 nanometri, stanno tutti a dimostrare che la tecnologia SoC-Fpga ha raggiunto la sua maturazione e rappresenterà nel prossimo futuro la tecnologia di processing di riferimento. L’elevatissima densità di integrazione (soprattutto i 28 nanometri) hanno rappresentato un importantissimo traguardo per la tecnologia SoC-Fpga, ma non è solo questa. La maturazione di altre tecnologie, meno evidenti, ma non meno importanti, hanno contribuito al SoC-Fpga. Tra queste, le architetture di computing parallele e il multicore, recepite dalle più importanti Cpu a standard industriale, hanno creato i presupposti tecnologici per il SoC-Fpga.
Parallelismo e risparmio energetico
L’evoluzione verso i sistemi embedded della maggior parte delle applicazioni sia di natura industriale che di natura consumer, ha portato alla creazione delle condizioni ideali per l’applicazione della tecnologia Fpga di ultima generazione per la realizzazione su piattaforma SoC del core system di tali applicazioni. Il parallelismo ha rappresentato un passo fondamentale per la realizzazione dei sistemi embedded allo scopo di garantire a tali sistemi l’efficienza energetica necessaria alla loro realizzabilità. Il parallel processing riduce considerevolmente i consumi energetici del sistema in quanto consente l’utilizzo di frequenze di clock molto più basse di quelle richieste dalle architetture a scarso parallelismo esecutivo. Grazie alla tecnologia Fpga il parallelismo può essere sviluppato esaustivamente sia nella modalità pipeline (parallelismo differito), sia nella modalità piena, consentendo in tal modo la massima flessibilità nel partizionamento delle funzionalità software. Per ottenere il parallelismo efficiente sono necessarie numerosissime linee di connessione dati e di bus interni per disporre di capacità di trasferimento dati dell’ordine dei 100 Gigabit/s e latenze dell’ordine del nanosecondo. L’integrazione tra hardware Mpu e logica Fpga consente di realizzare architetture di computing ad elevato parallelismo esecutivo, utilizzando Cpu industry standard. La tecnologia di integrazione per le Fpga in solo 10 anni è passata dal processo a 130 nanometri a quello a 28 nanometri, superando in tal modo non solo la geometria di integrazione degli Asic, ma anche quella delle Mpu. Solo gli Assp utilizzano attualmente una geometria di integrazione da 28 nanometri, ma da soli tali processori, pur essendo altamente integrati, non sono abbastanza flessibili per soddisfare pienamente i requisiti applicativi dei sistemi embedded.
Oltre la legge di Moore
Il processo di integrazione, basato sulla legge di Moore, è diventato negli anni sempre più costoso e proibitivo. Solo mercati particolarmente grossi nei volumi, come per esempio quello automotive o dei dispositivi mobili, può giustificare investimenti industriali per la fabbricazione dei semiconduttori in tecnologia Cmos avanzata per la produzione di dispositivi con geometrie ormai prossime alle dimensioni molecolari. È ormai da tempo che si afferma da più parti che la sostenibilità della legge di Moore per il futuro non dipende solo dalla riduzione della geometria di integrazione, ma anche e forse soprattutto dalle soluzioni di architettura di computing e di architettura di sistema. La SoC-Fpga, tra le possibilità di sopravvivenza della legge di Moore, è quella più realistica e matura.
Nelle SoC-Fpga convergono due idee fondamentali che hanno dominato lo sviluppo dei sistema da alcuni anni, quella della programmabilità hardware dell’architettura di computing e quella della programmabilità hardware dell’architettura di sistema. La soluzione Fpga è riuscita a far coesistere queste due idee e allo stesso tempo ha concretizzato la riusabilità del sistema in accordo con le esigenze applicative in continua evoluzione. Da una parte il computing embedded richiede architetture a precisione ben definita da 4 a 64 bit, dall’altra, questa precisione evolve nel tempo in funzione della evoluzione dei dispositivi periferici. Il concetto di riusabilità dell’hardware concretizzato dalla SoC-Fpga rende questa soluzione particolarmente adatta a soddisfare i requisiti sempre più stringenti per la sopravvivenza della legge di Moore. La logica Fpga mette a disposizione quanto serve alla realizzazione dell’interconnessione di sistema consentendo il livello di parallelismo richiesto dalle caratteristiche di processing e computazionali strettamente legate all’applicazione. L’integrazione di Cpu industry standard come Arm, Mips, PowerPC e x86 garantisce anche la continuità del software del software applicativo e l’utilizzo del software di sistema, in particolare i Rtos (Real-time operating systems) più diffusi nelle applicazioni embedded.
Innovazione per l’embedded
Stiamo entrando in una era della microelettronica, quella dei SoC e della logica programmabile Fpga, cioè l’era del SoC-Fpga. Si tratta di una tecnologia di sistema che integra le più importanti innovazioni dell’architettura di computing, e che mette in pratica le più avanzate tecniche e metodologie di programmazione dell’hardware. L’applicabilità ai sistemi embedded rappresenterà un momento di innovazione con una portata inimmaginabile in termini di riduzione delle dimensioni, della potenza consumata e dei costi dell’applicazione finale. La soluzione SoC-Fpga non è interessante solo dal punto di vista dei produttori di Fpga, ma anche dal punto di vista dei produttori di Mcu e di Cpu, come hanno dimostrato numerosi annunci fatti da parte di produttori di microcontrollori e di Cpu, in particolare quelli che producono Cpu industry standard. Questi non sono ovviamente interessati solo alla possibilità che le loro Cpu possano essere maggiormente diffuse, ma anche alla possibilità di fare uso della tecnologia Fpga per caratterizzare tali Cpu.