HyperThreading - Intel Pentium 4 3.06 GHz

A HyperThreading architektúra

A Hyperthreading technológiával rendelkező processzorok úgy jelennek meg a programok számára, mint több logikai egység (=logikai processzor, hívjuk ezt ezentúl LP-nek). Ez úgy történik, hogy a processzor két szimmetrikus állapottároló, a külső egységek számára hozzáférhető egységgel rendelkezik, melyek osztoznak a processzor végrehajtó egységein.


A bal oldalon a klasszikus felépítésű processzorok működése látható, míg a jobb oldalon a Hyperthreading működés (a kép duál processzoros rendszert mutat természetesen).

Az operációs rendszer és a feladatok mint két-két különálló LP-t programozhatnak, majd a processzor végrehajtja a két LP feladatait, ez a programok számára mint valódi párhuzamos végrehajtás fog látszani. Így az Intel szerint jóval hatékonyabban használjuk a CPU-t a megvalósításhoz szükséges tranzisztorszám és magméret mindössze 5%-os növekedése mellett, azaz maga a logikai állapotokat tároló egység (architectural state store) elenyészően kevés helyet foglal a közösen használt erőforrások mellett (cache, végrehajtó egységek, branch predictors, vezérlőlogikák, buszok).

Hirdetés

Minden LP-nek megvan a maga interrupt vezérlője, ami a programvezérlési lehetőségeket nagymértékben tágítja. (Az interrupt ? azaz megszakítás ? vezérlő úgy működik, hogy a processzor külső eszköz által adott megszakításkérés hatására abbahagyja az aktuális programfolyamatot, elkezd egy másik, az adott eszközhöz előzetesen hozzárendelt kódot végrehajtani, majd annak végeztével visszatér az eredeti programrészlethez ott, ahol abbahagyta. Gondoljunk például az egérre, megmozdításakor a processzor abbahagyja a végrehajtást, a mutató koordinátáit frissíti, majd folytatja az eredeti programot...)

A megvalósítás

A megvalósítás során a célok a következők voltak:

  1. Kis magméret-növekedés. Ezt sikerült is megvalósítani, mivel az állapotok tárolása relatíve kevés tranzisztort igényel
  2. Az egyik LP várakozása esetén (cache hibák, rossz jóslás,eredményre várás) a másik gond nélkül folytathassa a műveleteket. Ehhez az szükséges, hogy a belső mag összes tárolóját ne használhassa egyszerre egy szál, ami elérhető tárhasználat-limittel vagy pedig a tárolók megosztásával.
  3. Egy szál esetén a sebesség ugyanolyan gyors legyen, mintha nem lenne megosztva a mag. Ilyenkor viszont egyesíteni kell az erőforrásokat, amik esetleg fel vannak osztva a két szál számára.

Az utóbbi két célhoz az Intel mérnökei a következő felépítést választották:


Az Intel Pentium 4 Xeon processzor belső felépítése

Azaz bufferek, átmeneti tárolók választják el egymástól a fő pipeline egységeket.

Nézzük végig a pipeline blokkjait, azaz hogyan is hajtódik végre egy utasítás a Hyperthreadinggel rendelkező processzorban!

A cikk még nem ért véget, kérlek, lapozz!

  • Kapcsolódó cégek:
  • Intel

Azóta történt

Előzmények