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



Podobné dokumenty
Jedna z nejdůležitějších součástek počítače = mozek počítače, bez něhož není počítač schopen vykonávat žádné operace.

Architektura počítačů Výkonnost počítačů

PROCESORY. Typy procesorů

Úvod do programování a práce s počítačem

Architektura počítačů Úvod

Architektura počítačů Výkonnost počítačů

19 Jednočipové mikropočítače

BIOS (BASIC INPUT-OUTPUT SYSTEM)

Ėlektroakustika a televize. TV norma ... Petr Česák, studijní skupina 205

Server. Software serveru. Služby serveru

Karel Johanovský Michal Bílek. Operační paměť

ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ

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

Řízení kalibrací provozních měřicích přístrojů

Zadávací dokumentace. Příloha

INTELIGENTNÍ DŮM. Zdeněk Kolář, Viktor Daněk. Střední průmyslová škola sdělovací techniky Panská 856/3, Praha 1

Základnímí částmi počítače jsou procesor, operační paměť, vstupní a výstupní zařízení.

Algoritmizace a programování

Inovace bakalářského studijního oboru Aplikovaná chemie. Reg. č.: CZ.1.07/2.2.00/

Vývoj počítačů a jejich budoucnost.

STANOVISKO č. STAN/1/2006 ze dne

MĚŘENÍ PŘENOSOVÉ RYCHLOSTI PAMĚTÍ FLASH

Programování - úvod. Programování. Proces programování. Vlastnosti dobrého programu: Kapitola seznamuje se základními pojmy programování.

Hardware Martina Miškeříková

ZADÁVACÍ DOKUMENTACE

Odpověď na dotaz dodavatele

KOMISE EVROPSKÝCH SPOLEČENSTVÍ

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: jan.skrbek@tul.cz tel.: Konzultace: úterý

Ing. Šárka Endrlová, starostka. Ing. Jana Dvořáková.

AMD K11 a její vztah k předcházejícím procesorům. Referát do PAP. Jan Uhlář

- regulátor teploty vratné vody se záznamem teploty

Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem.

VYR-32 POKYNY PRO SPRÁVNOU VÝROBNÍ PRAXI - DOPLNĚK 6

Architektury počítačů na bázi sběrnice PCI. Cíl přednášky: Obsah přednášky:

INFORMATIKA V CHOVECH PRASAT

ZADÁVACÍ DOKUMENTACE

METODIKA DODRŽOVÁNÍ PRINCIPŮ ÚČELNOSTI, HOSPODÁRNOSTI A EFEKTIVNOSTI PŘI HOSPODAŘENÍ S VEŘEJNÝMI PROSTŘEDKY NÁVRH

VÝZVA A ZADÁVACÍ DOKUMENTACE

FWA (Fixed Wireless Access) Pevná rádiová přípojka

Ukázka knihy z internetového knihkupectví

Architektura počítačů Výkonnost počítačů

Bezdrátové připojení (pouze u vybraných modelů)

Škola VOŠ a SPŠE Plzeň, IČO , REDIZO

Tel/fax: IČO:

Analýzy a doporučení

ISA 402 ZVAŽOVANÉ SKUTEČNOSTI TÝKAJÍCÍ SE SUBJEKTŮ VYUŽÍVAJÍCÍCH SLUŽEB SERVISNÍCH ORGANIZACÍ

Mikroprocesor Intel 8051

Nabídka vzdělávacích seminářů

ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE

Architektura procesoru Athlon 64 X2

Budování aplikačních rozhraní pro obousměrnou komunikaci mezi ERMS a jejich vztah k Národnímu standardu pro komunikaci mezi ERMS.

MS měření teploty 1. METODY MĚŘENÍ TEPLOTY: Nepřímá Přímá - Termoelektrické snímače - Odporové kovové snímače - Odporové polovodičové

Metody hodnocení rizik

LEGISLATIVNÍ ZÁKLADY A TENDENCE ÚSPOR ENERGIE V BUDOVÁCH. Jiří Tůma, ČVUT Praha. Brno, Stavební veletrh

IT komise České jezdecké federace. Souhrnná zpráva IT Komise pro Radu ČJF ke dni

Zákon o elektronickém podpisu

Podpora specifického vzdělávání v Label Design, a.s. cesta k vytvoření kvalitního zázemí odborných zaměstnanců a špičkové kvality produkce a servisu.

Operace nad celými tabulkami

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Mikrořadiče fy ATMEL

INSTITUT REGIONÁLNÍCH INFORMACÍ

Solární kolektory pro rodinný dům: Stačí 1 metr čtvereční na osobu

1. DÁLNIČNÍ A SILNIČNÍ SÍŤ V OKRESECH ČR

Využití interaktivní tabule ve výuce

Poskytovatel: Národní rada osob se zdravotním postižením ČR, o.s. Poradna pro uživatele sociálních služeb Děčín

TISKOVÁ ZPRÁVA PUBLIC NOVÝ EVROPSKÝ PROJEKT: METODOLOGIE NÁVRHU DYNAMICKY REKONFIGUROVATELNÝCH

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM

Příloha: XX. Zadávací dokumentace veřejné zakázky malého rozsahu Dodávka výpočetní techniky

Změny zákona o integrované prevenci v souvislosti transpozicí směrnice o průmyslových emisích

účetních informací státu při přenosu účetního záznamu,

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

170/2010 Sb. VYHLÁŠKA. ze dne 21. května 2010

Výzva k podání nabídek na. Dodávka notebooků pro cílovou skupinu

Kritéria zelených veřejných zakázek v EU pro zdravotnětechnické armatury

Odůvodnění veřejné zakázky dle 156 zákona. Odůvodnění účelnosti veřejné zakázky dle 156 odst. 1 písm. a) zákona; 2 Vyhlášky 232/2012 Sb.

Objektově orientované databáze

Česká zemědělská univerzita v Praze Fakulta provozně ekonomická. Obor veřejná správa a regionální rozvoj. Diplomová práce

Bezdrátové připojení (pouze u vybraných modelů) Uživatelská příručka

Příspěvky poskytované zaměstnavatelům na zaměstnávání osob se zdravotním postižením Dle zákona č. 435/2004 Sb., o zaměstnanosti, v platném znění.

Návrh individuálního národního projektu. Podpora procesů uznávání UNIV 2 systém

Modely rozvrhování produkce s využitím Matlabu

Základní deska (motherboard, mainboard)

Odůvodnění veřejné zakázky. Přemístění odbavení cestujících do nového terminálu Jana Kašpara výběr generálního dodavatele stavby

PRACOVNÍ ČINNOSTI. Formy a metody práce podle charakteru učiva a cílů vzdělávání: Ukázka, výklad s ukázkou, samostatná práce, práce ve skupinách

Praktické úlohy- zaměření specializace

ATHÉNSKÁ CHARTA CIAM (1933) Zásady plánování měst, zrevidovaná verze charty vypracovaná v roce 2002 Evropskou radou urbanistů.

Pracovnělékařské služby a posuzování zdravotní způsobilosti osoby ucházející se o zaměstnání ( výpis ze zákona 373/2011 Sb. ) Pracovnělékařské služby

VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s. Fakulta ekonomických studií katedra řízení podniku. Předmět: ŘÍZENÍ LIDSKÝCH ZDROJŮ (B-RLZ)

Obecně závazná vyhláška č. 1/2007 o místních poplatcích

Nejlepší zhodnocení veřejných prostředků

MEZINÁRODNÍ AUDITORSKÝ STANDARD ISA 505 EXTERNÍ KONFIRMACE OBSAH

Zadávání tiskových zakázek prostřednictvím JDF a Adobe Acrobat Professional

Katalog vzdělávání 2015

Přezkoumání vhodnosti použití zvýšené podlahy pro aplikace datových středisek

MLADINOVÝ KONCENTRÁT VÚPS

Spolehlivý pracant HAL3000 EliteWork II s nízkou spotřebou energie

Dne obdržel zadavatel tyto dotazy týkající se zadávací dokumentace:

Aplikace počítačů v provozu vozidel 9

Generátor sítového provozu

Změny dispozic objektu observatoře ČHMÚ v Košeticích

Transkript:

Principy počítačů a operačních systémů Úvod Zimní semestr 2011/2012

Proč jsou počítače zajímavé? Nesmírně dynamický obor zrod elektronických počítačů kolem r. 1940 o 60 let později počítače všudypřítomné 3. revoluce (vedle průmyslové a zemědělské) nové technologie nahrazeny dříve než stačí zestárnout Ohromný vliv na každodenní život automobily, mobilní telefony, lidský genom, výpočetní chemie, WWW, vyhledávače,... každém řádové snížení ceny nebo zvýšení výkonnosti poskytuje nové přiležitosti 2/72 - Úvod

Čemu vlastně říkáme počítač? Počítač je široký pojem... sdílí řadu společných technologií, ale jejich uspořádání se značně liší podle požadavků a využití Hlavní třídy počítačů stolní počítače servery, superpočítače, mainframy optimální poměr cena/výkon tlak na vývoj vyšší propustnost, spolehlivost, výpočetní výkon vědecko-technické výpočty vs. velké množství požadavků vestavěné (embedded) počítače 3/72 - Úvod omezené zdroje (paměť, výkon, energie, cena často další nároky, např. na fyzickou odolnost

mil. ks Osobní vs. vestavěné počítače Zdroj: P&H 4/72 - Úvod

Co byste se měli naučit? Odpovědět na následující otázky... Jak procesory vykonávají programy napsané v high-level jazyce (C, C++, Java,...)? Jaké je rozhraní mezi software and hardware a jak software říká hardwaru co má dělat? Jakým způsobem se komunikuje se vstupně/výstupními zařízeními? Co určuje výkonnost programu a jak ji může programátor ovlivnit? Jak ovlivňuje architektura procesoru jeho výkon? Proč nejde jen zvyšovat pracovní frekvenci? Jaké jsou důvody a důsledky přechodu od jednojádrových k vícejádrovým procesorům? 5/72 - Úvod

Proč jsou tyto odpovědi důležité? Pochopení otvírá cestu k... zlepšování výkonnosti programů na moderních procesorech a lepšímu využití dostupných prostředků počítače schopnosti porovnávat vlastnosti a výkon různých počítačů a posoudit jejich vhodnost pro danou úlohu... systematicky a nikoliv metodou pokus/omyl 6/72 - Úvod

Co a jak ovliňuje výkon programu? Co? Jak? Algoritmus Počet příkazů ve zdrojovém textu a počet V/V operací Programovací jazyk, překladač, architektura Počet strojových instrukcí na každý příkaz ve zdrojovém textu Procesor a paměť Rychlost provádění instrukcí V/V subsystém (hardware + operační systém) Počet a rychlost provádění V/V operací 7/72 - Úvod

Co nevidíte na svém (oblíbeném) programu?

Stovky tisíc řádků kódu... Aplikační software textový procesor knihovny pro UI Systémový software operační systém vstupně/výstupní operace alokace paměti a úložného prostoru sdílení prostředků mezi aplikacemi Hardware Zdroj: P&H procesor, paměť, zařízení 9/72 - Úvod

Od aplikace k instrukcím programu Zmenši obrázek Smaž odstavec Nastav písmo... MULI $2, $5, 4 ADD $2, $4, $2 LW $16, 0 ($2)... Sémantická mezera Program 10/72 - Úvod

Od instrukcí ke strojovému kódu MULI $2, $5, 4 ADD $2, $4, $2 LW $16, 0 ($2)... 0101001010010 0110101001101 0111010110101... Sémantická mezera Program 11/72 - Úvod Procesor

Jak se domluvit s procesorem? Nutno použít správný jazyk slova na abecedou {0, 1} odpovídají příkazům instrukcím sečti A a B v symbolickém zápisu 1000110010100000 add A, B ve vyšším jazyce 12/72 - Úvod fruits = fruits + oranges

Co s těmi všemi jazyky? Překládat z jednoho do druhého zmenšení sémantické mezery jazyk vyšší úrovně vyšší produktivita doménově-specifické jazyky Překladač z jazyka vyšší úrovně do jazyka nižší úrovně, až na úroveň symbolického zápisu instrukcí konkrétního procesoru Assembler překlad symbolického zápisu instrukcí do binárního kódu vykonatelného konkrétním procesorem 13/72 - Úvod

Příklad: záměna k a k+1 prvku pole Zdrojový text ve vyšším jazyce vstup překladače void swap (int array [], int k) { int old = array [k]; array [k] = array [k+1]; array [k+1] = old; } Výstup překladače symbolický zápis instrukcí pro procesor 14/72 - Úvod

Příklad: záměna k a k+1 prvku pole Symbolický zápis pro MIPS vstup pro assembler, výstupem je strojový kód swap: sll addu lw lw sw sw jr 15/72 - Úvod $a1, $a1, $v0, $v1, $v1, $v0, $ra $a1, 2 $a1, $a0 0 ($a1) 4 ($a1) 0 ($a1) 4 ($a1)

Příklad: záměna k a k+1 prvku pole Symbolický zápis pro x86_64 vstup pro assembler, výstupem je strojový kód swap: movslq leaq leaq movl movl movl movl retq 16/72 - Úvod %esi, %rsi (%rdi, %rsi, 4), %rdx 4 (%rdi, %rsi, 4), %rax (%rdx), %ecx (%rax), %esi %esi, (%rdx) %ecx, (%rax)

Příklad: záměna k a k+1 prvku pole Zápis ve strojovém kódu pro MIPS 00000000000001010010100010000000 00000000101001000010100000100001 10001100101000100000000000000000 10001100101000110000000000000100 10101100101000100000000000000100 10101100101000110000000000000000 00000011111000000000000000001000 17/72 - Úvod

Příklad: záměna k a k+1 prvku pole Zápis ve strojovém kódu pro x86_64 010010000110011111110110 01001000100011010001010010110111 0100100010001101010001001011011100000100 1000101100001010 1000101101110000 1000100101110010 1000100100001000 11000111 18/72 - Úvod

Co je pod kapotou?

Základní organizace počítače Počítač vstup výstup paměť procesor datová cesta řízení Nezávisí na technologii pasuje na současné i minulé počítače Zdroj: P&H 20/72 - Úvod

Interakce s okolím Vstupní zařízení klávesnice, myš, tablet, snímač otisků, joystick Výstupní zařízení CRT monitor, LCD panel, grafická karta, tiskárna Vstupně/výstupní zařízení síťová karta, pevný disk, zvuková karta, kamera, volant + pedály se zpětnou vazbou (force-feedback),... 21/72 - Úvod

Grafický výstup na obrazovku Paměť na grafické kartě (framebuffer) každé místo v paměti (nebo shluk několika míst) odpovídá jednomu obrazovému bodu obsah místa v paměti reprezentuje barvu velikost místa určuje barevné rozlišení Zdroj: P&H 22/72 - Úvod

Copak je v té krabici? Zdroj Základní deska Pevný disk CD/DVD/BD mechanika Rozšiřující karty Zdroj: www.soundonsound.com 23/72 - Úvod Paměť Procesor Síťové rozhraní Grafická karta Zvuková karta

Základní deska Zdroj: www.tomshardware.com 24/72 - Úvod

Hlavní/primární/operační paměť (dočasná) DRAM dynamic random access memory konstantní doba přístupu na libovolné místo v paměti v řádu ns obsahuje běžící programy a jejich data s touto pamětí pracuje Zdroj: www.slashgear.com procesor kapacita 1-10 GiB při odpojení napájení jsou data ztracena, tj. neslouží jako permanentní úložiště 25/72 - Úvod

Procesor Intel Core i7-980x 6 jader, 12MB L3 cache 32nm proces, 1170 mil. tranzistorů, plocha 248mm2 taktovací frekvence 3.33GHz Součástí procesoru datová cesta (operace s daty) řízení (datové cesty) cache (SRAM) Zdroj: www.intel.com 26/72 - Úvod static random access memory rychlejší, ale menší (řádově desítky MiB) než DRAM

Procesor (pro srovnání) Intel 4004 první mikroprocesor, 4-bitový 10 m proces, 2300 tranzistorů taktovací frekvence 108kHz Zdroj: www.intel.com 27/72 - Úvod

Technologie pro výrobu procesorů a pamětí Tranzistor základní stavební prvek použit jako diskrétní prvek : elektronicky řízený spínač nikoliv jako analogový prvek: zesilovač Integrovaný obvod kombinace desítek až stovek tranzistorů na čipu lepší technologie menší rozměry vyšší stupeň integrace malá, střední, vysoká, velmi vysoká, ultra vysoká důsledkem je vyšší rychlost procesorů a vyšší kapacita pamětí 28/72 - Úvod

Relativní výkon s ohledem na technologii Rok Technologie Relativní výkon/jednotková cena 1951 Elektronka 1 1965 Tranzistor 35 1975 Integrovaný obvod 1995 IO velmi vysoké integrace 2005 IO ultra vysoké integrace 29/72 - Úvod 900 2400000 6200000000

Kapacita kbit/čip Růst kapacity DRAM čipů Zdroj: P&H Rok uvedení na trh 30/72 - Úvod

Moorův zákon / Moore's Law Gordon Moore, 60. léta 20. století zakladatel společnosti Intel předpověď: množství tranzistorů integrovaných na jednom čipu se zdvojnásobí každých 18-24 měsíců zmenšování velikosti vedoucí k nárůstu rychlosti exponenciální růst posledních 40 let! udržení vyžadovalo velmi netriviální technický pokrok Často platí i pro jiné oblasti disková kapacita, přenosové pásmo Důsledky? 31/72 - Úvod

Vedlejší/sekundární/permanentní paměť Pevný disk Zdroj:neznámý 32/72 - Úvod data zapisována na magnetické médium uchovává data i po odpojení napájení obsahuje datové soubory a spustitelné programy s pevným diskem pracuje OS, nikoliv CPU průměrná doba přístupu v řádu jednotek ms kapacita v jednotkách TB

Od spuštění počítače k běžící aplikaci Co se stane, když zapnu počítač? procesor začne vykonávat kód (program) BIOSu (Basic Input/Output System) BIOS zjistí, jaký hardware je instalován, provede inicializaci grafické karty a z uživatelem definovaného disku načte a spustí boot sektor boot sektor obsahuje kód, který s pomocí služeb BIOSu přečte z disku a spustí zavaděč operačního systému zavaděč operačního systému přečte z disku kód operačního systému a spustí ho operační systém nastartuje systémové služby a uživatelské rozhraní 33/72 - Úvod

Výkonnost počítače

K čemu je dobré znát výkonnost? Porovnávání různých počítačů obzvlášť když se jich objevuje tolik a tak často důležité pro kupující důležité pro návrháře a výrobce vyhrává levnější a/nebo lepší produkt (paměť, procesor) alespoň v oblasti osobních počítačů velmi tvrdá konkurence K ověření přínosu změn v architektuře co nefunguje, nemá šanci přežít Co je vlastně výkonnost? co znamená, že počítač A je lepší než počítač B? můžeme říct, že nákladní vůz je lepší než sportovní? záleží na tom co porovnáváme a co potřebujeme 35/72 - Úvod

Základní měřítka Doba odezvy/běhu (execution/response time) jak dlouho počítač vykonává konkrétní úlohu zajímavé pro konkrétního uživatele počítače Propustnost (throughput) kolik práce počítač vykoná za jednotku času zajímavé pro správce serveru nebo datového centra Jak se změní odezva a propustnost... pokud vyměníme procesor za rychlejší? pokud přidáme do systému další procesory? 36/72 - Úvod

Výkonnost určená dobou odezvy Výkonnost systému X 1 Performance X = Execution X maximalizace výkonu minimalizace odezvy pokud PerformanceX > PerfomanceY pak zjevně ExecutionX < ExecutionY pokud X je n-krát rychlejší (výkonnější) než Y, pak Performance X ExecutionY n= = Performance Y Execution X Kolikrát je A rychlejší než B... pokud A provede program za 10 sekund a B stejný program za 15 sekund? 37/72 - Úvod

Jak měřit výkonnost z pohledu uživatele? Celkový čas běhu úlohy wall clock time, response time, elapsed time zahrnuje vše, včetně přístupu na disk a režie OS co když je počítač sdílen více uživateli? odráží výkonnost systému jako celku Procesorový čas CPU execution time, CPU time čas, po který procesor program skutečně vykonával nezahrnuje čekání na V/V zařízení a čas kdy neběžel zahrnuje čas strávený uvnitř OS režii OS uživatelský a systémový procesorový čas odráží výkonnost procesoru 38/72 - Úvod

Jak měřit výkonnost z pohledu návrháře? Rychlost provádění základních operací všechny události řízeny hodinovým signálem frekvence hodin (clock rate), např. 3 GHz taktovací frekvence, frekvence hodinového signálu,... délka hodinového cyklu (clock cycle), např. 250 ps doba periody hodinového signálu Jak souvisí metriky uživatelů a návrhářů HW? CPU execution time = CPU clock cycles Clock cycle time for a program for a program CPU execution time = CPU clock cycles for a program Clock rate for a program jak může návrhář zlepšit výkon? 39/72 - Úvod

Příklad: zlepšování výkonnosti Jakou taktovací frekvenci potřebujeme, pokud... program běží 10s na počítači A s hod. frekvencí 2 GHz cílem je navrhnout počítač B, kde program poběží 6s technologie umožňuje výrazně zvýšit taktovací frekvenci...... ale pro vykonání programu je potřeba o 20% více cyklů CPU clock cycles A CPU time A = Clock rate A 10= CPU clock cycles A 2 10 9 [ s] CPU clock cycles A =10 2 10 9=20 109 1.2 CPU clock cycles A CPU time B = Clock rate B 9 1.2 20 10 6= [ s] Clock rate B 9 1.2 20 10 9 9 Clock rate B = =0.2 20 10 =4 10 =4 GHz 6 40/72 - Úvod

Jak do toho zapadají instrukce? Zatím o nich nepadla zmínka, ale... překladač zcela jistě vygeneroval instrukce k vykonání počítač musel instrukce vykonat aby program běžel doba běhu musí záviset na počtu instrukcí v programu Průměrný počet taktů na vykonání 1 instrukce clock cycles per instruction (CPI) vztaženo k programu nebo jeho části program se skládá z instrukcí trvajících různou dobu CPU clock cycles= Instructions Average clock cycles for a program per instruction umožňuje srovnávat různé implementace architektury 41/72 - Úvod při zachování počtu instrukcí na program

Příklad: různé implementace architektury Který počítač je rychlejší a o kolik... počítač A pracuje s délkou cyklu 250ps a pro nějaký program P má CPI 2.0 počítač B pracuje s délkou cyklu 500ps a pro stejný program P má CPI 1.2 oba počítače implementují stejnou architekturu oba počítače vykonají stejný počet instrukcí I CPU clock cycles A =I 2.0 CPU clock cycles B =I 1.2 CPU time A=CPU clock cycles A Clock cycle time A =I 2.0 250=500 I [ ps] CPU time B =CPU clock cycles B Clock cycle time B =I 1.2 500=600 I [ ps] počítač A je zjevně rychlejší... jak moc? CPU performance A Execution time B 600 I = = =1.2 CPU performance B Execution time A 500 I 42/72 - Úvod

Základní vztah pro výkonnost procesoru Zápis pomocí počtu instrukcí, CPI a délky cyklu CPU time=instruction count CPI Clock cycle time CPU time= Instruction count CPI Clock rate 3 různé faktory ovlivňující výkonnost srovnání různých implementací stejné architektury zhodnocení alternativního návrhu 43/72 - Úvod pokud známe jeho vliv na uvedené parametry

Příklad: porovnání částí kódu Kterou posloupnost instrukcí použít? Počet instrukcí různého typu Posloupnost A B C Počet instrukcí P1 2 1 2 5 P2 4 1 1 6 CPI pro jednotlivé typy instrukcí CPI A B C 1 2 3 n CPU clock cycles= CPI i C i CPU clock cycles CPI = Instruction count CPU clock cycles P1 = 2 1 1 2 2 3 =10 CPI P1 = i=1 CPU clock cycles P2 = 4 1 1 2 1 3 =9 44/72 - Úvod 10 =2.0 5 9 CPI P2 = =1.5 6

Na čem závisí výkonnost procesoru? Výkonnost závisí na řadě faktorů počet instrukcí, průměrný počet taktů na instrukci (CPI), délka hodinového cyklu (taktovací frekvence) žádný z faktorů sám o sobě nevypovídá o výkonnosti snížení počtu instrukcí často vede na architekturu s nižší taktovací frekvencí nebo vyšším CPI CPI závisí na instrukčním mixu (četnost a typ prováděných instrukcí), proto kód s nejmenším počtem instrukcí nemusí být nejrychlejší Jediným úplným a spolehlivým měřítkem je čas umožňuje porovnávat různé počítače 45/72 - Úvod stačí porovnávat faktory, které se liší

Na čem závisí výkonnost programu? Komponenta Co ovlivňuje? Algoritmus Programovací jazyk počet instrukcí potenciálně CPI počet instrukcí CPI Překladač počet instrukcí CPI Architektura počet instrukcí taktovací frekvenci CPI Jak? počet příkazů ve zdrojovém kódu datové typy (integer vs. FP) typ příkazů ve zdrojovém kódu abstraktní datové typy (nepřímá volání) způsob překladu příkazů na instrukce instrukce potřebné pro vyjádření funkce taktovací frekvence daná technologií doba provádění instrukcí v taktech Jak rychle poběží program... po přeložení překladačem A běží program 15s překladač B použije 60% instrukcí, ale CPI je o 10% vyšší 46/72 - Úvod

Konec zlatých časů

48/72 - Úvod Zdroj: P&H Ztrátový výkon [W] Taktovací frekvence [MHz] Taktovací frekvence a ztrátový výkon procesorů Intel

Ztrátový výkon v CMOS obvodech CMOS (Complementary Metal Oxide Semiconductor) dominantní technologie pro výrobu IO minimální spotřeba v klidovém stavu dynamický ztrátový výkon kapacitní zátěž (vodiče, tranzistory, zátěž na výstupu) provozní napětí (souvisí s rychlostí přepínání) frekvence přepínání (odvozená od taktovací frekvence) 2 P C U f 1000x nárůst frekvence vs. 30x ztrátového výkonu pokles napětí o 15% s každou generací (5V 1V) 49/72 - Úvod

Příklad: porovnání ztrátového výkonu Jak se projeví nový návrh procesoru na ztrátách? starý procesor A, nový procesor B kapacitní zátěž B je pouze 85% zátěže A provozní napětí B je o 15% nižší než u A, čemuž odpovídá také o 15% nižší taktovací frekvence P B C A 0.85 U A 0.85 2 f A 0.85 4 = =0.85 =0.52 2 PA C A U A f A 50/72 - Úvod

Energetická zeď Napětí není možné pořád snižovat začínají se projevovat statické ztráty cca 40% spotřeby v roce 2008 Chlazení už nelze jednoduše zlepšovat v daném taktu nepoužívané části čipu se vypínají vodní a jiné chlazení není praktické (stolní počítače) Nutno nalézt jinou cestu ke zvýšení výkonu odlišnou od té, kterou se vývoj ubíral posledních 30 let 51/72 - Úvod

Přechod od jednoprocesorových k víceprocesorovým strojům

Nárůst výkonu osobních počítačů Zdroj: P&H 53/72 - Úvod

Co s tím? Vícejádrové (multicore) procesory výrobcům se zatím daří zlepšovat technologii pojďme s každou generací (~ každé 2 roky) zdvojnásobit počet procesorů/jader na čipu Jaký to má vliv na výkon systému? primárně roste propustnost (througput) Jaký je důsledek pro programátory? programy se (samy) nezrychlí díky novým technologiím programy musí začít využívat více procesorů/jader 54/72 - Úvod každé dva roky jich bude nutno využít více

Proč tolik povyku? Fundamentální změna v rozhraní HW/SW paralelizmus byl vždy důležitý, ale dařilo se ho skrývat paralelizmus na úrovni instrukcí (instruction-level parallelism) zřetězené zpracování instrukcí a další techniky (později) překladač i programátor pracují se sekvenčním strojem najednou musí být programy explicitně paralelní programátor musí o paralelizmu vědět Celý IT průmysl na takovou změnu vsadil... doposud slepá větev vývoje architektur 55/72 - Úvod společnosti spoléhající na změnu programovacího paradigmatu nepřežily

Proč je paralelní programování těžké? Programování zaměřené na výkon řádově obtížnější, vedle funkce důležitá i rychlost v opačné případě stačí napsat sekvenční program práci je nutno rozdělit mezi procesory plánování a koordinace nesmí mít vysokou režii Analogie: 1 reportér = článek/2h, 8 reportérů =??? plánování (scheduling) vyvažování zátěže (load balancing) režie na komunikaci a synchronizaci (communication and synchronization overhead) 56/72 - Úvod

Výroba a testování výkonnosti procesoru AMD Opteron X4

Jak se vyrábí procesor? Zdroj: P&H 58/72 - Úvod

Opteron X2, předchůdce X4 Křemíkový plátek průměr 300mm technologie 90nm 117 čipů při 100% výtěžnosti Opteron X4 ztráty 120W povrch čipu ~ 1 cm2 stovky nožiček jen pro napájení Zdroj: P&H 59/72 - Úvod

Měření výkonnosti: SPEC CPU Benchmark Workload typická pracovní zátěž sada spouštěných programů porovnání počítačů porovnání doby běhu programů časově náročné, špatně se automatizuje Benchmark program specificky určený k měření výkonnosti sada benchmarků typická pracovní zátěž procesoru doufáme, že výsledky předpoví chování při aktuální zátěži SPEC (Standard Perf. Evaluation Corporation) snaha výrobců o možnost jednoduše porovnat počítače původně hlavně CPU, dnes i GPU, Java, mail,... 60/72 - Úvod

SPEC CPU2006 Hodnocení výkonnosti procesoru CINT2006, 12 benchmarků, celá čísla překladač C, šachy, simulace kvantového počítače,... CFP2006, 17 benchmarků, plovoucí řádová čárka metoda konečných prvků, molekulární dynamika,... SPECratio podíl referenční a změřené doby běhu benchmarku větší číslo reprezentuje vyšší výkon Souhrné hodnocení geometrický průměr SPECratio z celočíselných benchmarků 61/72 - Úvod n n i =1 SPECratio i

SPEC CINT2006 pro AMD Opteron X4 (Barcelona) Zdroj: P&H 62/72 - Úvod

Bludy a pasti

Past: planá očekávání Očekáváme, že zlepšením části systému zvýšíme výkonnost celého systému úměrně velikost zlepšení. Program běží 100s, z toho 80s času spotřebují instrukce násobení. Kolikrát musím zrychlit násobení, aby byl program 5x rychlejší? Execution Slow =100=80 20 80 Execution Fast = 20 n Execution Slow 80 Execution Fast = =20= 20 5 n 0= 80 n Pouze zrychlením násobení není možné 5x zrychlit celý program. 64/72 - Úvod

Amdahlův zákon Zvýšení výkonnosti dosažitelné nějakým zlepšením je omezené mírou používání tohoto zlepšení. Zákon klesajících výnosů Performance Affected Performance Improved = Performance Unaffected Improvement ratio Důsledek pro návrh (nejen) hardware Make common case fast/optimize for the common case Optimalizace má největší užitek pro nejčastější případy 65/72 - Úvod nejčastější případy bývají často výrazně jednodušší než ty výjimečné snadno se optimalizují

Past: špatné měřítko výkonnosti Používáme podmnožinu aspektů ze vztahu pro výkonnost procesoru jako měřítko pro srovnání. jeden se použít nedá, dva někdy (ale často špatně) téměř všechny alternativy k času selhaly MIPS (Million Instructions Per Second) rychlost vykonávání instrukcí Instruction count MIPS = 6 10 Execution time intuitivní, vyšší číslo rychlejší, ale... 66/72 - Úvod

Co je špatného na MIPS? Nebere v úvahu možnosti instrukcí nelze porovnávat počítače s různou instrukční sadou, protože počty instrukcí budou různé Liší se pro různé programy na stejném počítači AMD Opteron X4, SPEC CINT2006: rozdíl až 13x jedna hodnota MIPS nereprezentuje výkon počítače MIPS = Instruction count Clock rate = Instruction count CPI CPI 10 6 6 10 Clock rate Může se měnit bez ohledu na výkonnost pokud nový program vykoná více instrukcí rychleji 67/72 - Úvod

Příklad: rychlost vs. MIPS Porovnejte následující dva počítače Metrika Počítač A Počítač B Počet instrukcí 10 109 8 109 Taktovací frekvence 4 GHz 4 GHz 1.0 1.1 CPI který z nich má více MIPS? který z nich je rychlejší? 68/72 - Úvod

Shrnutí

Abstrakce a vrstvy Nástroj návrhářů HW i SW umožňuje zvládat velký rozsah složitosti 70/72 - Úvod Výkonné jádro aplikace Aplikační a systémové knihovny Operační systém Architektura (ISA) Datová cesta, řízení Rozhraní HW/SW Software Hardware Úroveň abstrakce Uživatelské rozhraní Aplikace Logické obvody Tranzistory

Organizace a výkonnost Základní organizace počítače nezávisí na technologii vstup, výstup, paměť, procesor (řadič + datová cesta) U počítačů se vždy hodnotila cena a výkonnost spolehlivost, provozní náklady, škálovatelnost,... Čas je jediné spolehlivé měřítko výkonnosti alternativní měřítka fungují špatně nebo vůbec Seconds Instructions Clock cycles Seconds = Program Program Instruction Clock cycle Výkonnost se odvíjí technologie a architektury využití paralelizmu v programu využití lokality přístupu do paměti 71/72 - Úvod

Technologie Integrované obvody a polovodiče na bázi křemíku rychlost změny ~ Moorův zákon Energetická obálka silně ovlivňuje návrh procesoru s frekvencí a napětím již nelze příliš hýbat plocha čipu a počet tranzistorů už nejsou tak kritické Snaha o zvýšení výkonu v rámci energetické obálky si vynutila přechod na vícejádrové procesory programátoři musí využívat paralelizmus explicitně 72/72 - Úvod