A szimultán többszálú feldolgozás [1] ( eng. Simultaneous Multithreading - SMT ) a processzorok hardverében megvalósítható többszálú feldolgozás két fő formájának egyike . A második forma az ideiglenes többszálú . Az egyidejű többszálú feldolgozás technológiája lehetővé teszi több független végrehajtási szálból származó utasítások végrehajtását egy szuperskaláris mikroprocesszor funkcionális modulján egy ciklusban.
A szimultán többszálú feldolgozást először Dean Tullsen vezette be kutatási cikkeiben 1995 -ben ( UC San Diego ) [2] [3] [4] [5] .
Az első processzor, amely megvalósítja a szimultán többszálú feldolgozást, a DEC Alpha 21464 mikroprocesszora lenne , amelyet 1999 -ben jelentettek be. A processzort Joel Emer főépítész által vezetett csapat fejlesztette ki . A processzor egymagos, szuperskaláris volt, 8 csővezetékkel, 4 regiszterkészlettel rendelkezik a környezetváltáshoz, és potenciálisan 4 szálat tudott egyszerre végrehajtani. A logikai elemek számának mindössze 10%-os növekedésével kétszeres teljesítménynövekedést értek el. A processzor sok tekintetben megtestesítette a Dean Tallsen munkájában felvázolt javaslatokat és megközelítéseket, akinek munkáját az Alpha csapat néhány tagja (Joel Emer és Rebecca Stamm) társszerzőként írta. Az Alpha 21464 azonban soha nem került piacra, vállalati összeolvadások és felvásárlások áldozata lett [6] .
Így a szimultán többszálú feldolgozás első megvalósítása a piacon az Intel Hyper-threading technológiája volt, amelyet 2002-ben vezettek be a Xeon szerverprocesszorokban és a Pentium 4 -ben [7] ( NetBurst mikroarchitektúra ).
Amikor az Intel a többmagos mikroprocesszoros architektúra felé fordult, a tervezés egyszerűsítése érdekében nem portolta át a hyper-threading technológiát új processzorokra. Ennek eredményeként az első többmagos processzor, amelyen minden magon egyidejűleg többszálas volt, az IBM POWER5 processzor volt (2004) [8] . Végül az Intel a Nehalem architektúrával (2008) [9] visszahozta processzoraiba a Hyper-threading szolgáltatást .
2021-ben egy kutatócsoport, köztük a Graz Tech University , a Georgia Institute of Technology és a Lamarr Security Research, egy non-profit kutatóközpont, az AMD Zen , Zen 2 és Zen 3 processzoraiban megvalósított SMT technológia sebezhetőségét fedezte fel . Az SQUIP [10] nevű sebezhetőség (Scheduler Queue Usage via Interference Probing – az ütemezősor használata interferenciaelemzésen keresztül ) lehetővé teszi a támadók számára, hogy hozzáférjenek a bizalmas adatokhoz, amelyet 2021 decemberében jelentett be az AMD. A sebezhetőség kimutatása során a kutatók „feltörték” az RSA-4096 titkosítási kulcsot [11] [12] . Az AMD a CVE-2021-46778 sebezhetőségi azonosítót és a "közepes" súlyossági besorolást követően 2022 augusztusában közzétett egy enyhítő közleményt [13] .
A szuperskaláris mikroprocesszorok teljesítményét több utasítás egyidejű végrehajtása növeli egy ciklusban, de korlátozzák az utasítások közötti függőségek (amelyek korlátozzák a párhuzamos végrehajtás lehetőségeit, aminek következtében nem hajtható végre a maximális számú utasítás ciklus) és magas késleltetésű műveletek egyetlen végrehajtási szálon belül (amelyek olyan ciklusok megjelenéséhez vezetnek, amelyekben egyetlen utasítást sem hajtanak végre - folyamat leáll ).
A hardveres többszálú architektúrák több szálat hajtanak végre, és gyorsan válthatnak közöttük kontextust. Az ilyen "hagyományos" többszálú feldolgozás elrejti a memória- és funkcióblokk-késleltetéseket (csökkenti az "üres" ciklusok számát), bár egy szál utasításai minden egyes ciklusban végrehajtásra kerülnek. Az egyidejűleg végrehajtható utasítások számának növekedése azonban csökkenti a hagyományos többszálú kezelés képességeit.
A szimultán multithreading a szuperskaláris architektúra utasítások párhuzamos végrehajtását kombinálja a hardveres többszálas kezeléssel. Az egyidejű többszálú feldolgozás a processzor funkcionális moduljainak szálak közötti dinamikus eloszlása miatt növeli a processzor használatát memóriakésések és a szálon belüli utasítások párhuzamos végrehajtásának korlátozott képessége esetén.
Szervezetükben a többmagos mikroprocesszorok állnak a legközelebb az egyidejű többszálú mikroprocesszorokhoz - több regiszterkészlettel, több funkcionális modullal és az egyes magok szuperskalaritásával rendelkeznek. A fő különbség a kettő között az erőforrások elosztása - egy többmagos processzorban minden szál fix számú processzor funkcionális modult kap, míg egy szimultán többszálú processzorban a modulok eloszlása minden ciklusban változik. Ennek eredményeként az egyidejű többszálú processzorok nagyobb teljesítményt mutatnak maximális szálterhelés mellett, és a szálak számának csökkenésével lassabban csökken a teljesítmény a többmagos processzorokhoz képest.
processzortechnológiák | Digitális|||||||||
---|---|---|---|---|---|---|---|---|---|
Építészet | |||||||||
Instruction Set Architecture | |||||||||
gépszó | |||||||||
Párhuzamosság |
| ||||||||
Megvalósítások | |||||||||
Alkatrészek | |||||||||
Energiagazdálkodás |