background image

Podstawowe pojęcia architektury i organizacji 
komputerów 
 
 
 

Można wyróżnić 3 poziomy opisu komputera: 

 
 

architektura 

co robi? 

organizacja 

jak działa? 

implementacja 

z czego jest zrobiony? 

 

 

 
 
 

Architektura komputera jest opisem zbioru funkcji, cech i elementów 
komputera, które są istotne z punktu widzenia programisty. Architektura odnosi 
się do tych atrybutów systemu, które mają bezpośredni wpływ na logiczne 
wykonywanie programu. 
 
Przykładami atrybutów architektury są: 
- lista 

rozkazów, 

-  liczba bitów wykorzystywanych do przedstawiania różnych typów danych 

(np. liczb całkowitych, znaków), 

-  metody adresowania pamięci. 
 
 
Organizacja komputera odnosi się do jednostek operacyjnych i ich połączeń, 
które stanowią realizację specyfikacji typu architektury. Projektant, na tym 
poziomie, dokonuje wyboru sposobu połączeń pomiędzy blokami, sposobu 
kodowania przesyłanej informacji, wyboru zasady działania układów 
sterujących itp. 
 
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, 

- wykorzystywana 

technologia 

pamięci. 

 
Na poziomie implementacji projektant dokonuje wyboru elementów, z których 
będzie budowany komputer, różnego ich rozmieszczenia, zasilania, chłodzenia 
itp. 

background image

KOMPUTER JAKO SYSTEM ZŁOŻONY 

 
Kluczem do opisu systemu jest rozpoznanie jego hierarchicznej struktury. 
 

System hierarchiczny 

 
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. 
Hierarchiczna struktura złożonych systemów ma podstawowe znaczenie 
zarówno dla ich projektowania, jak i opisu. Na każdym poziomie abstrakcji 
projektant zajmuje się struktura i funkcjami składników systemu. 
 

!"

S t r u k t u r a  to sposób wzajemnego powiązania składników (elementy i 
relacje między nimi). 

!"

F u n k c j e  określają działanie poszczególnych składników, jako części 
struktury. 

Dwa podejścia: 
-  zbudowanie kompletnego opisu począwszy od poziomu najniższego, 
- rozpoczęcie od obrazu systemu widzianego na poziomie najwyższym oraz 

dekompozycja systemu na podsystemy. 

 

Działanie

 

 
Podstawowe funkcje, które może realizować komputer: 

!"

przetwarzanie danych, 

!"

przechowywanie danych, 

!"

przenoszenie (przesyłanie) danych, 

!"

sterowanie. 

 

Struktura 

 
Główne składniki struktury komputera: 
J e d n o s t k a   c e n t r a l n a   ( C P U ) .  Steruje ona działaniem komputera 
i realizuje jego funkcję przetwarzania danych. Często jest po prostu nazywana 
procesorem. 
P a m i ę ć   g ł ó w n a .  Przechowuje dane. 
W e j ś c i e - w y j ś c i e .  Przenosi dane między komputerem a jego otoczeniem 
zewnętrznym. 
P o ł ą c z e n i a   s y s t e m u .  Mechanizmy zapewniające łączność między 
procesorem, pamięcią główną a wejściem-wyjściem. 
 

background image

Struktura komputera 

 

Urządzenia peryferyjne 

 

Komputer 

 

Jednostka 

centralna

 

Komputer 

Jednostka 

centralna 

Pamięć 
główna 

Połączenia 

systemowe 

 
 

Wejście-

wyjście 

background image

 

Jednostka 

centralna

 

Procesor (CPU) 

Jednostka 

sterująca 

Jednostka 

arytm.-log. 

(ALU) 

Połączenia 

wewnętrzne 

 
 

Rejestry 

 

Jed

Komputer 

PAO 

We-

wy 

Magistrala 

 

CPU

 

background image

Podstawowe zespoły funkcjonalne mikroprocesora 

 

Szyna sterowania

Rejestr instrukcji

Dekoder

Układ

sterujący

Multiplekser

Licznik rozkazów

Zespół rejestrów

ogólnego

przeznaczenia

Układ

realizujący

operację 

±

1

Akumulator

ALU

Szyna danych

Układ arytmetyczno-logiczny (ALU)

Zespół rejestrów

Rejestr

rozkazów,

dekoder i układ

sterujący

Szyna adresowa

Rejestr bitów

warunków

(znaczników)

 

 

background image

Inne układy

(pamięci,

układy wej/wyj)

Rejestr R

0

Rejestr R

N

Rejestr

przejściowy

ALU

.......

Szyna danych B (przesyłanie wyników)

Szyna danych A

Budowa mikroprocesora dwuszynowego

  

 

 

Inne układy

(pamięci,

układy wej/wyj)

Rejestr R

0

Rejestr R

N

ALU

.......

Szyna D

Szyna A

Szyna B

Budowa mikroprocesora trójszynowego 

 

background image

Przemieszczenie

0  0  0  0

Segment

0  0  0  0

Adres efektywny

Adres bazowy segmentu

0

0

15

15

Adres fizyczny

20 bitowy

Generacja adresu fizycznego 

 

background image

Do realizacji funkcji przechowywania, przenoszenia, przetwarzania i sterowania 
komputera potrzebne są tylko dwa typy podstawowych składników: 

!"

bramki 

!"

komórki pamięci. 

 
B r am k a  jest przyrządem, który realizuje prostą funkcję logiczną, taką jak, 
„ILOCZYN LOGICZNY A, B”. Jeśli A i B są prawdziwe, to prawdziwe jest C. 
 
K o m ó r k a   p am i ę c i  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. 
 
Schematy podstawowych elementów wykorzystywanych do budowy 
podzespołów komputera: 
 
 
 
 
 
 
 
 
 
 
 

Zapis 

Wejście 

Funkcja 

logiczna 

Boole’a 

Wyjście 

(a) bramka 

(b) komórka 
      pamięci 

Wejście 

Komórka 

pamięci 

binarnej 

Wyjście 

Odczyt 

background image

PARAMETRY KOMPUTERÓW 
 
- moc 

obliczeniowa 

• 

MIPS 

• 

MFLOPS 

- szybkość transmisji danych do/z różnych urządzeń 
- niezawodność 

• 

MTBF 

- koszt 
- .... 
 

Szybkość mikroprocesorów 

 
W przypadku mikroprocesorów dodawanie nowych układów oraz zwiększanie 
szybkości wynikające ze zmniejszenia odległości między nimi poprawiało 
wydajność 4-krotnie w ciągu każdych 3 lat (prawo Moore’a).  
 
Aby wykorzystać potencjalne możliwości mikroprocesora, należy zapewnić jego  
„zasilanie” ciągłym strumieniem zadań (rozkazów). Dlatego projektanci 
procesorów wykorzystują coraz bardziej wymyślne rozwiązania jak: 

!"

przewidywanie rozgałęzienia (ang. branch prediction), 

!"

analiza przepływu danych, 

!"

spekulatywne wykonywanie rozkazów. 

 

Równowaga wydajności 

 
Podczas gdy moc procesorów rosła z zawrotną szybkością, rozwój innych 
krytycznych zespołów komputera był zbyt wolny. Powstała potrzeba znalezienia 
r ó w n o w a g i   w y d a j n o ś c i :  
dostosowanie organizacji i architektury w celu skompensowania niezgodności 
między możliwościami różnych zespołów komputera. 
 
P r o b l e m   k r y t y c z n y : interfejs między procesorem a pamięcią główną. 
 
P r z y k ł a d o w e   s p o s o b y   r o z w i ą z a n i a   t e g o   p r o b l e m u :  
 

!"

zwiększanie liczby bitów, które są jednocześnie wprowadzane 
(projektowanie „szerokich” układów DRAM), 

!"

stosowanie bardziej efektywnych interfejsów pamięci DRAM przez 
umieszczanie układów buforowanych w strukturach DRAM, 

!"

redukowanie częstości odwołań do pamięci głównej przez wprowadzanie 
efektywnych struktur pamięci podręcznych (ang. cache) między procesorem 
a pamięcią główną.

background image

GENERACJE KOMPUTERÓW 

 
 
- komputery 

pierwszej 

generacji 

technologia lamp elektronowych 
 

-  komputery drugiej generacji (lata 50-te

technologia tranzystorów 
 

-  komputery trzeciej generacji (połowa lat 60-tych

układy scalone SSI (ang. small scale integration), 
układy scalone MSI (ang. medium scale integration
 

-  komputery czwartej generacji (połowa lat 70-tych

układy LSI (ang. large scale integration), era minikomputerów 

 
- komputery 

piątej generacji (połowa lat 80-tych

układy VLSI, wiele kierunków w rozwoju komputerów,  
architektury potokowe, RISC, systemy wieloprocesorowe 

background image

HISTORIA 

 

1627 Wilhelm Schickald - stworzył pierwsze dwa urządzenia do sumowania kilkucyfrowych 

liczb; 

1642 B. Pascal - opracował jeden z pierwszych szeregowych sumatorów/subtraktorów 

(urządzeń dodających i odejmujących); 

1694 C. W. Leibnitz - buduje pierwszy arytmometr czterodziałaniowy ( wcześniej, w 1671 

zbudował sumator równoległy ); 

1833 Ch. Babbage - realizuje projekt maszyny analitycznej, którą można uznać za 

pierwowzór późniejszych komputerów; 

1920  - zbudowano arytmometr elektryczny; 
1937-1944 - pod kierunkiem H. Aikena zbudowano przekaźnikowy, całkowicie 

zautomatyzowany Mark I ( komputer generacji 0); 

1945 J. von Neuman - określa zasadę obowiązującą we wszystkich powstających później 

komputerach (poza ENIAC’em): program maszynowy realizujący działania zlecone 
przez programistę zapisany jest w pamięci komputera; 

1946 J. W. Manchly i J. P. Eckert - budują ENIAC (Electronic Numerical Integrator and 

Computer - generacja 1): zawierał 18000 lamp i 1500 przekaźników, ważył 30 ton, 
pobierał 150kW mocy; czas wykonywania operacji: dodawanie w 0.2 ms, mnożenie w 
2.8 ms dla liczb dziesiętnych; 

1950 - powstaje EDVAC (Electronic Delay Storage Automatic Computer) z pamięcią na 

rtęciowych liniach opóźniających; 

1968 - po raz pierwszy użyto myszki jako urządzenia wskazującego; 
1970 - pierwsze komputery, które można zaliczyć do 4-tej generacji, m. in. PDP11 (układy 

LSI i VLSI); wyprodukowanie, przez Intel, pierwszej kości dynamicznej pamięci RAM;  

1971 - Intel sprzedaje pierwszy układ procesora (CPU), 4-bitowy, 108 kHz o oznaczeniu 

4004, technologia 10

µ

 ; 

1972 - Intel wprowadza procesor 8008, technologia 10

µ

, częstot. 108KHz, który może 

obsługiwać 16 KB pamięci RAM, czyli mniej więcej 1/1000 zasobów potrzebnych dla 
Windows 98; 

1974 - Intel buduje kolejny procesor, 8-bitowy 8080, technologia 6

µ

, częstot. 2MHz, zdolny 

obsłużyć 64KB RAM; 

1977 - Intel wprowadza procesor 8086, technologia 3

µ

, częstot. 5MHz;  

1981 - sprzedany zostaje IBM PC z systemem operacyjnym Microsoftu i kompilatorem 

BASIC’a, firma Osborn Computers tworzy pierwszy przenośny komputer osobisty 
bazujący na IBM PC. Ma on 64KB RAM i waży 10kg; 

1983 - Intel wprowadza procesor 80286, technologia 1,5

µ

, częstot. 8MHz; 

1985 - Microsoft wprowadza Windows 1.0, Intel wprowadza procesor 80386DX, technologia 

1

µ

, częstot. 16MHz; 

1987 - Microsoft sprzedaje 2 miliony egzemplarzy Windows 2.0; 

background image

1989 - Intel wprowadza procesor 80486DX, technologia 1

µ

, częstot. 25MHz, 

1,2 mln tranzystorów; 

1990 - Microsoft wypuszcza Windows 3.0; 
1991 - Microsoft wypuszcza Windows 3.1; 
1992 - Intel wprowadza procesor 80486DX2, technologia 1

µ

, częstot. 50MHz, 

1,2 mln tranzystorów; 

1993 - pojawia się wczesna wersja alfa produktu Microsoftu o nazwie Chicago - 

Win 95, Intel wprowadza procesor PENTIUM, technologia 0,8

µ

, częstot. 

60MHz, 3,1 mln tranzystorów; 

1995 - Microsoft wprowadza Windows 95 oraz Windows NT 3,51, Intel 

wprowadza procesor PENTIUM Pro, technologia 0,6

µ

, częstot. 150 - 

200MHz, 5,5 mln tranzystorów; 

1996 - wchodzi Windows NT 4.0; 
1997 - Intel wprowadza procesor PENTIUM MMX, technologia 0,35

µ

, częst. 

150 - 200MHz, 4,5 mln tranzystorów, w maju wprowadza PENTIUM II
technologia 0,35

µ

, częstot. 150 - 200MHz, 4,5 mln tranzystorów ; 

1998 - Microsoft wprowadza Windows 98, Intel wprowadza procesor 

CELERON, który jest odpowiednikiem PENTIUM II bez pamięci Cache 
L2; 

1999 – Pentium III, częstotliwość taktowania 450-700 MHz, technologia 0,25 

lub 0,18

µ

1999-2000 AMD K7 Athlon, częstotliwość taktowania  1GHz; 
2000 – Intel Itanium, 64-bitowa architektura, min. częstotliwość 800 MHz, 

VLIW, 1 MB cache L2, 2-4 MB cache L3; 

 
2001 
– Intel ELBRUS 2000, AMD SLEDGEHAMMER 
2002 – 
2003 – minimalna częstotliwość 3 GHz, technologia 0,08 

µ

 

 

 

 

 

 

background image

Architektura von Neumanna 

 

1. 

Wspólna pamięć do przechowywania zarówno rozkazów jak i danych. 

2. 

Pamięć jednowymiarowa, złożona z kolejno ponumerowanych komórek o 
jednakowej wielkości. 

3. 

Brak jawnego rozróżniania rozkazów i danych. 

4. 

Brak jawnej specyfikacji typów danych. 

5. 

Praca sekwencyjna - przed rozpoczęciem wykonywania kolejnego 
rozkazu musi zostać zakończone wykonywanie rozkazu chronologicznie 
poprzedniego. Każdy rozkaz określa jednoznacznie adres następnego. 

 

 

Procesor

Pamięć

operacyjna

(PAO)

Urządzenia

wej/wyj

Progra-

mowane

układy

wej/wyj

Szyna adresowa

Szyna danych

Szyna sterowania

Szyna wej/wyj

Sterowanie

 

Schemat blokowy komputera 

 
 
 
 
 
 

 

 

 

 

 

 

background image

Pamięć 
 
 

0 move 

1 add 

2 store 

3 stop 

5 2 

. . . 

 

 

 

 

 

 

 

Język 
wewnętrzny 

Język 
asemblera 

Język 
wysokiego 
poziomu 

  1011 0000 
  0000 0101 

MOV   CL, 5 

  1010 0000 
  0000 0000 
  0000 1111 

MOV A, [B2, B3] 

  0000 0000 
  1100 1000 

ADD  CL, A 

 
 
 
 
  A = A + 5 

  1110 0110 
  1010 1010 

OUT  [B2] 

  PRINT 

 

 
 
 

Pamięć główna 

adres 

WE

O/Z 

background image

 

Sekwencje czynności procesora w czasie wykonywania instrukcji 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Przykład. 
 
Hipotetyczny komputer o następujących własnościach: 
Rozkazy i dane są słowami 16-bitowymi. 
a) format rozkazu 
 

 

 
 
b) format liczby całkowitej 
 

 

 
 
 
c) wewnętrzne rejestry procesora 

  Licznik rozkazów (PC) 

/

 adres rozkazu 

  Rejestr rozkazów (IR) 

/

 wykonywany rozkaz 

 Akumulator 

 

(AC) 

/

 tymczasowe przechowywanie wyniku 

d) częściowa lista kodów operacji 

0001 

/

 Ładuj AC z pamięci 

0010 

/

 Zapisz AC do pamięci 

0101 

/

 Dodaj zawartość komórki pamięci do AC 

Faza pobrania 
rozkazu 

Dekodowanie 
rozkazu

 

Cykl maszynowy 

Cykl maszynowy 

Faza pobrania 
argumentu (ów) 

Faza wykonania 
rozkazu 

Cykl instrukcyjny 

           3  4 

 

Kod operacji 

 Adres 

  

0   1   

 Wartość 

background image

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Powyższy fragment programu dodaje zawartość słowa pamięci o adresie 940H 
do zawartości słowa zapisanego pod adresem 941H oraz zapisuje wynik pod 
adres 941H. Wykonywane są 3 rozkazy, które zostały opisane jako 3 cykle 
rozkazowe. W każdym cyklu pokazano fazę pobrania i wykonania rozkazu. 

 
 Pamięć 

300 

1 9 4 0 

301 

5 9 4 1 

302 

2 9 4 1 

 

 

 

 

940 

0 0 0 3 

941 

0 0 0 2 

 
 

Krok 1 

    Rejestry 
       CPU 

3 0 0 

     PC 

 

 AC 

1 9 4 0 

 IR 

 
 Pamięć 

300 

1 9 4 0 

301 

5 9 4 1 

302 

2 9 4 1 

 

 

 

 

940 

0 0 0 3 

941 

0 0 0 2 

 
 

Krok 2 

    Rejestry 
       CPU 

3 0 1 

     PC 

0 0 0 3 

 AC 

1 9 4 0 

 IR 

 
 Pamięć 

300 

1 9 4 0 

301 

5 9 4 1 

302 

2 9 4 1 

 

 

 

 

940 

0 0 0 3 

941 

0 0 0 2 

 
 

Krok 3 

    Rejestry 
       CPU 

3 0 1 

     PC 

0 0 0 3 

 AC 

5 9 4 1 

 IR 

 
 Pamięć 

300 

1 9 4 0 

301 

5 9 4 1 

302 

2 9 4 1 

 

 

 

 

940 

0 0 0 3 

941 

0 0 0 2 

 
 

Krok 4 

    Rejestry 
       CPU 

3 0 2 

     PC 

0 0 0 5 

 AC 

5 9 4 1 

 IR 

 
 Pamięć 

300 

1 9 4 0 

301 

5 9 4 1 

302 

2 9 4 1 

 

 

 

 

940 

0 0 0 3 

941 

0 0 0 2 

 
 

Krok 5 

    Rejestry 
       CPU 

3 0 2 

     PC 

0 0 0 5 

 AC 

2 9 4 1 

 IR 

 
 Pamięć 

300 

1 9 4 0 

301 

5 9 4 1 

302 

2 9 4 1 

 

 

 

 

940 

0 0 0 3 

941 

0 0 0 5 

 
 

Krok 6 

    Rejestry 
       CPU 

3 0 3 

     PC 

0 0 0 5 

 AC 

2 9 4 1 

 IR 

3

16

 + 2

16

 = 5 

background image

Przerwania i cykl rozkazowy 

 
 
Przekazywanie sterowania za pomocą przerwań 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Program użytkownika 

 


 

 

 

  # 

 

 

  # 

 

 

  # 

 

 
i+1 
 

 

  # 

 

 

  # 

 

Program obsługi 

przerwania 

 
 
 
 
 

 

 
 

 

 
 

 

Tutaj następuje 
przerwanie 

background image

Cykl rozkazu z przerwaniami 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Przerwania wielokrotne 

 
W przypadku obsługi wielu urządzeń możliwe jest, że przerwanie wywołane 
przez jedno z urządzeń nastąpi w czasie, w którym jest przetwarzane przerwanie 
spowodowane przez inne urządzenie. 
 
Sposoby postępowania z przerwaniami  wielokrotnymi: 

!"

blokowanie przerwań – procesor będzie ignorował sygnał żądania 
przerwania w czasie obsługi danego przerwania; 

!"

określenie priorytetów przerwań – przerwanie o wyższym priorytecie 
powoduje przerwanie programu obsługi przerwania o niższym priorytecie.

 

 

Start 

Pobierz 

następny 

rozkaz 

 

Wykonaj  

rozkaz 

Sprawdź, czy nie 

ma przerwania; 

przetwórz  

przerwanie 

Stop 

Przerwania dozwolone 

Przerwania zablokowane 

background image

Struktury połączeń 

 
Zbiór ścieżek łączących moduły (procesor, pamięć, wejście-wyjście) nazywamy 
strukturą połączeń. 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Dane 

Pamięć 

 

N słów 

0   

 

 

 

N-1   

 

Adres 

Dane 

Odczyt 

Zapis 

Sygnały 

przerwań 

Dane 

zewnętrzne 

Zapis 

Odczyt 

Dane 

wewnętrzne 

Moduł 

wejścia-wyjścia 

 

M portów 

Adres 

Dane 

wewnętrzne

Dane 

zewnętrzne 

Dane 

Sygnały 

sterujące

 

 
 
 
 

Procesor 

Rozkazy 

Dane  

Sygnały 

przerwań 

background image

Struktura połączeń musi umożliwiać przesyłanie danych: 

 

!"

Z   p a m i ę c i   d o   p r o c e s o r a .  Procesor odczytuje z pamięci rozkazy lub 
jednostki danych. 

!"

Z   p r o c e s o r a   d o   p a m i ę c i . Procesor zapisuje jednostki danych w 
pamięci. 

!"

Z   u r z ą d z e ń   w e j ś c i a   -   w y j ś c i a   d o   p r o c e s o r a . Procesor odczytuje 
dane z urządzenia wejścia-wyjścia za pośrednictwem modułu wejścia – 
wyjścia. 

!"

Z   p r o c e s o r a   d o   u r z ą d z e ń   w e j ś c i a   –   w y j ś c i a . Procesor wysyła 
dane do urządzenia wejścia – wyjścia. 

!"

Z   u r z ą d z e ń   w e j ś c i a   –   w y j ś c i a   d o   p a m i ę c i   l u b   n a   o d w r ó t 
W tych przypadkach zezwala się modułowi wejścia – wyjścia na 
bezpośrednią wymianę danych z pamięcią, bez pośrednictwa procesora, przy 
wykorzystaniu bezpośredniego dostępu do pamięci (DMA).

background image

Klasyfikacja komputerów 

 
W modelu von Neumana zakłada się, że komputer wykonuje program, 
umieszczony w jego pamięci i operujący na danych, które także 
znajdują się w pamięci. 
 
Zwiększenie efektywności (szybkości) działania komputerów można 
osiągnąć: 
-  poprzez zastosowanie nowych technologii, 
-  zastosowanie nowych rozwiązań w architekturze komputerów. 

 

Zwiększenie szybkości pracy komputera można uzyskać poprzez 
wprowadzenie zwielokrotnienia zarówno ciągu danych, jak i  
instrukcji. 
 
 
 

Klasyfikacja Flynna [1966] 

 
 
 
 
 

 

SISD 

 

SIMD 

 

MISD 

 

MIMD 

 
 
 
 

Pojedynczy  
ciąg danych 

Wielokrotny 
ciąg danych 

Pojedynczy ciąg 
instrukcji 

Wielokrotny 
ciąg instrukcji 

background image

Klasyfikacja Treleavena i Lima [1984] 

 
Opiera się na pojęciu bloku obliczeniowego. 
Blokiem obliczeniowym nazywa się wykonywaną operację wraz z jej 
argumentami i wynikami. Wykonywany program można przedstawić 
jako ciąg bloków obliczeniowych, których kolejność i momenty 
rozpoczęcia ich wykonywania są sterowane przez tzw. mechanizm 
sterujący. 
Wyróżnia się 4 rodzaje mechanizmów sterujących: 
1) samosterujące (ang. control driven), 
2) sterowane argumentami (ang. data driven), 
3) sterowane żądaniami (ang. demand driven), 
4) sterowane wzorcem (ang. pattern driven). 
 
Mechanizmy wymiany danych: 
1) mechanizm wspólnych danych (ang. shared data), 
2) mechanizm przesłań komunikatów (ang. message passing). 
 
 WSPÓLNE 

DANE 

PRZESYŁANIE 
KOMUNIKATÓW 

SAMOSTERUJĄCY 

COSH 

COME 

STEROWANE DANYMI 

DASH 

DAME 

STEROWANE ŻĄDANIAMI 

DESH 

DEME 

STEROWANE WZORCEM 

PASH 

PAME