Att lägga till flera kärnor till en enda processor ger betydande fördelar tack vare multitasking-karaktären hos moderna operativsystem. Men för vissa ändamål finns det 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.
Multi-Core Technology Advances
Processorer med flera kärnor har varit tillgängliga i persondatorer sedan början av 2000-talet. Flerkärniga konstruktioner åtgärdade problemet med att processorer når taket för sina fysiska begränsningar när det gäller deras klockhastigheter och hur effektivt de kunde kylas och ändå bibehålla noggrannheten. Genom att flytta till extra kärnor på ett enda processorchip undvek tillverkarna problem med klockhastigheterna genom att effektivt multiplicera mängden data som kunde hanteras av CPU:n.
När de ursprungligen släpptes erbjöd tillverkarna bara två kärnor i en enda CPU, men nu finns det alternativ för fyra, sex och till och med 10 eller fler. Förutom att lägga till kärnor kan simultan multithreading-teknik – som Intels Hyper-Threading – fördubbla de virtuella kärnor som operativsystemet ser.
Processer och trådar
En process är en specifik uppgift, som ett program, som körs på en dator. En process består av en eller flera trådar.
En tråd är helt enkelt en enda ström av data från ett program som passerar genom processorn på datorn. Varje applikation genererar sina egna en eller flera trådar beroende på hur den körs. Utan multitasking kan en enkärnig processor 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 avsevärt 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öretagskunder - men i takt med att persondatorer blev mer komplexa och multitasking ökade, gynnades även 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 videorenderare hårt begränsad till kapaciteten hos kärnan som den primära tråden förbrukar. Den primära trå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. Det är alltså inte ovanligt att ett spel helt maxar en kärna (den primära tråden) men ser endast partiell användning av andra kärnor för sekundära trådar. Ingen mängd kärnfördubbling 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 den här arkitekturen kommer att prestera bättre än appar som inte gör det.
Software Dependency
Konceptet med flerkärniga processorer låter tilltalande, men det finns en stor varning för denna teknik. För att de verkliga fördelarna med de flera processorerna ska kunna utnyttjas måste programvaran som körs på datorn vara skriven för att stödja multithreading. Utan programvaran som stöder en sådan funktion kommer trådar i första hand att köras genom en enda kärna, vilket försämrar datorns totala effektivitet. När allt kommer omkring, om den 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 stora nuvarande operativsystemen stöder multithreading. Men multithreading måste också skrivas in i applikationsmjukvaran. Stödet för multithreading i konsumentprogramvara har förbättrats under åren, men för många enkla program är multithreading-stöd fortfarande inte implementerat på grund av mjukvarubyggets komplexitet. Till exempel är det inte troligt att ett e-postprogram eller en webbläsare kommer att se 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 datorspel. De flesta spel kräver någon form av renderingsmotor för att visa vad som händer i spelet. Dessutom styr någon sorts artificiell intelligens händelser och karaktärer i spelet. Med en enkärna utförs båda uppgifterna genom att växla mellan dem. Detta tillvägagångssätt är inte effektivt. Om systemet innehöll flera processorer kunde renderingen och AI var och en köras på en separat kärna - en idealisk situation för en flerkärnig processor.
Is 8 > 4 > 2?
Att gå längre än två kärnor ger blandade fördelar, med tanke på att svaret för en given datorköpare beror på vilken programvara han eller hon vanligtvis använder. Till exempel erbjuder många klassiska spel fortfarande liten prestandaskillnad mellan två och fyra kärnor. Till och med moderna spel - av vilka några påstås kräva eller stödja åtta kärnor - kanske inte presterar bättre än en sexkärnig maskin med högre basklockhastighet, med tanke på att effektiviteten hos den primära tråden styr effektiviteten hos multitrådad prestanda.
Å andra sidan kommer ett videokodningsprogram som omkodar video sannolikt att se enorma fördelar eftersom individuell bildåtergivning kan överföras till olika kärnor och sedan sammanställas till en enda ström av programvaran. Att ha åtta kärnor kommer alltså att vara ännu mer fördelaktigt än att ha fyra. I huvudsak behöver den primära tråden inte jämförelsevis rika resurser; istället kan den lägga ut det hårda arbetet till dottertrådar som maximerar processorns kärnor.
Klockhastigheter
I allmänna termer innebär en högre klockhastighet en snabbare processor. Klockhastigheterna blir mer oklara när du tar hänsyn till 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 kommer att köras med lägre hastigheter på grund av de termiska begränsningarna.
Till exempel kan en dubbelkärnig processor stödja basklockhastigheter på 3,5 GHz för varje processor medan en fyrkärnig processor bara kan köras på 3,0 GHz. Bara om man tittar på en enskild kärna på var och en av dem är dual-core-processorn 14 procent snabbare än på fyrkärniga. Således, om du har ett program som bara är entrådigt, är dual-core processorn faktiskt mer effektiv. Återigen, om din programvara kan använda alla fyra processorerna, kommer den fyrkärniga processorn faktiskt att vara cirka 70 procent snabbare än den tvåkärniga processorn.
slutsatser
För det mesta är det bättre att ha en processor med högre antal kärnor om din programvara och typiska användningsfall stödjer det. För det mesta kommer en dual-core eller quad-core processor att vara mer än tillräckligt med kraft för en vanlig datoranvändare. Majoriteten av konsumenterna kommer inte att se några påtagliga fördelar med att gå längre än fyra processorkärnor eftersom så lite icke-specialiserad programvara drar fördel av det. Det bästa användningsfallet för processorer med högt antal kärnor hänför sig till maskiner som utför komplexa uppgifter som videoredigering på skrivbordet, vissa former av avancerade spel eller komplicerade naturvetenskapliga och matematikprogram.
Kolla in våra tankar om hur snabb dator behöver jag? för att få en bättre uppfattning om vilken typ av processor som bäst matchar dina datorbehov.