Hirdetés

Új hozzászólás Aktív témák

  • Kansas

    addikt

    válasz Geri Bátyó #111 üzenetére

    Igen, közben kicsit utána olvastam az Intelnél(csak már nem fértem bele a szerkesztési időkeretbe), és a fent említett állapottároló, amiből thread-enként van egy-egy, az valóban tartalmaz egy-egy teljes regiszter-készletet("For each thread, the processor maintains a separate, complete architectural state that includes its own set of registers as defined by the Intel 64 architecture."), tehát az van valóban duplázva. Viszont a processzor teljes végrehajtó-része közös.

    De önmagában ezzel nem sok teljesítményt lehetne nyerni, max annyit érne, hogy amíg az egyik thread-en taszkváltás van, a másik thread menne helyette, tehát az I/O műveletek idejét spórolná meg.
    Ami a HT igazi trükkje, hogy a két thread-hez tartozó utasításokat képes együtt végrehajtani, mivel egy órajelciklus alatt több (mikro)utasítást tud lefuttatni(az Intel konkrét példájában a Nehalem 4-et), és ezeknek a HT jóvoltából nem kell szükségszerűen egyazon thread-ből származni, hisz nem kell a thread-ek közti váltáskor(az egyazon threaden futó taszkok közti váltáshoz képest) elmenteni az egyik thread-hez tartozó regiszter-tartalmat és a másikat visszatölteni a helyére, hiszen mindkettő folytatólagosan rendelkezésre áll.

    Persze nyilván vannak még ezen felül mindenféle optimalizációk, meg out-of-order "mágia", de ez az alap működése, legalább is a 2009-es állapot, amikor az összefoglaló született.

    Forrás: Performance Insights to Intel® Hyper-Threading Technology(2009)

Új hozzászólás Aktív témák