HyperThreading

A Wikipédiából, a szabad enciklopédiából
A Hyper-threading technológia sémája

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 | forrásszöveg szerkesztése]

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ácis 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 | forrásszöveg szerkesztése]

A Delencor 1982-ben mutatott be többszálú működést a HEP-ben (Heterogeneus 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 proceszorba. 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 | forrásszöveg szerkesztése]

Hátrányai[szerkesztés | forrásszöveg szerkesztése]

Biztonság[szerkesztés | forrásszöveg szerkesztése]

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.[1] 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.[1]

Lásd még[szerkesztés | forrásszöveg szerkesztése]

Fordítás[szerkesztés | forrásszöveg szerkesztése]

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.

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]