Kas ir SMT (vienlaicīga daudzpavedienu izpilde) — skaidrojums un veidi

Ieskaties SMT (vienlaicīga daudzpavedienu izpilde): skaidrojums, tehnoloģijas un veidi, kā uzlabot procesoru veiktspēju — saprotami un profesionāli.

Autors: Leandro Alegsa

Vienlaicīga daudzkāršošana, saīsinājums SMT, ir aparatūras metode, kas uzlabo superskalāro procesoru kopējo efektivitāti, ļaujot vienlaikus izpildīt vairākus neatkarīgus izpildes pavedienus. SMT izmanto procesora iekšējo resursu (piem., izpildes vienības, reģistru failu, kešatmiņu) koplietošanu, lai palielinātu procesora caurlaidspēju un labāk aizpildītu izpildes posmus, kuros citaizēti resursi būtu neizmantoti.

Koncepts ir līdzīgs daudzuzdevumu veikšanai, taču modernajos superskalārajos procesoros tas tiek īstenots tieši izpildes pavedienu līmenī, nevis kā atsevišķu programmu pārslēgšana.

Kā palielināt paralēlismu mikroshēmā

Procesoru projektēšanā pastāv divas galvenās pieejas, kā ar mazākiem aparatūras resursiem palielināt paralēlismu:

  1. Superskalārā metode: mērķis ir palielināt instrukciju līmeņa paralēlismu (ILP), izpildot vairākas instrukcijas vienlaicīgi. To panāk, nosūtot vairākas instrukcijas tajā pašā ciklā uz dažādām izpildes vienībām procesorā.
  2. Mikroshēmas līmeņa daudvirzienu (CMT) metode: izmanto Thread level parallelism (TLP), lai vienā mikroshēmā vienlaikus izpildītu instrukcijas no vairākiem pavedieniem, tādējādi palielinot kopējo darba slodzē izpildīto instrukciju skaitu.

Galvenie SMT un saistīto tehnoloģiju veidi

Ir vairāki veidi, kā mikroshēmā uzturēt un izpildīt vairāk nekā vienu pavedienu:

  1. Daudzpavedes daudzpavedienu sistēma (IMT): vairāku instrukciju izdošana no dažādiem pavedieniem (dažkārt saukta par temporal multithreading). To var iedalīt:
  • Fine-grain (smalkgraudainā) multithreading: procesors pēc katra cikla vai ļoti bieži pārslēdzas starp pavedieniem, izdodot instrukcijas no atšķirīgiem pavedieniem katrā ciklā. Šī pieeja labi aizpilda izvades caurules gadījumos, kad viena pavediena izvade kavējas.
  • Coarse-grain (rupjgraudainā) multithreading: pārslēgšanās starp pavedieniem notiek retāk — tikai tad, kad pašreizējais pavediens saskaras ar ilgstošu kavēšanos (piem., lapas kļūda). Tas samazina konteksta pārslēgšanās izmaksas, bet mazāk agresīvi maskē īslaicīgas kavēšanās.
  1. Vienlaicīga daudzpavedienu apstrāde (SMT): viena cikla laikā izdod vairākus norādījumus no vairākiem pavedieniem. To var īstenot tikai tad, ja procesoram ir superskalāras iespējas — tas spēj izdot (issue) vairākas instrukcijas vienā ciklā un tām piešķirt izpildes vienības.
  2. Mikroshēmas līmeņa daudzkodolu procesors (CMP): vienā mikroshēmā integrēti divi vai vairāki superskalāri kodoli, katrs izpilda pavedienus neatkarīgi. Šī pieeja palielina paralēlismu, izvietojot vairāk pilnvērtīgu izpildes vienību blakus.
  3. Jebkura kombinācija no IMT/SMT/CMP — reālas mikroshēmas bieži izmanto šo pieeju kombinācijas, lai optimizētu veiktspēju un enerģijas efektivitāti konkrētām darba slodzēm.

Kārtība un resursu dalīšana SMT

SMT izejas ideja — vienā fiziskā kodolā virtuāliem pavedieniem (dažkārt saukti par "loģiskiskajiem procesoriem") piešķirt piekļuvi tiem pašiem izpildes blokiem. Daļa no būtiskajām aparatūras daļām tiek dalītas (izpildes vienības, kešatmiņas līmeņi, branch predictor), bet ir arī atsevišķi resursi, kas katram pavedienam ir individuāli (piem., daži reģistri, programmas skaitītājs). Galvenās sekas:

  • Palielinās caurlaidspēja — ja viens pavediens gaida datu piegādi, cits var izmantot izpildes vienības.
  • Pastāv resursu konkurence — pavedieni var viena otru ietekmēt, sacenšoties par kešatmiņu, atmiņas joslas platumu, TLB un izpildes vienībām.
  • Plānošanas (scheduling) un atbalsta aparatūra kļūst sarežģītāka — nepieciešamas mehāniskas, kas izšķir, kuras instrukcijas izdot prioritārāk.

Priekšrocības un trūkumi

  • Priekšrocības:
    • Labāka aparatūras izmantošana un augstāka caurlaidspēja ar mazāku transitoru skaitu nekā ekvivalenta jauda, pievienojot vēl vienu pilnvērtīgu kodolu.
    • Var uzlabot veiktspēju reālās darba slodzēs, kas satur daudz gaidīšanas operāciju (atmiņas pieprasījumu, stāvvietas).
    • Efektīva izmantošana enerģijas un platības, salīdzinot ar tikai paralēlu kodolu pievienošanu.
  • Trūkumi:
    • Veiktspējas pieaugums nav proporcionāls pavedienu skaitam — jo vairāk pavedienu, jo lielāka konkurence par kopējiem resursiem.
    • Sarežģītāka aparatūras un mikroarhitektūras projektēšana (plašāka izpildes plānošana, resursu atdales mehānismi).
    • Dažām darba slodzēm SMT var pat samazināt veiktspēju (piem., ja pavedieni intensīvi izmanto tos pašus kopējos resursus), tāpēc nepieciešama plānošana un pielāgošana.

Praktiska realizācija un piemēri

SMT ir plaši izmantota komerciālā aparatūrā. Pazīstami piemēri:

  • Intel Hyper-Threading (HT) — Intel implementēta SMT forma, kas ļauj vienam fiziskajam kodolam izskatīties kā diviem loģiskiem procesoriem operētājsistēmai, tādējādi palielinot paralēlismu noteiktās darba slodzēs.
  • IBM POWER arhitektūra — vairākās POWER mikroshēmās ir izmantota SMT, lai nodrošinātu augstu caurlaidspēju serveru slodzēm.
  • SPARC T-series (Sun/Oracle) procesori — izmanto gan daudzkodolu, gan SMT tehnoloģijas, lai optimizētu skaitļošanas jaudu daudzapakāpju serveros.

Veiktspējas apsvērumi un optimizācija

Reāla ieguvuma no SMT apjoms ir atkarīgs no darba slodzes rakstura. Ja lietojumprogramma satur daudz neatkarīgu pavedienu, kas maz izmanto kopējos resursus, SMT sniedz lielu labumu. Tomēr, ja pavedieni konkurē par kešu vai atmiņas joslas platumu, SMT ieguvums var būt ierobežots vai pat negatīvs. Tāpēc:

  • Jāveic darbības režīmu analīze un testēšana, lai noteiktu, vai SMT palielina kopējo veiktspēju konkrētai slodzei.
  • Operētājsistēmas un lietojumu plānotāji var pielāgot pavedienu izvietojumu (affinitāti), atslēdzot SMT vai ierobežojot pavedienu skaitu uz kodolu, ja tas uzlabo veiktspēju.
  • Modernās mikroarhitektūrās tiek iekļauti mehānismi prioritāšu noteikšanai, resursu aizsardzībai un izolācijai, lai mazinātu negatīvo ietekmi starp pavedieniem.

Kopsavilkums

SMT — saīsinājums SMT — ļauj vienā superskalārā procesorā vienlaikus izpildīt instrukcijas no vairākiem pavedieniem, labāk izmantojot iekšējās izpildes vienības. To var kombinēt ar citiem paņēmieniem (IMT, CMP), un galvenais kritērijs, kas tos atšķir, ir tas, cik daudz instrukciju procesors var izdot vienā ciklā un no cik daudziem pavedieniem šīs instrukcijas nāk.

Mūsdienu SMT procesoru piemēri

  1. Intel Pentium 4 bija pirmais mūsdienu galddatoru procesors, kurā tika ieviesta vienlaicīga daudzpavedienu apstrāde, sākot ar 3,06 GHz modeli, kas tika izlaists 2002. gadā, un kopš tā laika tas tika ieviests vairākos procesoru modeļos. Intel šo funkcionalitāti dēvē par Hyper-Threading Technology (HTT) un nodrošina divu pavedienu SMT pamatdzinēju. Intel apgalvo, ka salīdzinājumā ar identisku Pentium 4 bez SMT ātrums uzlabojas līdz pat 30 %.
  2. Jaunākajos MIPS arhitektūras projektos ir iekļauta SMT sistēma, kas pazīstama kā "MIPS MT".
  3. IBM POWER5, par kuru tika paziņots 2004. gada maijā, tiek piedāvāts kā divkodolu DCM vai četrkodolu vai astoņkodolu MCM, kur katrs kodols ietver divu pavedienu SMT dzinēju. IBM implementācija ir sarežģītāka nekā iepriekšējās, jo tā var piešķirt atšķirīgu prioritāti dažādiem pavedieniem, ir precīzāka, un SMT dzinēju var dinamiski ieslēgt un izslēgt, lai labāk izpildītu tās slodzes, kurās SMT procesors nepalielinātu veiktspēju. Šī ir otrā IBM vispārpieejamā aparatūras daudzpavedienu sistēmas implementācija.
  4. 2008. gadā izlaistais Intel Atom ir pirmais Intel produkts, kas aprīkots ar SMT (pārdots kā Hyper-threading) bez instrukciju pārkārtošanas, spekulatīvās izpildes vai reģistru pārdēvēšanas atbalsta.

Saistītās lapas

  • Vītne (datorzinātne)
  • Paralēlā skaitļošana
  • Instrukciju līmeņa paralēlisms
  • Daudzkodolu procesori

Jautājumi un atbildes

J: Kas ir vienlaicīga daudzvirzienu apstrāde?


A: Vienlaicīga daudzkārtu lasīšana (SMT) ir metode, ar ko uzlabo superskalāro procesoru kopējo efektivitāti, izmantojot aparatūras daudzkārtu lasīšanu (Hardware multithreading). Tā ļauj izpildīt vairākus neatkarīgus izpildes pavedienus, lai labāk izmantotu resursus, ko nodrošina mūsdienu datoru arhitektūras.

J: Kā SMT var salīdzināt ar daudzuzdevumu režīmiem?


A: Daudzkāršošana ir līdzīga koncepcija kā daudzuzdevumu veikšana, taču modernajos superskalārajos procesoros tā tiek īstenota izpildes pavedienu līmenī, savukārt daudzuzdevumu veikšana tiek īstenota procesu līmenī.

J: Kādi ir divi veidi, kā palielināt mikroshēmas paralēlismu?


A: Divi veidi, kā palielināt mikroshēmas paralēlismu, ir superskalārā tehnika un mikroshēmas līmeņa daudzvirzienu apstrāde (CMT).

J: Kādi ir daži dažādi mikroshēmas līmeņa daudzpavedienu veidi?


A.: Dažādi mikroshēmas līmeņa daudzpavedzes veidi ir Interleaved Multithreading (IMT), Fine-Grain Multithreading, Coarse Grain Multithreadin un Simultaneous Multithreadin (SMT).

J: Kā jūs varat atšķirt IMT/SMT/CMP?


A: Galvenais IMT/SMT/CMP atšķiršanas faktors ir tas, cik instrukciju procesors var izdot vienā ciklā un no cik pavedieniem šīs instrukcijas nāk.

J: Kāda tipa procesors jāizmanto SMT?


A: SMT ir jāizmanto superskalārais procesors.

J: Kāda tipa procesors tiek izmantots mikroshēmu daudzprocesoru režīmā (Chip Level MultiProcessing)?


A.: Mikroshēmas līmeņa daudzprocesoru apstrādei izmanto daudzkodolu procesorus, kas vienā mikroshēmā integrē divus vai vairākus superskalāros procesorus, no kuriem katrs izpilda pavedienus neatkarīgi.


Meklēt
AlegsaOnline.com - 2020 / 2025 - License CC3