Samtidig multithreading

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 17 mars 2022; kontroller kräver 2 redigeringar .

Simultaneous Multithreading [1] ( Eng.  Simultaneous Multithreading  - SMT ) är en av de två huvudformerna av multithreading som kan implementeras i hårdvara i processorer. Den andra formen är tillfällig multithreading . Tekniken för simultan multithreading tillåter exekvering av instruktioner från flera oberoende exekveringstrådar på en uppsättning funktionella moduler i en superskalär mikroprocessor i en cykel.

Historik och implementeringar

Samtidig multithreading introducerades först i forskningsrapporter av Dean Tullsen 1995 ( UC San Diego ) [2] [3] [4] [5] .

Den första processorn att implementera simultan multithreading skulle vara DEC :s Alpha 21464 mikroprocessor , som tillkännagavs 1999. Processorn utvecklades av ett team ledd av chefsarkitekten Joel Emer . Processorn var enkärnig, superskalär med 8 pipelines, hade 4 uppsättningar register för kontextväxling och kunde potentiellt exekvera 4 trådar samtidigt. En 2x ökning av prestanda uppnåddes med bara en 10% ökning av antalet logiska element. På många sätt förkroppsligade processorn de förslag och tillvägagångssätt som beskrivs i Dean Tallsens arbete, vars arbete var medförfattare av några medlemmar i Alpha-teamet (Joel Emer och Rebecca Stamm). Men Alpha 21464 kom aldrig ut på marknaden, den föll offer för företagsfusioner och förvärv [6] .

Således var den första implementeringen av simultan multithreading på marknaden Intels Hyper-threading-teknologi , som introducerades 2002 i Xeon -serverprocessorer och Pentium 4 [7] ( NetBurst -mikroarkitektur ).

När Intel vände sig till flerkärnig mikroprocessorarkitektur portade den inte hypertrådsteknik till nya processorer för att förenkla designen. Som ett resultat var den första flerkärniga processorn med samtidig flertrådning på varje kärna IBM POWER5- processorn (2004) [8] . Så småningom tog Intel Hyper-threading tillbaka till sina processorer med Nehalem -arkitekturen (2008) [9] .

Kritik

År 2021 upptäckte ett team av forskare inklusive Graz Tech University , Georgia Institute of Technology och Lamarr Security Research, ett ideellt forskningscenter, en sårbarhet i SMT-teknik implementerad i AMD :s Zen- , Zen 2- och Zen 3 - processorer . Sårbarheten, kallad SQUIP [10] (Scheduler Queue Usage via Interference Probing - användning av schemaläggarkön genom interferensanalys ), tillåter angripare att komma åt konfidentiell data, som i december 2021 rapporterades av AMD. Under loppet av att demonstrera sårbarheten "knäckte" forskarna RSA-4096- krypteringsnyckeln [11] [12] . AMD, efter att ha tilldelat sårbarhets-ID:t CVE-2021-46778 och en "medelhög" svårighetsgrad, publicerade en rådgivande bulletin i augusti 2022 [13] .

Jämförelse med andra teknologier

Prestanda hos superskalära mikroprocessorer ökas genom att exekvera flera instruktioner samtidigt i en enda cykel, men den begränsas av beroenden mellan instruktioner (vilket begränsar möjligheterna till parallell exekvering, som ett resultat av vilket inte det maximala antalet instruktioner kan exekveras i en cykel) och operationer med hög latens inom en enda exekveringstråd (som leder till uppkomsten av cykler där inte en enda instruktion exekveras - pipeline stalls ).

Arkitekturer med hårdvaru -flertrådning exekverar flera trådar med möjligheten att snabbt växla sammanhang mellan dem. Sådan "traditionell" multitrådning döljer minnes- och funktionsblockfördröjningar (minskar antalet "tomma" cykler), även om instruktioner från en tråd exekveras i varje speciell cykel. En ökning av antalet samtidigt körbara instruktioner minskar dock kapaciteten hos traditionell multithreading.

Simultan multithreading kombinerar parallell exekvering av superskalära arkitekturinstruktioner med hårdvaru-multithreading. Användningen av simultan multithreading, på grund av den dynamiska fördelningen av processorfunktionsmoduler mellan trådar, ökar användningen av processorn i närvaro av minnesfördröjningar och begränsad möjlighet till parallell exekvering av instruktioner inom en tråd.

Flerkärniga mikroprocessorer i sin organisation är närmast mikroprocessorer med samtidig multithreading - de har flera uppsättningar av register, flera funktionella moduler och superskalariteten hos var och en av kärnorna. Huvudskillnaden mellan de två är tilldelningen av resurser - i en flerkärnig processor får varje tråd ett fast antal processorfunktionsmoduler, medan i en processor med simultan multithreading ändras fördelningen av moduler i varje cykel. Som ett resultat av detta uppvisar processorer med samtidig multitrådning högre prestanda vid maximal trådbelastning, och med en minskning av antalet trådar sjunker prestandan långsammare jämfört med en flerkärnig processor.

Anteckningar

  1. Två i ett //Computerra (2001-11-09) . Hämtad 21 november 2016. Arkiverad från originalet 21 november 2016.
  2. Samtidigt flertrådsprojekt . Hämtad 31 maj 2017. Arkiverad från originalet 1 juni 2017.
  3. Dekanus Tullsens publikationer . Hämtad 4 juni 2017. Arkiverad från originalet 9 juni 2017.
  4. Se Dean M. Tullsen, Susan J. Eggers och Henry M. Levy. Samtidig multithreading: Maximerar parallellitet på chipet. I Proceedings of the International Symposium on Computer Architecture, juni 1995
  5. doktorsavhandling Simultaneous Multithreading, DM Tullsen, Ph.D. Avhandling, University of Washington, augusti, 1996.
  6. Nemirovsky Tullsen, 2013 , sid. 72.
  7. Nemirovsky Tullsen, 2013 , sid. 74.
  8. Nemirovsky Tullsen, 2013 , sid. 34.
  9. Nemirovsky Tullsen, 2013 , sid. 81.
  10. SQUIP: Utnyttja Scheduler Queue Contention Side Channel PDF
  11. Anton Shilov. Ny sårbarhet påverkar alla AMD Zen-processorer: trådning kan behöva  inaktiveras . Toms hårdvara (11 augusti 2022). Hämtad: 12 augusti 2022.
  12. Vladimir Fetisov. Det visade sig att SMT-teknik i Ryzen- och EPYC-processorer låter dig stjäla konfidentiell data . 3DNews (11 augusti 2022). Hämtad: 12 augusti 2022.
  13. ↑ Execution Unit Scheduler Contention Sido-Channel sårbarhet på AMD-processorer  . AMD (8 september 2022). Hämtad: 12 augusti 2022.

Litteratur

Länkar