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



Podobné dokumenty
Procesor. Procesor FPU ALU. Řadič mikrokód

Pohled do nitra mikroprocesoru Josef Horálek

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

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

Struktura a architektura počítačů

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

Architektury počítačů a procesorů

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

PROCESOR. Typy procesorů

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

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

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

Architektura Intel Atom

Principy počítačů I ZVYŠOVÁNÍ VÝKONU PROCESORŮ. Sériové zpracování. Pipeline. Úspora při použití pipeline. Problém 1: přístup k datům.

Princip funkce počítače

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

CISC A RISC PROCESORY Jak pracují procesory CISC:

Principy počítačů a operačních systémů

Architektura procesorů PC shrnutí pojmů

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

Řetězené zpracování. INP 2008 FIT VUT v Brně

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

Principy počítačů I - Procesory

Architektura počítače

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

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

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

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

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

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

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

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

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

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

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

Architektura Pentia úvod

Architektura procesoru ARM

CHARAKTERISTIKA PROCESORU PENTIUM První verze:

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

Architektury VLIW M. Skrbek a I. Šimeček

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

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

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

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

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

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

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

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

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:

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

Charakteristika dalších verzí procesorů v PC

Cache paměť - mezipaměť

2010/2011 ZS. operačních systémů. Copak je po jméně? Co růži zvou, i zváno jinak vonělo by stejně. William Shakespeare

Architektura počítačů

ARCHITEKTURA PROCESORŮ

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

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

Architektura Pentia 1

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

RISC a CISC architektura

1 Osobní počítač Obecně o počítačích Technické a programové vybavení... 4

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.

4. Procesory CISC a RISC: Základní rysy a podněty pro vznik, zřetězení, predikce skoku, základní zástupci.

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

Principy počítačů. Optimalizace. Martin Urza

PB002 Základy informačních technologií

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

Řízení IO přenosů DMA řadičem

Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností a hlavnímu parametry.

Luděk Matyska. Jaro 2015

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

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

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

Úvod do architektur procesorů

Paměti a jejich organizace

Charakteristika dalších verzí procesorů Pentium

Pokročilé architektury počítačů

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

Dělení pamětí Volatilní paměti Nevolatilní paměti. Miroslav Flídr Počítačové systémy LS /11- Západočeská univerzita v Plzni

MIKROPROCESOR. (c) Ing. Josef Varačka. Title: XI 28 11:40 (1 of 8)

2 Hardware a operační systémy

Procesor z pohledu programátora

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

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

Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Vstupně - výstupní moduly

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

Roman Výtisk, VYT027

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

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

Operace ALU. INP 2008 FIT VUT v Brně

Systém řízení sběrnice

Proudové zpracování instrukcí II. Hazardy v proudovém zpracování Proudové zpracování FP instrukcí

Y36SAP

Architektura počítačů Implementace procesoru

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

Transkript:

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

Kategorizace architektur počítačů Co popisuje architektura počítačů: (CPU = ALU + řadič + paměť + Vstupy/Výstupy) Subskalární architektura (von Neumannova) Skalární architektura překrývání Superskalární architektura statická (VLIW) zřetězení výpočetních jednotek Superskalární architektura dynamická několik instrukcí současně

Základní funkční jednotky počítače Aritmetická a logická jednotka (ALU) Řadič (konečný automat pro řízení činnosti) Paměť (úrovně pamětí a jejich rychlost) Vstupy a výstupy (adresování, způsoby representace informace, podpora formátování dat) 3

Subskalární procesory Vyznačují se společnou pamětí pro instrukce a data, kterou poprvé použil J. von Neumann Doba provádění jednotlivých instrukcí je dána součtem času pro načtení (catch), dekódování a provedení (execution) instrukce Doba provádění programu je dána prostým aritmetickým součtem časů trvání jednotlivých instrukcí

Skalární architektura V jednom instrukčním taktu je načtena a dekódování jen jedna instrukce Provádění instrukcí probíhá v časovém překrývání nebo paralelně (například operace v pevné a pohyblivé řádové čárce) Trvání programu je delší, než součet dob provádění instrukcí, protože v některých taktech nemůže být načtena instrukce 5

Superskalární statická architektura Zvýšení výpočetního výkonu bylo dosaženo zřetězením výpočetních jednotek (provádění instrukcí je tedy více překryto) Pro zvýšení výkonu bylo nutné dosáhnout paralelního načítání instrukcí: tato architektura je nazývána superskalární Řešení přineslo zvětšení délky slova dekódované instrukce označované VLIW

Superskalární dynamická architektura Princip je zajištěn plánováním několika instrukcí současně Při instrukcích skoku jsou některé výsledky provádění ztraceny, protože načtení muselo předcházet provádění instrukcí Týká se to zejména přístupu do operační paměti při čtení nebo ukládání dat

CISC versus RISC Od roku 1975 spolu soupeří dvě koncepce architektur CISC (Complex Instruction Set Computer) RISC (Reduced Instruction Set Computer) 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

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

Základní instrukční cyklus START V ýběrová fáze řadiče Prováděcí fáze řadiče HALT

Sériové zpracování Výběrová Prováděcí Výběrová Prováděcí Výběrová Prováděcí Výběrová Prováděcí Takt 1 Takt 2 Takt 3 Takt 4 Takt 5 Takt 6 Takt 7 Takt 8 Instrukce 1 Instrukce 1 Instrukce 2 Instrukce 2 Instrukce 3 Instrukce 3 Instrukce 4 Instrukce 4 Pipeline Výběrová jednotka Prováděcí jednotka Takt 1 Takt 2 Takt 3 Takt 4 Takt 51 Instrukce 1 Instrukce 2 Instrukce 3 Instrukce 4 Instrukce 1 Instrukce 2 Instrukce 3 Instrukce 4 13

Podstata metody Postupné zpracování Předpoklad: n funkčních bloků Každý z bloků je během (n-1) časových úseků nevyužit a čeká na příchod dalšího operandu Proudové zpracování Využití všech bloků současně V určitém okamžiku je v každém bloku zpracován jiný operand

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce) S1 S2 S3 S4 IF ID OF EX

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 IF instruction fetch (výběr instrukce) ID instruction decode (dekódování instrukce) OF operations fetch (výběr operandu) EX execution (provedení instrukce)

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

EX... OF... ID... IF... 1 2 3 4 5 6 7

EX... OF... ID... IF... 1 2 3 4 5 6 7

EX... OF... ID... IF... 1 2 3 4 5 6 7

EX... OF... ID... IF... 1 2 3 4 5 6 7

EX... OF... ID... IF... 1 2 3 4 5 6 7

EX... OF... ID... IF... 1 2 3 4 5 6 7

EX... OF... ID... IF... 1 2 3 4 5 6 7

EX... OF... ID... IF... 1 2 3 4 5 6 7

EX... OF... ID... IF... 1 2 3 4 5 6 7

EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 EX... OF... ID... IF... 1 2 3 4 5 6 7

Proudové zpracování EX... OF... ID... IF... 1 2 3 4 5 6 7 Doba zpracování = n + k 1 n sekcí k úloh

Neproudové zpracování EX... OF... ID... IF... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Doba zpracování = n * k n sekcí k úloh

Součinitel zvýšení propustnosti n k q = k >> n k + 1 n k q k n lim = k n 1 + 1 k = n

Konstrukce datové cesty pro zřetězené zpracování

Transformace na zřetězené zpracování Datovou cestu rozdělíme do k úseků (stages) v každém úseku budeme zpracovávat jinou instrukci nejpomalejší úsek určuje rychlost pipeline obdoba nejdelší instrukce v jednocyklové datové cestě výchozí CPI=1 (ideální stav) v každém kroku opustí pipeline jedna instrukce ve skutečnosti CPI>1 (pipeline se často zasekne) latence instrukcí zvyšuje režii, nesnižuje propustnost Mezi jednotlivé úseky vložíme registry (latches) stav instrukce, operandy, řídící signály instrukce uvnitř datové cesty jsou v různých stavech analogie k pásu na výrobní lince

Datová cesta pro zřetězené zpracování

Datová cesta pro zřetězené zpracování

zpracování 3 instrukcí, krok 1

zpracování 3 instrukcí, krok 2

zpracování 3 instrukcí, krok 3

zpracování 3 instrukcí, krok 4

zpracování 3 instrukcí, krok 5

zpracování 3 instrukcí, krok 6

zpracování 3 instrukcí, krok 7

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 78

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) 79

Plnění fronty instrukcí Při lineárním programu postupné plnění fronty Nepodmíněný skok Podmíněný skok- metody řešení

Bit predikce skoku V každé skokové instrukci jeden bit rezervován na predikci toho, zda podmínka bude splněna nebo ne. Bit se nastavuje buď předem (při sestavení programu) nebo během provádění programu. S - provedení skoku N neprovedení skoku

Graf přechodů popisující dvojitou predikci skoků S S N S 01 00 S S N 10 N N 11 N S N

Zpoždění instrukce skoku Čtení instrukce z paměti trvá déle než z fronty (2:1 3:1) Proto výběr instrukce musí být proveden s předstihem U podmíněného skoku lze žádat až po vyhodnocení podmínky Proto se odloží lineární proud instrukcí o tolik taktů, o kolik trvá přečtení následující instrukce z paměti

Použití paměti skoků Snížení prostojů na provedení podmíněného skoku je v použití vyrovnávací paměti, do níž se ukládají instrukce, na které v poslední době směřoval skok Používá se strategie FIFO zaplnění novými instrukcemi při každém podmíněném skoku

Předávání dat Mezi instrukcemi, které za sebou těsně následují rozdílná délka provádění instrukcí - metoda vkládání cyklů, až se dokončí předcházející instrukce - metoda vzájemného blokování zpoždění druhé instrukce, než je operand k dispozici

Metoda vkládání cyklů V I D I V O P O Z V 1.vložená instrukce V I D I V O P O Z V 2. vložená instrukce V I D I V O P O Z V V I D I V O P O Z V

Metoda vzájemného blokování Předání výsledku V I D I V I V O D I P O V O Z V P O Z V

Čtení dat z paměti Každá instrukce styku s pamětí trvá déle než instrukce probíhající pouze v procesoru Řešení 1- vkládání jiných instrukcí např. prázdných Řešení 2 Vhodná změna pořadí instrukcí

Počítače s redukovaným souborem instrukcí RISC Reduced Instruction Set Computer

Vlastnosti RISC Podstatná část instrukcí se provádí během jednoho strojového cyklu Instrukce se provádějí v obvodovém řadiči (nepoužívá se mikroprogramování) Celkový počet instrukcí a způsobů adresování je malý Pro spolupráci s hlavní pamětí jsou použity pouze dvě instrukce, a to zápis do paměti a čtení z paměti Instrukce mají pevnou délku a pevný formát, který přesně vymezuje funkci jednotlivých bitů nebo skupin bitů V procesoru je použit velký počet registrů Složitost se z technického vybavení a ze souboru instrukcí částečně přesouvá do optimalizujícího kompilátoru

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 91

Výhody a nevýhody malého počtu instrukcí Robustnost instrukcí Provádění instrukcí je stejné Proto možné překrývání instrukcí Vkládání instrukce v každém cyklu hodin Tím dosahování velkých rychlostí Delší programy Nutnost většího počtu registrů

Sled instrukcí VIVP výběr instrukcí z vyrovnávací paměti DI dekódování instrukce OP operace VOD výběr operandu z registru VAD výpočet adresy dat VAI výpočet adresy instrukce VDVP výběr dat z VP ZVR zápis výsledku do registru

Přesuny dat mezi pamětí a registry Požadavek na dostatečný počet mezipaměti 16-32 KB Dále dostatečný počet registrů až 514

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 95

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 96

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 97

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

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/hardwarový řadič? stupeň paralelismu? důraz na vyšší programovací jazyky? schopnosti kompilátoru? 99

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í) 100

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) 101

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 102

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 103

CISC se společnou pamětí Cache CISC procesor s mikroprogramovým řízením řadič CPU ROM mikroinstr. Cache Hlavní paměť 104

CISC s překrýváním Procesory CISC začaly používat překrývání provádění a načítání následující instrukce Po dobu 95% času je zpracováváno asi jen 25% instrukcí z celkového sortimentu Procesory měly příliš složitý řadič, který zabíral, protože byl řešen hardwarově, příliš velkou plochu na čipu. 105

Doba provádění instrukcí T c Doba provedení programu (čas provedení N instrukcí je dána vztahem T c = T.N.CPI, kde N je celkový počet vykonaných instrukcí a CPI (Clock por Instruction) je průměrný počet vykonávaných cyklů potřebných k vykonání instrukce 106

Základní rysy RISC procesorů (1) Malý počet relativně jednoduchých instrukcí V jednom taktu je vykonány jedna instrukce Řadič s pevně propojenou logickou sítí hradel Operace dat pouze nad registry zápisníkové paměti Velký počet programově dostupných registrů 107

Základní rysy RISC procesorů (2) Tyto změny vyvolaly nutnost optimalizace programu pomocí optimalizujícího kompilátoru Adresaci až 192 registrů při čtení operandů a ukládání výsledku operace Přístup do paměti pouze instrukcí přesunů, proto se označují instrukce jako L/S instrukce (Load/Save Instructions) 108

RISC s pevně propojeným řadičem Funkce oddělených Cache pro instrukce a data P. P. řadič CPU I - Cache D - Cache Hlavní paměť 109

Další vývoj RISC (1) Pro rychlou činnost není důležitý počet instrukcí, ale jejich provádění v jednom instrukčním cyklu Optimalizující překladač má tak k dispozici větší možnosti optimalizace Dosahuje se tím možnost optimalizace programu mnohem snadněji, než volbou složitých instrukcí 110

Další vývoj RISC (2) Další vývoj směřoval ke zvýšení efektivity práce procesoru s pamětí CPU byla doplněna o jednotku správy paměti MMU (Memory Management Unit) Připojen byl také numerický koprocesor pro zpracování dat v pohyblivé řádové čárce Zdokonaleny byly i operace pro obsluhu bran periferních zařízení 111

Současný stav vývoje RISC RISC jsou již standardně řešeny jako L/S architektura (Load/Store) RISC jsou schopny vydávat několik instrukcí v jednom instrukčním cyklu (superskalární technika) 112

Zřetězené zpracování Zřetězení je založeno na rozpracování několika instrukcí v souběžném režimu a jejich průběžném dokončování Dosáhne se tím zvýšení výkonu procesoru podobně jako například při výrobě na montážní lince automobilů Při instrukcích skoků se snižuje účinnost zvyšování výkonu 113

Typy zřetězení Zřetězení lze uplatnit při řízení provádění instrukcí nebo mikroinstrukcí Při realizaci aritmetických instrukcí Při přístupu do paměti (Interleaved Memory) Při zasílaní zpráv (Wormhole Routing) Při provozu na sdílené sběrnici s rozdělenými transakcemi (Split-Transaction Bus) 114

Předpoklady pro účinné zřetězení Nepřetržitý přísun údajů, nad nimiž je prováděna stejná operace Rozdělení do nezávislých kroků Přibližně stejné trvání kroků činnosti prováděné při dílčích krocích zřetězení 115

Nezřetězené zpracování Nezřetězené zpracování je zobrazeno tabulkou s dvanácti kroky provádění tří instrukcí Čas 1 2 3 4 5 6 7 8 9 10 11 12 i 1 S 1 S 2 S 3 S 4 i 2 S 1 S 2 S 3 S 4 i 3 S 1 S 2 S 3 S 4 116

Zřetězené zpracování (1) Zřetězené zpracování je zobrazeno tabulkou s deseti kroky Čas 1 2 3 4 5 6 7 8 9 10 i 1 S 1 S 2 S 3 S 4 i 2 S 1 S 2 S 3 S 4 - i 3 S 1 S 2 x S 3 S 4 i 4 S 1 x S 2 S 3 S 4 i 5 x S 1 S 2 S 3 S 4 i 6 S 1 S 2 S 3 S 4 117

Zřetězené zpracování (2) V předchozím diagramu jsou pomlčkou vyznačeny situace, kdy je počítač bez práce pomlčkou - Čekání na mezivýsledek je zobrazeno smbolem x Počet stupňů je označován hloubka řezu Doba průchodu všemi stupni je tzv. latence řetězu 118

Technické řešení zřetězení Řešení je možné dvojího provedení: Synchronní je řízeno zdrojem synchronizace. Při realizaci se střídá logická síť realizující výkonné jednotky se záchytnými registry Asynchronní dosahuje maximální rychlosti. Při návrhu jednotky je kritickou hodnotou při návrhu zpracování dat zpoždění signálů v logické síti 119

Technické řešení zřetězení (2) Synchronní linka se zřetězením FF S 1 FF FF S k FF Hodiny f MHz 120

Optimalizace počtu stupňů Při návrhu architektury je nutné mít na paměti, že průměrně každá desátá instrukce je skok Mezi zvýšením rychlosti a ceny existuje optimální řešení Počet stupňů linky nelze libovolně zvyšovat 121

Ukazatel zrychlení S Zrychlení S definujeme jako poměr délky sekvenčního zpracování T l =N.k.τ a zkrácené délky zřetězeného zpracování N vstupních položek T k =(k+n-1).(τ+t d ). Nedochází-li k zastavování linky je poměr: S k =T l /T k = N.k.τ /(k+n-1).(τ+t d ) 122

Superzřetězení Využije-li se během taktu signálu ze zdroje synchronizace každé hradlo zhruba jednou, jedná se o techniku tzv. superzřetězení Účinnost superzřetězení je tedy závislá na použité technologii 123

Výkonnost nezřetězených procesorů Sekvenční provádění instrukcí: doba provádění programu je dána součtem dob trvání instrukcí Výkonnost nezřetězených procesorů P je tak dána opakovací periodou signálu ze zdroje synchronizace (periodou hodin) 124

Uspořádání zřetězené linky (1) Architektura pro zřetězené zpracování instrukcí v lince umožňuje překrytí doby načtení a doby provádění instrukcí K určení výkonnosti potřebujeme tři údaje: Periodu signálu zdroje synchronizace Latenci instrukcí (operací) a Iniciační intervaly 125

Uspořádání zřetězené linky (2) Nejstarší typ linky pro zřetězené zpracování používal pouze 2 stupně: instrukční jednotku a prováděcí jednotku Soudobé linky obsahují 5 až 12 stupňů Rozlišují se čtyři hlavní podmnožiny instrukcí: 1. aritmetické a logické s pevnou čárkou (FX), 2. operace s pohyblivou řádovou čárkou (FP), 3. skoky (B, Branching) a 4. čtení a ukládáni dat (L/S, Load/Store) 126

Tradiční procesory RISC Činnosti zřetězení u RISC procesorů: IF (Instruction Fetch) ID (Instruction Decode) a RO (Read Operands) EX (Execute) a WB (Write Back) CA (Cache Access) AG (Address Generation) E/C (Execute/Cache Access) 127

Konflikty RAW, WAR a WAW Tři druhy datových závislostí: RAW (Read After Write) čtení po zápisu WAR (Write After Read) zápis po čtení WAW (Write After Write) zápis po zápisu Závislost RAR (Read After Read) ke konfliktu nikdy nevede 128

Předávání údajů u konfliktů RAW - předávání dat (forwarding, bypassing) jinak nazývané postupová závislost nebo pravá závislost (true dependence) WAR - Protiproud (anti-dependence). Tato sekvence může dávat výsledky v jiném pořadí, než uvádí program Skoky představují tzv. řídicí závislost (control dependence) 129

Výpočet adresy u skoku Pro výpočet adresy skoku je výhodné použít samostatnou aritmetickou jednotku. Tento výpočet je prováděn již ve fázi ID a pak lze přes multiplexor uložit novou adresu přímo do programového čítače Snížit tuto nevýhodu je možné také použitím dynamické předpovědi skoků. To je nezbytné u superskalárních procesorů 130