Array ( [0] => 14880513 [id] => 14880513 [1] => cswiki [site] => cswiki [2] => Mikroarchitektura [uri] => Mikroarchitektura [3] => [img] => [4] => [day_avg] => [5] => [day_diff] => [6] => [day_last] => [7] => [day_prev_last] => [8] => Mikroarchitektura je v informatice obor zabývající se návrhem a realizací mikroprocesorů. Jedná se o nejníže položenou úroveň návrhu procesoru, která se zabývá interním uspořádáním jednotlivých částí procesoru a jejich vzájemnou komunikací. Cílem mikroarchitektury je optimalizovat výkon procesoru za účelem splnění konkrétních požadavků na rychlost, spolehlivost a spotřebu energie. Zabývá se například vytvořením instrukční sady, pohybem dat v paměti, řízením potoku instrukcí, organizací cache paměti a využíváním pipeliningu. Mikroarchitektura je tvořena množinou logických bloků, které spolupracují při vykonávání instrukcí a zajišťují správný chod procesoru. Vytváření mikroarchitektury vyžaduje detailní znalost hardwarového a softwarového prostředí a zahrnuje analýzu a simulaci jejího chování. [oai] => Mikroarchitektura je v informatice obor zabývající se návrhem a realizací mikroprocesorů. Jedná se o nejníže položenou úroveň návrhu procesoru, která se zabývá interním uspořádáním jednotlivých částí procesoru a jejich vzájemnou komunikací. Cílem mikroarchitektury je optimalizovat výkon procesoru za účelem splnění konkrétních požadavků na rychlost, spolehlivost a spotřebu energie. Zabývá se například vytvořením instrukční sady, pohybem dat v paměti, řízením potoku instrukcí, organizací cache paměti a využíváním pipeliningu. Mikroarchitektura je tvořena množinou logických bloků, které spolupracují při vykonávání instrukcí a zajišťují správný chod procesoru. Vytváření mikroarchitektury vyžaduje detailní znalost hardwarového a softwarového prostředí a zahrnuje analýzu a simulaci jejího chování. [9] => [is_good] => [10] => [object_type] => [11] => 0 [has_content] => 0 [12] => [oai_cs_optimisticky] => ) Array ( [0] => [[Soubor:Intel_i80286_arch.svg|náhled|Mikroarchitektura procesoru i80286]] [1] => '''Mikroarchitektura''' je pojem z oboru [[počítač]]ů a [[informační technologie|informačních technologií]]. Představuje způsob, jakým je v [[Mikroprocesor|procesoru]] implementována daná [[instrukční sada]]. Pro jednu instrukční sadu může existovat více mikroarchitektur, které ji implementují. Mikroarchitekturami i návrhem instrukčních sad se zabývá obor ''architektura počítačů''. [2] => [3] => Mikroarchitektura je obvykle reprezentována (více či méně detailními) [[diagram]]y, které obsahují jednotlivé (logické i fyzické) části procesoru; ty jsou pak spojeny vazbami, vztahy, [[signál]]y či jinými způsoby komunikace mezi nimi (u těchto spojnic se pak většinou rozlišuje mezi cestou dat a způsobem, kterým jsou zpracovávána a řízena). [4] => [5] => Mezi základní věci, které mikroarchitektura procesoru definuje a řeší, patří model vykonávání [[program]]u (exekuční model), [[registr procesoru|registry]], [[adresování]] [[počítačová paměť|paměti]], softwarová a hardwarová přerušení, datové formáty a další. [6] => [7] => == Koncepty mikroarchitektury == [8] => [[Soubor:Intel_Core2_arch.svg|náhled|Diagram mikroarchitektury [[Intel Core]] 2]] [9] => Nejčastějším návrhem procesoru současnosti je datový a instrukční [[pipelining]]. Tato technika je použita ve většině dnešních procesorů, mikrokontrolerů a datových signálových procesorů (DSP). Svým způsobem připomíná [[sériová výroba|sériovou výrobu]] v továrně, kde místo výrobků jsou instrukce a místo dílů jednotlivé fáze jejich zpracování. Ty zahrnují načtení instrukce z programové paměti, dekódování instrukce, provedení a případné zapsání výsledku. Některé instrukce mohou vyžadovat přístup k paměti (adresování), ke vstupním/výstupním portům, skoky v programu, a další prostředky. [10] => [11] => Bez pipeliningu by se každá fáze vykonání instrukce zabírala čas, který by procesor nevyužil na nic jiného (analogií k sériové výrobě – např. automobilů – by byl případ, ve kterém by žádný autodíl nesměl vstoupit na běžící pás dřív než by právě zpracovávané auto sjelo kompletní z výrobní linky). [12] => [13] => Dobrý návrh pipeliningu je stěžejním bodem mikroarchitektury. Volba počtu fází zpracování instrukce, jejich samotné implementační řešení, zpoždění v jejich zpracování a konkrétně volba velikosti a typu [[cache]]ování a předpovídání větvení programu jsou prvky, které určují výkon celého procesoru. Často tato řešení narážejí na limity (popřípadě jejich kombinace, kdy zvyšování jednoho aspektu začíná omezovat druhé) a rozhodnutí, které z různých přibližně stejně dobrých alternativ dát přednost. Mezi takové konstrukční aspekty mikroarchitektury patří: [14] => * cena [15] => * velikost, tvar, počet vrstev, prostorové řešení čipu [16] => * komplexnost [17] => * spotřeba energie [18] => * ztrátové teplo, ztrátový výkon [19] => * kompatibilita, použitelnost v existujících systémech [20] => * spolehlivost při vyšších frekvencích, spolupráce s jinými součástmi počítače [21] => * odolnost, náročnost na provozní prostředí [22] => * snadnost vývoje/testování/vychytání chyb, nároky spojené s výrobou [23] => [24] => == Prvky mikroarchitektury == [25] => [26] => === CISC versus RISC === [27] => [[CISC]] a [[RISC]] jsou dva vzájemně soupeřící a doplňující koncepty instrukčních sad. Jejich hlavní rozdíl je v komplexitě instrukcí – zatímco CISC jde cestou implementace i velmi komplexních a složitých instrukcí, u procesorů RISC je instrukční sada redukovaná a složitější instrukce se musejí implementovat jako sekvence těch existujících. Navíc všechny instrukce RISC zabírají v paměti stejný počet bitů (binární kód je pak o něco delší, zato nemůže dojít k desinterpretaci kódu vlivem chyby s čítačem instrukcí). Výhodou architektury RISC je zachování jednoduchosti (s kterou souvisejí i výrobní náklady a cena), lepší odolnost a spolehlivost při vyšších frekvencích. To, které RISCové instrukce budou v „základní sestavě“ a které se budou muset emulovat, je určeno po pečlivé analýze využití instrukcí podle typu (většina komplexních instrukcí se využívá jen velmi zřídka, což obhajuje to, aby byly emulovány). [28] => [29] => Přestože nejzastoupenější architektury pro osobní počítače, [[x86]] a [[x86-64]], jsou CISCové, je v posledních letech znát jistý odklon k RISCové technologii, například představením architektur IA-32 a [[IA-64]]. [30] => [31] => Příklady dalších architektur (podle jiných hledisek než jen komplexnosti instrukční sady) jsou např. [[VLIW]] (''Very Long Instruction Word'') a [[EPIC]] (''Explicitly Paralell Instruction Computing''), které se snaží zvládnout datový paralelismus, včetně [[SIMD]] a vektorů. [32] => [33] => === Exekuční jednotka === [34] => Hlavním prvkem mikroarchitektury je exekuční jednotka, která se stará o vykonávání instrukcí. Jejími komponentami většinou jsou aritmetickologická jednotka ([[Aritmeticko-logická jednotka|ALU]]), jednotka pro počty s pohyblivou řádovou čárkou ([[Matematický koprocesor|FPU]]), jednotky implementující adresování a čtení/zápis z/do paměti, předpovídání větvení a [[SIMD]]. [35] => [36] => === Instrukční pipelining === [37] => Instrukční pipelining je prvek mikroarchitektury, který má největší vliv na celkovou rychlost procesoru, neboť určuje, jak rychle budou instrukce (při dané taktovací frekvenci) zpracovávány. Někdejší návrhy MIPS a SPARC měly často 10 i vícekrát vyšší výkon oproti soudobým CISCovým procesorů při stejné frekvenci a ceně. Pipelining je využíván jak v RISCových tak CISCových procesorech (např. CISCový procesor VAX 8800 z roku 1986 měl již tehdy komplexní pipelining a dokonce i předpovídání skoků). Nyní se pipelining používá v drtivé většině procesorů (včetně ''embeded'' řešení) a vyšší složitost spojená s jeho implementací nějak zásadně do jejich ceny nepromlouvá. Nebývá jen u hardwarově specifických procesorů podporujících mikroinstrukce. [38] => [39] => === Cache === [40] => {{Viz též|Cache}} [41] => [42] => === Předpovídání skoků === [43] => Předpovídání skoků (''branch prediction'') je technika mikroarchitektury, která se snaží předpovídat skoky v programu (binárním kódu), jenž má být vykonán. Vykonává se v procesorech s pipeliningem po fázi načtení a dekódování instrukcí, které zatím čekají ve frontě na vykonání. U procesorů s ''branch prediction'' je implementována logika, která se u načtených instrukcí (podmíněných) skoků pokouší předpovědět, zdali nastanou či ne, a na základě toho začne spekulativně načítat kód za cílovou adresou tohoto skoku. Pokud je podmínka pro skok do jiné části paměti splněna, začátek kódu na cílové adrese je již k dispozici, načtený do ad hoc paměti přímo v čipu. Ušetří se tak několik drahocenných okamžiků, které by jinak byly spotřebovány na zahození dosavadního kódu, přesunutí programového čítače na cílovou adresu skoku a začátek načítání do pipeliningu odtamtud. [44] => [45] => Ještě dál než předvídání skoků jde [[spekulativní vykonávání]] kódu (''speculative execution''), které dokonce vykonává kód na cíli skoku. Pokud se předpověď skoku vyplní, vyústí to ve větší urychlení času, pokud nikoli, výsledkem je naopak zpomalení oproti situaci bez spekulativního vykonávání, protože všechen spekulativní kód se musí pečlivě vrátit do původního stavu. [46] => [47] => === Superskalární architektura === [48] => {{Viz též|Superskalární architektura}} [49] => [50] => === Vykonávání instrukcí mimo pořadí === [51] => U této techniky si procesor sám (bez ohledu na binární kód) určí pořadí vykonávaných instrukcí, tím, že je zpřehází tak, aby optimalizoval jejich vykonání. Některé instrukce jsou kratší a manipulují pouze s daty v registrech, jiné vyžadují přístup k paměti (která buď je nebo není v cache), portům, atd. a vyžadují více času na provedení. Procesor pak v takovém případě může buďto čekat na výsledek nebo v mezičase vykonávat instrukce, které nejsou takto časově náročné a jejich vykonání v tomto přehozeném pořadí v žádném případě neovlivní chod programu. Zde je důležité pečlivě hlídat závislosti hodnot různých registrů na sobě, použití příznaků, které vytvoří, apod. (nelze například prohodit pořadí po sobě jdoucích instrukcí, které operují se stejným registrem, neboť by program došel k různým výsledkům). Analýza a implementace vykonávání instrukcí mimo pořadí patří v architektuře počítačů mezi ty náročnější. [52] => [53] => Mezistupněm do tohoto stádia je použití [[překladač|kompilátoru]] pro daný procesor (z assembleru i vyššího programovacího jazyka), který pořadí instrukcí optimalizuje za procesor. Jedny z prvních takových byly kompilátory jazyka C pro procesory P6 a později kompilátory pro C#. [54] => [55] => === Přejmenovávání registrů === [56] => S určitou paralelou k vykonávání instrukcí mimo pořadí i zde procesor mění binární kód, jež má vykonávat, tentokrát tím, že si přejmenovává registry a to tak, aby odstranil nepotřebné serializované vykonávání programu, vynucené opětovným používáním stejných registrů. Opět, i tato technika je náročná na implementaci, protože musí být transparentní vůči vykonávání původního kódu v nezměněné podobě (logika přejmenovávání registrů nesmí například přepisovat registry, které by byly v této fázi čteny). [57] => [58] => === Multiprocesing a multithreading === [59] => {{Viz též|multithreading}} [60] => Tyto dvě technologie implementují paralelismus vykonávaného programu. Multiprocesing pomocí zapojení a využití více procesorů v počítači, kdy každý procesor si bere na starosti různé agendy programu (nebo operačního systému a v něm běžícího programu). Multithreading v rozdělení programu do tzv. vláken (threadů), přinejmenším pro odstranění modálnosti aplikace (tedy její netečnosti do dokončení nějakého jejího vykonávaného procesu, např. ukládání, nahrávání, konvertování, …) až po [[simultánní multithreading]], který umožňuje superskalárním procesorům vykonávat instrukce z různých programů simultánně ve stejný okamžik. [61] => [62] => == Existující mikroarchitektury == [63] => [64] => === Intel === [65] => Mikroarchitektury x86: [66] => * x86 (8086, 80186, 80286, i386, i486) [67] => * P5 [68] => * P6 (Pentium M / Enhanced Pentium M) [69] => * NetBurst [70] => * Core (Penryn) [71] => * Bonnell (Saltwell) [72] => * Nehalem (Westmere) [73] => * Sandy Bridge (Ivy Bridge) [74] => * Haswell (Broadwell) [75] => * Silvermont (Airmont) [76] => * Skylake (Cannonlake (Valleyview, Tangier, Cherryview)) [77] => * Larrabee [78] => * Goldmont [79] => Mikroarchitektury Itanium: [80] => * Merced [81] => * McKinley [82] => * Montecito [83] => * Tukwila [84] => * Poulson [85] => * Kittson [86] => [87] => === AMD === [88] => Mikroarchitektury x86: [89] => * Am386, Am486, Am5x86 [90] => * K5 [91] => * K6 (K6-2, K6-III) [92] => * K7 (Athlon, Duron, Sempron) [93] => * K8 Hammer/Sledgehammer (Opteron, Athlon, Turion 64) [94] => * K10/(Barcelona, Budapest, Agena, Toliman, Kuma, Lima, Sparta)/(Family [[10h]]) [95] => * K10.5 (Phenom II, Athlon II, Sempron, Turion II) [96] => * AMD Turion X2 Ultra (Family 11h) [97] => * K12 Llano (Family 12h) [98] => * Bobcat (Family 14h) [99] => * Bulldozer (Family 15h) [100] => * Piledriver [101] => * Steamroller [102] => * Jaguar (Family 16h) [103] => * Excavator [104] => Mikroarchitektury nekompatibilní s x86: [105] => * AMD Am2900 [106] => * AMD Am29000 [107] => [108] => === ARM === [109] => * [[XScale]] [110] => {{Pahýl část}} [111] => [112] => == Odkazy == [113] => [114] => === Reference === [115] => {{Překlad|en|Microarchitecture|381350716}} [116] => [117] => === Externí odkazy === [118] => * {{Commonscat}} [119] => * {{En}}[http://www.extremetech.com/article2/0,1697,17414,00.asp PC Processor Microarchitecture] {{Wayback|url=http://www.extremetech.com/article2/0,1697,17414,00.asp |date=20110607232728 }} [120] => * {{En}}[https://web.archive.org/web/20090613042342/http://www.caamp.info/ Computer Architecture: A Minimalist Perspective - book webpage] [121] => {{Autoritní data}} [122] => [123] => {{Portály|Procesory}} [124] => [125] => [[Kategorie:Architektura počítače]] [] => )
good wiki

Mikroarchitektura

More about us

About

Expert Team

Vivamus eget neque lacus. Pellentesque egauris ex.

Award winning agency

Lorem ipsum, dolor sit amet consectetur elitorceat .

10 Year Exp.

Pellen tesque eget, mauris lorem iupsum neque lacus.

You might be interested in

,'SIMD','registr procesoru','XScale','simultánní multithreading','spekulativní vykonávání','počítač','VLIW','x86-64','RISC','informační technologie','Mikroprocesor','instrukční sada'