BULLDOZER - Nové CPU od AMD
Firma AMD změnila architekturu svých procesorů a zaměřuje se hlavně na serverové použití. Hodí se ale Bulldozery i pro stolní počítače?
MARKUS MANDAU
Osm výpočetních jader s frekvencí 3,6 GHz a celkovým počtem 1,2 miliardy tranzistorů. Specifikace nového procesoru AMD FX-8150 jsou na první pohled působivé. V porovnání s ostatními CPU srovnatelné ceny vychází Bulldozer FX-8150 jako papírový vítěz, protože srovnatelný model Intel Core i7-2600 je osazen pouze miliardou tranzistorů. Procesory Phenom II pracují pouze s 900 miliony tranzistorů na zhruba stejné ploše. Takovou výpočetní kapacitu v kategorii serverových CPU nemůže nabídnout žádný jiný procesor, přesto jsou ale výsledky měření vcelku zklamáním. Důvodem je úplně nová architektura Bulldozer, která byla v procesorech FX nasazena poprvé.
Abychom lépe pochopili nové funkce a vlastnosti této architektury, musíme se hlouběji ponořit do technologie CPU. Architektura Bulldozer používá velké množství odlehčených jader, která sdílejí řadu prostředků. Přesněji řečeno, v těchto procesorech už se nenacházejí žádná samostatná jádra. Místo toho jsou jádra seřazena do tzv. „modulů“, obsahujících pokaždé dvojici jader. Každý modul obsahuje části, které se starají o výpočty typu integer, a části, které se starají o výpočty v plovoucí čárce. Všechny komponenty modulu pak sdílí tzv. část „front end“. Jde v podstatě o stejný princip, na kterém je založen hyperthreading u procesorů Intel, rozdíl ale spočívá v tom, že dvě logická vlákna sdílí všechny prostředky fyzického jádra. Bulldozer je tedy jakýmsi kompromisem mezi plnohodnotným osmijádrovým procesorem a čtyřjádrovým procesorem Intel s hyperthreadingem. Jak už to ale bývá, každý kompromis něco stojí.
Sdílení prostředků v rámci modulu
Moderní procesory používají pro každé jádro samostatnou jednotku operací s plovoucí čárkou (FPU), která většinou bývá velmi vytížena a provádí složité výpočty například během zpracování multimediálních aplikací. Z principu architektury Bulldozer pak vyplývá nižší výkon této jednotky, která je sdílena oběma jádry každého modulu. Zjednodušena je navíc i samotná jednotka FPU, která obsahuje čtyři výpočetní jednotky pro zpracování 128bitových operací. Pokud tedy nastane situace, že obě jádra architektury Bulldozer budou zároveň používat FPU, vyjde na každé vlákno pouze dvojice jednotek FPU.
Zpracování kódu používajícího příkazy s rozšířenou instrukční sadou (MMX a SSE) mají na starosti dvě výpočetní jednotky a procesory Bulldozer dokážou zpracovat i dlouhé 256bitové operace AVX, které jsou distribuovány mezi dvě zbývající 128bitové výpočetní jednotky. V porovnání s architekturou Sandy Bridge to na první pohled vypadá jako další nevýhoda, protože procesory Sandy Bridge dokážou zpracovávat dvě AVX operace v jednom cyklu a Bulldozer pouze operaci jednu. Procesory AMD Bulldozer ale představují první CPU, které podporují FMA operace (fused multiply-add) se čtyřmi operandy, které provádějí sčítání a násobení v rámci jednoho cyklu. Kromě jednotky pro zpracování FPU mají moduly Bulldozer i společnou front end část, která přijímá příkazy x86 a připravuje je pro další zpracování, které probíhá prostřednictvím čtyř dekodérů. Phenom II má pouze tři dekodéry, ale každý z nich je určen pouze pro jedno jádro. Určitá omezení potkala v Bulldozerech i jádro pro zpracování integer operací, které pro tyto operace vyhrazuje pouze dvě ALU jednotky, zatímco Phenom II disponoval třemi ALU jednotkami. Celý procesor Bulldozer tedy dokáže s osmi jádry zpracovat v jednom cyklu pouze 16 integer operací, zatímco Phenom II zvládá se šesti jádry zpracovat 18 operací.
Přesto má architektura Bulldozer se dvěma zjednodušenými jádry své výhody: společná front end část a sdílené FPU šetří elektrickou energii. Uspořenou energii lze využít pro zvýšení rychlosti. V rámci turborežimu dokážou procesory FX krátkodobě zvýšit frekvenci všech modulů na 3,9 GHz. Pokud by pracovaly pouze dva moduly, lze zvýšit frekvenci až na 4,2 GHz.
Kromě vyšší frekvence pracují Bulldozery s delší, 20úrovňovou pipeline, zatímco pipeline Phenom II má pouze 12 úrovní. To znamená, že pokud Bulldozer dokáže zaplnit celou pipeline, může v rámci jednoho cyklu dokončit více než 20 suboperací.
Nová architektura je optimalizována pro použití s moderními OS. Plánovač Windows 7 se snaží distribuovat vlákna kódu co nejvyrovnaněji, tak aby byla činnost fyzických jader co nejlépe optimalizována. Tento typ řazení je ideální pro multithreadingové procesory Intel, ale ne pro CPU Bulldozer. OS směruje na jeden modul obvykle jen jedno vlákno kódu, ale pro Bulldozery je ale vhodnější získávat do každého modulu vlákna dvě, protože pouze pak je plně využita společná rychlá L2 cache a není potřeba data načítat z externí vyrovnávací paměti L3. Podobné plánování úloh již ale používají Windows 8.
S ohledem na slabý výkon při zpracování operací s plovoucí čárkou jsou však i pod Windows 8 Bulldozery pomalejší než CPU Intel Sandy Bridge. Tento problém by AMD mohla vyřešit integrací grafického čipu přímo do jádra či modulu CPU.
U serverů je ale situace jiná. Díky architektuře Bulldozer pracují 16jádrové procesory AMD Interlagos rychleji než současné procesory Intel Xeon. Pozitivně se tak projevuje vysoká paralelizace výpočtů typu integer, díky které nemají v serverovém segmentu procesory Bulldozer v současnosti konkurenci.
PODROBNÝ POHLED DO CPU
Společnost AMD uvedla na trh první procesory řady AMD FX (Bulldozer) s osmi jádry. Podrobný pohled na jejich architekturu odhalí klady a zápory této bezesporu zajímavé řady procesorů.
STRUKTURA PROCESORU
Místo samostatných jader používá architektura Bulldozer bloky samostatných modulů, ve kterých probíhají výpočetní operace. Každý modul má dvě jádra a 2 MB vyrovnávací L2 paměti. Všechny moduly pak sdílejí data prostřednictvím společné 8MB L3 cache.
FRONT-END
O začátek zpracování kódu se u jednotlivých modulů stará tzv. Instruction Fetch jednotka. Ta přebírá data z vyrovnávací L2 cache nebo z predikční jednotky (Predictionm Queue) a její paměti (Branch Target Buffer, BTB) a prostřednictvím instrukční cache je směruje do dekodéru. U osmijádrových procesorů architektury Bulldozer pracují zároveň čtyři dekodéry, které převádějí dlouhé instrukční příkazy x86 do podoby výpočetních operací.
INTEGER JÁDRO
Obě jádra tohoto modulu zpracovávají pouze operace typu integer. K jejich zpracování slouží dvě ALU (Arithmetic Logic Units) jednotky. Dvě jednotky AGLU (Address Generation Logical Units) provádějí jednoduché logické úkoly a zpracovávají paměťové adresy.
FLOATING POINT UNIT
Uvnitř FPU kontrolují čtyři pipeline se šířkou 128 bitů operace s plovoucí čárkou. Dvě pipeline mají rozšířenou instrukční sadu (např. MMX, SSE). V případě potřeby mohou být zbývající dvě pipeline propojeny, takže dokážou zpracovávat 256bitové instrukce AVX. Navíc mají na starosti zpracování komplexních FMA operací (Fused Multiply-add).