Pokročilé architektury počítačů (PAP_02.ppt) Karel Vlček, katedra Informatiky, FEI VŠB Technická Univerzita Ostrava
Karel VlčekPokročilé architektury procesorů 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í
Karel VlčekPokroč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í
Karel VlčekPokroč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
Karel VlčekPokroč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í
Karel VlčekPokroč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
Karel VlčekPokroč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
Karel VlčekPokroč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á „Branch Unit“ ve které probíhají načtení a predikce skoků nezávisle na ostatních jednotkách procesoru
Karel VlčekPokroč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ů
Karel VlčekPokroč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
Karel VlčekPokroč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
Karel VlčekPokroč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)
Karel VlčekPokroč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ů
Karel VlčekPokroč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)
Karel VlčekPokroč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
Karel VlčekPokročilé architektury procesorů 16 Literatura: Dvořák, V.: Architektura a programování paralelních systémů, VUTIUM Brno, (2004), ISBN X Dvořák, V., Drábek, V.: Architektura procesorů, VUTIUM Brno, (1999), ISBN Drábek, V.: Výstavba počítačů, PC-DIR, s.r.o. Brno, (1995), ISBN Mueller, S.: Osobní počítač, Computer Press, Praha, (2001), ISBN Pluháček, A.: Projektování logiky počítačů, Vydavatelství ČVUT Praha, (2003), ISBN