Saltar al contenido

Flera kärnprocessorer: Är mer alltid bättre?

23 de junio de 2021
001 832453 5b9848d7c9e77c0050ec9b39

Att lägga till flera kärnor till en enda processor ger betydande fördelar tack vare multitasking-karaktären hos moderna operativsystem. För vissa ändamål finns det dock en övre praktisk gräns för hur många kärnor som ger förbättringar i förhållande till kostnaden för att lägga till dem.

Multikärniga tekniska framsteg

Flerkärniga processorer har funnits i persondatorer sedan början av 2000-talet. Multikärnkonstruktioner tog upp problemet med att processorer träffar taket för sina fysiska begränsningar när det gäller deras klockhastigheter och hur effektivt de kan kylas och ändå behålla noggrannheten. Genom att flytta till extra kärnor på ett enda processorchip undviker tillverkare problem med klockhastigheterna genom att effektivt multiplicera mängden data som kan hanteras av CPU: n. När de ursprungligen släpptes erbjöd tillverkarna bara två kärnor i en enda processor, men nu finns det alternativ för fyra, sex och till och med 10 eller mer. Förutom att lägga till kärnor kan samtidig multithreading-teknik – som Intels Hyper-Threading – fördubbla de virtuella kärnor som operativsystemet ser.

Processer och trådar

A bearbeta är en specifik uppgift, som ett program, som körs på en dator. En process består av en eller flera trådar. A tråd är helt enkelt en enda dataström från ett program som passerar genom processorn på datorn. Varje applikation genererar sina egna en-eller-många trådar beroende på hur den körs. Utan multitasking kan en enda kärnprocessor bara hantera en enda tråd åt gången, så systemet växlar snabbt mellan trådarna för att bearbeta data på ett till synes samtidigt sätt. Fördelen med att ha flera kärnor är att systemet kan hantera mer än en tråd samtidigt. Varje kärna kan hantera en separat dataström. Denna arkitektur ökar kraftigt prestandan för ett system som kör samtidiga applikationer. Eftersom servrar tenderar att köra många samtidiga applikationer vid en given tidpunkt, utvecklades tekniken ursprungligen för företagskunden – men när persondatorer blev mer komplexa och multitasking ökade, gynnades också de av att ha extra kärnor. Varje process styrs dock av en primär tråd som bara kan uppta en enda kärna. Således är den relativa hastigheten för ett program som ett spel eller en videoredigerare svårt begränsad till förmågan hos kärnan som den primära tråden förbrukar. Primärtråden kan absolut delegera sekundära trådar till andra kärnor – men ett spel blir inte dubbelt så snabbt när du dubblar kärnorna. Således är det inte ovanligt att ett spel maximerar en kärna (den primära tråden) utan ser endast delvis användning av andra kärnor för sekundära trådar. Ingen mängd kärndubblering kommer runt det faktum att den primära kärnan är en hastighetsbegränsare för din applikation och appar som är känsliga för denna arkitektur kommer att prestera bättre än appar som inte är det.

Programvaruberoende

Medan konceptet med processorer med flera kärnor låter tilltalande, finns det en stor varning för denna teknik. För att de verkliga fördelarna med flera processorer ska kunna uppnås måste programvaran som körs på datorn skrivas för att stödja multithreading. Utan programvaran som stöder en sådan funktion kommer trådar främst att köras genom en enda kärna, vilket försämrar datorns totala effektivitet. När allt kommer omkring, om det bara kan köras på en enda kärna i en fyrkärnig processor, kan det faktiskt vara snabbare att köra den på en dubbelkärnig processor med högre basklockhastigheter. Alla de viktigaste nuvarande operativsystemen stöder multithreading-kapacitet. Men multithreading måste också skrivas in i programvaran. Stödet för multithreading i konsumentprogramvara har förbättrats genom åren men för många enkla program implementeras multithreading-stöd fortfarande inte på grund av komplexiteten i programvarubyggningen. Till exempel är det inte troligt att ett e-postprogram eller en webbläsare ser stora fördelar med multitrådning lika mycket som ett grafik- eller videoredigeringsprogram, där datorn bearbetar komplexa beräkningar. Ett bra exempel för att förklara denna tendens är att titta på ett typiskt dataspel. De flesta spel kräver någon form av renderingsmotor för att visa vad som händer i spelet. Dessutom styr någon form av artificiell intelligens händelser och karaktärer i spelet. Med en enda kärna utför båda uppgifterna genom att växla mellan dem. Detta tillvägagångssätt är inte effektivt. Om systemet innehöll flera processorer, kunde rendering och AI köras på en separat kärna – en idealisk situation för en processor med flera kärnor.

Är 8> 4> 2?

Att gå längre än två kärnor ger blandade fördelar, med tanke på att svaret för en viss datorköpare beror på vilken programvara han eller hon vanligtvis använder. Till exempel erbjuder många klassiska spel fortfarande liten skillnad i prestanda mellan två och fyra kärnor. Även moderna spel – varav vissa påstås kräva eller stödja åtta kärnor – kanske inte fungerar bättre än en sexkärnig maskin med högre basklockhastighet, med tanke på att primärtrådens effektivitet styr effektiviteten hos flertrådade prestanda. Å andra sidan kommer ett videokodningsprogram som kodar om video sannolikt att se stora fördelar eftersom individuell bildåtergivning kan skickas till olika kärnor och sedan samlas i en enda ström av programvaran. Att ha åtta kärnor kommer således att vara ännu mer fördelaktigt än att ha fyra. I grund och botten behöver inte den primära tråden relativt rika resurser; istället kan det utarbeta det hårda arbetet till dottertrådar som maximerar processorns kärnor.

Klockhastigheter

Aktivitetshanteraren visar CPU-användning

Generellt sett innebär en högre klockhastighet en snabbare processor. Klockhastigheterna blir mer otydliga när man tänker på hastigheter i förhållande till flera kärnor eftersom processorer krossar flera datatrådar tack vare de extra kärnorna men var och en av dessa kärnor körs med lägre hastigheter på grund av de termiska begränsningarna. Till exempel kan en processor med dubbla kärnor stödja basklockhastigheter på 3,5 GHz för varje processor medan en fyrkärnig processor endast kan köras vid 3,0 GHz. Om man bara tittar på en enda kärna på var och en av dem är dual-core-processorn 14 procent snabbare än på fyrkärnan. Således, om du har ett program som bara är engängad, är dual-core-processorn faktiskt mer effektiv. Återigen, om din programvara kan använda alla fyra processorerna, kommer fyrkärnprocessorn faktiskt att vara cirka 70 procent snabbare än den dubbla kärnprocessorn.

Slutsatser

För det mesta är det i allmänhet bättre att ha en processor med högre kärnantal om din programvara och typiska användningsfall stöder det. För det mesta kommer en dual-core eller quad-core processor att vara mer än tillräckligt med ström för en grundläggande datoranvändare. Majoriteten av konsumenterna ser inga konkreta fördelar med att gå längre än fyra processorkärnor eftersom så lite icke-specialiserad programvara utnyttjar den. Det bästa användningsfallet för processorer med hög kärnavtal är relaterade till maskiner som utför komplexa uppgifter som skrivbordsvideoredigering, vissa former av avancerat spel eller komplicerade naturvetenskapliga och matematiska program. Kolla in våra tankar om hur snabb en dator behöver jag? för att få en bättre uppfattning om vilken typ av processor som bäst matchar dina datorbehov.