SMT – simultano večnitno izvajanje: definicija, vrste in primerjava

Hkratno večnitno branje, kratica SMT, je tehnika za izboljšanje splošne učinkovitosti superskalarnih procesorjev s strojnim večnitnim branjem. SMT omogoča več neodvisnih niti izvajanja za boljšo izrabo virov, ki jih zagotavljajo sodobne računalniške arhitekture.

Večnitnost je po zasnovi podobna večopravilnosti, vendar se v sodobnih superskalarnih procesorjih izvaja na ravni niti.

Pri načrtovanju procesorjev obstajata dva načina za povečanje vzporednosti na čipu z manjšimi zahtevami glede virov:

  1. Superskalarna tehnika: ki poskuša povečati vzporednost na ravni ukazov (ILP) z izvajanjem več ukazov hkrati (imenovano: sočasno); s "sočasnim" pošiljanjem ukazov (imenovano: pošiljanje ukazov) več redundantnim izvajalnim enotam, ki so vgrajene v procesorju.
  2. Tehnika večnitnosti na ravni čipa (CMT): uporaba vzporednosti na ravni niti (TLP) za hkratno izvajanje ukazov iz več niti v enem procesorskem čipu.

Obstaja več načinov za podporo več kot ene niti v čipu, in sicer:

  1. Prepleteno večnitno branje (IMT) : Prepleteno izdajanje več navodil iz različnih niti, imenovano tudi časovno večnitno branje. Glede na pogostost prepletanja izdaj se lahko nadalje deli na fino ali grobo večnitno branje (fine-grain multithreading ali coarse-grain multithreading). Fine-grain multithreading izdaja navodila za različne niti po vsakem ciklu, medtem ko coarse-grain multithreading preklopi na izdajanje navodil iz druge niti le, ko trenutna izvajalna nit povzroči nekaj dogodkov z veliko zakasnitvijo (kot je napaka strani itd.). Grobozrnata večnitnost je pogostejša zaradi manjšega preklapljanja konteksta med nitmi. Pri procesorjih z enim cevovodom na jedro je prepletena večnitnost edini možni način, saj lahko izda le en ukaz na cikel.
  2. Hkratno večnitno branje (SMT): Izdaja več ukazov iz več niti v enem ciklu. Za to mora biti procesor superskalaren.
  3. Večjedrni procesor na ravni čipa (CMP ali večjedrni procesor): dva ali več superskalarnih procesorjev je združenih v enem čipu, vsak od njih pa izvaja niti neodvisno.
  4. Katera koli kombinacija IMT/SMT/CMP

Ključni dejavnik za njihovo razlikovanje je, da pogledamo, koliko ukazov lahko procesor izda v enem ciklu in iz koliko niti prihajajo ti ukazi.

Razlaga SMT in tehnični pogoji

SMT (simultano večnitno izvajanje) omogoča, da ena sama fizična jedra procesorja združujejo ukaze iz več programsko neodvisnih niti in jih izdajajo v istem ciklu. To zahteva, da je jedro superskalarno — torej zmožno izdajati več ukazov hkrati — in da ima deljene mikroarhitekturne vire (registrski datoteki, izvajalne enote, predpomnilnik, itd.), ki jih lahko izkoriščajo različne niti.

Vrste in primerjava (IMT vs SMT vs CMP)

  • IMT (prepleteno večnitno branje): časovno razporejanje izdajanja ukazov iz različnih niti (fino ali grobo prepletanje). Uporaben pri procesorjih z enojnim cevovodom ali v okoljih, kjer je treba hitro skriti zakasnitve z izmeničnim izvajanjem niti.
  • SMT: v enem ciklu lahko izhajajo ukazi iz več različnih niti — učinkovitost dosežemo z boljšo izrabo večcevnih izvajanih enot in z zmanjšanjem praznih ciklov, kadar ena nit čaka na pomnilniške operacije.
  • CMP (večjedrni procesor): v enem čipu so na voljo več ločenih jeder, vsako z lastno supesrkalarnostjo in pogosto z lastnimi nivoji predpomnilnikov; primeren za visoko stopnjo sočasne obdelave z minimalnim deljenjem mikroarhitekturnih virov med jedri.

Prednosti in slabosti SMT

  • Prednosti:
    • Večji izkoristek izvajalnih enot in povečan throughput (število opravljenih ukazov na časovno enoto) pri zmerno do močno večnitnih obremenitvah.
    • Manjši stroški v primerjavi z dodajanjem dodatnih jeder (CMP) — izboljšanje skozi delitev virov namesto replike celotne strojne opreme.
    • Pri nekaterih aplikacijah (strežniki, virtualizacija, obdelava več zahtev hkrati) občutna izboljšava učinkovitosti.
  • Slabosti:
    • Deljenje virov lahko povzroči tekmovanje med nitmi (contention), kar v nekaterih primerih zniža zmogljivost posamezne niti.
    • Načrtovanje in preverjanje pravilnosti SMT procesorjev je bolj kompleksno (schematično razdeljevanje virov, izogibanje neželenim interferencam).
    • Možne varnostne pomisleke zaradi deljenega mikroarhitekturnega stanja (stranski kanali), kar zahteva skrbno upravljanje v varnostno občutljivih okoljih.

Tehnične podrobnosti in omejitve

Za učinkovito SMT mora biti procesor sposoben hkrati:

  • izdajati več ukazov na cikel (superskalarna arhitektura),
  • upravljati z več konteksti (registrski arhiv, stanje nití),
  • imeti dovolj razširjen dostop do predpomnilnikov in pomnilniških poti, da zmanjšamo čakalne dobe,
  • ter učinkovito distribuirati izvajalne enote med niti, da se omeji konflikte.

Če so deljeni viri ozko grlo (npr. majhna skupna registrska datoteka ali ozka pomnilniška pasovna širina), so potencialne koristi SMT omejene ali celo negativne za nekatere delovne obremenitve.

Kdaj izbrati katero tehniko

  • IMT (fine-grain) je primeren za skrite latentnosti pri enocevovodnih ali zelo specializiranih jedrih.
  • SMT je dober kompromis za sisteme, kjer želite povečati skupni izkoristek čipa brez velikega povečevanja površine silicija — npr. strežniške obremenitve, virtualizacija ali aplikacije z veliko nitmi.
  • CMP je primeren, kadar so delavnice popolnoma neodvisne in potrebujete maksimalno izolacijo ter zmogljivost na nit (visoka single-thread zmogljivost ni žrtvovana zaradi drugih niti).

Zaključek

SMT je učinkovita tehnika za povečanje skupne prepustnosti procesorjev z deljenjem in sočasnim izvajanjem ukazov iz več niti. Njegova uspešnost je odvisna od arhitekturne izvedbe in narave delovne obremenitve: pri mnogonitnih, I/O ali strežniških obremenitvah prinaša koristi, pri posamezno zahtevnih samostojnih programih pa lahko ponudi manj opazne izboljšave. Pri načrtovanju ali izbiri procesorjev je treba uravnotežiti prednosti SMT z morebitnimi omejitvami zaradi tekmovanja za vire in varnostnih tveganj.

Primeri sodobnih procesorjev SMT

  1. Intel Pentium 4 je bil prvi sodobni namizni procesor, ki je uvedel hkratno večnitno branje, začenši z modelom 3,06 GHz, ki je bil izdan leta 2002, od takrat pa je bil uveden v številne njihove procesorje. Intel to funkcionalnost imenuje Hyper-Threading Technology (HTT) in zagotavlja osnovni dvonitni mehanizem SMT. Intel navaja do 30-odstotno izboljšanje hitrosti v primerjavi z enakim Pentiumom 4 brez SMT.
  2. Najnovejši modeli arhitekture MIPS vključujejo sistem SMT, znan kot "MIPS MT".
  3. IBM POWER5, ki je bil napovedan maja 2004, je na voljo kot dvojedrni DCM ali štiri- ali osemjedrni MCM, pri čemer vsako jedro vključuje dvonitni mehanizem SMT. IBM-ova izvedba je bolj izpopolnjena od prejšnjih, saj lahko različnim nitem dodeli različno prednost, je bolj fino strukturirana, motor SMT pa je mogoče dinamično vklopiti in izklopiti, da se bolje izvajajo tiste delovne obremenitve, pri katerih procesor SMT ne bi povečal zmogljivosti. To je IBM-ova druga implementacija splošno dostopne strojne večnitnosti.
  4. Intel Atom, ki je bil izdan leta 2008, je prvi Intelov izdelek s funkcijo SMT (ki se trži kot Hyper-threading) brez podpore za spreminjanje vrstnega reda ukazov, špekulativno izvajanje ali preimenovanje registrov.

Sorodne strani

Vprašanja in odgovori

V: Kaj je hkratno večnitno branje?


O: Hkratno večnitno branje (SMT) je tehnika za izboljšanje splošne učinkovitosti superskalarnih procesorjev s strojnim večnitnim branjem. Omogoča več neodvisnih niti izvajanja za boljšo izrabo virov, ki jih zagotavljajo sodobne računalniške arhitekture.

V: Kako se SMT primerja z večnitnim delovanjem?


O: Večnitnost je po konceptu podobna večopravilnosti, vendar se v sodobnih superskalarnih procesorjih izvaja na ravni niti izvajanja, medtem ko se večopravilnost izvaja na ravni procesa.

V: Katera sta dva načina za povečanje vzporednosti na čipu?


O: Dva načina za povečanje vzporednosti na čipu sta superskalarna tehnika in večnitnost na ravni čipa (CMT).

V: Katere so različne vrste večnitnega branja na ravni čipa?


O: Različne vrste večnitnega branja na ravni čipa vključujejo večnitno branje s prepletanjem (Interleaved Multithreading - IMT), večnitno branje s finim zrnom (Fine-Grain Multithreading), večnitno branje z grobim zrnom (Coarse Grain Multithreadin) in sočasno večnitno branje (Simultaneous Multithreadin - SMT).

V: Kako lahko razlikujete med IMT/SMT/CMP?


O: Ključni dejavnik za razlikovanje med IMT/SMT/CMP je pogled na to, koliko ukazov lahko procesor izda v enem ciklu in iz koliko niti prihajajo ti ukazi.

V: Kakšno vrsto procesorja je treba uporabiti za SMT?


O: Za SMT je treba uporabiti superskalarni procesor.

V: Kakšno vrsto procesorja uporablja večopravilnost na ravni čipa?


O: Večopravilnost na ravni čipa uporablja večjedrne procesorje, ki v enem čipu združujejo dva ali več superskalarnih procesorjev, od katerih vsak neodvisno izvaja niti.

AlegsaOnline.com - 2020 / 2025 - License CC3