Vývoj architektury procesoru © 2011 Ing. Pavel Chmiel, Ph.D.
Úvod do problematiky Architektura = stavba procesoru, tedy obvody uvnitř procesoru podporující nové technologie. - zvýšení výkonu při zpracování instrukcí a dat - snížení spotřeby elektrické energie Základní obvody architektury procesoru - řadič procesoru - výpočetní jednotka (ALU) - paměťové registry (adresové, instrukční, datové)
Vývoj architektury procesorů INTEL Skalární architektura (8088, 8086, 80286, 80386, 80486) Superskalární architektura (Pentium, Pentium Pro, Pentium MMX, Pentium II a III, Celeron) NetBurst (Pentium 4, Pentium D, Xeon) Core (Core Duo, Core 2 Duo, Core 2 Extreme, Core 2 Quad, Celeron) Atom (optimalizována na co nejnižší spotřebu elektrické energie) Nehalem (řada procesorů Core i7, Core i5, Core i3) Sandy Bridge (2. generace procesorů řady Core i7, Core i5, Core i3)
Vývoj architektury procesorů AMD Am286, Am386, Am486 K5 K6, AMD K6-II, K6-III K7 (Athlon, Athlon XP, Athlon MP + Duron, Sempron) K8 (Athlon 64, athlon 64 X2, Turion 64, Turion 64 X2, Sempron) K10 (Phenom, Opteron) K11 (architektura vícejádrových APU s označením „Buldozer“)
Skalární architektura
Skalární architektura CPU Během 1 hodinového taktu dokáží dokončit zpracování pouze 1 instrukce. Pipelining = zřetězené zpracování instrukci. Procesor je složen z více funkčních bloků, které jsou vzájemně propojeny (pipeline, datovod). Dokáže si tedy rozpracovat více instrukcí najednou.
Skalární architektura CPU Zpracování instrukce se zjednodušeně sestává z těchto kroků (stupeň pipeline): výpočet adresy místa v operační paměti načtení instrukce z dané adresy v operační paměti dekódování instrukce (nalezení mikrokódu reprezentující instrukci v paměti ROM) provedení výpočetních operací v ALU / FPU zápis výsledku do registru
Skalární architektura CPU Zpracovávání vždy jedné instrukce Pipelining – zřetězené zpracování instrukcí
Skalární architektura CPU FPU = Floating Point Unit, matematický koprocesor Výpočetní jednotka integrovaná přímo v jádře procesoru, specializující se na operace s reálnými čísly s plovoucí řádovou čárkou. (součást CPU - architektura 80486 a vyšší) CACHE = velmi rychlá, statická paměť typu RAM, umístěná blízko jádra procesoru. Slouží k uložení části operační paměti (instrukce, data), se kterou procesor momentálně pracuje
Superskalární architektura
Superskalární architektura CPU Paralelní pipelining Obsahují více prováděcích jednotek (především ALU), umožňují paralelní zřetězení – dokončení více instrukcí během jednoho hodinového taktu (pouze na sobě nezávislé instrukce) Předvídání (predikce) skoku v programu Vyrovnávací paměť CACHE L1 (instrukční, datová) L2 (urychlení komunikace mezi CPU a OP)
Superskalární architektura CPU SIMD (Single Instruction Multiple Data) Rozšíření instrukční sady o instrukce, které za určitých podmínek dokáží zpracovat více celých (resp. reálných) čísel najednou - Vhodné pro multimediální a matematické aplikace (2D/3D grafika, zvuk, video, komprese, atd.) - Implementace 64 bitových resp. 128 bitových registrů - Technologie MMX, 3DNow!, SSE, SSE2, SSE3, SSE4, SSE5, AVX, AltiVec, atd.
Superskalární architektura CPU Příklad použití SIMD instrukce Skalární způsob výpočtu (SISD instrukce): 1. mikroinstrukce: 5 * 2 = 10 2. mikroinstrukce: 5 * 3 = 15 3. mikroinstrukce: 5 * 1 = 5 4. mikroinstrukce: 5 * 8 = 40 Vektorový způsob výpočtu (SIMD instrukce): 1. mikroinstrukce: 5 * (2; 3; 1; 8) = (10; 15; 5; 40)
NetBurst architektura
NetBurst architektura CPU Taktovací kmitočet Rapidní zvýšení rychlosti provádění instrukcí a výpočtů je zde docíleno především zvýšením taktovací frekvence jádra procesoru. - nutnost použití napájecích zdrojů s min. 400 W výkonem - přidán 12V napájecí konektor pro CPU - velká hodnota TDP ( masivní a hlučné chladiče) - nevhodné pro přenosné počítače
NetBurst architektura CPU Hyperskalární architektura - rozpracování až 20 instrukcí v pipeline - zdokonalená predikce (odhadování) skoku v programu: zdvojením některých jednotek zpracovává obě varianty kódu bez ohledu na výsledek skoku v programu, nepoužitou jednoduše odstraní. Procesorová sběrnice FSB s technologií QPB - až 4 přenosy na sběrnici během 1 hodinového taktu
NetBurst architektura CPU Zpracování instrukcí mimo pořadí Řadič procesoru analyzuje program a na základě zjištěné závislosti mezi jednotlivými instrukcemi provede jejich seřazení do optimálního pořadí. Rapid execution engine Procesor obsahuje více jednotek ALU, dvě pro jednoduché výpočty pracují na dvojnásobné frekvenci procesoru
NetBurst architektura CPU HyperThreading (HT) Thread (Vlákno): sekvence instrukcí, provádějících např. výpočet s načtenými operandy. Při zpracování vlákna nejsou vždy plně efektivně využity výpočetní jednotky procesoru. - Jeden procesor (procesorové jádro) pracuje jako dva logické (virtuální) procesory, avšak se sdílenými prostředky (ALU/FPU, řadič, prediktory, dekodér). - Dosáhne se toho duplikováním té části CPU, která obsahuje registry pro uchovávání stavu výpočtů.
NetBurst architektura CPU Intel 64 - Rozšíření instrukční sady o instrukce pro práci s 64 bitovými čísly. - Implementace 64 bitových registrů pro uložení instrukcí a dat. - Zvýšení adresového prostoru operační paměti nad rámec 4 GB (232 = 4 GB) díky tomuto rozšíření instrukční sady (technologie EM64T)
NetBurst architektura CPU Tepelná ochrana procesoru Tepelný monitor Procesor má integrované přesné teplotní čidlo neustále snímající teplotu. V případě selhání chlazení obvody tepelné ochrany sníží taktovací kmitočet CPU, čímž sníží tepelné vyzařování. Aplikace běží dále, avšak pomaleji. http://www.youtube.com/watch?v=06MYYB9bl70 V případě nárůstu teploty nad kritickou mez (kolem 135oC), obvody tepelné ochrany odstaví CPU od napájení.
NetBurst architektura CPU SpeedStep Úprava taktovacího kmitočtu jádra procesoru dle potřeb aplikace → snížení spotřeby el. energie + zahřívání Další technologie - Virtualizační technologie - Rozšíření instrukční sady (SSE2 a SSE3) o nové SIMD instrukce pro práci s čísly (celá, reálná) - XD bit
Core architektura
Core architektura CPU Více fyzických procesorových jader - paralelní zpracování více aplikací najednou - rozložení zpracování jedné aplikace na více jader Podpora 64-bitových operačních systémů - plně 64 bitové výpočetní jednotky + registry
Core architektura CPU Advanced Smart Cache L2 cache je sdílená mezi oběma jádry procesoru. Kapacitu je možné dynamicky přidělovat (alokovat) pro každé jádro (např. je-li jedno jádro nečinné, může druhé jádro využívat celou kapacitu L2 cache).
Core architektura CPU Wide Dynamic Execution Během jednoho hodinového taktu lze zpracovat více instrukcí – implementace 4 dekodérů instrukcí. počet mikroinstrukcí
Core architektura CPU Slučování instrukcí (Macro Fusion) Dekódování dvou úzce spjatých instrukcí na jednu mikroinstrukci, která je vystihne obě. Příklad: Sloučení instrukce pro porovnání operandů CMP (compare = porovnání) a instrukce skoku v programu v případě splnění JMP či nesplnění JNE podmínky. (JMP = z angl. JUMP, tedy skok)
Načtení 4 instrukcí z instrukčního registru. Každá instrukce se zpracovává samostatně. 5 instrukcí = 2 hodinové takty Načtení 5 instrukcí z instrukčního registru. Sloučení 2 instrukcí → 1 dekodér 1 mikroinstrukce reprezentuje 2 instrukce. 5 instrukcí = 1 hodinový takt
Core architektura CPU Slučování mikroinstrukcí (MicroOps Fusion) Sloučení dvou mikroinstrukcí, které jsou těsně spjaty do jedné. Příklad: adresace místa v operační paměti + uložení čísla na toto místo.
Core architektura CPU Správa napájení částí procesoru - řízení otáček ventilátoru v závislosti na zatížení CPU - odpojení od napájení nepoužívaných obvodů CPU Rozšíření instrukční sady - nové SIMD instrukce pro práci se 128 bitovými čísly - registry pro uložení 128 bitového čísla
Nehalem architektura
Nehalem architektura CPU Více fyzických procesorových jader - typicky 2 jádra (i3), 4 jádra (i5, i7), 6 jader (Xeon) QPI procesorová sběrnice Severní most (MCH)
Nehalem architektura CPU Integrace obvodů severního mostu do CPU - integrace řadiče OP (DDR 3) - integrace řadiče OP + řadiče grafické sběrnice (PCI-E x16) - integrace řadiče OP + GPU (oddělený čip od CPU)
Nehalem architektura CPU L3 Cache paměť - oddělená L2 cache = 256 kB - sdílená L3 cache = 8 MB, 4 MB HyperThreading Vícekanálový řadič operační paměti - procesory řady i7: 3 kanálový (tripple channel) - procesory řady i3, i5: 2 kanálový (dual channel)
Nehalem architektura CPU TurboBoost - obvody sledují vytížení jednotlivých jader CPU - pokud je jádro neaktivní, dojde k jejich odpojení od napájení - sníží se spotřeba elektrické energie a tím také TDP CPU - následně se přetaktují aktivní jádra CPU změnou násobitele frekvence
Nehalem architektura CPU TurboBoost
Sandy Bridge architektura
Sandy Bridge architektura CPU Plná integrace severního mostu do CPU (Core i7, i5, i3) - integrace jader CPU + řadič OP + rozhraní grafické sběrnice PCI-Express (s podporou Multi-GPU) + GPU na jednom polovodičovém čipu
Sandy Bridge architektura CPU Grafický procesor (GPU) v CPU - Intel HD Graphics 2000 (resp. 3000) - součást polovodičového čipu procesoru - přímý přístup do paměti L3 cache - možnost změny frekvence a výkonu dle potřeby programové aplikace - vlastní napájení, možnost vypnutí Sandy Brigde Nehalem
Sandy Bridge architektura CPU System Agent - Jedná se v podstatě o obvody severního mostu: řadič operační paměti DDR3 řadič sběrnice PCI-Express x16 verze 2.0 (lze rozdělit na dvě linky x8), podpora Multi-GPU PCU (Power Control Unit) = obvod řízení napájení, frekvence a tepelného monitoringu procesoru Media Engine - obvod pro dekódování videa a převod do jiných formátů
Sandy Bridge architektura CPU Oddělené napájení CPU, GPU, System Agent (SA) - vlastní napájení a kmitočet - efektivnější řízení spotřeby - nižší tepelné vyzařování - delší čas práce na akumulátory - širší možnosti přetaktování
Sandy Bridge architektura CPU Vnitřní kruhová sběrnice (ring bus) - Přímé propojení jader CPU, GPU a obvodů SA pomocí kruhové sběrnice (ring bus) - CPU, GPU i obvody SA sdílejí L3 Cache (LLC = Last Level Cache) - velká přenosová rychlost
Sandy Bridge architektura CPU Turbo Boost 2.0 - není implementováno u CPU řady Core i3 - obvod PCU (Power Control Unit) dokáže krátkodobě přetaktovat procesor nad rámec maximální hodnoty TDP (např. při spouštění programu, náročný výpočet). Poté klesne na základní frekvenci s maximálním Turbo násobičem urychlení startu náročných programů, urychlení výpočtu, apod. - Myšlenka: chladič má určitou setrvačnost při zahřívání
Sandy Bridge architektura CPU Rozšíření instrukční sady (AVX) AVX = Advanced Vector Extension - implementace nových 256 bitových registrů - instrukce pracují s 256 bitovými operandy v 1 taktu - využití v náročných matematických aplikacích u výpočtů s čísly v plovoucí řádové čárce, u šifrovacích algoritmů, atd.