Simultan multitrådning
Simultaneous multithreading, förkortning SMT, är en teknik för att förbättra den totala effektiviteten hos superskalära CPU:er med hårdvarumultithreading. SMT tillåter flera oberoende exekveringssträngar för att bättre utnyttja de resurser som moderna datorarkitekturer tillhandahåller.
Multitrådning liknar konceptet för multitasking men implementeras på trådnivå i moderna superskalära processorer.
Vid processordesign finns det två sätt att öka parallelliteten på chipet med mindre resurskrav:
- Superskalär teknik: som försöker öka parallelliteten på instruktionsnivå (ILP) genom att utföra flera instruktioner samtidigt (kallat "samtidigt"), genom att "samtidigt" skicka instruktioner (kallat "instruction dispatching") till flera redundanta exekveringsenheter som är byggda inuti processorn.
- CMT-teknik (chip-level multithreading): använder trådnivåparallellism (TLP) för att utföra instruktioner från flera trådar inom ett processorkretslopp samtidigt.
Det finns många sätt att stödja mer än en tråd i ett chip, nämligen:
- Interleaved multithreading (IMT) : Interleaved utfärdande av flera instruktioner från olika trådar, även kallat Temporal multithreading. Det kan delas in i finkornig multitrådning eller grovkornig multitrådning beroende på hur ofta de interleaved frågorna sker. Fine-grain multithreading utfärdar instruktioner för olika trådar efter varje cykel, medan coarse-grain multithreading endast övergår till att utfärda instruktioner från en annan tråd när den aktuella tråden orsakar några händelser med lång latenstid (t.ex. page fault etc.). Grovkornig multitrådning är vanligare för mindre kontextväxling mellan trådar. För processorer med en pipeline per kärna är interleaved multithreading det enda möjliga sättet, eftersom det bara kan utfärda upp till en instruktion per cykel.
- Simultan multitrådning (SMT): Utfärda flera instruktioner från flera trådar i en och samma cykel. Processorn måste vara superskalär för att kunna göra detta.
- Multiprocessering på chipnivå (CMP eller flerkärnig processor): integrerar två eller flera superskalära processorer i ett chip, var och en utför trådar oberoende av varandra.
- Någon kombination av IMT/SMT/CMP
Den viktigaste faktorn för att skilja dem åt är att titta på hur många instruktioner processorn kan utfärda under en cykel och hur många trådar som instruktionerna kommer från.
Exempel på moderna SMT-processorer
- Intel Pentium 4 var den första moderna stationära processorn som införde samtidig flertrådning, från och med 3,06 GHz-modellen som släpptes 2002 och sedan dess i ett antal av deras processorer. Intel kallar funktionaliteten Hyper-Threading Technology (HTT) och tillhandahåller en grundläggande SMT-motor med två trådar. Intel hävdar att hastigheten förbättras med upp till 30 % jämfört med en identisk Pentium 4 utan SMT.
- De senaste MIPS-arkitekturkonstruktionerna innehåller ett SMT-system som kallas "MIPS MT".
- IBM POWER5, som tillkännagavs i maj 2004, finns antingen som DCM med två kärnor eller MCM med fyra eller åtta kärnor, där varje kärna innehåller en SMT-motor med två trådar. IBM:s implementering är mer sofistikerad än de tidigare, eftersom den kan tilldela de olika trådarna olika prioritet, är mer finkornig och SMT-motorn kan slås på och stängas av dynamiskt för att bättre kunna utföra de arbetsbelastningar där en SMT-processor inte skulle öka prestandan. Detta är IBM:s andra implementering av allmänt tillgänglig maskinvaru-multitrådning.
- Intel Atom, som släpptes 2008, är den första Intel-produkten som har SMT (marknadsförd som Hyper-threading) utan stöd för omordnande av instruktioner, spekulativ exekvering eller omdöpning av register.
Relaterade sidor
- Tråd (datavetenskap)
- Parallell beräkning
- Parallellism på instruktionsnivå
- Processorer med flera kärnor
Frågor och svar
F: Vad är simultan multitrådning?
S: Simultaneous multithreading (SMT) är en teknik för att förbättra den totala effektiviteten hos superskalära CPU:er med hårdvarumultithreading. Den tillåter flera oberoende exekveringssträngar för att bättre utnyttja de resurser som tillhandahålls av moderna datorarkitekturer.
F: Hur kan SMT jämföras med multitasking?
S: Multithreading liknar konceptet för multitasking, men det genomförs på trådnivå i moderna superskalära processorer, medan multitasking genomförs på processnivå.
F: Vilka är två sätt att öka parallelliteten på chipet?
S: De två sätten att öka parallelliteten på chipet är superskalär teknik och multithreading på chipnivå (CMT).
Fråga: Vilka är de olika typerna av multithreading på chipnivå?
S: De olika typerna av multithreading på chipnivå omfattar Interleaved Multithreading (IMT), Fine-Grain Multithreading, Coarse Grain Multithreadin och Simultaneous Multithreadin (SMT).
F: Hur kan man skilja mellan IMT/SMT/CMP?
S: Den viktigaste faktorn för att skilja mellan IMT/SMT/CMP är att titta på hur många instruktioner processorn kan utfärda under en cykel och hur många trådar som instruktionerna kommer från.
F: Vilken typ av processor måste användas för SMT?
S: För SMT måste en superskalär processor användas.
F: Vilken typ av processor används vid Chip Level MultiProcessing?
S: Chip Level MultiProcessing använder flerkärniga processorer som integrerar två eller flera superskalära processorer i ett chip, var och en utför trådar oberoende av varandra.