IA039 Procesory a paměti Procesory - CISC Complex Instruction Set Computer * Príklady: * PDP 11, VAX, IBM 370, Intel 80x86, Motorola 680x0, ... * Princip: * Nedělej programem to, co může udělat hardware IA039 2 Důvody existence * Velikost a rychlost paměti * Srovnání s rychlostí samotných procesorů * Přímá podpora překladačů * Adresování (přístup k paměti) IA039 3 Jaro 2008 Mikroprogramová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) IA039 4 Jaro 2008 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ů IA039 5 Jaro 2008 Pipelining Překrývání instrukcí v různých fázích rozpracovanosti instrukce --> \ 1 -- 2 -- 3 -- 4 -- 5 --> výsledky Tři základní oblasti: 1. Zpracování instrukcí 2. Přístupy k paměti 3. Výpočty v pohyblivé řádové čárce IA039 6 Jaro 2008 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. IA039 7 Jaro 2008 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 IA039 8 Jaro 2008 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 IA039 9 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í (stali) 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á IA039 10 Jaro 2008 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) IA039 11 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 IA039 12 Jaro 2008 Nové vlastnosti * Superskalarní * Superpipeline * (Velmi) dlouhé instrukce ((Very) Long Instruction Word, (V)LIW) IA039 13 Jaro 2008 Superskalá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 IA039 14 Jaro 2008 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) * Operace X*Y+Z IA039 15 Jaro 2008 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 IA039 16 VLIW * Obdoba superskalarní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 i860 * Crusoe procesory firmy Transmeta * Ruské superpočítače (Elbrus) IA039 17 Jaro 2008 RISC - další rysy * Obcházení registrů * Přejmenování registrů * Skoky * nulování operace * podmíněné přiřazeni (a = b