Loading ...

Loading splash screen ...
Galleria
TECHNET
Pentium FDIV BUG
Pentium FIST BUG (Dan-0411) Intel Flag Erratum
CPU Identification
Motherboard Identification
Motherboard Identification: BIOS chip swapping
Applicazioni pratiche del BIOS chip swapping
Motherboard Identification: layout
CPU Speed e Clock Multiplier
BIOS Update
AWARD BIOS inside - CPU microcode
AMI BIOS inside - CPU microcode
Power-On Self-Test: PC Diagnostic Card
Socket 3 CPU voltage detection
Socket 3 clock multiplier detection (AMD Am5x86-P75 4x clock mode)
Turbo-Deturbo motherboard check
Socket 7 FSB / clock multiplier detection
AWARD BootBlock BIOS Recovery
Riprogrammazione BIOS: BIOS chip hot swapping
Compaq Deskpro 2000 BIOS F10: Computer SETUP/V and PC Diagnostics
Olivetti PCS 386 SX: disassemblaggio
Desktop Management Interface (DMI) e Custom MIFD
PC Windows 98: da standard Hard Disk a SSD Compact Flash
 
TECHNET: 22
Pentium FDIV BUG
L'"infamous FDIV BUG" che costò a Intel 430 milioni di dollari per il piano di sostituzione
IL BUG
Il Pentium FDIV BUG è un errore di calcolo che i primi Pentium presentavano durante le operazioni in virgola mobile. Fu scoperto nel Giugno 1994 dal professor Thomas Nicely del Lynchburg College che, nell'Ottobre dello stesso anno, dopo aver verificato l'eliminazione di altri fattori quali errori di programmazione o di chipset delle motherborad utilizzate, contattò direttamente il produttore Intel, descrivendo l'errore e le modalità  per replicarlo.
In sostanza il professore, che stava lavorando con il suo staff nel calcolo di una particolare costante (la costante di Brun per la convergenza della serie somma dei reciproci dei numeri primi gemelli) si accorse che i PC utilizzati per il calcolo davano risultati errati in operazioni semplici come x*(1/x) ovvero che l'identità  x=x*(1/x) aveva un resto nel calcolo in virgola mobile. Ripetendo il calcolo con PC con processori serie 80486 il risultato era corretto.
Il produttore Intel
Contattato il produttore Intel, la risposta fu che si era già  a conoscenza del bug (in particolare in una tabella di istruzione dell'assembly implementata nella FPU) e che si stava lavorando per eliminarlo. In una fase iniziale però cercò di minimizzare il problema, ma alla fine la pressione dell'opinione pubblica, la presenza di articoli su riviste autorevoli e servizi televisivi della CNN, costrinsero Intel quasi un anno dopo la scoperta a definire un piano di sostituzione dei Pentium difettosi ("flawed"), con una previsione di costo pari a circa 475 milioni di dollari.
Riproduzione del BUG
Il professor Nicely si accorse che il calcolo di particolari quozienti produceva risultati non accurati, più precisamente il quoziente:
4195835.0/3145727.0 = 1.333 820 449 136 241 002 5 (Correct value)
4195835.0/3145727.0 = 1.333 739 068 902 037 589 4 (Flawed Pentium)

presentava un resto non nullo a partire dalla 4a cifra dopo la virgola, ovvero l'identità  x=x*(1/x) non era verificata:
4195835.0 - 3145727.0*(4195835.0/3145727.0) = 0 (Correct value)
4195835.0 - 3145727.0*(4195835.0/3145727.0) = 256 (Flawed Pentium)

La verifica poteva essere fatta con codice Basic, Pascal, C (utilizzando solo la FPU per il calcolo), ma anche più semplicemente con la calcolatrice di Windows 95/98 o con un foglio di calcolo tipo Excel o Works (come verificato dalla comunità  degli utenti su Internet).
Per il test il professor Nicely ha rilasciato il software libero pentbug scritto in C++ che verifica se è presente un resto nella divisione sopra. La stessa Intel ha rilasciato l'utility a riga di comando pentnt inclusa di default nelle distribuzioni di Windows NT 3.51, Windows NT 4.0, Windows 2000 e Windows XP.
Modelli con FDIV BUG
Pentium 60MHz
Intel S-Spec Q0352, Q0412, SX753, Q0466, SX835, SZ949
Pentium 66MHz
Intel S-Spec Q0353, Q0413, SX754, Q0467, SX837, SZ950
Pentium 75MHz
Intel S-Spec Q0601, Q0606, SX951
Pentium 90MHz
Intel S-Spec Q0542, Q0613, Q0543, SX879, SX885, SX909, SX874, Q0628, Q0611, Q0612, SX923, SX922, SX921, SX942, SX943, SX944, SZ951
Pentium 100MHz
Intel S-Spec Q0563, Q0587, Q0614, SX886, SX910, Q0677, SX960
Pentium FDIV BUG © PC Rebuilding
Prima pubblicazione: 8 Ottobre 2015, 15:48.25
Ultimo aggiornamento: 9 Giugno 2017, 09:59.45
Visualizzazioni attive: 1273



Link correlati
Link veloci
Inserimenti negli ultimi 30 giorni
CPU
AMD Sempron 2500+ Thoroughbred SDA2500DUT3D Brown
Intel Celeron D 336 Prescott-256 2.8GHz SL8H9
Intel Pentium Dual-Core E2140 Allendale 1.6GHz SLA3J #08
Intel Pentium 4 531 Prescott 3GHz SL9CB #02
Intel Pentium Dual-Core E2140 Allendale 1.6GHz SLA3J #07
Intel Pentium Dual-Core E2140 Allendale 1.6GHz SLA3J #06
MOTHERBOARD
MSI P4M890M2 (MS-7255) VER:2.1 Pentium 4/D/Core 2 Duo #04
A-MAX LE-440A Pentium II
ASUS P5G4IT-M LX REV. 1.03 Pentium 4/D/Core 2 Duo/Dual Core
MSI P4M890M2 (MS-7255) VER:2.1 Pentium 4/D/Core 2 Duo #03
MSI P4M890M2 (MS-7255) VER:2.1 Pentium 4/D/Core 2 Duo #02
ASUS P5VDC-MX REV. 2.00G Pentium 4/D/Core 2 Duo
2nd LIFE
MSI P4M890M2 (MS-7255) - Intel Celeron D 336 2.8GHz
MSI P4M890M2 (MS-7255) - Intel Pentium Dual Core E2200 2.2GHz
MSI P4M890M2 (MS-7255) - Intel Pentium Dual Core E2180 2GHz
ASUS P5VDC-MX - Intel Pentium D 820 2.8GHz
COMPONENTS
Rack rimovibile per Hard Disk SATA - TermalTake Max 4
EXPANSION CARD
S3 VIRGE/DX On Board PCI
Advantech PC-LabCard PCL-744 ISA 16BIT
FLYTECH FT-8501101 (PC 8255 CARD) ISA 8BIT #02
U.S.Robotics Sportster ISDN TA ISA 16BIT
SECO CS309 ISA 16BIT
ATI Radeon 7000 AGP #03
STORAGE
Maxtor DiamondMax 10 6V160E0 SATA
HARDWARE MANUFACTURER
Advantech
SECO
BIOS STRING
63-0100-000001-00101111-011306-RS400-410M1000-Y2KC (ELITEGROUP RC410-M2)
04/09/2005-SiS-741-6A7I8FK9C-00 (FOXCONN WinFast K7S741M01C-GX-6L)
63-0709-009999-00101111-080406-P4M800 Pro-A0403709-Y2KC (ASUS P5VDC-MX)
Statistiche gruppi
22 [TECHNET]
Applicazioni pratiche del BIOS chip swapping
Esempi per motherboard non identificate e che non eseguono il boot