online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

 

Online dokumentumok - kep
  

Utasítas varakoztatas II. (utasítas varakoztató pufferek megvalósítasi alternatívai, operandus lehívasi politikak, értékelésük)



Fájl küldése e-mail



egyéb tételek

 
 
 

Utasítás várakoztatás II. (utasítás várakoztató pufferek megvalósítási alternatívái, operandus lehívási politikák, értékelésük)


Utasítás várakoztató pufferek megvalósításai:


                     858g64i                      858g64i       Várakoztató pufferek megvalósítása





A várakoztató                      858g64i A várakoztató                     858g64i   Ki és bemeneti

pufferek típusa pufferek kapacitása kapuk száma



                     858g64i Csak várakoztató állomás                     858g64i                   Kombinált pufferek

                     858g64i                      858g64i                      858g64i                      858g64i       várakoztatásra utasítás átrendezésre és

                     858g64i                      858g64i                      858g64i                      858g64i             regiszter átnevezésre is szolgál


Egyedi VÁ            Csoportos VÁ Központi VÁ


Várakozó állomás (Csak várakoztató pufferek):

Egyedi: minden egyes végrehajtó egységnek saját puffere van

Példa: AMD K5, PowerPC 620 (ábra – 7.102)

Ráfordítás: nagy

Teljesítmény: az egyik pufferböl a másikba nem lehet utasításokat áttenni

Kapacitás: 2-4 hely

Csoport: az azonos típusú (pl. FX) VE-ek egy közös pufferböl táplálkoznak. Ehhez nyilván nagyobb pufferre van szükség. Ez a tendencia.



Példa: Pentium 4, Athlon, Opteron,

R10000 (ábra – 7.100): két buszon keresztül történik az utasítások kiküldése. Az egyik a fixpontoshoz, a másik a FP és gyökvonáshoz. Az FP osztás 20-40 ciklusig tart. Ez egy buszról táplálva, nem hoz érdemi teljesítménycsökkenést, mivel a FP utasítások aránya 10% még a müszaki programokban is.

Teljesítmény: bármelyik VE-be kerülhetnek a várakozó utasítások

Kapacitás: 8-20

Központi: Minden VE egyetlen pufferböl táplálkozik, ezért nagy kapacitásúra van szükség.

Példa: Pentium Pro, P2, P3 (ábra 7.105)

Pentium Pro: egy 20 elemü központi állomás szolgálja ki mind a 10 VE-t. Egy buszon keresztül lassú egységeket látnak el: +/ FP/*.

Ráfordítás: a pufferméret csökkenthetö az egyedihez képest. Nagyobb ráfordítású, de nem gyorsabb, mint a csoport típusú.

Teljesítmény: az FP VE nem tudja végrehajtani az FX-et, és fordítva

Kapacitás: 20 fölött


Kombinált pufferek

A várakoztatáson kívül egyéb funkciókat is ellát:

  • Várakoztató és átnevezö
  • Várakoztató és átrendezö
  • Várakoztató, átrendezö és átnevezö

Operandusz lehívási politikák:


Kibocsátáshoz kötött operandus lehívás:

Azt jelenti, hogy a processzor az operandusokat az utasítások kibocsátásakor hívja le, vagyis akkor, amikor azok a dekódolás után bekerülnek a várakoztató pufferekbe. Ilyenkor ezek a forrás operandusok értékeit tárolják elsösorban. A processzor a kibocsátás során a forrás operandusok regisztereinek azonosítóját a regisztertárba továbbítja a hivatkozott operandusok behívása céljából. A várakozó állomásba bekerül a dekódolt müveleti kód, a célregiszterek azonosítói, valamint a behívott operandus értékek. A behívás során a processzornak ellenöriznie kell, hogy a hivatkozott regiszter értékek rendelkezésre állnak-e. Ha nem, akkor az azt jelenti, hogy egy már végrehajtás alatt álló utasítás célregisztere a hivatkozott forrásregiszter, vagyis a két utasítás között RAW adatfüggöség van (ahogy már korábban említettem, regiszterátnevezés és spekulatív elágazás kezelés mellett a processzornak a várakoztató pufferekben csupán a RAW függöségeket kell vizsgálnia). Az operandusok rendelkezésre állásának eldöntéséhez érvényességi biteket alkalmaznak (scoreboarding). Ennek során a regisztertárban minden regiszterhez egy további bitet rendelünk, mely érvényességi bitként funkcionál (V bit – valid bit). Egy utasítás kibocsátása során annak célregiszterének érvényességi bitjét a processzor mindig 0-ba állítja mindaddig, amíg az utasítás végrehajtása be nem fejezödik és az eredmény vissza nem íródik a regisztertárba. A várakozó állomásokban is elhelyeznek a forrásoperandusok mellé egy-egy ilyen érvényességi bitet. Amikor a processzor lehívja a forrás operandusok értékeit, ellenörzi, hogy a hozzájuk tartozó érvényességi bit a regisztertárban be van-e állítva. Ha igen, akkor a kiolvasott értéket beteszi a pufferben a megfelelö helyre és 1-es ír az operandus mellé érvényességi bitnek. Amennyiben nincs beállítva ez a bit, akkor a hivatkozott forrásregiszter azonosítóját írja be a pufferbe és mellette 0-s érvényességi bittel jelzi, hogy az adott érték egy regiszter azonosító és nem az operandus értéke.



Miután a vezérlöegység elvégezte a rá bízott müveletet, az elöállított eredménnyel frissíteni kell mind a regisztertárat, mind a várakoztató puffereket. Ekkor a célregiszter azonosítóját, mint asszociatív címet felhasználva elöbb kikeresi a regisztertár megfelelö helyét, majd a várakoztató pufferekben is frissíti azon forrás regiszter értékeket, ahol az érvényességi bit 0 és mellette a regiszter azonosító a most elöállított eredmény célregiszter azonosítójával egyezik meg.

Itt fontos megjegyezni, hogy a várakoztató pufferek frissítése globális müvelet, vagyis minden olyan várakoztató pufferbe továbbítani kell az eredményt, amelyben a létrehozott eredményre várakozó utasítások lehetnek.





Kiküldéshez kötött operandus lehívás:


Azt jelenti, hogy a processzor a várakoztató pufferekbe a kibocsátás során csak a forrás regiszterek azonosítóit teszi be és a konkrét értékeket csak akkor hívja le, amikor az utasításokat a vezérlöegység felé kiküldi. Kiküldés során fordul tehát csak a regisztertárhoz, így csak a regisztertárban szükséges érvényességi biteket eltárolni. Amennyiben mindkét forrás operandus érvényességi bitje 1 a regisztertárban, úgy az adott utasítás kiküldhetö. Amennyiben bármelyik is 0, függöség lépett fel, így az utasítás nem küldhetö ki. Ennek a megvalósításnak a másik következménye, hogy az eredmény elöállásakor nincs szükség a várakoztató pufferek aktualizálására sem.



Értékelésük:

- A kiküldéshez kötött kibocsátás elönyösebb az idökritikus dekódolás/kibocsátási fázis szempontjából, mivel nem tartalmaz regiszterolvasást

- A kiküldéshez kötött lehívás esetén a VP-ek sokkal kisebb méretüek lehetnek, mivel a regiszterazonosítók lényegesen kevesebb helyet igényelnek

- A hivatkozott forrásoperandusok rendelkezésre állásának ellenörzése tekintetében a kibocsátáshoz kötött elönyösebb, mivel a VP-ben lévö érvényességi bitek értékeinek ellenörzése sokkal egyszerübb feladat,

- A kimenö kapuk számát tekintve bonyolultabb az összehasonlítás, általában a kiküldéshez kötött operandus behívási politika igényel kevesebb olvasási kaput


Találat: 24