300 likes | 483 Views
Pokročilé architektury počítačů (PAP_02.ppt). Karel Vlček , karel.vlcek@vsb.cz katedra Informatiky, FEI VŠB Technická Univerzita Ostrava. Superskalární procesory. Superskalární procesory jsou charakteristické paralelním vydáváním instrukcí a prováděním několika instrukcí v jednom taktu
E N D
Pokročilé architektury počítačů (PAP_02.ppt) Karel Vlček, karel.vlcek@vsb.cz katedra Informatiky, FEI VŠB Technická Univerzita Ostrava
Superskalární procesory • 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í Pokročilé architektury procesorů
Generický superskalární procesor • 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í Pokročilé architektury procesorů
Dynamické plánování instrukcí • 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 Pokročilé architektury procesorů
Rozpoznání a eliminace závislostí • 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í Pokročilé architektury procesorů
Rezervační stanice • 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 Pokročilé architektury procesorů
RS a společná datová sběrnice CDB (Common Data Bus) • 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 Pokročilé architektury procesorů
Tolerování latence skoků • 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á „BranchUnit“ ve které probíhají načtení a predikce skoků nezávisle na ostatních jednotkách procesoru 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ů Pokročilé architektury procesorů
Predikce skoků • 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 Pokročilé architektury procesorů
Překrývání paměťových operací • 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 Pokročilé architektury procesorů
Předvýběr dat • 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 pre-fetching) Pokročilé architektury procesorů
Omezení superskalárních procesorů • 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ů Pokročilé architektury procesorů
Výhody PicoJava procesoru • 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) 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 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 Pokročilé architektury procesorů
Superskalární procesory – přehled (2) • 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 Pokročilé architektury procesorů
Realizované superskalární procesory • Vysoce výkonné počítačové systémy jsou např. Control Data 6600 a 7600, Cray-1 a „top-of-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 Pokročilé architektury procesorů
Pevná řádová čárka Načtení instrukce Dekódování instrukce paměť sběrnice Pohyblivá řádová čárka Pevná a pohyblivá řádová čárka (1) • Vícevýpočetních jednotek Pokročilé architektury procesorů
Pevná a pohyblivá řádová čárka (2) • 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í Pokročilé architektury procesorů
Superskalární koncepce (1) Pokročilé architektury procesorů
Superskalární koncepce (2) • 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ů Pokročilé architektury procesorů
Superskalární koncepce (3) • 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 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) 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 Pokročilé architektury procesorů
Datové závislosti a hazardy (1) • Příklad změny pořadí provádění instrukcí Pokročilé architektury procesorů
Datové závislosti a hazardy (2) • 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í Pokročilé architektury procesorů
Datové závislosti a hazardy (3) • Ř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ů 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) Pokročilé architektury procesorů
Literatura: • 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 80-214-0691-7 • Mueller, S.: Osobní počítač, Computer Press, Praha, (2001), ISBN 80-7226-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 Pokročilé architektury procesorů