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:

  1. 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.
  2. 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:

  1. 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.
  2. Gelijktijdige multithreading (SMT): Geef meerdere instructies van meerdere threads in één cyclus. De processor moet superscalair zijn om dit te kunnen doen.
  3. Chip-level multiprocessing (CMP of Multi-core processor): integreert twee of meer superscalaire processoren in één chip, die elk afzonderlijk threads uitvoeren.
  4. 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

  1. 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.
  2. De nieuwste MIPS-architectuurontwerpen bevatten een SMT-systeem dat bekend staat als "MIPS MT".
  3. 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.
  4. 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


AlegsaOnline.com - 2020 / 2021 - License CC3