Microprocessori e circuiti digitali: E etti dovuti alle ... · Capitolo 1 Richiami sui...

57

Transcript of Microprocessori e circuiti digitali: E etti dovuti alle ... · Capitolo 1 Richiami sui...

Università degli Studi di Padova

Dipartimento di Ingegneria dell'Informazione

Corso di Laurea Magistrale in

Ingegneria Elettronica

Microprocessori e circuiti digitali:

Eetti dovuti alle radiazioni

e Soft Errors

Studente:

Daniele Rucatti

Docente:

prof. Andrea Candelori

Anno accademico 2011/2012

Indice

1 Richiami sui microprocessori 1

1.1 Architettura ed Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Incremento delle prestazioni: Pipelines e Cache . . . . . . . . . . . . . . . 41.3 Elementi sequenziali: Latch e Flip-Flop . . . . . . . . . . . . . . . . . . . . 8

1.3.1 Latch (tipo D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3.2 Flip-Flop (tipo D) . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.4 SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.5 Microprocessori Rad Hard . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 Eetti delle Radiazioni 15

2.1 Total Ionizing Dose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2 Raccolta di carica alla giunzione e ITC . . . . . . . . . . . . . . . . . . . . 192.3 Single Event Upset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3.1 SEL (Single Event Latchup) . . . . . . . . . . . . . . . . . . . . . . 212.3.2 SET e SEU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.3.3 SEFI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3 Tecniche Di Hardening: mitigazione e correzione degli errori 29

3.1 Mitigazione degli eetti dovuti alla Total Ionizing Dose . . . . . . . . . . . 303.2 Tecniche a livello di Transistor e Tecnologia . . . . . . . . . . . . . . . . . 323.3 Tecniche a livello elettrico e di Layout . . . . . . . . . . . . . . . . . . . . 33

3.3.1 Celle di memoria Rad Hard mediante resistori . . . . . . . . . . . . 333.3.2 Disposizione disallineata e distanziata degli elementi di memoria . . 353.3.3 Circuito di Sensing per i SET . . . . . . . . . . . . . . . . . . . . . 35

3.4 Tecniche a livello logico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.4.1 Duplicazione e Comparazione . . . . . . . . . . . . . . . . . . . . . 373.4.2 Triple Modular Redundancy (TMR) . . . . . . . . . . . . . . . . . 373.4.3 Triple Temporal Redundancy (TTR) . . . . . . . . . . . . . . . . . 403.4.4 Tecniche Miste: Ridondanza hardware e temporale . . . . . . . . . 42

3.5 Tecniche a livello di Architettura . . . . . . . . . . . . . . . . . . . . . . . 443.5.1 Parity Bit ed Error Correcting Code (ECC) . . . . . . . . . . . . . 45

3.6 Tecniche a livello di Sistema (o Chip) . . . . . . . . . . . . . . . . . . . . . 493.7 Tecniche a livello Software . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4 Conclusioni 51

Capitolo 1

Richiami sui microprocessori

Per studiare l'eetto delle radiazioni su componenti elettronici complessi come Micro-processori e microcontrollori è necessario conoscere di quali elementi sono composti e laloro architettura: la sensibilità alle radiazioni infatti non dipende solo dalla resistenza deitransistor e dal layout dei dispositivi fondamentali (SRAM, Flip Flop...) ma anche dallescelte progettuali a livello di sistema.Gli elementi che compongono un microcontrollore o un microprocessore sono molti: nonvi è di solito solo una CPU ma anche altre periferiche. Ad esempio è comune trovare neimoderni microcontrollori unità di conversione analogico-digitale (ADC), Timers, Unitàdi comunicazione operanti con i più disparati protocolli (I2C, seriale, CAN...), memorieEEPROM non volatili, eccetera.

Ogni componente andrebbe studiato singolarmente: le radiazioni possono minare al fun-zionamento di ogni periferica, si pensi ad esempio alla corruzione dei dati immagazzinati inuna EEPROM (potrebbe essere usata come memoria temporanea per i dati da trasmet-tere a terra di un satellite...). Anche componenti come gli ADC possono essere inuenzati:il loro funzionamento in genere si basa sul campionamento di una tensione in ingresso,tensione che può essere alterata a causa dell'impatto di particelle sul dispositivo.In questo scritto ci si focalizzerà sulla CPU e sugli eetti che la radiazione provoca nel-l'elettronica combinatoria e sequenziale al suo interno, in particolare l'inuenza che ha laradiazione sul Data Path (operazioni ALU, dati in memoria).

1

2 CAPITOLO 1. RICHIAMI SUI MICROPROCESSORI

1.1 Architettura ed Instruction Set

L'architettura di una generica CPU è rappresentata in gura.

I principali elementi che la compongono sono:

L'unità aritmetico-logica (ALU), che si occupa di eseguire le operazioni matema-tiche (somme, sottrazioni...) e logiche (and, or...). La radiazione può incidere sulfunzionamento dell'ALU, segnali spuri possono propagarsi nel circuito alterando ilrisultato prodotto dall'ALU. Tale risultato può essere immagazzinato quindi in unregistro e compromettere il funzionamento del processore nelle successive istruzioni.

I registri di controllo e di stato, ad esempio il Program Counter (PC) contiene l'indi-rizzo della locazione di memoria dell'istruzione successiva a quella correntemente inesecuzione, L'Instruction Register (IR) contiene l'istruzione caricata dalla memoria,lo Status Register (SR) contiene informazioni sul corrente stato della CPU e delleoperazioni dell'ALU. I dati possono essere letti dalla memoria attraverso i registriMemory Adress Register e memory Data Register. Esistono due tipi di architettureper quanto riguarda la gestione della memoria:

Architettura Von Neumann: vi è un'unica memoria contenente sia le istruzioniche i dati, in questo caso l'accesso alla memoria non può essere simultaneo peril fetch dell'istruzione ed il load/store degli operandi.

Architettura Harward: vi sono due memorie, una per le istruzioni ed una peri dati.

La memoria interna al processore è una memoria SRAM veloce, che può subire deiBit-Upset a causa della radiazione. Anche i registri, che sono composti da Flip-Floppossono subire degli Upset. La realizzazione di elementi di memoria resistenti alleradiazioni è quindi di primaria importanza per le CPU.

Registri interni al processore, contenenti i dati sui quali la ALU deve operare. Sonocostituiti da Flip-Flop.

1.1. ARCHITETTURA ED INSTRUCTION SET 3

L'unità di controllo (CU) è costituita da una macchina a stati che governa l'interoData Path, ovvero il passaggio di dati dalla memoria ai registri, l'esecuzione delleoperazioni con l'ALU, eccetera. L'unità di controllo deve operare correttamente,altrimenti l'intero funzionamento del processore viene compromesso. le operazioniche la CU esegue sono essenzialmente:

Fetch dell'istruzione: viene caricata dalla memoria l'istruzione da eseguire, l'i-struzione è caricata nell'IR. L'istruzione è codicata secondo una particolarecodice denito dall'Instruction Set del processore. Le istruzioni dipendono dal-l'architettura del processore, si possono distinguere due categorie di processoria tal proposito:

* Processori CISC (Complex Instruction Set Computer), in questo caso leistruzioni sono complesse e generalmente di lunghezza (numero bytes) va-riabile a seconda del tipo di istruzione. Istruzione complessa signicache usa singola istruzione può eettuare operazioni multiple (ad esempiocaricare dati dalla memoria ed eseguire direttamente operazioni su di essi)oppure operazioni dedicate (ad esempio la FFT hardware). Un esempio so-no le istruzioni dell'architettura X86. Per la decodica e l'esecuzione delleistruzioni CISC serve una macchina a stati più complessa o una sotto-unità di controllo per eseguire le sotto-istruzioni (più semplici) associateall'istruzione CISC (macro-istruzione). Il numero di cicli di clock richiestida una generica istruzione è quindi variabile e di solito elevato, non è pos-sibile stabilire a priori esattamente il tempo richiesto dall'esecuzione di unprogramma se non analizzandolo nel dettaglio, architettura del processorealla mano.

* Processori RISC (Reduced Instruction Set Computer), in questo caso leistruzioni sono semplici e limitate, di lunghezza ssa con dimensione deicampi variabile (tranne l'opcode che è sempre sso). I processori RISChanno un'unità di controllo più semplice rispetto ai CISC, quindi vi sonomeno probabilità di malfunzionamenti. I microcontrollori PIC ad esempioutilizzano questa architettura.

4 CAPITOLO 1. RICHIAMI SUI MICROPROCESSORI

1.2 Incremento delle prestazioni: Pipelines e Cache

I moderni processori possono adottare anche pipelines, memoria cache e core multipli peraumentare la velocità di elaborazione dei dati senza aumentare la frequenza: i modi peraumentare la velocità di un processore sono infatti due, aumentare la frequenza operativa,oppure rendere l'elaborazione dei dati più eciente cambiando l'architettura.La frequenza non può essere alzata arbitrariamente in quanto vi sono dei limiti siciimposti dal dispositivo: tempi di propagazione, consumo di potenza. Inoltre per quantoriguarda dispositivi resistenti alle radiazioni, si vedrà, la frequenza operativa risulta esseremolto bassa.Modiche all'architettura per aumentare le prestazioni possono essere:

Introduzione di Pipelines (parallelismo interno). Le pipelines sono degli elementidi memoria costituiti da ip-op (dei registri) che vengono inseriti nel data path alne di creare una sorta di parallelismo nell'elaborazione delle istruzioni. Il concettoè semplice ed è simile a quello di catena di montaggio: quello che si cerca di fare èdi sfruttare completamente l'hardware della CPU eseguendo il fetch di un'istruzionenel mentre una seconda viene decodicata ed una terza è eseguita. Per fare questobisogna rendere sincroni i vari step che descrivono le operazioni fondamentali (fetch,decode, execute, memory, write back), e lo si fa usando le pipelines. Si veda laseguente immagine

Nel caso senza pipeline viene eseguito il fetch di un'istruzione, la decodica, l'o-perazione con l'ALU e quindi lo store del dato o il write back in un registro delprocessore. Prima che venga eseguito il fetch di una seconda istruzione si deve at-tendere che l'esecuzione della prima sia terminato, questo lascia parte dell'hardwaredel processore inutilizzato: mentre viene eseguito il calcolo con l'ALU ad esempio ilcircuito di decodica non sta facendo niente. Ogni istruzione richiede alcuni cicli diclock. Utilizzando le pipeline invece è possibile ottimizzare l'uso del processore, sicerca di sfruttare ogni ciclo di clock.

1.2. INCREMENTO DELLE PRESTAZIONI: PIPELINES E CACHE 5

Con l'uso delle pipeline possono sorgere dei problemi gestionali quando ad esempioun'istruzione deve eseguire delle operazioni sul risultato di una precedente operazio-ne: in questo caso si deve attendere che l'istruzione nisca, il processore deve esseremesso in stallo. Questo rende inecace l'uso della pipeline per l'istruzione corrente(si pensi ad esempio ad un ciclo for).

Per risolvere il problema si può pensare di passare i dati direttamente alla pipelineprecedente (data fowarding), come illustrato nella seguente gura. Questo rendel'unità di decodica e controllo più complessa.

Il periodo di clock deve essere compatibile con la presenza delle pipeline, ovverodeve essere sucientemente lungo anché i segnali possano propagarsi nella logicacombinatoria ed essere correttamente campionati dai ip-op delle pipeline. I segnalidevono essere stabili per un tempo tsetup prima del fronte di clock e per un tempothold dopo il fronte di clock anché i dati possano essere correttamente memorizzatinel registro. Il tempo che passa dal fronte di clock all'eettiva comparsa dei dati inuscita al registro, ovvero il tempo di propagazione del registro, è indicato con tclk2q.Complessivamente si parla di tempo morto considerando la somma tsetup + tclk2q.Ridurre i tempi morti permette clock più veloci.

6 CAPITOLO 1. RICHIAMI SUI MICROPROCESSORI

Utilizzo di Core multipli, ovvero più unità di elaborazione: le istruzioni vengonosuddivise tra le due CPU. Per rendere ecienti sistemi di questo tipo è necessariaanche un'ottimizzazione a livello software, ovvero bisogna pensare in multithread.

Gerarchia nella memoria: memoria Cache. Di solito i processori non accedono di-rettamente alla memoria principale, ma ad una memoria interna veloce (SRAM)chiamata Cache (questo viene fatto per ridurre la latenza nel fetch delle istruzionie nel load dei dati). Possono esistere più livelli di cache, anche condivisa tra piùcore. La cache può anche essere divisa tra cache istruzioni e cache dati. Quandoil processore deve accedere ad un indirizzo della memoria principale (per caricareun'istruzione o eettuare operazioni sui dati) viene prima vericato se il dato/istru-zione corrispondente all'indirizzo cercato è già immagazzinato nella memoria cache,in tal caso il caricamento nei registri interni del processore è rapidissimo (HIT). Incaso contrario l'unità di controllo mette in stallo la CPU ed il dato/istruzione vienecaricato dalla memoria principale (più lenta) alla memoria cache ed il processorepuò proseguire nelle operazioni (MISS). Se vi sono più livelli di cache, in caso diMISS viene cercato il dato nel livello di cache sottostante, che a sua volta può dareluogo ad un HIT oppure un MISS, no al livello di memoria più basso. L'accesso aduna memoria che si trova ad un livello gerarchico più basso richiede tempo e quindidiversi cicli di clock.

Per rendere la cache ecace ci si basa su due principi, il principio di località spazialeed il principio di località temporale:

Località spaziale signica che verranno caricati nella cache istruzioni o daticorrispondenti ad indirizzi di memoria (principale) contigui. I beneci di questascelta si vedono ad esempio quando si hanno programmi composti da cicli cheeseguono istruzioni adiacenti, oppure quando vengono letti elementi consecutividi un array.

Località temporale signica che verranno caricati in cache istruzioni o dati chesi usano frequentemente, i cicli rientrano ancora in questo caso.

1.2. INCREMENTO DELLE PRESTAZIONI: PIPELINES E CACHE 7

Le memorie cache sono costituite da parole suddivise nei seguenti campi:

Campo Tag, contiene una parte dell'indirizzo della locazione della memoriaprincipale alla quale si vuole accedere

Campo Data, contenente il dato o l'istruzione

Dall'indirizzo di memoria al quale si vuole accedere vengono generati l'indirizzodella locazione nella cache, chiamato Set (che corrisponde ai bit meno signicati-vi dell'indirizzo reale) ed il Tag (corrispondente alla parte rimanente dell'indirizzoreale). Individuata la locazione nella cache viene confronto il Tag in memoria conquello ottenuto dall'indirizzo corrente, se corrispondono si ha un HIT: il campo Da-ta contiene il dato che si sta cercando, ovvero quello che ci sarebbe nella memoriaprincipale all'indirizzo cercato. Tale dato può essere direttamente caricato nei re-gistri del processore. Considerando che vi sono molti indirizzi che hanno lo stessoSet è possibile il vericarsi di MISS, che si hanno appunto quando, identicata lacella cache con il Set, i Tag generato e memorizzato non corrispondono. In questocaso sono necessari diversi cicli di clock per salvare il dato attualmente in cachenel relativo indirizzo della memoria principale e consecutivamente caricare il datodel nuovo indirizzo in cache (entrambi gli indirizzi avevano lo stesso Set). Il fun-zionamento descritto corrisponde alla cosiddetta cache ad indirizzamento diretto,tuttavia per ridurre il numero di MISS si può utilizzare una cache set-associativaa due o più vie: in questo caso ad ogni Set corrispondono due (o più) parole dicache e quindi si hanno due Tag possibili, ognuno con il relativo Data. I campiTag vengono confrontati simultaneamente con il Tag generato dall'indirizzo (vengo-no usati due comparatori) ed in caso di HIT viene prelevato il dato corrispondente(tramite multiplexer). Risulta evidente che in questo caso il numero di MISS chesi possono vericare è più basso perché per ogni Set si hanno a disposizione due(o più) possibilità che la cache contenga proprio il dato corrispondente all'indirizzocercato. Nella successiva gura vengono illustrate le cache ad indirizzamento direttoed associativa a 2 vie.

8 CAPITOLO 1. RICHIAMI SUI MICROPROCESSORI

Il funzionamento di una cache associativa a 2 vie è rappresentata nella seguentegura. Per aumentare il numero di HIT si può anche aumentare la dimensionedel blocco dati della cache, ovvero anziché avere un solo campo Data per ogni Tagsi possono avere più campi Data corrispondenti a parole adiacenti nella memoriaprincipale (si sfrutta il concetto di località spaziale). In questo caso dall'indirizzoreale vengono generati una valore per identicare il campo Data corretto (ByteOset) e come nel caso precedente un Set ed un Tag.

La cache deve essere resistente agli errori (Single Event Upset), potrebbe vericarsiad esempio il caso in cui il dato in cache venga corrotto a causa delle radiazioni,ovvero il dato dierisce da quello memorizzato nella memoria secondaria (o in unlivello di cache sottostante). Se il dato errato viene utilizzato dal processore po-trebbe vericarsi un crash di sistema, magari non immediatamente ma anche dopomolte istruzioni. Anzi, il dato potrebbe essere trasferito alla memoria principalesovrascrivendo il precedente dato corretto.

1.3 Elementi sequenziali: Latch e Flip-Flop

Per comprendere gli errori che la radiazione può provocare in una CPU si devono consi-derare i circuiti sequenziali (elementi di memoria) in essa presenti. Come si vedrà infattisono proprio latch e ip-op, elementi costitutivi di registri, pipelines, macchine a stati,che costituiscono gli elementi sensibili in una CPU: essi sono in grado di campionare unsegnale in ingresso e memorizzare il relativo valore logico quindi come si vedrà le causeprincipali di errore sono 2, il campionamento (e quindi la memorizzazione) di un segnale diingresso alterato dalla radiazione (e quindi errato), oppure l'alterazione diretta del valorememorizzato (upset) analogamente a quanto può avvenire nelle celle SRAM.

1.3. ELEMENTI SEQUENZIALI: LATCH E FLIP-FLOP 9

1.3.1 Latch (tipo D)

I latch sono dei dispositivi sincroni con un ingresso ed una uscita, la memorizzazione deldato è controllata da un segnale di clock. I latch sono sensibili ai livelli di clock, ovverorisultano trasparenti (propagazione del segnale in ingresso verso l'uscita) durante la fasealta del clock e risultano in condizione di memoria durante la fase bassa del clock (inuscita vi è il dato in memoria e sono insensibili all'ingresso). La condizione che determinail passaggio tra trasparenza e memoria è il fronte di discesa del clock: il dato deve esserestabile all'ingresso del latch anché venga correttamente memorizzato.

Una tipica realizzazione dei Latch D in tecnologia CMOS è la realizzazione cosiddetta amultiplexer. A livello di transistor viene realizzata con pass transistor ed inverter CMOS,come illustrato nella seguente gura. I due inverter CMOS chiusi a feedback tramite ilpass transistor si occupano della memorizzazione dell'informazione: quando il feedback èchiuso e l'ingresso è scollegato (pass transistor all'ingresso OFF) il circuito è in condizionidi memoria. Per memorizzare un nuovo valore viene aperto il feedback spegnendo ilrelativo pass transistor e contemporaneamente viene attivato il pass transistor all'ingresso:il dato passa in uscita e fa commutare le porte NOT del feedback (trasparenza). Per agirecontemporaneamente sui pass transistor sono necessari un clock diretto ed uno negato,infatti i due pass transistor non devono mai trovarsi entrambi accesi o entrambi spenti.Quando il feedback viene ripristinato gli inverter sono di nuovo chiusi in loop con il nuovodato in memoria.

10 CAPITOLO 1. RICHIAMI SUI MICROPROCESSORI

Se a causa della radiazione uno dei due inverter in loop commutasse imponendo il valorelogico opposto si avrebbe un Bit Upset ed il valore in memoria risulterebbe errato. Ilprincipio non è diverso da quello studiato per le SRAM.

1.3.2 Flip-Flop (tipo D)

I Flip-Flop sono dispositivi sincroni simili ai Latch, ma rispetto a questi ultimi eliminanoil problema della trasparenza (ad il problema del Race) sul livello alto del clock, ovverosono sensibili solo alla transizione (fronte, edge) del clock da basso ad alto o da alto a bassoa seconda che il FF sia di tipo a logica diretta o logica inversa. Sia quando il clock èa livello alto che quando è a livello basso il FF si trova in condizioni di memorizzazione.

Il Flip-Flop D può essere realizzato con due Latch D in congurazione Master-Slave, perquesto motivo si parla generalmente di MSFF (Master Slave Flip Flop). I due Latchvengono collegati in cascata, ovvero l'uscita del primo costituisce l'ingresso per il secondo,l'ingresso del primo costituisce l'ingresso del FF, mentre l'uscita del secondo costituiscel'uscita del FF. Internamente viene portato il clock diretto al primo ed il clock negato alsecondo: quando il clock è alto il primo latch è trasparente ed il dato in ingresso vieneportato al nodo intermedio (X), quando il clock passa al livello basso il secondo latchdiventa trasparente mentre il primo va in condizione di memoria. Il valore logico al nodoX è quindi sso e corrisponde al valore memorizzato nel primo Latch. Il valore di Xcorrisponde anche al valore in uscita perché il secondo Latch è trasparente. Il risultato èun campionamento sincrono ai fronti di clock, infatti per livelli alti di clock in uscita si hail valore memorizzato nel secondo Latch (insensibilità all'ingresso), mentre per livelli bassisi ha in uscita il valore memorizzato nel primo Latch (ancora insensibilità all'ingresso).Di seguito è riportato uno schema che illustra quanto detto.

1.3. ELEMENTI SEQUENZIALI: LATCH E FLIP-FLOP 11

Una possibile realizzazione in logica CMOS è di seguito riportata: non è altro che l'unionedei due Latch costruiti mediante anello di feedback e pass-transistor. I tempi di setuped hold per il segnale di ingresso al FF sono corrispondenti a quelli del primo Latch: èesso infatti che esegue il campionamento! Il secondo Latch si occupa del mantenimentodel dato in uscita ed è responsabile del tempo di propagazione, ovvero dell'intervallo ditempo che intercorre tra il campionamento e la presenza del livello logico memorizzatosull'uscita del Flip Flop.

Entrambi i Latch sono sensibili alle radiazioni, ovvero entrambi possono subire un BitUpset mentre si trovano in condizioni di memorizzazione oppure possono campionare unsegnale alterato (Transient). In quest'ultimo caso è suciente che il segnale alterato arrivial Flip Flop in prossimità della commutazione (fronte di clock) perché venga campionato:verrebbe memorizzato un valore alterato. Se il segnale non è stabile entro il tempo tsetupe thold infatti non è garantita la corretta memorizzazione.

12 CAPITOLO 1. RICHIAMI SUI MICROPROCESSORI

1.4 SRAM

La memoria SRAM non è altro che una matrice di celle di memoria, le quali sono sin-golarmente costituite da un Latch asincrono di tipo SR. Un decoder (decoder di riga) sioccupa di selezionare una riga della matrice (Word Line) a seconda dell'indirizzo di me-moria dato, i bit corrispondenti all'intera riga possono essere scritti o letti (Bit Line). Lememorie SRAM possono essere anche più complesse, ad esempio possono prevedere letturae scrittura attraverso linee separate, come ad esempio i Register Files nei microprocessori,oppure sulla stessa linea (congurazione a bus). Nei due casi ovviamente dieriscono icircuiti che si occupano della lettura e scrittura della memoria, ma il decoder di riga èsempre presente. Di seguito è riportato lo schema di una singola cella di memoria.

La cella di memoria è sensibile alle radiazioni: come nel caso dei Latch e dei Flip Floppuò essere soggetta a Bit Upset. Quando si considerano intere memorie si parla di MBU(Multiple Bit Upset) in quanto la radiazione può alterare più bit contemporaneamente.Di seguito è riportato il circuito completo di un Register File avente 2 righe da 2 bitciascuna (in totale 4 bit di memoria): si notino i due decoder di riga, uno che abilitala scrittura ed uno che abilita la lettura della riga. In questo modo Il Register File puòessere letto e scritto contemporaneamente ed in modo asincrono.

1.5 Microprocessori Rad Hard

I microprocessori ed i microcontrollori per uso commerciale dieriscono dai microproces-sori per usi spaziali, resistenti alle radiazioni (cosiddetti componenti Rad Hard): innan-

1.5. MICROPROCESSORI RAD HARD 13

zitutto i processori per uso commerciale sono disponibili in un ampio range di frequenzeoperative, che spaziano dai 100MHz ai 3GHz, mentre i processori Rad Hard sono note-volmente più indietro con frequenze che non superano i 500MHz. Il motivo di questo è daricercarsi nelle misure adottate per rendere il processore resistente alle radiazioni: scopodi questo scritto sarà esaminare quali sono le cause degli errori nei microprocessori e lemodiche introdotte per rendere il dispositivo resistente.Si vedrà che per aumentare la resistenza alle radiazioni sarà necessario aumentare le di-mensioni dei transistor, usare transistor a canale lungo, introdurre capacità e resistenze.Nel complesso si causa un aumento dei tempi di propagazione nel circuito, quindi è ne-cessario un periodo di clock più lungo per garantire una corretta memorizzazione dei datinegli elementi di memoria. Altre tecniche usate per la mitigazione degli errori a livello diporte logiche o di sistema comportano l'introduzione di ulteriori componenti o addirittu-ra repliche di porzioni del circuito (ridondanza): il risultato è un aumento della potenzadissipata, un aumento dell'area occupata dal circuito e quindi del costo. Spesso è trop-po costoso produrre componenti con un processo tecnologico adatto, si tende quindi adusare i processi commerciali utilizzati per la logica CMOS adottando invece tecniche dihardening a livello di layout.In denitiva i processori Rad Hard sono costosi, consumano e sono più lenti rispetto aquelli commerciali: è il prezzo da pagare per avere un sistema adabile e funzionante inun ambiente critico come ad esempio quello spaziale.

14 CAPITOLO 1. RICHIAMI SUI MICROPROCESSORI

Capitolo 2

Eetti delle Radiazioni

Si è visto che in una CPU sono molti gli elementi sensibili alle radiazioni, in particolaregli elementi di memoria, ovvero Cache, Pipeline, Registri e la stessa macchina a stati chegestisce le operazioni nella control unit: ogni cosa che contenga Latch. In questa sezio-ne verranno analizzate le cause microscopiche (fenomeni sici a livello di transistor) cheoriginano malfunzionamenti ed errori all'interno del microprocessore per poi analizzaregli eetti macroscopici visibili a livello di circuito (porte logiche) e di sistema: i malfun-zionamenti e gli errori vengono catalogati ed esaminati, inne nella prossima sezione sicercherà di riportare alcune tecniche utilizzare per aumentare la resistenza alle radiazio-ni dei circuiti e rilevare/correggere gli errori nell'elettronica digitale, in particolare nelleCPU.I principali eetti provocati dalla radiazione a livello microscopico:

Intrappolamento carica negli ossidi e formazione di canali laterali parassiti neiMOSFET, Total Ionizing Dose (TID), causata principalmente da protoni (VanAllen);

Raccolta di carica alle giunzioni PN polarizzate inversamente, ad esempio giunzionidi Drain negli NMOS (N con substrato P). La raccolta di carica avviene per de-riva e diusione, accentuata dal fenomeno del funneling. Questo eetto è causatoprincipalmente dall'impatto di ioni;

La raccolta di carica nei transistor può attivare il canale per un breve periodo,causando commutazioni spurie dei MOS, ovvero ulteriore raccolta di carica: IonTriggered Channeling (ITC).

A livello macroscopico gli eetti dovuti alla dose totale si traducono in un aumento dellacorrente di perdita dei transistor (inuisce sulle celle di memoria e sui consumi) e nei casipeggiori in un'alterazione della tensione di soglia dei transistor, nella formazione di canalilaterali tra drain e source, ovvero complessivamente nell'alterazione del funzionamentodel circuito (eetti a lungo termine).gli eetti dovuti all'impatto degli ioni (raccolta carica, ITC) sono la causa degli eetti daevento singolo, in particolare per i microprocessori sono rilevanti:

SET (Single Event Transient), ovvero un segnale di tensione spurio che si propaganel circuito (nella logica combinatoria) alterando temporaneamente il funzionamen-to del circuito. Quando un SET raggiunge un elemento di memoria può esserecampionato causando la memorizzazione di informazioni errate nella CPU;

15

16 CAPITOLO 2. EFFETTI DELLE RADIAZIONI

SEU (Single Event Upset), ovvero la modica (Bit Flip) del dato immagazzinato inun elemento di memoria (esempio SRAM, Latch, FF...);

SEL (Single Event Latchup), si verica nella logica CMOS ed è un evento potenzial-mente distruttivo. Il danneggiamento del componente può essere evitato utilizzandocircuiti limitatori di corrente sull'alimentazione e circuiti di sensing per identicarei picchi di corrente causati dal SEL.

Per quanto riguarda i microprocessori si focalizzerà l'attenzione sui SET e sui SEU (icosiddetti Soft Errors) in quanto sono i più frequenti e problematici. Vi è anche un altroSEE che va considerato:

SEFI (Single Event Functional interrupt): è un evento che ha rilevanza in sistemicomplessi come FPGA e appunto Microprocessori. Si tratta di un malfunzionamen-to complessivo del sistema, un crash delle funzioni del microprocessore risolvibilesoltanto con un reset.

2.1 Total Ionizing Dose

Una particella carica che colpisce l'ossido genera coppie elettrone-lacuna al suo interno.Gli elettroni hanno un'elevata mobilità nell'ossido e riescono a migrare verso il Gaterapidamente, le lacune invece si spostano per hopping verso il substrato. Le lacune possonoaccumularsi nell'ossido (carica positiva intrappolata) oppure all'interfaccia: questo agiscesulla tensione di soglia del transistor, in particolare la caratteristica ID−VG del transistorsi sposta verso sinistra. Nel caso di NMOS in particolare lo spostamento della VTH puòportare ad un aumento della corrente li leakage del transistor (sottosoglia) o nel casopeggiore addirittura alla formazione di una canale persistente (transistor always on). NeiPMOS l'eetto potrebbe portare invece all'impossibilità di accendere il transistor.

L'intrappolamento di carica avviene grazie alla presenza di difetti del tipo vacanza ossi-geno nel SiO2, sempre presenti nel materiale: normalmente l'ossido di silicio è compostoda blocchi si SiO4 legati tra loro grazie alla condivisione di un Ossigeno, a causa deldifetto l'Ossigeno che fa da collegamento viene a mancare, lasciando un legame deboleformato solo dalla condivisione di due elettroni da parte degli atomi di silicio. Quandouna particella colpisce il materiale può provocare la ionizzazione di uno di questi elettronigenerando una lacuna intrappolata, come illustrato nella seguente gura.

2.1. TOTAL IONIZING DOSE 17

Gli eetti dovuti alla dose totale sono eetti a lungo termine, ovvero gli eetti non sivedono immediatamente, la carica nell'ossido si accumula con il tempo deteriorando gra-dualmente le prestazioni del dispositivo. Si pensi all'NMOS: man mano che la tensionedi soglia diminuisce, la corrente di perdita aumenta sempre di più no al limite in cuiil transistor risulta acceso anche per tensioni di gate prossime allo zero. Le correnti diperdita fanno si che il consumo di potenza del circuito aumenti, questo può essere unproblema se la dissipazione di potenza esce dai limiti prestabiliti.Si ricorda la formula della potenza nei circuiti CMOS:

P = Dstatic + Pdinamic = VDD · Ileakage + α · C · f · V 2DD

Dove Ileakage è la corrente di perdita, f è la frequenza del clock, C la capacità complessivache viene caricata/scaricata ad ogni commutazione ed α è il fattore di attività del circuito.Per quanto riguarda le memorie, un'elevata corrente di leakage può interferire con ilcorretto funzionamento delle stesse, in particolare se si tratta di memorie dinamiche. Laseguente gura mostra l'eetto sulla corrente di perdita di una SRAM.

18 CAPITOLO 2. EFFETTI DELLE RADIAZIONI

Il problema della carica nell'ossido nei moderni microprocessori non è tanto rilevanteper quanto riguarda l'ossido di Gate, che è sottile (la carica scappa per eetto tunnel),piuttosto è di rilievo per quanto riguarda gli ossidi di isolamento, che sono spessi e possonoaccumulare tanta carica. La carica accumulata negli ossidi di passivazione da originea transistor laterali parassiti, ovvero può portare alla formazione di canali laterali tradrain e source negli NMOS (sono aetti da questo problema solo gli NMOS in quantola carica intrappolata è sempre positiva). Il canale può formarsi anche tra source/drained una N-well di un transistor adiacente (PMOS). L'incremento della corrente di perditae l'eventuale fallimento del dispositivo dipende principalmente da questi fenomeni. Permitigare gli eetti del TID si deve trovare il modo di bloccare la formazione dei canaliparassiti.

2.2. RACCOLTA DI CARICA ALLA GIUNZIONE E ITC 19

2.2 Raccolta di carica alla giunzione e ITC

L'impatto di uno ione su un componente elettronico (diodo, transistor) causa la genera-zione di coppie elettrone-lacuna in prossimità delle giunzioni. Se vi sono giunzioni PNpolarizzate inversamente, ad esempio Substrato-Drain nei MOS in condizione OFF, la ca-rica generata lungo la traccia dello ione può essere raccolta dal campo elettrico presente.La raccolta di carica avviene in 3 modi:

1. Raccolta di carica per deriva, in prossimità della giunzione, dove è presente un fortecampo elettrico. In un NMOS gli elettroni vengono raccolti al Drain, le lacune dalBulk (che è connesso al Source) e si ha una corrente IDS > 0;

2. Raccolta di carica a causa del Funneling: la distribuzione della carica generata al-l'interno del semiconduttore segue l'andamento della LET (Linear Energy Transfer)dello ione incidente (il massimo si ha massimo poco prima del punto di arresto delloione, detto picco di Bragg). Questa distribuzione di carica altera lo stesso campoelettrico alla giunzione, il quale si sposta in profondità ed incrementa la raccoltadella carica (per deriva). Grazie al funneling si raccoglie buona parte della caricagenerata dallo ione;

3. Raccolta di carica per diusione, nelle regioni in prossimità al campo elettrico: iportatori si muovono per diusione e possono entrare nella regione dove vi è il campoelettrico e quindi essere raccolti.

La carica generata dallo ione (corrispondente alla massima carica che può essere raccolta)è proporzionale alla LET dello ione ed alla lunghezza della sua traccia (ovvero dipendedal tipo e dall'energia dello ione)

Q = Ltrack ·ρ · LETEehp

· q

dove Ltrack è la lunghezza della traccia, Eehp = 3.6eV (per il silicio) è l'energia richiestaper generare una coppia elettrone-lacuna, ρ è la densità del materiale (silicio) e q è lacarica dell'elettrone. Approssimativamente la carica generata è pari a 10fC per ognimicron di lunghezza della traccia e per ogni MeV ·cm2

mgdi LET. Non tutta la carica generata

viene raccolta: la quantità di carica raccolta dipende da quanto la traccia dello ione passavicina ad un nodo sensibile del dispositivo (giunzione PN contro-polarizzata).La raccolta della carica si traduce in impulsi di corrente: la carica raccolta carica lacapacità parassita presente al nodo del circuito oppure si scarica a massa attraverso altritransistor. Se la carica non riesce a scaricarsi velocemente a massa ma permane perun certo periodo nelle capacità parassite si hanno delle variazioni di tensione sul nodo diuscita. Sono queste variazioni di tensione che possono alterare il valore logico di una portae causare gli eetti da evento singolo di tipo SET e SEU. Nella seguente gura vengonoschematizzati gli eetti descritti relativi al funneling ed al picco di corrente generato.

20 CAPITOLO 2. EFFETTI DELLE RADIAZIONI

I punti sensibili del circuito sono quindi i transistor spenti, nella logica CMOS tutti i nodidi uscita delle porte logiche sono sensibili. Nei transistor a canale corto entra in giocoun altro fenomeno che incrementa ulteriormente la raccolta della carica e causa variazionisulla tensione del nodo: lo Ion Triggered Channeling. Le alterazioni del campo elettri-co nel transistor colpito dallo ione causano una conseguente alterazione della barriera dipotenziale nel canale del transistor, se tale barriera viene meno si ha la formazione mo-mentanea di un canale tra drain e source. Il transistor risulta acceso e si ha ulterioreraccolta di carica: il surplus di carica proviene dal source! Il fenomeno può durare de-cine di picosecondi ed è dipendente dall'inclinazione della traccia dello ione (sensibilitàmaggiore spingendosi dal Drain al centro del canale).

Di seguito viene riportato un esempio su un inverter CMOS con PMOS spento: uno ioneche colpisce il PMOS e causa raccolta di carica può essere modellato come un generatoredi corrente impulsiva in parallelo al PMOS (lacune verso il Drain ed elettroni verso ilSource/Bulk):

Ip(t) = I0 · (e−tτα − e−

tτβ )

dove I0 è circa il massimo dell'impulso di corrente, τα e τβ sono costanti di tempo chemodellano la raccolta di carica da parte della giunzione e la formazione della traccia delloione.Se l'NMOS (che è acceso) non riesce ad asportare la corrente velocemente (resistenzaelevata) allora essa caricherà la capacità parassita del nodo di uscita causando un impulsotransiente di tensione: l'uscita dell'inverter, che dovrebbe essere a livello logico basso, siporta momentaneamente a livello logico alto.Di seguito si riporta anche il caso in cui è l'NMOS ad essere spento: in questo caso lacapacità viene scaricata e si ha una commutazione momentanea 1→ 0 dell'uscita.

2.3. SINGLE EVENT UPSET 21

Se i transistor sono di piccole dimensioni il fenomeno è rilevante: le capacità parassite sonopiccole e si caricano subito, ovvero la carica raccolta dallo ione è molto più grande dellacarica normalmente immagazzinata nel nodo, di conseguenza le alterazioni della tensionedi uscita sono sucientemente lunghe da alterare il funzionamento del circuito (delle portelogiche in cascata a quella colpita). Transistor piccoli hanno anche una resistenza versomassa elevata e quindi il nodo viene scaricato a massa lentamente...Si può prendere come valore della capacità critica:

Qcr = Cparass · VCC

che rappresenta la carica immagazzinata nel nodo di uscita (di capacità parassita Cparass)in condizioni di livello in uscita alto (tensione alimentazione VCC). Di conseguenza sipossono fare considerazioni sulla LET di soglia LETTH che causa l'eetto:

LETTH 'Qcr · Eehpρ · q · d

Dove d è lo spessore sensibile del dispositivo (pari allo spessore del MOS).

2.3 Single Event Upset

2.3.1 SEL (Single Event Latchup)

Questo eetto da evento singolo è causato dall'impatto di ioni nei circuiti CMOS. L'eettoè di tipo distruttivo, il dispositivo viene danneggiato per eetti termici dovuti alle elevatecorrenti che attraversano i BJT parassiti al suo interno: per l'esattezza i BJT parassitirisultano essere collegati tra loro in modo tale da formare un diodo SCR parassita che èimpossibile spegnere una volta attivato, alimentazione e massa vengono cortocircuitate.L'attivazione avviene grazie alla carica generata dall'impatto di uno ione: la carica vieneraccolta causando un picco di corrente che può accendere l'elemento parassita.

22 CAPITOLO 2. EFFETTI DELLE RADIAZIONI

In realtà il SEL può essere considerato non distruttivo in quanto è suciente un limitatoredi corrente a protezione del circuito: limitando la corrente si impediscono gli eetti termiciche porterebbero alla distruzione del dispositivo. Aggiungendo un circuito sensore dipicchi di corrente sulla linea di alimentazione è possibile rilevare il malfunzionamento edoperare un reset disinserendo e reinserendo l'alimentazione (così da spegnere l'SCR).Per rendere i componenti più resistenti al SEL bisogna ridurre il guadagno β dei BJTparassiti, un modo per farlo è danneggiare il substrato dei MOS con un trattamento aneutroni. Ridurre le resistenze parassite interne al transistor (substrato e well) o lavorarecon basse tensioni di alimentazione può far si che l'SCR non riesca ad accendersi.Un'alternativa a livello di processo di fabbricazione è invece quella di realizzare i compo-nenti mediante processo SOI (Silicon On Insulator) che di fatto elimina il problema delSEL eliminando il substrato (e quindi anche i BJT parassiti). La tecnologia SOI ha peròcontroindicazioni per quanto riguarda gli eetti da Total Dose: canali parassiti per viadell'ossido.Non verrà più arontato il discorso del SEL in quanto la discussione sarà focalizzata suiSoft Errors SET e SEU.

2.3.2 SET e SEU

Generalmente la raccolta di carica nei nodi sensibili è rapidissima, nell'ordine dei picose-condi, tuttavia nelle tecnologie nanometriche l'asporto della carica è lento (resistenze) edi transienti di tensione possono durare dalle centinaia di picosocondi ad alcuni nanose-condi. Per Microprocessori che lavorano a frequenze nell'ordine del GHz alcuni transientipotrebbero durare alcuni cicli di clock: c'è tutto il tempo perché i livelli alterati di tensio-ne si propaghino nel circuito combinatorio alterando il risultato della rete combinatoria,in questo caso si parla di SET.

2.3. SINGLE EVENT UPSET 23

Il SET potrebbe dissiparsi senza causare danni, questo può avvenire in due modi:

Per mascheramento logico, ovvero il transiente si ferma ad una determinata portalogica se quest'ultima non subisce variazioni della sua uscita per via di una combi-nazione di ingressi favorevole secondo la tabella di verità. Quanto detto è chiaritomeglio con un esempio: si osservi la seconda porta NOR, avendo già un ingresso a1 sia che l'altro ingresso sia a 1 per via di un transiente o a 0 l'uscita, secondo latabella di verità, rimane comunque a 0. Questa coincidenza ha soocato il SET. Lecircostanze, si capisce, sono abbastanza casuali.

Per mascheramento elettrico, ovvero grazie agli elevati margini di rumore delleporte CMOS il transiente potrebbe propagarsi per alcune porte attenuandosi divolta in volta no a scomparire: la natura passa basso dei circuiti digitali permettedi assorbire velocemente il SET.

Se il SET dovesse raggiungere un elemento di memoria, ad esempio un Flip Flop, e dovessemantenersi stabile al suo ingresso proprio durante un fronte attivo del clock (compatibil-mente con i tempi di setup ed hold del FF), verrebbe campionato un dato errato. Siavrebbe cioè un Bit Upset (SEU) nel Flip Flop causato da un SET. Può anche accadere,

24 CAPITOLO 2. EFFETTI DELLE RADIAZIONI

se la porta logica ha un fan-out maggiore di 1, ovvero se alla sua uscita sono connessealtre porte logiche o FF, che un SET si propaghi su più linee separate e venga catturatoda più di un Flip Flop. In questo caso si parla di Multiple Bit Upset (MBU) causati daun SET.

All'aumentare della frequenza della CPU, in base a quanto detto nora, la probabili-tà di catturare un segnale alterato aumenta e quindi aumentano i possibili errori: insostanza la sezione d'urto del SEL aumenta all'aumentare della frequenza operativa.Complessivamente quindi si può dire che la sensibilità al SET (e quindi ai SEU nei FF):

Aumenta al diminuire delle dimensioni dei transistor;

Aumenta al diminuire dei tempi di propagazione tra le porte logiche;

Aumenta all'aumentare della carica raccolta per ionizzazione, ad esempio all'aumen-tare della LET;

Aumenta all'aumentare della frequenza operativa

Si possono già intuire quali siano alcuni metodi di hardening applicabili a livello di tran-

sistor...

2.3. SINGLE EVENT UPSET 25

Gli ioni potrebbero colpire anche direttamente gli elementi di memoria, FF ed SRAM,causando un SEU, ovvero un ip del bit memorizzato (0→ 1 o 1→ 0): all'interno deglielementi di memoria vi sono degli inverter chiusi in retroazione, è suciente che l'uscitadi uno di essi venga alterata a causa di un transiente di tensione perché la cella commutiil suo stato logico. Gli elementi sensibili in questo caso si ricordano essere i transistorspenti, in particolare i Drain degli NMOS spenti ed i Source dei PMOS spenti. Di seguitoè riportato un esempio di SEU in una cella SRAM che causa il ip 1→ 0 della memoriaa causa di uno ione che impatta sull'NMOS spento: il Drain dell'NMOS viene forzato azero (ITC) per un tempo sucientemente lungo a far saltare il loop nella condizione diequilibrio opposta. Un esempio praticamente identico può essere fatto nel caso di Latche Flip Flop.

Nel caso di memorie molto dense, costituite da tante piccole celle aancate, oppure nelcaso di registri e pipeline composti da FF aancati, un singolo ione potrebbe causareUpset multipli (MBU). Il caso peggiore è, e sarà più chiaro in seguito, quando i MBUavvengono sullo stesso registro, o sulla stessa riga di memoria, rendendo meno ecacii sistemi di correzione degli errori del tipo bit di parità. Le seguenti gure mostranoalcuni risultati sperimentali interessanti condotti su una SRAM: la sensibilità ai MBUdipende dal pattern di dati caricato nella memoria (in questo caso, a scacchiera, a righealternate, tutto zero). Si noti un altro particolare interessante: nel primo caso vi èun'intera riga della memoria che ha subito un upset, questo è dovuto ad un'attivazione(causa ione) del transistor che abilita la scrittura sulla riga (Word Line): i dati dell'intera

26 CAPITOLO 2. EFFETTI DELLE RADIAZIONI

riga sono stati sovrascritti con i dati al momento presenti sulle Bit Lines in ingresso allecelle (dati invalidi).

Complessivamente, sia per i SET che per i SEU, le cose peggiorano se gli ioni arrivanosul dispositivo con un certo grado di inclinazione: in questo caso la traccia dello ionepuò colpire più di un componente, ovvero componenti adiacenti. La cosa è rilevantesoprattutto per quanto riguarda i MBU su SRAM e Registri.

Si possono già intuire quali siano alcuni metodi di hardening applicabili a livello di tran-

sistor...

Si ricorda anche che per un fascio inclinato la carica raccolta aumenta in quanto aumentala LET ecacie secondo la formula del coseno:

LETeff =LET

cos(θ)

dove θ è l'angolo di inclinazione. Un fascio inclinato può alterare di molto la caricaraccolta tramite ITC.

2.3. SINGLE EVENT UPSET 27

2.3.3 SEFI

Abbiamo visto che una particella può colpire sia la logica combinatoria che quella sequen-ziale, causando SET e SEU. Si pensi all'architettura di una CPU in particolare all'insie-me Registro-ALU-Registro oppure Pipeline-ALU-Pipeline: è proprio il caso di elettronicacombinatoria racchiusa tra due blocchi sequenziali. Si capisce che sono molte le cose chepossono andare storte ad esempio:

Viene alterato il Registro contenente l'operando, di conseguenza l'ALU si trova giàad operare su un dato sbagliato;

Viene alterato il risultato a causa di un SET nella logica combinatoria ed un risultatosbagliato viene campionato nel registro di destinazione;

Viene alterato direttamente il Registro contenente il risultato dell'operazione.

Si capisce che in tutti e tre i casi un risultato errato può essere propagato se il processorenon ha modo di accorgersene: il risultato potrebbe essere importante per l'algoritmo inesecuzione nel processore! Si pensi a cosa potrebbe accadere in un satellite se tale valorefosse un parametro di controllo di un qualche attuatore oppure costituisse un'importanteinformazione da salvare in memoria o trasmettere a terra... Nel caso peggiore un sin-golo ione potrebbe innescare una vera e propria reazione a catena che porterebbe alcrash completo del microprocessore, inoltre dati senza senso potrebbero essere scritti nel-la memoria. In questi casi si parla di Single Event Functional Interrupt (SEFI) e l'unicomodo per ripristinare il funzionamento del sistema è un riavvio. Si pensi come esempioal caso in cui uno ione alteri il valore del Program Counter (PC) causando l'esecuzionedi istruzioni errate e non attese che potrebbero portare alla corruzione dei dati salvati inmemoria. Oppure si immagini che il risultato alterato in uscita dall'ALU corrisponda adun indirizzo di un'istruzione da eseguire o di un dato da caricare nei registri interni...I processori devono poter proteggersi dai SEFI, di solito a tale scopo vengono adottatesia tecniche hardware (modiche all'architettura, Error Correction Code...) che software(tecniche di programmazione ottimizzate). Un esempio comune nei Microprocessore èl'uso del Watchdog.

28 CAPITOLO 2. EFFETTI DELLE RADIAZIONI

Capitolo 3

Tecniche Di Hardening: mitigazione e

correzione degli errori

Nella precedente sezione abbiamo discusso i fenomeni microscopici che causano gli eettida Total Dose ed i Soft Errors. Per avere un Microprocessore resistente bisogna applicaredelle tecniche costruttive e di design tali da rendere il processore meno sensibile agli eettidelle radiazioni ed in grado di rilevare o addirittura correggere eventuali errori logici dovutia SET e SEU.Per quanto riguarda gli eetti da Dose Totale le tecniche presentate sono a Livello ditransistor e tecnologia, mentre per quanto riguarda la raccolta della carica per impattodi uno ione ed i relativi eetti SET e SEU le tecniche possono essere suddivise nelleseguenti categorie, disposte secondo una gerarchia o astrazione crescente:

Tecniche a livello di transistor e tecnologia, ovvero dimensioni, forma, tecnologiacostruttiva;

Tecniche a livello elettrico e di layout, ovvero design degli elementi base (SRAM,FF...), relativo layout e layout dei blocchi all'interno del processore;

Tecniche a livello logico, ovvero di porte logiche (elettronica combinatoria e sequen-ziale) e blocchi base;

Tecniche a livello di architettura della CPU (ALU, Registri, Memoria e IstructionSet);

Tecniche a livello di Sistema o di Chip;

Tecniche a livello Software (tutte le precedenti sono a livello Hardware).

Le tecniche possono essere anche catalogate in:

Tecniche che migliorano la resistenza alle radiazioni del componente;

Tecniche che permettono di rilevare un malfunzionamento (Fault);

Tecniche che permettono di rilevare ed anche correggere un eetto dovuto al mal-funzionamento (Fault Eect) prima che si trasformi in un errore (Error), ad esem-pio correggere un valore di memoria prima che possa propagarsi ed innescare unFunctional Interrupt;

29

30CAPITOLO 3. TECNICHE DI HARDENING: MITIGAZIONE E CORREZIONE DEGLI ERRORI

Tecniche che permettono di ripristinare un sistema a seguito di un Error;

Tecniche che permettono di ripristinare il funzionamento dell'intero sistema dopo larottura di un componente (Failure).

Con questa terminologia si è indicato con Fault la sovratensione provocata dagli eettimicroscopici (SET), con Fault Eect il SEU sugli elementi di memoria, con Error vieneindicato il SEFI ed inne con Failure il fallimento irrecuperabile del componente, chepuò essere visto ad esempio come l'alterazione completa della memoria a causa di un SEFIche rende impossibile il recupero delle funzionalità del sistema a meno di un reset. Si haun Failure anche quando il componente si danneggia sicamente per qualche eventodistruttivo non considerato o per logoramento subito nel tempo.

Si vedrà che i due modi di catalogare le tecniche di hardening e mitigazione degli errorisono collegati quasi con lo stesso ordine, ad esempio le tecniche a livello di transistor elayout permettono di migliorare la resistenza del componente e ridurre i Fault, le tecnichea livello di sistema permettono di ripristinare il funzionamento del sistema a seguito diun Failure, tecniche a livello logico e di architettura permettono di ridurre/correggerei Fault Eects, inne altre tecniche hardware e software permettono di agire contro gliErrors.Per ogni tecnica si possono valutare i pro ed i contro, e pensare ad eventuali miglioramenti:

I PRO costituiscono un risultato positivo in termini di resistenza alle radiazioni oidenticazione/correzione degli errori;

I CONTRO costituiscono la spesa da pagare in termini di area, dissipazione dipotenza, prestazioni e costo;

I MIGLIORAMENTI sono in genere modiche alle tecniche adottate o tecnichealternative che permettono di ottimizzare il trade-o tra i PRO ed i CONTRO.

3.1 Mitigazione degli eetti dovuti alla Total Ionizing

Dose

Abbiamo visto che gli eetti della dose totale sono quelli di aumentare la corrente diperdita attraverso la formazione ci canali parassiti laterali negli NMOS: tali canali possono

3.1. MITIGAZIONE DEGLI EFFETTI DOVUTI ALLA TOTAL IONIZING DOSE 31

connettere due regioni drogate N adiacenti, ad esempio Drain e Source oppure Drain ela N-well di un PMOS adiacente, o il Source di un NMOS adiacente. La carica positivaintrappolata negli ossidi di isolamento permette la formazione di tale canale. Per risolvereil problema vi sono due modi:

1. Per bloccare il canale che può formarsi tra dispositivi adiacenti è suciente realizzaredegli impianti P+nell'ossido di isolamento tra un transistor e l'altro: in questo modosi viene a creare una struttura a doppia giunzione NP-PN che corrisponde a duediodi in congurazione Back-to-Back. Se la carica nell'ossido causa l'inversionedel substrato sottostante (che da P diventa N) non si ha più l'elevata corrente dileakage che si aveva prima proprio grazie all'azione bloccante del diodo inversamentepolarizzato.

2. Per bloccare i canali laterali tra Drain e Source dello stesso NMOS si può utilizzareuna struttura ad anello, ovvero realizzare una giunzione di Drain interna, il canaleche la circonda lungo il perimetro formando un sottile anello ed inne una giunzionedi Source esterna ad anello (il tutto in un substrato P). La struttura chiusa, comeè evidente, elimina del tutto il problema dei canali laterali Drain/Source (di fattoessi non possono esistere). Questo tipo di transistor occupa una notevole area (è digrandi dimensioni) e presenta alcune dicoltà nella sua realizzazione, in particolarela presenza degli angoli a 45° per dare all'anello una forma più arrotondata ed evitareelevati campi che si potrebbero avere sugli spigoli in una realizzazione rettangolare.

Unendo le due tecniche si ottiene la struttura schematizzata nella seguente gura.

Abbiamo visto nella precedente sezione che un modo per eliminare i SEL (Single EventLatchup) è quello di utilizzare tecnologie SOI, in questo caso però gli eetti provocatidal TID sono più rilevanti: si può formare il cosiddetto canale parallelo di backside neltransistor per via del fatto che il Bulk risulta essere ottante (non vincolato a 0V). Per

32CAPITOLO 3. TECNICHE DI HARDENING: MITIGAZIONE E CORREZIONE DEGLI ERRORI

risolvere anche questo problema ed avere vantaggi sia contro il SEL che contro il TIDpuò essere usata la struttura BUSFET (Bulk Under Source) per gli NMOS: Il Bulk vienefatto passare sotto il contatto di Drain, contattato e connesso con il Source (quindi postoa 0V).

3.2 Tecniche a livello di Transistor e Tecnologia

In base a quanto visto sulla carica raccolta su un nodo dopo l'impatto dello ione si possonotrarre le seguenti conclusioni:

Per aumentare la resistenza alle radiazioni si devono fare i transistor grandi, infatti inquesto caso le capacità parassite dei nodi sono molto grandi e questo si traduce in unacapacità critica Qcr = C · VDD molto elevata. La carica raccolta a seguito dell'impattodi uno ione non è in grado di innescare transienti di tensione. Se i transistor sono grossianche la loro resistenza in condizioni di accensione ron sarà bassa, di conseguenza riesconoa scaricare a massa più velocemente i transienti di corrente, impedendo ancora la creazionetransienti di tensione duraturi. Aumentare le dimensioni dei transistor è un costo chesi paga in Area (quindi costo) e Dissipazione di potenza per via del carico capacitivoaumentato. Per mantenere la dissipazione di potenza entro certi limiti è necessario ridurrela frequenza operativa.

P = Dstatic + Pdinamic = VDD · Ileakage + α · C · f · V 2DD

I nodi più sensibili (e/o importanti) di un circuito elettronico devono essere quindi oppor-tunamente dimensionati (transistor più grossi). Ad esempio si possono sovradimensionarei nodi terminali di una rete combinatoria prima dei FF.

Da qui si capisce come mai i processori Rad Hard siano così indietro rispetto a quellicommerciali.

3.3. TECNICHE A LIVELLO ELETTRICO E DI LAYOUT 33

3.3 Tecniche a livello elettrico e di Layout

3.3.1 Celle di memoria Rad Hard mediante resistori

Per impedire ai transienti di tensione di propagarsi, ovvero di alterare gli elementi dimemoria (inverter in loop) o propagarsi in una rete combinatoria ed essere campionatida un FF, si può pensare di agire sui tempi di propagazione: quello che si cerca di fare èrallentare la risposta alle commutazioni dei transistor introducendo elementi resistivi lungola linea di propagazione del segnale per far si che la costante di tempo τ = R ·Cparass siaelevata. Il tempo di propagazione del segnale è infatti proporzionale a τ e quello che èstato realizzato è una rete di ritardo RC distribuita.Con questa tecnica la durata del transiente di tensione diventa poco rilevante se confron-tata con i tempi di propagazione dei segnali, quindi un SET viene dissipato ed i SEUnelle memorie scoraggiati. Il prezzo da pagare però è quello di avere una elemento dimemoria lento (i tempi morti vengono aumentati), collo di bottiglia che implica nuova-mente la riduzione della frequenza operativa. La realizzazione degli elementi resistivi (disolito in polisilicio) aumentano il numero di maschere del processo produttivo, in quantoaumentano i layers utilizzati, questo fa aumentare il costo.La tecnica della resistenza può essere applicata sia a celle SRAM che Latch e Flip Flop:

Esempio di una cella SRAM resistente alle radiazioni realizzata con la tecnica delleresistenze. La gura a destra mostra una analisi condotta su una cella al variare delvalore delle resistenze: nel primo caso si ha una resistenza da 300kΩ e come si puòvedere è suciente ad eliminare il SEU. Nel secondo caso la resistenza è più piccola,50kΩ, e non è suciente. Il terzo graco rappresenta il caso senza resistori (cellanon RadHard).

Esempio di un Latch D resistente alle radiazioni

34CAPITOLO 3. TECNICHE DI HARDENING: MITIGAZIONE E CORREZIONE DEGLI ERRORI

Esempio di un Flip Flop resistente alle radiazioni

Una alternativa può essere quella di usare memorie Rad Hard senza resistori, progettateper essere resistenti alle radiazioni: il design di tali celle dierisce da quello noto dellaSRAM standard, vengono infatti inseriti ulteriori transistor che realizzano opportune retidi feedback in grado di ripristinare il corretto dato in memoria qualora si vericasseun SEU. Il funzionamento e la progettazione di tali celle è abbastanza complesso, glisvantaggi in questo caso sono la maggior area occupata dovuta ai tanti transistor ed illayout complesso. Esempi di tali celle sono riportati di seguito.

3.3. TECNICHE A LIVELLO ELETTRICO E DI LAYOUT 35

3.3.2 Disposizione disallineata e distanziata degli elementi di me-moria

Quando vi sono più celle di memoria o Flip Flop appartenenti alla stessa parola (es. stes-so registro) disposte una adiacente all'altra possono vericarsi con più probabilità UpsetMultipli (MBU), in particolare nel caso di ioni incidenti con un certo angolo di inclina-zione (direzione di impatto non ortogonale al componente). Un modo per disincentivareil vericarsi di MBU sullo stesso registro è quello di non collocare le celle di memoriaaancate, ad esempio è possibile incastrare i FF nel modo rappresentato in gura (lostesso colore indica l'appartenenza allo stesso registro). Se vi sono uno o al massimo duebit alterati per ogni registro è possibile ripristinare i dati corretti, a patto di utilizzaretecniche di codica con correzione d'errore (ECC, Error Correcting Code), si veda piùavanti.

La tecnica presentata è in disaccordo con il funzionamento degli strumenti CAD usatiper la progettazione dei circuiti integrati: il sistema Place And Route tende a collocaregli elementi appartenenti allo stesso registro vicini tra loro per ottimizzare la velocità, ilconsumo di potenza, rendere migliore il layout al ne di non complicare le interconnessionitra gli elementi (ovvero complicare o aggiungere metal layers). In questi casi si devonosistemare le cose manualmente.Si osservi che l'area occupata rimane inalterata in quanto gli elementi di memoria sonostati semplicemente riarrangiati, l'unico lato negativo è appunto nell'introduzione diulteriori (e più complessi) metal layers.

3.3.3 Circuito di Sensing per i SET

Questa tecnica permette di rilevare il vericarsi di un SET (transiente di tensione) gra-zie ad un opportuno circuito di sensing. La tecnica deriva è stata ispirata dai rilevatoridi corrente utilizzati per rilevare i SEL (Latchup): il sensore di corrente non è posto

36CAPITOLO 3. TECNICHE DI HARDENING: MITIGAZIONE E CORREZIONE DEGLI ERRORI

sull'alimentazione, ma viene connesso ai substrati dei transistor, infatti è li che si avver-tono i picchi di corrente quando uno ione colpisce il dispositivo. La tecnica è chiamataBulk-BICS, ovvero Bulk Built-in Current Sensor.Vi sono due tipi di BICS, ovvero due realizzazioni dierenti a seconda del tipo di substratoda proteggere, N per i PMOS e P per gli NMOS. I circuiti di sensing vengono quindicostruiti nelle P-well e nelle N-well dei transistor che intendono proteggere: i substratinon sono collegati direttamente a VCC (caso N-well) o a GND (caso P-well) ma attraversoil relativo circuito di sensing, come illustrato nelle seguenti gure.

Il circuito di sensing si comporta come un latch: quando si verica un SET, il latchviene sbilanciato ed il valore in memoria passa da 0 ad 1, durante il successivo ciclodi clock può quindi essere innescato un sistema di controllo che provvede a resettare ilLatch e noticare al processore l'accaduto: la CPU può quindi provvedere ad eseguirenuovamente l'operazione in corso evitando possibili errori, ad esempio le linee dei sensoriBICS potrebbero costituire una linea di interrupt per il processore.

Uno dei vantaggi di questo tipo di sensori è la possibilità di proteggere più di un transistorcontemporaneamente, infatti sono collegati ai substrati, che possono ospitare più di un

3.4. TECNICHE A LIVELLO LOGICO 37

transistor (si parla comunque di un numero piccolo, una piccola area coperta, altrimentila sensibilità del sensore viene meno). Il lato negativo è costituito dall'introduzione diulteriori transistor e di logiche di controllo.

3.4 Tecniche a livello logico

Tutte le tecniche a livello logico adottano una forma di ridondanza: ridondanza hardwaresignica che parti del circuito vengono replicare e fatte funzionare contemporaneamente,ridondanza temporale vuol dire che il risultato di un unico circuito viene osservato(campionato) in istanti consecutivi prima di prendere una decisione. Esistono tecnichemiste che uniscono i due principi.

3.4.1 Duplicazione e Comparazione

Questa tecnica permette di identicare un SET nella logica combinatoria ed un SEU neiFlip Flop: si sfrutta la ridondanza hardware ed un elemento comparatore (EXOR, 1 sediversi, 0 se uguali), che costituisce la chiave del circuito e deve essere quindi immuneagli errori (transistor grandi e magari anch'esso duplicato). Due blocchi di circuito per-fettamente identici vengono fatti funzionare contemporaneamente ed i risultati vengonoconfrontati per mezzo del comparatore: se sono uguali la probabilità che vi sia stato unerrore è molto bassa (dovrebbero essere stati colpiti entrambi i circuiti contemporanea-mente), se invece sono diversi allora la probabilità che si sia vericato un errore è alta.Di seguito un esempio di applicazione su logica combinatoria e sequenziale.

Il vantaggio di questa tecnica è di poter rilevare gli errori, tuttavia non è possibile saperequale sia il blocco colpito e quindi quale sia il dato corretto: non è possibile correggerel'errore. Altri svantaggi sono: aumento di area a causa di parti di circuito replicate, quindiaumento di costo ed aumento di potenza dissipata.Un miglioramento di questa tecnica che permette di correggere l'errore è la seguente.

3.4.2 Triple Modular Redundancy (TMR)

Questa tecnica sfrutta ancora la ridondanza hardware ed un comparatore di maggioranza.Con questo sistema è possibile correggere sia errori dovuti a SET nella logica combinatoriache a SEU negli elementi di memoria. Per analizzare il meccanismo si procede per gradi:

1. Consideriamo un'unica rete combinatoria collegata a 3 FF (3 repliche dello stessoFF, da qui il nome Triple Modular). Le uscite dei Flip Flop vengono connessiad un particolare comparatore avente 3 ingressi ed una uscita, il Comparatore di

38CAPITOLO 3. TECNICHE DI HARDENING: MITIGAZIONE E CORREZIONE DEGLI ERRORI

Maggioranza (Majority Voter o MAJ). Il compito del comparatore è portare inuscita il livello logico corrispondente alla maggioranza tra i livelli logici in ingresso.Se ad esempio vi è un SEU su un FF sarà uno solo il valore alterato e 2 corretti,quindi il MAJ dovrà propagare proprio quel valore. Qui è spiegato anche perché lamodularità deve essere triplice: con un numero pari di FF non si potrebbe averecertezza decisionale se esattamente metà di essi subisce un upset. In generale questatecnica è quindi applicabile a N moduli con N dispari, tuttavia una ridondanzatroppo elevata porta agli svantaggi descritti sopra.

La realizzazione mediante porte logiche illustrata nella gura è facile da ricavare, conle mappe di Carnaugh ma anche semplicemente guardando attentamente la tabelladi verità del MAJ:

A B C OUT0 0 0 00 0 1 00 1 0 00 1 1 1

1 0 0 01 0 1 1

1 1 0 1

1 1 1 1

2. Il sistema descritto presenta evidentemente due problemi:

Se avviene un SET nella logica combinatoria esso si propaga e viene catturatoda tutti e tre i FF, vanicando l'eetto del MAJ che propagherebbe il risultatosbagliato (sono la maggioranza);

I MAJ possono a sua volta subire gli eetti delle radiazioni e generare un SETche si propaga nel circuito a valle. Si potrebbe poi ricadere di nuovo nel primoproblema se il circuito a valle è protetto con la stessa tecnica TMR;

3.4. TECNICHE A LIVELLO LOGICO 39

I due problemi descritti trovano soluzione se si esegue una replica anche dei blocchicombinatori e dei MAJ: si hanno 3 blocchi combinatori, con i relativi 3 FF e 3 MAJ.Inne per comparare e scegliere tra le uscite dei tre MAJ è necessario un ulterioreMAJ.

3. Il FULL TMR è rappresentato in gura: come si può osservare non è più possibilealterare contemporaneamente tutti e tre i Flip Flop in quanto vi sono tre replicheseparate della logica combinatoria (e separate, ricordando quanto detto a livello dilayout può voler dire proprio distanti sul chip). Un SEU nel FF è facilmente correttocome nel caso precedente, inoltre questa struttura permette anche di riscrivere ilvalore corretto in memoria grazie al feedback ed al multiplexer: nel caso in esempioè suciente comparare il segnale TR1 con il segnale TRV1 e se sono diversi (EXOR)abilitare EN del multiplexer così da riscrivere il dato giusto.

Le seguenti gure mostrano che eettivamente il Full TMR è resistente anche aiSET nella logica combinatoria, che alterano un solo FF e quindi la correzione risultapossibile come appena visto, e che è resistente ai SET negli stessi Comparatori diMaggioranza. In questo ultimo caso si vede che 2 MAJ su 3 hanno l'uscita correttaquindi un quarto MAJ riesce a portare in uscita il risultato corretto. Rimane ancoraun punto debole: si tratta proprio del 4 MAJ, un SET in quest'ultimo potrebbevanicare i beneci della TMR.

40CAPITOLO 3. TECNICHE DI HARDENING: MITIGAZIONE E CORREZIONE DEGLI ERRORI

4. Il comparatore di maggioranza potrebbe essere costituito da un comparatore analo-gico anziché digitale: deve essere realizzato dimensionando opportunamente i tran-sistor e con nodi di ingresso duplicati anché sia il più possibile resistente alleradiazioni. Un comparatore di questo tipo potrebbe sostituire il quarto MAJ, ed haprestazioni migliori di un comparatore digitale in termini di resistenza alle radiazioni.

I vantaggi di questa tecnica sono evidenti, gli unici svantaggi sono l'enorme quantitàdi area occupata dovuta alla ridondanza ed ai comparatori, quindi aumento di costo epotenza dissipata. Un possibile modo per ridurre la ridondanza hardware è utilizzare laridondanza temporale.

3.4.3 Triple Temporal Redundancy (TTR)

Questa tecnica utilizza il concetto della ridondanza temporale ovvero un dato vienecampionato in istanti di tempo consecutivi e memorizzato: si ha una sola rete combinatoriacollegata a 3 Flip Flop i cui clock sono leggermente ritardati. In questo modo anche seun SET viene generato nella rete combinatoria è possibile evitare che tutti e tre i FFcampionino un dato errato. I tre FF sono poi connessi al classico MAJ per la comparazionedi maggioranza, quindi si hanno gli stessi beneci della TMR ma senza dover replicareanche la logica combinatoria. Per rendere il circuito meno sensibile alle radiazioni valgonoanche in questo caso le considerazioni sulla separazione dei FF a livello di layout, inoltreessendo sensibile ai SET anche il MAJ è opportuno che quest'ultimo sia resistente (magarianalogico). Se avviene un SET nel MAJ esso si propagherà nel circuito a valle: se ancheil circuito a valle è protetto da SET allora non vi sono problemi (ad esempio una retecombinatoria protetta da TTR), il problema c'è in caso solo sull'ultimo comparatore.

3.4. TECNICHE A LIVELLO LOGICO 41

Questa tecnica ha due svantaggi:

Vi è l'esigenza di avere dei clock sfasati, quindi ogni FF deve avere la propria reteritardante, essa non è altro che una catena di porte NOT opportunamente lunga,equivalente ad una rete RC distribuita;

La tecnica non è indicata con clock di sistema elevati, nell'ordine del GHz. Que-st'ultima aermazione è chiara se si considera la durata del SET rispetto alla duratadel periodo di clock: se il SET dura più di un periodo di clock (cosa vera normal-mente per frequenze da GHz) tutti e tre i FF cattureranno un dato errato, infattii tre campionamenti devono comunque avvenire entro il periodo di clock lasciandoinoltre adeguato margine per i tempi di propagazione della logica combinatoria avalle. In questo caso l'unica cosa che si può fare è ridurre la frequenza del clock inmodo che il SET duri meno di un periodo.

Quanto appena descritto può essere visto in termini di aumento dei tempi morti: perfar fronte ad un SET di lunga durata è necessario distanziare di molto i campionamenti,ovvero prendere un valore di d (vedi diagramma temporale) elevato. Se si considera ilblocco composto dai 3 FF, comprensivi di reti ritardanti, ed il MAJ come un unico HardHard Flip Flop si vedrà che il tempo di setup di quest'ultimo è pari a circa tsetup ' 2 · d,ovvero all'aumentare di d aumenta il tempo morto del FF. Il risultato si traduce semprein una diminuzione della frequenza di clock di sistema in quanto bisogna stare ai tempidel Flip Flop. Si noti la somiglianza con i FF Rad Hard dotati di resistenza: i due casiseppur diversi appaiono da fuori simili, ovvero ci si riconduce in entrambi i casi ad unaumento dei tempi morti. Di seguito una gura che mostra il concetto nell'ambito dellePipeline in un processore.

42CAPITOLO 3. TECNICHE DI HARDENING: MITIGAZIONE E CORREZIONE DEGLI ERRORI

3.4.4 Tecniche Miste: Ridondanza hardware e temporale

Le tecniche TMR e TTR proposte possono essere unite per dare luogo ad altre tecniche,come ad esempio la CWSP (Code Word Status Preserving) che brevemente si esponeper completezza. Questa tecnica viene proposta in due varianti, duplicazione hardware eduplicazione temporale. Al posto del comparatore di maggioranza descritto precedente-mente viene utilizzato un circuito detto C-element (si vedano le gure): tale elementonon è altro che un inverter CMOS con due o più ingressi, se tutti gli ingressi sono ugualiesso si comporta esattamente da inverter, se almeno uno è diverso la sua uscita si trovain stato di alta impedenza e non propaga il segnale. Nel caso si vericasse un SEU e vifosse un ingresso diverso dagli altri l'errore rimarrebbe bloccato a monte del C-element.Una uscita ad alta impedenza tuttavia non può essere utilizzata dal circuito a valle, vienequindi inserito un componente chiamato Weak Keeper il cui scopo è quello di mantenerela linea d'uscita al valore logico precedente quando il C-element è in alta impedenza.

3.4. TECNICHE A LIVELLO LOGICO 43

Questa tecnica presenta dei problemi con SET di lunga durata: nel primo caso propostosi avrebbe il campionamento del SET e quindi un SEU nel Flip Flop, l'uscita rimarrebbessata al valore precedente per tutto il periodo di clock. Nel secondo caso invece si hannogli stessi problemi della ridondanza temporale, ovvero entrambi i Flip Flop subisconoun SEU a causa di un SET nella logica combinatoria e viene propagato un dato errato,mantenuto per tutto il periodo di clock. In ogni caso la durata dei SET deve essereinferiore al periodo di clock.

44CAPITOLO 3. TECNICHE DI HARDENING: MITIGAZIONE E CORREZIONE DEGLI ERRORI

3.5 Tecniche a livello di Architettura

A livello di architettura possono essere utilizzate le stesse tecniche descritte per la protezio-ne di elementi combinatori e sequenziali: si può estendere il concetto a blocchi funzionalipiù grossi come ad esempio l'ALU ed i Registri. Il concetto è sempre quello, ovvero crearerepliche di parti del circuito, farle funzionare in parallelo e confrontare i risultati per de-terminare se vi sono stati errori e se possibile adottare tecniche che ne permettano anchela correzione (es. TMR). Più repliche del circuito si fanno e più esse sono distanti sulchip meno probabile sarà il vericarsi di un errore non gestibile (SEFI). Se si utilizzanotecniche di mitigazione logica degli errori e nel contempo sensori BICS e dimensionamentoopportuno dei nodi critici è possibile rilevare gli errori ed eventualmente procedere ad unaricomputazione. Si possono ad esempio, come precedentemente detto, collegare le linee disensing degli errori al sistema di interrupt del processore.In letteratura si trovano numerosi esempi di modiche dell'architettura del processore perrenderlo più resistente alle radiazioni: di solito si tratta sempre di realizzare circuiti dicheck aancati ad un circuito principale ma meno completi di quest'ultimo. Il compito deicircuiti di check è quello di eseguire determinate operazioni sugli ingressi e poi confrontareil risultato di tali operazioni con il risultato del circuito principale al ne di determinare sesi sia vericato un errore oppure no. Data la minor complessità del blocco checker spesso

3.5. TECNICHE A LIVELLO DI ARCHITETTURA 45

queste tecniche possono rilevare la presenza degli errori solo con una certa probabilità(random checker).

Un'altra tecnica molto usata per evitare che i SEFI possano compromettere completamen-te il funzionamento del dispositivo è quella di utilizzare i timer Watchdog, presenti su tuttii moderi processori. Questa può essere considerata una tecnica mista hardware/software:nel processore è presente un timer che conta a ritroso, quando il conteggio è nito (alcunedecine di cicli di clock al massimo) viene innescato un interrupt. Durante la normale ese-cuzione del codice non dovrebbe vericarsi nessun interrupt in quanto ogni N istruzioniviene inserita un'istruzione di reset del Watchdog ed il conteggio riparte dall'inizio. Seperò si verica un SEFI ed il programma va in crash non vengono più eseguite istruzionidi reset, il Watchdog termina il conteggio e viene innescato l'interrupt: la subroutine dicodice corrispondente all'interrupt dovrà eseguire le operazioni necessarie a ripristinare ilsistema e rieseguire eventuali computazioni.

Per ultima viene lasciata l'importantissima tecnica dell'Error Correcting Code, basata suun altro concetto di ridondanza, ovvero la ridondanza di informazione.

3.5.1 Parity Bit ed Error Correcting Code (ECC)

Le tecniche basate su bit di parità e su codici a correzione d'errore sfruttano il concetto diridondanza di informazione, ovvero il dato che si vuole memorizzare (ad esempio un bytedi informazione) viene salvato in forma codicata aggiungendo uno o più bit necessari soloall'identicazione di un errore ed eventualmente alla localizzazione del bit danneggiato.Nell'ultimo caso, più complesso del primo, è quindi possibile anche correggere l'errore.Come si vede l'informazione che deve essere eettivamente memorizzata è maggiore acausa dei bit aggiunti (ridondanza).Per codicare il dato, ovvero generare i bit necessari all'individuazione/correzione dell'er-rore è necessario un Encoder (codicatore), che è un componente puramente combinatorio.Il dato codicato deve essere salvato in un registro o in una memoria: dovendo ospitareanche i bit in eccesso, quindi parole più lunghe, anche memorie e registri devono essereprogettati più grandi (per parole di lunghezza più lunga). Il componente più importante

46CAPITOLO 3. TECNICHE DI HARDENING: MITIGAZIONE E CORREZIONE DEGLI ERRORI

inne è il Decoder (decodicatore), posto in uscita al registro/memoria, il cui compito nonè solo quello di decodicare la parola in memoria e restituire l'informazione originaria, maanche quello di identicare l'errore e segnalarlo al processore ed eventualmente correggerel'errore e restituire direttamente il dato corretto. La progettazione del decoder, realizzatocon elettronica puramente combinatoria, è molto più complessa dell'encoder. Entrambiencoder e decoder devono essere più resistenti alle radiazioni in quanto componenti sen-sibili: se l'alterazione del dato avviene durante la codica o la decodica (SET) vienecomunque memorizzato/prelevato un dato errato.I codici ECC possono essere classicati in 3 categorie con complessità crescente, ma anchepotenzialità crescente:

1. Codici in grado di rilevare errori, ma non di correggerli. Questo è il caso del controllocon bit di parità (Parity Check), il sistema è semplicissimo e prevede l'aggiunta diun solo bit, indierentemente dalla lunghezza della parola di partenza. Il ParityCheck permette di rilevare un solo errore.

2. Codici in grado di correggere un errore e rilevarne al massimo due, come il codiceHamming.

3. Codici in grado di rilevare e correggere errori multipli (2 o anche più), molto com-plessi e di solito non realizzabili semplicemente in forma hardware. In questo casovengono implementati nell'algoritmo del programma. Un esempio che può essereimplementato sia in software che in hardware è il Reed-Solomon Code.

Parity Check Il Parity check (che è un caso particolare del CRC, Cyclic RedundancyCheck) ed esiste in due varianti: parità pari (even) e parità dispari (odd). Nel primo casoil bit di parità aggiunto vale 1 se la parola di partenza contiene un numero dispari di 1,se ne contiene un numero pari vale 0. In entrambi i casi la parola codicata contiene unnumero pari di 1. Se durante la decodica si rileva un numero dispari di 1 signica chec'è stato un errore. Nel secondo caso la condizione individuata non è quella di parità maquella di disparità, ovvero viene generato un 1 se la parola di partenza contiene un numeropari di 1, in questo modo la parola codicata ne conterrà un numero dispari. Se la paroladi partenza contiene già un numero dispari di 1 allora l'odd-parity bit viene lasciato a 0.Sia l'encoder che il decoder (che in questo caso è un semplice rilevatore) possono esserecostruiti con porte AND e OR (somma di prodotti), oppure mediante sole porte EXOR.

3.5. TECNICHE A LIVELLO DI ARCHITETTURA 47

Hamming Code Il Codice di Hamming è un ECC (o meglio un EDAC, Error DetectionAnd Correction Code) in grado di rilevare errori su un bit e sue due bit ed è in grado dicorreggere l'errore nel caso in sui sia avvenuto su un solo bit. Encoder e Decoder possonoessere realizzati in modo abbastanza semplice utilizzando porte EXOR, AND, OR e NOT,in particolare l'encoder sfrutta solo porte EXOR (più semplice del decoder, che deve anchepoter correggere l'errore). Il codice hamming soddisfa la seguente relazione tra numerodi bit della parola originale m, ed il numero di bit della parola codicata c = m+ k, dovek è il numero dei bit di check aggiunti:

2k ≥ m+ k + 1 = c+ 1

La relazione deve essere letta così: se ad esempio k = 4 bit di check, essi riusciranno aproteggere una parola lunga m ≤ 11 bit. Con k = 3 si ha che deve essere m ≤ 4. Nelcaso di una parola con m = 8 bit (1 Byte) quindi dovranno essere usati 4 bit di parità e laparola codicata sarà composta da 12 bit. Il codice si basa sull'utilizzo di 4 bit di paritàcalcolati su 4 sottogruppi di bit selezionati dalla parola di partenza. Non si entrerà indettaglio su come vengano scelti questi raggruppamenti, che dipendono dalla formulazionematematica del codice di Hamming, si riporta però di seguito una tabella che mostra comeavvengono i raggruppamenti per parole no a 20 bit. Si noti che il raggruppamento segueun ben determinato schema che può essere facilmente esteso.

Di seguito viene riportato un esempio di codica e decodica nel baso di parola da 8 bit,in particolare si veda la generazione dei 4 bit di parità (P1...P4) e la relativa collocazionenella parola codicata in accordo con la tabella sopra riportata. La decodica avvienegenerando 4 valori che prendono il nome di Syndrome, da tali valori è possibile deter-minare se vi è stato un errore ed individuare il bit errato e quindi correggerlo mediante lagenerazione di un'opportuna maschera (si veda la tabella di verità). La maschera vienepoi applicata alla parola codicata, mantenendo il bit inalterato se il relativo bit nellamaschera è 0, oppure invertendolo se il bit nella maschera è 1, si ottiene dunque il dato(byte) corretto. Utilizzando un ulteriore bit di parità complessivo è possibile determinareil vericarsi di due errori.

48CAPITOLO 3. TECNICHE DI HARDENING: MITIGAZIONE E CORREZIONE DEGLI ERRORI

Applicazione ai Microprocessori Il codice di Hamming viene molto utilizzato neimicroprocessori Rad Hard (è la tecnica più usata), può essere utilizzato per proteggereregistri e memorie: viene utilizzato un encoder prima del registro/memoria ed un decoderdopo il registro/memoria, in questo modo ogni dato in ingresso viene codicato ed ognidato in uscita decodicato. Se si verica un SEU in un elemento di memoria il datoviene automaticamente corretto ed il processore viene informato dell'avvenuto errore inmodo che il dato nel registro/memoria possa essere riscritto con la versione corretta. Atale scopo viene utilizzato un circuito di refresh che si occupa di riportare in ingresso alregistro il dato corretto decodicato. Nelle seguenti gure è illustrata la tecnica dell'ECCapplicata ad un registro e ad una memoria.

Un vantaggio di questa tecnica consiste nel fatto che è possibile utilizzare un solo encodered un solo decoder per diversi registri o memorie utilizzando un opportuno sistema diindirizzamento. Si pensi alla memoria: ogni riga contiene una parola codicata ma vieneutilizzato un solo encoder ed un solo decoder per tutta la memoria. Lo stesso concetto sipuò applicare ai Register Files e ad altri elementi di memoria presenti nel microprocessore.Lo svantaggio invece è che comunque encoder e decoder introducono numerosi transistorin più, quindi area occupata maggiore, potenza dissipata maggiore e costo maggiore. Perquesto motivo si cerca proteggere con ECC il datapath di una CPU utilizzando in modoconveniente decoder ed encoder al ne di ridurne il numero.

3.6. TECNICHE A LIVELLO DI SISTEMA (O CHIP) 49

Considerando il codice Hamming precedentemente esposto si ha un altro svantaggio: l'im-possibilità di correggere errori multipli sulla stessa parola, causati da MBU. I MBU sonorilevanti nelle tecnologie più moderne dove la densità di memoria è elevata ed il vericarsidi MBU è altamente probabile. L'unica alternativa per correggere errori multipli è quelladi utilizzare codici più complessi come il Reed-Solomon: in letteratura si trovano esempidi memorie protette con questo tipo di codica direttamente via hardware, tuttavia es-sendo la realizzazione hardware molto complessa e dispendiosa di area spesso la codicaviene implementata via software (aancata comunque dalla Hamming hardware).Si devono comunque sempre adottare buone tecniche di layout, posizionando sicamentele celle di memoria appartenenti alla stessa parola distanti per limitare i MBU, come giàvisto.

3.6 Tecniche a livello di Sistema (o Chip)

Le tecniche a livello di intero sistema si basano sulla ridondanza hardware, ovvero ven-gono replicati interi sistemi, interi microprocessori, intere memorie. I processori possonoessere fatti lavorare in parallelo sugli stessi dati ed in caso di SEFI su uno di essi l'altroprocessore continuerà comunque a lavorare. Un circuito di controllo esterno ai due pro-cessori può gestire la situazione monitorando le attività di entrambe le CPU e scegliendoquale deve avere la priorità. In caso di malfunzionamenti rilevati su una CPU la secondapuò continuare con le operazioni mentre la prima viene reinizializzata. La ridondanzahardware è l'unico sistema che può proteggere anche dalla rottura permanente di un chip.

3.7 Tecniche a livello Software

Tra le tecniche a livello software rientrano tutti quegli algoritmi che permettono il con-trollo errori e la loro eventuale correzione. Tra gli Error Correction Codes uno si prestaparticolarmente per realizzazioni software piuttosto che hardware (data la complessità):si tratta del Reed-Solomon Code (RS).Nel codice vengono realizzate delle subroutine di codica e di decodica che vengonochiamate ogni volta che un dato deve essere scritto o rispettivamente letto dalla memoriaprincipale. Il codice RS si presta bene anche per la trasmissione di dati su lunga distanza:i dati vengono codicati ed inviati alla destinazione, se durante il viaggio i dati subisconodegli errori e possibile ricostruirli durante l'operazione di decodica. Il codice RS è utiliz-zato ad esempio sui CD/DVD per ricostruire i dati anche in caso di lievi gra, è usato per

50CAPITOLO 3. TECNICHE DI HARDENING: MITIGAZIONE E CORREZIONE DEGLI ERRORI

trasmissioni wireless ed a banda larga, ad esempio per ADSL, WiMAX, comunicazionisatellitari, missioni spaziali...

Oltre a quanto detto, il programma in esecuzione sulla CPU deve essere ben programmato,robusto, ed adottare sistemi che permettano di vericare l'attendibilità dei risultati: adesempio (banale) se viene eettuata un'operazione il cui risultato può essere solo compresoin un intervallo di valori è bene vericare che eettivamente lo sia, magari a causa di unvalore errato in memoria il risultato è uscito dal range previsto. Precauzioni come questae l'utilizzo di interrupt e watchdog possono evitare il propagarsi di errori, possono essererieseguite computazioni o reinizializzato il microprocessore.

Capitolo 4

Conclusioni

In questo scritto riassumendo abbiamo visto gli eetti delle radiazioni su componenti com-plessi quali i microprocessori: ne abbiamo esaminato l'architettura, abbiamo visto qualisono gli eetti microscopici e macroscopici prodotti dalle radiazioni, abbiamo catalogatoe descritto i possibili eetti da evento singolo ed esaminato le possibili tecniche di harde-ning. L'uso delle varie tecniche per la realizzazione di processori Rad Hard è a discrezionedel progettista, per ogni tecnica si sono visti infatti i pro ed i contro, quindi si dovran-no prendere in considerazioni tutti i compromessi a seconda del progetto da realizzare erelativi limiti imposti, esempio costo, massima dissipazione di potenza eccetera.Gli elementi più sensibili dei processori sono i registri e le memorie SRAM: tra tutte letecniche certamente quella più usata è l'EDAC, che sfrutta gli Error Correction Codes. Lapossibilità di errori però esiste lo stesso, vi è sempre un punto debole, costituito propriodai nuovi elementi introdotti per il controllo degli errori (chi controlla i controllori?). Con-cludendo tutto si traduce in una diminuzione della probabilità d'errore, tale diminuzioneè proporzionale alla quantità di ridondanza che viene usata sul componente, ridondanzache può essere hardware, temporale o di informazione.Molta ricerca c'è ancora da fare, come visto è possibile ottimizzare una CPU agendo sudiversi livelli, a basso livello operando sui transistor, ad alto livello operando sul sistemanella sua forma più astratta: l'obiettivo è quello di cercare di stare al passo con i tempiovvero realizzare processori Rad Hard sempre più veloci, mantenendone limitato il consu-mo e senza sacricare la resistenza alle radiazioni, rimanendo tuttavia anni luce indietrorispetto ai processori commerciali non Rad-hard.

51

52 CAPITOLO 4. CONCLUSIONI

Bibliograa

[1] Microprocessors and SRAMs for Space: Basics, Radiation Eects andDesign; Lawrence T. Clark; Arizona State University; Tempe, Arizona; 2010

[2] SEE Mitigation Strategies for Digital Circuit Design Applicable to ASICSand FPGAs; Fernanda Lima Kastensmidt; Universitade Federal do RioGrande do Sul; Porto Alegre (RS), Brazil; 2007

[3] Slides del corso di Applicazioni Industriali delle Sorgenti di RadiazioniIonizzanti; Andrea Candelori; Padova; 2012

[4] Slides del corso di Circuiti Integrati Digitali; Andrea Cester; Padova; 2008

53