Hirdetés

Új hozzászólás Aktív témák

  • P.H.

    senior tag

    Mivel a cikk terjedelme kezelhető, viszont alapos áttekintést az a K10 felépítését illetően, megpróbálkoztam a lefordításával (remélem, nem sértek szerői jogokat és érdekeket; ezért maradtak ki pl. a képek belőle). A fordítás nem szó szerinti, de igyekeztem a lehető legjobban tükrözni az eredeti tartalmat, pár saját megjegyzéssel kiegészítve.
    Ha mégis aggályos lenne, az illetékesek majd megteszik a megfelelő lépéseket.




    Az első Barcelona processzorok egy hónapon belül elérhetővé válnak. Ezek lesznek az első termékek, melyek az AMD új K10 microarchitektúrájára épülnek, melytől oly sokat vár a cég. Nézzük meg közelebbről azokat a felépítésbeli újdonságokat, melyek e CPU-kban fognak bemutatkozni.


    Bevezető

    Az AMD az új, K10 mikroarchitektúrára épülő négymagos processzorait ígéretei szerint augusztus végén vagy szeptember elején dobja piacra. Az első K10-alapú CPU-k a szerverekbe szánt, Barcelona néven ismert Opteron-ok lesznek. Sajnos az AMD mérnökei a jelenlegi revízióval nem érték el a tömegtermeléshez szükséges mennyiséget a magas órajelű változatokból. Úgy tűnik, hogy ennek útjában az áll, hogy a nagy frekvencián működő 4 mag többet fogyaszt, mint amennyit a platform TDP megenged. Bár minden új stepping-gel és a gyártási technológia finomításaival a fogyasztás csökkent és magasabb órajelek elérhetőek, a cég anyagi helyzete szükségessé teszi, hogy bevezesse a piacra a jelenlegi revíziót, így induláskor az első négymagos modell 2 GHz-en fog működni.

    A negyedik negyedévre ígéri az AMD az Opteron chip-ek órajelének 2,4-2,5 GHz-re emelését, valamint az első asztali K10-alapú CPU-kat:
    - Phenom FX (Agena FX) - 4 mag; 2 MB L3; AM2+ vagy Socket F+ foglalat; 2,2-2,4 GHz-ről indulva
    - Phenom X4 (Agena) - 4 mag; 2 MB L3; AM2+ foglalat; 2,2-2,4 GHz-ről indulva

    2008 elejére jövendöli a cég a ''kisebb'' modelleket:
    - Phenom X2 (Kuma) - 2 mag; 2 MB L3; AM2+ foglalat; 2,2-2,6 GHz-ről indulva
    - Athlon X2 (Rana) - 2 mag; L3 nélkül; AM2+ foglalat; 2,2-2,6 GHz-ről indulva
    - Sempron (Spica) - 1 mag; AM2+ foglalat; 2,2-2,4 GHz-ről indulva

    De mindez még jövő. Most nézzük meg közelebbről a fejlesztéseket. Megpróbálom felsorolni az összes újdonságot és kifejteni, miben jelentenek ezek teljesítménytöbbletet.



    Utasításbetöltés

    A processzor a kód feldolgozását annak L1 I-cache-ből betöltésével és dekódolásával/fordításával kezdi. Az x86 utasítások hossza változó, ez megnehezíti az egyes utasítások kezdetének meghatározását a dekódolás előtt. Annak érdekében, hogy az egyes utasítások határainak meghatározása ne befolyásolja a dekódolás sebességét, az K8/K10 esetén ez még akkor megtörténik, amikor a kód az L1 I-cache-be kerül. Ezt az információt a L1 I-cache speciális mezőiben, az utasításbyte-okkal páruzamosan tárolja (3 bit minden byte mellett). Mivel ez az elődekódolásnak nevezett folyamat még a pipeline előtt, azon kívül történik meg, így a dekódolás sebessége egyenletes és független az utasítások formátumától és hosszától.
    A cache-ból a processzor utasításblokkokat tölt be és kiválasztja belőlük a dekódolandó utasításokat. A K10-ek (aligned) 32 byte-os blokkot olvas(hat)nak be az L1 I-cache-ből órajelenként, míg a K8 és a Core 2 processzorok 16 byte-os blokkokkal dolgoznak. A 16 byte-os órajelenkénti blokkméret a K8-nak és Core2-nek arra elég, hogy 5 byte-os átlagos utasításméret esetén órajelenként 3 utasítást küldhessenek dekódolásra. Az x86 utasítások maximális hossza viszont 16 byte lehet, illetve számos algoritmusban néhány szomszédos utasítás hossza meghaladja az 5 byte-ot. Ezen esetekben órajelenként már 3 utasítást is lehetetlen dekódolásra küldeni.

    Nevezetesen, az SSE2 OP reg,reg (egyszerű utasítások, melyeknek minden forrásadata és célja is register, pl. a MOVAPD XMM0,XMM1) utasítások 4 byte hosszúak. Azonban ha az utasítás egy forrásadatához vagy a céljához memóriacímen keresztül lehet hozzáférni (előbbire példa: MOVAPD XMM0,[EAX+16]), akkor az offset méretétől függően 6-9 byte hosszúak lehetnek. 64 bites módban ha valamely paraméter a +8 (XMM8-XMM15) register egyike, egy további REX prefix byte-tal is számolnunk kell, azaz 7-10 byte-os utasításhosszal. Az SSE1 utasítások egy byte-tal rövidebbek, de csak a vektorjellegű formájuk (amely 4x32 bit adaton dolgozik), skalár formájuk esetében - ez 1x32 bites adatméretet használ - ugyancsak 7-10 byte-os mérettel kell számolnunk.

    A 16 byte-os blokkméret K8 esetében azért nem szűk keresztmetszet, mert a vektorjellegű utasítások dekódolása 3 utasítás/2 órajel sebességre korlátozott (mivel ezek a 128 bites utasítások már itt 2x64 bites feldolgozási egységként jelennek meg, tehát 3 db 128 bites utasítás összesen 6 db 64 bites egységre fordul; mivel azonban a felépítés 3-széles, ezért órajelenként 3 db 64 bites egység, azaz ''1,5 db'' 128 bites x86-utasítás fordítódik). Ellenben a K10 natívan 128 bites feldolgozási egységekre fordítja az utasításokat, tehát a 16 byte-os blokkok ténylegesen szűkös lenne.

    Itt álljunk meg egy pillanatra: a Core 2 processzorok ugyanúgy 16 byte-os utasításblokkokat dolgoznak fel, mint a K8 CPU-k, ez csak akkor teszi lehetővé órajelenkénti 4 utasítás dekódolását, ha az átlagos utasításméret a 4 byte-ot nem lépi túl, ellenkező esetben akár 3 utasítást sem tud továbbküldeni. Van azonban egy belső 4x16=64 byte-os pufferük ebben a lépcsőben, amely az utolsó 4 beolvasott 16 byte-os blokkot tartalmazza. Ebből a pufferből 32 byte/órajel sebességgel olvassa ki az adatokat, tehát azok a rövid ciklusok, melyek beleférnek ebbe a 64 byte-os puffer-be, L1 I-cache hozzáférés nélkül futnaknak, továbbá 1 órajelet megspórolhatnak a ciklus újrakezdésénél. Viszont ezeknek a max. 64 byte-os ciklusoknak is csak akkor hatékony a végrehajtása, ha legfejlebb 18 utasításból állnak, ebből legfejlebb 4 feltételes ugrást tartalmaznak (Egy biztosan van bennük, mert ciklusok, tehát további 3 IF-jellegű elágazást vagy 3-ágú CASE-t tartalmazhatnak), és nincs bennük eljárászárás (RET = return).



    Az elágazáskezelésre vonatkozó fejezet egyelőre kimarad, hamarosan pótlom.

    Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

Új hozzászólás Aktív témák