Mellékleteink: HUP | Gamekapocs
Keres

A Sun UltraSPARC új generációja: Rock

Fischer Erik, 2007. március 26. 11:58
Ez a cikk több évvel ezelőtt születetett, ezért előfordulhat, hogy a tartalma már elavult.
Frissebb anyagokat találhatsz a keresőnk segítségével:

2. oldal: Titkos segítők

Minden mag két, ún. shadow, azaz árnyék fonalat is kezel. Az árnyékok a valódi fonalakkal párokat alkotnak és azokkal együtt futnak, vagyis teljes egészében követik a fonál normál üzemének kontextusát, akár az árnyékok a tárgyakat. Abban az esetben, amikor a processzor kénytelen a fonál futását felfüggeszteni, az árnyékok önálló életre kelnek és spekulatív módon tovább futtatják a fonál által reprezentált kontextust. Ez a futtatás számos teljesítmény növelő tevékenységre használható fel úgy, hogy közben nincs káros mellékhatása.

Az árnyékok kedvező hatása megmutatkozik az utasítás gyorsítótár és az ugráselőrejelző "trenírozásában", hiszen az árnyék fonál is folyamatosan olvassa és dekódolja a fonál kontextusának jövőbeli utasításait, így frissíti és tanítja a gyorsítótárat és az elágazásbecslő logikát. A dekódolás során az árnyék másra is képes, hiszen az adatbetöltő (load) utasításokat ártalmatlan, de igen hasznos prefetch-ekké konvertálja, melyek aztán az adat gyorsítótárat frissítik.

Ha ezek után a fonál futását átmenetileg gátló esemény teljesül és a tényleges fonál végrehajtása újra tud indulni, úgy abban a kellemes meglepetésben lesz része, hogy mind az utasítás, mind az adat gyorsítótárban igen jó eséllyel számos utasítás és adat azonnal megtalálható lesz, vagyis a fonál hosszabb ideig lesz képes újabb "megakadás" nélkül futni. Az árnyékok mivel valójában nem hajtanak végre utasításokat, csak dekódolják azokat, ezért igen mélyen képesek a fonál "jövőjébe" tekinteni. A jövőbetekintés mélysége a Sun szimulációi szerint általában sok száz, de akár ezres nagyságrendű utasítás is lehet, melynek hatása a fonál futási teljesítménye szempontjából óriási.

Az árnyék fonalak felfoghatóak úgy is, mint egy limitált képességekkel bíró soron kívüli végrehajtási (out-of-order) motor, melynek ablaka több száz, vagy akár ezres nagyságrendű utasítás is lehet. Az árnyékok szépsége pont ebben rejlik, hiszen napjaink legfejlettebb soron kívüli végrehajtási technológiát támogató processzorai is csak 120-150 utasítás nagyságú ablakban dolgoznak.

Az árnyékok azonban még ennél is többre képesek, ha egy kisebb hardveres segítséget is adunk nekik. Ha dekódoljuk az utasításokat, akkor találhatunk olyanokat, melyeket akár végre is lehet hajtani, hiszen a végrehajtásukhoz szükséges adatok már rendelkezésre állnak, vagyis bent vannak a gyorsítótárakban. Ha minden adatunk megvan akkor az ilyen utasítások biztosan nem függenek korábbi utasításoktól, vagyis valóban végrehajthatóak. Ha találunk még egy szabad végrehajtó egységet is -- amit általában lehet találni egy modern processzorban -- akkor semmi akadálya nincs, hogy ezt az utasítást előre végrehajtsuk.

Nos, a Rock magjainak árnyék fonalai képesek erre, mert futásukat egy kisebb átmeneti tároló támogatja, melybe pontosan az ilyen független utasítások végrehajtási eredményeit lehet eltárolni. Később, ha a fonál futását akadályozó esemény teljesül és a mag folytatja a végrehajtást ott, ahol abbahagyta, sok esetben kellemes meglepetések érik, hiszen bizonyos utasítások eredménye már az átmeneti tárolóban megvan, így azokat nem kell újra végrehajtani, hanem csupán át kell venni az eredményeket.

A folyamat persze nem ennyire egyszerű, számos buktatóra figyelnie kell a mag vezérlő elektronikájának. Ha egy ugrást tévesen becsült a prediktor és így az árnyék is hibás irányban hajtotta végre az utasításokat, úgy az átmeneti tároló eredményeit el kell dobni. A logikának figyelnie kell a futás közben megváltozó memória tartalmakat is és az attól függő utasításokat nem hajthatja végre, még akkor sem, ha látszólag megvan a memória tartalma valamelyik gyorsítótárban. Ugyanakkor az árnyékok képességei által keletkező teljesítmény növekedés óriási lehet, meglepő módon még alacsony órajelek mellett is -- noha a Rock középkategóriásnak számít majd ezen a téren, mert 2,5 GHz környéki órajellel fog megjelenni.

Kellemes meglepetés az is, hogy a támogató logika, mely ezt a látszólag egyszerű, de valójában eléggé komplex megoldást elvégzi, nem túl nagy, kényelmesen elfér mind a 16 magon, s csak pár százalék terület növekedést okoz. Sőt, az árnyékok jövőbe látó utasítás végrehajtási képessége még újabb teljesítmény növelő technológiákat is magával tud hozni. A Rock későbbi változatainak tervei között CPU-ba integrált spekulatív parallelizáció, vagyis az egyszálú programok automatikus párhuzamosítása és az eredmény becslés is szerepel.

Fischer Erik
Principal Engineer
Sun Microsystems

Véleménye van?

A cikk több oldalból áll:
Facebook
Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.