Dążenie
człowieka do ułatwienia sobie obliczeń doprowadziło do zbudowania liczydeł.
Były one używane już w starożytnej Grecji. Pierwszą maszynę liczącą, wykonującą
mechaniczne dodawania i odejmowania, zbudował w 1642 roku francuski matematyk,
fizyk i filozof
Blaise Pascal.
Do wykonywania wszystkich 4 działań była zdolna maszyna skonstruowana w 1671
roku przez innego znakomitego matematyka i filozofa, Niemca Gottfrieda W.
Leibnitza.
Pierwszą mechaniczną maszynę liczącą, którą można było produkować fabrycznie,
opracował w 1879 roku szwedzki konstruktor Wilhelm Odhner. Jego też uważa się za
twórcę stosowanych do dzisiaj arytmometrów.
W XIX wieku rozpoczęto również prace nad zbudowaniem maszyn liczących, zdolnych
do podawania wyników bardziej złożonych obliczeń. Pierwszą tego typu maszynę
zbudował ok.1822 roku angielski matematyk Charles Babbage. Był to układ
mechanicznych sumatorów do interpretowania tablic matematycznych metodą rachunku
różniczkowego.
Pierwszym właściwym komputerem, to znaczy maszyną zdolną do wykonywania różnych
operacji matematycznych według zadanego jej programu i podającej wyniki w formie
zapisu cyfrowego, było zbudowane w latach 1937-1944 przez Amerykanina Howarda H.
Aikena urządzenie MARK-1. Ten komputer miał przekaźniki
elektromagnetyczne i zajmował przestrzeń kilku pokoi. W znacznym stopniu
wykorzystano wiedzę i doświadczenie
Johna von Neumanna
przy jego budowie.
Dalszy szybki rozwój zawdzięczają komputery zastosowaniu w nich przekaźników
elektronicznych, najpierw lampowych, potem półprzewodnikowych. Pierwszy
elektroniczny komputer ENIAC był zbudowany w 1946 roku. Zaprojektowali go
Amerykanie, John W. Mauchly i
J.P. Eckert.
Później było już coraz łatwiej. W 1950 roku powstał pierwszy komputer
wykorzystywany do celów cywilnych. Następnym krokiem było pojawienie się
komputerów osobistych. Współczesne komputery mają potężną moc obliczeniową,
która z roku na rok wzrasta wraz z rozwojem miniaturyzacji.
Pierwszy Polski komputer XYZ został zbudowany w 1958 roku w Zakładzie Aparatów
Matematycznych Polskiej Akademii Nauk.
Mikroprocesor
to niepodzielny układ scalony, do którego wprowadzamy dane wejściowe i program
ich przetwarzania, a otrzymujemy dane wyjściowe.
Jednak procesor nie mógł by funkcjonować samodzielnie. Komputer musi przyjąć
dane wejściowe i program, dokonać na nich operacji przetwarzania, a następnie
wyprowadzić dane wyjściowe. Oprócz samego procesora potrzebne więc będą układy
do wprowadzenia i wyprowadzenia danych oraz układ do przechowania danych. Z tym
elementem możemy zbudować już mikro komputer.
Procesor przetwarza wprowadzone dane zgodnie z założonym programem.
Pamięć przechowuje program, dane, wyniki końcowe i cząstkowe. Wydzielono w niej
dwa elementy: pamięć stałą (ROM – read only memory) i pamięć operacyjną (RAM –
random acces memory).
Z pamięci ROM procesor może wyłącznie czytać, nie może natomiast wprowadzać do
niej żadnych danych. Przechowuje się w niej, między innymi, wszystkie niezbędne
dla procesora informacje.
Pamięć RAM przeznaczona jest do odczytu i zapisu. Wszystkie programy i dane są
najpierw umieszczane w RAM, a następnie przekazywane do procesora.
Układy wejścia/wyjścia (I/O – input/output) służą do komunikacji mikrokomputera
z takimi urządzeniami jak: dysk twardy, klawiatura, mysz, monitor, drukarka,
modem, skaner.
Procesor, pamięć i układy wejścia/wyjścia połączone są za pomocą magistrali
(szyny). W czasie każdej operacji wykonywanej przez mikrokomputer, po szynach
przesyłane są dane (takie jak wyniki działań), informacje dotyczące tego, jaka
operacja ma zostać wykonana na tych danych (na przykład zapis danych) oraz
adresy miejsca w pamięci lub układy wejścia/wyjścia, w którym ma być wykonana
określona operacja.
Jak komputer rozumie informacje
Komputer może przetwarzać grafikę, tekst, muzyką, wykonywać skomplikowane
działania matematyczne. Oczywiście, procesor nie przyjmuje informacji w postaci
liter, nut czy obrazków, a tylko przetwarza liczby, za pomocą których informacje
te zostały zapisane.
Wydaje się to oczywiste w przypadku działań matematycznych. No dobrze, a jeśli
uruchomiliśmy edytor tekstu, albo program graficzny, to gdzie tu liczby?
Istnieją sposoby, by nadać danej informacji postać cyfrową. Jeśli, na przykład,
każdej literze alfabetu przyporządkujemy inną liczbę, to dowolny wyraz będziemy
mogli przedstawić jako ciąg liczb. A taki zbiór danych może już być przetwarzany
przez procesor.
Analogicznie ma się rzecz z obrazkiem. Każdemu kolorowi przyporządkujemy jakiś
numer. Jeśli teraz podzielimy ilustracją na drobne punkty, to każdemu z nich
możemy przypisać liczby: współrzędne X i Y oraz numer koloru. W ten sposób
otrzymamy postać cyfrową naszego obrazka. A więc taką jaką procesor może
przetwarzać.
Posługując się systemem dziesiętnym, dowolną liczbę możemy przedstawić za pomocą
dziesięciu cyfr, od zera do dziewięciu. Na przykład.
1274 to 1*103+2*102+7*101+4*100
Przywykliśmy do tego sposobu zapisu, choć przecież istniały cywilizacje, które
używały innych systemów liczbowych, na przykład dwunastkowego. Skonstruowanie
procesora przetwarzającego liczby w systemie dziesiętnym było jednak bardzo
trudne.
Większość prostych urządzeń elektronicznych i mechanicznych (na przykład
włącznik światła) przyjmuje zazwyczaj jeden z dwóch stanów: włączony/wyłączony.
Tak też działają elementarne komórki komputera zapamiętujące informację.
Rejestrują dwa stany – istnienie informacji/brak informacji. Dlatego wszystkie
liczby przechowywane w pamięci, przetwarzane przez procesor i przesyłane po
magistralach, są reprezentowane w postaci dwójkowej (1 – informacja; 0 – brak
informacji), na przykład:
10011 to 1*24+0*23+0*22+1*21+1*20 – czyli 19
Komputer posługuje się więc systemem dwójkowym. Każdy sygnał (przyjmujący
wartość 0 lub 1) nazywa się bitem. Ciąg składający się z ośmiu bitów to bajt.
Proste komputery mogły przesyłać i przetwarzać jednobajtowe (ośmioznakowe) ciągi
bitów, czyli słowa maszynowe. Nowe procesory przetwarzają słowa dłuższe (16-,32-
czy 64-bitowe), dzięki czemu pracują szybciej.
Bajt stanowi podstawową jednostkę miary wielkości zakodowanej informacji. W
praktyce używa się jego wielokrotności: 210 (1024) bajtów to kilobajt (KB), 220
(1 048 576 bajtów) to megabajt (MB), 230 (1 073 741 824 bajtów) to gigabajt
(GB), czyli 1024 KB to 1 MB, a 1024 MB to 1 GB.