Tomek Wawrzyczek: Z pamiętnika “Młodego Technika” – luty 1987, w pogoni za wydajnością

Nauka 22.02.2013
Tomek Wawrzyczek: Z pamiętnika “Młodego Technika” – luty 1987, w pogoni za wydajnością

Od samego początku ery powszechnej komputeryzacji trwa niekończący się wyścig. Gonią się producenci sprzętu z producentami oprogramowania. Jak tylko ci pierwsi, odpowiadając na potrzeby tych drugich, wypuszczą lepszy, szybszy, pojemniejszy, wydajniejszy sprzęt, ci drudzy od razu zagospodarowują nadwyżkę danej im mocy i płodzą jeszcze bardziej pamięciożerne, jeszcze bardziej wyciskające siódme poty z procesora oprogramowanie. A komputery, że ujmę to prosto, jak “muliły”, tak “mulą”.

Od dekad każdy użytkownik komputera zmieniając sprzęt na – jak zachwalają reklamy – “najszybszy z dotychczas wyprodukowanych”, przez góra pół roku cieszy się chyżością ładowania się systemu operacyjnego i “softem”, który działa tak bystro, jakby zapadł na ADHD. Po kilku aktualizacjach OS-a i aplikacji okazuje się, że to, co jeszcze miesiąc temu “śmigało”, że palce lizać, znów zaczyna się “czołgać” z prędkością puszczonego na wolność żółwia. Wierzcie, że jest tak od zawsze. Nie wierzycie?

Cofnijmy się w czasie i przyjrzyjmy się, jak to wyglądało z perspektywy 1987 roku

“Młody Technik” z lutego tego roku przynosi artykuł o tytule, który moglibyśmy znaleźć w każdym numerze obecnie wydawanych pism poświęconych komputerom: “Dokąd zmierzasz mikroprocesorze?”. Nie będę cytował, pozwolę sobie streścić, jak próbował na to pytanie odpowiedzieć nadworny redaktor od szeroko pojętego IT miesięcznika – Roland Wacławek, autor artykułu.

O wydajności pracy komputera decyduje wiele czynników, między innymi wydajność procesora zależąca między innymi od prędkości jego zegara, szybkość zapisu i odczytu pamięci, jej pojemność  przepustowość magistrali danych, którą dostarczane są do procesora dane z pamięci, długość słowa maszynowego, lista rozkazów procesora, jakość kodu oprogramowania systemu operacyjnego i aplikacyjnego, czyli taki dobór i kolejność rozkazów, by algorytm wykonywany był jak najszybciej. To oczywiście nie kompletna lista, raczej czubek góry, ale to właśnie wskazane czynniki są wspólne dla maszyn produkowanych trzy, cztery dekady temu i tych, które produkowane są dziś, choć w tych drugich oczywiście występuje o niebo więcej czynników wpływających na wydajność pracy komputera. Są poniekąd wspólne dla całej historii komputerów.

Młody technik

W artykule w “Młodym Techniku” z lutego 1987 roku Roland Wacławek pochylając się nad przyszłością mikroprocesorów, choć tak naprawdę mówił o komputerach, wskazywał, że główny nacisk na poprawienie wydajności sprzętu kładziono w tamtych latach właśnie na wymienione wcześniej czynniki. Pierwsze komputery były programowane głównie w tak zwanym języku assemblera czy wręcz w języku maszynowym procesora. Zapewniało to bardzo efektywny kod, ale odbywało się to kosztem efektywności pracy programistów – pisanie oprogramowania w kodzie maszynowym to niemalże benedyktyńska praca. Pojawiły się się języki wyższego poziomu, np. PASCAL czy C, gdzie kod maszynowy generowany jest przez kompilator tłumaczący rozkazy języka wysokiego poziomu na rozkazy procesora. Niestety taki kod jest kilkakrotnie mniej efektywny od kodu uzyskanego w assemblerze. I to zrodziło potrzeby wzrostu wydajności samych tylko procesorów.

Jak odpowiedzieli konstruktorzy procesorów?

Zwiększyli częstotliwość zegara, co było dość oczywistą reakcją. Rozkazy wykonywane są przez procesor krokowo w takt zegara – na przykład operacja dodania do siebie dwóch liczb składa się z następujących kroków, z których każdy odbywał się z w kolejnych taktach zegara: pobierz z pamięci pierwszą liczbę, pobierz drugą liczbę, dodaj je do siebie, zapisz w pamięci wynik dodawania. W pierwszych procesorach wykonanie kolejnego rozkazu następowało po wykonaniu ostatniego kroku poprzedniego rozkazu. Im krótsze takty, czyli szybszy zegar, tym szybciej wykonywany jest rozkaz. Konstruktorzy doszli też do wniosku, że można dodatkowo przyspieszyć pracę procesora zrównoleglając wykonywanie niektórych kroków rozkazów – to tzw. pipelining. Dla przytoczonej operacji dodawania pipelining wyglądałby w praktyce tak, że kiedy procesor wykonywałby trzeci krok – obliczenie sumy pobranych z pamięci liczb – element procesora odpowiedzialny za pobieranie danych z pamięci, który w procesorze bez pipelinningu trwałby bezczynnie i czekał na zakończenie rozkazu, w procesorze z pipelinningiem pobiera w tym czasie dane potrzebne do wykonania następnego rozkazu. Wprowadzenie pipelinningu oznaczało zmiany konstrukcyjne w architekturze procesora – jego układy wewnętrzne stały się bardziej autonomiczne.

Młody Technik

Konstruując nowy procesor powiększano listę jego rozkazów, co pozwalało na skrócenie kodu oprogramowania – im więcej różnych operacji jest w stanie wykonać sam procesor, tym mniej rozkazów trzeba użyć do zakodowania algorytmu w języku wyższego poziomu. Gdyby na przykład procesor nie posiadał możliwości mnożenia, to trzeba tą operację zastąpić serią operacji dodawania, co wydłużała wykonanie mnożenia. Im bardziej rozbudowana lista rozkazów procesora, tym efektywniejszy staje się kod oprogramowania. Ale tylko pozornie. Przeprowadzone w firmie IBM na początku lat 80-tych XX wieku doświadczenie wykazało, że na 80% czasu pracy procesora przypada tylko 20% ogólnej liczby rozkazów. Czyli 80% rozkazów jest wykonywanych niezwykle rzadko lub niemal wcale. O praktycznej prędkości procesora decyduje zatem wąska grupa rozkazów. Ten fakt doprowadził do powstania architektury RISC (Reducted Instruction Set Computer) – maszyn, których architektura była podporządkowana szybkości działania. Liczba rozkazów procesora zredukowana była zazwyczaj do 40-50, które wykonywane były tylko w jednym takcie zegara, za wyjątkiem rozkazów, które odwoływały się do pamięci. Korzystano też wyłącznie z adresacji absolutnej, czyli odwoływanie się wprost do konkretnych komórek pamięci. Jednocześnie odwoływanie się do pamięci zredukowano dzięki zastosowaniu dużej liczby rejestrów wewnętrznych, w których przechowywane były operandy rozkazów.

To oczywiście nie wszystkie metody, które ówcześni konstruktorzy procesorów zastosowali by poprawić wydajność swoich układów. A programiści? Zatarli ręce i napisali nowe wersje swoich programów, które z początku wydawało się działały szybciej, ale wraz z kolejnymi uaktualnieniami zwalniały, zwalniały, zwalniały. I jak to było? Że znów pojawiła się potrzeba jeszcze wydajniejszych procesorów? I opowieść zaczyna się od nowa.

Młody technik

“Młody Technik” z lutego 1987 roku nie samym mikroprocesorem i jego przyszłością, która jak dziś wygląda, wiemy, żył

Podjął też wydawałoby się abstrakcyjny temat jak na treści, które można znaleźć we współczesnych nam pismach i serwisach popularno-naukowych i technologicznych. Temat odlewnictwa – jednej z najwcześniej opanowanych przez człowieka technik wytwarzania. Dziś, w dobie opanowania świata przez komputery wszelkiej maści, rozmiarów, postaci i formy, można odnieść wrażenie, że pod pojęciem technologii kryją się wyłącznie procesory, ekrany dotykowe, karty graficzne o super mocy przyczajonej za wielgaśnym wentylatorem i radiatorem, smartfony, telewizory i tablety. Okazuje się, że nie. Jest też coś takiego, jak odlewnictwo. Istniało w 1987 roku, istnieje dziś i istnieć będzie nadal, choć od czasu wynalezienia tej technologii minęło ponad 6000 lat, a ona sama przeszła ogromną transformację i różni się obecnie tej, którą posługiwano się odlewając choćby słynnego krakowskiego “Zygmunta”. Odlewnictwo jest i będzie, bo to jedna z ważniejszych gałęzi przemysłu.

Pierwsze odlewy wykonywano z występującej w rodzimym stanie miedzi. Odlewnictwo zatem, na co wskazują też przekazy historyczne, jest technologią starszą od hutnictwa i pozyskiwania metali z rud. Dlaczego odlewnictwo było i jest tak istotne dla człowieka? Jakie ma zalety, że stale jest stosowane i udoskonalane? Odpowiedź jest prosta: technologia odlewnictwa jest stosunkowo tania, charakteryzuje się łatwością otrzymywania przy jej pomocy nawet bardzo skomplikowanych kształtów, cechuje ją też niewielka ilość odpadów poprodukcyjnych. I dotyczy to zarówno małego warsztatu ludwisarza czy konwisarza, jak i dużej, nowoczesnej, zautomatyzowanej odlewni, w której powstają choćby bloki silnika samochodu osobowego. Mimo skoku, jaki nastąpił od czasu jego powstania, odlewnictwo ma nadal w sobie coś z rzemiosła artystycznego, którym było przez wieki było. W dawnych czasach odlewnictwo było nie tylko ważnym, ale przez swoje znaczenie poważanym rzemiosłem, a członkowie cechu odlewniczego mieli stosunkowo wysoki status społeczny.

Młody technik

Zawód ludwisarza, konwisarza czy kuźnika przekazywany był często z ojca na syna

By zostać majstrem należało nie tylko zdać egzamin, ale “…dać do cechu 13 groszy i zrobić kolację dla majstrów”, jak zapisano w statucie cechu ludwisarzy i konwisarzy krakowskich z 1512 roku. Statut przynosi kilka dość egzotycznych jak na nasze czasy zapisów, przez co wartych przytoczenia. Paragraf 3 statutu mówił, że z egzaminu zwolnieni byli synowie majstrów, co dziś raczej uznano by za praktyki niezgodne z zasadami wolnego rynku i równości dostępu do zawodu. Na podobne ułatwienia mogli liczyć też ci, którzy wzięli sobie za żonę córkę majstra. Ci, którzy weszli do cechu bez żony, mieli na jej znalezienie 1 rok, 6 miesięcy i 3 dni, inaczej musieli pożegnać się z zawodem – tak jasno i precyzyjnie stało w paragrafie 5 statusu krakowskiego cechu.

Odlewnictwo było nie tylko ważne, miało wręcz znaczenie strategiczne. Najważniejszym odbiorcą produktów cechu było wojsko, które zamawiało głównie lufy armatnie i kule. Produkcja była bardzo zróżnicowana, o czym może świadczyć spis sprzętu wojennego zamku w Tykocinie sporządzony w 1579 roku, w którym wymieniono między innymi kule żelazne do serpentyn, falkonetów, kwaterszlangów, feldszlangów, bębnic, piszczków, słowików, kartun, szarfmeców i kotów. Poza działami odlewnictwo dostarczało wiele przedmiotów codziennego użytku jak kufle, dzbany, misy, świeczniki czy moździerze, a także takie dzieła sztuki odlewniczej jak dzwony i pomniki.

W dziale “Nowe i najnowsze” miesięcznik w lutym 1987 roku donosił o zbudowaniu pierwszej na świecie stacji do “tankowania” energii, którą koncern AEG postawił na trasie wyścigu “Tour de Sol”, w którym zmagały się pojazdy napędzane energią słoneczną. Jak zaznacza “Młody Technik”, pozyskiwanie energii z odnawialnych źródeł, w tym słonecznej, jest celem prac badawczych prowadzonych w krajach wysoko rozwiniętych, gdzie myśli się o zastąpieniu nią energii wytwarzanej w elektrowniach węglowych i jądrowych. Pismo opisuje też upowszechnianie się na świecie elektrowni wiatrowych – w 1987 roku prym w pozyskiwaniu energii z wiatru wiodła Dania, gdzie pracowały wtedy 1500 wiatraki. Od tamtego czasu zmieniło się wiele – dziś energię ze źródeł odnawialnych wykorzystuje się powszechnie, a jej udział w globalnej produkcji energii rośnie.

W dziale “Pomysły genialne, zwariowane i takie sobie” kol. Adam P. z Mińska Mazowieckiego (podówczas lat 11) zaproponował, by tablice szkolne przekształcić w ekrany podłączone do komputerów. Proszę – po dwudziestu latach takie urządzenia są, choć jeszcze nie zastąpiły nadal wiszących w klasach tablic tradycyjnych. Taki mamy postęp.

“Sędziwy Technik” w lutym 1987 roku donosił, że “Kurjer Warszawski” 21 lutego 1887 roku donosił, że abiturienci katolickiego gimnazjium w Kolonii potajemnie połączyli pokój profesorski z zakładem gimnastycznym telefonem, dzięki czemu dowiedzieli się tematów czekających ich egzaminów końcowych. Niestandardowe zastosowanie aparatu zostało wykryte, egzamin unieważniono, a uczniowie odesłani na rok powtarzania ostatniej klasy. Hmm… W tej dziedzinie postęp też się dokonał, ale pozwolicie, że nie będziemy podpowiadać gotowych rozwiązań.

Tym żył świat techniki i nauki popularnej w 1987 i 1887 roku.

 

Tomasz Wawrzyczek – rocznik 1969, z wykształcenia informatyk, z zawodu projektant GUI, z zamiłowania fotograf, dumny ojciec, szczęśliwy mąż, miłośnik bardzo, bardzo starych aparatów fotograficznych.

Musisz przeczytać:

Dołącz do dyskusji

MAŁO? CZYTAJ KOLEJNY WPIS...

MAŁO? CZYTAJ KOLEJNY WPIS...

Advertisement