Co to jest i skąd się to
wzięło ?
Ewolucja i rozwój
komputerów.
Wyższa Szkoła Biznesu
Studia zaoczne, sem. II
Architektura i organizacja
komputerów
Wykład 1 i 2
Polecana literatura
Wiliam
Stallings
„Architektura
i
organizacja
komputerów’ WNT, Warszawa 2003
J. Biernat „ Architektura komputerów”, WPW 1999
Scott Miller „Rozbudowa i naprawa komputerów PC”,
Helion, Gliwice 2003
Piotr Metzenger „Anatomia PC”, Helion, Gliwice 2003
Wodzisław Duch „Fascynujący świat komputerów”,
Nakom, Poznań 19978
Jan Pieńkos, Janusz Turczyński, Ukłądy scalone TTL w
systemach cyfrowych, WKiŁ 1986
Chalk B. S. „Organizacja i architektura systemu
komputerowego” WNT 1998
Temat i cel wykładów
Tematem wykładów jest struktura i
działanie komputerów,
celem zaś - możliwie jasne i
kompletne przedstawienie natury
i własności współczesnych
systemów komputerowych.
Z dwóch powodów jest to
trudne zadanie
Po pierwsze, istnieje ogromna różnorodność wyrobów, które
mogą nosić miano komputera - od pojedynczego
mikrokomputera kosztującego kilka dolarów do
superkomputerów o wartości dziesiątków milionów dolarów.
Różnorodność ta dotyczy nie tylko kosztu, ale także
rozmiaru, wydajności i obszaru zastosowań.
Po drugie, szybkie zmiany, które zawsze charakteryzowały
technikę komputerową, zachodzą nadal i wcale nie słabną.
Zmiany te obejmują wszystkie aspekty techniki
komputerowej - od mającej podstawowe znaczenie
technologii układów scalonych wykorzystywanej do budowy
zespołów komputera, aż do coraz szerszego wykorzystania
koncepcji organizacji równoległej przy łączeniu tych
zespołów.
Na szczęście
Pomimo tej różnorodności i tempa zmian w
dziedzinie
komputerów
pewne
podstawowe
rozwiązania
pozostają
nadal
aktualne.
Z
pewnością zastosowanie ich zależy od bieżącego
stanu techniki oraz od założonej przez projektanta
relacji między ceną a wydajnością, dlatego
naszym celem jest wnikliwe przedyskutowanie
podstaw organizacji i architektury komputerów
oraz
powiązanie
ich
ze
współczesnymi
zagadnieniami projektowania komputerów.
Architektura i organizacja
komputera
Przy opisywaniu systemów komputerowych
często czynione jest rozróżnienie między
architekturą komputera a jego organizacją.
Architektura komputera odnosi się do tych
atrybutów systemu, które są widzialne dla
programisty. Innymi słowy, atrybuty te mają
bezpośredni wpływ na logiczne wykonywanie
programu.
Organizacja
komputera
odnosi
się
do
jednostek operacyjnych i ich połączeń, które
stanowią realizację specyfikacji typu architektury.
Przykładowe elementy
architektury i organizacji
Przykładami atrybutów architektury są:
– lista rozkazów,
– liczba bitów wykorzystywanych do prezentacji różnych
typów danych (np. liczb czy znaków),
– mechanizmy wejścia-wyjścia oraz metody adresowania
pamięci.
Do atrybutów organizacyjnych należą rozwiązania
sprzętowe niewidzialne dla programisty, takie jak
– sygnały sterujące,
– interfejsy
między
komputerem
a
urządzeniami
peryferyjnymi oraz
– wykorzystywana technologia pamięci.
Przykład
To, czy w komputerze występuje rozkaz mnożenia,
jest zagadnieniem projektowania architektury.
Zagadnieniem organizacyjnym jest natomiast to,
czy ten rozkaz będzie wykonywany przez specjalną
jednostkę mnożącą, czy też przez wielokrotne
wykorzystanie jednostki sumującej systemu.
Decyzja
organizacyjna
może
wynikać
ze
spodziewanej częstości wykorzystywania rozkazu
mnożenia, ze względnej szybkości obu rozwiązań, a
także z kosztu i fizycznych rozmiarów specjalnej
jednostki mnożącej.
Rozróżnienie między
architekturą a organizacją
jest ważne
Wielu producentów komputerów oferuje rodziny
modeli o tej samej architekturze, różniące się jednak
organizacją.
W wyniku tego poszczególne modele w tej samej
rodzinie mają różne ceny i parametry określające
wydajność.
Ponadto, architektura może przeżyć wiele lat,
natomiast organizacja zmienia się wraz z technologią.
Wybitnym przykładem obu tych zjawisk jest
architektura Systemu 370 IBM.
Architektura systemu 370
IBM
Architektura ta była po raz pierwszy wprowadzona w roku 1970 i
obejmowała wiele modeli. Klient o umiarkowanych wymaganiach
mógł kupić model tańszy, lecz wolniejszy.
Jeśli jego wymagania wzrosły, mógł sięgnąć po droższy i szybszy
model, nie rezygnując jednakże z dotychczas opracowanego
oprogramowania.
Przez całe lata IBM wprowadzał wiele nowych modeli
wykorzystujących ulepszoną technologię w celu zastąpienia
starszych modeli, oferując klientowi większą szybkość, niższy
koszt lub i jedno, i drugie. Nowe modele zachowywały tę samą
architekturę, co chroniło inwestycje poniesione przez klienta na
oprogramowanie.
Jest godne uwagi, że architektura Systemu 370, nieznacznie
ulepszona, przeżyła do dzisiaj i nadal występuje w głównej linii
wyrobów IBM.
Prawie nikt nie wie,
kto wynalazł komputer ?
Komputery zmieniły ogromnie naszą cywilizację,
wpływają bezpośrednio na wiele aspektów naszego
życia, a jednak, prawie nikt z zapytanych: „Kto
wynalazł komputer?” nie potrafi podać żadnego
nazwiska
związanego
z
historią
powstania
i rozwoju tych urządzeń.
Co innego nazwiska graczy piłki nożnej czy aktorów, tu
każdy potrafi wymienić wiele gwiazd. Komputery nie
zamierzają jednak zniknąć z naszego życia wraz ze
zmianą sezonu.
Chociaż więc wiadomości zawarte w tej części wykładu
nie są niezbędne do posługiwania się komputerem
warto zapytać: skąd wziął się ten wspaniały świat?
Liczydło
- przykład urządzenia cyfrowego
Calculi oznaczało pierwotnie u
starożytnych Rzymian kamyczki
służące do zliczania. Słowo to
stanowi rdzeń takich polskich
słów jak „kalkulacja, kalkulator”.
Rzymianie do obliczeń używali
też liczydeł, zwanych „abacus”.
Wszystkie
rozwinięte
kultury
starożytne posługiwały się jakąś
formą liczydeł. Liczydła zrobiły
ogromną karierę i używane były
przez około 2000 lat.
Liczydła – najdłużej
używane urządzenie
liczące
W niektórych krajach, takich jak Chiny, Filipiny czy
Brazylia, liczydła do tej pory są popularne. Starsi
Chińczycy po dziś dzień wolą wprowadzać dane do
komputera przesuwając kulki liczydła na ekranie
komputera zamiast naciskać klawisze cyfr!
W Europie liczydła były w powszechnym użyciu
jeszcze
w latach sześćdziesiątych.
Żadne urządzenia liczące nie mają już szans na
zrobienie tak wielkiej kariery jak liczydła (na
utrzymanie się na rynku przez tysiące lat) - postęp
w tej dziedzinie jest zbyt szybki.
Komputer może nie
powtórzyć kariery liczydeł
Nawet nazwa „komputer” może nie przetrwać tak
długo,
gdyż
obecnie
używane
komputery
przypominają swoje pierwowzory sprzed lat
kilkudziesięciu jedynie pod względem teoretycznym
a nowe urządzenia, takie jak:
palmtopy, PDA (personal digital assistant), PIM
(personal information manager),
telefony komórkowe GSM (a w przyszłości 3G-
UMTS),
komputery ubraniowe,
itp. mogą zupełnie zmienić nasze wyobrażenia
o urządzeniach komputerowych.
Kostki Napiera,
Suwak logarytmiczny
W okresie Renesansu bardziej
zaawansowane
obliczenia
wykonywano
przy
pomocy
tablic
matematycznych
i
suwaka
logarytmicznego,
będącego
udoskonaleniem
tabliczek Napiera (zwanych
również kostkami Napiera).
Zamieniając liczby na ich
logarytmy
można
zastąpić
mnożenie znacznie łatwiejszym
dodawaniem i do tego celu
właśnie
służyły
tabliczki
Napiera.
Liczydło, a suwak
logarytmiczny
Liczydło jest urządzeniem dającym odpowiedzi
dokładne
w wyniku zliczania kulek, jest więc przykładem
urządzenia nazywanego dyskretnym lub cyfrowym.
Suwak daje odpowiedzi przybliżone, jego elementy
(okienko i linijkę) przesuwa się w sposób ciągły a wyniki
określa się za pomocą pomiarów długości. Urządzenia,
w których liczby zastępowane są jakimiś wielkościami
fizycznymi, takimi jak długość czy napięcie elektryczne,
nazywa się urządzeniami analogowymi. Suwak
logarytmiczny
jest
przykładem
urządzenia
analogowego.
Wilhelm Schickard
Prawdopodobnie
pierwsze
mechaniczne
urządzenie
wykonujące
działania arytmetyczne
zbudował Wilhelm Schickard (1592-1635) w
oparciu
o tabliczki Napiera.
Inspiracją do budowy tego czterodziałaniowego
arytmometru były astronomiczne obliczenia Keplera
(dzięki którym sformułował on swoje słynne trzy
prawa ruchu planet).
Jedyne informacje jakie przetrwały do naszych
czasów pochodzą właśnie z listu Schickarda do
Keplera. List ten zawiera tak szczegółowy opis
urządzenia, że możliwe było jego odtworzenie.
Blaise Pascla
W 1642 roku Pascal, francuski filozof,
matematyk i fizyk, mając zaledwie 19 lat
skonstruował pierwszy sumator mechaniczny.
Pascal był synem urzędnika podatkowego i do
pracy nad sumatorem zainspirowała go
żmudna praca ojca.
Dopiero
teraz
sumatory,
stanowiące
podstawowe narzędzie pracy w księgowości,
ustępują bardziej wyrafinowanym programom
komputerowym.
Pascaliny
Pascal zbudował ponad 50 wersji mechanicznych sumatorów
w przeciągu dziesięciu lat (od 1642). „Pascaliny”, jak
nazywano jego sumatory, miały prostą konstrukcję, podobną
do
liczników
kilometrów
w dzisiejszych samochodach.
Osiem par kół zębatych pozwalało na dodawanie stosunkowo
dużych liczb. Koła były sprzężone ze sobą realizując
przeniesienie rezultatu dodawania do następnego koła jeśli
cyfra przekraczała 9. Sumator pracował więc w oparciu o
dziesiętny system liczenia.
Podstawowe zasady konstrukcji w oparciu o koła zębate
wykorzystywane były w urządzeniach liczących przez 300 lat.
Największą wadą Pascaliny był skomplikowany sposób
wykonywania odejmowania, mnożenia czy dzielenia.
Gottfried Leibniz
Gottfried Wilhelm Leibniz, urodzony 21.06.1646
w Lipsku, zmarły 14.11.1716 w Hannowerze i pochowany
w zbiorowym, bezimiennym grobie, mógłby być
patronem informatyków. Leibniz był cudownym dzieckiem
i rozpoczynając w wieku 15 lat studia w Lipsku posiadał
wiedzę dorównującą wiedzy niektórych profesorów.
W czasie późniejszych studiów w Moguncji porządkował
prawo rzymskie, tam też sporządził pierwsze plany
maszyny liczącej. W Paryżu, gdzie studiował u słynnego
astronoma i matematyka, Christiana Huygensa, pisał
rozprawy z filozofii, teologii, alchemii, matematyki,
dyplomacji i polityki. Do pracy nad modelem
mechanicznego kalkulatora natchnęły go żmudne
obliczenia astronomiczne dokonywane przez Huygensa.
Inspiracja Leibniza
Jego spostrzeżenia są tu nadal aktualne:
„Nie
jest
bowiem
rzeczą
godną
wykształconego człowieka, by tracić godziny
pracując jak niewolnik nad obliczeniami,
które wykonać mógłby każdy, gdyby użyto w
tym celu maszyny.”
Nadzieje na uwolnienie człowieka od owej niewolniczej”
pracy spełniają się dopiero teraz. Jeszcze całkiem
niedawno wykonanie poważniejszych obliczeń przy
pomocy komputera było technicznie bardzo trudne:
spędzało się całe noce w ośrodku obliczeniowym i
człowiek miał wrażenie, iż to on jest niewolnikiem
maszyny a nie odwrotnie!
Kalkulator
Leibnitza
W swoich planach budowy maszyny liczącej
(określanej jako „żywa ława do liczenia”) Leibniz
wprowadził ruchomą część pozwalającą na
automatyzację
wielokrotnego
dodawania,
koniecznego do wykonania mnożenia lub dzielenia
- wystarczyło pociągnąć za rączkę, by uruchomić
zębate kółka.
Chociaż kalkulator Leibniza zdobył znaczny rozgłos,
demonstrowany był między innymi na spotkaniu
Królewskiego Towarzystwa Naukowego w Londynie
i Francuskiej Akademii Nauk, jego twórca nie zdołał
znaleźć nikogo chętnego do jego budowy.
Abraham Stern
Polski zegarmistrz Abraham Stern (1769-1842)
skonstruował
około
1810
roku
kilka
skomplikowanych
maszyn
napędzanych
mechanizmami zegarowymi, wykonujących cztery
działania arytmetyczne oraz pierwiastkowanie.
Były
to
pierwsze
urządzenia
liczące
nie
wymagające ręcznego kręcenia korbką.
Jego godne podziwu dzieło nie wywarło jednak
większego wpływu na rozwój maszyn liczących na
świecie. Mechanizmy zegarowe były zbyt delikatne
i zbyt cenne by mogły znaleźć praktyczne
zastosowanie na szeroką skalę.
Charles Babbage
Spośród
wszystkich
myślicieli
żyjących
w minionych wiekach najbliżej wynalezienia
komputera, we współczesnym nam sensie, był
angielski
matematyk
i wynalazca, profesor Uniwersytetu w Cambridge,
Charles Babbage.
Na początku XIX wieku obliczenia dla potrzeb
nawigacji i astronomii wymagały coraz większych
dokładności. Wykonywano je przy pomocy tablic
logarytmicznych. Obliczanie wartości logarytmów
było żmudne a tablice zawierały błędy.
Maszyna różnicowa
Maszyna
projektu
Babbage'a
miała
być pierwszą prawdziwie automatyczną
maszyną obliczającą tablice logarytmów.
Niewielki prototyp „maszyny różnicowej”, bo
taką jej nadano nazwę, ukończony został w 1822
roku. Przez następnych 11 lat rząd brytyjski
wydał na projekt Babbage'a ogromną sumę,
pomimo tego zrealizowano tylko niewielką część
tego coraz bardziej ambitnego projektu.
Wymagania
dotyczące
precyzji
części
mechanicznych były jak na owe czasy zbyt duże.
Maszyna różnicowa (20 lat
później)
Dwadzieścia lat po zarzuceniu tego projektu
szwedzki wynalazca Pehr Scheutz, korzystając z rad
Babbage'a,
zbudował
zmodyfikowaną
wersję
maszyny różnicowej.
Pokazana na wystawach w Londynie i Paryżu
została nagrodzona złotym medalem. Po wstępnym
ustawieniu maszyna produkowała kolejne wyniki
szeregów różnicowych automatycznie, wymagając
od człowieka jedynie kręcenia korbą.
Oryginalny projekt maszyny różnicowej udało się
zrealizować dopiero w 1992 roku a jej działający
model ustawiono w muzeum techniki w Londynie!
Maszyna
analityczna
Niezrażony
tym
niepowodzeniem
Babbage
przystąpił do jeszcze bardziej ambitnego projektu:
„maszyny analitycznej”, wykonującej nie tylko
działania
arytmetyczne
jednego
typu,
lecz
pozwalającej na wykonywanie działań zgodnie z
określoną przez operatora instrukcją.
Maszyna ta miała być napędzana ... energią pary,
jak na wiek XIX przystało. W założeniu miał to być
cud mechaniki, zbudowany głównie w oparciu o
zębate kółka. Urządzenie składało się z trzech
części, nazywanych przez Babbage'a „składem”,
„młynem” i „mechanizmem sekwencyjnym”.
Założenia budowy maszyny
analitycznej
„Skład” miał przechowywać rezultaty pośrednich
obliczeń, pełnił więc rolę pamięci. Zgodnie z planem
powinien przechowywać 100 liczb 40-cyfrowych do
czasu, aż będą potrzebne do dalszych obliczeń.
„Młyn” spełniał rolę arytmometru, wprowadzając
dane ze składu i wykonując na nich operacje
arytmetyczne.
„Mechanizm sekwencyjny”, który można by nazwać
programem, miał decydować o tym, które dane
pobierać ze składu i jakie wykonywać na nich
operacje.
Maszyna analityczna, a
komputery
Pierwsze komputery cyfrowe złożone były
dokładnie z takich trzech części.
Ponieważ
sterowanie
maszyny
analitycznej miało być zależne od
wyników obliczeń („pożera własny ogon”,
jak to obrazowo określił jej twórca), była
to w założeniach pierwsza programowalna
uniwersalna maszyna licząca.
Wprowadzanie danych
w maszynie analitycznej
Do wprowadzania danych Babbage planował użyć kart
dziurkowanych, stosowanych w tym czasie przez J. Jacquarda
w napędzanych silnikiem parowym maszynach tkackich.
Stosowano je do wykonywania bardzo precyzyjnych prac.
Portret samego Jacquarda, utkany z jedwabiu, wymagał 24
tysięcy takich kart sterujących i był równie wierny jak portrety
olejne.
Warsztaty tkackie w dalszym ciągu pracują w oparciu o zasady
podobne do wymyślonych przez Jacquarda na początku XIX
wieku.
Karty
dziurkowane
jeszcze
w
latach
80-tych,
przed
rozpowszechnieniem bezpośredniej komunikacji z komputerami
przy pomocy klawiatur, stosowane były powszechnie do
sterowania pracą komputerów, przechowywania danych i
programów.
Nieskończony prototyp
współczesnych maszyn
cyfrowych
Maszyna analityczna nigdy nie została ukończona, gdyż
nawet w dzisiejszych czasach bardzo trudno jest zrobić
tak złożone urządzenie mechaniczne.
Wyobraźmy sobie urządzenie wielkości lokomotywy,
napędzane parą, wypełnione całkowicie małymi trybikami
i kółkami zębatymi.
Kto wie, może podobnie jak zbudowano maszynę
różnicową uda się dzięki zastosowaniu dzisiejszej techniki
zbudować również maszynę analityczną?
W każdym razie można ją uznać za prototyp
współczesnych maszyn cyfrowych.
Wielka przyszłość czekała natomiast karty dziurkowane -
użyte zostały do obliczeń już 20 lat po śmierci Babbage'a.
Maszyna Hermanna
Hollerith’a
Zgodnie z konstytucją USA co 10 lat należy sporządzać spis
powszechny. W 1885 roku podliczanie danych ze spisu
powszechnego z 1880 roku było dalekie od zakończenia.
Szukano
jakichś
sposobów
zautomatyzowania
przetwarzania
danych
gdyż
z powodu szybkiego wzrostu liczby ludności w USA
zachodziła obawa, że nie uda się opracować wyników
danego spisu przed początkiem następnego!
Amerykański statystyk, Hermann Hollerith, opracował
elektryczną maszynę do wprowadzania, sortowania i
podliczania danych wykorzystującą dziurkowane karty.
Wyniki spisu z 1890 roku udało się dzięki temu opracować
w niecałe 3 lata. Podobne urządzenie wykorzystywane było
w
czasie
spisów
powszechnych
jeszcze
w 1950 roku.
Pierwsza firma „przemysłu
komputerowego”
Wynalazek maszyny tabulacyjnej dał Hollerithowi sławę i
bogactwo. Na jego cześć nazywano między innymi pewne
typy danych we wczesnych językach programowania.
Hollerith stosował swoją maszynę do statystycznej obróbki
danych nie tylko dla potrzeb rządowych, lecz również
biznesu, zakładając w 1896 roku Tabulating Machine
Company. Firma ta połączyła się później z kilkoma innymi
firmami tworząc International Business Machines, czyli
IBM, dzisiejszego giganta przemysłu komputerowego.
Maszyny
do
przetwarzania
danych
w
okresie
międzywojennym przeszły znaczną ewolucję przyczyniając
się do powstania maszyn do księgowości, zwanych
również tabulatorami.
Konrad Zuse
Pierwszy krok w kierunku czysto elektrycznych maszyn
liczących zrobił w 1933 roku niemiecki inżynier Konrad Zuse.
Zbudował on komputer oparty na przekaźnikach. Komputery
zbudowane na przekaźnikach określa się czasem mianem
komputerów zerowej generacji.
Przez prawie 200 lat idee dwójkowej reprezentacji liczb
wysunięte przez Leibniza nie były wykorzystywane. Budowano
kalkulatory działające w systemie dziesiętnym, zbudowano
arytmometr działający w systemie ósemkowym, a system
dwójkowy, w którym posługujemy się tylko dwoma cyframi, 0 i
1, pojawił się dopiero w maszynach na przekaźnikach. Dla
przekaźników dwójkowa reprezentacja jest naturalna, gdyż
przekaźniki to po prostu sterowane wyłączniki: są albo włączone
i przepuszczają prąd, albo wyłączone i prądu nie przepuszczają.
Maszyna Z3
Zuse w maszynie Z3 wprowadził zmiennoprzecinkową
arytmetykę, to znaczy posługiwał się nie tylko liczbami
całkowitymi, ale mógł wykonywać działania na
dowolnie dużych liczbach posługując się wykładnikami
dziesiętnymi (np. 234,1 biliona, czyli 234,1 × 10
12
,
łatwo jest zapisać w postaci zmiennoprzecinkowej, w
przeciwnym razie potrzebujemy 15 cyfr 234 100 000
000 000).
Z3 był to już w pełni funkcjonalny automat liczący
sterowany programem. Rekonstrukcję maszyny Z3
można obecnie obejrzeć w Deutsches Museum, w
Monachium.
Pierwsza propozycja
komputera lampowego
W pierwszych latach wojny Zuse wysłał projekt
budowy komputera opartego na lampach, oceniając
czas jego realizacji na około 2 lat. Projekt ten na
szczęście (dla losów wojny, a nie komputeryzacji)
odrzucono.
Początkowe szybkie sukcesy niemieckie nie sprzyjały
długofalowemu planowaniu, a w drugiej fazie wojny
było już za późno, by taki projekt ukończyć.
Kto wie, jak potoczyłyby się losy świata gdyby
Niemcy mieli do dyspozycji odpowiednią maszynerię
obliczeniową i zastosowali ją w swoim programie
budowy bomby atomowej ...
Pierwszy komputer
Mark I
Pracujący na Uniwersytecie Harvarda na
zlecenie marynarki wojennej Howard
Aiken zaprojektował pierwszą, w pełni
automatyczną maszynę liczącą, Mark I
Computer.
Była to konstrukcja 16-metrowej długości i
2.5 metrowej wysokości, w której 800 km
przewodów elektrycznych łączyło jej 750
tysięcy części. Ukończono ją w 1943 r.
Cechy maszyny Mark I
Dane wprowadzano do tej machiny przy pomocy
papierowej taśmy dziurkowanej.
Nie była to w pełni maszyna elektroniczna, raczej
udoskonalona konstrukcja elektromechaniczna, nie miała
również pamięci, w której można by przechowywać dane.
Zmiana
programu
obliczeń
wymagała
stworzenia
odpowiedniej sieci połączeń przy pomocy kabli łączących
gniazda na specjalnej tablicy.
Mark I pracował w systemie dziesiętnym, a nie
dwójkowym. W ciągu sekundy dodawał zaledwie 3 liczby,
dla wykonania dzielenia zaś potrzebował aż 12 sekund, za
to wykonywał je z dokładnością do 23 cyfr. Maszyna ta
pracowała przez 16 lat i wykonano przy jej pomocy szereg
pożytecznych obliczeń.
John Atanasoff i
komputer ABC
Profesor matematyki i fizyki Uniwersytetu Stanowego
Iowa, USA, John Atanasoff, i jego doktorant Clifford
Berry, skonstruowali w latach 1937-42 komputer znany
pod nazwą ABC, czyli Atanasoff-Berry Computer.
Była to w pełni elektroniczna maszyna, zawierająca
kilka rewolucyjnych na owe czasy pomysłów. Jej
prototyp działał już w 1939 roku. Pracowała w oparciu o
arytmetykę binarną i miała pamięć działającą w
oparciu
o
lampy
próżniowe
i kondensatory. Nie był to jednak układ programowalny.
Waga talentów
organizacyjnych
Atanasoff
był
chyba
lepszym
uczonym
niż
organizatorem, gdyż nie udało mu się przekonać ani
rządu USA, ani wielkich firm produkujących sprzęt
biurowy, o potrzebie budowy takiej maszyny.
Oceny zapotrzebowania na komputery były więcej niż
skromne: uznano, że w całych Stanach Zjednoczonych
nie trzeba więcej niż kilku sztuk takich maszyn!
Atanasoff nie zdołał również opatentować swoich
pomysłów, gdyż zrobili to przed nim twórcy ENIACa,
John Mauchly i Presper Eckert Jr.
Do dzisiaj toczą się spory, na ile zapożyczyli oni
kluczowe pomysły od Atanasoffa.
ENIAC
W 1940 roku Atanasoff pokazał prototyp swojego
komputera Johnowi Mauchly, który pracował wówczas
w szkole inżynierii Uniwersytetu Pensylwanii. W ciągu 6
lat Mauchly i doktorant szkoły inżynierii, Presper Eckert,
zbudowali przy znacznym finansowym wsparciu wojska
maszynę liczącą o nazwie ENIAC (jest to akronim od
„Electronic Numerical Integrator and Computer”, czyli
elektroniczna maszyna do całkowania numerycznego i
obliczeń).
Była to elektroniczna maszyna zbudowana w oparciu o
lampy próżniowe. W odróżnieniu od komputera ABC
posłużono się jednak nie binarnym, lecz dziesiętnym
systemem liczenia.
Właściwości i przeznaczenie
ENIAC’a
Ukończony w 1946 roku ENIAC był ogromną maszyną:
ważył 30 ton i wymagał 175 kilowatów mocy,
wypełniając prostokąt 7 na 13 metrów. Zawierał
prawie 18 tysięcy lamp i tysiące przekaźników.
Głównym zadaniem ENIAC-a miało być obliczanie
tablic zasięgu pocisków dla artylerii oraz praca nad
programem budowy bomby wodorowej.
W ciągu sekundy komputer potrafił wykonać 5000
dodawań, 350 mnożeń lub 40 dzieleń. Ta imponująca
maszyna zastosowana została nie tylko dla potrzeb
wojskowych, lecz również do obliczeń naukowych i
inżynierskich.
Początki zdalnej komunikacji
w maszynach liczących
George Stibitz, inżynier-matematyk pracujący w
laboratorium Bella, ukończył w 1940 roku kalkulator o
nazwie „The Complex Number Calculator”. Pracował
on w systemie dwójkowym i mógł wykonywać cztery
podstawowe działania arytmetyczne.
Do tego kalkulatora dołączono kilka dalekopisów
umożliwiających zdalne wprowadzanie danych i
odbieranie wyników obliczeń.
Stibitz zademonstrował działanie swojego wynalazku
na
posiedzeniu
Amerykańskiego
Towarzystwa
Matematycznego w miejscowości odległej o 400 km
od jego laboratorium.
Komputer uniwersalny
Zmiana programu - poleceń, które ma wykonać
maszyna
-
we
wszystkich
dotychczas
opisywanych komputerach wymagała zmian
jego połączeń.
Kluczową ideą w budowie „uniwersalnego”
komputera, a więc takiego, który bez zmiany
konfiguracji sprzętu może wykonać dowolne
obliczenia, było przechowywanie danych jak i
samego programu w tej samej postaci: w
pamięci.
John von Neumann
i „maszyna z Princeton”
Wielu ludzi przyczyniło się do rozwinięcia tej
idei,
jednak
decydujący
wpływ
w
jej
upowszechnieniu miał jeden człowiek, którego
nazwisko najczęściej podaje się jako wynalazcę
komputera.
John
von
Neumann,
genialny
węgierski
matematyk pracujący w USA, opisał projekt
uniwersalnego komputera, znanego pod nazwą
„maszyna
z
Princeton”
w raporcie rozpowszechnianym w 1945 roku.
EDSAC
W 1949 roku powstały, prawie w tym samym
czasie, dwa projekty maszyn wykorzystujące
kluczową ideę von Neumanna: program i dane
dla programu powinny być przechowywane w
pamięci komputera w tej samej, binarnej postaci.
Do tej pory prawie wszystkie używane
komputery
nazywa
się
„maszynami
von
Neumanna”. W Anglii, na Uniwersytecie w
Cambridge, pod kierownictwem Maurice Wilkesa,
zbudowano
maszynę
o
nazwie
EDSAC
(Electronic Delay Storage Automatic Computer).
Analogowe vs. cyfrowe
W owym czasie wcale nie było rzeczą jasną, czy
urządzenia cyfrowe okażą się bardziej przydatne
od komputerów analogowych.
Pierwsze komputery analogowe, budowane od
początku lat trzydziestych, mogły rozwiązywać
złożone zagadnienia znacznie szybciej niż maszyny
cyfrowe. W zastosowaniach inżynierskich i
naukowych komputery analogowe przetrwały
bardzo długo, w latach siedemdziesiątych już
gównie w symbiozie z urządzeniami cyfrowymi pod
postacią
komputerów
hybrydowych,
czyli
analogowo-cyfrowych.
Program przechowywany
w pamięci
Jak już wspomnieliśmy, wprowadzanie i zmiana programów dla
ENIAC-a było ekstremalnie nudne. Proces programowania
mógłby być ułatwiony, jeśliby program mógł być reprezentowany
w formie odpowiedniej do przechowywania w pamięci razem z
danymi. Komputer pobierałby wtedy rozkazy przez odczytywanie
ich z pamięci, a program mógłby być instalowany lub zmieniany
przez zmianę zawartości części pamięci.
Idea ta, znana jako koncepcja przechowywanego programu,
jest zwykle przypisywana projektantom ENIAC-a, głównie zaś
matematykowi
Johnowi
von
Neumannowi,
który
był
konsultantem w tym przedsięwzięciu. Niemal w tym samym
czasie koncepcja taka została opracowana przez Turinga. Po raz
pierwszy idea ta została opublikowana w roku 1945 w propozycji
von Neumanna opracowania nowego komputera pod nazwą
EDVAC (skrót od ang. Electronic Discrete Variable Computer).
EDVAC
Spory o prawa patentowe z władzami uniwersytetu
w Pensylwanii spowodowały, iż autorzy projektu
wycofali się z pracy nad uniwersalnym komputerem
według projektu von Neumanna, komputerem
nazwanym EDVAC (Electronic Discrete Variable
Automatic Computer, czyli elektroniczny komputer
posługujący się dyskretnymi zmiennymi).
Obaj wynalazcy odeszli do własnej, prywatnej firmy
a EDVACa ukończono z dużym opóźnieniem dopiero
w 1951 roku. Od tego czasu dokonano wielu
udoskonaleń konstrukcji komputerów, jednakże
podstawowe zasady nie uległy zmianie.
Alan Turing
Jednym z głównych inspiratorów rozwoju komputerów
w Anglii był Alan Turing (1912-1954), twórca teorii
automatów, dziedziny stanowiącej matematyczne
podstawy teorii obliczeń.
Chociaż największe znaczenie dla rozwoju informatyki
miały jego prace teoretyczne, w szczególności praca z
1936 roku podająca teoretyczny model komputera
(„automatu
Turinga”)
oraz
rozważania
nad
obliczalnością,
czyli
możliwościami
rozwiązania
problemów przez prowadzenie obliczeń, niezwykle
ważne
było
jego
zaangażowanie
się
w plany budowy maszyn liczących.
Collossus
W czasie wojny Turing należał do grupy
ekspertów
zaangażowanych
w
odcyfrowy-
wanie niemieckich szyfrów.
Dla
potrzeb
deszyfracji
zbudowano
imponującą maszynę liczącą o nazwie Collossus.
Analizowała
ona
tysiące
wiadomości
dziennie
poszukując właściwego klucza (zmienianego trzy razy
dziennie), dzięki któremu Enigma mogła odcyfrować
wiadomości. Jeden ze współpracowników Turinga tak
powiedział komentując jego rolę w programie łamania
niemieckich szyfrów
:
„Nie powiem, że dzięki Turingowi
wygraliśmy wojnę ale śmiem powiedzieć, że bez niego
moglibyśmy ją przegrać”.
ACE
Po wojnie Turing nadal zaangażowany był w
program budowy komputerów. W 1950 roku
ukończono
budowę
komputera
ACE
zbudowanego w oparciu o jego idee.
Pisał też na temat możliwości budowy
inteligentnych
maszyn,
przewidując
ich
powstanie
przed
końcem
tego
wieku.
Interesowały
go
również
eksperymenty
chemiczne i w tej dziedzinie dokonał kilku
ciekawych odkryć.
Struktura organizacyjna
komputera IAS
W roku 1946 von Neumann i jego koledzy rozpoczęli
projektowanie
nowego
komputera
wykorzystującego
program przechowywany w pamięci. Miało to miejsce w
Princeton Institute for Advanced Studies, a komputer
określono skrótem IAS. Komputer IAS, chociaż nie został
ukończony do roku 1952, był prototypem wszystkich
następnych komputerów o ogólnym przeznaczeniu.
Składniki struktury
komputera IAS
Pamięć główna, w której są przechowywane zarówno dane,
jak i rozkazy,
Jednostka
arytmetyczno-logiczna
(ALU)
mogąca
wykonywać działania na danych binarnych,
Jednostka sterująca, która interpretuje rozkazy z pamięci i
powoduje ich wykonanie.
Urządzenia wejścia-wyjścia, których pracą kieruje
jednostka sterująca.
Z rzadkimi wyjątkami wszystkie dzisiejsze komputery
mają tę samą ogólną strukturę I funkcję, są wobec
tego określane jako maszyny von Neumanna. Jednostka
sterująca uruchamia IAS, pobierając rozkaz z pamięci i
wykonując go - jeden rozkaz w określonym momencie.
Komputer jest
hierarchicznym systemem
złożonym
Współczesne
komputery
zawierają
miliony
elementów elektronicznych. Jak więc można je
prosto opisać?
Kluczem jest rozpoznanie hierarchicznej struktury
najbardziej złożonych systemów, w tym komputera.
System hierarchiczny jest układem wzajemnie
powiązanych podsystemów, z których każdy
również ma strukturę hierarchiczną, aż do
osiągnięcia najniższego poziomu - podsystemu
elementarnego.
Podstawowe funkcje
realizowane przez
komputer
przetwarzanie
danych;
przechowywanie
danych;
przenoszenie
danych;
sterowanie.
Przetwarzanie danych
Oczywiście komputer musi móc
przetwarzać dane. Dane mogą
przybierać różne formy, a zakres
wymagań
odnoszących
się
do
przetwarzania
jest
szeroki.
Zobaczymy jednak, że istnieje tylko
niewiele podstawowych metod, lub
typów, przetwarzania danych.
Przechowywanie danych
Jest
również
bardzo
ważne,
aby
komputer
przechowywał dane.
Nawet jeśli komputer przetwarza dane jedynie „w
locie" (tzn. dane przychodzą, są przetwarzane i
natychmiast
wychodzą),
musi
on
czasowo
przechowywać chociażby te dane, które w danym
momencie
są
przetwarzane.
Występuje
więc
przynajmniej funkcja krótkotrwałego przechowywania.
Równie ważne jest, aby komputer realizował funkcję
długotrwałego przechowywania danych. Pliki danych
są przechowywane w komputerze, co umożliwia ich
późniejsze pobieranie i aktualizację.
Przenoszenie danych
Komputer musi móc przenosić dane pomiędzy sobą a
światem zewnętrznym.
Otoczenie operacyjne komputera składa się z urządzeń,
które są albo źródłami, albo odbiorcami danych.
Jeśli dane są otrzymywane od urządzenia bezpośrednio
połączonego z komputerem lub do niego dostarczane,
to taki proces jest określany jako proces wejścia-
wyjścia,
a samo
urządzenie
nazywa
się
peryferyjnym.
Jeśli dane są przenoszone na większe odległości, do
odległego urządzenia lub od niego, to proces taki jest
określany jako transmisja danych.
Sterowanie
Musi wreszcie istnieć możliwość
sterowania
tymi
trzema
funkcjami.
W ostateczności sterowanie to
jest wykonywane przez osoby,
które
wydają
komputerowi
polecenia.
Wewnątrz
systemu
komputerowego
jednostka
sterująca zarządza zasobami
komputera
i
koordynuje
działanie
jego
składników
funkcjonalnych,
zależnie
od
wprowadzonych poleceń.
Główne składniki
strukturalne komputera
Jednostka centralna (CPU). Steruje
ona działaniem komputera i realizuje
jego funkcję przetwarzania danych.
Często jest po prostu nazywana
procesorem.
Pamięć główna. Przechowuje dane.
Wejście-wyjście. Przenosi dane
między
komputerem
a
jego
otoczeniem zewnętrznym.
Połączenia systemu. Mechanizmy
zapewniające
łączność
między
procesorem, pamięcią główną a
wejściem-wyjściem.
Głównymi składnikami
strukturalnymi procesora
są:
Jednostka
sterująca.
Steruje
działaniem procesora i przez to
komputera
Jednostka arytmetyczno-logiczna
(ALU). Realizuje funkcję przetwarzania
danych przez komputer.
Rejestry.
Realizują
wewnętrzne
przechowywanie
danych
w
procesorze.
Połączenia procesora. Mechanizm
zapewniający
łączność
między
jednostką sterującą, ALU i rejestrami.
Struktura IAS
Rejestr
buforowy
pamięci
(ang. memory buffer register
- MBR). Zawiera słowo, które ma
być przechowywane w pamięci,
lub też jest wykorzystywany do
pobierania słów z pamięci.
Rejestr
adresowy
pamięci
(ang.
memory
address
register - MAR). Określa adres
w pamięci dotyczący słowa, które
ma być zapisane w rejestrze MBR
lub z niego odczytane.
Rejestr
rozkazów
(ang.
instruction register - IR).
Zawiera 8-bitowy kod operacyjny
rozkazu, który jest wykonywany.
Struktura IAS
Buforowy rejestr rozkazów (ang. instruction buffer
register - IBR). Jest wykorzystywany do czasowego
przechowywania podręcznego rozkazu pochodzącego ze
słowa w pamięci.
Licznik programu (ang. program counter - PC). Zawiera
adres następnej pary rozkazów, która ma być pobrana z
pamięci.
Akumulator (AC) i rejestr mnożenia-dzielenia (ang.
multiplier-quotier -MQ). Wykorzystywane do czasowego
przechowywania
argumentów
i
wyników
operacji
prowadzonych przez ALU. Na przykład, wynikiem mnożenia
dwóch liczb 40-bitowych jest liczba 80-bitowa; 40 najbardziej
znaczących bitów przechowuje się w akumulatorze (AC), a
najmniej znaczące w rejestrze MQ.
Cykl rozkazu IAS
Każdy cykl rozkazu składa się z dwóch podcykli. Podczas
cyklu pobrania rozkazu kod operacji następnego rozkazu
jest ładowany do rejestru rozkazu, natomiast część
adresowa - do rejestru MAR. Rozkaz ten może pochodzić
z rejestru IBR lub też może być uzyskany z pamięci
przez załadowanie słowa do rejestru MBR, a następnie
do rejestrów IBR, IR i MAR.
Gdy kod operacji znajdzie się w rejestrze IR, realizowany
jest cykl wykonywania. Układy sterujące rozpoznają
kod operacji i wykonują rozkaz, wysyłając odpowiednie
sygnały sterujące, które powodują, że przenoszone są
dane lub ALU wykonuje operację.
Rozkazy komputera IAS
Przenoszenie danych. Należą tu rozkazy powodujące przesyłanie
danych między pamięcią a rejestrami ALU lub między dwoma
rejestrami ALU.
Rozgałęzienia bezwarunkowe. Zwykle jednostka sterująca
wykonuje szeregowo rozkazy pochodzące z pamięci. Sekwencja
rozkazów może być zmieniona przez rozkaz skoku. Umożliwia to
wykonywanie operacji powtarzalnych.
Rozgałęzienia warunkowe. Skoki mogą być wykonywane
zależnie od pewnego warunku, co oznacza występowanie punktów
decyzyjnych.
Arytmetyka. Operacje wykonywane przez ALU.
Modyfikowanie adresu. Należą tu rozkazy, które umożliwiają
obliczanie adresów w ALU, a następnie wstawianie ich do rozkazów
przechowywanych w pamięci. Dzięki temu program uzyskuje
znaczną elastyczność adresowania.
UNIVAC i IBM 701
Mauchly i Eckert przegrali wyścig z grupą angielską
Wilkesa, gdyż pracowali jednocześnie w swojej własnej
firmie nad nowszą, doskonalszą konstrukcją. Był to
komputer UNIVAC firmy Sperry-Rand Corporation,
pierwsza maszyna cyfrowa sprzedawana komercyjnie.
Nabywcą pierwszego egzemplarza wyprodukowanego w
1951 roku było amerykańskie biuro rządowe zajmujące się
opracowaniem wyników spisu powszechnego.
Głównym programistą UNIVACa była pani doktor Grace
Hooper, późniejszy komandor marynarki wojennej USA.
Była ona też jednym z głównych inspiratorów powstania
popularnego języka komputerowego o nazwie COBOL.
Rok później, w 1952 roku, pojawił się Model 701 firmy
IBM.
Początek komercyjnego
wykorzystania komputerów
W czasie wyborów prezydenckich w
1952 roku UNIVAC użyty został przed
kamerami telewizyjnymi do analizy i
przewidywania wyników wyborów.
Era komercyjnych komputerów
rozpoczęła się na dobre.
UNIVAC I
UNIVAC
I
był
pierwszym
udanym
komputerem
komercyjnym. Był przeznaczony, jak wynika z jego nazwy,
zarówno do zastosowań naukowych, jak i komercyjnych.
W pierwszym artykule opisującym system tego komputera
wymieniono następujące przykładowe zadania, które
może on realizować:
– macierzowe rachunki algebraiczne,
– problemy statystyczne,
– obliczenia premii dla firmy ubezpieczającej na życie
oraz
– problemy logistyczne.
UNIVAC II
UNIVAC II, o większej pojemności pamięci i większej
wydajności niż UNIVAC I, powstał w późnych latach
pięćdziesiątych i stanowił ilustrację kilku tendencji, które
pozostały charakterystyczne dla przemysłu komputerowego.
Po pierwsze, postęp techniczny umożliwia firmom budowanie
coraz większych i potężniejszych komputerów.
Po drugie, każda z firm próbuje zapewnić kompatybilność
nowych maszyn w stosunku do starszych. Oznacza to,
że programy napisane dla starszych maszyn mogą być
stosowane w nowej maszynie. Strategia ta wynika z nadziei
na zachowanie klientów; jeśli klient zdecyduje się na kupno
nowej maszyny, zechce ją nabyć raczej w tej samej firmie,
aby uniknąć ewentualnych strat środków zainwestowanych w
programy.
IBM
IBM, który pomógł zbudować urządzenie Mark I, a
następnie był największym producentem urządzeń do
przetwarzania wykorzystujących karty perforowane,
wyprodukował swój pierwszy komputer elektroniczny z
przechowywanym programem - model 701 - w roku 1953.
Komputer
701
był
pierwotnie
przeznaczony
do
zastosowań naukowych.
W roku 1955 IBM wprowadził komputer 702, mający wiele
cech sprzętowych, które odpowiadały zastosowaniom w
biznesie.
Były to pierwsze modele z długiej serii komputerów
700/7000, która umożliwiła firmie IBM osiągnięcie pozycji
dominującego producenta komputerów.
Generacja 0
Często spotykanym pojęciem przy omawianiu
historii
komputerów
jest
„generacja
komputerów”.
Zerowa generacja to komputery budowane na
przekaźnikach.
Nie
były
to
komputery
„uniwersalne” w dzisiejszym rozumieniu, gdyż
ich programowanie wymagało bezpośrednich
zmian połączeń obwodów maszyny.
Budowano je od początku lat trzydziestych do
połowy lat czterdziestych.
Generacja 1
Pierwsza generacja to komputery budowane przy
wykorzystaniu
lamp
radiowych
od
połowy
lat
czterdziestych do końca lat pięćdziesiątych.
Utrzymanie w sprawnym stanie urządzeń, zawierających
tysiące lamp nie było rzeczą prostą. Lampy są duże i
zużywają bardzo dużo energii elektrycznej.
Odrębną sprawą był brak języków programowania, które
pozwoliłyby w prosty sposób na określenie zadania,
które komputer miał wykonać.
Komputery pierwszej generacji wykorzystywane były
głównie do przetwarzania informacji, tabulacji danych i
do obliczeń naukowych.
Generacja 2
Druga generacja to komputery budowane w latach
1959-1964 z wykorzystaniem tranzystorów. Wynalazek
tranzystora (1947), za który J. Bardeen, W.H. Brattain i
W. Shockley otrzymali nagrodę Nobla, zrewolucjonizował
wiele dziedzin życia, od elektroniki użytkowej po
komputery.
Tworzenie bardziej złożonych urządzeń w oparciu o
lampy próżniowe nie jest po prostu możliwe ze względu
na ich zawodność i duży pobór mocy.
Komputery na tranzystorach były mniejsze, tańsze,
zużywały znacznie mniej prądu i były bardziej
niezawodne, dzięki czemu można było je stosować do
zagadnień, wymagających dłuższych obliczeń.
Pamięci ferrytowe
W komputerach drugiej generacji pojawiły się
pamięci ferrytowe, złożone z malutkich magnesików
w kształcie pierścieni, nanizanych na siatkę drutów.
Prąd, przepływający przez druty, mógł zmienić
namagnesowanie pierścienia, zapisując w ten
sposób dwie możliwości: namagnesowany lub nie.
Dostęp do tak przechowywanych danych możliwy
jest w ciągu milionowych części sekundy, podczas
gdy dostęp do danych zapisanych na bębnie
magnetycznym
wymaga
tysięcznych
części
sekundy.
Wprowadzenie
pamięci
ferrytowych
oznaczało więc ogromne przyspieszenie obliczeń.
Inne zmiany
Są również jeszcze inne zmiany. W drugiej generacji
wprowadzono
bardziej
złożone
jednostki
arytmetyczno-logiczne oraz sterujące, zastosowano
ulepszone
języki
programowania,
a
także
rozpoczęto dostarczanie wraz z komputerem
oprogramowania systemowego.
Wraz z drugą generacją pojawiła się firma Digital
Equipment
Corporation
(DEC).
DEC została
założona w roku 1957 i w tym samym roku
wyprodukowała pierwszy komputer - PDP-1. Ten
komputer i ta firma dali początek minikomputerom,
które stały się tak ważne w trzeciej generacji.
Tendencje rynku
Od wprowadzenia serii 700 w roku 1952 do
wprowadzenia ostatniego modelu rodziny 7000 w
roku 1964 linia wyrobów IBM przechodziła ewolucję
typową dla wyrobów komputerowych. Kolejne
maszyny miały coraz większą wydajność, większą
pojemność oraz (lub) niższy koszt.
Rozmiar
pamięci
głównej,
liczony
w wielokrotnościach 2
10
słów 36-bitowych, wzrósł z
2K (1K=2
10
) do 32K słów, podczas gdy czas dostępu
do słowa w pamięci, to znaczy czas cyklu pamięci,
zmniejszył się od 30 μs do 1,4 μs. Liczba kodów
operacji wzrosła od umiarkowanych 24 aż do 185.
Sposoby zwiększenia
szybkości
Zwiększenie szybkości osiągnięto w wyniku rozwoju
elektroniki (np. tranzystory działają szybciej niż lampy
próżniowe) oraz przez wzrost złożoności układów.
Na przykład w IBM 7094 zastosowano pomocniczy rejestr
rozkazów (ang. Instruction Backup Register - IBR),
wykorzystywany
do
przechowywania
(buforowania)
następnego rozkazu. Na rozkaz pobrania jednostka sterująca
pobiera dwa sąsiednie słowa z pamięci. Z wyjątkiem
występowania rozkazu skoku, co nie jest zbyt częste,
jednostka sterująca potrzebuje zaledwie połowę cyklu
rozkazu na dostęp do rozkazu w pamięci.
To tzw. wstępne pobieranie (lub inaczej pobieranie z
wyprzedzeniem, ang. prefetching) znacznie redukuje
przeciętny czas cyklu rozkazu.
Kanały danych
Na rysunku jest pokazana
rozszerzona
(urządzeniami
peryferyjnymi) konfiguracja
IBM
7094,
która
jest
reprezentatywna
dla
komputerów
drugiej
generacji.
Najważniejszą
różnicą
w
stosunku do IAS jest użycie
kanałów danych.
Kanał
danych
jest
niezależnym
modułem
wejścia-wyjścia z własnym
procesorem i własną listą
rozkazów.
Zyski ze stosowania
kanałów danych
W systemie komputerowym wyposażonym w takie
urządzenia procesor nie wykonuje szczegółowych
rozkazów wejścia-wyjścia.
Rozkazy takie są przechowywane w pamięci głównej, po
czym są wykonywane przez specjalny procesor w
samym kanale danych. Procesor inicjuje przesyłanie
danych z wejścia-wyjścia przez wysłanie sygnału
sterującego do kanału danych, powodując wykonanie
przez niego sekwencji rozkazów zawartych w pamięci.
Kanał danych realizuje swoje zadanie niezależnie od
procesora, sygnalizuje tylko procesorowi zakończenie
operacji. W takim rozwiązaniu procesor jest odciążony
od wykonywania części przetwarzania.
Multiplekser
Inną nową cechą jest występowanie
multipleksera,
który
stanowi
centralny punkt zbieżny kanałów
danych, procesora i pamięci.
Multiplekser
szereguje
dostęp
procesora
i kanałów
danych
do
pamięci, pozwalając tym urządzeniom
na działanie niezależne.
Zastosowania komputerów
drugiej generacji
Typowe zastosowania tych komputerów to:
przetwarzanie informacji,
księgowość
obliczenia naukowo-inżynierskie.
Programy
uruchamiano
wczytując
informację
z dziurkowanych kart a wyniki odbierano
w postaci wydruków.
Generacja 3
Trzecia generacja to komputery budowane w latach
1965-1970, działające w oparciu o układy scalone
(nazywane w skrócie IC, od angielskiej nazwy „Integrated
Circuits”).
Rozpoczęła ją „seria 360” komputerów firmy IBM.
Pierwsze urządzenie półprzewodnikowe, spełniające
funkcję kilku tranzystorów, zbudował w 1958 i
opatentował w rok później Jack Kilby. Pracował on
wówczas w firmie Texas Instrument, która jest znanym
producentem układów półprzewodnikowych.
Te pierwsze obwody scalone określa się mianem SSI
(Small Scale of Integration), czyli obwodów o małej skali
integracji, gdyż zawierały one tylko kilka do kilkunastu
struktur półprzewodnikowych na jednej płytce.
Bramki
Jak wiemy, podstawowe elementy komputera cyfrowego
muszą realizować funkcje przechowywania, przenoszenia,
przetwarzania i sterowania.
Potrzebne są do tego tylko dwa typy podstawowych
składników: bramki i komórki pamięci.
Bramka jest przyrządem, który realizuje prostą funkcję
logiczną, taką jak „jeśli A i B są prawdziwe, to prawdziwe jest
C” (bramka I, ang. AND).
Przyrządy takie są nazywane bramkami, ponieważ sterują one
przepływem danych podobnie jak bramki (śluzy) w kanałach.
Komórki pamięci
Komórka
pamięci
jest
przyrządem,
który
może
przechowywać pojedynczy bit danych; oznacza to, że
przyrząd ten w określonym czasie może znajdować się w
jednym z dwóch stabilnych stanów.
Przez połączenie dużej liczby tych podstawowych
przyrządów możemy zbudować komputer.
Komputer składa się więc z bramek, komórek pamięci i
połączeń między nimi. Bramki i komórki pamięci są z kolei
zbudowane z pojedynczych podzespołów elektronicznych.
Układy scalone
Na rysunku jest przedstawiona kluczowa
koncepcja wytwarzania układów scalonych.
Cienka płytka krzemowa jest dzielona na wiele
małych
obszarów
o
powierzchni
kilku
milimetrów
kwadratowych.
W
każdym
obszarze jest wytwarzany identyczny układ
(mikroukład, ang. chip), po czym płytka jest
dzielona.
Każdy mikroukład składa się z wielu bramek
oraz z pewnej liczby kontaktów wejściowych i
wyjściowych. Jest on następnie montowany w
obudowie stanowiącej ochronę i zaopatrzonej
w końcówki do montażu. Na płytce z obwodem
drukowanym można następnie zmontować
pewną
liczbę
takich
obudów
w
celu
wytworzenia większych i bardziej złożonych
układów.
Korzyści z gęściej
upakowanych elementów
w układach scalonych
Koszt układów logicznych i pamięciowych komputera
maleje drastycznie.
Ponieważ
elementy
logiczne
i
pamięciowe
są
umieszczane coraz bliżej w coraz gęściej upakowywanych
mikroukładach, wzrasta szybkość działania.
Komputer staje się mniejszy, co umożliwia umieszczanie
go w najróżniejszym otoczeniu.
Maleją wymagania dotyczące mocy i chłodzenia.
Połączenia wewnątrz układu scalonego są o wiele bardziej
niezawodne niż połączenia lutowane. Im więcej układów
w każdym mikroukładzie, tym mniej połączeń między
mikroukładami.
IBM 360
System 360 był pierwszą zaplanowaną rodziną komputerów.
Rodzinę tą stanowiły komputery znacznie różniące się
wydajnością i ceną. W tablicy 2.4 są pokazane pewne kluczowe
własności różnych modeli z roku 1965 (każdy model rodziny jest
wyróżniony numerem modelu). Różne modele były kompatybilne
w tym sensie, że program napisany dla jednego modelu mógł być
wykonywany na innym modelu tej serii, przy czym jedyną różnicą
był czas potrzebny na wykonanie programu.
Komputery tej rodziny nie były zgodne z poprzednią serią 7000.
Zapewnienie zgodności powodowałoby ograniczenia architektury.
Z pewnymi rozszerzeniami i modyfikacjami architektura serii 360
pozostaje do dziś architekturą dużych komputerów IBM.
Koncepcja rodziny kompatybilnych komputerów była zarówno
nowa, jak i bardzo udana.
Własności rodziny 360
Podobna lub identyczna lista rozkazów.
Podobny
lub
identyczny
system
operacyjny.
Rosnąca szybkość.
Rosnąca liczba urządzeń wejścia-wyjścia.
Rosnący rozmiar pamięci.
Rosnąca cena.
Minikomputer
W tym okresie nastąpił nie tylko znaczny
postęp
w konstrukcji i niezawodności komputerów,
lecz również w sposobie ich programowania
oraz uniezależnieniu programów od konstrukcji
komputera, na którym programy te były
uruchamiane.
W 1965 roku firma DEC (Digital Electronic
Company) wprowadziła minikomputer (PDP-
8), urządzenie wielkości szafy.
OEM
Niska cena i mały rozmiar PDP-8 umożliwiły
innym
wytwórcom
zamawianie
go
i włączanie do systemu wyższego rzędu z
przeznaczeniem na sprzedaż.
Wytwórcy ci zostali określeni mianem
wytwórców sprzętu oryginalnego (ang.
original equipment manufacturers - OEM ),
zaś rynek OEM stał się i pozostaje nadal
głównym segmentem rynku komputerowego.
PDP-8 – zastosowanie
magistrali
W przeciwieństwie do architektury opartej na centralnym
przełączaniu wykorzystanej przez IBM w systemach 700/7000 i 360, w
ostatnich modelach PDP-8 zastosowano strukturę, która praktycznie
stała się uniwersalna dla minikomputerów i mikrokomputerów:
strukturę magistralową.
Omnibusem, składa się z 96 oddzielnych ścieżek sygnałów,
używanych do przenoszenia sygnałów sterowania, adresu i danych.
Ponieważ wszystkie urządzenia systemu używają wspólnego systemu
ścieżek sygnałowych, ich wykorzystywaniem musi sterować procesor.
Architektura ta jest wysoce elastyczna, gdyż umożliwia dołączanie
różnych modułów do magistrali w celu tworzenia różnych konfiguracji.
Terminale
Wielkim postępem była możliwość uruchamiania
programów z terminali - przyłączonych do komputera
prostych urządzeń, zawierających klawiaturę i ekran.
Terminale umożliwiały wielu użytkownikom jednoczesne
wykonywanie pracy na tym samym komputerze.
Pomimo
rozpowszechnienia
się
terminali
przechowywanie
danych
i programów na dyskach magnetycznych było drogie i
karty dziurkowane stosowano jeszcze na początku lat
80-tych.
Istniał
nawet
zawód
„przepisywacza
programów na karty dziurkowane”. Dopiero z chwilą
pojawienia
się
kolejnej
generacji
komputerów
dziurkowanie kart odeszło do lamusa.
Generacja 4
Czwarta generacja to komputery budowane na
układach scalonych o bardzo dużym stopniu
integracji. Umownie uważa się, że zapoczątkowała ją
w 1971 roku „seria 370” komputerów firmy IBM.
Mogło by się wydawać, że nie nastąpił żaden skok
jakościowy pomiędzy trzecią i czwartą generacją,
pojawiły się jedynie obwody LSI (Large Scale of
Integration), wielkiej skali integracji, o znacznie
większej liczbie struktur półprzewodnikowych w
jednej kostce. Dla technologii budowy komputerów
tysiące obwodów w jednej kostce, a potem dziesiątki
tysięcy w obwodach VLSI, to duża różnica.
Elektroniczne układy
pamięci
Przede wszystkim pozwoliło to wyeliminować
względnie wolne i zawodne pamięci ferrytowe. Ceny
komputerów mocno się obniżyły, dzięki zwiększonej
niezawodności elementów konstrukcje komputerów
mogły być znacznie bardziej złożone, co pociągnęło
za sobą wyraźny wzrost szybkości i poprawę innych
parametrów.
Komputery zaczęto budować w sposób modułowy.
Jednocześnie
postępy
w
oprogramowaniu
doprowadziły do tego, że te same programy można
było używać na komputerach produkowanych przez
różne firmy.
Mikroprocesory
Czwarta generacja komputerów obejmuje również
specjalne
obwody
scalone,
zwane
mikroprocesorami. Wynalazł je w 1969 roku Ted
Hoff, pracujący w firmie Intel.
Prawie równocześnie mikroprocesor skonstruował
również Victor Poor, pracujący dla Datapoint
Corporation.
Szef Intela, Robert Noyce, który sam ma wielkie
zasługi w rozwoju obwodów scalonych, postawił na
rozwój mikroprocesorów, dzięki czemu firma Intel
jest
obecnie
jedną
z
najbogatszych
i
najważniejszych w tej dziedzinie na świecie.
Komputery osobiste
Pojawienie się w końcu lat 70-tych komputerów osobistych
stworzyło nową jakość, zasługującą na nadanie im dumnej
nazwy nowej generacji. Tak się jednak nie stało.
Komputery osobiste, wyposażone w przyjazne, graficznie
zorientowane oprogramowanie okienkowe, dysponujące
dużą mocą obliczeniową i sprzężone ze sobą poprzez sieci
komputerowe stanowią istotnie urządzenia nowej generacji,
chociaż budowane są w oparciu o technologię VLSI.
Za początek ery komputerów osobistych uważa się
wprowadzenie przez firmę IBM w 1981 roku ich modelu IBM
PC, chociaż już wcześniej Apple Computers i inne firmy
wprowadziły
na
rynek
bardzo
udane
modele
mikrokomputerów.
Ewolucja procesorów na
przykładzie Intela
8080
Pierwszy
na
świecie
mikroprocesor
ogólnego
przeznaczenia. Było to urządzenie 8-bitowe, z 8-bitową
ścieżką danych do pamięci.
8086. Daleko potężniejsze, 16-bitowe urządzenie. Poza
szerszą ścieżką danych i większymi rejestrami, mikroprocesor
8086 zawiera podręczną pamięć rozkazów, która wstępnie
pobiera kilka rozkazów przed ich wykonaniem.
80286. Stanowi on rozszerzenie mikroprocesora 8086,
umożliwiając adresowanie pamięci 16 MB zamiast tylko l MB.
80386. Pierwsze 32-bitowe urządzenie Intela, jednocześnie
znaczne odnowienie linii mikroprocesorów. Mając architekturę
32-bitową, mikroprocesor 80386 rywalizował pod względem
złożoności i mocy z minikomputerami i komputerami
stacjonarnymi wprowadzonymi zaledwie kilka lat wcześniej.
Ewolucja procesorów na
przykładzie Intela
80486. W tym mikroprocesorze wprowadzono znacznie bardziej
złożoną i potężną technikę pamięci podręcznej, a także
wyrafinowane potoki rozkazów.
Pentium. Waz z Pentium Intel wprowadził do użytku techniki
superskalarne, co umożliwiło równoległe wykonywanie wielu
rozkazów.
Pentium 2. Procesor ten stanowi kontynuację prac nad
organizacją superskalarną, które rozpoczął procesor Pentium.
Ponadto szeroko jest wykorzystywane przewidywanie rozgałęzień,
analiza przepływu danych oraz spekulatywne wykonywanie
rozkazów.
Pentium 3. Wprowadzenie do linii wyrobów technologii opartej na
koncepcji RISC.
Pentium 4 Zaawansowane niesekwencyjne przetwarzanie
instrukcji, hiperthreading, wiele trybów energooszczędnych
RISC
W roku 1975 w firmie IBM opracowano minikomputer
801, w którym po raz pierwszy wprowadzono wiele
koncepcji architektury stosowanych w systemie
RISC. Minikomputer 801 wraz z procesorem RISC I z
Berkeley zapoczątkował rozwój RISC. Jednakże 801
był
tylko
prototypem
przeznaczonym
do
zademonstrowania koncepcji projektowych.
Sukces
minikomputera
801
skłonił
IBM
do
opracowania komercjalnego produktu RISC, pod
nazwą RT PC. Maszyna ta nie była sukcesem
komercyjnym i miała wielu rywali o porównywalnej
i większej wydajności.
Procesory PowerPC
W roku 1990 IBM wprowadził trzeci system, w
którym wykorzystano lekcję 801 i RT PC.
RISC System/6000 był zbliżoną do RISC maszyną
superskalarną
sprzedawaną
jako
urządzenie
stacjonarne o wysokiej wydajności. Wkrótce po jego
wprowadzeniu IBM zaczął określać jego architekturę
mianem POWER.
Następnie IBM nawiązał współpracę z firmą
Motorola,
w
której
opracowano
szereg
mikroprocesorów 68000, oraz z firmą Apple, która
wykorzystywała mikroukłady Motoroli w swoich
komputerach Macintosh.
Rodzina PowerPC
601 Mikroprocesor 601 wyprodukowano, aby wprowadzić na rynek
architekturę PowerPC tak szybko, jak było to możliwe. Jest on
maszyną 32--bitową.
603. Mikroprocesor przeznaczony dla komputerów biurkowych o
stosunkowo małej wydajności, przenośnych. Jest to również
maszyna 32-bitowa, porównywalna pod względem wydajności z
601, jednak kosztuje mniej, a wdrożenie jej jest bardziej efektywne.
604. Mikroprocesor przeznaczony dla komputerów biurkowych oraz
serwerów o stosunkowo małej wydajności. Jest to również maszyna
32-bitowa, jednak wykorzystano w niej bardziej zaawansowane
rozwiązania superska-larne w celu podniesienia wydajności.
620. Mikroprocesor dla serwerów o większej wydajności. Pierwsze
urządzenie z rodziny PowerPC, w którym wykorzystano w pełni 64-
bitową architekturę, łącznie z 64-bitowymi rejestrami i ścieżkami
danych.
Generacja 5
Piąta generacja to pojęcie zupełnie innego
rodzaju, gdyż nie jest związane z technologią, lecz
z samym sposobem funkcjonowania komputera -
nie chodzi tu o szybkość, lecz inteligencję.
Na początku lat 80-tych wysunięto projekty
budowy komputerów przetwarzających symbole i
formuły logiczne a nie dane tekstowe i
numeryczne.
Program ten dał interesujące rezultaty ale do tej
pory komputery piątej generacji nie pojawiły się
poza naukowymi laboratoriami.
Generacja 6
Szósta generacja to pojęcie używane czasami do
określenia komputerów o nowej architekturze, odbiegającej
od klasycznego pomysłu „maszyny z Princeton” von
Neumanna.
Należą do niej komputery wektorowe, komputery o bardzo
wielu jednocześnie pracujących procesorach, specjalne
układy eksperymentalne. Dlatego za pierwszy komputer tej
generacji uznać należy wyprodukowany w 1976 roku
superkomputer wektorowy Cray 1.
Mianem szóstej generacji niektórzy specjaliści określają
również neurokomputery oraz odległe jeszcze projekty
budowy biokomputerów, czyli komputerów opartych na
związkach
biologicznych
(węglowych)
a
nie
półprzewodnikowych (krzemowych).
Historia komputerów w
Polsce
1962 - Odra 1002 opracowana w Elwro
1964 - Odra 1003, pierwszy seryjnie
produkowany komputer w Polsce
1967 - Odra 1204, komputer na obwodach
scalonych; komputery Odra korzystały z
systemu operacyjnego brytyjskiej firmy ICL
1967
-
udany
minikomputer
(K2)
konstrukcji J. Karpińskiego; niestety, nigdy
nie uruchomiono jego produkcji
Historia komputerów w
Polsce
(cd.)
1973 - komputery serii JS EMC (Jednolity System
Maszyn Cyfrowych) RIAD pojawiły się na wystawie
w Moskwie; w Polsce od 1974 r. produkowano
model EC-1032 średniej mocy obliczeniowej.
Komputery RIAD korzystały z oprogramowania
systemowego IBM serii 360
1978 – minikomputery Mera
1986 - początek inwazji komputerów osobistych w
Polsce
1990 - większość z najbardziej znanych firm
komputerowych wkracza na nasz rynek
1993 - pojawiają się w Polsce pierwsze
superkomputery światowej klasy.
Materiały w internecie o
historii komputerów
http//www.phys.uni.torun.pl/~duch
http://www.computerworld.pl
/historia/timeline1.asp
http://pojeciownik.komputery.szkola
.net/hasla/kalendarium.htm
http://www.maxmon.com/history.htm