Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

1 Procesory „Počítače by jednou mohly vážit méně než 1.5 tuny.“ časopis Popular Mechanics, 1949.

Podobné prezentace


Prezentace na téma: "1 Procesory „Počítače by jednou mohly vážit méně než 1.5 tuny.“ časopis Popular Mechanics, 1949."— Transkript prezentace:

1 1 Procesory „Počítače by jednou mohly vážit méně než 1.5 tuny.“ časopis Popular Mechanics, 1949

2 2 Co nás bude zajímat procesory před rokem 1970 – viz slajdy o historii počítačů procesory před rokem 1970 – viz slajdy o historii počítačů od roku 1970 – mikroprocesory (vše na jednom čipu) od roku 1970 – mikroprocesory (vše na jednom čipu) dnes – všechny běžné PC, pracovní stanice i servery mají jako CPU mikroprocesor – zaměříme se jen na ně dnes – všechny běžné PC, pracovní stanice i servery mají jako CPU mikroprocesor – zaměříme se jen na ně

3 3 První mikroprocesor – Intel4004 1969 – Bob Noyce a Gordon Moore zakládají Intel Corporation (výroba čipů pro mainframe) 1969 – Bob Noyce a Gordon Moore zakládají Intel Corporation (výroba čipů pro mainframe) 1970 – zakázka na sadu čipů do kalkulaček Busicom 1970 – zakázka na sadu čipů do kalkulaček Busicom 1971 – 4004 – 4bitový s 8bitovými instrukcemi, oddělená programová (4k) a datová (1k) paměť, 46 instrukcí, 2300 tranzistorů, BCD, 16 obecných 4b (nebo 8x8b) registrů, akumulátor, zásobník, PC, frekvence hodin 108 kHz 1971 – 4004 – 4bitový s 8bitovými instrukcemi, oddělená programová (4k) a datová (1k) paměť, 46 instrukcí, 2300 tranzistorů, BCD, 16 obecných 4b (nebo 8x8b) registrů, akumulátor, zásobník, PC, frekvence hodin 108 kHz

4 4 „Zlatá éra“ 8bitových mikroprocesorů březen 1972: 8008 – vyvíjen paralelně s 4004 březen 1972: 8008 – vyvíjen paralelně s 4004 1974: Intel 8080 – první univerzální 8-bitový procesor 1974: Intel 8080 – první univerzální 8-bitový procesor 6 000 tranzistorů, 2MHz 6 000 tranzistorů, 2MHz 8bitová datová sběrnice, 16bitová adresová sběrnice 8bitová datová sběrnice, 16bitová adresová sběrnice 2 16 = 64k – obrovská adresovatelná paměť!!! 2 16 = 64k – obrovská adresovatelná paměť!!! Motorola 6800 Motorola 6800 „čistší“ architektura než 8080 „čistší“ architektura než 8080 1974 Faggin odchází od Intelu, zakládá Zilog 1974 Faggin odchází od Intelu, zakládá Zilog 1976 Zilog Z80 – 2.5 MHz (ve své době velmi úspěšný) 1976 Zilog Z80 – 2.5 MHz (ve své době velmi úspěšný) object-code compatible s 8080 object-code compatible s 8080 navíc další registry, instrukce navíc další registry, instrukce on-chip DRAM refresh on-chip DRAM refresh

5 5 16-bitové procesory Texas Instruments TMS9900 Texas Instruments TMS9900 registry ne na čipu, ale v paměti (vč. PC a SP) registry ne na čipu, ale v paměti (vč. PC a SP) National Semiconductor Pace National Semiconductor Pace General Instruments CP1600 General Instruments CP1600 Intel 8086 Intel 8086 Motorola 68000 Motorola 68000

6 6 Generace mikroprocesorů 1. 1971: sériové zpracování instrukce (I4004) 2. 1973: 16bitová aritmetika, pipeline, pětinásobné zvětšení instrukčního souboru, rychlosti a hustoty prvků (MC68000, I8080) 3. 1978: 16bitové procesory s výkonem minipočítačů; 250 000 prvků, cache na chipu, RISC (MC68020) 4. milión tranzistorů, více než 1 instrukce / sec. (I80960CA, Motorola 88100) 5. superskalární, přes 10 miliónů tranzistorů

7 7 Architektura mikroprocesorů v podstatě stále von Neumannovská v podstatě stále von Neumannovská mikroprocesor tedy sestává z mikroprocesor tedy sestává z ALU (aritmeticko – logické jednotka) ALU (aritmeticko – logické jednotka) řadiče (control unit) řadiče (control unit) ALU obsahuje registry (např. střadač) a obvody na aritmetické a logické operace ALU obsahuje registry (např. střadač) a obvody na aritmetické a logické operace řadič zajišťuje provádění instrukčního cyklu, také má své registry (např. PC) řadič zajišťuje provádění instrukčního cyklu, také má své registry (např. PC)

8 8 Instrukční cyklus - zhruba 1. načíst instrukci (fetch) 2. porozumět instrukci (decode) 3. vykonat instrukci (execute) 4. uložit výsledek (store) => fragmentace úlohy na menší části

9 9 Instrukční cyklus - podrobně

10 10 Zrychlování (pipelining) protože každá instrukce sestává z několika fází, lze další instrukci zahájit dříve než je předchozí dodělána protože každá instrukce sestává z několika fází, lze další instrukci zahájit dříve než je předchozí dodělána něco jako výrobní linka v továrně, kde na lince může být současně tolik výrobků v různé fázi rozpracování, z kolika fází se výroba skládá něco jako výrobní linka v továrně, kde na lince může být současně tolik výrobků v různé fázi rozpracování, z kolika fází se výroba skládá např. zatímco se jedna instrukce dekóduje, tak pro další už může být proveden fetch např. zatímco se jedna instrukce dekóduje, tak pro další už může být proveden fetch

11 11 Sériové zpracování

12 12 Pipeline

13 13 Pipeline - problémy pipeline zavádí paralelismus, ale navenek se procesor musí tvářit sekvenčně pipeline zavádí paralelismus, ale navenek se procesor musí tvářit sekvenčně datová závislost: paralelně zpracovávané instrukce používají stejné registry nebo paměťová místa datová závislost: paralelně zpracovávané instrukce používají stejné registry nebo paměťová místa závislost skoků: provedení / neprovedení skoku závisí na výsledku předchozí instrukce závislost skoků: provedení / neprovedení skoku závisí na výsledku předchozí instrukce největší problém: skok si vynutí vyprázdnění pipeline největší problém: skok si vynutí vyprázdnění pipeline

14 14 Řešení problému skoků multiple streams multiple streams look ahead / look behind buffer look ahead / look behind buffer např. u Motorola MC88110: např. u Motorola MC88110: cyklická paměť 32 instrukcí cyklická paměť 32 instrukcí při skoku se uloží 2 instrukce z větve při skoku se uloží 2 instrukce z větve asociativní vyhledávání dle adresy asociativní vyhledávání dle adresy branch prediction branch prediction další strategie … další strategie …

15 15 Predikce skoku v instrukci uložena „nápověda“. Podle toho se instrukce načítají. Je-li nápověda správně, nedojde ke ztrátě. Je-li nápověda špatně, vyprázdní se pipeline, načte se správný obsah. v instrukci uložena „nápověda“. Podle toho se instrukce načítají. Je-li nápověda správně, nedojde ke ztrátě. Je-li nápověda špatně, vyprázdní se pipeline, načte se správný obsah. statická predikce statická predikce rozhodnutí bez znalosti skutečné historie průběhu (predikce vždy stejná pro stejnou instrukci, bez ohledu na předchozí instrukce) rozhodnutí bez znalosti skutečné historie průběhu (predikce vždy stejná pro stejnou instrukci, bez ohledu na předchozí instrukce)

16 16 Vývoj pipeline Superpipelining Superpipelining rozdělení kroků pipeline na menší  jednodušší  rychlejší rozdělení kroků pipeline na menší  jednodušší  rychlejší Superscalar pipelining Superscalar pipelining více paralelních částí pipeline více paralelních částí pipeline dnes někdy i více celých pipeline dnes někdy i více celých pipeline Dynamic pipeline Dynamic pipeline přeplánování problematických částí přeplánování problematických částí

17 17 Další zrychlování Simultánní multithreading do pipeline se zavádějí instrukce různých vláken, které na sobě skoro jistě nebudou závislé do pipeline se zavádějí instrukce různých vláken, které na sobě skoro jistě nebudou závislé Predikce hodnoty Pozorování ukazuje, že instrukce Load zavede ve více než ½ případů stejnou hodnotu  budeme to předpokládat Pozorování ukazuje, že instrukce Load zavede ve více než ½ případů stejnou hodnotu  budeme to předpokládat

18 18 Instrukční sady do 80. let trend budovat komplexní sady do 80. let trend budovat komplexní sady stovky instrukcí, nejrůznější varianty jedné instrukce stovky instrukcí, nejrůznější varianty jedné instrukce snaha o překlenutí sémantické propasti, neboli rozdílu mezi vyšší a nižší úrovní práce počítače snaha o překlenutí sémantické propasti, neboli rozdílu mezi vyšší a nižší úrovní práce počítače sladit pohled programátora ve vyšším jazyce a programátora v assembleru sladit pohled programátora ve vyšším jazyce a programátora v assembleru poskytnout dostatečně širokou škálu instrukcí pro zachycení stylu programování ve vyšším jazyce poskytnout dostatečně širokou škálu instrukcí pro zachycení stylu programování ve vyšším jazyce dát podporu kompilátoru, aby opakující se problém vyřešil jedinou instrukcí místo (dlouhé) sekvence dát podporu kompilátoru, aby opakující se problém vyřešil jedinou instrukcí místo (dlouhé) sekvence

19 19 Změna priorit Důraz na to, co je nejvíce potřeba a co trvá nejdéle Důraz na to, co je nejvíce potřeba a co trvá nejdéle Implementace méně používaných instrukcí může zhoršit celkový návrh Implementace méně používaných instrukcí může zhoršit celkový návrh Spolehnout se na vyšší jazyky a optimalizující kompilátory Spolehnout se na vyšší jazyky a optimalizující kompilátory Paměť je dnes rychlejší a levnější Paměť je dnes rychlejší a levnější

20 20 CISC vs RISC CISC – Complex Instruction Set Computer (zpětné označení) CISC – Complex Instruction Set Computer (zpětné označení) RISC – Reduced Instruction Set Computer RISC – Reduced Instruction Set Computer

21 21 Strategie návrhu RISCu zjištění nejpoužívanějších instrukcí (simulace a analýza programů) zjištění nejpoužívanějších instrukcí (simulace a analýza programů) optimalizace datových cest pro tyto instrukce optimalizace datových cest pro tyto instrukce přidání dalších instrukcí, pokud jsou rozumně využitelné a nezpomalí procesor přidání dalších instrukcí, pokud jsou rozumně využitelné a nezpomalí procesor přesunutí komplexních činností do kompilátoru přesunutí komplexních činností do kompilátoru

22 22 CISC Proč se tedy vlastně vyvinuly? Proč se tedy vlastně vyvinuly? (První stroje měly jednoduchou architekturu) (První stroje měly jednoduchou architekturu) Cena HW klesla, cena SW stoupla Cena HW klesla, cena SW stoupla Přesun složitosti do HW usnadní programování Přesun složitosti do HW usnadní programování Méně instrukcí pro daný úkol znamená méně přístupů do (pomalé a drahé) paměti Méně instrukcí pro daný úkol znamená méně přístupů do (pomalé a drahé) paměti

23 23 Pokusy o definici RISC N.J.Davis: N.J.Davis: omezená a jednoduchá instrukční sada omezená a jednoduchá instrukční sada velké množství obecných registrů velké množství obecných registrů důraz na optimalizaci pipeline důraz na optimalizaci pipeline Colwell: Colwell: provádění instrukcí v 1 taktu provádění instrukcí v 1 taktu architektura load/store architektura load/store relativně málo instrukcí a způsobů adresování relativně málo instrukcí a způsobů adresování pevný formát instrukcí pevný formát instrukcí větší význam kompilátoru větší význam kompilátoru

24 24 Charakteristické rysy pro RISC jedna instrukce na cyklus jedna instrukce na cyklus operace registr – registr operace registr – registr architektura load – store architektura load – store malý počet a jednoduché adresovací režimy malý počet a jednoduché adresovací režimy pevný formát instrukce pevný formát instrukce malý počet a jednoduché instrukce malý počet a jednoduché instrukce velké množství registrů velké množství registrů použití linky proudového zpracování (pipeline) použití linky proudového zpracování (pipeline) zvláštní zpracování skoků zvláštní zpracování skoků hardwired návrh obvodového řešení hardwired návrh obvodového řešení silná závislost na kompilátoru silná závislost na kompilátoru

25 25 RISC – typičtí představitelé Desktop/Server: Desktop/Server: Alpha (Digital) Alpha (Digital) PA-RISC (Hewlett-Packard) PA-RISC (Hewlett-Packard) PowerPC (IBM + Motorola) PowerPC (IBM + Motorola) MIPS (Silicon Graphics) MIPS (Silicon Graphics) SPARC (Sun Microsystems) SPARC (Sun Microsystems)

26 26 Návrh procesoru – co zvažovat pevná/proměnná délka instrukcí? pevná/proměnná délka instrukcí? pevný/proměnný počet a typ operandů? pevný/proměnný počet a typ operandů? počet adresovacích režimů? počet adresovacích režimů? mikrokód/hardwired řadič? mikrokód/hardwired řadič? stupeň paralelismu? stupeň paralelismu? důraz na vyšší programovací jazyky? důraz na vyšší programovací jazyky? schopnosti kompilátoru? schopnosti kompilátoru?

27 27 zvolit RISC nebo CISC? Neexistuje jednoznačná odpověď! Neexistuje jednoznačná odpověď! Problémy: Problémy: žádné dva procesory RISC a CISC nejsou přímo porovnatelné žádné dva procesory RISC a CISC nejsou přímo porovnatelné není konečná sada testovacích programů není konečná sada testovacích programů obtížné odlišit vliv HW a vliv kompilátoru obtížné odlišit vliv HW a vliv kompilátoru (většina dnešních návrhů bere z obou kategorií) (většina dnešních návrhů bere z obou kategorií)

28 28 Konvergence CISC a RISC od 80-let se technologie i znalosti změnily od 80-let se technologie i znalosti změnily mnohé techniky jsou používány procesory z obou táborů: mnohé techniky jsou používány procesory z obou táborů: CISC – vykonávají více instrukcí v 1 taktu CISC – vykonávají více instrukcí v 1 taktu RISC – se zlepšením technologií zbývá místo → vyplněné komplikovanějšími instrukcemi RISC – se zlepšením technologií zbývá místo → vyplněné komplikovanějšími instrukcemi vznikají „post-RISC“ návrhy, kombinující oba přístupy s metodami, které nejsou použity v žádné z těchto kategorií (přesto si „RISC“ zachovává charakteristické vlastnosti) vznikají „post-RISC“ návrhy, kombinující oba přístupy s metodami, které nejsou použity v žádné z těchto kategorií (přesto si „RISC“ zachovává charakteristické vlastnosti)

29 29 Post-RISC Rozdíl od superskalárních RISCů: Rozdíl od superskalárních RISCů: přidání ne-RISCových instrukcí (pro zvýšení výkonu)  architektura FISC (Fast Instruction Set Computer) přidání ne-RISCových instrukcí (pro zvýšení výkonu)  architektura FISC (Fast Instruction Set Computer) agresivní přerovnávání instrukcí v průběhu zpracování – „out-of-order execution,“ „speculative execution“ (odklon od závislosti na kompilátoru) agresivní přerovnávání instrukcí v průběhu zpracování – „out-of-order execution,“ „speculative execution“ (odklon od závislosti na kompilátoru) nové uspořádání, nové jednotky nové uspořádání, nové jednotky větší míra paralelismu větší míra paralelismu

30 30 Příklady procesorů post-RISC procesory s ojedinělými znaky post-RISC procesory s ojedinělými znaky post-RISC DEC Alpha 21164, SUN UltraSPARC DEC Alpha 21164, SUN UltraSPARC procesory s typickou organizací post-RISC procesory s typickou organizací post-RISC IBM PowerPC 604, MIPS R10000, HP PA-8000 IBM PowerPC 604, MIPS R10000, HP PA-8000 smíšené organizace smíšené organizace Intel Pentium P6 („interesting blend of architectures“) – starší Pentia jsou typické CISC procesory Intel Pentium P6 („interesting blend of architectures“) – starší Pentia jsou typické CISC procesory

31 31 Zpět k provádění instrukce instrukce sestává z řady fází (cyklů), např. fetch, decode, execute, store instrukce sestává z řady fází (cyklů), např. fetch, decode, execute, store každý cyklus sestává z posloupnosti elementárních akcí – mikro-operací každý cyklus sestává z posloupnosti elementárních akcí – mikro-operací mikro-operace (příklady): mikro-operace (příklady): přesun mezi registry přesun mezi registry přesun mezi registrem a sběrnicí (k paměti) přesun mezi registrem a sběrnicí (k paměti) jednoduchá ALU operace jednoduchá ALU operace

32 32 Funkce řadiče Řadič zajišťuje v podstatě dva úkoly: 1. zpracování mikro-operace ve správném pořadí jak vyžaduje prováděný program 2. generování řídících signálů, které pro každou mikro-operaci způsobí její vykonání Řídící signály spouští otevírání a zavírání logických hradel vykonávajících mikro-oper.

33 33 Základní schema řadiče (direktivní řadič) řadič hodinový signál řídící signály instrukce

34 34 Základní schema řadiče (zpětnovazební řadič) řadič hodinový signál řídící signály instrukce zpětná vazba vnější příznaky

35 35 Návrh řadiče hard-wired hard-wired řadič je vlastně kombinační obvod z log. hradel řadič je vlastně kombinační obvod z log. hradel provádění všech instrukcí (opkódů) je natvrdo zadrátováno provádění všech instrukcí (opkódů) je natvrdo zadrátováno vyšší rychlost, méně prvků, typické pro RISC vyšší rychlost, méně prvků, typické pro RISC microprogrammed microprogrammed logika řadiče je určena mikroprogramem logika řadiče je určena mikroprogramem mikroprogram = sekvence příkazů ve speciálním mikroprogramovacím jazyce mikroprogram = sekvence příkazů ve speciálním mikroprogramovacím jazyce každý příkaz jazyka specifikuje mikro-operaci každý příkaz jazyka specifikuje mikro-operaci větší flexibilita, typické pro CISC větší flexibilita, typické pro CISC

36 36 Provádění mikrokódu 1. Dekódování operačního kódu instrukce 2. Vyzdvihování mikroinstrukcí z řídící paměti 3. Control address register najde mikroinstrukci, která se má vykonat 4. Microinstruction registr přijme tuto instrukci a adresu následující mikroinstrukce 5. Mikroinstrukce je vykonána 6. Adresa další mikroinstrukce je použita pro vyhledání další 7. Jsou-li vykonány všechny mikroinstrukce, načte se další konvenční instrukce. Ne-li, vykonávají se další mikroinstrukce 8. Podmíněné skoky jsou provedeny tak, že je modifikována adresa další mikroinstrukce


Stáhnout ppt "1 Procesory „Počítače by jednou mohly vážit méně než 1.5 tuny.“ časopis Popular Mechanics, 1949."

Podobné prezentace


Reklamy Google