7. Szál szinten párhuzamos architektúrák Flashcards

1
Q

A szál

A

A szál a program legkisebb önállóan végrehajtható része -> párhuzamosan futtatható. A szálak kihasználásához az OS támogatására is szükség van.
A párhuzamosság lehet:
- implicit: a programozó szekvenciális programot ír, a hardver és a szoftver párhuzamosítja a kódot.
- explicit: a programozó párhuzamos programot ír

Egy szálban nincs párhuzamosság, ezért a teljesítmény növeléséhez több szál létrehozása szükséges.

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

Szálak származtatása

A

Lehet párhuzamos szálakat származtatni:
- Különböző alkalmazásokból (multiprogramozás).
- Ugyanabból az alkalmazásból:
– Multitasking
– Multithreading

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

Többszálúság csoportosítása

A
  • Szoftveres többszálóság: többszálú alkalmazás futtatása egyszálú CPU-n, például időosztásos technikával
  • Hardveres többszálúság: többszálú alkalmazás futtatása többszálú CPU-n

Többszálú CPU típusai:
- SMP – Symmetric multiprocessing: ugyanazon lapkán kettő vagy több magú processzor párhuzamosan futtatja a szálakat
(KÉP JEGYZETBEN)
- SMT – Simultaneous multithreading: egy SMT mag képes két szálat párhuzamosan futtatni. Körülbelül +5% komplexitás növekedéssel akár 30%-os teljesítmény növekedés érhető el segítségével
(KÉP JEGYZETBEN)

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

OS kezelés

A

A modern operációs rendszerek minden folyamatra külön lap táblát tartanak nyilván, ez a TLB (Translation Lookaside Buffer). Ezekben tárolódik az adott folyamat kontextusa, ami a memóriában vagy a háttértáron tárolódik.

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

Szál szintű párhuzamosság típusai

A
  • Finoman szemcsézett
    A CPU kettő vagy több szálat futtat és órajelenként vált a szálak között. A gyakori váltások miatt az ilyen processzorok több regisztert tartalmaznak, így azokban több szál adatai is elférnek
    Például kétszálú CPU esetén mindkét szál kontextusát tároljuk a regiszterekben és egy kontextus kapcsoló segítségével történik a váltás. Így nincs késleltetés a váltások között. A teljesítmény növekszik, mivel, ha az egyik szál függőségre vár, az nem blokkolja a másik szálat. Akár 20%-os teljesítmény növekedést is eredményezhet.
  • Eseményvezérelt (SoEMT – Switch on Event Multithreading)
    Amennyiben az egyik szál futása megakad, akkor vált a másik szálra. A szál megakadását érzékelni kell, ami általában 1-2 óraciklus időigényű.
  • SMT (Simultaneous multithreading)
    gyakorlati megvalósítása az Intel Hyper Threading. Lényege, hogy az összes szál futtatása párhuzamosan történik. Az SMT-t támogató processzorok elsősorban szuperskalár architektúrák. A párhuzamosság megvalósításához az alábbi hardveres követelményeknek kell megfelelniük:
    – Számos erőforrást meg kell többszörözni. Például szálankénti program counter, regiszter tároló.
    – Az erőforrásokat meg kell tudni osztani a szálak között. Szükség esetén egyesíteni is, hogy egy szál megakadása esetén az aktív szál a teljes erőforrást tudja használni.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Intel Hyper Threading

A

Az Intel Hyper Threading technológia egy két szálas SMT architektúra. Először a Northwood alapú Pentium 4-es processzorokba került be. A két szál utasításait egyszerre hajtja végre sorrenden kívüli kiküldéssel.
Egy mag az OS számára két külön logikai magnak látszódik, ezért úgy ütemezi az utasításokat, mintha két processzoros rendszeren futna.

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

Hyper Threading üzemmódok

A
  • ST (single task): Egy szál végrehajtása történik amellett, hogy a megosztott erőforrások egyesítésre kerülnek.
    Két állapot lehet, attól függően, hogy melyik logikai CPU aktív: ST0 vagy ST1.
  • MT (multi task): Több szál végrehajtása történik párhuzamosan.

Váltás
A processzor először MT módban indul. Ha az egyik szál megakad, ST módba vált a processzor. A függőség megszűnésével a CPU visszakerül MT ütemmódba. Az üzemmódok közötti váltás a HALT utasítás segítségével történik, ami megszakítja a CPU futását és energiatakarékos állapotba helyezi. Ezt csak az OS, vagy más, alacsony szintű alkalmazás adhatja ki.

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

Működési vázlat

A

A címfordítási segédbuffer (ITLB) az L2 cache-ből kapja az utasításokat, majd egy elválasztó pufferen keresztül kerülnek a futószalagon kívüli dekóderbe. A dekóder SoEMT szerint dekódol. Egy tároló pufferen keresztül töltődik fel az Execution Trace Cache (L1) a dekódolt utasításokkal. Újabb elválasztó pufferen keresztül kerülnek az utasítások a regiszterátnevező és hozzárendelő egységbe, mely szétválasztja őket külön pufferekbe. Az ütemező segítségével biztosítja ezek tárolását a várakoztató állomásba, ahova az adat az L1 data cache-ből kerül az utasításhoz. A várakoztató állomásból sorrenden kívüli kiküldés történik a végrehajtó egységek felé. Végrehajtás után az eredmények a visszaíró regiszterbe kerülnek, amiből a RLU biztosítja a szekvenciális konzisztencia visszaállítását.
(KÉP JEGYZETBEN)

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

SMT megvalósítási céljai

A

Legfontosabb követelmények, amiket az SMT-vel szemben támasztottak:
- Kis magméret növekedés
- Egy szál várakozása esetén a másik szál gond nélkül futhasson, folytathassa a műveletek végrehajtását. Ehhez plusz tárolókat vezettek be.
- Egy szál futása esetén a végrehajtás ugyanolyan gyors legyen, mint egy egyszálas CPU-n.
A technológia nagyon jól bevált, hatékony, a mai processzorokban az AMD és az Intel is gyakran használja. Főleg szerverek esetén biztonsági kérdések merülnek fel. Elképzelhető, hogy kártékony módon használható fel a szálkezelés.

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