Re: Błąd w Cyrix'sie

Autor: Andrzej Piotr Wozniak (usher_at_polbox.com)
Data: Fri 05 Dec 1997 - 04:35:32 MET


Arkadiusz Dabrowski <dobrov_at_friko.onet.pl> napisał(a) w artykule
<348bb8db.3370682_at_news.icm.edu.pl>...
> On Wed, 03 Dec 1997 18:48:38 GMT, zoon_at_priv.onet.pl.bez.spamu
(Zbigniew
> Niedzwiedz) wrote:
>
> >Niestety to czesciowo prawda, tzn. w czesci programow w Clipperze
> >uzywajacych funkcji wait (czy cos takiego) procesor robi cos za
szybko
> >i program sie wywala.
> >Powazni producenci oprogramowania wypuszczaja wersje odporne na
w/w.
>
> Wreszcie skumalem ta tajemnice.
> Cyrix jest do dupy - bo skubany za szybki.
> Ja wymiekam. Od zamierzchlych czasow, kiedy to w szkole podstawowej
zaczalem
> sie interesowac komputerami (ZX Spectrum w palacu mlodziezy),
wpajano mi, ze
> im szybszy komputer tym lepszy. I ja naiwny to kupilem.
> Paranoja !!!
>
> Oczywiscie producenci oprogramowania na czele z Necrosoftem,
wypuszczajacy
> ogrmone ilosci wielkich, powolnych i czesto wieszajacych sie
gniotow sa
> zawsze niewinni !
>
> Przeciez to cholerny program kaze procesorowi dzielic przez zero
!!!
>
> P.S.
> Mozna gdzies jeszcze dostac XT ?
>
> +--\ /--\ +--\ +--\ /--\ | | Arkadiusz Dabrowski

Wina jest po obu stronach. Wyjasniano to tu i np. na
pl.comp.bazy-danych niejeden raz, ale widac malo obrazowo.
W narzedziach Clippera CA-Tools z uwagi na kompatybilnosc z
poprzednimi wersjami zachowano funkcje wykonujaca opoznienie czasowe
jako wielokrotne wykonanie pustej petli programowej.
Tylko programy w Clipperze wykorzystujace te funkcje daja bledy,
chociaz zauwazylem, ze niektore inne programy tez moga sie wieszac
(moga, bo zalezy to od tego, co siedzi w pamieci), np. Norton Editor
2.0 czy niektóre programy z Norton Utilities 8.0.
Tymczasem rozbudowa procesorow i wpychanie w nie inteligencji
przecietnej malpy doprowadzily do optymalizacji przebiegow czasowych
m.in. w realizacji pustych petli.
Wyjasnie to na przykladzie:
Program kaze procesorowi obrocic sie na pierwszej nozce 360 razy o
kat (kont) 1 stopien. Procesor nie wie, ze program w tym czasie chce
podzielic beczke piwa miedzy wszystkie swoje dane, jakie zdazy
zlapac.
Procesory od 8080 do 80486 wykonuja polecenie bez namyslu. Program
juz dawno rozdzielil piwo.
Procesor 80486dx2 robi po dwa stopnie na raz. Program akurat oproznil
beczke.
Procesor 80486dx4 robi po trzy stopnie na raz. Program ledwo zdazyl,
choc dostal silniejsza pompke (cache write-back).
Procesor Pentium kombinuje: 360*1=360 stopni i wykonuje od razy pelny
obrot na piecie. Program rozlewa po kilka kufli na raz i znow na czas
oproznia beczke.
Tymczasem procesory Cyrix 6x86 i AMD K5 i K6 sa jeszcze
sprytniejsze/leniwsze/inteligentniejsze (niepotrzebne skreslic).
Owszem 360*1=360 stopni, ale pelny obrot to tak, jakbym w ogole sie
nie ruszal z miejsca, czyli 0 stopni. A przeciez program akurat nie
patrzy. I madrale nie ruszaja sie z miejsca. Program sie odwrocil,
zobaczyl procesor na miejscu i oslupial. Jak podzielic beczke, kiedy
nie ma komu????
Inne programy moga miec klopot typu "Jak podzielic piwo miedzy
niepijacych?"
Jaki z tego moral?
Z pustego i Salomon nie naleje.

-- 
Pozdrawiam/Regards
Andrzej Wozniak
usher_at_polbox.com


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 16:36:27 MET DST