AMD Bulldozer – Nová architektura CPU od AMD | Kapitola 8
Seznam kapitol
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](https://storage.googleapis.com/pctuning-cz/media/images/grpv28r8a2455j960d3203f5654c441288876.png)
Další podstatnou změnou architektury Bulldozer je load-store pipeline a paměti cache. Všechny ostatní části čipu byly víceméně přepracovány pro vyšší efektivitu a jen mírné navýšení výkonu. Jednotky load-store byly ale přepracovány zásadně. Vnitřní struktura pamětí cache byla změněna, a poprvé se také u AMD objevují kompetitivní prefetchery.
Paměťová pipeline jádra Bulldozer začíná load a store frontami a Schedulerem pro celá čísla. Každá hodnota load nebo store musí být alokována ve správné paměťové frontě. To je podstatné pro výkonnější X86 model. Dnešní architektura K8 (10h) má dvě komplexní load-store fronty, kdy se v každé vykonávají jiné funkce. Bulldozer má jednodušší strukturu dvou front, load fronta se 40ti vstupy a store fronta s 24mi vstupy. To znamená, že Bulldozer zvládá o 33 procent více operací za takt než K8 (10h), ovšem stále o 20-30 procent méně než Westmere.
L1 cache
Změnila se také hierarchie pamětí cache. L1 cache s kapacitou 16KB je 4-way asociativní, a je běžné že k nalezení požadovaných dat je nutno do paměti přistoupit čtyřikrát na různá místa. Bulldozer ale používá predikci k rozhodnutí, kde data leží. V případě úspěchu je požadavek vyřízen rychleji a ušetří se energie, pokud ale je předpověď špatná, má to za následek větší latence ve více cyklech. Load-to use latence se proti K8 (10h) o jeden cyklus prodloužila, stejně jako u Westmere. Bylo to nutné směrem k požadavku na vysoké frekvence čipu a vyšší propustnosti L1 cache. I přesto, že má jádro jen dvě AGU jednotky a není tedy schopné přistoupit do L1 cache třikrát za takt, ale jen dvakrát, je zde výhoda, že místo třetího přístupu je možné frontu operací vyprazdňovat. Zde je vidět srovnání architektury s budoucími Sandy Bridge procesory, propustnost L1 cache bude stejná, a klíčová pro AVX instrukce.
L2 cache
Paměť L2 cache je sdílená pro obě jádra v modulu a její velikost bude pravděpodobně 2MB na modul, což je proti 512KB u K8 (10h) a 256KB u Westmere značně vyšší kapacita. Jedná se 16-way asociativní paměť. Jak už jsem řekl několikrát, vzhledem k plánovaným vysokým frekvencím procesoru narostla latence L1 cache vůči K8 (10h), stejně je tomu I u L2 cache. Latence je 18-20 cyklů, jádro K8 (10h) operuje s latencí 10 cyklů stejně jako Westmere. Všechna data zapsaná do L1 jsou zkopírována do L2, pokud dojde k poškození dat v L1 jsou opět nahrána z ECC chráněné L2. Paměť L1 není chráněna ECC, čímž se sníží nároky na její spotřebu (K8 má ECC chráněnu i L1 cache).
I když je obsah L1 běžně zkopírován do L2, může se stát, že některá data z L1 budou v L2 chybět. V tento okamžik jádro prohledá L3 cache, a pokud neuspěje ani tam, opět se podívá do L1 cache. Tento provoz je nežádoucí, všechna tato hledání totiž zatěžují jádra a spotřebovávají energii zbytečně. AMD stejně jako Intel u architektury Westmere učinil kroky, aby tento nežádoucí provoz omezil. Jak to ale přesně funguje u architektury Bulldozer není známé.
L3 cache
Dalším stupněm je L3 cache, která je sdílená pro všechny moduly v procesoru. Její celková kapacita není ještě úplně jasná, minimem bude 8MB, maximem zřejmě 12MB. Spekuluje se také o kapacitě 16MB, ta je ale při současné (odhadované) velikosti jádra Orochi 250 mm čtverečních zřejmě při stávajícím 32nm výrobním procesoru nereálná. Pro zajímavost si srovnejme velikost jader dnešních čipů: Gulftown (32nm šest jader) 248 mm, Lynnfield (45nm čtyři jádra) 296 mm, Bloomfield (45nm čtyři jádra) 263 mm, Thuban (45nm šest jader) 346 mm. Orochi (32nm osm jader) 250 mm. O této paměti toho výrobce prozradil nejméně, nevíme zdali bude 16-way nebo dokonce 64-way (pravděpodobnější) asociativita.
Data Prefetcher
Data prefetching je další záležitost, kterou Intel pilně ladil po několik generací svých procesorů. AMD ji objevuje až s architekturou Bulldozer, což je bezpochyby správný krok. Tato technologie totiž zásadně snižuje latence pamětí a razantně navyšuje výkon pamětí cache. AMD se tomuto tématu při návrhu čipu hodně věnovalo a i v tomto směru lze očekávat značný posun kupředu. Detaily ale nejsou známé.