Intel Sandy Bridge: sametová evoluce
29.9.2010, Petr Štefek, technologie
Sandy Bridge je zbrusu nová architektura Intelu, která nahradí postupně celou produktovou řadu procesorů založenou na jádrech Nehalem a Westmere. Nová architektura není pouze nudným evolučním krokem, ale o tom více už v samotném článku.
Kapitoly článku:
Register File
Intel přichází s architekturou Sandy Bridge k vylepšení v oblasti Register File. V předchozí generaci architektur Intelu (procesory Core 2 i Core iX) vše fungovalo tak, že každá jedna mikro operace měla kopii každého operandu, který potřebovala. To znamenalo především velké nároky na paměť cache v případě out-of-order výpočtů, kde je potřeba zálohu pro všechny mikrooperace a přidružená data. Taková architektura Core potřebovala 80 bitů dat a v případě využití SSE už 128 bitů. V případě zbrusu nové instrukční sady AVX je to již 256-bitů operandů spojených s každou jednou instrukcí. AVX (Advanced Vector Extension) je rozšíření x86 instrukční sady a jejím autorem je Intel.
Register File obsahuje operandy (vstupní hodnota operace) mikro operací (micro-ops). V momentě, kdy mikro operace putuje do out-of-order enginu, nese pouze ukazatel (pointer) ke svým operandům a nikoli všechna data. Tento fakt poměrně značně ovlivňuje výkon hardwarem, kde je potřeba přenášet mnoho dat uvnitř čipu, což není žádoucí. Řešení toho problému znamená vyšší výkon při využití instrukční sady AVX.
AVX instrukční sada tedy podporuje 256bitové operandy, což může znamenat v případě implementace značnou část plochy jádra samotného procesoru. Přechod k fyzickému Register File pomohlo Intelu zvětšit potřebné buffery out-of-order enginu, který dokáže lépe daty zásobovat FPE (Floating Point Engine). Sandy Bridge architektura si jednoduše vypůjčila pro AVX 128 bitů určených pro celočíselnou (integer) SIMD. Jediné, co může Intel trápit, je fakt, že využívat AVX umí jedině operační systémy Windows 7 se Service Packem 1. Kdo má ale na zbrusu nový procesor založený na architektuře Sandy Bridge, jistě najde nějakou tu korunu na nový operační systém Microsoftu.
Dobrá zpráva je, že AMD bude ve své architektuře Bulldozer podporovat AVX také, ale poněkud jiným způsobem, který zahrnuje dvě samostatné 128bitové cesty, které mohou v kombinaci využívat procesory pro 256bitové AVX operace. Vše záleží i na tom, jak rychle stačí Intel dostat mezi vývojáře své kompilátory. Výkony při využití AVX by měly být až v desítkách procent výše než v případě starších instrukčních sad SSE.
Ring Bus – efektivita především
Když se podíváme na starší architekturu Nehalem nebo Westemere, zjistíme, že každé jádro (fyzické – pro HyperThreading to neplatí) má svůj vlastní přístup do velké L3 cache. Na každé jádro připadá něco okolo tisíce spojů, a pokud budete potřebovat kvůli většímu množství zpracovávaných dat počet těchto spojů rozšířit, narazíte na problém (hardwarový především). Nová architektura to vše řeší využitím sběrnice Ring Bus (ano, je to známý pojem, především jej znáte z grafických jader ATI). Intel se k tomu rozhodl především proto, že do jádra CPU přidal jednoduché GPU a logiku pro zpracování videa, kde oba jmenovaní využívají sdílenou L3 cache.
Ring bus ale nalezneme i v čipech Intelu, takže jeho zavedení není až tak převratná novinka, jak by se mohlo zdát. Tuto sběrnici najdeme v serverových CPU pod označením Nehalem EX (8-core) a Westmere EX (10-core). Ring Bus je tedy společnou spojnicí pro každé z jader, L3 cache, integrované GPU, media engine (video transconding) a System Agent (jedná se o North Bridge, ale takto hloupě ho pojmenoval Intel – o tom ale později).
Ring Bus se skládá ze čtyř nezávislých částí (rings). Máme zde data ring, request ring, acknowledge ring a snoop ring. Každá z částí ring bus dokáže pojmout 32 bytů dat za takt.
Na každé jádro připadá velikost šířky pásma L3 cache jako v případě výše zmiňovaných high-endových procesorů s architekturou Nehalem a Westemere, což v řeči čísel znamená 96 GB/s. Celková rychlost sběrnice se spočítá velmi lehce, pokud vynásobíte výše uvedenou hodnotu počtem jader (quad-core = 384 GB/s nebo six-core = 576 Gb/s). V rámci latencí (doby přístupu) došlo u architektury k výraznému posunu od 36 cyklů u Westmere k 26-31 cyklů u Sandy Bridge.
Na rozdíl od starší architektury Westmere čip běží na frekvenci samotného jádra a není nezávislá, jako tomu bylo u starších architektur. Samozřejmě idea North Bridge jako logiky neintegrované do jádra je zde pořád, ale již nazvaná poněkud zvláštním názvem System Agent. Výhoda je podstatně rychlejší L3 cache, která má vliv na výkon celého procesoru a nevýhodou je naopak, že je svázána s frekvencí procesoru i v případě jeho podtaktování.
Samotná L3 cache je rozdělena do několika částí (LLC), kde každá z nich je spojena s jedním jádrem, ale zároveň je zde možnost, že každé jádro může adresovat celou L3 cache. Každá z těchto částí ma svou vlastní pipeline, kde každé jádro přeposílá požadavky. U architektury Westmere existovala jediná pipeline, kde všechna jádra přeposílala své požadavky. Propojení celé L3 cache na „kruhovém“ principu má tu výhodu, že můžete zvyšovat rychlost sběrnice bez nutnosti zvětšovat plochu jádra (a počet tranzistorů).