Architektura komputerów
Zagadnienia szczegółowe:
-
pojęcie komputera i systemu informatycznego
-
architektura komputera
-
organizacja logiczna komputera
-
koncepcja von Neumanna
-
procesor
-
cykl rozkazowy i przerwania
-
wielowątkowość, przetwarzanie potokowe, wielordzeniowość
-
pamięć
-
magistrala systemowa
-
jednostka centralna i jej elementy
-
interfejsy i złącza
-
pamięci zewnętrzne
-
karty rozszerzeń
- urządzenia zewnętrzne
Pojęcie komputera:
Komputer
(dawniej maszyna cyfrowa) to urządzenie (zespół urządzeń), które:
- pobiera dane wejściowe
- wykonuje na tych danych pewne operacje (obliczenia) zgodnie z określoną z góry
kolejnością poleceń programu (będącego skończonym ciągiem rozkazów/instrukcji
do wykonania, podanym w postaci zrozumiałej dla komputera)
- otrzymane wyniki tych operacji (obliczeń) przesyła użytkownikowi.
Powstanie i rozwój komputerów (urządzeń technicznych zdolnych do gromadzenia,
przechowywania i przetwarzania informacji) datuje się od początku lat 40-tych XX
wieku.
System informatyczny
(komputerowy) to system obejmujący
komputer i oprogramowanie zwykle wraz z bankiem danych (bazą danych
i oprogramowaniem do jej bezpośredniej obsługi).
Narzędzia informatyki to: komputery (hardware) + oprogramowanie (software)
Rodzaje komputerów
- superkomputery - zastosowania specjalne, np. w nauce lub wojskowości
- duże komputery (ang. mainframe) - stosowane np. w bankowości
- minikomputery - najczęściej stosowane jako serwery do obsługi przedsiębiorstw,
grup użytkowników, sieci komputerowych.
1
- mikrokomputery (komputery osobiste) - przeznaczone dla pojedynczego
użytkownika (IBM PC, MacIntosh)
- laptopy, notebooki - komputery przenośne
- palmtopy
Architektura komputera
to ustalenia obejmujące:
- organizację i strukturę komputera
- procesor i zbiór realizowanych przez niego instrukcji
- pamięć i sposoby jej organizacji
- magistrale systemowe
- urządzenia wejścia/wyjścia
Architektura von Neumanna
:
W 1946 r John von Neumann (1903-1957) podał założenia, które stały się
standardem w architekturze komputerowej.
Model ten obowiązuje do dzisiaj w tradycyjnych komputerach sekwencyjnych
(większość komputerów).
Elementami komputera sekwencyjnego są:
-
procesor
- jednostka arytmetyczno-logiczna (w tym
arytmometr
)
-
pamięć operacyjna o liniowej adresacji, w której jest zapisany program i dane
-
układy sterujące
- system
wejścia/wyjścia
(we/wy).
Jak działa komputer von Neumanna:
Program
(zbiór rozkazów/instrukcji opisujących jakie kroki należy wykonać w
określonej kolejności, aby rozwiązać zadanie) wprowadzany jest do systemu
komputerowego poprzez urządzenia wejścia/wyjścia i przechowywany w
pamięci
w
sposób identyczny, jak
dane
.
Dane i instrukcje programu są jednakowo dostępne dla procesora.
2
System (procesor) ma skończoną i funkcjonalnie pełną
listę rozkazów
.
Rozkazy są wykonywane w procesorze
sekwencyjnie
, w kolejności, w jakiej zostały
umieszczone w programie (tym samym w pamięci). Zmiana tej kolejności może
nastąpić w wyniku wykonania specjalnych rozkazów.
Pracę układów taktuje (synchronizuje)
zegar systemowy
.
Procesor
Procesor
(mikroprocesor, CPU – Central Processor Unit) to bardzo złożony, o dużej
skali integracji układ scalony, który wykonuje rozkazy, nadzoruje i synchronizuje
pracę wszystkich urządzeń w komputerze.
Zadania procesora:
- pobieranie rozkazów z pamięci
- dekodowanie rozkazów i ich interpretowanie
- pobieranie danych – z pamięci lub bezpośrednio z urządzeń wejścia
- przetwarzanie danych, czyli przeprowadzanie na danych operacji arytmetyczno-
logicznych
- zapisywanie danych – w pamięci lub na urządzeniach wyjścia
Procesor
tworzą:
- jednostka arytmetyczno-logiczna (
arytmometr
) – wykonuje obliczenia
- jednostka sterująca – odpowiada za przepływ informacji i steruje pracą całego
układu
-
rejestry
- bardzo szybka pamięć o niewielkiej pojemności, służy do
przechowywania bieżących danych i adresów:
* akumulator (A) – przechowuje argument lub wynik obliczeń
* licznik rozkazów (LR) – zawiera adres następnego do wykonania rozkazu
* flagi – określają wektor stanu procesora i wykonywanych obliczeń
-
lista rozkazów
- funkcjonalnie pełny zestaw poleceń „zapisanych” w języku
maszynowym, które procesor potrafi wykonać
Architektura CISC lub RISC
-
CISC
(Complex Instruction Set Computers):
* rozbudowana (kilkaset), uniwersalna lista rozkazów procesora
* zróżnicowany format rozkazów
* mała optymalizacja działania
* do pamięci może odwoływać się bezpośrednio duża liczba rozkazów
-
RISC
(Reduced Instruction Set Computers) (ARM, MIPS, SPARC):
* zredukowana (kilkadziesiąt) lista rozkazów procesora
* rozkazy są prostsze, bardziej zunifikowane, upraszcza to dekodowanie
* zwiększona liczba rejestrów
* zmniejszona liczba odwołań procesora do pamięci
* procesory są wydajniejsze niż procesory o architekturze CISC
-
EPIC
(Explicitly Paralell Instruction Computing)
* rozkazy CISC-owe są rozbijane na mikrorozkazy, które następnie są wykonywane
przez RISC-owy blok wykonawczy
3
Podstawowe parametry procesora:
- liczba tranzystorów: od kilku tysięcy do kilkuset milionów
- rozmiar elementów budujących jego strukturę: 45-90 nm
- wielordzeniowość: Dual Core, Quad Core
- częstotliwość pracy: kilka GHz
- długość słowa maszynowego tj. liczba bitów przetwarzanych w jednym cyklu (np.
procesor 32 lub 64-bitowy)
- liczba i przeznaczenie rejestrów
- lista rozkazów, architektura (CISC lub RISC)
- szybkość działania:
* w mipsach (Milion Instructions Per Second) (1 mips = 1 000 000 rozkazów na s)
* w megaflopach (1 megaflop = 1 048 576 operacji zmiennoprzecinkowych na s)
- pojemność
pamięci cache
współpracującej z procesorem
Prawo Moore'a
w oryginalnym sformułowaniu mówi, że ekonomicznie optymalna
liczba tranzystorów w układzie scalonym podwaja się co 18-24 miesiące. Moc
obliczeniowa komputerów podwaja się co 24 miesiące.
Cykl rozkazowy
Procesor pracuje w tzw.
cyklu rozkazowym (maszynowym):
1. pobranie z pamięci wskazanej przez adres podany w
liczniku rozkazów
kolejnego słowa maszynowego i przekazanie go do dekodera
2. rozpoznanie słowa (rozkaz lub dana); jeśli jest to rozkaz, to następuje wydzielenie
części
operacyjnej
(nr rozkazu z listy rozkazów procesora) i części
adresowej
(adres lub adresy argumentów i/lub wyniku)
3. na podstawie adresów pobranie z pamięci argumentów i wykonanie polecenia
(odwołanie się do odpowiedniego układu w arytmometrze) oraz przesłanie wyniku
pod wskazany adres
4. zwiększenie zawartości licznika rozkazów o 1 (lub o założoną jednostkę)
5. jeżeli operacja nie dotyczyła zakończenia programu, to powrót do pkt.1
Praca procesora regulowana jest przez
sygnał zegarowy.
Przerwania
W czasie wykonywania rozkazu może wystąpić zdarzenie nie związane z bieżącym
cyklem rozkazowym, ale wymagające od procesora jakiejś reakcji. W ostatniej fazie
cyklu następuje sprawdzenie, czy wystąpiło zgłoszenie takiego zdarzenia.
Jeśli nie było zgłoszenia, rozpoczyna się następny cykl rozkazowy. Jeśli było
zgłoszenie, nazywane
przerwaniem
(interrupt), następuje zidentyfikowanie źródła
przerwania, a następnie przekazanie sterowania do stosownej procedury obsługi.
Procedury obsługi przerwań są częścią
jądra systemu operacyjnego
.
Pojawienie się przerwania powoduje wstrzymanie aktualnie wykonywanego
programu i wykonanie przez procesor kodu procedury obsługi przerwania.
Rodzaje przerwań:
- sprzętowe
:
- zewnętrzne: sygnał przerwania pochodzi z zewnętrznego układu (np. z klawiatury,
napędu dysku) obsługującego przerwania sprzętowe
- wewnętrzne (diagnostyczne), nazywane wyjątkami (exceptions), zgłaszane przez
procesor dla sygnalizowania sytuacji wyjątkowych (np. dzielenie przez zero);
dzielą się na trzy grupy:
4
* faults – niepowodzenia
* traps – pułapki
* aborts – błędy, których nie można naprawić
- programowe
– są wynikiem wykonania specjalnego rozkazu programu, najczęściej
wykorzystywane do komunikacji z systemem operacyjnym
Rozszerzenia architektury von Neumanna:
-
wielowątkowość
- wykorzystuje podział programu na wątki (threads), które są
wykonywane niezależnie (nie musza oczekiwać wzajemnie na swoje wyniki)
- przetwarzanie
superskalarne
– oznacza możliwość wykonywania kilku rozkazów
na raz w jednym cyklu zegara, jest to możliwe dzięki zwielokrotnieniu jednostek
wykonawczych, co umożliwia
obliczenia równoległe
- przetwarzanie
potokowe (pipelining)
– kolejne rozkazy złożone znajdują się w
różnych stanach realizacji; rozkaz podzielony jest na wiele małych kroków (stopni)
obsługiwanych przez różne układy procesora
-
wielordzeniowość
– procesor składa się z kilku współpracujących ze sobą
układów tworzących w zasadzie samodzielne procesory
Pamięć
Pamięć służy do przechowywania programów i danych.
Fizycznie jest to zestaw układów elektronicznych, z których każdy w elementarnej
postaci może przyjmować dwa rozróżnialne stany
0
i
1
.
Charakterystyka pamięci:
- wewnętrzna (np. RAM), zewnętrzna (np. pamięć flash)
- dostęp: sekwencyjny (np. taśma magnetyczna), bezpośredni (np. dysk twardy),
swobodny (np. RAM)
- ulotna (np. RAM), trwała (nieulotna) (np. dysk twardy, CD-ROM)
- tylko do odczytu (np. ROM), zapisywalna 1x (CD-R) lub wiele razy (CD-RW)
- półprzewodnikowa (np. RAM, flash), magnetyczna (np. dyskietka), optyczna (np.
DVD-ROM), magnetooptyczna
Podstawowe parametry pamięci:
-
pojemność
– wyrażana w wielokrotnościach bajtów (B), np. 120 GB
-
czas dostępu
– czas niezbędny do zrealizowania operacji zapisu/odczytu lub czas
potrzebny na umieszczenie mechanizmu zapisu/odczytu w żądanym miejscu, od
kilku ns (cache) do kilku ms (dysk twardy)
- szybkość zapisu/odczytu
Rodzaje pamięci:
ROM (Read Only Memory)
– pamięć trwała, tylko do odczytu, zawartość zostaje
zapisana podczas procesu produkcji i np. umożliwia zainicjowanie pracy komputera
po włączeniu (BIOS - testowanie, wczytanie systemu operacyjnego)
PROM
pamięć tylko do odczytu z programowalną zawartością:
- EPROM
optycznie (UV) wymazywalna, odczytywana i zapisywana elektrycznie
-
EEPROM
elektrycznie wymazywalna
- pamięć flash
odmiana pamięci EEPROM
RAM (Random Access Memory)
– pamięć ulotna, o dostępie swobodnym,
wielokrotnie zapisywalna; przechowuje programy i dane
5