Skrytá esa AMD: Bulldozer a Bobcat
20.10.2010, Petr Štefek, technologie
Dnes se podíváme, co na nás připravilo AMD pro konec tohoto roku a rok následující. Nebudu přehánět, pokud označím příchod nových architektur za revoluci pro celé AMD. Po mnoha letech se dočkáme něčeho opravdu nového a pravděpodobně také výkonného.
Kapitoly článku:
- Skrytá esa AMD: Bulldozer a Bobcat
- Bobcat a spotřeba energie a očekáváne výkony
- Bulldozer mezi procesory
- Pohled pod pokličku Bulldozeru
- Bulldozer - pipeline, řízení spotřeby a turbo
- Závěr - máme se na co těšit?
AMD prohlašuje, že Bulldozer bude ve srovnání s předešlými architekturami disponovat hlubší pipeline s méně komplexní logikou v jednotlivých úrovních. Dlouhá pipeline se téměř vždy rovná problémům se zajištěním vysokých taktů. Vzpomeňme na Pentium 4, které svou NetBurst architekturou na několik let odstavilo Intel z pozice technologického a výkonnostního lídra (AMD mělo často vyšší výkon). AMD ovšem tvrdí, že se zde nic podobného opakovat nebude. Očekávané takty se mají pohybovat minimálně na úrovní současné architektury Phenom II.
S hlubší či delší pipeline ovšem přichází i vysoké nároky na branch prediction, což ovšem Bulldozer neponechává náhodě a dočkáme se zde poměrně výrazných změn. Předešlá architektura Phenomu II se vyznačovala tím, že pokud zahálela jednotka branch prediction (predikce větvení), tak zahálela „fetch“ logika. Pokud „fetch“ logika vezme x86 branch instruction, tak paralelně s tím predikční logika určí pravděpodobný target (cíl). Pokud není větev predikována korektně, tak následná větev není predikována, dokud není výsledek předešlé operace opraven. Výsledkem tedy je, že fetch logika občas zahálí a nic nedělá - s okamžitým efektem na celkový výkon procesoru.
Bulldozer tento problém řeší osamostatněním predikce a fetch logiky. Predikční logika nyní vytváří frontu budoucích adresování. Když dojde k mylné predikci, logika pokračuje dále v plnění této fronty pravděpodobnými cíly. Fetch jednotka umí srovnat vzniklou frontu s instrukcemi v cache, aby se předešlo budoucím chybám v L1 cache.
Prefetch jednotky u Bulldozeru také prošly výrazným vylepšením. Souží ke zrychlení dodání instrukcí, které procesor v danou chvíli potřebuje. Procesory pracují výrazně rychleji, než dokážou číst z paměti potřebné instrukce, tak je tomu třeba pomoci, jak to jen jde. Do cache se tedy ukládají potřebné instrukce, ještě než jsou reálně potřeba. Bulldozer disponuje nezávislými prefetchery pro L1 a L2 cache, ale AMD se nyní nijak zvlášť nezmiňuje o jejich funkčnosti. Pokud bude prefetching obzvlášť agresivní, bude to opravdu rychlý paměťový subsystém a nebude překvapením, když budou procesory mít až 4kanálový paměťový řadič. Ten můžeme v současnosti najít pouze u architektury Gulftown, která je cenově zcela mimo dosah běžných uživatelů.
Bulldozer bude mít podobnou funkčnost jako Sandy Bridge Intelu, takže bude možné v rámci šetření energie vypínat jednotlivá jádra (v tomto případě celý modul), což ušetří v klidu opravdu hodně energie. Na druhou stranu lze regulovat frekvenci jader, což dává mnoho prostoru pro automatické přetaktování. Na rozdíl od Intelu, kde jsou ovládána jednotlivá jádra, u Bulldozeru se vše děje na úrovni modulu, který se skládá ze dvou celočíselných výpočetních jader a FP výpočetního jádra. Díky přístupu, který AMD zvolilo, bude mírně v nevýhodě v některých situacích oproti Sandy Bridge, ale stále to bude podstatně lepší než nyní u Phenomu II a core Turbo. Podobný princip funguje také u mnohem levnějšího a méně výkonného jádra Bobcat, ovšem zde na úrovni jádra.
S hlubší či delší pipeline ovšem přichází i vysoké nároky na branch prediction, což ovšem Bulldozer neponechává náhodě a dočkáme se zde poměrně výrazných změn. Předešlá architektura Phenomu II se vyznačovala tím, že pokud zahálela jednotka branch prediction (predikce větvení), tak zahálela „fetch“ logika. Pokud „fetch“ logika vezme x86 branch instruction, tak paralelně s tím predikční logika určí pravděpodobný target (cíl). Pokud není větev predikována korektně, tak následná větev není predikována, dokud není výsledek předešlé operace opraven. Výsledkem tedy je, že fetch logika občas zahálí a nic nedělá - s okamžitým efektem na celkový výkon procesoru.
Bulldozer tento problém řeší osamostatněním predikce a fetch logiky. Predikční logika nyní vytváří frontu budoucích adresování. Když dojde k mylné predikci, logika pokračuje dále v plnění této fronty pravděpodobnými cíly. Fetch jednotka umí srovnat vzniklou frontu s instrukcemi v cache, aby se předešlo budoucím chybám v L1 cache.
Prefetch jednotky u Bulldozeru také prošly výrazným vylepšením. Souží ke zrychlení dodání instrukcí, které procesor v danou chvíli potřebuje. Procesory pracují výrazně rychleji, než dokážou číst z paměti potřebné instrukce, tak je tomu třeba pomoci, jak to jen jde. Do cache se tedy ukládají potřebné instrukce, ještě než jsou reálně potřeba. Bulldozer disponuje nezávislými prefetchery pro L1 a L2 cache, ale AMD se nyní nijak zvlášť nezmiňuje o jejich funkčnosti. Pokud bude prefetching obzvlášť agresivní, bude to opravdu rychlý paměťový subsystém a nebude překvapením, když budou procesory mít až 4kanálový paměťový řadič. Ten můžeme v současnosti najít pouze u architektury Gulftown, která je cenově zcela mimo dosah běžných uživatelů.
Bulldozer bude mít podobnou funkčnost jako Sandy Bridge Intelu, takže bude možné v rámci šetření energie vypínat jednotlivá jádra (v tomto případě celý modul), což ušetří v klidu opravdu hodně energie. Na druhou stranu lze regulovat frekvenci jader, což dává mnoho prostoru pro automatické přetaktování. Na rozdíl od Intelu, kde jsou ovládána jednotlivá jádra, u Bulldozeru se vše děje na úrovni modulu, který se skládá ze dvou celočíselných výpočetních jader a FP výpočetního jádra. Díky přístupu, který AMD zvolilo, bude mírně v nevýhodě v některých situacích oproti Sandy Bridge, ale stále to bude podstatně lepší než nyní u Phenomu II a core Turbo. Podobný princip funguje také u mnohem levnějšího a méně výkonného jádra Bobcat, ovšem zde na úrovni jádra.