Gelijktijdige multithreading
Simultaan multithreading, acroniem SMT, is een techniek om de algemene efficiëntie van superscalaire CPU's met Hardware multithreading te verbeteren. SMT maakt het mogelijk om meerdere onafhankelijke threads van de uitvoering te gebruiken om beter gebruik te maken van de middelen die de moderne computerarchitectuur biedt.
Multithreading is qua concept vergelijkbaar met multitasking, maar wordt op het schroefdraadniveau van de uitvoering in moderne superscalaire processoren geïmplementeerd.
In het processorontwerp zijn er twee manieren om het parallellisme op de chip te vergroten met minder eisen aan de grondstoffen:
- Superscalaire techniek: die probeert het parallellisme van het instructieniveau (ILP) te verhogen door meerdere instructies tegelijkertijd uit te voeren (de zogenaamde 'simultane' verzending van instructies) naar meerdere redundante uitvoeringseenheden die in de processor zijn ingebouwd.
- Chip-level multithreading (CMT) techniek: met behulp van Thread level parallellisme (TLP) om instructies van meerdere threads binnen één processorchip tegelijkertijd uit te voeren.
Er zijn vele manieren om meer dan één draad in een chip te ondersteunen, namelijk:
- Interleaved multithreading (IMT) : Interleaved uitgave van meerdere instructies van verschillende draden, ook wel Temporal multithreading genoemd. Het kan verder worden onderverdeeld in fijnkorrelige multithreading of grofkorrelige multithreading, afhankelijk van de frequentie van de interleaved-problematiek. Fijnkorrelige multithreading geeft instructies voor verschillende threads na elke cyclus, terwijl grofkorrelige multithreading alleen overschakelt naar instructies van een andere thread wanneer de huidige uitvoerende thread een aantal lange latentie-events veroorzaakt (zoals paginafout enz.). Grofkorrelige multithreading is gebruikelijker voor minder contextschakeling tussen de threads. Voor processoren met één pijpleiding per kern is interleaved multithreading de enige mogelijke manier, omdat het slechts één instructie per cyclus kan geven.
- Gelijktijdige multithreading (SMT): Geef meerdere instructies van meerdere threads in één cyclus. De processor moet superscalair zijn om dit te kunnen doen.
- Chip-level multiprocessing (CMP of Multi-core processor): integreert twee of meer superscalaire processoren in één chip, die elk afzonderlijk threads uitvoeren.
- Elke combinatie van IMT/SMT/CMP
De belangrijkste factor om ze te onderscheiden is om te kijken hoeveel instructies de processor kan geven in één cyclus en hoeveel draden van welke instructies komen.
Voorbeelden van moderne SMT CPU's
- De Intel Pentium 4 was de eerste moderne desktop-processor die gelijktijdig multithreading implementeerde, vanaf het 3.06GHz model dat in 2002 werd uitgebracht, en sindsdien in een aantal van hun processoren werd geïntroduceerd. Intel noemt de functionaliteit Hyper-Threading Technology (HTT), en biedt een basis twee-draads SMT-engine. Intel claimt een snelheidsverbetering tot 30% ten opzichte van een overigens identieke, niet-SMT Pentium 4.
- De nieuwste MIPS-architectuurontwerpen bevatten een SMT-systeem dat bekend staat als "MIPS MT".
- De IBM POWER5, aangekondigd in mei 2004, wordt geleverd als dual core DCM, of als quad-core of 8-core MCM, met elke core inclusief een twee-draads SMT-motor. De implementatie van IBM is geavanceerder dan de vorige, omdat het een andere prioriteit kan toekennen aan de verschillende threads, fijnkorreliger is en de SMT-engine dynamisch kan worden in- en uitgeschakeld, om die werklasten beter uit te voeren waar een SMT-processor de prestaties niet zou verhogen. Dit is IBM's tweede implementatie van algemeen beschikbare hardware multithreading.
- De Intel Atom, uitgebracht in 2008, is het eerste Intel-product dat voorzien is van SMT (op de markt gebracht als Hyper-threading) zonder ondersteuning van instructie herindeling, speculatieve uitvoering, of het hernoemen van registers.
Gerelateerde pagina's
- Draad (informatica)
- Parallelle computergebruik
- Parallellisme op instructieniveau
- Multi-core processoren
Vragen en antwoorden
V: Wat is simultane multithreading?
A: Simultaneous multithreading (SMT) is een techniek om de algemene efficiëntie van superscalaire CPU's met Hardware multithreading te verbeteren. Het maakt meerdere onafhankelijke threads van uitvoering mogelijk om de middelen die door moderne computerarchitecturen ter beschikking worden gesteld, beter te benutten.
V: Hoe is SMT te vergelijken met multitasking?
A: Multithreading is qua concept vergelijkbaar met multitasking, maar wordt in moderne superscalaire processoren geïmplementeerd op het niveau van de threaduitvoering, terwijl multitasking wordt geïmplementeerd op procesniveau.
V: Wat zijn twee manieren om het parallellisme op de chip te vergroten?
A: De twee manieren om het parallellisme op de chip te verhogen zijn de superscalaire techniek en chip-level multithreading (CMT).
V: Wat zijn enkele verschillende soorten multithreading op chipniveau?
A: Verschillende soorten multithreading op chipniveau zijn Interleaved Multithreading (IMT), Fine-Grain Multithreading, Coarse Grain Multithreadin, en Simultaneous Multithreadin (SMT).
V: Hoe kunt u onderscheid maken tussen IMT/SMT/CMP?
A: De belangrijkste factor om onderscheid te maken tussen IMT/SMT/CMP is kijken naar hoeveel instructies de processor in één cyclus kan geven en van hoeveel threads de instructies afkomstig zijn.
V: Welk type processor moet worden gebruikt voor SMT?
A: Voor SMT moet een superscalaire processor worden gebruikt.
V: Welk type processor gebruikt Chip Level MultiProcessing?
A: Chip Level MultiProcessing gebruikt multikernprocessoren die twee of meer superscalaire processoren in één chip integreren, die elk onafhankelijk van elkaar threads uitvoeren.