JavaScript is currently disabled.Please enable it for a better experience of Jumi. Fler trådar och kärnor räddar Moores lag

Avancerad parallellism spar energi och höjer prestanda

Allt fler processorer har multikärnor (CMP) och multitrådning (SMT).Det handlar om att utnyttja potentiell parallellitet mellan program, där tidigare processorer hållit sig inom ett enda. Både CMP och SMT hittar spännande användning i inbyggda system.
Här är ett urval processorer som använder SMT eller CMP.

* Clearspeed CS301, (sextiofyra åttatrådiga kärnor),

* Intel Pentium 4 (tvåtrådad kärna),

* IBM Power 4 (två kärnor),

* IBM Power 5 (två tvåtrådiga kärnor under år 2004),

* Intel Itanium 2 (två kärnor under år 2005),

* Sun Majc (två kärnor, utgången modell),

* Infineon Tricore-2 (tvåtrådad kärna).
Energiförbrukningen i mobiltelefonen sjönk till en femtedel när forskarna i en simulering ökade antalet processorkärnor från en till fyra.

En enda multitrådad processorkärna från Mips kan, enligt företaget, ersätta en kombination bestående av en signalprocessor och applikationsprocessor.

Ovanstående är två exempel på hur inbyggda system kan dra nytta av de nya avancerade tekniker för så kallad trådparallellism som just nu introduceras i allt fler processorer.

Beteckningen används på teknik som gör processorn skickligare på att exekvera flera olika program samtidigt, vilket är allt vanligare i inbyggda system. En mobiltelefon kör samtidigt program som hanterar samtal, bildkodning, kryptering och grafik. Nätverkskretsar hanterar flera samtidiga dataströmmar. Och så vidare. Varje program genererar en tråd av instruktioner, en "programtråd", som inbyggnadsprocessorn kontinuerligt växlar mellan.

Efterfrågan på parallellism i inbyggda system passar lyckligtvis som hand i handske med processorutvecklingen. Vi måste parallellisera mer om Moores lag ska kunna fortsätta gälla. Finns inga naturliga parallella trådar måste programmeraren, kompilatorn eller hårdvaran försöka konstruera dem.

Ett nödvändigt gott

Trådparallellism är det senaste steget i jakten på parallellism i processorer. Det första steget var rörledningar (pipelines) som avkodar en instruktion samtidigt som föregående exekveras och nästa hämtas. Cykeln hämta-avkoda-exekvera består av upp till 20 steg idag. Vitsen med många steg är att vart och ett blir enkelt och klockhastigheten därmed kan skruvas upp.

Sedan kom den så kallade superskalära processorn med flera parallella rörledningar och hårdvara som dynamiskt fördelar instruktionerna mellan dem.

Det blir dock allt svårare att hitta instruktioner att fylla rören med. Ett grundproblem är att instruktionerna beror av varandra. Innan den ena kan starta måste den andra vara klar. Då uppstår väntetider, luckor i rörledningen.

En betydande flaskhals är minnesåtkomst, som kan ta hundratals klockcykler. Om alla instruktioner väntar på minne kan ingen exekvera.

Snart sagt alla möjligheter har prövats att fylla rören till hundra procent. Instruktioner exekveras i fel ordning. Instruktioner som bara kanske ska exekveras kastas glatt in i rörledningen - visar det sig ha varit i onödan stryks ett streck över kalkylen. Idag kan instruktioner som ligger 5-6 villkorliga hopp längre fram i programmet plockas in i rörledningarna. Det ställer höga krav på hårdvarans förmåga att gissa rätt programväg.

Växla tråd på nolltid

All potentiell instruktionsparallellism i en ensam programtråd är i stort sett utforskad. Likväl blir inte rörledningarna fulla. Därför lanseras nu Simultaneous Multi Threading (SMT) i allt fler processorer.

SMT innebär att processorn fyller rören med instruktioner från olika programtrådar. Eftersom trådarna nästan alltid är oberoende, ger detta färre luckor.

En stor vinst ligger i att kunna växla tråd vid minnesaccess. Vinsten är så stor att vissa processorer har detta som sin enda trådväxlingsstrategi.

Processorföretaget Mips har upptäckt en helt annan möjlighet med SMT. Programmeraren kan reservera var n:te klockcykel till en viss tråd. Det gör det realistiskt att schemalägga realtidstrådar med mycket kort periodtid, kanske en tusendel av den periodtid ett RTOS kan ge. Ett RTOS kan inte växla tråd mitt i rörledningen och den måste dessutom byta ut registerinnehållet. Medan en SMT-processor kan växla tråd på en enda klockcykel. Eller till och med noll cykler, om den kan starta instruktioner från olika programtrådar samtidigt.

Realtidstråden kan agera signalprocessor, föreslår Mips. övriga trådar kan ägnas åt mjuka program. En signal- plus en applikationsprocessor är en vanlig lösning i till exempel avancerade mobiltelefoner.

SMT har kommit för att stanna. Men tekniken kommer att nå en gräns där den måste ersättas av, eller kompletteras med, multiprocessorer (Chip Multi Processors, CMP).

Processorkärnor kan inte bli så mycket mer komplexa än de är idag. De måste snart vända och bli enklare igen om Moores lag ska kunna fortsätta gälla.

Det är uppenbart att en allt mindre del av kretsyta nås under en klockcykel när frekvensen ökar. Vad som inte är lika uppenbart, men likväl sant, är att allt färre grindar kommer att bli nåbara under en klockcykel. När processtekniken krymper ändras kapacitans och resistans i de allt tunnare ledningarna på ett sådant sätt att antalet klockpulser för en signal att färdas mellan funktionsenheter snart börjar öka.

Grindar kommer att finnas i överflöd, men allt färre kommer att kunna nås under en klockcykel.

En indikation på att problemet närmar sig är att två av de 20 rörledningsstegen i Pentium 4 bara är fördröjningar för att invänta och driva signaler över kretsen.

Processorkärnorna måste alltså bli mindre komplexa. Istället får man använda CMP för att öka parallellismen.

Kretsytan befolkas med oberoende processorkärnor som arbetar som parallelldatorer arbetar idag, med snabba bussar mellan separata processorer, chips och kort. Men i en CMP är allt nedskalat till ytan av en enda krets.

Hela jobbet, halva energin

Pc- och servervärlden håller just nu på att upptäcka CMP. IBMs Power4 var först med två kärnor. Suns kommande Niagara har åtta kärnor, med fyra trådar vardera -ÊSMT och CMP kan kombineras.

Inbyggnadsvärlden ligger långt före inom CMP. Här kryllar av framför allt kommunikationsprocessorer med upp till hundratals processorer. Detta eftersom CMP ger hög beräkningskraft.

CMP ger också en betydande energibesparing. Två 50 MHz-processorer gör samma jobb som en 100 MHz-processor, men med halva energiåtgången.

CMP kan kombineras med frekvens- och spänningsstyrning. De olika kärnorna kan köras på olika frekvenser eller helt stängas av. Den mesta tiden kanske mobilprocessorns fyra kärnor sover. Vid samtal väcks en, vid videosamtal några till. Varje processor kan vara enkel och skräddarsydd för sin uppgift.

Med spänningsmatningen avstängd försvinner dessutom den statiska effektförbrukningen. Den äter 15 procent av energin idag. Och ökar dramatiskt när geometrierna krymper.

Jan Tångring

Prenumerera på Elektroniktidningens nyhetsbrev eller på vårt magasin.


MER LÄSNING:
 
KOMMENTARER
Kommentarer via Disqus

Rainer Raitasuo

Rainer
Raitasuo

+46(0)734-171099 rainer@etn.se
(sälj och marknads­föring)
Per Henricsson

Per
Henricsson
+46(0)734-171303 per@etn.se
(redaktion)

Jan Tångring

Jan
Tångring
+46(0)734-171309 jan@etn.se
(redaktion)