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
___________________________________