Om man ser sig omkring på dagens processormarknad kan det tyckas som om chiptillverkarna har beslutat sig för att skriva in sig i Guinness rekordbok. ”AMD presenterar Threadripper 2290WX 32-kärnig processor”! ”Intel har släppt Core i7-8086K-processorn, som kan överklockas med upp till 5 %.0 GHz”! Nya prestandarekord sätts varje år och det är lätt att bli förvirrad över om antalet kärnor eller klockfrekvensen är bättre?
Låt oss försöka lösa det.
En liten analogi
Låt oss säga att du behöver flytta en last. Massor av last. Det finns två alternativ – att transportera en mycket snabb maskin eller flera långsamma maskiner.
Genom att använda ett fåtal långsamma maskiner kan du flytta mycket gods, men inte särskilt snabbt. Låt oss säga att den reser från en stad till en annan i tre dagar. Men det kommer på en gång, och det är bra.
En snabb maskin kan transportera lite mindre last. Men det tar bara en dag att åka från en stad till en annan. Men sedan måste hon åka tillbaka, hämta resten av lasten och föra den tillbaka igen, och igen, och igen.
Den idealiska lösningen på detta problem är att använda flera snabba maskiner! Då kommer mycket gods att transporteras, och det kommer bara att ta en dag. Men tyvärr lever vi inte i en idealisk värld.
Man skulle kunna tro att detta inte har något att göra med processorer? Bara en ”hög med nyttolast” – den mängd beräkningar som ett chip måste utföra. ”Många långsamma maskiner” är några få kärnor med låg prestanda. Och ”en snabb” är en högpresterande kärna med högre klockfrekvens.
Beslutet om ”hög klockfrekvens eller många kärnor” beror först och främst på det avsedda tillämpningsområdet.
Hur processorn fungerar
En processor utför enkla aritmetiska beräkningar. Operativsystemet och programvarumiljöerna omvandlar användarens kommandon till aritmetiska uppgifter som chipet måste lösa. Detta sker genom tolkar och algoritmer som specificerar kopplingar mellan hög- och lågnivåprogrammeringsspråk.
Det är så många kommandon som går till processorn hela tiden. Varje användaråtgärd kräver många beräkningar (ibland tiotusentals). Och dessa kommandon måste följas, annars kommer datorn helt enkelt inte att fungera.
Kommandon kan vara mycket olika. Till exempel tolkning av HTML-koden på en sida (inklusive den här sidan) till en grafisk bild på skärmen. Eller dekryptera ett komprimerat ZIP-arkiv. Eller till och med något som är kryptografiskt krypterat för att visas i öppen dager. Uppgifterna är i allmänhet mycket olika och kräver olika resurser för att genomföras.
Att konvertera HTML-kod kräver till exempel minimala resurser och kan göras ganska snabbt även på ett relativt långsamt chip. ZIP-arkiv kräver redan mycket mer maskintid. Och kryptografiska algoritmer, som SHA-256-beräkningar, överbelastar det stackars chipet som en galning och kan inte köras i konfigurationer med flera trådar.
Beräkningar av artificiell intelligens – till exempel i spel – kräver en massa beräkningar. Men de är små och isolerade, och kan därför vara perfekt multitrådade – på flera kärnor samtidigt. Detta ger dig hög prestanda i spel.
Arkivering och avarkivering av filer är däremot en rent enkeltrådig operation. Det krävs alltså ett kraftfullt chip, annars tar processen lång tid. Särskilt om arkivet innehåller många små heterogena filer.
Men vad är bättre – antalet kärnor eller processorns klockfrekvens??
Problemet är att datorer används på olika sätt. På morgonen laddar du ner den fasta programvaran till din telefon från Internet och det finns två tusen filer på 500 kilobyte vardera i ett arkiv. Att sitta ner vid lunchtid och titta på gifs av kattdjur på internet. Spela på kvällen och slåss mot flera fiender i virtuell verklighet.
På morgonen behöver datorn alltså en processor med hög klockfrekvens, vid lunchtid behöver den bara ett ”chip” och på kvällen behöver den många kärnor. Att ”flytta” ”stenar” beroende på användningsområde är naturligtvis inte den bästa idén.
Därför försöker tillverkarna producera konfigurationer med flera kärnor och hög klockfrekvens. Så till exempel Intel Core i7-8086K (topp i Kabu Lake-serien när den här artikeln skrivs) har sex kärnor med HyperThreading-teknik och en basklockfrekvens på 4.0 GHz. Den kan göra allt! Dyrt, verkligen – $425 vid tidpunkten för lanseringen.
Du behöver inte välja mellan klockfrekvens eller antal kärnor för hemmabruk. Den ideala lösningen skulle vara att uppnå en balans. Om du till exempel köper ett fyrkärnigt chip med en basklockfrekvens på 3 eller mer.0 GHz. Dess prestanda är tillräcklig för de allra flesta vardagliga uppgifter.
Vad är egentligen viktigast för prestandan – antalet kärnor eller processorns klockfrekvens? Är det fler kärnor som ger bättre multitasking eller är det snabbare klockfrekvens som ger bättre enskilda uppgifter?
Vad är egentligen viktigast när man väljer en processor – antalet kärnor eller processorns klockfrekvens? Jag är osäker på hur dessa faktorer påverkar prestandan. Kan någon förklara? Tack på förhand!