Szerző: Bizó Dániel

2009. november 17. 14:52

Bulldózerrel söpörné el az Intelt az AMD

Az AMD 2011-ben két új mikroarchitektúrával is jelentkezik, melyek közül a Bulldozer kódnéven ismert fejlesztést a nagy teljesítményt igénylő feladatok futtatását célozva alkották meg. Az AMD ezzel szeretne újból tényezővé válni a teljesítményigényes szerverfeladatok futtatásakor.

A K7 örökség

Az AMD processzorai lényegében továbbra is a tíz évvel ezelőtt debütált Athlon mikroarchitektúrájának mását hordozzák magukban, melyet ezen évek alatt a cég mérnökei kétszer is jelentősen továbbfejlesztettek, előbb felkészítették a 64 bites végrehajtásra (K8), majd később optimalizáltak felépítésén (10h). Az eredeti 250 nanométeres változatot követően az AMD a mai napig több mint egy tucat különféle szilíciumot hozott létre, és jövőre további processzorokat jelentet meg a meglévő alapokon.

Mindez egyszerre jelzi az eredeti K7 nagyságát - mely egészen az AMD vezéri székéig repítette Dirk Meyert, aki alphás veteránként a fejlesztéseket vezette -, és a megújulás szükségességét. Természetesen hivatalosan sosem ismerte el, az AMD azonban számos kudarcba fulladt és törölt processzorfejlesztési projektet nyelt el ezen évek alatt, melyek vagy rossz irányt vettek, vagy egyszerűen csak kicsúsztak a menedzsment kezei közül. Meyer vezetése, mely alig több mint egy éves időre néz csak vissza, azzal az ígérettel kecsegtet, hogy a cég rendbe szedi processzorfejlesztéseit, és 2011-ben versenyképes architektúrákkal rukkol elő.

A Bulldozer és Bobcat kódnevek már jó ideje keringenek a szakmában, és eredetileg korábban kellene megjelenniük. A nem hivatalos magyarázat szerint a csúszást az magyarázza, hogy megvalósításhoz 32 nanométeres csíkszélességű gyártástechnológiára van szükség, amely legkorábban 2010 második felére éri el azt az érettséget, hogy alkalmas legyen nagy méretű és nagy teljesítményű processzorok kereskedelmi tömegtermelésére. Az IBM vezetésével kifejlesztett eljárás ráadásul az idei International Electron Devices Meetingen prezentáltak alapján rendkívül jó karakterisztikájú tranzisztorokkal rendelkezik, alig maradva el az Intel által publikáltaktól, ami annak köszönhető, hogy már bevezetik a magas k együtthatójú, vastagabb szigetelőanyagokat és a fémkapukat.

A múlt heti elemzői konferencián az AMD körvonalakban felvázolta a Bulldozer felépítését, ami egyszerre szokatlan és várható is volt. Szokatlan, hiszen 2011-es termékről van szó, melyeket újak előznek meg jövőre, ráadásul az Intelnek is nagyobb betekintést enged az AMD boszorkánykonyhájába. Várható volt ugyanakkor, mivel az AMD-nek bizalmat kell szereznie a piacon, hogy rendelkezik versenyképes terméktervvel 2010 utánra is.

Moduláris felépítés

A Bulldozerről közzétett információk alapján az architektúra egyik fő koncepciója a felhasznált szilíciumterület és energiabüdzsé minél hatékonyabb kiaknázása, és a pazarlás csökkentése. Ha az AMD értelmezését vesszük alapul, akkor lényegében a Bulldozer olyan modulokból épül fel, amik két magot rendkívül szorosan integrálnak, és számos erőforráson osztoznak. A két mag közös front-enddel rendelkezik, mely befogadja az x86-os utasításokat, mikrokódra fodítja (dekódolás), majd továbbítja azokat.

\"\"

E mögött két dedikált ütemező található, melyek saját erőforrásokkal, egyenként négy futószalaggal rendelkeznek, valamint osztoznak két lebegőpontos, 128 bit széles FMAC (fused multiply-accumulate) egységen. A magok dedikált L1 adattárral, és osztott, egységes L2 tárral rendelkeznek, melyen keresztül kommunikálnak a többi maggal vagy a külvilággal is. A Bulldozer továbbra is soron kívüli végrehajtással rendelkezik, vagyis az egyes magok ütemezői az utasítások sorrendjébe is belenyúlnak, majd a számításokat követően újra felépítik az utasítások megfelelő fonalát.

Az egyes magok teljesen független utasításszálakat dolgoznak fel, és versenykondíció esetén elosztják a lebegőpontos egységeket, vagyis egy-egy FMAC-hoz jutnak hozzá, ha mindkét szál egy időben ütemez be lebegőpontos műveleteket - a lebegőpontos ütemező is közös. Ha adott pillanatban csak egyik szál rendelkezik lebegőpontos utasítással, úgy akár mindkét FMAC-ot is használhatja, így elérheti az órajelenkénti 4 kétszeres pontosságú számítást is.

Hyper-threading AMD-módra

Bár az AMD arról beszél, hogy egy ilyen modul egy optimalizált kétmagos blokkot takar, ha hátralépünk egyet és újra megközelítjük a felépítését, akkor valójában egy szimultán többszálúsított (SMT) mag rajzolódik ki elénk, melynél egyes erőforrások megnövelésével, míg másikak duplikálásával és dedikálásával oldották meg a mérnökök, hogy a lehető legnagyobb nyereséggel járjon a második szál bevezetése.

Az Intel által választott SMT-implementációhoz képest a döntés ráadásul vélhetően kedvezően hat a vezérlés komplexitásának kordában tartása és a működés helyességének kitesztelése és ellenőrzése szempontjából is, így alacsonyabb kockázattal rendelkezik, miközben többet hoz konyhára. Az elemzői konferencián Chuck Moore kitüntetett mérnök állította, hogy akár 80 százalékos gyorsulás is elérhető ezzel a megoldással, szemben a Nehalemben megvalósított Hyper-threading tipikusan 20-30 százalékával, melyet kedvező esetben felmutat - a költsége a cég állítása szerint mindössze 5 százalékkal nagyobb szilíciumterület.

Akárhonnan is közelítjük, a hatékonyságra történő törekvés egyértelmű. A front-end megosztása a leginkább jelentős lépés, mivel ezek kihasználtsága tipikusan alacsony, ugyanis az esetek kis százalékában tud egy mag összes dekódere egyidejűleg, teljes szélességben dolgozni - a dekóderedek tipikusan nem szimmetrikusak, és csak utasítások egy bizonyos csoportját tudják kezelni, valamint a szálban a hardver által felismerhető utasításszintű párhuzamosság tipikusan alacsony, és a pufferek kapacitása alacsony. Két szál párhuzamos kezelésével a dekóderben sokkal magasabb kihasználtság érhető el. Hogy az ütemezők pontosan hány porttal és milyen szervezésben rendelkeznek, az elhangzottak alapján egy modul egy-egy magja 4-4 utasítás indítására, végrehajtására és visszaírására képes. A front-end akár 8 utasítás széles is lehet, ez azonban valószínűleg pazarlás volna, és a mérnökök 6 utasítás szélesség mellett döntöttek.

De mennyire gyors?

Egyértelmű, hogy a Bulldozer felépítése a jól párhuzamosított, és túlsúlyban integer számításokkal dolgozó kódoknak kedvez (pl. adatbáziskezelők), és az Intel Hyper-threadinghez viszonyítva felépítése különösen előnyös számításintenzív, asszimetrikus szálak egyidejű futtatásához . Nem teljesen világos, hogy mikor az AMD nyolcmagos Bulldozerekről beszél, mit ért alatta, de valószínűsíthető, hogy négy darab ilyen modulból épül fel a chip, melyek egy nagy L3 táron osztoznak. A vita, hogy mit értünk mag alatt,  egyébként nem teljesen hipotetikus, ugyanis számos gyártó szoftverlicencei, mint például az Oracle vagy az IBM, a magok száma alapján dolgozik, így nem mindegy, hogy 4 vagy 8 magról beszélünk - az AMD ebből a szempontból számára hátrányos módon a nagyobb számot választotta.

A teljesítményről ennél a pontnál nem sokat lehet mondani, és hacsak nem kapott vissza már működő szilíciumot, valószínűleg az AMD sem tudja pontosan, a gyakorlatban hogyan muzsikál majd a Bulldozer, pláne azt nem, hogyan fog majd versenyezni az Intel akkorra esedékes következő, Sandy Bridge mikroarchitektúrájával. A Bulldozer azonban egyelőre teljesítette feladatát, az ígéretes koncepció bemutatkozásával újabb hitelt kapott az AMD. Bár a teljesítményprojekciók önmagukban nem lenyűgözőek, de ha figyelembe vesszük, mindezt okos designnal, és a hagyományos megközelítésben értelmezve mindössze chipenként 4, foglalatonként 8 maggal teljesíti, máris megváltozik a kép.

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról