Con la sempre maggiore complessità delle architetture risulta inevitabile incorrere in qualche bug hardware, più o meno grave, nonostante oggi si faccia largo uso di sofisticati simulatori software per evitare questi inconvenienti.

 

 

Così oggi, al pari di quanto accadde ai tempi del primo Pentium (per l'occasione abbiamo deciso di scrivere un articolo che vedrete pubblicato nei prossimi giorni), si è scoperto un fastidioso bug che coinvolge le recenti CPU Skylake di Intel quando queste effettuano calcoli matematici puri. Questo in particolare si manifesta quando si effettua test con il software Prime 95 sfruttando le istruzioni AVX. Avviando il test sui numeri primi la CPU va in freeze provocando il crash dell'intero sistema.

Il problema, dopo diversi accertamenti, si è assodato essere insito nelle CPU Intel, e non nel software, in quanto si riscontra utilizzando diverse verisoni di Prime95 (27.9, 28.5 e 28.7). Secondariamente, disabilitando l'Hyper Threading l'errore non si manifesta, come riporta un utente sul forum della comunità che sviluppa Prime95:

Things I noticed:
All other K lengths in Prime 27.9 work just fine
Disabling Hyperthreading will make the problems with 768k disappear
Using 28.7 with FMA3 works just fine for hours
Using 28.7 with CpuSupportsFMA3=0 and default FFT size of 3 works just fine as well
Using 28.7 with CpuSupportsFMA3=0 but FFT size of 15 gives the same errors as 27.9 does (same settings as 27.9 default settings).

Inoltre, come riporta un altro utente, non è solo il test impostato a 768K (come inizialmente si pensava) a determinare il freeze del sistema, ma anche il medesimo test impostato a 800K:

After that my PC froze with 800k.

I know that everybody is convinced that this problem only is with 768k FFT, but I couldn't refrain from sharing it.

Le prime speculazioni parlano di un problema che riguarda le istruzioni AVX (e non AVX2 o FMA3) e del loro utilizzo in combinazione con l'Hyper Threading (Il singolo registro AVX non sarebbe gestito a dovere quando deve essere utilizzato sfruttando l'HT -  un bug nella gestione condivisa delle risorse?).

Il bug, al pari di quello relativo alle istruzioni TSX visto in Haswell, dovrebbe essere risolto tramite un aggiornamento del BIOS delle schede madri Socket 1151 (In pratica verranno disabilitate le istruzioni AVX con l'HT attivo, come in Haswell è stato disabilitato il TSX in toto). Skylake sembra non essere nato sotto una buona stella, visto che si tratta del secondo bug importante dopo quello riguardante le istruzioni SGX.

Sarà interessante conoscere come Intel gestirà la faccenda. Ai tempi del primo Pentium Intel si trovò costretta a sostituire tutte le CPU difettose, nel caso l'utente ne avesse fatto richiesta, e poiché questo bug colpisce in particolare gli utenti con CPU i7 (in quanto dotate di Hyper Threading) potrebber rivelarsi molto costoso per la casa di Santa Clara. Restiamo alla finstra in attesa di novità.