Principy počítačů I

Transkript

Principy počítačů I
Principy počítačů I - Procesory
snímek 1
___________________________________
___________________________________
Principy počítačů
___________________________________
___________________________________
Část V
Procesory
© VJJ
___________________________________
1
___________________________________
___________________________________
snímek 2
___________________________________
Struktura procesoru
___________________________________
musí umožnit změnu stavu stroje v
libovolném kroku
uvolnění nebo znemožnění pohybu dat po
datových cestách
___________________________________
___________________________________
___________________________________
ŘÍZENÍ POMOCÍ INSTRUKCÍ
© VJJ
2
___________________________________
___________________________________
snímek 3
___________________________________
Realizace procesoru
___________________________________
technologie výstavby procesoru - obvykle
elektronické prvky
u číslicových počítačů vychází z realizace
logických funkcí elektronickými prvky a
jejich propojováním
___________________________________
___________________________________
___________________________________
© VJJ
3
___________________________________
___________________________________
snímek 4
___________________________________
Charakteristika logických prvků
___________________________________
logické vlastnosti - odpovídají
realizovaným logickým funkcím
fyzikální vlastnosti - měřitelné fyzikální
veličiny realizace (parametry logického
prvku)
___________________________________
___________________________________
___________________________________
statické parametry (např. počet vstupů prvku)
dynamickými parametry (např. zpoždění
signálu mezi vstupem a výstupem)
© VJJ
4
___________________________________
___________________________________
snímek 5
___________________________________
Skupiny logických prvků
___________________________________
kombinační logika (hradla) - obvodové
řešení logické funce
___________________________________
AND (logický součin), OR (logický součet) ...
___________________________________
sekvenční logika (klopné obvody) - výstup
závislý na vstupech a vnitřním stavu
obvodu
___________________________________
klopný obvod RS, D, JK ...
© VJJ
5
___________________________________
___________________________________
snímek 6
___________________________________
Realizace kombinační logiky (1)
Ux1
R1
Ux2
0
1
0
1
0
0
1
1
0
1
1
1
___________________________________
___________________________________
Ux1
R2
___________________________________
Ux2
U1
Uy
Uy
___________________________________
Realizace logické funkce pomocí relé
© VJJ
6
___________________________________
___________________________________
snímek 7
___________________________________
Základní kombinační obvody
Y
A
A
A
0
A
B
Y
AND
A&B
B
Y
B
Y
0
0
1
1
0
1
0
1
0
0
0
1
A
NAND
A
0
0
1
1
A &B
B
1
A
B
0
1
0
1
B
Y
0
0
1
1
0
1
0
1
0
1
1
1
A
B
Y
0
0
1
1
0
1
0
1
1
0
0
0
A
B
Y
0
0
1
1
0
1
0
1
0
1
1
0
Y
A
B
OR
A +B
Y
___________________________________
A
OR
A +B
A
Y
NOR
A +B
___________________________________
___________________________________
Y
1
1
1
0
A
B
Y
EXCL-OR
A B
© VJJ
___________________________________
7
___________________________________
___________________________________
snímek 8
___________________________________
Realizace kombinační logiky (2)
X
NOT
NOT
___________________________________
AND
OR
Y
___________________________________
S
AND
X
0
Y
0
P
0
S
0
0
1
0
1
1
0
0
1
1
1
1
0
___________________________________
P
AND
___________________________________
Polosečítací obvod realizovaný z logických hradel
© VJJ
8
___________________________________
___________________________________
snímek 9
___________________________________
Realizace sekvenční logiky (1)
tn
R
O
S
R
On+1
0
1
0
0
0
1
On
1
0
1
S
___________________________________
tn+1
___________________________________
___________________________________
1
Ō
Tabulka přechodů
___________________________________
Realizace klopného obvodu RS z hradel
kombinační logiky
© VJJ
9
___________________________________
___________________________________
snímek 10
___________________________________
Realizace sekvenční logiky (2)
___________________________________
složitější klopné obvody
___________________________________
"D" - zápis s náběžnou hranou hodinového pulsu
"JK" - záznam nové hodnoty se sestupnou hranou
hodinového pulsu
___________________________________
latch - průchozí paměťový obvod
...
© VJJ
___________________________________
10
___________________________________
___________________________________
snímek 11
___________________________________
Sestavy kombinačních obvodů
___________________________________
kodéry a dekodéry
multiplexery a demultiplexery
polosečítačky (vícebitové)
úplné sčítačky,
generátory přenosů
aritmeticko-logické jednotky
...
© VJJ
___________________________________
___________________________________
___________________________________
11
___________________________________
___________________________________
snímek 12
___________________________________
Sestavy sekvenčních obvodů
___________________________________
registry - uchování zapsané informace
čítače - počítání pulsů, které přijdou na
spouštěcí vstup (dekadické, binární ...)
posuvné registry - posouvají uloženou
informaci (bity)
paměti - uchovají uloženou informaci za
definovaných podmínek
...
© VJJ
___________________________________
___________________________________
___________________________________
12
___________________________________
___________________________________
snímek 13
___________________________________
Generování impulsů pro časování
T0
Pro časování obvodů
procesoru je třeba
generovat definované
posloupnosti impulsů,
které určují v jakých
okamžicích budou
aktivní jednotlivé části
procesoru.
T1
T2
___________________________________
T3
___________________________________
Clock
___________________________________
T0
___________________________________
T1
T2
T3
© VJJ
13
___________________________________
___________________________________
snímek 14
___________________________________
Řadič
___________________________________
Direktivní řadič - působí vždy stejně a nezávisle
___________________________________
na průběhu řízeného děje. Stavový diagram - graf
přechodů mezi stavy direktivního řadiče bude vždy
lineární řetězec
___________________________________
Zpětnovazební řadič - obecnější forma
uspořádání. Na jeho vstup mohou přicházet
signály o stavu ovládaných prostředků posloupnost řídících signálů je závislá na ději
ovládaných obvodech.
© VJJ
___________________________________
14
___________________________________
___________________________________
snímek 15
___________________________________
Direktivní řadič
1 2 3
řídící vodiče
___________________________________
n
___________________________________
Dekodovací logika
Start
Čítač
___________________________________
ulož
posuň
přičti
posuň
Hodiny
Příklad funkce
v daném stavu
___________________________________
Stavový diagram
© VJJ
15
___________________________________
___________________________________
snímek 16
___________________________________
Zpětnovazební řadič
signály o stavu ovládaných obvodů
___________________________________
kombinační
obvody řadiče
___________________________________
řídící signály
vnější
signály
kombinační
obvody
řadiče
___________________________________
ovládané
obvody
paměť vnitřního
stavu řadiče
___________________________________
vnější
řízení
© VJJ
16
___________________________________
___________________________________
snímek 17
___________________________________
Hlavní paměť
___________________________________
Výstup dat
Instrukční
kód
Adresa
___________________________________
Zápis
instrukce
Instrukční
dekodér
___________________________________
Řídící signály
Aritmeticko
logická
jednotka
Akumulátor
© VJJ
___________________________________
Zapsání hodnoty do
programového čítače
Vstup dat
Jednoadresový
procesor
Adresa
Adresový vstup
do paměti
Krok
programového
čítače
Programový čítač
Volba vstupu
Řízení
Zápis
Nulování
17
___________________________________
___________________________________
snímek 18
___________________________________
Vznik mikroprogramování
___________________________________
Složitost a náročnost pevné logiky tvořící jádro řadiče
procesoru omezovala jeho flexibilitu a zvyšovala cenu.
___________________________________
hostitelský počítač - jednodušší a rychlejší,
řízen zvláštním programem hluboko pod úrovní
asembleru, využívá plně zdrojů hardwaru
___________________________________
cílový počítač - poskytuje programátorovi
___________________________________
očekávané vlastnosti, instrukce na cílovém
počítači spustí odpovídající instrukční sekvenci na
hostitelském počítači.
© VJJ
18
___________________________________
___________________________________
snímek 19
___________________________________
Mikroprogramování
___________________________________
___________________________________
Systematický postup, který za pomoci
překladače mikroprogramů vytvoří binární
obsah řídicí paměti, která je základem
mikroprogramovaného řídicího obvodu.
___________________________________
___________________________________
© VJJ
19
___________________________________
___________________________________
snímek 20
___________________________________
Obecné schéma mikrořadiče
___________________________________
___________________________________
Paměť mikroprogramu
Datové obvody
procesoru
(registry, ALU
apod.)
___________________________________
AR mikroinstrukce
Logika výběru adresy
mikroinstrukce
Podmínkové signály
___________________________________
Registr instrukce
© VJJ
20
___________________________________
___________________________________
___________________________________
Wilkinsovo schéma mikrořadiče
___________________________________
Vnější
adresy
snímek 21
___________________________________
CMAR
Řídící paměť ROM
Adresový
registr paměti
mikroinstrukcí
Dekodér
binární na 1 z n
___________________________________
P
___________________________________
Řídící signály
© VJJ
Přepínač řízený
vnějšími
podmínkami
21
___________________________________
___________________________________
snímek 22
___________________________________
Formáty mikroinstrukcí
___________________________________
jednotlivá pole mikroinstrukce reprezentují
vstupní operandy
operace aritmeticko-logické jednotky
cílovou adresu pro výsledek operace
adresu příští mikroinstrukce
___________________________________
___________________________________
podle způsobu kódování rozlišujeme
horizontální mikroprogramování
vertikální mikroprogramování
nanoprogramování
© VJJ
___________________________________
22
___________________________________
___________________________________
___________________________________
Pam
ALU
BusA
BusB
Horizontální mikroprogramování
I/O
snímek 23
6
8
4
4
4
___________________________________
___________________________________
= 26 bitů
Řídící bity
mikroprogramu
Fáze
Výstup
řídícího
signálu
___________________________________
Čtení z paměti
mikroprogramu
___________________________________
Fáze
Výstup
řídícího
signálu
Čas
© VJJ
23
___________________________________
___________________________________
snímek 24
___________________________________
BusB
4
ALU
3
BusA
I/O
Pam
Vertikální mikroprogramování
3
3
3
___________________________________
___________________________________
= 18 bitů
Kódovaná pole
mikroprogramu
Fáze
Výstupy
řídících
signálů
___________________________________
Čtení z paměti
mikroprogramu
___________________________________
Fáze
Výstup
řídícího
signálu
Čas
© VJJ
24
___________________________________
___________________________________
snímek 25
___________________________________
Nanoprogramování
k
Adresa příští
mikroinstrukce
Adresa nanoinstrukce
k
log2 k
___________________________________
___________________________________
log2 k
log2 v
St = k (n + log 2 k )
Nanopaměť
___________________________________
v
n
Adresa příští
mikroinstrukce
Řídící bity
___________________________________
Mikropaměť
Mikropaměť
n
S n = k (log 2 v + log 2 k ) + nv
© VJJ
25
___________________________________
___________________________________
snímek 26
___________________________________
Hlavní paměť
G
P
MAR
MDR
MD
Displej
R
IODR
Σ
A
___________________________________
R2
CS
-1.
AL
Bus R
ID
S1
___________________________________
R1
Klávesnice
W
IOAR
IA
Bus S
Virtuální procesor
MA
CS
INC
+1
INC
+0
___________________________________
AD
S2
Akumulátor
AC
___________________________________
S3
Programový
čítač
LC
S4
Adresa
operandu
R3
IN
IC
Řídící signály hradel
Mikroinstrukční řadič
© VJJ
26
___________________________________
___________________________________
snímek 27
___________________________________
Fáze instrukce LOAD
___________________________________
Fetch - vyzdvižení instrukce
1. [PC] → R3, S3, MA → [MAR], G → [MDR];
___________________________________
2. R1, IN → [instrukční registr];
3. [PC] → R3, AL, INC, → <sumátor> → A →[Akumulátor];
___________________________________
4. [Akumulátor] → S2, LC → [PC];
Execute - provedení instrukce
(rozdělení na dekódování a provedení)
___________________________________
[instrukční registr] → S4, MA → [MAR],
G → [MDR], R1, AC → [Akumulátor]
© VJJ
27
___________________________________
___________________________________
snímek 28
___________________________________
Instrukční cyklus
Vyzvednutí
(FETCH)
___________________________________
I-fáze
___________________________________
E-fáze
Provedení
Dekódování
(EXECUTE)
(DECODE)
___________________________________
___________________________________
© VJJ
28
___________________________________
___________________________________
snímek 29
___________________________________
Registry v hostitelském procesoru
___________________________________
___________________________________
+ délka instrukce
Posloupnost
instrukcí
Programový
čítač
+ vzdálenost skoku
Dekódování
instrukcí
Registr
instrukce
___________________________________
kód instrukce
___________________________________
obsah polí instrukce
© VJJ
29
___________________________________
___________________________________
snímek 30
___________________________________
Zrychlení jednotlivých fází
Zrychlení I-fáze:
___________________________________
Zrychlení E-fáze:
___________________________________
zrychlení spolupráce s rozdělení zpracování
hlavní pamětí
instrukce do
nezávislých stupňů
vytvořením stupňů a
paralelismů ve fázi
zavedením
čtení instrukce a její
predikčních
přípravy na zpracování
mechanismů
© VJJ
___________________________________
___________________________________
30
___________________________________
___________________________________
snímek 31
___________________________________
Procesory s proudovým
zpracováním
___________________________________
Podmínky proudového zpracování:
___________________________________
systém opakovaně provádí
základní funkci
základní funkce je dělitelná do
nezávislých kroků
složitost jednotlivých kroků je
přibližně stejná
© VJJ
___________________________________
___________________________________
31
___________________________________
___________________________________
snímek 32
___________________________________
Gantovy diagramy (1)
___________________________________
(1)
___________________________________
(2)
(3)
___________________________________
(4)
(5)
t0
t1
t2
t3
t4
t5
t6
t7
t8
t9
___________________________________
t10
Zpracování dvou instrukcí bez překrytí
© VJJ
32
___________________________________
___________________________________
snímek 33
___________________________________
Gantovy diagramy (2)
___________________________________
n.d
A=
n+d
(1)
(2)
___________________________________
(3)
___________________________________
(4)
(4)
t0
t1
t2
t3
t4
___________________________________
t5
Překrývání instrukcí při zpracování
© VJJ
33
___________________________________
___________________________________
snímek 34
___________________________________
Zpracování instrukce
___________________________________
___________________________________
Provedení
instrukce
Kalkulace adres
operandů
Čtení operandů
E-fáze
Analýza instrukce
Čtení instrukce
I-fáze
___________________________________
___________________________________
Paměť
© VJJ
34
___________________________________
___________________________________
snímek 35
___________________________________
Příklad závislostí při zpracování
___________________________________
Sčítání dvou čísel v
pohyblivé řádové čárce
Konflikt zdrojů
(R1)
___________________________________
___________________________________
Bubliny
(R2)
R2 = R0 + R1
R2 = R0 + R1
R4 = R3 + R1
R4 = R2 + R1
___________________________________
!!! Závislost řízení !!!
© VJJ
35
___________________________________
___________________________________
snímek 36
___________________________________
Vektorové procesory
___________________________________
Procesor zpracuje celý vektor jedinou instrukcí.
Délka vektoru je uložena ve zvláštním registru.
___________________________________
DO 10 I=1,N
A(I) = B(I)+C(I)
CONTINUE
___________________________________
Vektorizující kompilátor
___________________________________
Linka proudového
zpracování dat
© VJJ
36
___________________________________
___________________________________
snímek 37
___________________________________
Vektorové instrukce
___________________________________
pro stejný počet operací se dekóduje méně
instrukcí
lince proudového zpracování je předloženo
předem známé množství dat, tedy i dodávka
dat pro linku může být plynulá
rychlost zpracování je silně závislá na
paměťovém systému
© VJJ
___________________________________
___________________________________
___________________________________
37
___________________________________
___________________________________
snímek 38
___________________________________
Typy vektorových procesorů
___________________________________
- podle přístupu k operandům -
___________________________________
paměť-paměť - operandy jsou vyzdviženy z
paměti, předány do funkční jednotky a opět
ukládány do paměti
registr-registr - operandy jsou nejdříve uloženy
___________________________________
do sady vektorových registrů odkud jsou vybírány
a kam jsou ukládány výsledky (startovací čas)
___________________________________
© VJJ
38
___________________________________
___________________________________
snímek 39
___________________________________
Řetězení vektorů
___________________________________
V2 = V0 + V1
V4 = V2 + V3
___________________________________
V2 ← V0 * V1
V0
___________________________________
V1
V4 ← V2 * V3
V2
*
___________________________________
V3
V4
Lze snadno realizovat v organizaci registr-registr
© VJJ
39
___________________________________
___________________________________
snímek 40
___________________________________
Superskalární procesory
___________________________________
Skalární procesory , které však mohou vykonávat
více než jednu instrukci v každém cyklu
___________________________________
jednotka pro vyzvednutí instrukcí, která
akceptuje více než jednu instrukci v daném
časovém okamžiku
dekódovací logika schopná rozhodnout,
zda-li vyzdvižené instrukce jsou vzájemně
nezávislé a je možno je provádět současně
dostatečný počet exekučních jednotek
© VJJ
___________________________________
___________________________________
40
___________________________________
___________________________________
snímek 41
___________________________________
Superskalární stroj
___________________________________
nevyžaduje kompilátor, který bude
vektorizovat program
kompilátor pro superskalární procesor musí
správně alokovat zdroje a rozvrhovat
operace
je flexibilnější a snadno aplikovatelný ve
větší šíři aplikací než vektorové zpracování
© VJJ
___________________________________
___________________________________
___________________________________
41
___________________________________
___________________________________
snímek 42
___________________________________
Přerovnání instrukcí (1)
___________________________________
Stroj má řešit program za těchto podmínek:
___________________________________
program obsahuje dvě aritmetické instrukce
stroj používá proudové zpracování a
metodu LOAD/STORE:
___________________________________
instrukce jsou pomocí operace LOAD vkládány
do registrů
zápis výsledků zpět do paměti je prováděn
zvláštní instrukcí STORE
© VJJ
___________________________________
42
___________________________________
___________________________________
snímek 43
___________________________________
Přerovnání instrukcí (2)
___________________________________
Procesor pracuje s proudovým zpracováním
instrukcí a používá sedm stupňů:
ŠF
ŠD
ŠI
ŠE
ŠE
ŠE
ŠW
___________________________________
vyzdvižení instrukce z paměti
dekódování instrukce
rezervace zdrojů - registrů
exekutivní část 1
exekutivní část 2
exekutivní část 3
uložení výsledků operace do paměti.
© VJJ
___________________________________
___________________________________
43
___________________________________
___________________________________
snímek 44
___________________________________
Přerovnání instrukcí (3)
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
R1=Mem(Y) F D I E
R2=Mem(Z)
F D I
R3=R1+R2
F D
Mem(X)=R3
F
R4=Mem(B)
R5=Mem(C)
R6=R4*R5
Mem(A)=R6
E
E
-
E
E
-
W
E W
- I E E
- D - F - -
.
.
E W
- I E E
- D I E
F D I
F D
F
E
E
E
-
.
.
.
W
.
E W
.
E E W
.
- - I E E E W
- - D - - - I E E E W
--- Instrukce před uspořádáním --© VJJ
44
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
snímek 45
___________________________________
Přerovnání instrukcí (4)
___________________________________
1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
R1=Mem(Y)
R2=Mem(Z)
R4=Mem(B)
R5=Mem(C)
R3=R1+R2
R6=R4*R5
Mem(X)=R3
Mem(A)=R6
F D I E
F D I
F D
F
E
E
I
D
F
E
E
E
I
D
F
W
E
E
E
D
F
W
E
E
I
F
___________________________________
.
.
W
E
E
-
W
E
I
D
-
E
E
D
.
.
W
E E W
I E E E W
- - I E E E W
___________________________________
___________________________________
--- Instrukce po uspořádání --© VJJ
45
___________________________________
___________________________________
snímek 46
___________________________________
Optimalizace instrukcí skoku
___________________________________
Největší problém při proudovém zpracování
instrukcí jsou nekonzistence v programu - skoky
___________________________________
___________________________________
Predikce
skoku
Optimalizace
instrukcí skoku
© VJJ
___________________________________
Zpoždění
instrukce
skoku
46
___________________________________