Samtidig multithreading

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 17. marts 2022; checks kræver 2 redigeringer .

Simultaneous multithreading [1] ( Eng.  Simultaneous Multithreading  - SMT ) er en af ​​de to hovedformer for multithreading , der kan implementeres i hardware i processorer. Den anden form er midlertidig multithreading . Teknologien med samtidig multithreading gør det muligt at udføre instruktioner fra flere uafhængige udførelsestråde på et sæt funktionelle moduler i en superskalar mikroprocessor i én cyklus.

Historie og implementeringer

Samtidig multithreading blev først introduceret i forskningsartikler af Dean Tullsen i 1995 ( UC San Diego ) [2] [3] [4] [5] .

Den første processor til at implementere simultan multithreading ville være DEC 's Alpha 21464 mikroprocessor , som blev annonceret i 1999. Processoren blev udviklet af et team ledet af chefarkitekt Joel Emer . Processoren var single-core, superskalær med 8 pipelines, havde 4 sæt registre til kontekstskift og kunne potentielt udføre 4 tråde samtidigt. En 2x stigning i ydeevnen blev opnået med kun en 10% stigning i antallet af logiske elementer. På mange måder legemliggjorde processoren de forslag og tilgange, der er skitseret i Dean Tallsens arbejde, hvis arbejde var medforfatter af nogle medlemmer af Alpha-teamet (Joel Emer og Rebecca Stamm). Alpha 21464 kom dog aldrig på markedet, den blev offer for virksomhedsfusioner og opkøb [6] .

Den første implementering af simultan multithreading på markedet var således Intels Hyper-threading-teknologi , introduceret i 2002 i Xeon -serverprocessorer og Pentium 4 [7] ( NetBurst - mikroarkitektur ).

Da Intel vendte sig til multi-core mikroprocessorarkitektur, porterede den ikke hyper-threading-teknologi til nye processorer for at forenkle designet. Som et resultat heraf var den første multi-core-processor med samtidig multi-threading på hver kerne IBM POWER5- processoren (2004) [8] . Til sidst bragte Intel Hyper-threading tilbage i deres processorer med Nehalem -arkitekturen (2008) [9] .

Kritik

I 2021 opdagede et team af forskere, herunder Graz Tech University , Georgia Institute of Technology og Lamarr Security Research, et non-profit forskningscenter, en sårbarhed i SMT-teknologi implementeret i AMDs Zen- , Zen 2- og Zen 3 - processorer . Sårbarheden, kaldet SQUIP [10] (Scheduler Queue Usage via Interference Probing - brug af skemalæggerkøen gennem interferensanalyse ), tillader angribere at få adgang til fortrolige data, som i december 2021 blev rapporteret af AMD. I løbet af at demonstrere sårbarheden "knækkede" forskerne RSA-4096- krypteringsnøglen [11] [12] . AMD, efter at have tildelt sårbarheds-id'et CVE-2021-46778 og en "medium" sværhedsgrad, udgav en rådgivende bulletin i august 2022 [13] .

Sammenligning med andre teknologier

Ydeevnen af ​​superskalære mikroprocessorer øges ved at udføre flere instruktioner samtidigt i en enkelt cyklus, men den er begrænset af afhængigheder mellem instruktioner (som begrænser mulighederne for parallel eksekvering, som et resultat af hvilket ikke det maksimalt mulige antal instruktioner kan udføres i en cyklus) og operationer med høj latenstid inden for en enkelt eksekveringstråd (hvilket fører til fremkomsten af ​​cyklusser, hvor der ikke udføres en enkelt instruktion - pipeline går i stå ).

Arkitekturer med hardware multithreading udfører flere tråde med evnen til hurtigt at skifte kontekster mellem dem. Sådan "traditionel" multithreading skjuler hukommelses- og funktionsblokforsinkelser (reducerer antallet af "tomme" cyklusser), selvom instruktioner fra en tråd udføres i hver bestemt cyklus. En stigning i antallet af samtidigt eksekverbare instruktioner reducerer imidlertid mulighederne for traditionel multithreading.

Samtidig multithreading kombinerer parallel udførelse af superskalære arkitekturinstruktioner med hardware multithreading. Brugen af ​​simultan multithreading, på grund af den dynamiske fordeling af processorfunktionelle moduler mellem tråde, øger brugen af ​​processoren i nærvær af hukommelsesforsinkelser og begrænset mulighed for parallel udførelse af instruktioner i en tråd.

Multi-core mikroprocessorer i deres organisation er tættest på mikroprocessorer med simultan multithreading - de har flere sæt registre, flere funktionelle moduler og superskalariteten af ​​hver af kernerne. Den største forskel mellem de to er allokeringen af ​​ressourcer - i en multi-core processor modtager hver tråd et fast antal processor funktionelle moduler, mens i en processor med samtidig multithreading ændres fordelingen af ​​moduler i hver cyklus. Som et resultat viser processorer med samtidig multithreading større ydeevne ved maksimal trådbelastning, og med et fald i antallet af tråde falder ydeevnen langsommere sammenlignet med en multi-core processor.

Noter

  1. To i én //Computerra (11/09/2001) . Hentet 21. november 2016. Arkiveret fra originalen 21. november 2016.
  2. Simultaneous Multithreading Project . Hentet 31. maj 2017. Arkiveret fra originalen 1. juni 2017.
  3. Dekan Tullsens publikationer . Hentet 4. juni 2017. Arkiveret fra originalen 9. juni 2017.
  4. Se Dean M. Tullsen, Susan J. Eggers og Henry M. Levy. Samtidig multithreading: Maksimering af on-chip parallelitet. I Proceedings of the International Symposium on Computer Architecture, juni 1995
  5. doktorafhandling Simultaneous Multithreading, DM Tullsen, Ph.D. Speciale, University of Washington, august, 1996.
  6. Nemirovsky Tullsen, 2013 , s. 72.
  7. Nemirovsky Tullsen, 2013 , s. 74.
  8. Nemirovsky Tullsen, 2013 , s. 34.
  9. Nemirovsky Tullsen, 2013 , s. 81.
  10. SQUIP: Udnyttelse af planlægningskøens sidekanal PDF
  11. Anton Shilov. Ny sårbarhed påvirker alle AMD Zen CPU'er: Threading skal muligvis  deaktiveres . Toms hardware (11. august 2022). Hentet: 12. august 2022.
  12. Vladimir Fetisov. Det viste sig, at SMT-teknologi i Ryzen- og EPYC-processorer giver dig mulighed for at stjæle fortrolige data . 3DNews (11. august 2022). Hentet: 12. august 2022.
  13. ↑ Execution Unit Scheduler Contention Side-Channel sårbarhed på AMD-processorer  . AMD (8. september 2022). Hentet: 12. august 2022.

Litteratur

Links