3. Futószalag architektúrák Flashcards

1
Q

Futószalag (pipeline) végrehajtás

A

A futószalag (pipeline) végrehajtás lényege, hogy az utasítást több részre bontjuk (általában fetch, decode, execute, writeback), majd ezeket a részeket egymással párhuzamosan hajtjuk végre. Ez az időbeli párhuzamosság. Az utasítások n részre osztásával elméletileg a sebesség n-szeresére növekszik, ha minden rész azonos idő alatt hajtódik végre.
A végrehajtást gátolják a függőségek (adat, vezérlés, erőforrás), ezért a valóságban nem mindig arányos a fokozatok számának növelésével járó gyorsulás növekedés.
Maximális hatékonyság körülbelül 15-30 fokozatú futószalag esetén érhető el. Általános célú alkalmazásoknál efölött a függőségek miatt már csökken a teljesítmény. Speciális feladatok esetén, ahol kevés függőség van használható superpipeline CPU, ami akár 200 fokozatú is lehet.

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

Futószalag előfeltételei

A

2 fokozatú ideális futószalag esetén:
1. A számítógép 2 db egymástól teljesen független végrehajtó egységgel rendelkezik
2. Az egyik fokozat kimenete a másik fokozat bemenete kell legyen (időbeli párhuzamosság)
3. Mindkét fokozat végrehajtási ideje azonos
4. A fokozatok órajelre szinkronizáltak: órajelre kapják az inputot és egyetlen óraciklus alatt elvégzik a feladatukat
Ha ezek teljesülnek áll elő, hogy
t = T/2
ahol T a szekvenciális, t a futószalagos végrehajtási idő.

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

Függőségek kezelése

A
  • Operandus előrehozással
    • minden architektúránál használják
  • Újrafeldolgozással
    • leggyakrabban az Execute fokozat egymás utáni többszöri végrehajtását jelenti: például a szorzás összeadások sorozata, akkor ne töltsük be minden iterációban az eredményt, hanem használjuk újra fel
    • a futószalag feldolgozást lassítja, de összességében jobb teljesítmény biztosít
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Futószalag típusok

A
  1. Előlehívás (overlapping)
  2. Vektor CPU
  3. Teljes pipeline
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

(Futószalag típus)
Előlehívás

A

A visszaírással egyidőben történik a következő utasítás lehívása: (KÉP JEGYZETBEN)

Előnye:
- 1 óraciklust nyerünk -> 4 fokozat esetén 25%-kal nő a teljesítmény
- nincs függőség, mivel a forrás operandus beolvasásakor már megvan az előző utasítás eredménye
Hátrány:
- nem túl nagy gyorsítás

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

(Futószalag típus)
Vektor CPU

A

Csak az Execute fokozat működik futószalagszerűen, a végrehajtási fázisok kerültek átfedésbe.

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

(Futószalag típus)
Teljes pipeline

A

A futószalagos feldolgozás kiterjesztése a teljes folyamatra:
(KÉP JEGYZETBEN)

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

Logikai futószalagok

A

Az eltérő utasítások eltérő felépítésű futószalagokat igényelnek, ezért egy processzor több futószalagot is tartalmaz. A cél a funkcionális kialakítás. Példák különböző funkciókat ellátó futószalagokra:
- aritmetikai (FX, FP): fokozatai tipikusan F, DS/O, E, W/B
– egyszerű: +, -, léptetés
– összetett: *, /
- ugró (branch): fokozatai F, E
- LOAD/STORE

Az utasításokat két szinten értelmezhetjük:
Első szint: Fetch
Második szint: mikroutasítások szintjén
MAR -> PC – innen tudjuk honnan kell lehívni a következő utasítást
MDR -> [MAR] – MAR által mutatott címen lévő értéket töltjük be
IR -> MDR
PC -> PC+1

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

Fizikai megvalósítás

A

Alkalmazásuk alapján megkülönböztetünk:
- univerzális
- dedikált futószalagokat.
Az univerzális minden művelet elvégzésére alkalmas. De sok tranzisztorra van szükség hozzá, ezért a kialakítása bonyolult és drága, a végrehajtás lassú.
Dedikált futószalagokat szoktak a processzorokban alkalmazni. Egy dedikált futószalag egy adott műveletre specializált. Kevesebb logikai kaput igényelnek, így gyorsul a végrehajtás. Például Branch, LOAD/STORE, FX, FP futószalag.
A futószalag sebességét a leglassabb fokozat sebessége határozza meg, tehát tervezési cél a megközelítőleg azonos sebességű fokozatok létrehozása.

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

(Fizikai megvalósítás)
Fokozatok kialakítása

A

Minden fokozat előtt vannak elválasztó puffer regiszterek. Ezek a felhasználó számára nem látható regiszterek, az adat először ezekbe, majd innen a végrehajtó egységbe töltődik. Az utasítás elvégzése után a kimenet szintén puffer regiszterekbe kerül. Mivel a gyakorlatban egy fokozat nem mindig végez egy óraciklus alatt és addig nem töltődhet be adat míg nem végez a végrehajtó egység, ezért az adat ezekben a puffer regiszterekben tárolódik így orvosolva az eltérő végrehajtási időket.
(KÉP JEGYZETBEN)

Térbeli párhuzamosítás során, mikor egymás mellé több végrehajtó egységet helyeztek vezérlőjelek segítségével határozzák meg, hogy a puffer regiszterekből melyikbe töltődjön az adat:
(KÉP JEGYZETBEN)

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

RISC és CISC architektúrák

A

Az utasításkészlet (tervezési stratégia) alapján kétféle architektúrát különböztetünk meg:
- RISC (Reduced Instruction Set Computing): csökkentett utasításkészletű architektúra
– például ARM (Advanced RISC Machine) processzorok
- CISC (Complex Instruction Set Computing): bővített utasításkészletű architektúra
– például x86 processzorok
Napjainkban mindkettő használatban van.

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

RISC főbb tulajdonságai, előnye, hátránya

A

Főbb tulajdonságai:
* 50-150 utasítással rendelkezik
* Általában 3 operandusos utasítások -> az eredmény nem írja felül a bemeneti regisztert
* Minden utasítás hossza egyforma (pl 64 bit, 128 bit)
* Utasítás végrehajtás általában egy óraciklust vesz igénybe
* Nincs olyan utasítás, ami a LOAD/STORE-t aritmetikával kombinálja (nem lehet egyszerre betölteni az adatot és végrehajtani műveletet)
* Minden műveletvégző utasítás kizárólag regisztereket használ
* Memória és cache elérése csak LOAD/STORE utasításokkal történhet
* Nagyszámú regiszterkészlet
* Bonyolultabb compiler a kevés utasítás miatt
* Általában huzalozott az utasítás dekódolás

Előnye: CISC architektúrákhoz képest gyorsabb végrehajtás
Hátrány: bonyolultabb feladatokat instrukció szekvenciákkal kell megoldani. Ez növelheti a program méretét.

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

CISC tulajdonságai, előnye, hátránya

A

Például Intel 80386
Főbb tulajdonságai:
* Több száz utasítás -> nagy belső mikroprogramtárat igényel
* Két operandusos utasítások -> az első operandus felülíródik az eredménnyel. Az első operandus nem lehet memória vagy cache cím, mert ez nagyon lelassítaná a működést
* Változó méretű utasítások -> a dekódolónak azonosítani is kell az utasítás végét. Ez a utasítás határra illesztés, ami plusz hardvert és időt igényel
* Utasítások feldolgozása több ciklusidő lehet
* Egy utasítás több elemi műveletet is végre tud hajtani
* Sokféle címzési mód és utasítás
* Közvetlen memória elérés lehetséges -> a második operandus lehet memória vagy cache cím is
* Egyszerűbb a gépi kódú programozás a sokféle utasítás miatt (egyszerűbb fordítóprogramok)
* Mivel az utasítások folyamatosan bővültek, így a régebbi architektúrákra írt programok kompatibilisek maradtak
* Futószalag fokozatok közt sebesség különbség lehet -> feloldása Interlock funkcióval
* Általában +2 fokozat a RISC-hez képest: AG (címszámítás) és cache elérés

Előny: egyszerűbb compilerek és kompatibilitás
Hátrány: bonyolultabb, lassabb végrehajtás

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

Hibrid architektúrák

A

A CISC CPU-k az idő 80%-ában az utasítások körülbelül 20%-át használja. Ezért a feldolgozás gyorsítása érdekében kialakítottak a CISC architektúrán belül egy RISC magot. Ez a megoldás minden mai Core i architektúrában megjelenik. Például az x86-os architektúra ISA-t (Instruction Set Architecture) használ.
A mai ARM processzorok sem tisztán RISC architektúrák, hanem CISC jellegű utasításokkal vannak bővítve. Például az ARM Thumb, ami egy tömörített utasításkészlet.

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

Hibrid architektúrák következményei

A
  • Jelentősen felgyorsult az utasítás lehívás és az operandus betöltés
  • Sebességolló jelenség: amíg a processzorok feldolgozási sebessége nőtt, addig a memória sebessége kevésbé -> Cache bevezetése. Az óriási sebességkülönbséget próbálták kiküszöbölni a gyakran használt operandusok cache-be való töltésével.
  • Maximális végrehajtási sebesség: 1 utasítás / ciklus. További növekedés kibocsátási párhuzamossággal vagy utasításon belüli párhuzamossággal (multimédia) lehetséges.
  • A vezérlés átadási utasítások kifinomult feldolgozási technikája szükséges a függőségek miatt
  • Az elágazások kezelése bonyolódik
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

(Hibrid architektúrák)
Elágazások kezelése

A

Korai RISC gépek
* Feltétlen elágazásnál ugrási buborék használata, ami blokkolja a következő utasítás lehívását n-1 óraciklusig
* Feltételes elágazásnál minimum +2 óraciklus (feltétel kiértékelés és ugrási címszámítás)
Korai CISC gépek
Itt nem alkalmazták az ugrási buborékot. Helyette a dekódoló fokozatba építették a címszámító és a
logikai komparáló egységet (feltétel kiértékelés), így a dekódolási ciklus végére előáll az ugrási cím.
Későbbi CISC architektúrák (futószalag és első generációs szuperskalár architektúrák)
Például Intel 80486
Megjelent a fix előrejelzés, például mindig ugrik. Ezzel a megoldással az ugrási cím előre kiszámításra
kerül és megkezdődik az ugrási címen lévő utasítások lehívása. Ha mégse kell ugrani, az utasítások
visszatörlésre kerülnek és az eredeti helyen folytatódik a végrehajtás. Például Intel 80486.
Előnye, hogy a hivatkozási feltétel ismerté válásáig kiküszöbölte a kibocsátási blokkolást és növekedett
a teljesítmény.
Korlátja, hogy ha nagy látenciával rendelkező utasítást kellett végrehajtani az ugrási feltételben, az
blokkolta a kibocsátást.