Bulldozer zastane těžkou práci
V telefonické přednášce k nám promlouvali Chekib Akrout, senior viceprezident a vedoucí divize Technology Group, a Greg Hoeppner, viceprezident a generální manažer divize Design Engineering.
Přestože jsme museli souhlasit s dohodou o mlčenlivosti a s vydáním článku čekat do stanoveného data, nezanedbatelná část prezentace se týkala informací již známých od loňského listopadu/novembra. Abych se tedy nemusel potupně opakovat, budu v následujícím textu používat výstřižky ze starší novinky.
V jistém ohledu nový přístup AMD připomíná strategii Intelu, který téměř všechny segmenty trhu obhospodařuje procesory založené na výkonné architektuře (Core, Nehalem), avšak pro úsporná mobilní zařízení nebo nejlevnější kancelářské počítače nabízí Atom, architektonicky příbuzný s prvním Pentiem. Podobným způsobem budou mít rozdělený trh i Bulldozer a Bobcat. S tím rozdílem, že Bobcat neoprašuje patnáct let starou architekturu, ale je odlehčenou verzí Bulldozeru.
Bulldozer
AMD má už od generace K8 blíž k serverovému segmentu a nejinak je tomu u Bulldozeru. První komerční implementací této architektury bude šestnáctijádrový Opteron Interlagos slepený ze dvou osmijádrových čipů. V dobách dávno minulých bylo osmijádro v roadmapě pod označením Sandtiger. Kde je mu asi konec?
Právě v serverech lze vylepšovat výkon zvýšením počtu vláken, které procesor může naráz zpracovávat. V minulosti toho bylo docilováno dvěma způsoby.
První způsob známe pod názvem „HyperThreading“, jak jej pokřtil Intel u Pentií 4. Jedno procesorové jádro zpracovává dvě vlákna, v jeden okamžik tak mohou být vytíženy celočíselné (integer) i floating point jednotky. Druhý přístup doposud aplikovalo AMD i Intel a spočívá v prostém zvyšování počtu jader. Ta jsou ale pro svůj účel naddimenzovaná a většinou nejsou optimálně využita.
Jeden dvoujádrový modul Bulldozeru dokáže zpracovávat dvě vlákna současně stejně dobře, jako klasické dvoujádro. Díky sdílené FP jednotce je ale menší a dosahuje lepšího využití. Tento modul je v nové architektuře nejmenší stavební jednotkou, proto mezi Bulldozery neuvidíme žádné jednojádrové modely.
Takto vypadá základní stavební jednotka procesoru na architektuře Bulldozer. Jsou to dvě jádra, každé z nich má čtyři integer jednotky, z nichž dvě slouží pro operace s pamětí a dvě pro vlastní celočíselné výpočty. Tato jádra mezi sebou sdílí L2 cache, ale v první řadě floating-point jednotku (FPU) pro výpočty s plovoucí desetinnou čárkou.
FPU jednotka bude pravděpodobně podporovat instrukce AVX alias Advanced Vector eXtensions, které vytvořil Intel jako nástupce SSE. V každém případě bude podporovat instrukci FMAC (fused multiply-accumulate, jinak také nazývaná FMA – fused multiply-add). Stejně jako klasická MADD (multiply-add) instrukce umí FMAC v jednom taktu násobit a sčítat, ale je přesnější, neboť mezi násobením a sčítáním nezkracuje operandy na potřebnou délku v bitech a chyba zaokrouhlování tak vzniká jenom jednou, na konci.
Výpočetní jádro K10 má ve srovnání s jedním jádrem Bulldozeru více integer pipelines a FPU není sdílená. Avšak v úlohách náročných na vícevláknový výkon v celočíselných operacích nabídne Bulldozer lepší poměr výkonu na plochu čipu. V jednovláknových aplikacích naopak zůstane nevyužit pouze jeden blok integer pipelines namísto celého jádra včetně floating-point jednotek. Pokud budou obě vlákna zatěžovat FPU jednotku, výkon půjde lidově řečeno do kytek. Kdo by ale takové programy nechával běžet na procesoru, když paralelizované FP úlohy daleko lépe zvládne grafický akcelerátor, který bude mnohdy integrován do jednoho čipu s procesorem?
Jak nám bylo řečeno, typické úlohy běžící na serverech využívají z 80 % integer jednotky. Sdílená FPU by tedy neměla být limitujícím prvkem; jak si ovšem poradí s herní fyzikou či umělou inteligencí, zatím zůstává ve hvězdách. Ohledně výkonu procesorů nové architektury nám pouze bylo zopakováno tvrzení, že vzroste o polovinu při zvýšení počtu jader o třetinu.
Co se podpory instrukčních sad týče, potvrzena je podpora AVX, SSE 4.1 a SSE 4.2. Naopak vypadl vzdoroprojekt AMD, instrukce SSE5. John Fruehe před čtrnácti dny prohlásil, že „SSE5 nikdo nepodporuje“, ani v materiálech k Bulldozeru o nich není ani zmínka. Přes palubu půjde i další nepříliš úspěšný vynález firmy se zeleným šípem ve znaku: Sharon Troia na blogu AMD informuje, že instrukce 3DNow! jsou nyní „deprecated“ a v dalších generacích procesorů nebudou podporovány.
Instrukce AVX s délkou operandů 256 bitů bude jeden dvoujádrový modul Bulldozeru, přesněji řečeno jeho floating-point jednotka, zvládat vykonat v jednom taktu. Výpočty se 128 bitů dlouhými slovy může v jednom taktu provádět dvě.
Řeč přišla i na sdílený instruction fetch a decode. Za normálních podmínek prý není problém zásobit prací obě integer jádra. Záleží ale na délce instrukcí – některé jsou totiž obzvlášť dlouhé a pokud by jich aplikace hojně využívala, fetch a decode by nemusely stíhat.
Na tomto slajdu vidíte schéma osmijádrového čipu na bázi Bulldozeru. Procesor obsahuje čtyři dvoujádrové moduly, všechny sdílí L3 cache a „northbridge“ (tedy řadič pamětí a HyperTransportu).
Ještě jsem se nezmínil o tom, že Bulldozer má opět funkci Turbo a s ním související nové úsporné funkce. V jednovláknových aplikacích bude v rámci jednoho modulu možné deaktivovat jedno integer jádro a to zbývající spolu s FPU jednotkou přetaktovat.
Tolik k Bulldozeru, nyní se vrhněme na druhou architekturu, kterou na nás AMD příští rok vychrlí.
Bobcat: výkon/watt především
Bobcat
Bobcat je navržen s ohledem na co nejlepší poměr výkon/watt. Ještě před několika lety by se ale prý tato architektura dala označit jako plnohodnotná i pro vyšší segmenty trhu.
AMD tvrdí, že nejúspornější verze Bobcatu budou mít spotřebu pod jeden watt. Daná architektura zpravidla dokáže škálovat spotřebu (a dle toho výkon) přibližně v jednom číselném řádu. Tudíž pokud nejslabší a nejúspornější varianta bude mít TDP přesně 1 W, pak nejvýkonnější Bobcat bude mít spotřebu okolo 10 W. Což je stále výrazně méně, než bývá příkon typického procesoru v běžném notebooku a dá se tak předpokládat, že Bobcat bude mířen pouze do netbooků a nettopů. Zespoda na něj bude tlačit Intel Atom, který chce Intel protlačit i do chytrých mobilních telefonů), zvrchu pak VIA Nano.
Oproti Atomu bude Bobcat větší a dražší, ale také schopnější: blok integer pipelines je převzat z Bulldozeru, FPU už tak vyšperkovaná není, ale zase není sdílená a podporuje i instrukce SSE3. Bobcat se také může pochlubit hardwarovou podporou virtualizace. Vzhledem k tomu, že uživatelé provozující několik virtuálních strojů na netbooku asi nebudou početnou cílovou skupinou, má zřejmě AMD s Bobcatem i jiné plány.
Srovnání s Intel Atomem a VIA Nano nakonec nebude zcela přesné. AMD s Bobcatem míří o něco výš. Sluší se připomenout, že na rozdíl od architektonicky poněkud primitivního Atomu vykonává Bobcat instrukce
out-of-order (tedy v jiném pořadí, než byly procesoru zadány). AMD se také chlubí vyspělou predikcí podmínek a větvení kódu.
90 % výkonu dnešního „mainstreamu“ při ploše čipu menší než poloviční. A co že se myslí tím mainstreamem? Napoví test serveru Expreview, který postavil vzorek APU Ontario proti třem dnešním procesorům. Zdá se, že na stejné frekvenci ztrácí Bobcat na K10.5 přibližně oněch deset procent výkonu; jedinou otázkou tedy zůstává, na jaké frekvenci budou modely Ontaria nastaveny.
Co se podpory rozšiřujících instrukcí týče, nové materiály potvrzují kromě SSE3 také SSSE3 a SSE4A. Podporu souboru instrukcí SSSE3 poprvé přinesly procesory Core 2 od Intelu vyráběné 65nm technologií (jejich 45nm nástupci se už chlubí podporou „opravdového“ SSE4). SSE4A naopak nabídlo AMD u první generace Phenomů, oproti plnohodnotnému SSE4 v této sadě několik instrukcí chybí.
Bobcat nepodporuje AVX, na to je totiž potřeba floating point jednotka šířky 256 bitů. Takovou má Bulldozer, FPU Bobcatu má ale pouze dvě 64bitové pipelines a je tedy schopna provádět výpočty s délkou operandů maximálně 128 bitů.
O Ontario jsme se už několikrát otřeli, není tedy divu, že je mu věnován samostatný slajd. Na zvídavý dotaz novinářů, jak bude vyřešen sdílený přístup k operační paměti a zdali to pro grafické jádro nebude limitem, představitelé AMD odmítli odpovědět. Bez komentáře zůstala i otázka, jak bude procesor AMD s grafikou ATI značen a propagován.
Dozvěděli jsme se nicméně, že v budoucnu se dočkáme i Fusion procesoru architektury Bulldozer. Mezitím se však chystá ještě Llano, které bude vyráběno novým 32nm SOI výrobním postupem, ale jehož procesorová jádra vychází z architektury K10.5. Llano, Ontario a další Fusion procesory nebudou pasovat do současné patice AM3, u obyčejného čtyřjádrového Bulldozeru bez IGP otázka zpětné kompatibility stále není vyjasněna.
Core i3/i5 od Intelu s integrovaným grafickým jádrem umí automaticky měnit frekvence procesorových jader a iGPU, aby poskytly co nejlepší výkon v rámci stanoveného stropu spotřeby (TDP). Předpokládáme, že čipy Fusion (APU) budou umět to samé.
A na úplný závěr ještě jeden střípek k Bobcatu. Architektura je prý navržena tak, aby byla snadno přenositelná mezi různými výrobními technologiemi. Ontario má být vyráběno 40nm postupem u TSMC, další čipy by ale mohly sjíždět z výrobních linek Globalfoundries, které v roce 2011 nabídne 28nm bulk proces. Čistě teoreticky má AMD také otevřená zadní vrátka ke způsobu licencování, jaký používá ARM (a Intel se o něj ve spolupráci s TSMC pokoušel s Atomem, ale mezi potenciálními zákazníky se nabídka neuchytila); prakticky ale Bobcat do mobilních telefonů a jiných kapesních zařízení není zrovna vhodný.
Pokud vás zajímají další detaily o Bulldozeru a Bobcatu a vyznáte se v technických pojmech, na našem FTP najdete dokumenty od AMD, které se architekturám věnují do větší hloubky, než náš článek.
Podrobnější a zároveň lidštěji podané povídání nabízí článek serveru Anandtech.