Roberto Pulito

AMD ha un bug nella CPU

Non si tratta di un problema diffuso, ma sembrerebbe proprio che alcuni microprocessori di Sunnyvale abbiano un difetto congenito. In certe particolarissime condizioni lo stack fa i capricci

Roma - Matthew Dillon, padre del sistema operativo DragonflyBSD, ha individuato un bug nelle CPU AMD. Dopo mesi di email scambiate con lo sviluppatore il chipmaker americano ha confermato l'esistenza del problema, che comunque si scatena in condizioni molto, molto particolari.

A quanto pare la falla hardware è legata all'unità di calcolo in virgola mobile e a quell'istruzione di ritorno (POP) che fa decrescere lo stack. Con il termine "stack" ("pila" in italiano) si intende una struttura dati che utilizza modalità d'accesso di tipo LIFO (Last In First Out), dove l'ultimo dato inserito è anche il primo ad essere prelevato. Come una pila di libri o riviste, l'ultima deposta in cima sarà la prima a essere a portata di mano.

Per riprodurre in laboratorio il particolare difetto e creare la condizione in cui la CPU aggiorna in modo errato il puntatore dello stack, i tecnici di Sunnyvale hanno dovuto seguire scrupolosamente le lunghe istruzioni fornite da Dillon e lavorare con il sistema operativo DragonFlyBSD, che è basato su Kernel FreeBSD e dedicato a macchine multiprocessore.
Per il giovane sviluppatore il sistema operativo non è comunque parte del problema: gli stessi test condotti su CPU Intel con DragonFlyBSD non hanno mandato in tilt il computer. Fino ad ora Dillon dichiara di aver riprodotto il bug su tre macchine diverse, con Opteron 6168 e Phenom II X4 820, ma il fastidioso buco potrebbe coinvolgere anche altre famiglie di processori AMD. Non si tratterebbe comunque, a giudicare da quanto si comprende fino a questo punto, di un problema generalizzato che possa riguardare la massa degli acquirenti di CPU di Sunnyvale. Resta una bella impresa per Dillon, che da solo è riuscito a scovare un difetto hardware in un microprocessore complesso come quelli moderni.

Roberto Pulito
Notizie collegate
  • BusinessAMD divorzia da GlobalFoundriesIl chipmaker californiano annuncia la cessione della quota residua di GlobalFoundries ancora di sua proprietÓ. In tal modo AMD potrÓ servirsi di pi¨ filiere produttive per la realizzazione delle sue APU e GPU
  • SicurezzaGrosso guaio in FreeBSDUn esperto di sicurezza ha scoperto nelle pi¨ recenti versioni di FreeBSD una vulnerabilitÓ che potrebbe dare a un utente locale il pieno controllo del sistema operativo. GiÓ disponibile una patch
13 Commenti alla Notizia AMD ha un bug nella CPU
Ordina
  • Chi ha scritto l'articolo parte dal presupposto che le altre cpu in commercio o la maggior parte siano bugfree, che mi pare poco probabile.
    non+autenticato
  • Ma sai qaunto e complicato testare una cpu? Vabbe che magari ha avuto un po di "fortuna" a trovare il bug, pero mica e come un tasto di un programma che non funziona. Le CPU possono assumere un umero di stati differenti enorme. Per fare un conto della serva ogni singolo registro a 64 bit ha 10^19 stati. Se hai 10 registri hai 10^190 stati. Vuol dire che fino alla fine del mondo prendendo in considerazione tutte le cpu del mondo, alcuni stati non saranno ancora raggiunti. Senza contare che ci puo essere un probelma a livello elttronico e non a livello logico.

    Poi per carita e un discorso probabilistico e alcune configurazioni hanno una probabilita cosi bassa di verificarsi che non vale la pena testarle. Tanti stati sono completamente equivalenti (ma rimane il probblema di come indviduare gli insiemi di stati equivalenti). Insomma c'e proprio da "divertirsi".
    non+autenticato
  • Senza poi contare che ormai le cpu sono testate automaticamente da altre cpu... e se la cpu che testa ha gia' di suo uno o piu' bug e commette errori in alcuni casi... la cosa si evolve a catena
    non+autenticato
  • Secondo me stanno prendendo un abbaglio, la gestione dello stack in ia32/64 è fondamentalmente legato a i registri ebp e esp che vengono manipolati semplicemente con add e sub, un bug in una di queste due funzioni sarebbe critico e comprometterebbe l'esecuzione di qualunque applicativo. Più probabile un problema del compilatore ( volendo proprio escludere l'errore umano )
    non+autenticato
  • secondo me bla bla bla.... ci ha lavorato un genio di
    hacker per un anno, AMD ha riconosciuto il problema e
    tu in 5 minuti hai già capito che si sbagliano tutti...
    ma perché commentate a vanvera?
    non+autenticato
  • Nella pagina linkata dove spiegano il bug infatti non c'è scritto che ebp o esp vanno a random infatti, c'è scritto che nell'epilogo della routine quando si esegue la POP i registri e conseguentemente eseguita l'istruzione RET, si provoca un problema.
    Ha scritto che di 5 registri ripristinati dallo stack, 3 corrispondono al valore registrato in pila (gli ultimi 3 ripristinati ovvero %r12, %r13, ed %r14), mentre 2 hanno valori che sono a %rsp+544 (i primi 2 %rbx ed %rbp) e RETQ va a ripristinare un valore di %rip che non corrisponde e quindi si genera il seg-fault. Questo è il problema, e come sottolineato nella documentazione molto insolito, perché le prime 2 istruzioni POP sono eseguite con un displacement apparentemente arbitrario e provocato ragionevolmente da questo bug (+544 Byte), le seguenti 3 sono eseguite correttamente, e RETQ va a prelevare un dato che in realtà (questa parte della documentazione l'ho capita un po' male e chiedo venia di eventuali errori) non sta dove punta %rsp, ma in realtà a %rsp+544. Quindi è leggermente più complesso di un semplice errore della ALU.

    - Scritto da: Adriano Meis
    > Secondo me stanno prendendo un abbaglio, la
    > gestione dello stack in ia32/64 è
    > fondamentalmente legato a i registri ebp e esp
    > che vengono manipolati semplicemente con add e
    > sub, un bug in una di queste due funzioni sarebbe
    > critico e comprometterebbe l'esecuzione di
    > qualunque applicativo. Più probabile un problema
    > del compilatore ( volendo proprio escludere
    > l'errore umano
    > )
    non+autenticato
  • Beh tutte le CPU hanno decine e decine, se non centinaia, di bug... non sarebbe una novità.
    non+autenticato
  • ... lo volete capire che ormai i bug sono introdotti di proposito cosi' si evitano possibili cause legali per uso improprio di tecnologie?

    Avvocato dell'accusa: "La vostra ditta ha copiato senza licenza il codice software / le specifiche hardware del mio cliente"

    Avvocato della difesa: "Il mio cliente ha scritto / progettato di sana pianta quello che ha prodotto, infatti ci sono bug/features che nel vostro prodotto non ci sono"

    Giudice: "Assolto"


    Troll
    non+autenticato
  • ...perchè non hanno utilizzato winzoz per i test?A bocca apertaA bocca apertaA bocca aperta
  • perché le condizioni per scatenare il bug sono molto
    complesse ed evidentemente sotto windows meno probabili
    perché si verifichino. infatti è strano che il bug
    non l'abbia scoperto microsoft con i milioni di server
    installati con cpu opteron.
    non+autenticato
CONTINUA A LEGGERE I COMMENTI
Successiva
(pagina 1/2 - 6 discussioni)