IA039: Architektura superpočítačů a náročné výpočty Procesory a paměti Luděk Matýska Fakulta informatiky MU Jaro 2013 Luděk Matýska (Fl MU) Proceson Jaro 2013 1/55 Procesory - CISC Complex Instruction Set Computer • Příklady: o PDP 11, VAX, IBM 370, Intel 80x86, Motorola 680x0, • Princip: • Nedělej programem to, co může udělat hardware Luděk Matýska (Fl MU) Proceson Jaro 2013 2 / 55 Důvody existence Velikost a rychlost paměti o Srovnání s rychlostí samotných procesorů Přímá podpora překladačů Adresování (přístup k paměti) Luděk Matýska (Fl MU) 3/55 M i kroprogra mová n í CISC - složité instrukce • Řídící část procesoru příliš rozsáhlá • Mikroinstrukce: Dekompozice na jednodušší instrukce • Složitá instrukce == mikroprogram Jednodušší návrh hardware • Instrukce jsou emulovány Je možno „snadno" změnit instrukční sadu konkrétního počítače =>- rodina počítačů (IBM 360, 370, VAX, . ..) Nevýhody: příliš složité instrukce, stále složitější analýza instrukcí, zátěž zpětné kompatibility (v rámci rodiny) Luděk Matýska (Fl MU) Proceson Jaro 2013 4 / 55 Zvyšovaní výkonu • Rychlost hodin udává výkon procesoru • Omezeno aktuálními technologickými možnostmi • Nelze neomezeně zvyšovat • Závislosti mezi komponentami • Rychlost šíření signálu • Řešení: paralelizace procesů Luděk Matýska (Fl MU) Proceson Jaro 2013 5 / 55 Pipelining Překrývání instrukcí v různých fázích rozpracovanosti instrukce -) 1 — 2 — 3 — 4 — 5 Tři základní oblasti: Q Zpracování instrukcí O Přístupy k paměti O Výpočty v pohyblivé řádové čárce výsledky Luděk Matýska (Fl MU) Proceson Jaro 2013 6 / 55 Pipelining II Běžný rozklad instrukcí (pěti úrovňový pipelining): Instruction Fetch instrukce je načtena z paměti Instruction Decode instrukce je rozeznána (dekódována) Operand Fetch jsou připraveny operandy (načteny z registrů a/nebo paměti) Execute instrukce je provedena Writeback výsledky jsou zapsány zpět (do registrů a/nebo paměti) Jednotlivé instrukce jsou zpracovávány paralelně, s posunem o jednu fázi pipeline. Luděk Matýska (Fl MU) Proceson Jaro 2013 7 / 55 Pipelining a pamět • „Neviditelný" pipelining • Předsunutí čtení (zápisu) z (do) paměti před vlastní instrukci pracující s daty • „Viditelné" pipelines • Explicitní instrukce, s přesně definovaným počtem cyklů do dokončení. • Např. Intel 80860 Luděk Matýska (Fl MU) Proceson Jaro 2013 8 / 55 Procesory - RISC Reduced Instruction Set Computer • První RISC: CDC 6600 (Seymour Cray) • První polovina 60. let • Podmínky vzniku RISC systémů • Zavedení vyrovnávacích pamětí (cache) • Dramatický pokles ceny a vzrůst velikosti hlavních pamětí • Lepší pipelining • Kvalitně optimalizující překladače Luděk Matýska (Fl MU) Proceson Jaro 2013 9 / 55 RISC podmínky II • Rychlost přístupu k paměti přestala být (hlavním) úzkým místem • Velikost programu přestala být podstatná (i rozsáhlé programy se snadno vejdou do paměti) • Problém: zadržení (stall) při čekání na výsledek předchozí instrukce (v CISC příliš složité vazby) • Není třeba složitých instrukcí (naopak); čitelnost assembleru přestává být podstatná Luděk Matýska (Fl MU) Proceson Jaro 2013 10 / 55 Charakteristiky RISC • Jednotná délka instrukcí • Pečlivý výběr skutečně používaných instrukcí • Jednoduché adresní módy • Architektura Load/Store • Dostatek registrů • „Odložené" skoky (delayed branches) Luděk Matýska (Fl MU) Procesory Jaro 2013 11 / 55 RISC - pokročilý návrh • Ideál RISC první generace: • Jedna instrukce každý tik hodin • Dnešní realita: • Více jak jedna instrukce na tik Luděk Matýska (Fl MU) 12 / 55 Nové vlastnosti • Superskalární • Superpipeline • (Velmi) dlouhé instrukce ((Very) Long Instruction Word, (V)LIW) Luděk Matýska (Fl MU) Proceson Jaro 2013 13 / 55 S u perská lá rn í procesory • Vícenásobné procesní jednotky • Aritmetické (ALU), Floating point (FPU) a další • Příklady: • RS/6000, SuperSPARC a vyšší, Motorola 88110, HP PA 7100 a vyšší, DEC Alpha, MIPS R8000 a vyšší, Intel Pentium, IBM P4, P5 Luděk Matýska (Fl MU) Proceson Jaro 2013 14 / 55 Superskalární procesory - vlastnosti • Paralelismus v hardware • Sekvenční programy • „Automatická" paralelizace technickými prostředky • Současné načtení více instrukcí • Instrukce MADD (Multiply Add) o Operace X*Y+Z Luděk Matýska (Fl MU) Proceson Jaro 2013 15 / 55 Superpipeline • Další zjednodušení obvodů • Rozsáhlejší dekompozice pipeline • Rychlejší provádění jednotlivých částí • Výsledkem rychlejší výpočet • Jiná forma paralelismu • Nazývány též hluboké (deep) pipelines Luděk Matýska (Fl MU) Procesory Jaro 2013 16 / 55 VLIW • Obdoba superskalárních (mnoho jednotek) • Paralelizace pod kontrolou překladače • Výhody: • Jednodušší instrukce • Není třeba složitý řídící hardware » Potenciál pro nižší spotřebu energie • Příklady: • Intel Í860 • Crusoe procesory firmy Transmeta • Ruské superpočítače (Elbrus) Luděk Matýska (Fl MU) 17 / 55 RISC - další rysy • Obcházení registrů • Přejmenování registrů • Skoky • nulování operace • podmíněné přiřazeni (a = b