Core che non contano: Google preoccupata per gli errori 'silenziosi' delle CPU

Core che non contano: Google preoccupata per gli errori 'silenziosi' delle CPU

Un team di ricercatori di Google ha pubblicato un documento intitolato "Cores that don't count" che illustra l'esistenza di core "capricciosi" all'interno delle CPU, i quali talvolta fanno errori di calcolo a causa di problemi di produzione non rilevati dai progettisti. Errori che, spesso, si presentano in modo del tutto inaspettato e "silenzioso".

di pubblicata il , alle 12:31 nel canale Processori
Google
 

Un gruppo di ricercatori di Google ha pubblicato un'interessante ricerca dal titolo "Cores that don't count" (Core che non contano) in cui si solleva il tema dei core delle CPU che sbagliano i calcoli. Nel testo questi core sono stati ribattezzati "mercurial core" o italianizzando "core capricciosi". Di che si tratta? Scopriamolo insieme.

Il team della casa di Mountain View afferma che i processi produttivi più avanzati, i progetti elaborati (non solo del chip ma anche il packaging) e le istruzioni sempre più specializzate per aumentare le prestazioni, stanno facendo emergere "errori di calcolo effimeri che non sono stati rilevati durante i test produttivi". Insomma, non solo ogni core non è uno uguale all'altro, ma per giunta alcuni core "sbagliano" in modo assolutamente non prevedibile.

"Questi difetti non possono sempre essere mitigati da tecniche come gli aggiornamenti del microcodice e possono essere correlati a componenti specifici all'interno del processore, aprendo la strada a piccole modifiche al codice che possono portare a grandi cambiamenti nell'affidabilità".

Uno degli aspetti peggiori di questi errori - ribattezzati corrupt execution error o CEE - è che spesso sono "silenti", ossia ce ne si accorge solo dopo un calcolo sbagliato, non prima, e non danno "evidenze" chiare se non un risultato finale errato. Insomma, i CEE sono sintomi di quella che Google chiama "silent data corruption", o l'abilità per il dato di corrompersi quando scritto, letto o rimane inattivo senza che la corruzione venga rilevata immediatamente.

"I core capricciosi sono estremamente rari, ma in una grande flotta di server possiamo osservare gli intoppi che causano, spesso tali da vederli come un chiaro problema - uno che richiederà la collaborazione tra progettisti di hardware, i produttori di processori e gli sviluppatori di sistemi software", scrivono i ricercatori.

Il documento pubblicato è una chiamata alle armi verso una rinnovata attenzione al problema, con i ricercatori di Google che illustrano diversi approcci basati sul software per affrontarlo, da una una migliore rilevazione o meccanismi di isolamento, fino ad arrivare a metodi per tollerare la corruzione dei dati causata. Lo studio è però solo allo stadio iniziale e ci sono ancora molte cose da analizzare e scoprire.

Google, per ora, ha messo a punto un modello per mostrare come appare, in genere, un CEE. Da quanto emerso, i fallimenti nel processo di calcolo sembrano non deterministici e si verificano in modo variabile, e sembra che il problema peggiori nel corso del tempo. "Abbiamo alcune prove che l'invecchiamento è un fattore. In un processore multi-core, solitamente un solo core fallisce, spesso in modo costante. I CEE sembrano essere un problema diffuso nell'industria, non legato a uno specifico produttore, ma il tasso non è uniforme tra le CPU".

Insomma, ci sono errori di fabbricazione che non sono stati rilevati da nessuno in fase di test, anche perché questi errori si possono verificare dopo un certo periodo di tempo e non sono presenti sin dall'inizio.

I ricercatori spiegano che i tassi di corruzione differiscono di "molti ordini di grandezza" tra i core difettosi. Il tipo di carico di lavoro, la frequenza, la tensione e la temperatura possono influire sul fatto che un core emetta un CEE. Gli autori hanno osservato tassi di fallimento "dell'ordine di pochi core capricciosi per diverse migliaia di macchine". Non stiamo quindi parlando di un problema che interessa i nostri PC gaming, ma se pensate alla quantità di core di un datacenter, ecco che il quadro si fa più serio.

Google elenca diversi problemi causati dai core capricciosi, dalla violazione della semantica dei lock alla corruzione dei dati durante le operazioni load, store e vettoriali. L'azienda ha inoltre rilevato come si rischi che un'operazione di cifratura svolta da un core capriccioso sia decifrabile solo dallo stesso core e non da un altro, il quale restituirebbe un risultato incomprensibile - forse una grande cosa dal punto di vista della sicurezza, in quanto il dato resterebbe sicuro, ma non certo un comportamento accettabile.

12 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
zappy10 Giugno 2021, 14:27 #1
dove sono quelli "le macchine non sbagliano mai" o "il problema è fra lo schermo/tastiera e la sedia"?
floc10 Giugno 2021, 15:09 #2
le macchine non sbagliano per definizione. Qui sbagliano perchè sono mal progettate, da uomini
demon7710 Giugno 2021, 15:11 #3
Bella gatta da pelare..
The FoX10 Giugno 2021, 15:34 #4

La soluzione esiste già (ma non la adotteranno mai...)

Almeno non nel settore datacenter o consumer.
Attualmente è adottata solo nel settore mission-critical o aerospaziale (e nemmeno sempre)... ridondanza e la duplicazione.
In pratica per ogni singolo core ce n'è un secondo che esegue le stesse istruzioni con gli stessi dati.
E solo che i risultati sono coerenti sono ritenuti validi.
Era una tecnologia presente nei primi Pentium ad esempio (dove era abbinabile una seconda cpu con funzione di controllo)... ma poi stata eliminata che io sappia in quanto mai sfruttata.
andbad10 Giugno 2021, 18:32 #5
Originariamente inviato da: The FoX
Almeno non nel settore datacenter o consumer.
Attualmente è adottata solo nel settore mission-critical o aerospaziale (e nemmeno sempre)... ridondanza e la duplicazione.
In pratica per ogni singolo core ce n'è un secondo che esegue le stesse istruzioni con gli stessi dati.
E solo che i risultati sono coerenti sono ritenuti validi.
Era una tecnologia presente nei primi Pentium ad esempio (dove era abbinabile una seconda cpu con funzione di controllo)... ma poi stata eliminata che io sappia in quanto mai sfruttata.


L'utente singolo che dovesse avere una CPU difettosa, magari nemmeno se ne accorge, mentre in situazioni mission-critical essendovi ridondanza il problema viene scoperto o comunque mitigato in tempo reale.

Il problema è proprio nei grandi datacenter, dove una cpu difettosa è difficile da identificare ma statisticamente sai che porterà ad errori che non puoi prevedere e dove, per costi e consumi, non puoi pensare di ricorrere alla ridondanza.

By(t)e
zappy10 Giugno 2021, 21:02 #6
Originariamente inviato da: andbad
L'utente singolo che dovesse avere una CPU difettosa, magari nemmeno se ne accorge,


ne dubito.
tra file corrotti, errori inspiegabili, blocchi random, accorgersene se ne accorge. piuttosto impazzisce a capire la causa...
frankie10 Giugno 2021, 22:24 #7
tempo fa si parlava del contrario.
Chissenefrega se un operazione è leggermente errata, ma in certi casi la potenza e l'efficienza ne guadagnano molto. Ad esempio un pixel in un video, se è un colore leggermente diverso, ma se il chip va 5 volte più veloce i vantaggi ci sono.
demon7710 Giugno 2021, 22:53 #8
Originariamente inviato da: frankie
tempo fa si parlava del contrario.
Chissenefrega se un operazione è leggermente errata, ma in certi casi la potenza e l'efficienza ne guadagnano molto. Ad esempio un pixel in un video, se è un colore leggermente diverso, ma se il chip va 5 volte più veloce i vantaggi ci sono.


Se tutto si riduce ad un pixel su un video si.. ma qui si parla anche di errori random all'interno di files che potenzialmente possomo sminchiare l'intero lavoro.
Cioè magari lavori ad un file, salvi e quando lo riapri scopri che è corrotto e hai perso il lavoro.
rockroll11 Giugno 2021, 02:06 #9
Originariamente inviato da: zappy
ne dubito.
tra file corrotti, errori inspiegabili, blocchi random, accorgersene se ne accorge. piuttosto impazzisce a capire la causa...


Concordo pienamente.

Dopo 5 lustri che pesto sui PC potrei raccontarvi di parecchie notti insonni di infruttuosa caccia della causa di comportamenti, situazioni, risultati, in definitiva errori macchina, fortuiti, non ripetibili, ed assolutamente inspiegabili.

In verità questi eventi potevano capitare negli anni scorsi su vecchie piattaforme HW economiche, ma riguardo a tempi più recenti non mi posso lamentare; non altrettanto posso dire riguardo a smartphone più o meno economici; ma per questi giocattoloni non ho perso nottate, non lo meritano.
andbad11 Giugno 2021, 08:23 #10
Originariamente inviato da: zappy
ne dubito.
tra file corrotti, errori inspiegabili, blocchi random, accorgersene se ne accorge. piuttosto impazzisce a capire la causa...


Parlano di errori statisticamente quasi insignificanti, ma che sui grandi numeri di un datacenter diventano visibili.
Probabile quindi che se ti capita una CPU difettosa magari il PC crasha una volta ogni 10 giorni (numero a caso) e se è poco nerd non gli da nemmeno peso, riavvia e finisce lì.

By(t)e

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^