Principy překladačů. Architektury procesorů. Jakub Yaghob



Podobné dokumenty
Část 1 ZÁKLADNÍ RYSY VÝPOČETNÍ PROSTŘEDKŮ DOSTUPNÝCH NA IT4INNOVATIONS

Základní typy procesorů, principy zřetězeného zpracování, plnění fronty instrukcí.

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

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Procesor. Procesor FPU ALU. Řadič mikrokód

JAZYK C PRO MIKROKONTROLÉRY

Vítězslav Bártl. březen 2013

Charakteristika dalších verzí procesorů v PC

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

Architektura AMD K10. Kozelský Martin, koz230. Datum:

1. Programování, typy programovacích jazyků, historie.

Virtuální přístroje. Použití grafického programování v LabVIEW. Ing. Pavel Mlejnek

Název: VY_32_INOVACE_PG3309 Booleovské objekty ve 3DS Max - sčítání a odčítání objektů

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

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

( ) Kreslení grafů funkcí metodou dělení definičního oboru I. Předpoklady: 2401, 2208

Nerovnice s absolutní hodnotou

Architektura procesorů PC shrnutí pojmů

2.8.9 Parametrické rovnice a nerovnice s absolutní hodnotou

Paralelní systémy. SIMD jeden tok instrukcí + více toků dat jedním programem je zpracováváno více různých souborů dat

Sekvenční logické obvody

(a) = (a) = 0. x (a) > 0 a 2 ( pak funkce má v bodě a ostré lokální maximum, resp. ostré lokální minimum. Pokud je. x 2 (a) 2 y (a) f.

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

{ } Kombinace II. Předpoklady: =. Vypiš všechny dvoučlenné kombinace sestavené z těchto pěti prvků. Urči počet kombinací pomocí vzorce.

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

Signály Mgr. Josef Horálek

1.1.1 Kvadratické rovnice (dosazení do vzorce) I

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

Operační systém teoreticky

Nyní jste jedním z oněch kouzelníků CÍL: Cílem hry je zničit soupeřovy HERNÍ KOMPONENTY:

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

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

Obchodní řetězec Dokumentace k návrhu databázového systému

M - Rovnice - lineární a s absolutní hodnotou

Dopravní úloha. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

( ) Neúplné kvadratické rovnice. Předpoklady:

Osnova přednášky Procesory využívající ILP. Dynamická predikce skoku. Zpracování komplexních instrukcí v pipeline

Architektura Pentia úvod

Petr Havíček HAV319. Rodina procesorů Intel Nehalem (historie a vývoj)

Novinky v programu Účtárna 2.09

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

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

Postup práce s elektronickým podpisem

4.2.7 Voltampérová charakteristika rezistoru a žárovky

Historie mikroprocesorů. R.1971 Intel 4004 původně jako čip pro kalkulačky I8008, i8080, i8086/88,

Katalog OneNet. Manuál Jak s Katalogem OneNet pracovat


2.7.2 Mocninné funkce se záporným celým mocnitelem

Soubor testovacích podložek verze 1.4. Soubor testovacích podložek Tomáš Feltl TFSoft

Sběrnicová struktura PC Interní počítačové paměti PC

Struktura počítačů základní pojmy

Pingpongový míček. Petr Školník, Michal Menkina. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií

PROCESOR. Typy procesorů

Semestrální práce NÁVRH ÚZKOPÁSMOVÉHO ZESILOVAČE. Daniel Tureček zadání číslo 18 cvičení: sudý týden 14:30

Kapitola I - Množiny bodů daných vlastností I.a Co je množinou všech bodů v rovině, které mají od daných dvou různých bodů stejnou vzdálenost? I.

STEREOMETRIE. Vzdálenost bodu od přímky. Mgr. Jakub Němec. VY_32_INOVACE_M3r0113

9.2.5 Sčítání pravděpodobností I

MS WORD 2007 Styly a automatické vytvoření obsahu

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

DUM 13 téma: Příkazy pro výběr

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

INFORMACE K POKUSNÉMU OVĚŘOVÁNÍ ORGANIZACE PŘIJÍMACÍHO ŘÍZENÍ SŠ S VYUŽITÍM JEDNOTNÝCH TESTŮ

Podpora personálních procesů v HR Vema

Vrtání závitů bez vyrovnávací hlavičky (G331, G332)

Pohled do nitra mikroprocesoru Josef Horálek

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

Základy. analýzy hlavních komponent a multivariačních regresních metod pro spektrální analýzu

Úvod. Analýza závislostí. Přednáška STATISTIKA II - EKONOMETRIE. Jiří Neubauer

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

E-ZAK. metody hodnocení nabídek. verze dokumentu: QCM, s.r.o.

Google AdWords - návod

Funkce rostoucí, funkce klesající I

Kvantové počítače algoritmy (RSA a faktorizace čísla)

Tvorba a využití výukových animací pro praktikum z genetiky

Miroslav Tichý, tic136

Kvadratické rovnice pro učební obory

Microsoft Office. Word styly

4.6.6 Složený sériový RLC obvod střídavého proudu

SWI120 ZS 2010/ hookey.com/digital/

Jméno autora: Mgr. Zdeněk Chalupský Datum vytvoření: Číslo DUM: VY_32_INOVACE_13_FY_A

Popis a funkce klávesnice Gama originální anglický manuál je nedílnou součástí tohoto českého překladu

Ministerstvo pro místní rozvoj. podprogram

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/


DUM 01 Skladba výpověď, věta, větné vztahy a jejich vyjadřování, 9. roč..notebook February 20, 2014

BlueJ a základy OOP. Programování II 1. cvičení Alena Buchalcevová

Architektura počítače

Teorie grafů. Bedřich Košata

Architektura Intel Atom

Reg. č. projektu: CZ 1.04/ /A Pracovní sešit

Inovace výuky prostřednictvím šablon pro SŠ Název školy Gymnázium Jana Pivečky a Střední odborná škola Slavičín Autor

IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE

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

Exekutoři. Závěrečná zpráva

Struktura a architektura počítačů

Tvorba trendové funkce a extrapolace pro roční časové řady

Programování 4. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

A. Struktura grafického kódu na dokladech o získání základního vzdělání

Aplikace DigiArchiv z pohledu administrátora a operátora. Systém, metody, postupy

Sada 2 Microsoft Word 2007

Transkript:

Principy překladačů Architektury procesorů Jakub Yaghob

Architektury procesorů Architektura procesoru představuje cílový jazyk Platí pro překladače do kódu konkrétního procesoru Ovlivňuje celý backend překladače, zejména generátor kódu Může ovlivnit i tvar a instrukce mezikódu, nasazené druhy optimalizací nad mezikódem

Registry Nejrychlejší paměť Malý počet x86 má 7 celočíselných 32-bitových IA-64 má 128 celočíselných 64-bitových Různé druhy pro různé typy dat Celočíselné, floatové, adresové, vektorové Různé druhy přístupu Přímý Zásobník (FPU)

Instrukční sada RISC CISC Jednoduché instrukce, malý počet (např. bez dělení) Složité instrukce, velký repertoár Load-Execute-Store Ortogonalita x86 má neortogonální instrukční sadu

Pipelining Zahájení čtení a dekódování další instrukce před dokončením vykonávání předchozí instrukce Každá fáze a každá instrukce má svoje zpoždění (latency). Problém při závislosti operandů (RAW)

Superscalarita Více stejných jednotek schopných paralelního vykonávání instrukcí

Out-of-Order Execution 1 (vykonávání mimo pořadí) Načtení instrukce Zařazení do vyčkávací stanice Instrukce čeká na všechny svoje operandy Instrukce se vykoná ve své výkonné jednotce Výsledky se uchovají ve frontě Až se všechny starší instrukce zapíší do registrů, zapíše se výsledek této instrukce

Out-of-Order Execution 2 (vykonávání mimo pořadí)

Predikce skoků Hluboké pipeliny mají problém, pokud podmíněný skok není proveden Dynamická predikce skoků BTB CPU podle historie (vzory nějaké hloubky) odhaduje, jestli skok bude proveden nebo nebude Pokud není žádná historie, použije se statická predikce Statická predikce skoků Bez nápovědy Skok vpřed se neprovede, skok vzad se provede S nápovědou Překladač odhaduje pravděpodobnost skoku Delay slot

Spekulativní vykonávání Vykonávání kódu, který nemusí být zapotřebí Významná disproporce mezi rychlostí CPU a paměti Typické využití je značné předsunutí čtecích operací CPU provádí i odsouvání zápisových operací Paměťové bariéry Kódová spekulace Kontrola, zda se provedla Datová spekulace Předsunutí i v případě nevyjasněného pointer-aliasingu

SIMD instrukce Někdy také multimediální instrukce Celočíselné i floatové datové typy Vektorizace výpočtu už v mezikódu nebo až při generování kódu Značné zrychlení výpočtu Obtížná detekce možnosti vektorizovat

VLIW Kódování instrukcí Šablony IA-64 ILP (Instruction Level Parallelism) Paralelismus zakódován přímo v instrukci Závislosti v paralelní skupině Zákaz RAW, WAW Povolení WAR

Jednočipy Malý paměťový prostor Optimalizace na velikost kódu i dat Bitové proměnné Oddělené paměťové prostory Kód a několik datových prostorů Různý přístup Jednodušší pipeline, žádná superskalarita

Generování kódu Přidělování paměti Výběr instrukcí Přidělování registrů Instrukční scheduling Generování výsledku Dohodnutý formát souboru Objecty Kód, data, relokace, externí a public symboly, ladící informace

Přidělování paměti Kód Řešení skoků Statická oblast dat Globální data Zásobník Lokální proměnné a parametry funkcí Velikost datových typů Umístění v paměti Zarovnání dat Co bude v paměti a co v registrech

Výběr instrukcí 1:N M:N Z jedné instrukce mezikódu se generuje N instrukcí Jednoduché, ale ne příliš dobrý kód Z M instrukcí mezikódu N instrukcí kódu NP-úplný problém výběru Heuristiky Více cest, jak stejnou věc vygenerovat CISC, SIMD, VLIW Problémy s neortogonální sadou instrukcí

Přidělování registrů Co bude v paměti a co v registrech a v jakých Typy registrů Problémy s neortogonální sadou instrukcí Obarvení grafu životnosti proměnných ve funkci Graf je pouze pro daný typ proměnných (např. celočíselné) Počet barev je počet registrů pro daný typ Pokud nejde obarvit, odstraní se uzly, které nejsou moc důležité a zkusí se to znovu Není třeba najít ideální obarvení největšího počtu uzlu zadaným počtem barev, ale nějaké obarvení

Instrukční scheduling Přeházení instrukcí, aby zachovávalo sémantiku a nedocházelo k zastavení pipeline Závislosti RAW, WAW, WAR Sestrojení grafu závislosti dat Orientovaný graf, kde hrana říká, která instrukce musí předcházet jinou instrukci, aby data byla k dispozici Nalezení topologického třídění Latence instrukcí, spekulace, superskalarita, out-of-order execution Obvykle se provádí nad jedním základním blokem