6. Futószalag (pipeline) elvű utasítás végrehajtás Flashcards

1
Q

Mi a jó ég ez? (Futószalagos végrehajtás)

A

Az utasítás végrehajtásnak vannak részei. Nézzük például a klasszikus RISC futószalag által tartalmazott lépéseket (fokozatokat):

  1. Instruction fetch (IF)
  2. Instruction decode and register fetch (ID)
  3. Execute (E)
  4. Memory access (M)
  5. Register write back (W/B)

Futószalag nélkül, jön egy utasítás, ami végigmegy ezeken és csak ez után jöhet a következő utasítás. Ezzel az a gond, hogy amíg az utasítás pl. az ID fázisban van, addig a többi fázis áramköre kihasználatlan.

Futószalag elvet alkalmazva, az első utasítás ID-jénél már rögtön ráengedjük a IF-re a következő utasítást, így nem lesz kihasználatlan kapacitásunk. Folyamatosan így ellátva az áramköröket munkával egyszerre annyi utasítást tudunk végrehajtani, ahány lépésből áll a mi architektúránk utasítás feldolgozása.

Ennek fényében elvben annyiszor gyorsabb a feldolgozás, ahány fokozatos a futószalag. Gyakorlatban azért ez nem ilyen egyszerű a különböző függőségek miatt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Két fokozatú (ideális) futószalag jellemzői

A

 A CPU 2 darab egymástól független hardver egységgel kell rendelkezzen (1 egység – 1 fokozat végrehajtása)
 Mindkét fokozat használata ugyanannyi időt vesz igénybe
 Az egyik fokozat kimenete a másik fokozat bemenete
 A fokozatok szinkronizáltan, órajelre működnek
 Mindkét fokozat órajelre fogadja az inputot és egyetlen óraciklus alatt elvégzi a rá bízott
műveletet (időnkénti újrafeldolgozás)
 Órajelenként 2 utasítást tud értelmezni összesen.

Célok:
 fogyasztás csökkentése
 magas frekvencia (futószalagszámnövelés)

Példák ilyen CPU-k ra:
 Intel 80486: 3
 Intel P5 architektúra (Pentium): 5
 Intel P6 architektúra (Pentium III): 11-17
 Netburst architektúra: 20-31
 Core 2: 14
 Core i: 16-20
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Újrafeldolgozás (operandus előlehívás)

A

Lényege, hogy megakadályozzuk azt, hogy bizonyos
műveleteknél (főként fixpontos szorzásnál és osztásnál)
mindig végigjátsszuk a 4 futószalag fokozatot. Ilyenkor ugyanis
minden részeredményt kiírunk a regiszterekbe. Ehelyett
visszavezetjük az E kimenetét az E bemenetére, és így
számolunk tovább. Pl: Egy ciklusban mindig hozzáadunk egy számhoz egy másikat » E-ben az összeadás van mint ALU művelet » az eredmény-t visszavezetjük az E bemenetére.
 Csökken a teljesítmény az újrafeldolgozás alkalmazása miatt, de akkor is kell
 FX, FP futószalagok használják
kép10

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Futószalag fajták

A
  1. Overlapping (átfedés)
  2. Vektor CPU-kban
  3. Teljes futószalag elvű feldolgozás
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Overlapping (átfedés)

A

Lényege, hogy az egyik utasítás WB-jét és a következő utasítás F-ét párhuzamosan csinálom, így megtakarítok egy órajel ciklust.
kép11

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vektor CPU-kban

A

Csak a végrehajtó fokozatok működnek futószalag szerűen, így ezek átfedésben tudnak dolgozni. Nagyobb számítási műveleteknél hasznos.
kép12

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Teljes futószalag elvű feldolgozás

A

Minden órajelciklusban új utasítás futószalagra helyezése.

kép13

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

A futószalag logikai felépítése

A

Cél a funkcionális kialakítás:
 univerzális futószalagok (FX, FP, L/S)
 dedikált futószalagok: egyféle feladatra (egyszerű, összetett)
 aritmetikai futószalagok (F| D/SO | E | W/B)
 ugrási futószalagok (F | E)
Egy futószalagnak két szintje van:
1. Funkcionális kialakítás
2. Elemi műveletek specifikációja (ez szinttől függően különböző mélységig lehet részletezve)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Futószalag fizikai implementációk

A

A futószalag fokozatok tulajdonképpen egymástól független VE-k. Vannak elválasztó regiszterek, melyek rejtett regiszterek (a programozó által nem címezhetőek). Ezek választják el egymástól a VE- ket.
 ’60-as, ’80-as évek: kép15
 II. generációs szuperskalár:

Cél:
 a fokozatok végrehajtási idejének csökkentése.
 több, dedikált, vagyis specializált, egymással párhuzamosan működő futószalag kialakítása.
 Léteznek univerzális futószalagok is, melyekkel a specializált hardver mennyiségének minimalizálását próbálják elérni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Futószalagos CPU-k utasításvégrehajtásának hatásai, következményei

A

 További növelés:
o utasításon belüli párhuzamosítás (MMX, SSE)
o kibocsátási párhuzamosság
 Feldolgozás következményei:
o a memóriák gyorsaságban nem tudták tartani az iramot a CPU-kkal:
 Megoldás: Gyorsítótárak + Elágazáskezelés

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Elágazáskezelés

A

 feltétlen elágazás esetén ugrási buborék (n-1)
 feltételes elágazás esetén +2 ciklus (kiértékelés, ugráscím kiszámitása)
o kezelés: RISC
 késleltetett ugrás
 korai CISC: dekódoló fokozatban +1 CMP egység, +1 címszámító egység
 későbbi CISC: fix előrejelzés, 80%-ban ugrás fog bekövetkezni
- pl.: 1990 – Intel 80486, mindig ugrik elágazásnál („Branch Prediction = Big Latency”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly