Processori spaziali

Come
ovvio, anche nelle applicazioni spaziali, come in tutti gli altri ambiti di
applicazione, i processori sono uno dei componenti essenziali delle
architetture digitali, utilizzati sia per scopi di controllo che di
elaborazione dei dati. Cercando in rete non è difficile trovare una panoramica
(non esaustiva) di alcuni delle principali Cpu impiegate nel suddetto settore e
delle relative missioni di riferimento nel corso degli anni. Si va dai
processori custom delle prime missioni Pioner o Viking degli anni '70 alle Cpu
Intel 80x86 presenti a bordo dello Shuttle fino ad arrivare ai più recenti
PowerPC RAD6000 e RAD750 radiation-tolerant dei rover atterrati su Marte. Diversamente
dai componenti commerciali, i quali hanno vita relativamente breve finendo
soppiantati da architetture di nuova generazione nel giro a volte anche di un
paio di anni, nel settore spaziale la ricerca delle prestazioni deve andare di
pari passo con la necessaria affidabilità. Malfunzionamenti della Cpu
potrebbero comportare la perdita di missioni dal costo di decine di milioni di
euro. I tempi più lunghi dei programmi spaziali richiedono inoltre l'adozione
di soluzioni supportate nel lungo periodo (fino a 15 anni). Ciò si traduce,
ovviamente, in un ritardo cronico (ma giustificabile per i motivi di cui si
diceva sopra) del settore spaziale rispetto alla tecnologie allo stato delle
arte presenti sul mercato commerciale o industriale. Non significa però un
ristagno del settore stesso. Del resto, proprio negli ultimi anni sono
cresciute significativamente le richieste poste dai payload imbarcati (soprattutto
quelli commerciali) per quanto concerne capacità di calcolo e trasmissione
dati. In risposta a ciò, si sono avute e si continuano a seguire diverse attività
di ricerca e sviluppo condotte con l'obiettivo di migliorare le prestazioni
delle Cpu spaziali, senza derogare agli aspetti di affidabilità. Di seguito ne
sono presentate alcune tra le più recenti e interessanti.

SPARC-V8

Leon è un
IP core sintetizzabile di un processore embedded compatibile con l'architettura
di tipo Risc Sparc-V8 introdotta da Sun Microsystem negli anni '80. La prima
implementazione (Leon-2FT), in versione fault-tolerant per applicazioni nel
settore spaziale, è stata sviluppata da Esa sul finire degli anni '90 ed è
ancora oggi disponibile per Asic ed Fpga per le sole applicazioni finanziate
direttamente dall'Agenzia. Un Asic ready-made è disponibile a catalogo presso
Atmel. Il AT697F dispone di 32 Kbyte di memoria cache dati (4-way set
associative) e 16 kByte di memoria cache programma (2-way set associative),
controller di memoria esterna per dispositivi PRom, Sram e Sdram, timer, Uart,
interfaccia di I/O parallela e controller PCI 32-bit/33 MHz. Realizzato in
package MQFP-256 e caratterizzato per dose totale di raziazione di 300 Krad, ha
dissipazione di potenza inferiore a 1 W alla massima frequenza di lavoro di 100
MHz, alla quale rende disponibile una capacità di calcolo di 86 Mips (Dhrystone
2.1) e 23 Mflops (Whetstone). Atmel ha recentemente annunciato la disponibilità
di un Asic multi-chip, realizzato nella tecnologia proprietaria rad-hard
AT58KRHA, che integra all'interno dello stesso package il processore AT697F e
una Fpga AT280F connesse mediante link Pci. Leon è correntemente supportato da
Gaisler Research, da cui è disponibile la versione Leon-3 rilasciata anche per
scopi non commerciali sotto licenza Gnu/Lgpl. Leon-3 è corredato da una ampia
libreria (GRLIB) di periferiche che consentono la configurazione di SoC custom
in Fpga o Asic. L'implementazione Leon3 dispone di pipeline a 7 stadi, unità
hardware multiply/divide e MAC, FPU Ieee-754, Mmu con TLB configurabile,
supporto Smp (Symmetric Multi-Processor). Oltre che un compilatore nativo Bcc
basato su tool-chain Gnu, sono supportati i sistemi operativi eCos, Nucelus,
RTEMS, Linux Snapgear, VxWorks, ThreadX e LynxOS. Leon-3FT è la versione
fault-tolerant del core Leon3 che include, tra l'altro, logica accessoria per
la protezione da SEU del register file e delle memorie cache. Oltre che come IP
core per sviluppi custom è disponibile in implementazione in Fpga Actel
rad-hard RT-Axcelerator (LEON3FT-RTAX) e Asic (GR712RC ed UT699 entrambi
commercializzati da Aeroflex, di cui Gaisler fa parte). Il GR712RC, in particolare, è una versione dual-core
realizzata nel processo Cmos a 180 nm di Tower Semiconductor (non soggetto a
restrizioni Itar) utilizzando la tecnologia rad-hard by design Radsafe di Ramon
Chip; la massima frequenza di funzionamento è 100 MHz. Recentemente Gaisler ha
annunciato il rilascio della versione Leon-4 che utilizza architettura interna
a 64 bit su bus Amba AHB 2.0 a 64 o 128 bit e register file a 4-porte. Ciò, unitamente
ad un migliore predizione dei branch, una riduzione della latenza di load a 1
ciclo di clock e l'impiego di moltiplicatori hw 32x32 bit, consente di
raggiungere prestazioni dell'ordine di 1,7 DMips/MHz. Attualmente è disponibile
soltanto una evaluation board con implementazione dual-core del processore in Asic
(nella tecnologia eAsic
a 90 nm Nextreme1) per scopi di sviluppo e valutazione.

Rad750 PowerPC

La
riduzione di potenza intrinseca dell'architettura Risc e la disponibilità di
estensioni dell'instruction set per il supporto di applicazioni Dsp-intensive,
hanno determinato nel corso degli anni l'affermazione di sistemi basati su
PowerPc nelle applicazioni mission-critical. Sebbene in campo avionico e
militare la tendenza sembra stia recentemente cambiando, con la diffusione su
scala sempre più ampia delle nuove architetture Intel iCore, nel settore
spaziale l'architettura PowerPc rappresenta ancora la soluzione dominante. Il
RAD6000 di Locked Martin (la relativa divisione è oggi finita sotto il
controllo di Bae System a seguito di una serie di cessioni) è stato per anni il
processore di riferimento, soprattutto sul mercato americano, per le missioni
più rappresentative, fino ai più recenti rover Spirit e Opportunity atterrati
su Marte. Realizzato in tecnolgia rad-hard Cmos proprietaria e in grado di
raggiungere frequenza di funzionamento massima di 33 MHz per una capacità di
calcolo di 35 Mips, il dispositivo si caratterizza per dose di radiazione
totale fino a 2 MRad e supporta architetture ridondante lock-step. Il
successore del RAD6000 è il più recente RAD750 della stessa Bae Systems e che
implementa l'architettura state-of-art PPC750 di Freescale. Imbarcato per la
prima volta nel 2005 a bordo delle missioni Deep Impact, Mars Reconnaissance
Orbiter e XSS-11, e, ad oggi, impiegato su più di 28 programmi, il dispositivo
è disponibile nelle diverse versioni radiation-tolerant e radiation-hard. La
prima è realizzata in tecnologia Cmos a 250 nm, caratterizzata per dose totale
fino a 250 Krad e con massima frequenza di funzionamento di 132 MHz per una
capacità di calcolo di > 260 DMips. La versione rad-hard è invece realizzata
in tecnologia Cmos a 150 nm e sopporta dose totale fino a 1 MRad; la massima
frequenza di funzionamento è > 200 MHz per una capacità di calcolo di oltre
400 Dmips. Secondo quanto dichiarato sul sito, BAE Systems sta inoltre
lavorando ad Asic dedicati per l'espansione dell'insieme di periferiche del
processore al fine di supportare connessioni SpaceWire e Mil-Std-1553. Il
RAD750 supporta i sistemi operativi VxWorks di WindRiver e Integrity di Green
Hills; avendo architettura standard, d'altra parte, è assolutamente compatibile
con qualsiasi tool-chain per processori PPC750. Oltre che il singolo
componente, Bae System rende inoltre disponibili schede rad-tolerant
basate su RAD750 nei formati 3U e 6U cPci. Per lo sviluppo e la validazione del
software indipendentemente dalla disponibilità dell'hardware, infine, è stata
sviluppata una piattaforma virtualizzata denominata Virtutech Simics, in grado
di essere eseguita su Pc standard e compatibile con diversi Ide di terze parti.

DspAce

Le
crescenti richieste di prestazioni, come di diceva inizialmente, poste dai
nuovi payload imbarcati bordo dei moderni satelliti hanno rapidamente saturato
la capacità di calcolo dei Dsp tradizionalmente impiegati nel settore spaziale.
Fino a qualche anno fa, il componente di riferimento in ambito europeo era il
TSC21020 realizzato da Atmel e caratterizzato da capacità di calcolo inferiore
a 40 Dmips. Migliori prestazioni erano offerte dai componenti sviluppati nel
mercato americano, vincolati tuttavia alle limitazioni sull'esportazione imposte
dalla normativa di oltre-oceano. Per tali ragioni, a partire dal 2007, l'Esa ha
definito una road-map per lo sviluppo di un Dsp in ambito europeo con capacità
di calcolo oltre 1 Gflops. Tra le varie iniziative (alcune delle quali
orientate alla qualifica di componenti commerciali per ridurre i tempi di
sviluppo), una delle più interessanti è certamente quella legata al progetto DspAce.
Il progetto, partito nel 2011 e finanziato all'interno del settimo programma
quadro con uno stanziamento di 1,6 milioni di euro, è condotto da un consorzio
guidato dalla italiana Sitael e dovrebbe concludersi nel corso del 2013. DspAce è un Dsp con architettura Vliw con 8 diverse functional unit (4 Alu, 2
Mul e 2 Agu), 64 registri a 32-bit, supporto per formati di dati a 32-bit
fixed-point e floating point (Ieee 754 single precision) ed esecuzione
condizionale di tutte le istruzioni. Integra memoria cache dati da 64 Kbyte e
programma da 32 Kbyte, controller Dma e controller di memoria esterna per Sram,
Sdram, Ddram ed Eeprom (con protezione Edac), 2 porte SpaceWire per
connettività high-speed. Il core del Dsp e i relativi tool software di sviluppo
(assembler, linker e simulatore) sono stati generati automaticamente a partire
da una descrizione dell'instruction set sotto il linguaggio Lisa (Language for
Instruction Set Architectures)
sviluppato dall'Institute for Integrated Signal
Processing Systems di Aquisgrana in Germania. L'infrastruttura di
connessione on-chip (basata su bus Amba AHB) e le varie periferiche sono invece
state sviluppate mediante classica descrizione Hdl. Il compilatore è stato
invece derivato da GCC. L'architettura è stata quindi prototipata mediante Fpga
Xilinx Virtex-5 XC5VLX110 (piuttosto equivalente in termini di risorse
disponibili alla versione radiation-tolerant XQR5VFX130) su una scheda 3U cPCI
dotata di modulo di memoria Sodimm DDR2; l'occupazione di risorse in Fpga è
circa del 30% e la massima frequenza di funzionamento 60 MHz. Prove di sintesi
preliminare nella tecnologia radiation tolerant ATC18RHA di Atmel mostrano una
occupazione di risorse in Asic di circa 380 K gates ed una massima frequenza di
125 MHz corrispondente a prestazioni di punta di 750 MFlops. Il passaggio alla
tecnologia DSM65 di prossimo rilascio da parte di STMicroelectronics dovrebbe
consentire di superare il muro di prestazioni di 1 GFlops.

SMV320C6727B-SP

Il
SMV320C6727B-SP è il processore Dsp di prossima generazione proposto da Texas
Instruments
per applicazioni nel settore spaziale. Il componente è
basato su Cpu C67x+, una versione migliorata del core C67x caratterizzata da
più elevata frequenza di clock (fino a 250 MHz), migliore densità di codice e
migliori prestazioni in calcoli floating-point. La Cpu supporta nativamente
formati di dati di tipo fixed-point a 32 bit e floating-point sia in singola
(32 bit) che in doppia precisione (64 bit). Dispone di data cache da 32 Kbyte,
256 Kbyte di memoria Ram e 384 Kbyte di memoria Rom on-chip oltre che di
controller Emif per memorie esterne di tipo Sdram (fino a 512 Mbit) e flash di
tipo Nor e Nand. Una porta host UHPI a 32-bit (in grado di funzionare in
modalità multiplexata e non) consente l'accesso ad elevato data rate ad un host
esterno mentre il controller dMax integrato gestisce trasferimenti
memoria-memoria (con fino a 2 canali simultaneamente) senza intervento della Cpu.
Una cross-bar switch ad elevate prestazioni gestisce l'accesso concorrente da
parte dei vari master (Cpu, dMax e Uhpi host) alle risorse del dispositivo. Il
SMV320C6727B-SP integra porte I2C, Spi, McASP, timer real-time e Pll per la
generazione dei diversi clock richiesti. Richiede tensione di alimentazione a
3,3 V per l'I/O e 1,2 V per il core ed è caratterizzato da resistenza a dose
totale di radiazione assorbita fino a 100 KRad ed immunità a latch-up per
singoli eventi di energia fino a 117 Mev x cm2/ mg. Lo sviluppo software è
supportato sotto il classico IDE Code Composer Studio di TI; la simulazione
sotto Matlab è quindi resa possibile dalla disponibilità di librerie (IMGLIB e
IQMath) in grado di fornire un modello bit-accurato del kernel del Dsp.

MPPB

Un
approccio alternativo a quelli presentati in precedenza nella rincorsa a prestazioni
più elevate in Dsp per applicazioni spaziali è quello delle architetture
massivamente parallele. Un esempio di questo è il progetto Mppb (Massively
Parallel Processor Breadboarding)
condotto da Recore Systems per conto dell'Esa.
Un prototipo del sistema funzionante in Fpga è stato presentato nell'agosto
scorso durante l'evento Dsp Day tenutosi proprio presso la sede principale
dell'Agenzia in Olanda. Nel corso di quest'anno sono attesi i risultati su
prime implementazioni in tecnologia Asic radiation tolerant (mediante librerie Dare
su processo a 80 nm) dei principali moduli funzionali del Mppb. Il Mppb si basa su di un NoC (Network On chip) scalabile che interconnette core Dsp
della serie Xentium (sviluppati dalla stessa RecoreSystems) operanti
parallelamente. Xentium è un core Vliw programmabile direttamente in linguaggio
C, in grado di supportare operazioni scalari a 32/40 bit o vettoriali su 2
elementi a 16 bit, con fino a 10 slot di esecuzione parallela; supporta
nativamente formato di dati fixed-point con la possibilità di emulazione di
istruzioni su operandi floating-point. Mppb è controllato da una Cpu Leon-2 che
gestisce l'inoltre delle istruzioni ai singoli core Dsp. Integra memoria
on-chip da 256 Kbyte e controller per memoria esterna Sdram, controller Dma
embedded e 2 porte di comunicazione SpaceWire (di cui uno con supporto per Rmap)
oltre a classiche periferiche come Gpio, Uart e Lcd. La rete di Dsp implementa
inoltre meccanismi di self-repairing con la possibilità di riconoscimento
automatico di eventuali core in condizione di fault; questi sono isolati dalla
reti, rilocando i task su core paralleli, eventualmente riducendo le
prestazioni ma garantendo la corretta esecuzione di tutti i task.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome