Računari 105

Neka nova matematika

Šta, osim restrikcija struje, danas brine vlasnike najmodernijih PC računara? Naravno, bag njihovog Pentiuma koji se ispoljava pod ne-baš-tako-neverovatnim okolnostima. Strani časopisi i kompjuterske mreže su pretrpani tekstovima i porukama koje se bave ovim problemom - pogledajmo koliko je on zaista ozbiljan!

Dejan Ristanović

Bagovi mikroprocesora nisu nova pojava - u prošlosti su čipovi raznih proizvođača izlazili na tržište sa sitnim konstrukcionim greškama koje su se ispoljavale pod nekim jako specifičnim okolnostima. Sve dok su se okolnosti tačno znale, problema nije bilo pošto su programeri izbegavali problematične naredbe. Bag Pentium-a je, na žalost, znatno ozbiljniji. Usled omaške projektanata, jedinica za rad sa racionalnim brojevima će, pod nekim okolnostima, pri deljenju dati pogrešan rezultat (instrukcija FDIV). Dobijeni rezultat je približan očekivanom, ali se od njega razlikuje znatno više nego što dopušta uobičajena greška pri zaokrugljivanju. Apsolutna (a samim tim i relativna) greška ovakvog računanja zavisi od vrednosti deljenika i delioca i za sada nije publikovan način da se predvide rezultati deljenja pa čak ni da se, za zadati deljenik i delilac, zna da li će doći do greške ili neće.

Kako je sve počelo

Priča o Pentium-ovog bagu je, bar što se kompjuterske javnosti tiče, počela 30. oktobra kada je Thomas Nicely, profesor matematike na Lynchburg koledžu u Virdžiniji (USA), poslao na Internet poruku u kojoj konstatuje ozbiljan bag Pentium-ove jedinice za rad sa racionalnim brojevima ("koprocesora"). Iako je prvih dana interesovanje za tu informaciju bilo malo, Thomas Nicely je, zamislite koincidencije, odmah dobio posao u Intel-u kao konsultant. Od tada je, pogađate, prestao da piše o bagu. Ali su počeli da pišu drugi - Usenet konferencija comp.sys.intel prepuna je poruka u kojima je bag potvrđivan kroz razne neispravne numeričke rezultate. Intel je prilično neprofesionalno reagovao: najpre je poricao da je problem ozbiljan, onda odbijao da diskutuje o zameni "feleričnih" čipova i sve to vreme odlagao čak i tako elementarnu stvar kao što je oficijelno saopštenje za javnost.

"Bomba" je pukla kada se pročulo da je Intel još letos otkrio ovaj bag, da je radio na njegovom ispravljanju i čak počeo da proizvodi Pentium mikroprocesore koji ispravno dele, ali nije nalazio za shodno da o problemu obavesti javnost, nadajući se valjda da problem niko neće ni primetiti. Stvari su počele da budu ozbiljne kada su brojni korisnici počeli da prete tužbama zbog toga što je Intel prodavao proizvod koji je neispravan znajući da je proizvod neispravan, što je u USA veoma ozbiljna optužba. Videvši da je vrag odneo šalu, Andy Grove, predsednik korproracije Intel, je prvih dana decembra poslao na Internet pismo u kome se, u ime kompanije, izvinjava zbog greške u dizajnu Pentium-a i obećava "doživotna garancija" svim korisnicima, a naročito onima čiji rad uključuje intenzivno računanje sa racionalnim brojevima. Grove tvrdi da je Intel, čim je primetio problem, zadužio grupu uglednih matematičara da ga prouče i saopšte koliko su ozbiljne posledice koje bag izaziva. Posle višemesečnog (?) rada, grupa je zaključila da se greška događa jednom u devet milijardi deljenja i da vreme između dve takve greške prevazilazi deklarisano vreme između dva (hardverska) otkaza sistema. Ta mala verovatnoća pojave greške je, po Grove-u, razlog što je niko nije primetio tokom petnaestak meseci intenzivnog korišćenja Pentium-a.

Zamena ili ne

Korisnici bi svakako primili sva ova objašnjenja i izvinjenja da im je Intel obećao zamenu feleričnog čipa. Na žalost, stvari nisu tako jednostavne, pre svega zato što bi zamena bila jako skupa. Računica je prosta: prema još nepotvrđenim podacima, proizvodna cena Pentium čipa je oko 100 dolara, Intel je za ovo vreme prodao oko dva miliona čipova, što znači da bi bi zamena koštala bar 200 miliona dolara. Intel očigledno nije spreman toliko da plati pa je pribegao "štampanju sitnim slovima": proizvođač će "učiniti sve da pomogne svakom korisniku Pentium-a da reši problem, ako ga ima". Lepo zvuči, ali u praksi znači da će Intel zameniti procesor samo onome ko dokaže da se intenzivno bavi matematičkim ili drugim proračunima i da mu bag onemogućava (ili bar otežava) profesionalnu delatnost zbog koje je kupio računar. Dokazati to nije lako, pa će mnogi korisnici morati da se zadovolje softverskom "zakrpom" koju će Intel, navodno, publikovati negde oko Božića (u trenutku pisanja ovoga teksta nije nam bilo poznato da li je "zakrpa" zaista i promovisana).

Što se Intel-ovih velikih komitenata tiče, prvi je (i to izrazito nepovljno) reagovao IBM - ne baš siguran da problem nastupa tako retko kao što Intel tvrdi, IBM će zaštititi svoje kupce tako što će (privremeno?) prestati da proizvodi i prodaje računare zasnovane na Pentium-u. Sve ovo, ipak, ne treba pripisati samo IBM-ovoj brizi za korisnike - činjenica je da je IBM tek nedavno počeo da prodaje računare zasnovane na Pentium-u i da ih svakako nije prodao mnogo. Sa druge strane, IBM hoće da promoviše svoj PowerPC projekat koji direktno konkuriše Pentium-u; nema boljeg načina za promociju od udarca "u leđa" glavnom konkurentu!

Compaq, Gateway 2000, Hewlett-Packard, Digital Equipment Corp i Dell, u čijim je proizvodnim programima Pentium mnogo važnija stavka, ne pomišljaju da slede IBM - neće prestati da proizvode i prodaju računare zasnovane na Pentium-u jer su uvereni da je verovatnoća da ovaj bag napravi neki realan problem gotovo zanemarljiva. Sve ove kompanije tvrde da će zamenjivati felerične procesore, ali samo izuzetno. Najdalje su otišli Toshiba, Hitachi, Seiko-Epson, NEC i Fujitsu koji, umesto priča o raznim vidovima pomoći, jasno kažu da će, počevši od januara 1995, kupcima besplatno zamenjivati čipove. Ipak, i tu se navode dodatni uslovi da kupac koji pretenduje na zamenu mora pokazati da mu bag zaista pravi probleme u poslu zbog koga je kupio računar.

Softverske firme će, kao što im i priliči, problem rešavati softverski. Microsoft je, na primer, već izjavio da problem ni na koji način ne ugrožava DOS, Windows i Windows NT, pošto ni jedan od njih ne koristi usluge aritmetičke jedinice. Korisnicima Excel-a je odmah stavljen na raspolaganje patch koji rešava problem emulirajući sve potrebne aritmetičke operacije. To je, međutim, samo prvi korak - Microsoft radi na detaljnijem patch-u koji će prepustiti hardveru da vrši sva računanja, što je naravno mnogo brže, a softverski "presretati" samo one operacije deljenja koje mogu da izazovu problem i preračunavati ih posebnim potprogramom. Još nije poznato kada će ovaj program biti javno raspoloživ. Previše se ne brine ni Lotus - objasnio je korisnicima kako da isključe "koprocesor" i tako prepuste kompletno računanje softverskom emulatoru.

Hoće li vama smetati?

Kako, najzad, da proverite da li je vaš Pentium "bagovit"? Postoji mali milion načina, ali verujemo da je ovaj najjednostavniji: startujte Windows, pokrenite kalkulator i podelite 4,195,835 sa 3,145,727 a zatim pomnožite rezultat sa 3,145,727. Proizvod treba da bude 4,195,835, ali će na feleričnom Pentiumu biti 4,195,579, za 256 manje nego što bi trebalo. Sva je prilika da ćete dobiti pogrešan rezultat - u našim krajevima još nismo naišli na ispravan Pentium. Vaš procesor, dakle, ima bag. Hoće li vam on smetati?

Iako ne verujemo da se bag u realnosti javlja jednom u 27,000 godina, kako tvrdi Intel, skloni smo da tvrdimo da vam se neće dogoditi - parovi brojeva koji se pogrešno dele su tako retki da naš test program koji je maksimalnom brzinom delio (pseudo)slučajne brojeve nije naišao na bag ni posle celodnevnog računanja. Uostalom, za veliku većinu korisnika toliko računanje i nije primarno: možete biti sigurni da se bag ni u kom slučaju neće manifestovati pri radu sa DOS-om, Windows-om, tekst procesorom, bazom podataka, većinom grafičkih programa... Može se manifestovati jedino pri radu sa unakrsnim tabelama (spreadsheet) i specifičnim programima koji vrše naučne proračune; ako koristite neki od njih, uzdajte se u neku od softverskih "zakrpa" ili u svoju srećnu zvezdu.

Glavna nevolja je što posledice ispoljavanja baga mogu da budu veoma neprijatne - nećete primetiti ništa neobično, ali će rezultat računanja biti zamalo pogrešan. Ta će greška stići do izveštaja na osnovu kojih donosite odluke, pa i neke od tih odluka mogu da budu "zamalo" pogrešne; niko vas kasnije neće pitati da li je za to kriv nekakav procesor! U Americi je pitanje (sudske) odgovornosti za takve greške veoma ozbiljno zasnovano, tako da nije malo vladinih i medicinskih institucija koje su naprosto prestale da koriste računare zasnovane na Pentium-u zato što se boje da će, recimo ako neki pacijent umre, biti optuženi da su koristili feleričnu opremu i to znajući da je felerična, što se završava ogromnim kaznama i odštetama, čak i ako se greška kompjutera uopšte nije ispoljila tokom lečenja pacijenta.

Domaći kupci Pentium-a treba da imaju u vidu i sudbinu Pentium-a koje Intel bude morao da zameni. Neće ih, ne brinite, baciti - za manje para će ih prodati malim tajvanskim firmama čija je odgovornost prema kupcima proporcionalna ceni koju ti kupci plaćaju; jeftinija Pentium ploča znači i slabiju garanciju! Nije teško predvideti da će velika većina bezimenih Pentium ploča koje stižu sa Dalekog Istoka i dalje sadržati "bagovite" čipove. Pošto mi uglavnom kupujemo takve ploče, ostaje nam samo da se sa bagom pomirimo i da se trudimo da nam on u praktičnom radu stvara što manje problema!