I bug nelle CPU: una storia senza lieto fine – Approfondimento

Negli ultimi giorni Intel ha fatto parlare molto di sé a causa dei gravi problemi riscontrati nelle sue CPU. Ma è la prima volta che l’azienda di Santa Clara si trova ad affrontare polemiche aspre a causa dei bug che colpiscono i microprocessori? E quali altre aziende si sono trovate a dover dare spiegazioni riguardo le prestazioni poco convincenti di alcuni dispositivi? Ricreiamo una breve cronologia dei bug più gravi nella storia delle CPU.

La storia del mondo dell’elettronica, e in particolare delle CPU di computer e smartphone, è costellata di innovazioni e miglioramenti importanti ma anche da gravi problemi che mettono l’azienda produttrice all’interno di un ciclone di polemiche e controversie. In questi ultimi giorni Intel sta facendo molto parlare di sé a causa del grave bug riscontrato nelle sue CPU. Ma non è la prima volta che il mercato dei microprocessori si trova davanti a scandali simili. Ripercorriamo la storia dei peggiori bug che hanno aggiunto una “nota di demerito” affianco al nome delle più prestigiose aziende di processori.

INTEL

PENTIUM (1994)

i primi processori Intel Pentium (fino ai 100 MHz, un qualsiasi processore Pentium a 120 Mhz è abbastanza nuovo da non avere questo bug) presentavano il Pentium FDIV bug, rivelato al pubblico dal professore Thomas Nicely del Lynchburg College. Questo difetto provocava un piccolo errore sistematico in alcune operazioni di divisione effettuate dalle unità dei processori colpiti. Il nome del bug deriva da FDIV, l’istruzione in assembly x86 per le divisioni in virgola mobile, e gli fu conferito dagli utenti che se ne accorsero e lo verificarono.

Intel Pentium
Intel Pentium 66 MHz con il bug FDIV.

La scoperta avvenne nel 1994 quando il professore tentò di calcolare il risultato di una particolare espressione matematica, la costante di Brun; il risultato ottenuto era ben lontano da quanto si era prospettato teoricamente, anche considerando dei possibili errori di arrotondamento. Nicely allora effettuò il calcolo su una macchina che montava il più vecchio processore 486, notando con grande stupore che quest’ultimo risultato era invece corretto.

Durante esperimenti effettuati successivamente Nicely scoprì che il processore sbagliava a calcolare anche delle espressioni molto semplici, così contattò la casa produttrice, la quale dichiarò di essere già a conoscenza del problema e di essere a lavoro per risolverlo. Moltissimi utenti, venuti a conoscenza di questo tremendo bug, fecero pressioni sulla Intel affinché sostituisse tutti i processori difettosi; Intel propose inizialmente la sostituzione del processore solo per coloro i quali avessero dimostrato di avere necessità lavorative che gli imponessero di effettuare calcoli. Alla fine Intel fu costretta a sostituire tutti i chip incriminati affrontando una spesa di circa 475 milioni di dollari. 

PENTIUM III (2001)

Anche il Pentium III ha avuto le sue difficoltà. Il riferimento è al modello da 1,13 GHz, rilasciato nel 2001 e appartenente all’architettura Coppermine (180nm). Dopo che il dottor Thomas Pabst di Tom’s Hardware e HardOCP riscontrarono problemi nella conclusione dei benchmark utili per l’analisi del prodotto, Intel, che inizialmente negò la possibilità dell’esistenza di un bug così importante, ritirò il processore dal mercato poiché non assicurava la giusta stabilità ai consumatori. Fu sostituito dal core Tualatin, l’ultimo della generazione Pentium III a giungere sul mercato poiché rimpiazzato da Pentium 4 Willamette. Tuttavia le problematiche non si fermano qui…

Pentium III
Il processore Intel Pentium III ritirato dal mercato.

ATOM C2000 (2013)

Nel 2013 arrivarono sul mercato i chip Intel Atom C2000, i quali erano utilizzati in ambito networking, come ad esempio nei NAS o nei server. Questi processori prentano un bug nei segnali di timing dell’hardware, incluso l’avvio della ROM. Questo difetto ha portato il dispositivo a  problemi di accensione e ad arresti improvvisi della scheda. In particolare il bug riguarda lo stepping C0 degli Atom C2000 (i modelli specifici rispondono al nome C2308, C2338, C2350, C2358, C2508, C2518, C2530, C2538, C2550, C2558, C2718, C2730, C2738, C2750 e C2758). Molti colossi informatici hanno utilizzato processori Intel Atom C2000, come Dell, HP, Lanner, Netgear, NEC, Synology, ecc.

Intel Atom C2000

HASWELL (2013)

il processore Haswell presenta un bug relativo ad una specifica funzione nota come Transactional Synchronized eXtensions (TSX). TSX è un’estensione delle istruzioni alle CPU x86 che aggiunge una memoria di supporto all’hardware in grado di velocizzare fino al 40% l’esecuzione di software multi-thread. Nell’agosto del 2014, Intel ha annunciato la presenza di questo bug sulle CPU Haswell e le appena uscite CPU Broadwell. Per risolvere il problema Intel ha deciso di disabilitare la funzionalità del TSX sulle CPU affette dal bug attraverso un update del microcode. Tale difetto di produzione afflige maggiormente il mondo server piuttosto che il mondo consumer poiché TSX velocizza la gestione dei database.

Intel Haswell

 

SKYLAKE (2015)

Al pari di quanto successo con la prima Pentium, anche le CPU Skylake di Intel presentavano un fastidioso bug quando queste andavano ad effettuare calcoli matematici puri. Questo difetto si manifestava in particolare abilitando l’Hyper-Threading e eseguendo test con il software Prime 95 sfruttando le istruzioni AVX. Avviando il test sui numeri primi la CPU andava in freeze totale provocando il crash dell’intero sistema.

Intel Skylake

Il problema era anche in questo caso insito nelle CPU Intel, e non nel software, in quanto riscontrato anche utilizzando diverse verisoni di Prime95 (27.9, 28.5 e 28.7). Lo stesso bug relativo all’Hyper-Threading è stato poi riscontrato da sviluppatori di Linux Debian anche nei processori Kaby Lake, che in alcune condizioni avrebbe portato ad un comportamento anomalo del sistema. La risoluzione dei problemi in questo caso è stata risolta con un aggiornamento del BIOS.

MELTDOWN E SPECTRE (2017)

L’apoteosi di tutti i bug del mondo CPU in generale si è avuta pochi giorni fa con la scoperta di tre grosse falle del sistema identificate come Spectre (in due varianti) e Meltdown. Questi “bachi” sono causati dalla speculative execution,una tecnica usata dalla maggior parte dei processori moderni per ottimizzare le prestazioni. Il ricercatore di Google Jann Horn ha dimostrato che la la speculative execution può essere utilizzata da hacker per leggere la memoria di sistema, altrimenti intellegibile. Riportiamo l’approfondimento su Meltdown e Spectre su cui approfondire il tema.

Meltdown e Spectre

Di seguito la lista delle CPU colpite dai bug:

 

  • Processori AMD, ARM e Intel colpiti da Spectre:
    • Famiglia AMD Ryzen
    • AMD FX 8000
    • AMD 9000 serie APUs
    • Apple A4, A5, A5X, A6, A6X, A7, A8, A8X, A9, A9X, A10 Fusion, A10X Fusion e A11 Bionic SoCs.
    • ARM Cortex-A75, Cortex-A73, Cortex-A72, Cortex-A57, Cortex-A17, Cortex-A15, Cortex-A9, Cortex-A8, Cortex-R8, e Cortex-R7
    • Processori Intel Core dalla prima all’ottava generazione
    • Famiglia Intel Xeon E-1200 v5 e v6
    • Intel Xeon W
    • Intel Pentium G
    • Intel Atom C3000 and E3900
    • Intel Pentium (Apollo Lake)
    • Intel Celeron serie G, N e J
  • Processori ARM e Intel colpiti da Spectre 2:
    • ARM Cortex-A75, Cortex-A73, Cortex-A72, Cortex-A57, Cortex-A17, Cortex-A15, Cortex-A9, Cortex-A8, Cortex-R8, e Cortex-R7
    • Processori Intel Core dalla prima all’ottava generazione
    • Famiglia Intel Xeon E-1200 v5 e v6
    • Intel Xeon W
    • Intel Pentium G
    • Intel Atom C3000 e E3900
    • Intel Pentium (Apollo Lake)
    • Intel Celeron serie G, N e J
  • Processori Intel e ARM colpiti da Meltdown:
    • ARM Cortex-A75
    • Processori Intel Core dalla prima all’ottava generazione
    • Famiglia Intel Xeon E-1200 v5 e v6
    • Intel Xeon W
    • Intel Pentium G
    • Intel Atom C3000 e E3900
    • Intel Pentium (Apollo Lake)
    • Intel Celeron serie G, N e J

 

Non solo Intel però si è trovata a dover dare spiegazioni riguardo a problemi con le CPU. I processori Qualcomm risultano essere intaccati anch’essi dalle falle Meltdown e Spectre che stanno mettendo in crisi la grande produttrice di microprocessori con sede a Santa Clara. Gli Snapdragon di Qualcomm sono basati su architettura ARM e per questo sono colpiti in prima persona dalle falle. Il processore Snapdragon 845 sembra essere il più sfortunato, in quanto vulnerabile a tutti e tre gli attacchi.  Per l’azienda statunitense però c’è anche un altro problema: oltre ai chip Snapdragon per smartphone, tablet e altre applicazioni, possibili attacchi potrebbero colpire anche la neonata serie di processori server Centriq

AMD

Oltre ai problemi che sta riscontrando in questi ultimi giorni a causa della falla Spectre, la quale ha colpito in particolar modo la famiglia AMD Ryzen, l’azienda con sede a Sunnyvale è stata protagonista di un’ondata di polemiche riguardanti AMD Phenom.

AMD PHENOM (2007)

La prima linea di chip AMD Phenom – e in particolar modo la revisione B2 – arrivò sul mercato a fine 2007 con un bug noto con il nome di TLB, in quanto andava a colpire la logica translation lookaside buffer (TLB) della cache L3. Tale problema portò a prestazioni insoddisfacenti nei momenti di massimo utilizzo della CPU, non solo per quanto riguarda la virtualizzazione ma anche le prestazioni generali. Questo bug portò al ritiro dal mercato dei processori server quad-core Opteron “Barcelona” e costrinse AMD a correre ai ripari in ambito desktop con una nuova revisione. Per AMD però si trattò di un duro colpo all’immagine e l’inizio di un periodo difficile.

AMD Phenom

AMD RYZEN (2017)

Il sito Phoronix dedicato al panorama Linux ha scoperto che i processori Ryzen, ultima creazione di AMD, potrebbero andare in blocco nell’utilizzo di sessioni di compilazione parallele quando viene utilizzata la tecnologia SMT (simultaneous multithreading). Eseguendo 4 compilazioni in parallelo i processori Ryzen manifestano in alcuni casi uno strano malfunzionamento entrando quindi in segmentation fault. Il bug si verifica in modo non predicibile e illogico. Il problema non è neanche legato ad una specifica motherboard: accade con varie schede madri in modo del tutto casuale. Va specificato però che questo tipo di scenario è praticamente impossibile che si verifichi su base giornaliera poiché un processo del genere non è qualcosa che un utente fa normalmente.

AMD Ryzen

Sembra proprio che sia arrivato il momento che le grandi aziende di microprocessori su scala mondiale imparino dai propri errori, controllando in modo minuzioso il loro operato ancor prima del rilascio sul mercato di un nuovo prodotto, cosicché i consumatori non si trovino a spendere denaro su prodotti insoddisfacenti e che hanno bisogno di continue verifiche e migliorie per essere privi di rischi.

Fonte 1 | Fonte 2 | Fonte 3 | Fonte 4

Benedetta Di Marcello

Se ve lo state chiedendo, non vi dirò che cosa significa Fòasi. Ma sinceramente non penso ve lo stiate chiedendo.

Lascia un commento