1. Historia rozwoju systemów komputerowych

1.10. Typy architektury komputerów

Architektura systemu komputerowego to sposób połączenia i organizacji jego poszczególnych elementów. Definiuje ona zatem budowę komputera bardziej na poziomie funkcjonalnym niż technologicznym. Ważne są tu takie elementy jak: sposób współpracy jednostki arytmetyczno-logicznej z urządzeniami zewnętrznymi, format danych, sposób organizacji i adresowania pamięci, budowa słowa rozkazowego, sposób kontroli wszystkich elementów systemu.
Z historycznego punktu widzenia najpierw podzielono komputery ze względu na sposób wykorzystania przez nie pamięci. Architektury komputerów noszą nazwy od uniwersytetów, na których powstały. W architekturze Harvardzkiej pamięć danych programu jest oddzielona od pamięci programu. Upraszcza to budowę komputera, ale ogranicza jego elastyczność. Taką architekturę mają niektóre dzisiejsze procesory sygnałowe. Architektura taka jest też wykorzystywana w mikrokomputerach jednoukładowych, gdzie program jest często zapisywany w nieulotnej pamięci ROM (EEPROM), natomiast dane zapisywane są w ulotnej pamięci RAM. Drugą, bardziej popularną architekturą jest architektura Princeton, gdzie mamy wspólną pamięć na program i dane.
W 1945 roku John von Neumann opublikował artykuł „First Draft of a Report on the EDVAC”. Zaproponował w nim architekturę, którą wg niego powinien mieć przyszły komputer. Prace te były oparte na analizie możliwości i niedostatków jednego z pierwszych działających komputerów – ENIAC, przy którego konstrukcji von Neumann współpracował. Głównym założeniem architektury von Neumann’a było wykorzystanie wspólnej pamięci do przechowywania programów i danych. Co ciekawe architektura ta obowiązuje do dziś w przypadku większości komputerów. Rysunek 8 przedstawia ogólną strukturę komputera zgodnego z architekturą von Neumanna.

 
Rys.8. Koncepcja komputera według von Neumanna

Komputer taki składa się z:
•    Jednostki arytmetyczno-logicznej (ALU), która wykonuje operacje arytmetyczne i logiczne na liczbach binarnych.
•    Pamięci głównej, w której przechowywane są dane i rozkazy.
•    Jednostki sterującej, która interpretuje i wykonuje rozkazy.
•    Urządzeń wejścia-wyjścia, sterowanych przez jednostkę sterującą, poprzez które są wprowadzane i wyprowadzane dane.
System komputerowy zbudowany w oparciu o architekturę von Neumana powinien mieć skończoną i funkcjonalnie pełną listę rozkazów, mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywania w pamięci w sposób identyczny jak dane. Dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora. Procesor przetwarza informacje dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i ich wykonywaniu.