Architektura1 id 67917 Nieznany (2)

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

4

1 add

5

2 store

6

3 stop
4

1

5 2
6

?

. . .

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

0

3 4

Kod operacji

Adres

0 1
S

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

1

2

#

#


#

#


#

#


i

i+1

#

#


#

#


M

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


Wyszukiwarka

Podobne podstrony:
Architektura5 id 67923 Nieznany (2)
Architektura3 id 67919 Nieznany (2)
Architektura4 id 67920 Nieznany (2)
Architektura2 id 67918 Nieznany
ArchitekturaKomputera2 id 67926 Nieznany (2)
Architektura6 id 67924 Nieznany (2)
ArchitekturaKomputera id 67925 Nieznany
PEK PB OPIS ARCHITEKTURA id 354 Nieznany
Architektura5 id 67923 Nieznany (2)
Architektura3 id 67919 Nieznany (2)
architektura aplikacji id 67748 Nieznany (2)
Architektura Neutrino 1 id 6791 Nieznany (2)
Architektura Komp2 id 67910 Nieznany (2)
Architektura ekoczasu id 67766 Nieznany (2)
5 Architektura MCU 2010 id 4004 Nieznany (2)
ARCHITEKTURA KOMPUTEROW id 6779 Nieznany (2)
Architektura Renesansu id 67864 Nieznany (2)
Architektura Komp5 id 67913 Nieznany (2)
Architektura drewniana 2 id 677 Nieznany (2)

więcej podobnych podstron