1 / 36

Procesory

Procesory. „Počítače by jednou mohly vážit méně než 1.5 tun y .“ č asopis Popular Mechanics, 1949. Co nás bude zajímat. procesory před rokem 1970 – viz slajdy o historii počítačů od roku 1970 – mikroprocesory (vše na jednom čipu)

beck-head
Download Presentation

Procesory

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Co nás bude zajímat • procesory před rokem 1970 – viz slajdy o historii počítačů • 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ě

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

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

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

  7. Architektura mikroprocesorů • v podstatě stále von Neumannovská • mikroprocesor tedy sestává z • ALU (aritmeticko – logické jednotka) • řadiče (control unit) • 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)

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

  9. Instrukční cyklus - podrobně

  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 • 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

  11. Sériové zpracování

  12. Pipeline

  13. Pipeline - problémy • 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 • 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

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

  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. • statická predikce • rozhodnutí bez znalosti skutečné historie průběhu (predikce vždy stejná pro stejnou instrukci, bez ohledu na předchozí instrukce)

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

  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é Predikce hodnoty • Pozorování ukazuje, že instrukce Load zavede ve více než ½ případů stejnou hodnotu budeme to předpokládat

  18. Instrukční sady • do 80. let trend budovat komplexní sady • 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 • 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 • dát podporu kompilátoru, aby opakující se problém vyřešil jedinou instrukcí místo (dlouhé) sekvence

  19. Změna priorit • 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 • Spolehnout se na vyšší jazyky a optimalizující kompilátory • Paměť je dnes rychlejší a levnější

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

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

  22. CISC • Proč se tedy vlastně vyvinuly? • (První stroje měly jednoduchou architekturu) • Cena HW klesla, cena SW stoupla • 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

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

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

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

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

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

  28. Konvergence CISC a RISC • od 80-let se technologie i znalosti změnily • mnohé techniky jsou používány procesory z obou táborů: • 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 • 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. Post-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) • 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 • větší míra paralelismu

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

  31. Zpět k provádění instrukce • 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í • mikro-operace (příklady): • přesun mezi registry • přesun mezi registrem a sběrnicí (k paměti) • jednoduchá ALU operace

  32. Funkce řadiče Řadič zajišťuje v podstatě dva úkoly: • zpracování mikro-operace ve správném pořadí jak vyžaduje prováděný program • 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. Základní schema řadiče(direktivní řadič) instrukce řídící signály řadič hodinový signál

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

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

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

More Related