HyperThreading
A Hyper-threading (hivatalosan Hyper-Threading technológia, röviden HT vagy HTT) az Intel védett időosztásos szálkezelő megoldása, amelyet a számítások párhuzamosítására használnak.
Részletes leírás
[szerkesztés]A Hyper-threading a processzor bizonyos részeinek megduplázásával működik – azoknak a részeknek, amelyek a processzor állapotát tartalmazzák – ugyanakkor a fő számítási erőforrásokból egy marad. Így egy hyper-threadinggel ellátott processzor egy extra "logikai" processzort tartalmaz. Azok az operációs rendszerek, amelyek nincsenek felkészítve a hyper-threadingre, két különálló processzorként látják. Ez lehetővé teszi, hogy az operációs rendszer két szálat ütemezzen be futtatásra. A processzor átállhat a másik szál végrehajtására, ha az egyik szál végrehajtása valamilyen okból áll. Tipikus ilyen okok lehetnek a gyorsítótár-tévesztés, hibás előrejelzések vagy adatfüggőség.
Ez a technológia az operációs rendszer és a felhasználói programok számára transzparens. A felhasználásához az operációs rendszernek csak több processzort kell tudnia kezelni, mivel a logikai processzor fizikai processzornak látszik.
Lehetséges az operációs rendszer viselkedését optimalizálni hyper-threading processzorokra. Vegyünk például egy két processzorral működő rendszert, amelyben mindkettő processzor képes hyper-threading működésre, így összesen 4 processzornak látszanak az operációs rendszer felé. Amennyiben az operációs rendszer nincs hyper-threading működésre optimalizálva, egyenlőnek fogja venni mind a négy logikai processzort. Ebben az esetben, ha egy időpontban csak két szál áll futásra készen, lehetséges, hogy az operációs rendszer ugyanazon fizikai processzor két logikai processzorára ütemezi azokat. Így a második fizikai processzor kihasználatlan marad, míg az első nagyon leterhelt és rosszabb teljesítményt ad, mint megfelelő kiosztás esetén. Ez a probléma elkerülhető úgy, ha az operációs rendszer a logikai processzorokat eltérően kezeli a fizikai processzoroktól. Bizonyos értelemben ezek a változtatások a NUMA rendszerek támogatásához is szükségesek.
Története
[szerkesztés]A Delencor 1982-ben mutatott be többszálú működést a HEP-ben (Heterogeneous Element Processor – Heterogén Elemekből épülő Processzor). A HEP feldolgozósora nem tudta kezelni két különböző szál utasításait. Egyszerre csak egy szál egy utasítása állt feldolgozás alatt.
Az Intel 2002-ben építette be a hyper-threading rendszert az x86 architektúrához tartozó Xeon processzorba. Ugyanebben az évben került be a 3,06 GHz-es Northwood-alapú Pentium 4-be és mindvégig megmaradt a Pentium 4 HT, Pentium 4 Extreme Edition és Pentium Extreme Edition processzorokban. Az Intel előző processzor generációi nem tartalmaznak hyper-threadinget.
Teljesítménye
[szerkesztés]Hátrányai
[szerkesztés]Az első hyper-threading technológiát alkalmazó processzorok megjelenése idején a legtöbb operációs rendszer még nem volt felkészítve a hyper-threading technológia használatára ill. nem volt erre optimalizálva. Ilyenek voltak pl. a Windows 2000 és a 2.4 előtti Linuxok.[1]
Biztonság
[szerkesztés]2005 májusában Colin Percival bemutatta, hogy Pentium 4 processzoron egy rosszindulatú szál időzítéses támadást hajthat végre és ezáltal egy másik szál memóriahozzáférés-mintáit analizálhatja, amennyiben ugyanazt a gyorsítótárat használják. Ez például kriptográfiai információkhoz biztosíthat illetéktelen hozzáférést.[2] A lehetséges megoldás erre az, ha a processzor változtat a gyorsítótár kiürítésének stratégiáján, illetve ha az operációs rendszer nem enged ugyanazon a fizikai processzormagon különböző privilégiumú szálakat végrehajtani.[2]
Kapcsolódó szócikkek
[szerkesztés]- sorrenden kívüli végrehajtás (out-of-order execution)
Fordítás
[szerkesztés]Ez a szócikk részben vagy egészben a HyperThreading című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Jegyzetek
[szerkesztés]- ↑ Hyper-Threading Technology — Operating systems that include optimizations for Hyper-Threading Technology. Intel.com, 2011. szeptember 19. (Hozzáférés: 2012. február 29.)
- ↑ a b Cache Missing for Fun and Profit