Å legge til flere kjerner til én enkelt prosessor gir betydelige fordeler takket være multitasking-naturen til moderne operativsystemer. For enkelte formål er det imidlertid en øvre praktisk grense for hvor mange kjerner som gir forbedringer i forhold til kostnadene ved å legge dem til.
Multi-Core Technology Advances
Prosessorer med flere kjerner har vært tilgjengelig i personlige datamaskiner siden tidlig på 2000-tallet. Flerkjernedesign tok opp problemet med prosessorer som traff taket av sine fysiske begrensninger når det gjelder klokkehastigheter og hvor effektivt de kunne kjøles og fortsatt opprettholde nøyaktigheten. Ved å flytte til ekstra kjerner på en enkelt prosessorbrikke, unngikk produsentene problemer med klokkehastighetene ved effektivt å multiplisere mengden data som kunne håndteres av CPU.
Da de opprinnelig ble utgitt, tilbød produsentene bare to kjerner i en enkelt CPU, men nå er det alternativer for fire, seks og til og med 10 eller flere. I tillegg til å legge til kjerner, kan samtidig multithreading-teknologi – som Intels Hyper-Threading – doble de virtuelle kjernene som operativsystemet ser.
Prosesser og tråder
En prosess er en spesifikk oppgave, som et program, som kjører på en datamaskin. En prosess består av én eller flere tråder.
En tråd er ganske enkelt en enkelt strøm av data fra et program som går gjennom prosessoren på datamaskinen. Hver applikasjon genererer sine egne en-eller-mange tråder avhengig av hvordan den kjører. Uten multitasking kan en enkeltkjerneprosessor bare håndtere en enkelt tråd om gangen, så systemet bytter raskt mellom trådene for å behandle dataene på en tilsynelatende samtidig måte.
Fordelen med å ha flere kjerner er at systemet kan håndtere mer enn én tråd samtidig. Hver kjerne kan håndtere en egen strøm av data. Denne arkitekturen øker ytelsen til et system som kjører samtidige applikasjoner. Siden servere har en tendens til å kjøre mange samtidige applikasjoner på et gitt tidspunkt, ble teknologien opprinnelig utviklet for bedriftskunden – men etter hvert som personlige datamaskiner ble mer komplekse og fleroppgavekjøring økte, hadde de også fordel av å ha ekstra kjerner.
Hver prosess er imidlertid styrt av en primær tråd som bare kan oppta en enkelt kjerne. Dermed er den relative hastigheten til et program som et spill eller en videogjengivelse hardt begrenset til kapasiteten til kjernen som primærtråden bruker. Primærtråden kan absolutt delegere sekundærtråder til andre kjerner – men et spill blir ikke dobbelt så raskt når du dobler kjernene. Dermed er det ikke uvanlig at et spill maksim alt maksim alt har én kjerne (primærtråden), men ser bare delvis utnyttelse av andre kjerner for sekundære tråder. Ingen mengde kjernedobling kommer utenom det faktum at den primære kjernen er en hastighetsbegrenser for applikasjonen din, og apper som er sensitive for denne arkitekturen vil gi bedre resultater enn apper som ikke gjør det.
Software Dependency
Selv om konseptet med flerkjerneprosessorer høres tiltalende ut, er det et stort forbehold med denne teknologien. For at de sanne fordelene med flere prosessorer skal kunne nytes, må programvaren som kjører på datamaskinen være skrevet for å støtte multithreading. Uten programvaren som støtter en slik funksjon, vil tråder primært kjøres gjennom en enkelt kjerne og dermed forringe datamaskinens generelle effektivitet. Tross alt, hvis den bare kan kjøre på en enkelt kjerne i en firekjerners prosessor, kan det faktisk være raskere å kjøre den på en dual-core prosessor med høyere basisklokkehastigheter.
Alle de store gjeldende operativsystemene støtter multithreading. Men multithreading må også skrives inn i applikasjonsprogramvaren. Støtten for multithreading i forbrukerprogramvare har forbedret seg gjennom årene, men for mange enkle programmer er multithreading-støtte fortsatt ikke implementert på grunn av kompleksiteten til programvarebyggingen. Et e-postprogram eller nettleser vil for eksempel sannsynligvis ikke se store fordeler med multithreading like mye som et grafikk- eller videoredigeringsprogram, der datamaskinen behandler komplekse beregninger.
Et godt eksempel for å forklare denne tendensen er å se på et typisk dataspill. De fleste spill krever en eller annen form for gjengivelsesmotor for å vise hva som skjer i spillet. I tillegg styrer en slags kunstig intelligens hendelser og karakterer i spillet. Med en enkeltkjerne utføres begge oppgavene ved å bytte mellom dem. Denne tilnærmingen er ikke effektiv. Hvis systemet inneholdt flere prosessorer, kunne gjengivelsen og AI kjøres på hver sin kjerne - en ideell situasjon for en flerkjerneprosessor.
Is 8 > 4 > 2?
Å gå utover to kjerner gir blandede fordeler, gitt at svaret for en gitt datamaskinkjøper avhenger av programvaren han eller hun vanligvis bruker. For eksempel tilbyr mange klassiske spill fortsatt liten ytelsesforskjell mellom to og fire kjerner. Selv moderne spill - hvorav noen angivelig krever eller støtter åtte kjerner - vil kanskje ikke gi bedre resultater enn en sekskjerners maskin med høyere basisklokkehastighet, gitt at effektiviteten til primærtråden styrer effektiviteten til flertråds ytelse.
På den annen side vil et videokodingsprogram som omkoder video sannsynligvis se store fordeler ettersom individuell bildegjengivelse kan overføres til forskjellige kjerner og deretter samles til én enkelt strøm av programvaren. Dermed vil det være enda mer fordelaktig å ha åtte kjerner enn å ha fire. I hovedsak trenger ikke primærtråden relativt rike ressurser; i stedet kan den bruke det harde arbeidet til dattertråder som maksimerer prosessorens kjerner.
Klokkehastigheter
Generelt sett vil en høyere klokkehastighet bety en raskere prosessor. Klokkehastigheter blir mer uklare når du vurderer hastigheter i forhold til flere kjerner fordi prosessorer knuser flere datatråder takket være de ekstra kjernene, men hver av disse kjernene vil kjøre med lavere hastigheter på grunn av termiske restriksjoner.
For eksempel kan en dual-core prosessor støtte basisklokkehastigheter på 3,5 GHz for hver prosessor, mens en firekjerners prosessor bare kan kjøre på 3,0 GHz. Bare ser på en enkelt kjerne på hver av dem, er dual-core prosessoren 14 prosent raskere enn på firekjernene. Dermed, hvis du har et program som kun er en-trådet, er dual-core prosessoren faktisk mer effektiv. Så igjen, hvis programvaren din kan bruke alle fire prosessorene, vil firekjerners prosessor faktisk være omtrent 70 prosent raskere enn den tokjerneprosessoren.
Konklusjoner
For det meste er det generelt bedre å ha en prosessor med høyere kjernetall hvis programvaren og typiske brukstilfeller støtter det. For det meste vil en dual-core eller quad-core prosessor være mer enn nok strøm for en grunnleggende datamaskinbruker. Flertallet av forbrukerne vil ikke se noen konkrete fordeler ved å gå utover fire prosessorkjerner fordi så lite ikke-spesialisert programvare drar nytte av det. Den beste brukssaken for prosessorer med høyt antall kjerner gjelder maskiner som utfører komplekse oppgaver som skrivebordsvideoredigering, noen former for avansert spilling eller kompliserte vitenskaps- og matematikkprogrammer.
Sjekk våre tanker om hvor rask PC trenger jeg? for å få et bedre inntrykk av hvilken type prosessor som passer best til dine databehov.