L’importanza dell’architettura nella scelta del SoC Fpga

Processori e field programmable gate array ricoprono un ruolo di primo piano nella maggior parte dei sistemi embedded. Sebbene tali componenti lavorino egregiamente da soli, l'abbinamento di queste due tecnologie è in grado di dar vita a piattaforme computazionali embedded ancora più potenti. Spesso, in sistemi di questo tipo, il processore svolge compiti gestionali di alto livello, mentre all'Fpga vengono affidate le rigorose operazioni in tempo reale, l'elaborazione dei dati o le funzioni di interfaccia difficilmente supportate dal processore. I SoC Fpga integrano con successo nello stesso dispositivo entrambe le architetture: processore ed Fpga. La fusione di queste due tecnologie consente di ottenere numerosi vantaggi, tra cui una maggiore integrazione, minor consumo, dimensioni più contenute, e una larghezza di banda più estesa nella comunicazione tra processore ed Fpga. I dispositivi di questo tipo più all'avanguardia presentano, oltre alle prerogative che sono proprie di processori ed Fpga da soli, il valore aggiunto rappresentato dall'integrazione delle due tecnologie. Un SoC Fpga da solo è in grado di fornire livelli di funzionalità e prestazioni superiori o quanto meno uguali rispetto alle implementazioni precedenti, ma con un abbattimento che può arrivare anche al 50% in termini di spazio occupato, potenza assorbita e costo di sistema. Integrando queste tecnologie sulla medesima piastrina di silicio, è possibile risparmiare un package plastico; se poi nello stesso progetto Cpu ed Fpga usano memorie esterne separate, diventa possibile abbinare queste due funzioni in un unico dispositivo, risparmiando ulteriormente spazio, potenza assorbita e costi. E poichè i segnali tra processore ed Fpga sono ora relegati all'interno dello stesso chip, la comunicazione tra i due può avvenire con una maggiore efficienza, ma non solo: grazie alle migliaia di connessioni interne tra processore ed Fpga, la soluzione integrata presenta sicuramente una larghezza di banda superiore ed una latenza decisamente inferiore rispetto a una soluzione con due chip separati. Ci sono poi diverse considerazioni progettuali e decisioni che gli sviluppatori di sistemi embedded devono affrontare al momento di stabilire quale sia il SoC Fpga più adatto per una particolare applicazione: tali criteri comprendono prestazioni ed affidabilità di sistema, consumo di energia, tool di sviluppo e possibilità di evoluzioni future.

Sistema più performante con SoC Fpga

Sostanzialmente, la prestazione di sistema nei SoC Fpga è determinata dall'efficienza con cui avviene lo scambio di dati tra le quattro funzioni principali del SoC: processore, logica Fpga, interconnessione, e memoria on-chip e off-chip. In molte applicazioni, la prestazione globale del sistema dipende fortemente dalla prestazione del datapath dove è necessario che un flusso continuo di dati possa procedere a “line speed” o “wire speed” con il minimo di stalli o di interruzioni. In simili applicazioni, la logica Fpga si occupa della sfera di calcolo mentre il processore provvede alla gestione ad alto livello delle funzioni di controllo, intercettando solo una piccola parte dei dati in ingresso e per lo più cercando di star fuori dal percorso del datapath. Per eseguire questo delicato balletto, i moderni SoC Fpga si avvalgono di un processore Arm dual-core Cortex-A9 integrato nel tessuto di un avanzato Fpga da 28nm. Il Cortex A-9, rispetto ad altri processori, offre un mix ideale tra basso assorbimento, capacità, larghezza di banda e prestazione. L'interconnessione presente nei Cyclone V SoC è concepita appositamente per accrescere la prestazione di sistema, grazie ai suoi più di 100 Gbps tra Fpga e processore Cortex-A9: ciò garantisce che il sistema sia in grado di far fronte ad un traffico di dati molto intenso.
Un altro fattore che consente ai SoC Fpga di incrementare la prestazione del sistema è costituito dalla possibilità di accedere con efficienza a memoria on-chip e off-chip: a questo scopo, infatti, i Cyclone V SoC impiegano sofisticati algoritmi, come deficit weighted round robin, che raggiungono la massima larghezza di banda gestendo priorità di transazione, riordinando comandi e dati e classificando le transazioni pendenti. Ulteriori prestazioni aggiuntive derivano poi dalla personalizzazione via software del memory controller per il miglior adattamento ad un particolare profilo di dati.
Quando si valuta la prestazione di un memory controller, è importante prendere in considerazione non soltanto ampiezza e velocità del bus, ma il subsystem della memoria nel suo insieme tramite benchmark a livello di sistema come Lmbench. Come appare evidente facendo girare LMbench su un 667 MHz Cyclone V SoC system, il Cyclone V SoC è in grado di spuntare fino al 17% in più di memory bandwith rispetto a SoC concorrenti, a fronte di una frequenza operativa di memoria del 25% più bassa. Questo vantaggio in efficienza permette al Cyclone V SoC di rendere disponibile una maggior memory bandwith a più bassi clock rate, il che si traduce in un minor assorbimento del sistema.

Sistema più affidabile con SoC Fpga

Al continuo aumento delle dimensioni di memoria, fa eco una sempre maggior necessità di poter rilevare e correggere gli errori. Molti sistemi moderni comprendono un hardware dedicato alla salvaguardia dell'integrità dei dati come, ad esempio, la error correction code protection, non solo come parte del memory controller, ma anche integrata all'interno delle memorie on-chip, cache, peripheral buffer del processore, e nello stesso Fpga. La circuiteria di rilevazione e correzione d'errore rende il sistema più immune e resiliente verso inaspettati errori o corruzione di dati. La protezione della memoria, altrimenti detta memory management unit o memory protection unit, è una prestazione spesso abbinata al memory controller nei processori più avanzati. La memory protection unit del processore previene che transazioni vaganti o illegali possano leggere o danneggiare altre zone di memoria. Nel processore Cortex-A9, Arm estende questo concetto di protezione con TrustZone, che fornisce un approccio system-wide per sistemi security-sensitive. Usando Cyclone V SoC, è possibile dedicare specifiche zone di memoria al sistema operativo e ad applicazioni software embedded, riservandone altre a funzioni dell'Fpga. Grazie alla memory protection, è possibile prevenire che le funzioni dell'Fpga-master possano intaccare il sistema operativo o zone di software embedded.

Maggiore integrazione, minor consumo

Le nuove applicazioni elettroniche sono sempre più critiche dal punto di vista della potenza assorbita, non solo nelle apparecchiature portatili, ma anche in applicazioni automotive e perfino nei server rack con i loro apparentemente illimitati appetiti di potenza e budget di raffreddamento. In questi casi, i SoC Fpga sono soluzioni percorribili per aiutare gli sviluppatori embedded a non oltrepassare i loro budget energetici. Con la semplice integrazione di processore e Fpga in un singolo SoC Fpga, si può potenzialmente ridurre il consumo del sistema dal 10% al 30%. Gli I/O che portano i segnali tra i dispositivi, spesso a tensioni più alte, sono alcune delle funzioni che consumano di più. Oltre alla semplice riduzione di assorbimento resa possibile dall'integrazione, i Cyclone V SoC introducono delle vere e proprie modalità per ridurre i consumi, come clock gating and scaling. Inoltre, processore ed Fpga hanno anche alimentazioni indipendenti su strati diversi permettendo così ad una applicazione di spegnere completamente l'alimentazione dell'Fpga mantenendo il processore ben attivo per tenere sotto controllo gli interrupt. Per ottimizzare l'assorbimento, il progetto dei SoC sta diventando sempre più correlato con il progetto della sezione alimentatrice che, a livello di sistema, consuma spesso più energia dell'intero SoC. In tali sistemi, la sfida è rappresentata dal corretto bilanciamento del progetto, ovvero trovare il giusto compromesso tra le dimensioni dell'alimentatore e la sua efficienza. I Cyclone V SoC sono supportati da tecnologie di conversione Dc-Dc che consentono ai progettisti di rispettare vincoli rigorosi in termini di potenza assorbita e spazio occupato. Altera offre una nuova famiglia di moduli alimentatori Enpirion ideali per soddisfare i vincoli di spazio e di efficienza dei sistemi embedded basati su SoC Fpga.

Comuni strumenti di sviluppo
a supporto di SoC Fpga


Questa nuova categoria di SoC che integra processori Arm avanzati e strutture Fpga apre la strada verso la realizzazione di prodotti elettronici più veloci, economici e più efficienti sotto l'aspetto energetico. Comunque, l'innovazione dell'hardware deve trovare una corrispondente innovazione in Fpga tools, on-chip debugging, software debugging e analysis tools. In definitiva, è il software a determinare con quale successo un progettista stia usando questi dispositivi. Per un utilizzo più ampio, gli sviluppatori software non dovranno trovare con Soc Fpga e le loro caratteristiche più difficoltà di quante non ne trovino sviluppando software su processori stand-alone. I SoC Fpga di Altera sono supportati da una SoC Embedded Design Suite che comprende una completa tool suite Arm-compatibile per lo sviluppo di embedded software su tali dispositivi. Essa contiene tool di sviluppo, utility programs, run-time software ed esempi di applicazioni per la realizzazione di firmware e software applicativo per sistemi embedded SoC. Come risultato di una relazione strategica tra Altera e Arm, SoC Eds include l'esclusiva offerta di Arm Development Studio 5 (DS-5) Altera Edition Toolkit. Combinando le avanzate possibilità muilticore debugging di Arm DS-5 con Fpga-adaptive capability (ovvero l'abilità di vedere immediatamente le variazioni hardware dell'Fpga) e un link diretto verso Altera SignalTap logic-analyzer, SoC Eds toolkit fornisce agli sviluppatori di embedded software un livello mai raggiunto di visibilità e controllo sull'intero chip. Quando un bug fa la sua malaugurata apparizione, il team di sviluppo deve determinare se si tratta di un problema hardware o software. I tool che supportano Altera SoC Fpga rendono molto più facile scoprire la causa di queste disfunzioni mettendo i sottosistemi processore e Fpga in grado di effettuare un cross-trigger da codice a forma d'onda e viceversa, con il risultato di poter trovare e tracciare come e perchè una particolare condizione si è verificata nel sistema. Cross-trigger trace e global time stamping sono efficaci strumenti per verifica IP, sviluppo di driver custom e parte dell'integrazione di sistema di un progetto. Oltre a trovare la locazione di un guasto, SoC Eds permette a chi sviluppa sistemi embedded di scoprire esattamente perchè il sistema è entrato in fallo. Arm System Trace Module permette il tracking degli eventi software Cpu-based. Il software applicativo può generare tracce hardware e software per monitorare il comportamento del sistema e per scrutarne in profondità le operazioni. In un ambiente di debug “Fpga adaptive”, STM consente il monitoraggio di eventi sia nel dominio CPU che Fpga, senza dover fermare il sistema.

SoC Fpga: il futuro

Nella scelta di SoC Fpga è imperativo che i programmi futuri del fornitore mantengano il vostro sistema competitivo e consentano futuri upgrading del software. Tanto per cominciare, va preso atto che il punto di partenza di ogni evoluzione sta nella tecnologia di processo del silicio. I SoC Cyclone V e Arria V attualmente disponibili da Altera sono realizzati nel 24 nm low-power process, per aiutare a minimizzare i consumi in applicazioni industriali, automotive, medicali e di comunicazioni in cui la potenza assorbita è argomento di prmaria importanza. I SoC di ultima generazione Arria 10 di Altera si caratterizzano per ottime prestazioni, efficienza energetica, dimensioni contenute e basso costo per una ampia varietà di infrastrutture wireless di media portata, broadcast, militari e applicazioni di calcolo e archiviazione dati. I SoC Arria 10 sono basati su tecnologia di processo 20 nm e combinano un processore dual-core Cortex-A9 con una tecnologia di logica programmabile d'avanguardia. L'implementaazione del processore dual core Cortex-A9 conferisce facilità di trasferimento del software dai SoC Fpga di prima generazione rendendo possibile, grazie alla tecnologia di processo con geometrie inferiori, un balzo prestazionale fino a 1,5 GHz.
I SoC Stratix 10 di terza generazione, basati su Intel 14nm Tri-Gate process technology e dotati di processore Arm Cortex-A53 quad-core a 64-bit con compatibilità 32-bit per facilitare la migrazione di software esistente, rendono possibili grandi progressi nel livello di prestazioni per applicazioni avanzate di comunicazioni, militari e di data center.
I SoC Fpga sono una nuova potente categoria di dispositivi programmabili adatti ad una vasta gamma di applicazioni elettroniche. I tipi più noti commercialmente disponibili integrano uno standard Arm dual-core Cortex-A9 con una ricca dotazione di periferiche, memoria on-chip, una architettura interna di interconnessione ad alta velocità, una gerarchia di memoria on-chip e un tessuto Fpga di prim'ordine. Nuovi strumenti innovativi di progetto software e di debug consentono agli sviluppatori di osservare e cross-triggerare simultaneamente entrambi i lati (processore ed Fpga) del chip. Mentre i dispositivi presenti sul mercato possono sembrare a prima vista simili, ad uno sguardo più approfondito è l'architettura sottostante a fare la differenza.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome