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 ___________________________________