1 / 30

Pokročilé architektury počítačů (PAP_02)

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

kara
Télécharger la présentation

Pokročilé architektury počítačů (PAP_02)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pokročilé architektury počítačů (PAP_02.ppt) Karel Vlček, karel.vlcek@vsb.cz katedra Informatiky, FEI VŠB Technická Univerzita Ostrava

  2. 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ů

  3. 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ů

  4. 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ů

  5. 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ů

  6. 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ů

  7. 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ů

  8. 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ů

  9. 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ů

  10. 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ů

  11. 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ů

  12. 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ů

  13. 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ů

  14. 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ů

  15. 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ů

  16. 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ů

  17. 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ů

  18. 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ů

  19. 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ů

  20. 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ů

  21. Superskalární koncepce (1) Pokročilé architektury procesorů

  22. 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ů

  23. 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ů

  24. 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ů

  25. 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ů

  26. Datové závislosti a hazardy (1) • Příklad změny pořadí provádění instrukcí Pokročilé architektury procesorů

  27. 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ů

  28. 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ů

  29. 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ů

  30. 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ů

More Related