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