12. Párhuzamosság (szálszinten), HTT Flashcards
Szál
A program legkisebb önállóan végrehajtható része.
A párhuzamosság megvalósítási lehetőségei
Alacsony szinten:
o párhuzamos architektúrák
o megfelelő fordítóprogramok
Magasabb szinten:
o többszálas OS-ek (konkurens, vagy párhuzamos végrehajtás)
A párhuzamosság kihasználásának módja
Implicit (párhuzamosság felderítése és kiaknázása a programozó tudta nélkül) [fordítóval, vagy extra HW-rel]
Explicit (a programozó párhuzamos futtatásra alkalmas kódot ír)
Párhuzamos szálak származtatása
- Különböző alkalmazásokból (multiprogramozás)
2. Ugyanabból az alkalmazásból (multithreading, vagy multitasking)
Többszálúság (multithreading) formái
- Szoftveres: többszálú alkalmazások, OS-ek futtatása 1 db. CPU-n, 1 db. szálon (időosztásosan)
- Hardveres: többszálú alkalmazások, OS-ek futtatása 1 db. CPU-n, több szálon: (pl.: Intel - HT)
SMP (Symmetric Multiprocessing)
kép28
SMT (Simultaneous Multithreading)
kép29
Szálszintű párhuzamosság
Két vagy több szál fut „egyszerre”. Hogyan vált a rendszer a szálak között?
Finoman szemcsézett: minden órajelciklusban
o függőségek fellépese esetén megjelenő kihasználatlan idők felhasználása!
Durván szemcsézett: esemény okozza (SOEMT: Switch On Event MultiThreading)
o 1 – 2 órajelnyi lemaradás
SMT: egyszerre futtat többet. Hardveres feltételek:
- Sok VE. (pl. magonként 6 db.)
- Annyi PC (Program Counter), ahány szál
- Annyi regiszter, ahány szál.
(ezek eredményeképpen nem vesz időt igénybe a szálak közötti váltás, hiszen mindegyiknek megvan a saját programszámlálója, gyorsítótára, regisztere stb.)
Hyper Threading Technology (az SMT egyik megvalósítása) jellemzői
Támogatja a soron kívüli végrehajtást
Az OS, illetve az alkalmazások felé 2 db. logikai CPU-nak látszik
A CPU 1, 2, vagy több architektúrális állapotot tárol
Mindössze 5 - 10%-os hardverkomplexitás növelést igényel, miközben akár 20-30%-os
teljesítménynövekedés is elérhető.
3 üzemmód, attól függően, hogy melyik logikai CPU aktív: o ST0 (Single Task 0) o ST1 (Single Task 1) o MT (Multi Task)
Az üzemmódok közötti váltás a HALT utasítással történik, amely megszakítja a CPU futását és energiatakarékos módba helyezi azt.
Hyper Threading Technology (az SMT egyik megvalósítása) megvalósítási céljai
Kis magméret növekedés, de nagyobb teljesítmény
Egyik szál várakoztatása esetén a másik szál gond nélkül folytathassa a végrehajtást
Egy szál futtatása esetén a sebesség ne csökkenjen (erőforrásegyesítés)
o ennek eléréséhez a fő futószalag fokozatokat átmeneti pufferek választják el egymástól.
Hyper Threading Technology (az SMT egyik megvalósítása) logikai modellje
kép30