Architektury CISC a RISC, uplatnění v personálních počítačích - pokračování



Podobné dokumenty
Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování

Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Architektury CISC a RISC, uplatnění v personálních počítačích

Architektura procesorů PC shrnutí pojmů

Pohled do nitra mikroprocesoru Josef Horálek

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů

CISC A RISC PROCESORY Jak pracují procesory CISC:

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Procesor. Procesor FPU ALU. Řadič mikrokód

Architektura Pentia úvod

Charakteristika dalších verzí procesorů v PC

Úvod do architektur personálních počítačů

PROCESOR. Typy procesorů

CHARAKTERISTIKA PROCESORU PENTIUM První verze:

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Architektura Intel Atom

Princip funkce počítače

AGP - Accelerated Graphics Port

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Architektury počítačů a procesorů

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Principy komunikace s adaptéry periferních zařízení (PZ)

Charakteristika dalších verzí procesorů Pentium

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Vývoj architektur PC 1

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

V 70. letech výzkumy četnosti výskytu instrukcí ukázaly, že programátoři a

Jak do počítače. aneb. Co je vlastně uvnitř

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

Principy činnosti sběrnic

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

Cache paměť - mezipaměť

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Systémová sběrnice, souvislost architektury počítače a systémové

Úvod do architektur personálních počítačů

Architektura Pentia 1

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Technické prostředky počítačové techniky

Paměťový podsystém počítače

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

ARCHITEKTURA PROCESORŮ

Architektura počítačů

Počítač jako prostředek řízení. Struktura a organizace počítače

Systém adresace paměti

Techniky zvýšení výkonnosti procesoru, RISC a CISC procesory

Provádění instrukcí. procesorem. Základní model

Profilová část maturitní zkoušky 2014/2015

Výstavba PC. Vývoj trhu osobních počítačů

Výkonnost mikroprocesoru ovlivňují nejvíce dvě hlediska - architektura mikroprocesoru a tzv. taktovací frekvence procesoru.

Struktura a architektura počítačů

Pohled do nitra mikroprocesoru

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Disková pole (RAID) 1

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

RISC a CISC architektura

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

Architektura počítače

Profilová část maturitní zkoušky 2015/2016

Představení a vývoj architektur vektorových procesorů

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

PROCESORY. Typy procesorů

Struktura a architektura počítačů (BI-SAP) 7

Struktura a architektura počítačů (BI-SAP) 11

Strojový kód. Instrukce počítače

Procesory, mikroprocesory, procesory na FPGA O. Novák, CIE 11 1

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Paměti a jejich organizace

Úvod. Programovací paradigmata

Jan Nekvapil ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Sériové rozhraní IDE (ATA)

Procesory. Autor: Kulhánek Zdeněk

Přednáška. Strojový kód a data. 4. Přednáška ISA J. Buček, R. Lórencz

Mezipaměti počítače. L2 cache. L3 cache

PROCESOR. Rozdělení procesorů

Historie počítačů. 0.generace. (prototypy)

Disková pole (RAID) 1

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Intel Procesor a jeho konstrukce. Vývojové typy, činnost procesoru

Cíl přednášky: Obsah přednášky:

Úvod do problematiky návrhu počítačových systémů. INP 2008 FIT VUT v Brně

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT

Procesor z pohledu programátora

OPS Paralelní systémy, seznam pojmů, klasifikace

Procesor. Hardware - komponenty počítačů Procesory

Počítač jako elektronické, Číslicové zařízení

Transkript:

Architektury CISC a RISC, uplatnění v personálních počítačích - pokračování 1

Cíl přednášky Vysvětlit, jak pracují architektury CISC a RISC, upozornit na rozdíly. Upozornit, jak se typické rysy obou typů architektur projevily v konstrukci PC. 2

Architektury CISC a RISC cenové aspekty Architektury RISC výrazná snaha o modifikaci architektury tak, aby vyhovovala požadavkům proudového zpracování. Architektury CISC - snaha o totéž využívání technik nasazených v architekturách RISC, zohlednění cenových aspektů. Cenové aspekty (co zvyšuje cenu?): technická/technologická náročnost implementace konkrétní techniky, náklady na vývoj techniky (lidský a technický potenciál), konkrétní technika zvyšuje výkon (výrobce si to nechá zaplatit). Výsledek existují počítače na bázi architektur CISC i RISC: CISC levnější, širší uplatnění na trhu s počítači (mají více potenciálních zákazníků), RISC nákladnější, nasazeny v jiných aplikacích (servery, pracovní stanice pro CAD, ) 3

CISC a RISC architektury vývoj koprocesorů Další problém: architektury RISC i CISC nutno řešit podporu instrukcí s pohyblivou čárkou. Příklad: procesor SPARC MB86900 a koprocesor MB86910. Firma Intel: např. procesor I80486, koprocesor I80487, až do úrovně I80386 koprocesor byl samostatným prvkem - koprocesory jsou implementovány buď jako samostatné prvky (čipy) nebo jsou na stejném čipu jako procesor. Výhody druhého řešení: Možnost realizovat vyšší rychlosti přenosu a snadnější synchronizace. Kromě tzv. čistých architektur RISC existují i takové, kde kromě hardwarově realizovaných instrukcí existovaly/existují i instrukce realizované mikrokódem (dřívější architektury RISC). 4

CISC a RISC architektury vývoj koprocesorů Nové generace architektur RISC nepředpokládají použití koprocesoru, využívají jednotku realizující instrukce pohyblivé čárky (FPU Floating Point Unit) různá úroveň složitosti FPU. Stejná terminologie byla přijata i pro Pentium. Výsledek: Existují dvě fronty instrukcí pro zpracování čísel typu integer a čísel reálných, jedna zpracovávaná procesorem, druhá jednotkou FPU. Dvě fronty instrukcí vznikly zcela nové problémy, např. párování instrukcí. Některé FPU umějí kromě klasických aritmetických operací také např. exponenciální nebo trigonometrické funkce. FPU je integrována na stejném plátku jako procesor rozlišení od koprocesoru (odlišení této skutečnosti novým označením). Existují i architektury s více FPU, např. PowerPC 970, architektury na bázi Intel Netburst Microarchitecture a AMD 64. 5

Sady registrů (Register Files) Jeden z rysů architektur RISC snaha o co nejmenší počet přístupů do paměti => součástí procesorů RISC je velký počet registrů (architektury CISC tento problém není řešen): omezení komunikace s pamětí při realizaci aritmeticko-logických operací (operand v paměti nesmí být) navýšení počtu registrů i pro realizaci jiných technik viz dále. Počty registrů: od 32 do 2048 a více (?), všechny mají stejné vlastnosti. Srovnání: procesory v PC universální registry pro realizaci aritmeticko-logických operací, destruktivní charakter operací. Důležité: technika založená na sadách registrů není k vidění ani u Pentia (cenové důvody hardware + programová podpora obsluhy registrů), je typická např. pro procesory SPARC (pracovní stanice). 6

Sady registrů -pokračování Využití sady registrů při skocích do podprogramů Architektura CISC - skok do podprogramu je nutno uložit obsahy všech registrů do paměti. Řešení: využití několika sad registrů, každá podmnožina registrů odpovídá původní samostatné (jediné) sadě registrů. Pracuje se s tzv. ukazatelem na sadu registrů, při výskytu instrukce CALL se ukazatel posune na další pozici a ukazuje tak na další sadu registrů - volnou. Instrukce RETURN (návrat z podprogramu) hodnota ukazatele se sníží o 1. Výsledek: uklízení hodnot uložených v registrech do paměti není nutné v situacích, kdy počet sad registrů pro konkrétní aplikaci postačuje. Programy, kde se vyskytne 10 úrovní volání podprogramu řídký jev => běžně 10 sad registrů (320 registrů). Stav, kdy úrovní je více rekurzivní výpočty => nastane přetečení sad registrů => musí se začít využívat paměť. 7

Sady registrů skoky do podprogramů 8 reg0 reg1 reg31 reg30 reg0 reg1 reg31 reg30 reg0 reg1 reg31 reg30 reg0 reg1 reg31 reg30 hlavní program podprogram 1. úrovně podprogram 2. úrovně podprogram 3. úrovně ukazatel na sadu registrů

Sady registrů skoky do podprogramů Mechanismus přetečení do paměti: Sada registrů je řízena ukazateli na začátek/konec sady registrů. Do paměti se v případě potřeby uloží obsah té sady registrů, která je označena jako počáteční při návratech z podprogramů se bude s touto informací pracovat až jako s poslední. Obsah sady registrů je přenesen z paměti zpět, jakmile se instrukcemi RETURN (každá z nich realizována v jiné úrovni) vrátíme na úroveň pouze o jeden stupeň vyšší než je úroveň sady registrů, jejíž obsah byl přenesen do paměti. Evidentní snaha o to, aby se zmírnil dopad paměťových operací na dobu trvání výrazného počtu činností realizovaných procesorem (omezení komunikace s pamětí) souvisí s optimalizací proudového zpracování programu. 9

Sady registrů předávání parametrů Další problém předávání parametrů mezi volajícím a volaným programem přesuny dat. Možnost řešení kopírování parametrů z jedné sady registrů (volající) do jiné (volaný) nepříliš vhodné. Jiné řešení překrývání registrových sad. Princip: množina sad registrů je rozdělena na registry pro uložení vstupních parametrů, lokálních proměnných, výstupních parametrů a globálních parametrů. Výsledek: když se množina registrů pro uložení výstupních parametrů volajícího programu překrývá s množinou registrů pro uložení vstupních parametrů volaného programu => přenosy dat mezi sadami registrů nejsou nutné. Obdobným způsobem si předají výsledky volaný a volající program při návratu z podprogramu. Tato procedura se nazývá procedure window method (okno do sady registrů), okno se přesouvá dynamicky přes celou sadu registrů. 10

Sady registrů předávání parametrů Stupeň překrývání (tzn. počet předávaných parametrů a proměnných) nemusí být pevný, bude určen při kompilování => register windows with variable size (okno do sady registrů s proměnnou délkou). Rys architektur RISC - optimalizace běhu programu prováděná při překladu. 11

Sady registrů předávání parametrů reg31 reg30 reg1 reg0 reg31 reg30 překrytí podprogram 2. úrovně překrytí reg1 reg0 reg31 reg30 podprogram 1. úrovně sada registrů 2 sada registrů 1 reg1 reg0 hlavní program sada registrů 0 12

Využití sad registrů při přepínání úloh Klasické řešení: při přepínání úloh se obsahy všech sad registrů staré úlohy ukládají do paměti, v opačném směru se přenáší obsah sady registrů úlohy, která bude odstartována. Pokud by byl k dispozici dostatečný počet sad registrů, pak by se přepínání úloh mohlo realizovat bez komunikace s pamětí. Přepínání úloh se pak odehrává pomocí změny hodnoty ukazatele na aktivní sadu registrů. Procesory SPARC mají 2048 registrů uspořádaných do sad registrů. V procesorech využívaných v PC není tato technika využita, využívá se klasický způsob přepínání úloh. Závěr: technika založená na využívání sad registrů vyřazuje ze hry zásadním způsobem paměť a může zásadním způsobem zrychlit počítač jako celek jasný trend v architekturách RISC. 13

Uplatnění principů procesorů RISC v architekturách CISC Prvky architektur RISC se začaly jistým (nepříliš výrazným) způsobem uplatňovat v I80486: často se vyskytující instrukce nejsou implementovány mikroprogramově ale obvodově (např. instrukce MOV). Složité a méněčasté instrukce jsou realizovány mikroprogramově. Důsledek: provedení posloupnosti jednoduchých instrukcí implementovaných obvodově může trvat kratší dobu než složitá instrukce realizující totéž mikroprogramově. Procesor integruje do jednoho čipu mikroprocesor, vylepšený koprocesor (ve srovnání s I80387), RVP a řadič RVP vše motivováno snahou o zvýšení rychlosti a o redukci objemu komunikace s operační pamětí (typické pro architektury RISC). Nevýhodné v situaci, kdy operand aritmeticko-logické operace je uložen v paměti (více typů paměti). RISC operand zásadně v registru. 14

Sady registrů závěr Sady registrů jsou využitelné v těchto třech technikách: - volání podprogramu, - předávání parametrů, - přepínání úloh. Techniky založené na využití sad registrů vyřazují ze hry paměť v situacích, kde právě paměť byla důležitou komponentou při realizaci těchto procesů. 15

Uplatnění principů procesorů RISC v architekturách CISC Procesor I80386 byl k dispozici na kmitočtech 25 50 Mhz, procesor ve verzi I80486DX4 na 100 Mhz v nárazovém režimu komunikoval na rychlosti 160 MB/s (rozhraní mikroprocesoru). Výsledek z hlediska rychlosti: díky hardwarové implementaci instrukcí a zřetězení na úrovni provádění instrukcí (vyšší granularita) byl procesor I80486 asi 3x rychlejší než I80386 (uvádělo se v době, kdy se objevily počítače na bázi I80486). Výraznější komplikovanější struktura než I80386 v jednom pouzdře je procesor, koprocesor, řadič RVP a RVP (3 samostatné procesory). RVP L1 byla určena pro uložení kódu i dat (architektury RISC odděleno, u vyšších verzí procesorů Intel rovněž). Přístup do RVP L2 2 synchronizační pulsy, přístup do RVP L1 1 synchronizační puls účelné z hlediska zřetězeného zpracování instrukcí. Kapacita fronty instrukcí byla 32 B. 16

Zřetězení na úrovni provádění instrukcí v procesoru I80486 Velmi odlišné doby provádění instrukcí => těsnější propojení jednotlivých stupňů nebylo možné. Těsné propojení jednotlivých stupňů (rys architektur RISC) objevilo se až na úrovni Pentia. Instruction Fetch čtení instrukce: čtou se dva 16 bytové celky. Decoding Unit dekódování instrukce: konvertuje jednoduché instrukce na povely pro CU (Control Unit) a složité instrukce na skoky na patřičný mikrokód, který se pak provádí v CU. Prováděcí fáze jednotka CU interpretuje řídicí signály z dekodéru nebo skoky na patřičný mikrokód a řídí ALU, FPU a ostatní logiku. Tato činnost trvá jistou dobu (různě dlouhou) v závislosti na typu instrukce. 17

Zřetězení na úrovni provádění instrukcí v procesoru I80486 Důsledek v architekturách CISC (např. I80486) se velmi obtížně dosahovalo stavu, kdy doba provádění jednotlivých fází realizace operace trvala stejnou dobu zásadní odlišnost od architektur RISC, kde v každém z X stupňů je jedna instrukce (X instrukcí je současně zpracováváno) lepší situace v Pentiu. 18

Charakteristika architektur RISC a CISC z hlediska optimalizace toku instrukcí Pro architektury RISC jsou vyvíjeny překladače šité na míru, jsou vyvíjeny pro konkrétní procesory (a naopak vývoj procesoru pro konkrétní jazyk), kvalita obou je důležitá => přeložené kódy jsou optimalizovány. Důležitý aspekt zásah do množiny instrukcí (doplnění o nové instrukce) => musí se změnit struktura CU (control unit řadič) => nutnost společné tvorby hardware a množiny instrukcí, které tento hardware implementuje. Mikroprogramově řízené struktury je třeba doplnit nový mikroprogram, využije se k tomu stávající množina mikroinstrukcí (nezměněná) => CU není třeba z hlediska struktury měnit. Platí: struktura strojového kódu souvisí silně s konkrétním překladačem => možnost úpravy strojového kódu při překladu. => vývoj konkrétních RISC procesorů pro konkrétní jazyky (SOAR Smalltalk On A RISC) pro Smalltalk, SPUR (Symbolic Processing Using RISC) a COLIBRI (Coprocessor for LISP on the Basis of RISC) obojí pro LISP (takový přístup není využit pro procesory CISC). 19

Charakteristika architektur RISC a CISC z hlediska optimalizace toku instrukcí Menší počet instrukcí pro architektury RISC výstavba překladačů je jednodušší, bez optimalizace by byl ale vygenerovaný kód obsáhlejší (překladač pro procesor RISC vygeneruje obsáhlejší kód než bude kód pro procesor CISC realizující stejnou činnost). Cíl optimalizace: - využít strukturu procesoru, - negenerovat rozsáhlé kódy. Způsob, jak se toho dosáhne: - eliminace instrukcí, které nemají efekt, - optimalizace využití registrů, - prevence vazeb mezi instrukcemi a mezi frontami. Závěr: Pokud je překladač realizován tak, aby respektoval strukturu procesoru, zohledňoval výše uvedené aspekty, pak výsledný kód bude efektivnější než kód pro architekturu CISC. Tyto trendy klasické CISC architektury (včetně architektur procesorů Intel) nesledují (?). 20

Analýza některých situací překladačem RISC a CISC Situace, kdy se v posloupnosti instrukcí vyskytuje instrukce podmíněného skoku dokud se instrukce podmíněného skoku nevyhodnotí (podmínka je/není splněna), není jasné, kde bude provádění programu pokračovat. Nejjednodušší řešení instrukce načtené do fronty se přestanou provádět na jistý počet cyklů (odpovídající počtu stupňů mezi prvním stupněm a prováděcí jednotkou), až se instrukce podmíněného skoku vyhodnotí, bude se pokračovat dál buď na další adrese nebo na adrese, kam ukazuje skok -počet kroků, po něž se bude čekat, se vyplní instrukcemi NOP je možno řešit při provádění instrukcí/při překladu. čtení instrukce dekódování Čtení operandu provádění zápis výsledku Instr. K Instr. K-1 Instr. K-2 Instr. K-3 Instr. K-4 21

Analýza některých situací překladačem RISC Další možnost přeorganizovat posloupnost instrukcí tak, aby se počet instrukcí NOP minimalizoval, tzn. optimalizace při překladu. Příklad: překladač vygeneroval následující posloupnost instrukcí: ADD r3,r2,r1 AND r0,r5,r6 JMPT r0,label NOP.. label: sub r1,5,r6 Kvůli instrukci JMPT je nutné do posloupnosti instrukcí vložit instrukce NOP => snaha přeorganizovat posloupnost instrukcí tak, aby instrukce, jejichž výsledek není důležitý pro instrukci skoku, byly přesunuty za instrukci podmíněného skoku => instrukci ADD je možné přenést za instrukci JMPT => zredukuje se počet instrukcí NOP. 22

Analýza některých situací překladačem RISC Výsledek realizace předcházející úvahy: AND r0,r5,r6 JMPT r0,label ADD r3,r2,r1 NOP.. label: sub r1,5,r6 Instrukce ADD neovlivňuje parametr (podmínku) podmíněného skoku JMPT a proto je možné ji přenést za JMPT - výsledek překladu. 23

Pojem Branch Target Cache nebo Jump Target Cache Rychlé vyrovnávací paměti, do nichž se uloží alespoň část kódu, který se bude provádět v případě, že bude realizován podmíněný skok (branch) nebo skok (jump) => z RVP se bude tento kód číst a může se začít provádět, mezitím se z RAM přečte zbytek kódu. Jiná možnost zvýšení kapacity Instruction Fetch tak, aby obsahovala podstatně vyšší počet instrukcí => zvýší se pravděpodobnost, že ve vstupní frontě bude i instrukce, na niž se bude uskutečňovat skok. Další možnost využití techniky předvídání (využita i v Pentiu příští přednáška). 24