PAP_02 - Katedra informatiky FEI VŠB-TUO

Download Report

Transcript PAP_02 - Katedra informatiky FEI VŠB-TUO

Pokročilé architektury
počítačů (PAP_02.ppt)
Karel Vlček,
[email protected]
katedra Informatiky, FEI
VŠB Technická Univerzita
Ostrava
Superskalární procesory


2
Superskalární procesory jsou charakteristické
paralelním vydáváním instrukcí a prováděním
několika instrukcí v jednom taktu
Dnes představují superskalární procesory
rozhodující směr vývoje přesto, že u procesorů
CISC je vysoká složitost dekódování instrukcí
Karel Vlček
Pokročilé architektury procesorů
Generický superskalární procesor





3
Typickým znakem je předběžné dekódování
Organizaci zajišťuje tzv. vydávací okénko
(issue window)
Testuje se nezávislost vydávaných instrukcí
Z vydávacího okénka se instrukce přesouvají
do fronty
Existuje i možnost provádět instrukce mimo
pořadí
Karel Vlček
Pokročilé architektury procesorů
Dynamické plánování instrukcí



4
Zakládání instrukcí do fronty je prováděno do
několika front, které jsou členěny podle
funkčních jednotek na tzv. rezervační stanice
Načasování probíhá za běhu programu tedy
dynamicky (IBM360/91 v roce 1967)
V mikroprocesorech se princip dynamického
plánování uplatnil až o 25 let později
Karel Vlček
Pokročilé architektury procesorů
Rozpoznání a eliminace závislostí




5
Rezervační stanice řeší dílčí fronty u
jednotlivých funkčních jednotek
V jednom taktu bývá odesíláno až pět
instrukcí
Druhým způsobem řešení je použití
centrálních rezervačních stanic
Zlepšení výkonnosti přispívá možnost
spouštění instrukcí mimo pořadí
Karel Vlček
Pokročilé architektury procesorů
Rezervační stanice


6
Centrální rezervační stanice mohou být
řešené bez hodnot operandů, u kterých se
uplatňuje tabulka skóre rozpracovaných
operandů
Rezervační stanice s hodnotami operandů
umožňují zrušit vazbu mezi jmény
proměnných v programu a jejich hodnotami v
registrech
Karel Vlček
Pokročilé architektury procesorů
RS a společná datová sběrnice
CDB (Common Data Bus)



7
Pro několik spolupracujících rezervačních
stanic (RS) je výhodné použít společnou
datovou sběrnici CDB (Common Data Bus)
Použije-li se jen jedna CDB, lze aktualizovat
v jednom taktu jeden výsledek, lépe je použít
tolik CDB, kolik je funkčních jednotek
Každá RS pak musí provádět několik
asociativních vyhledávání pro všechny
příznaky výsledků generovaných na začátku
Karel Vlček
Pokročilé architektury procesorů
Tolerování latence skoků



8
Skokovou instrukci je možné vydávat jen s
omezeným počtem dalších instrukcí
Řídicí závislost představuje hlavní překážku
zvyšování výkonnosti procesorů
Řešení přináší jednotka nazývaná „Branch
Unit“ ve které probíhají načtení a predikce
skoků nezávisle na ostatních jednotkách
procesoru
Karel Vlček
Pokročilé architektury procesorů
Spekulativní zpracování instrukcí
Spekulativní zpracování instrukcí zahrnuje:
 podmíněné ukončení smyček
 ostatní podmíněné skoky (provedou se v 50%
případů)
 nepodmíněné skoky včetně skoků do
podprogramů a návratů
9
Karel Vlček
Pokročilé architektury procesorů
Predikce skoků




10
Predikce pevná
Predikce skutečná, pokud závisí jen na kódu
programu, jedná se o predikci statickou
Dynamická predikce zpracovává tabulku
historie skoků
Zpracování tzv. „skoků v poslední době“ s
cílovým adresami skoků zlepšuje výkonnost
Karel Vlček
Pokročilé architektury procesorů
Překrývání paměťových operací



11
Modely paměťové konzistence popisují
součinnost ALU a MMU
Volnější modely připouštějí, aby zpracování
instrukcí pokračovalo dál i za nedokončenou
paměťovou operací s vekou latencí
Přísnější modely používají tzv. zápisovou
zábranu
Karel Vlček
Pokročilé architektury procesorů
Předvýběr dat



12
Předvýběr dat (pre-fetching) je technikou
tolerování latence paměťových operací
Na předvýběru dat spolupracuje kompilátor
Účinný předvýběr dat je takový, který dodává
operandy právě včas (just-in-time prefetching)
Karel Vlček
Pokročilé architektury procesorů
Omezení superskalárních
procesorů



13
V 90% případů nejsou vydávány více než 4
instrukce
Zrychlení dosahuje limitní hodnoty 2,5 krát
vyšší počet vydaných instrukcí na takt
Úspěšné řešení představuje procesor
PicoJava se zásobníkovou organizací
souboru registrů
Karel Vlček
Pokročilé architektury procesorů
Výhody PicoJava procesoru




14
Zásobníková paměť může obsahovat
několik různě velkých instrukcí s velkým
počtem proměnných
Dekodér dekóduje současně až 2 instrukce
Pro zrychlení je proto používána metoda
sdružování instrukcí (instruction folding)
Lze dosáhnout synchronizace vláken a tzv.
sběr odpadu (garbage collection)
Karel Vlček
Pokročilé architektury procesorů
Výhody PicoJava-II procesoru
Podpora OO programování:
 volání metod
 skryté načítání lokálních proměnných
 šestistupňová instrukční linka
15
Karel Vlček
Pokročilé architektury procesorů
Superskalární procesory – přehled (1)
Základní myšlenka se dá shrnout následovně:
 Řešení výkonných jednotek využívá principu
řetězení, přičemž nové instrukce jsou volány
v následujícím strojovém cyklu
 Zvyšuje se počet instrukcí v aktuálním
strojovém cyklu
 Musí být zajištěna dostupnost paměti pro
data, která jsou zpracovávána instrukcemi
16
Karel Vlček
Pokročilé architektury procesorů
Superskalární procesory – přehled (2)


17
Při praktickém řešení je nutné, aby byla
použita specializovaná cache, pomocí které
je možné zajistit dostupnost dat pro
provedení operace každou instrukcí
programu pokud možno nezávisle
Superskalární procesory jsou dnes jednotnou
koncepcí používanou mikroprocesorovými
systémy
Karel Vlček
Pokročilé architektury procesorů
Realizované superskalární procesory



18
Vysoce výkonné počítačové systémy jsou
např. Control Data 6600 a 7600, Cray-1 a „topof-the-range“ IBM střediskové počítače
Začínají se prosazovat hardwarová řešení pro
provádění různých typů instrukcí
Jako příklad může být uvedeno rozdělení
výpočtů prováděných v pevné řádové čárce a
v pohyblivé řádové čárce
Karel Vlček
Pokročilé architektury procesorů
Pevná a pohyblivá řádová čárka (1)

Více výpočetních jednotek
Pevná
řádová
čárka
Načtení
instrukce
Dekódování
instrukce
paměť
sběrnice
Pohyblivá
řádová
čárka
19
Karel Vlček
Pokročilé architektury procesorů
Pevná a pohyblivá řádová čárka (2)




20
Základní koncepce superskalárních procesorů
vychází z rozdělení výpočetních jednotek
pro odlišné operace
Nevysloveným předpokladem je zde to, že
provádění operací trvá stejně dlouho
Tento předpoklad není v praxi možný
Výpočet tedy vyžaduje změnu pořadí
provádění instrukcí
Karel Vlček
Pokročilé architektury procesorů
Superskalární koncepce (1)
21
Karel Vlček
Pokročilé architektury procesorů
Superskalární koncepce (2)



22
Možný zisk zrychlení činnosti platí pouze při
změně pořadí prováděných instrukcí tak,
aby bylo dosaženo datově nezávislé činnosti
Tento předpoklad je splnitelný, ale je
nezbytné vyřešit datové závislosti
Podle řešení datových závislostí jsou
klasifikovány tři různé způsoby řešení
koncepce superskalárních procesorů
Karel Vlček
Pokročilé architektury procesorů
Superskalární koncepce (3)



23
Statická koncepce – tyto procesory vydávají
instrukce podle programu a rovněž provádějí
instrukce v původním pořadí
Dynamická koncepce – instrukce jsou zde
vydávány v pořadí napsaném v programu, ale
pořadí jejich provádění je optimalizováno
Dynamická se spekulací – stejné jako
dynamická koncepce, ale pro případ větvení
jsou prováděny obě větve možného postupu
Karel Vlček
Pokročilé architektury procesorů
Superskalární koncepce (4)
Terminologie koncepcí:
 Scheduling – stanovení pořadí provádění
instrukcí (statická koncepce / dynamická k.)
 Issue – okamžik zachycení (fetch) operandů
pro instrukci, je prováděno v pořadí programu
 Execution – provádění (in-order / out-of-order)
 Speculation and Committal – spekulace a
přijetí rozhodnutí (o platnosti výsledku)
24
Karel Vlček
Pokročilé architektury procesorů
Superskalární koncepce (5)
Terminologie koncepcí (pokračování):
 Write Back – ve skutečnosti není zápis
prováděn vždy, ale jen tehdy, je-li potvrzena
platnost dat, do té doby je výsledek uložen do
pomocného registru
 Retirement or Completion – instrukce je
dokončena a operandy opouštějí registry linky
pro provádění operace
25
Karel Vlček
Pokročilé architektury procesorů
Datové závislosti a hazardy (1)

26
Příklad změny pořadí provádění instrukcí
Karel Vlček
Pokročilé architektury procesorů
Datové závislosti a hazardy (2)



27
Výstupní pořadí je nutné ošetřit, když výsledky
dvou instrukcí mají být uloženy do stejného
registru
Jako „Output Dependency“ je označována
situace, kdy první výsledek může přepsat druhý,
protože se druhý vyskytl dříve, než byl očekáván
Jako „Antidependency“ se označuje případ, při
kterém platnost dat přichází v opačném pořadí
Karel Vlček
Pokročilé architektury procesorů
Datové závislosti a hazardy (3)



28
Řešení problémů datových závislostí spočívá v
implementaci náležitého počtu registrů pro
pořadí instrukcí pro daný algoritmus nebo v
tom, že jsou instrukce prováděny v takovém
pořadí, jak jsou napsány v programu
V takovém případě se ovšem neprojeví výhody
Superskalární architektura vyžaduje při
implementaci hardwarovou podporu registrů
Karel Vlček
Pokročilé architektury procesorů
Výkon superskalárních procesorů
Existují omezení, která musíme brát v úvahu:
 Dostupnost registrů, které jsou použité při
následných operacích WAW a WAR (může být
zlepšena použitím přejmenování
 Předpovědí skoků – předpověď skoků je
možné provádět na základě pravděpodobnosti
 Přeadresováním registrů – spočívá v jejich
přejmenování (aliasing)
29
Karel Vlček
Pokročilé architektury procesorů
Literatura:






30
Dvořák, V.: Architektura a programování paralelních systémů, VUTIUM
Brno, (2004), ISBN 80-214-2608-X
Dvořák, V., Drábek, V.: Architektura procesorů, VUTIUM Brno, (1999),
ISBN 80-214-1458-8
Drábek, V.: Výstavba počítačů, PC-DIR, s.r.o. Brno, (1995), ISBN 80214-0691-7
Mueller, S.: Osobní počítač, Computer Press, Praha, (2001), ISBN 807226-470-2
Pluháček, A.: Projektování logiky počítačů, Vydavatelství ČVUT Praha,
(2003), ISBN 80-01-02145-9
Hennessy, J., Patterson, D.: Computer Architecture: A Quantative
Approach, Morgan Kaufman, 3rd Edition, 2002, ISBN: 1-55860-724-2
Karel Vlček
Pokročilé architektury procesorů