Hlavní stránka Hardware Procesory, paměti AMD Bulldozer – Nová architektura CPU od AMD
AMD Bulldozer – Nová architektura CPU od AMD
autor: Z. Obermaier , publikováno 6.9.2010
AMD Bulldozer – Nová architektura CPU od AMD

Většina světových médií přinesla zevrubný pohled na novou architekturu procesorů AMD už minulý týden. My máme sice krapet zpoždění, nabídneme vám ale také více informací. Kromě obecně známých skutečností si podrobně popíšeme architekturu jádra, a pohovoříme více o výkonu budoucí generace procesorů AMD.


AMD Bulldozer – Nová architektura CPU od AMD

AMD si zde drží stejný systém jako u předchozí generace procesorů, jiný než aplikuje Intel. Jednotky pro operace s celými čísly (Integer) a čísly v plovoucí desetinné čárce (FPU) jsou oddělené. Objevila se úvaha, že je tak do budoucna možné nahradit FPU obvody mnoha malými Stream procesory podobným těm z GPU a tím utvořit skutečný Fusion. Stejně uvažuje i Intel s jeho příští architekturou Haswell. Tam bude část výpočetních kapacit nahrazena v CPU malými procesory z projektu Larrabee. Tomuto směru oba výrobci říkají shodně – Heterogenní systém.

V každém cyklu je čtveřice macroOPs posílána do jednoho z výpočetních jader. MacroOPs instrukce jsou řazeny v Retire frontě se 128mi vstupy, jež se stará o prohledávání vykonaných instrukcí, které už nemají žádné závislosti na jiných instrukcích nebo dalším větvení. V každé odeslané skupině jsou pak macroOPs přejmenovány na soubor fyzického registru s 96ti vstupy. Přejmenování v souboru fyzického registru (PRF) je zásadní změnou proti současné out-of-order architektuře. V současných procesorech (K8, Nehalem) byla hodnota sledována v re-order bufferu (ROB) a souborovém registru. Architektura Bulldozer ale místo aby udržovala data společně s informací o stavu, oddělí obě tyto složky do PRF a Retire fronty. Zdali se nějak tato novinka projeví na fyzickém výkonu je otázka, na jejíž zodpovězení si počkáme až do uvedení procesorů na trh.

Předchozí architektura K8 (10h) byla tvořena třemi linkami do výpočetní jednotky celých čísel. Každá linka měla vlastní Scheduler spojující stejné výpočetní jednotky v jádru. U nové architektury tato struktura vzala za své a byla nahrazena jediným Schedulerem, který může obsluhovat jakoukoliv výpočetní jednotku v modulu. Pro lepší orientaci se podívejte na poslední obrázek předešlé kapitoly. Současné jádro rodiny K8 (10h) mělo tři ALU a tři AGU jednotky, jádro Bulldozer má ale jen dvojici těchto jednotek. To vyvolalo u veřejnosti obavy, že výpočetní výkon by mohl být dokonce nižší než u K8 (10h) architektury. Obavy ale nejsou na místě, obě jednotky mají vyšší výkon než ty u předchozí generace, spolu s vyšší propustností by měl být výkon naopak vyšší při menší spotřebě tranzistorů a menším jádře.

Pro úplnost si ještě řekněme co která jednotka dělá: EX, MUL zvládá základní výpočetní operace, odečítání a sčítání a násobení. Neumí složitější operace jako dělení. EX, DIV umí také základní operace, neumí násobit umí ale dělit. AGen (AGU) dodává data do výpočetní části generováním adres.

FPU

AMD Bulldozer – Nová architektura CPU od AMD

Jelikož Bulldozer umí zpracovat nové AVX instrukce, všechny jeho výpočetní jednotky jsou 128 bitové. Stejně jako u konkurenčního Sandy Bridge, musí být 256 bitová instrukce zpracována jako dvě microOPs a dekódována jako dvě macroOPs. Zde se pozastavme nad implementací nových instrukčních sad do AMD procesorů v minulosti a současnosti. Když Intel v roce 2000 uvedl SSE2, trvalo to AMD tři roky aby tuto sadu představilo v prvních čipech architektury K8. Když pak následně Intel představil 128 bitové výpočetní jednotky v roce 2006, AMD je implementovalo o rok později. Nyní se ale kroky obou konkurentů srovnají, AVX bude obsaženo v obou procesorech (Bulldozer i Sandy Bridge) ve stejnou dobu, AMD bude v High-endu zřejmě dokonce první, jelikož Intel uvede procesory nové architektury do patice LGA 2011 až na konci roku, tedy až pod AMD.

Tato skutečnost sice ukazuje vyspělost obou řešení, praktický dopad ale ještě dlouho mít nebude. Nové instrukce zatím nepodporuje žádný masově rozšířený software, a ani se tak v nejbližší roce nestane. U obou výrobců procesorů je tedy zatím AVX jednotka zbytečná, nebude využitá ale bude spotřebovávat energii.

Stejně jako jádra pro výpočet celých čísel, jsou také FPU jednotky odděleny od dedikovaných Schedulerů a používají všechny jeden sdíleny Scheduler. Čtyři pipeline jsou krmeny daty ze Scheduleru se 60ti vstupy, ten je o 50 procent větší než byla Rezervační stanice současné architektury K8 (10h). Srdcem FPU clusteru jsou dvě 128 bitové FMAC jednotky, jež umí dělit a odmocňovat s proměnnými latencemi. Obě tyto jednotky zvládají FADD a FMUL instrukce, první pipeline obsluhuje 128 bitovou jednotku celých čísel, primárně určenou pro instrukce AMD XOP. K pipeline je dále připojen hardware překládající operace celých čísel do čísel v plovoucí desetinné čárce. Najdeme zde také crossbar hardware (XBAR) pro složitější operace jako permutace, a další.

Druhá polovina výpočetních jednotek v FPU clusteru má s výpočty v plovoucí čárce málo společného. Jde o dvojici symetrických 128 bitových SIMD ALU jednotek počítající aritmetické a logické operace. Celý FPU cluster dokáže zpracovat dvě 128 bitové fronty instrukcí, lepší zátěži dopomáhá FL load buffer. Pokud například obě jádra pošlou čtyři 128 instrukce pro všechny čtyři jednotky, buffer vypustí 256 bitový výsledek v jednom taktu, a druhý 256 bitový v druhém.



 
Komentáře naleznete na konci poslední kapitoly.
153 čtenářů navrhlo autorovi prémii: 68.5Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.