Verso la programmabilità di sistema

La programmabilità dell’hardware è una delle soluzioni di progettazione che permettono di affrontare la complessità dei sistemi e i requisiti sempre più stringenti in termini di basso consumo di potenza, tempo reale e piccole dimensioni. La natura delle applicazioni di nuova generazione, sempre più complesse e allo stesso tempo sempre più ridotte nelle dimensioni della applicazioni, sta cambiando l’architettura della logica programmabile. Le nuove architetture che utilizzano la logica programmabile sono spiccatamente orientate al sistema altamente integrato ed eterogeneo. Il concetto di System-on-Chip viene ulteriormente esteso in termini di eterogeneità sia dei modelli computazionali, sia di quelli tecnologici. L’integrazione di analogica, digitale e mixed-signal rende questi dispositivi di logica programmabile una potenziale soluzione ideale per le applicazioni embedded in campi applicativi nuovi alla logica programmabile come per esempio quello del wearable.

System-on-Chip Programmabili con Ble
Il PSoC 4 di Cypress è una piattaforma hardware ad architettura configurabile e scalabile che consente di implementare sistemi basati su Mcu con un set di periferiche e di unità di controllo specifiche dell’applicazione. PSoC 4 integra su chip la Cpu Arm Cortex M0 e una serie di blocchi analogici e digitali riconfigurabili attraverso un sistema di routing molto flessibile. In particolare la famiglia PSoC 4XX7_Ble di Cypress Semiconductor integra insieme alla Mcu un modulo Ble (Bluetooth Low Energy). Altri moduli includono funzionalità digitali, analogiche e mixed-signal.

Analogica programmabile
Maxim Integrated ha recentemente introdotto un’architettura analogica programmabile sul modello dei sistemi hardware programmabili. È l’architettura Pixi, Max 11300, un chip mixed-signal configurabile per l’I/O analogico e digitale. Max 11300 integra un Adc a 12 bit multicanale e un Dac a 12 bit multicanale bufferizzato. Il chip rende disponibile questi dispositivi in modalità di configurazione firmware sia a livello interno, sia a livello esterno. Il dispositivo offre 20 porte esterne mixed-signal ad alta tensione configurabili come ingressi analogici, come output analogici e come input/output digitali di uso generale. Il chip include anche il sensing di temperatura (uno interno e due esterni) oltre a uno di tipo ambientale. Due delle porte adiacenti sono anche configurabili come traslatori di livello logico per supportare dispositivi open-drain o interruttori analogici. La programmazione hardware del MAX11300 avviene tramite interfaccia grafica, quindi eseguibile anche da non esperti di analogica in quanto il codice di programmazione dell’hardware viene generato dall’ambiente di sviluppo grafico. La programmazione delle porte, anche a livello elettrico, è molto flessibile e versatile. Ogni porta è configurabile individualmente in un range tra -10 V e + 10 V. È possibile anche programmare una modalità di averaging per ogni porta configurata come Adc relativamente a 2, 4, 8, 16, 32, 64 o 128 campioni, in modo da minimizzare le problematiche di rumore. Molto interessante è la possibilità di monitorare la temperature interna ed esterna per tenere sotto controllo i limiti di temperature dell’applicazione, senza impegnare la Cpu host tranne che, in modalità interrupt, quando l’evento viene rilevato. I valori di temperatura misurati vengono resi disponibili tramite interfaccia seriale (Spi a 4 fili a 20 MHz).

Logica programmabile ultra-small
La scelta della logica programmabile, in particolare le Fpga, in applicazioni dove le dimensioni e il consumo di potenza sono fattori determinanti del successo, è sempre stata difficile. L’evoluzione tecnologica della logica programmabile ha consentito di superare anche questa barriera, rendendo disponibili dispositivi di ridottissime dimensioni e bassissimo consumo, come per esempio il dispostivo Fpga di Lattice, iCE40 Ultra/UltraLite. iCE40 Ultra/UltraLite è una Fpga di solo 1,4 x 1,4 mm e 0,45 mm di spessore , quindi di dimensioni adatte a sistemi ultra-embedded come per esempio quelli indossabili. Malgrado queste piccolissime dimensioni, iCE40 di Lattice integra fino a 4000 Ltu e una serie di IP fondamentali per lo sviluppo di applicazioni dedicate come la lettura dei barcode, la gestione della voce, la Usb di tipo C, l’identificazione utente, la gestione dei Led, la funzione pedometro, ecc. La programmazione avviene sia tramite I2C, sia tramite SPI. Interessante anche la doppia modalità di clock, 48 MHz per le alte prestazioni e 10 kHz per il basso consumo. Altre due elementi di flessibilità sono i 26 I/O per l’implementazione di interfacce custom e 80 kbit di Ram non volatile.

Multi-Processing System-on-Chip
L’evoluzione del paradigma applicativo dell’elettronica è tale che la complessità è la problematica dominante che gli sviluppatori devono affrontare e risolvere nella maniera più ottimale possibile. In particolare i sistemi di nuova generazione vedono aumentare i requisiti di banda sia a livello computazionale, sia a livello di comunicazione. L’informazione nella forma multimediale è sempre più ricorrente e la natura delle applicazioni sempre più eterogenea. Xilinx ha sviluppato l’architettura MPSoC (Multi-Processing System-on-Chip) basata sullo standard Zynq-7000 a 28 nm per affrontare problematiche applicative complesse con tecnologie basate sulla logica programmabile e orientate al system-on-chip, come le comunicazioni wireless, le reti software defined, la visione intelligente basata su algoritmi evolutivi, il controllo diretto tra macchine, ecc. L’architettura UltraScale MPSoC di Xilinx consente la scalabilità da 32 a 64 bit con supporto della virtualizzazione, l’utilizzo combinato di motori hardware e software per il controllo real-time, l’elaborazione video/grafica e alter applicazioni computazionalmente intensive. Il concetto fondamentale sottostante questa architettura di computing basata sulla logica programmabile è quello della definizione di una sistema fatto su misura per l’applicazione che parte dal concetto di system-on-chip e di ottimizzazione dell’architettura tramite la logica programmabile.
Lo sviluppo delle applicazioni su questa architettura si basa su un modello di astrazione si sistema basato sul linguaggio C, C++ e OpenCL, con un flusso di progettazione basato sul riutilizzo delle IP.

Logica programmabile e Dsp
L’utilizzo della logica programmabile, in particolare le Fpga, per affrontare le problematiche computazionali intensive tipiche dell’elaborazione numerica del segnale in campi applicativi avanzati, per esempio quello video, è una delle più significative strategie di sviluppo per garantire prestazioni real-time effettive. Questa esigenza non è venuta meno malgrado le elevate prestazioni raggiunte dalle Mcu di ultima generazione che hanno incorporato molte delle funzionalità tipiche dei Dsp. La logica programmabile ha ora raggiunto un livello di prestazioni tali da essere competitiva rispetto alle soluzioni Mcu, offrendo allo stesso tempo la capacità di realizzare applicazioni altamente ottimizzate ed efficienti. In particolare, la soluzione della logica programmabile in campo Dsp ha il vantaggio di poter definire in termini strettamente hardware gli algoritmi dei processi Dsp richiesti dall’applicazione. Per esempio è possibile ottenere precisioni di calcolo a lunghezza variabile grazie proprio alla disponibilità di blocchi Dsp che possono essere configurati al momento della programmazione dell’hardware. Altera ha per esempio introdotto il concetto di variable-precision Dsp block configurabili compile-time nell’ambito dello standard Ieee floating-point 754. Grazie a questi blocchi Dsp le prestazioni della logica programmabile vengono aumentate fino a 1.5 tera floating-point operation per second sui dispositivi della famiglia Arria 10. Altera mette a disposizione un set ampio di funzioni matematiche floating-point, circa 70, compatibili con la specifica OpenCL 1.2 e ottimizzate per l’architettura hardware. Queste funzioni fanno un uso ottimale delle risorse hardware della Fpga come la memoria e i blocchi Dsp, tanto da non richiedere l’utilizzo di ulteriore logica Fpga aggiuntiva. Arria 10 è una Fpga di livello SoC ad altissima densità di integrazione (20 nm), particolarmente ottimizzata per applicazioni Dsp di natura embedded, quindi a bassissimo consumo ed elevatissima velocità esecutiva. I blocchi Dsp eseguono in hardware l’aritmetica Dsp floating-point ottenendo prestazioni computazionali dell’ordine dei 1500 giga floating-point operation per second. A queste prestazioni computazionali interne, Aria 10 affianca anche una capacità di trasferimento dati di 3.6 Tbps basata su 96 transceiver.

Fpga e memoria
Nelle applicazioni computazionalmente intensive oltre all’efficienza della parte esecutiva dell’aritmetica, la componente di memoria contribuisce in maniera non indifferente alla efficienza esecutiva. Nella logica programmabile il modello di memoria è differente da quello delle Mcu e anche degli Asp (Application Specific Processor) di cui fanno parte i Dsp. Nelle Fpga la memoria deve essere distribuita e le modalità di accesso compatibili con le possibili configurazioni della logica programmabile.
Atmel, nella famiglia di Fpga AT40K, ha implementato un modello di memoria distribuita con tempo di accesso si 10 ns di tipo dual-port/single-port Sram. Tale Ram può essere utilizzata senza dover impegnare parte della logica della Fpga. Utilizzando gli strumenti di generazione delle macro, possono essere configurati particolari schemi di accesso alla memoria, come le Fifo, le scratch pad. ecc.). A questa innovazione della memoria, Atmel affianca anche una struttura di core cell innovativa 8-sided, capace di connessioni dirette orizzontali, verticali e diagonali. Questi schemi di connessione permettono di realizzare array di moltiplicazione particolarmente veloci e indipendenti da altre risorse.

Pubblica i tuoi commenti