Un nuovo processore sfida gli Fpga


Da anni il Field Programmable Gate Array si è affermato come dispositivo logico “universale”, utilizzabile per implementare innumerevoli funzioni diverse evitando i costi di sviluppo di chip dedicati. Ma a pensarci bene, il più “universale” di tutti i dispositivi logici è il microprocessore, che esisteva già prima della nascita dell'Fpga e che in più offre i vantaggi tipici della “logica” programmata” (tra cui la possibilità di sfruttare in tempi diversi le stesse risorse hardware per svolgere funzioni diverse). Il Field Programmable Gate Array, al contrario, è una logica cablata (hard-wired) resa “programmabile” (ma sarebbe meglio dire “configurabile”) grazie al fatto che i collegamenti tra i gate vengono azionati tramite la scrittura di un bit. Si tratta di una soluzione brillante ed efficace, che comporta però costi notevoli: nella logica cablata, infatti, ogni gate è utilizzato permanentemente per una determinata funzione e ciò - insieme alla necessità di risorse di routing - porta alla realizzazione di chip piuttosto grandi. Non a caso, vent'anni fa gli Fpga erano visti soprattutto come soluzioni provvisorie in attesa dello sviluppo di dispositivi dedicati. Perché, allora, la “logica programmata” è stata sconfitta dalla “logica cablata” proprio sul suo terreno, cioè nella battaglia per la flessibilità? Le motivazioni principali riguardano la velocità e la prevedibilità dei tempi di esecuzione. Solitamente gli Fpga sono utilizzati per riunire diversi blocchi di uno stesso sistema e quindi sono chiamati a svolgere più funzioni contemporaneamente. Un microprocessore può raggiungere lo stesso risultato eseguendo diversi thread in parallelo, ma se tali thread concorrono al funzionamento di un unico sistema è essenziale mantenere tra essi relazioni temporali ben precise. I normali processori non sono ottimizzati per questo tipo di applicazioni e pertanto non sono in grado di garantire né alta velocità né tempi di esecuzione certi.

Emulare funzioni diverse, a rotazione
In questo panorama si inserisce oggi un nuovo microprocessore sviluppato espressamente per fare concorrenza agli Fpga in alcune fasce di mercato, coniugando i vantaggi della logica programmata (minori dimensioni del die) con tempi di esecuzione brevi e prevedibili. L'innovativa architettura è stata ideata da David May - noto per avere progettato negli anni ottanta il famoso Transputer - e viene sfruttata industrialmente dalla società britannica Xmos. L'idea di May può essere descritta tramite i seguenti concetti:

  1. realizzare un processore capace di lavorare “a rotazione” su otto diversi programmi (thread), ciascuno dei quali viene utilizzato per emulare una diversa parte del sistema;
  2. effettuare il passaggio tra un programma e l'altro (cambiamento di contesto) con tempi certi, più precisamente a ogni colpo di clock.

Prendiamo, ad esempio, il caso di un sistema che comprenda tre interfacce (Usb, Ethernet, schermo tattile) e un algoritmo di crittografia Aes. Un unico processore Xmos può riunire queste quattro funzioni eseguendo, a rotazione, i quattro diversi programmi che le emulano. Al primo colpo di clock il processore “diventa” un'interfaccia Usb, al secondo colpo di clock “diventa” un blocco che esegue l'algoritmo Aes, al terzo un'interfaccia per lo schermo tattile e al quarto un'interfaccia Ethernet (inoltre la commutazione di contesto può essere pilotata anche da clock esterni o da eventi). In questo modo lo stesso pezzo di silicio può essere usato per quattro funzioni diverse; con un Fpga, invece, ogni funzione impegnerebbe in modo esclusivo un certo numero di porte logiche ad essa riservate.

I principali “segreti” dell'architettura ideata da May sono due:

  1. il meccanismo della commutazione di contesto è realizzato in silicio, il che consente di garantire tempi brevi e prevedibili);
  2. i pin di ingresso e uscita sono controllati in modo da creare l'illusione dello svolgimento contemporaneo di otto funzioni diverse. I normali microprocessori non sono dotati di questi due accorgimenti e pertanto non si prestano ad applicazioni di questo tipo.

Un altro aspetto da sottolineare è che questa architettura semplifica la programmazione “parallela”, poiché in realtà gli otto thread non sono affatto paralleli ma sequenziali e totalmente indipendenti l'uno dall'altro. Ovviamente esistono sistemi composti da più di otto blocchi funzionali, che quindi richiedono più di otto thread; per rispondere a questa necessità, May ha ideato un meccanismo di comunicazione tra i processori che consente di creare chip multicore e sistemi multichip. Un dispositivo composto da quattro core, ad esempio, può eseguire fino a 32 thread indipendenti (4x8).

I dispositivi Xmos allo specchio
Lo scorso anno Xmos ha iniziato la produzione di un primo dispositivo denominato XS1-G4, che comprende quattro core; nel corso del 2009 saranno resi disponibili i campioni delle versioni a due core e (XS1-G2) e a core singolo (XS1-G1).
Vediamo ora in maggiore dettaglio le caratteristiche del core Xmos, denominato Xcore. Si tratta di un processore a 32 bit capace di raggiungere una velocità di 400 Mips. Al suo interno ogni thread dispone di un set di registri ad esso riservati; gli otto thread, inoltre, accedono senza collisioni a un'unica memoria condivisa da 64 Kbyte. Il core è in grado di eseguire operazioni integer e in virgola fissa, per svolgere in modo efficiente anche funzioni Dsp e crittografiche. È dotato di 64 pin di ingresso/uscita programmati via software, raggruppati - da un punto di vista logico - in porte della larghezza di 1, 4, 8, 16 e 32 bit. Ogni porta incorpora funzioni di serializzazione/deserializzazione, sincronizzazione con l'interfaccia esterna e temporizzazione di precisione. Ogni XCore, inoltre, comprende otto timer - che usano come riferimento un clock a 100 MHz - e una memoria Otp da 8 kbyte che non può essere letta dall'esterno, utilizzabile per conservare in modo sicuro programmi, dati o chiavi crittografiche. La realizzazione di dispositivi multicore avviene tramite uno switch denominato Xlink, collegato a ciascun core tramite connessioni che possono trasferire dati fino alla velocità di 800 Mbit al secondo. Lo switch fornisce anche un massimo di sedici collegamenti verso altri chip Xmos, il che consente di creare grandi sistemi multiprocessore. Ciascuna di queste connessioni esterne può trasferire dati fino alla velocità di 400 Mbit al secondo. Un dispositivo XS1-G4 a quattro core, con tutti i 32 thread funzionanti, consuma circa un watt. Il consumo può essere ridotto diminuendo la frequenza di clock dei singoli core, il che non impedisce il funzionamento in tempo reale. La programmazione dei dispositivi Xmos impiega il linguaggio C e un'estensione denominata XC, che tiene conto delle esigenze riguardanti il controllo degli I/O, la gestione di più core, la precisione delle temporizzazioni. La suite dei tool di progettazione comprende i compilatori C e XC, debugger, simulatore, programmatore dei dispositivi, visual profiler. L'ambiente è offerto gratuitamente sia in versione desktop sia tramite web. Sono disponibili due kit di sviluppo di diversa potenzialità, uno a 999 dollari e l'altro (che ha le dimensioni di una carta di credito) a 99 dollari. Il chip XS1-G4 costa nove dollari in quantità di centomila pezzi.

Audio, Led e automazione
Come ha recentemente spiegato a Selezione di Elettronica il vicepresidente marketing di Xmos, Richard Terril, i nuovi processori si prestano in modo particolare ad applicazioni nel campo dell'audio digitale (Ethernet Avb, Usb Audio), del pilotaggio di grandi display a Led, dell'automazione (reti industriali, controllo motori, robotica). Terril ha anche tracciato un primo bilancio dell'attività dell'azienda, che è stata fondata a Bristol nel 2005 e occupa oggi una cinquantina di persone. Il manager si è detto soddisfatto dell'interesse suscitato da Xmos, dimostrato dalla quantità di kit di sviluppo venduti (trecento) e dal numero di progettisti registrati nei siti web. Oltre ai campioni dei dispositivi a uno e due core, nel secondo trimestre dell'anno in corso saranno resi disponibili anche nuovi strumenti di progettazione e nuove schede di sviluppo.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome