Samaaegne mitmehäälne töötlemine
Samaaegne mitmikeeramine, lühend SMT, on tehnika, millega parandatakse üliskalaarsete protsessorite üldist tõhusust riistvaralise mitmikeeramise abil. SMT võimaldab mitut sõltumatut täitmisniiti, et paremini kasutada kaasaegsete arvutiarhitektuuride pakutavaid ressursse.
Mitmesideseade on kontseptsioonilt sarnane multitaskingule, kuid seda rakendatakse moodsates superskalaarsetes protsessorites täitmisniidi tasandil.
Protsessori projekteerimisel on kaks võimalust suurendada kiibilikku paralleelsust väiksema ressursinõudlusega:
- Superskalaarne tehnika: mis püüab suurendada käsu taseme paralleelsust (ILP) mitme käsu üheaegse (nimetatakse: samaaegselt) täitmise kaudu; "samaaegselt" käskude saatmise (nimetatakse: käskude saatmine) kaudu mitmele protsessori sisse ehitatud üleliigsele täitmisüksusele.
- Kiibitasandi mitmikeeramise (CMT) tehnika: kasutatakse niiditasandi paralleelsust (TLP), et täita ühe protsessorikiibi piires korraga mitme niidi käske.
On mitmeid viise, kuidas toetada rohkem kui ühte niiti kiibi sees, nimelt:
- Interleaved multithreading (IMT) : mitme käsu järjestikune väljastamine erinevatest lõimedest, mida nimetatakse ka ajaliseks multithreadinguks. Seda võib jagada edasi peeneteraliseks või jämedateraliseks multitöötluseks sõltuvalt interleaved emissioonide sagedusest. Fine-grain multithreading väljastab erinevate niitide juhiseid iga tsükli järel, samas kui coarse-grain multithreading lülitub teise niidi juhiste väljastamisele ainult siis, kui praegune täitev niit põhjustab mõne pika latentsusega sündmuse (nt lehekülje viga jne). Jämedateraline mitmehäälne muutmine on tavalisem, kuna niidid vahetavad vähem konteksti. Protsessorite puhul, millel on üks torujuhtme tuumade kohta, on interleaved multithreading ainus võimalik viis, sest see võib anda välja ainult ühe käsu tsükli kohta.
- Samaaegne mitmikeeramine (SMT): Mitme käsu väljastamine mitmest lõngast ühes tsüklis. Selleks peab protsessor olema superskalaarne.
- Kiibitasandi multiprotsessor (CMP või multi-core processor): integreerib kaks või enam superskalaarset protsessorit ühele kiibile, millest igaüks täidab niite iseseisvalt.
- IMT/SMT/CMP mis tahes kombinatsioon
Nende eristamise võtmeteguriks on vaadata, kui palju käske protsessor suudab ühe tsükli jooksul välja anda ja kui paljudest lõimedest need käsud pärinevad.
Näiteid kaasaegsetest SMT protsessoritest
- Intel Pentium 4 oli esimene kaasaegne lauaarvutiprotsessor, mis rakendas samaaegset mitmikeeramist, alates 2002. aastal välja antud 3,06 GHz mudelist, ja sellest ajast alates võeti see kasutusele mitmetes nende protsessorites. Intel nimetab seda funktsionaalsust Hyper-Threading Technology (HTT) ja pakub põhilist kahe niidi SMT-mootorit. Intel väidab, et kiirus on kuni 30% suurem võrreldes muidu identse, SMT-ta Pentium 4 mudeliga.
- Viimased MIPS-arhitektuuri projektid sisaldavad SMT-süsteemi, mida tuntakse nime all "MIPS MT".
- IBM POWER5, mis kuulutati välja 2004. aasta mais, on kas kahetuumaline DCM või neljatuumaline või kaheksatuumaline MCM, mille iga tuum sisaldab kahe-niidilist SMT-mootorit. IBMi rakendus on keerukam kui eelmised, sest see võib määrata erinevatele lõimedele erineva prioriteedi, on peenema täpsusega ning SMT-mootorit saab dünaamiliselt sisse ja välja lülitada, et paremini täita neid töökoormusi, mille puhul SMT-protsessor ei suurendaks jõudlust. See on IBMi teine üldkasutatava riistvaralise mitmikeeramise rakendus.
- 2008. aastal välja antud Intel Atom on esimene Inteli toode, millel on SMT (mida turustatakse Hyper-threading'ina), kuid mis ei toeta käskude ümberjärjestamist, spekulatiivset täitmist ega registrite ümbernimetamist.
Seotud leheküljed
- Niit (arvutiteadus)
- Paralleelne arvutamine
- Käskude tasandi paralleelsus
- Mitme tuumaga protsessorid
Küsimused ja vastused
K: Mis on samaaegne mitmikeeramine?
V: Samaaegne mitmikeeramine (SMT) on tehnika, millega parandatakse üliskalaarsete protsessorite üldist tõhusust riistvaralise mitmikeeramise abil. See võimaldab mitut sõltumatut täitmisniiti, et paremini kasutada kaasaegsete arvutiarhitektuuride pakutavaid ressursse.
K: Kuidas on SMT võrreldav multitaskinguga?
V: Mitmesidumine on kontseptsioonilt sarnane multitaskinguga, kuid seda rakendatakse kaasaegsetes superskalaarsetes protsessorites täitmisniidi tasandil, samas kui multitasking on rakendatud protsesside tasandil.
K: Millised on kaks võimalust kiibisisese paralleelsuse suurendamiseks?
V: Kaks võimalust kiibisisese paralleelsuse suurendamiseks on superskalaarne tehnika ja kiibitasandi mitmikeeramine (Chip-level multithreading, CMT).
K: Millised on erinevad kiibitasandi mitmeheljelise töötlemise tüübid?
V: Erinevad kiibitasandi multitöötluse tüübid on Interleaved Multithreading (IMT), Fine-Grain Multithreading, Coarse Grain Multithreadin ja Simultaneous Multithreadin (SMT).
K: Kuidas saab vahet teha IMT/SMT/CMP vahel?
V: IMT/SMT/CMP eristamisel on võtmeteguriks see, kui palju käske protsessor suudab ühes tsüklis välja anda ja kui paljudest lõimedest need käsud pärinevad.
K: Millist tüüpi protsessorit tuleb kasutada SMT puhul?
V: SMT puhul tuleb kasutada superskalaarset protsessorit.
K: Millist tüüpi protsessorit kasutab kiibitasandi multiprotsessor?
V: Chip Level MultiProcessing kasutab mitme tuumaga protsessoreid, mis integreerivad ühte kiibile kaks või enam superskalaarset protsessorit, millest igaüks täidab niite iseseisvalt.