Separazione del progetto, un elemento critico per sistemi ad alta affidabilità

Qualunque sia il tipo di applicazione, dalle radio Sdr (Software Defined Radio) usate in campo militare alle transazioni bancarie al controllo del movimento in contesti safety-critical (ovvero che in caso di malfunzionamento possono arrecare seri danni a persone o cose), un elevato livello di affidabilità è divenuto un requisito di fondamentale importanza nella progettazione di sistemi. Tutte le applicazioni appena menzionate condividono i medesimi requisiti per quanto concerne la riduzione di dimensioni, consumi e costi dei sistemi, a fronte del mantenimento del livello di affidabilità previsto. Di solito nei progetti di sistemi a elevata affidabilità si fa ricorso al concetto di ridondanza. Per tradurre in pratica tale concetto si utilizzano numerosi componenti, il che comporta un aggravio in termini di costi, ingombri sulla scheda e potenza. Altera ha sviluppato una soluzione che garantisce il livello di ridondanza richiesto utilizzando un unico Fpga sfruttando il concetto di separazione del progetto. Un approccio di questo tipo se da un lato assicura lo sviluppo di sistemi di piccole dimensioni e a basso consumo, dall’altro garantisce i livelli di affidabilità e di sicurezza delle informazioni (IA – Information Assurance) richiesti da questo tipo di applicazioni.

Un requisito irrinunciabile
La realizzazione di un sistema ridondante/separato consente alle applicazioni di continuare a funzionare anche nel caso si verifichi un guasto di una parte di un sistema. Questo approccio, storicamente, è stato sfruttato principalmente in campo militare, dove è stato utilizzato per incrementare l’Mtbf (Mean Time Between Failure), valore che indica quanto tempo passa statisticamente fra due successivi guasti in un determinato apparato o sistema) per varie tipologie di sistemi hardware e applicazioni critiche in modo da assicurare virtualmente l’immunità da malfunzionamenti. Oggigiorno il settore industriale richiede in misura sempre maggiore sistemi di controlli più sicuri che possono essere implementati mediante progetti ridondanti/separati, adatti per il controllo del movimento di robot impiegati in ambienti manifatturieri gravosi o su linee di produzione ad alta velocità come ad esempio quelle presenti nelle cartiere. Nel caso si verifichi un guasto il sistema di controllo continuerà a funzionare correttamente e l’errore verrà rilevato e gestito in maniera appropriata in modo che il macchinario possa essere arrestato in modo sicuro per consentirne la riparazione senza causare danni a persone o cose. In tal modo risulta possibile ridurre i tempi di fermo macchina e i costi di manutenzione a fronte di un sensibile aumento della sicurezza del sistema. Con l’aumento dell’uso di apparecchiature connesse in ambito industriali, la sicurezza contempla anche la trasmissione dei dati in maniera sicura e affidabile.

La sicurezza delle informazioni
La separazione del progetto viene usata anche nelle applicazioni che prevedono il ricorso a tecniche di cifratura. Solitamente queste applicazioni prevedono sistemi separati per il flusso di dati e l’algoritmo di cifratura/decifrazione in modo da assicurare che i dati stessi non vengano contaminati o intercettati. Queste applicazioni devono essere insensibili ai guasti (fault tolerant), in modo che il sistema possa recuperare le informazioni nel caso i dati o il sistema subiscano alterazioni.
Per quanto riguarda la sicurezza delle informazioni, le due sono le principali applicazioni di crittografia sono relative ai sistemi IT e alla cifratura commerciali per il settore finanziario:
-    sistemi IT: tali sistemi devono garantire la sicurezza della informazioni per proteggere sistemi e dati sensibili dagli attacchi degli hacker. Il sistema procede all’ispezione del sistema non solo per assicurare la protezione contro i virus, ma anche per proteggere informazioni sensibili sfruttando varie applicazioni di cifratura, tra cui IPSec, Https e Vpn (Virtual Private Network). Gli algoritmi di crittografia HTTPS sono tipicamente implementati mediante un software che viene fatto girare su un computer, mentre IPSec e Vpn richiedono sistemi hardware di crittografia a più elevate prestazioni. L’apparecchiatura deve risultare conforme a requisiti di sicurezza particolarmente severi come quelli previsti dai Common Criteria (una serie di standard sulla sicurezza approvati a livello internazionale) o da Fips (Federal Information processing Standard) 140-2 o 140-3.
-    Crittografia per applicazioni commerciali: nel settore finanziario viene richiesta la sicurezza delle informazione per le transazioni Edi (Electronic Data Interchange) sia tra le varie banche sia all’interno di una stessa banca. In questo caso l’impiego di tecniche di crittografia ad alte prestazioni è di fondamentale importanza per garantire la sicurezza del commercio elettronico. Tali applicazioni devono poter essere utilizzate in tutto il mondo e tutte le apparecchiature devono soddisfare a standard di sicurezza particolarmente severi.

Per le applicazioni di sicurezza delle informazioni e safety critical si sono costituiti numerosi enti il cui compito è definire le specifiche e controllare le applicazioni e il loro sviluppo. I sistemi, dal canto loro, devono risultare perfettamente compatibili con gli standard stabiliti in modo da garantire la conformità ai livelli di protezione o agli standard di sicurezza prima della loro adozione in ambito industriale.

La separazione del progetto
La presenza di più dispositivi solitamente garantisce la separazione della logica e una reale indipendenza delle funzioni ridondanti. Di conseguenza, un guasto in un dispositivo non può influire sulla restante parte del progetto. Gli obiettivi di un progettista sono sempre stati focalizzati sulla riduzione delle dimensioni del Pcb, della dissipazione di potenza e del numero dei componenti richiesti per lo sviluppo della particolare applicazione considerata. Una possibile soluzione è il ricorso a una soluzione di tipo Asic, che permette di realizzare circuiti protetti sul medesimo chip. Lo svantaggio è rappresentato dal fatto che i costi e i tempi di sviluppo legati alla realizzazione di una soluzione di questo tipo risultano sempre più incompatibili con le esigenze del mercato. Gli Fpga, dal canto loro, ce non sono mai stati presi in considerazione per applicazioni di questo tipo a causa dell’incapacità dei tool di progetto di gestire progetti alla stregua di componenti separati e di garantire la separazione tra la logica e i percorsi di sbroglio (routing) all’interno del dispositivo a livello hardware. Con l’introduzione della nuova linea di Fpga Cyclone III LS Altera ha voluto fornire una risposta concreta alla soluzione di questi problemi. La società ha operato in sinergia con gli enti di certificazione in modo da superare le problematiche “storiche” legate alla separazione tra logica e routing e alla complessità dell’analisi dei dispositivi Fpga. Le componenti hardware e software sono state sviluppate fin dall’inizio con l’obbiettivo di semplificare e isolare i flussi di dati all’interno dell’Fpga, in modo da semplificare l’analisi del dispositivo finalizzata alla verifica di conformità rispetto ai vari standard di sicurezza. In questo modo è possibile realizzare progetti logici insensibili ai guasti all’interno della struttura di un Fpga.

Tool flow per la separazione del progetto
Il flusso per la separazione del progetto supportato dal software di progettazione Quartus II consente ai progettisti di preservare la separazione di funzioni critiche all’interno di un singolo Fpga. Una separazione di questo tipo è possibile grazie alla funzionalità LogicLock di Altera che permette ai progettisti di assegnare partizioni del progetto a una specifica sezione del dispositivo. Quando è abilitato il flusso per la separazione del progetto, ciascuna partizione protetta può contare automaticamente di una specie di “recinto”, o regione “vietata” a essa associata. In questo modo, non è possibile posizionare alcuna logica nelle immediate vicinanze, in modo da incrementare il livello di insensibilità ai guasti. Per garantire un’effettiva separazione del progetto, anche lo sbroglio deve essere separato. Di conseguenza, tutti i percorsi di sbroglio sono limitati all’area LogicLock della partizione del progetto. Ciò significa che nella regione “vietata” non vi sono circuiti logici e percorsi di sbroglio, così da garantire l’isolamento fisico da qualsiasi altra funzione nel dispositivo. A questo punto il progetto è del tutto simile a uno che prevede l’impiego di due dispositivi fisici per creare la separazione. L’architettura della struttura degli Fpga della serie Cyclone III LS è stata espressamente sviluppata per garantire che la separazione riesca a preservare l’insensibilità ai guasti minimizzando l’area occupata dalla regione “vietata”, così da permettere ai progettisti di sfruttare oltre l’80% delle risorse disponibili per lo sviluppo del loro design. Il flusso di progettazione a elevata sicurezza (high-assurance) utilizza il noto concetto di compilazione incrementale del software di progettazione Quartus. Rispetto al flusso standard, un flusso di progetto a elevata sicurezza prevede l’aggiunta di queste cinque fasi a livello di floorplanning.

1 - Creazione/modifica delle assegnazioni della partizione di un progetto - Il primo passo è la creazione delle assegnazioni della partizione logica per ciascuna regione protetta utilizzando il floorplanning e la compilazione incrementale. Ogni regione protetta deve essere assegnata a un’unica partizione. Per tale motivo la gerarchia di progetto deve essere organizzata nelle fasi iniziali del processo di sviluppo in modo da garantire un layout in grado di soddisfare il partizionamento del progetto complessivo

2 - Pianificazione e creazione del floorplan iniziale - La pianificazione della posizione delle regioni di partizione inizia ad alto livello per evitare limitazioni in termini in sbroglio che potrebbero influenzare negativamente le prestazioni del progetto. Una pianificazione nelle fasi iniziali aiuta a prevenire e ad limitare l’impatto di eventuali “colli di bottiglia” in termini di prestazioni e di routing. Il progettista crea una regione LogicLock per ciascuna partizione protetta presente nel progetto e le definisce come “riservate” in modo da impedire che la logica presente in altre regioni possa entrare nella partizione. E’ possibile far girare una valutazione iniziale relativa alle risorse, alle temporizzazioni e al posizionamento per assicurare la validità del progetto. Questo floorplan “grossolano” può essere modificato in modo da adeguarsi ai requisiti logici. Le regioni LockedLock possono essere riposizionate in modo da coincidere con il layout del floorplan di livello superiore, ma il progettista deve assicurarsi dell’esistenza di percorsi di sbroglio tra le regioni protette. Queste regioni non possono condividere pin di clock e PLL dei banchi di I/O.

3 - Assegnazione degli attributi di protezione - A ciascuna regione LogicLock è assegnato un attributo di protezione. Un semplice menù a cascata viene utilizzato per assegnare l’attributo di protezione alla regione LogicLock. Tali regioni sono utilizzate per quelle porzioni del progetto che richiedono l’indipendenza e la separazione del progetto.

4 - Assegnazione dei segnali e delle regioni di routine - Per assicurare l’indipendenza di ciascun percorso di segnale è necessaria la creazione di una regione di routing protetta per ogni segnale che entra e che esce da una partizione del progetto. Il piazzamento di una regione di routing può quindi essere assegnata a una o più partizioni. Una volta stabilite le regioni di routing, è possibile effettuare le assegnazioni relative alla protezione del segnale. Un tool per il progetto a elevata sicurezza riempie automaticamente la finestra con un elenco dei segnali di ingresso e di uscita disponibili. Una volta assegnato un segnale a una particolare partizione, viene stabilito automaticamente il livello di protezione di quel segnale alle regione dove ha origine o termina il segnale stesso.

5 - Assegnazione degli I/O - L’ultima fase di questo flusso prevede l’assegnazione degli I/O. Ciascuna regione protetta con carico di uscita (fan out) verso i pin di I/O non può condividere un banco con qualsiasi altra regione protetta. In questo modo viene garantito l’isolamento e la separazione del progetto. Per semplificare lo sbroglio, il floorplanning potrebbe prevedere il posizionamento delle regioni caratterizzate da un elevato fan out verso i pin di I/O in prossimità dei banchi di I/O interessati.

Affidabilità e protezione
Esistono parecchie similitudini in termini di requisiti di progetto tra sistemi ad alta affidabilità e per la protezione delle informazioni. Nel caso entrambi i sistemi richiedano l’indipendenza e la separazione del progetto, la ridondanza è necessaria per garantire un funzionamento appropriato nel caso si verifichino guasti hardware. Solitamente l’implementazione del concetto di ridondanza comporta un aumento di dimensioni, peso, consumi e costi del sistema in quanto la ridondanza viene realizzata a livello hardware. Per ovviare a questi problemi, l’abbinamento tra la tecnologia Fpga a bassa dissipazione e un flusso di progettazione a elevata sicurezza permette di soddisfare requisiti particolarmente stringenti. Grazie alla garanzia di indipendenza e di isolamento del progetto, è possibile trasferire la ridondanza dal livello di scheda a un singolo dispositivo Fpga, sfruttando un approccio alla progettazione tipico di una soluzione SoC. Grazie all’abbinamento di caratteristiche quali bassa dissipazione, elevata densità logica e separazione del design i progettisti impegnati nello sviluppo di sistemi industriali e per crittografia ad elevata sicurezza e alta affidabilità possono minimizzare i tempi di sviluppo e i rischi legati alla pianificazione mediante l’utilizzo di logica riprogrammabile, nonché aumentare la produttività sfruttando un collaudato flusso di progetto basato sulla compilazione incrementale.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome