Index ¦ Archives ¦ Atom

Krótki wpis o niewydajnych procesorach.

Dziś opowiem wam ciekawostkę. Dowiedziałem się o tym w toku studiów. I poruszyło to trochę moim światopoglądem. Szczególne podziękowania dla pana dr Bogdana O.

Zacznijmy jednak od początku.

Historia

Na początku był chaos... Dobrze, dobrze, nie przesadzam. Więc na początku były sobie procesory do komputerów. Było ich kilka rodzin. Jedną z nich na pewno masz w swoim komputerze, z którego czytasz ten artykuł.

Gdy pojawiły się systemy i języki obsługujące te procesory, w miarę postępu historii i parcia techniki, architektura bardzo się zmieniała, zarówno bardzo niskopoziomowo we wszystkich możliwych kierunkach.

Moment krytyczny.

Procesory cały czas sie rozwijały, wraz z coraz większymi możliwościami technicznymi. Ale w tym momencie się zatrzymajmy. Jest to moment, w miarę nam bliski, w którym istnieje kilka dobrych rodzin procesorów. Są to i386 oraz  te które są w komputerach klasy power pc - czyli "makintoszach". Wydawać by się mogło że są one podobne, i wszystko jest pięknie. Ale tak nie jest.

Procesory power pc, są o wiele lepiej rozwinięte, mają lepszą architekturę, są ładniej zrobione. Są przede wszystkim szybsze. Jeśli pamiętasz taki fajny komputer co mieścił się razem z monitorem w obudowie, to w porównaniu z analogicznymi i386 - był o wiele lepszy.

Jednak dzisiaj większość z nas ma procesor rodziny i386. Dlaczego?

Śmierć zmianom.

Odpowiedź jest bardzo prosta. Ze względu na kasę. Nie jest wybierane rozwiązanie lepsze, tylko tańsze.

Procesory power-pc miały jedną znaczącą wadę. Podczas każdej zmiany architektury, zmierzającej ku lepszemu i szybszemu działaniu, był zmieniany zbiór rozkazów - tych najmniejszych - które obsługuje procesor. Czyli taki procesor za żadne skarby nie rozumiał programów które działały na jego poprzedniku. Rozumiał tylko to co było dla niego dedykowane. Oczywiscie, gdy tylko pojawiały sie kompilatory na taki procesor, jak tylko ktoś za pomocą tych kompilatorów budował gotowe programy, to to samo oprogramowanie, działało na tych procesorach.

Jednak - każda zmiana pociągała konieczność, zwrócenia się do autora oprogramowania, o nowszą wersję -  a zaufajcie mi to jest bardzo miła okazja do ściągnięcia kasy. W szczególności, że nie skupiajmy się tutaj, na zwykłych ludziach - którzy często nie zmieniają komputerów, ale duże firmy, którym zależało na jak najlepszej przewadze technologicznej, która była okupiona straszliwymi kosztami. W szcególności jeśli co 2 lata prędkośc komputera wzrastała dwukrotnie.

Oznaczało to straszliwe koszty.

A co na to i386 ?

Okazuje się jednak, że druga rodzina procesorów, miała sie w tym czasie bardzo dobrze. W miarę rozwoju systemu operacyjnego MS, MS cały czas naciskało aby nie zmieniac architektury procesora. Procesory cały czas zmieniały się, przyśpieszały, ale korzystają z tych samych zbiorów instrukcji, co 20 lat temu. Dzięki temu, programy, systemy operacyjne, działają na wszystkich kompach - TEORETYCZNIE mozna odpalić dowolną rzecz na dowolnym komputerze. Różna będzie tylko prędkość. i386 wygrało - poprzez to że firmy nie musiały ponosić kosztów przy każdej zmianie sprzętu dodatkowo musiec kupować odpowiednią wersję oprogramowania na tą maszynę.

Czemu to jest złe?

Czemu źle że i386 wygrało ? Dlatego, że my przegraliśmy. Nasze komputery mają cały czas zbiór asemblera sprzed 20 lat. Nikt nie mówi że jest on zły. Jest on bardzo dobry - że potrafi nawet w dzisiejszych czasach działać tak dobrze.

Jednak, jest to troche tak, jakby silnik był tytanowy, karoseria z włókien węglowych, a sprzęgło i skrzynia biegów z bambusa. Nie to żebym nie lubił bambusa, tylko chodzi o pewien kontrast.

Zbiór instrukcji jest niedopasowany do współczesnej architektury procesora. Procesor "zjada" instrukcję i wewnątrz siebie tłumaczy (!) ją na odpowiednie jeszcze bardziej niskopoziomowe instrukcje. To nie jest zbyt wydaje. Przez to prędkość komputera nie jest zbytnio zatrważająca, przy takim ogromnym taktowaniu jak mają teraz komputery...

Jaka jest na to recepta?

Gdyby była prosta, to dawno temu została by wprowadzona. Niestety, rózne próby zakańczały się fiaskiem. Nawet teraz wprowadzanie niewiele zmienionej architektury 64bitowej, idą jak po grudzie... Jednak warto mieć świadomość, że różne zabiegi dużych korporacji i ich "wygodnictwo" powoduje, że mamy niewydajne procesory. W szczególności możemy podziękować za to MS ;-)

© Piotr Lemiesz.