Om du någonsin gjort mycket jämförelse shopping för en ny CPU, har du kanske märkt att kärnor alla verkar ha hastighet snarare än en kombination av olika. Varför är det så? Dagens SuperUser Q & A-post har svaret på en nyfiken läsarens fråga.
Dagens Frågor och svar sessions kommer till vår tjänst med SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.
SuperUser-läsare Jamie vill veta varför CPU-kärnor har samma hastighet i stället för olika:
Om du köper en ny dator, brukar du bestämma vilken processor som ska köpas baserat på den förväntade arbetsbelastningen för datorn . Prestanda i videospel tenderar att bestämmas av enkel kärnhastighet, medan applikationer som videoredigering bestäms av antalet kärnor. När det gäller vad som är tillgängligt på marknaden verkar alla processorer ha ungefär samma hastighet med de viktigaste skillnaderna som är fler trådar eller flera kärnor.
Till exempel:
- Intel Core i5-7600K, basfrekvens 3,80 GHz, 4 kärnor, 4 trådar
- Intel Core i7-7700K, basfrekvens 4.20 GHz, 4 kärnor, 8 trådar
- AMD Ryzen 5 1600X, basfrekvens 3,60 GHz, 6 kärnor, 12 trådar
- AMD Ryzen 7 1800X, basfrekvens 3,60 GHz, 8 kärnor, 16 trådar
Varför ser vi detta mönster av ökande kärnor, men alla kärnor har samma klockhastighet? Varför finns det inga varianter med olika klockhastigheter? Till exempel, två "stora" kärnor och massor av små kärnor. I stället för att säga fyra kärnor på 4,0 GHz (dvs. 4 × 4 GHz, 16 GHz maximalt), vad sägs om en CPU med två kärnor som körs vid 4,0 GHz och fyra kärnor med 2,0 GHz Skulle det andra alternativet vara lika bra för enkelgängad arbetsbelastning, men möjligen bättre vid flergängade arbetsbelastningar?
Jag frågar detta som en allmän fråga och inte specifikt med avseende på CPU-datorerna ovan eller om någon specifik arbetsbelastning. Jag är bara nyfiken på varför mönstret är vad det är.
Varför har CPU-kärnor alla samma hastighet i stället för olika?
Svaret
Detta är känt som heterogen multi-processing (HMP) och är allmänt antagen av mobila enheter. I ARM-baserade enheter som implementerar large.LITTLE innehåller processorn kärnor med olika prestanda och kraftprofiler, dvs vissa kärnor går fort men drar mycket kraft (snabbare arkitektur och / eller högre klockor) medan andra är energieffektiva men långsamma långsammare arkitektur och / eller lägre klockor). Det här är användbart eftersom strömförbrukningen tenderar att öka oproportionerligt eftersom du ökar prestandan när du kommer över en viss punkt. Tanken här är att få prestanda när du behöver det och batterilivslängden när du inte gör det.
På stationära plattformar är strömförbrukningen mycket mindre ett problem, så det här är inte verkligen nödvändigt. De flesta applikationer förväntar sig att varje kärna har liknande prestandaegenskaper, och schemaläggningsprocesser för HMP-system är mycket mer komplicerade än schemaläggning för traditionella symmetriska multibearbetningssystem (tekniskt har Windows 10 stöd för HMP, men det är huvudsakligen avsett för mobil enheter som använder ARM big.LITTLE).
Dessutom är de flesta stationära och bärbara processorer idag inte termiskt eller elektriskt begränsade till den punkt där vissa kärnor behöver springa snabbare än andra, även för korta utbrott. Vi har i grunden slagit en vägg på hur snabbt vi kan göra individuella kärnor, så att byta ut några kärnor med långsammare kommer inte att tillåta att de återstående kärnorna går fortare.
Medan det finns några stationära processorer som har en eller två kärnor som kan körs snabbare än de andra, är denna kapacitet för närvarande begränsad till vissa mycket avancerade Intel-processorer (känd som Turbo Boost Max Technology 3.0) och innebär endast en liten förbättrad prestanda för de kärnor som kan köras snabbare.
Medan det är säkerligen möjligt att utforma en traditionell x86-processor med både stora, snabba kärnor och mindre, långsammare kärnor för att optimera för tungt belastade arbetsbelastningar, vilket skulle ge avsevärd komplexitet till processorns design och det är osannolikt att applikationerna inte kan ordentligt stödja det.
Ta en hypotetisk processor med två snabba Kaby Lake (7: e generationen) kärnor och åtta långsamma Goldmont (Atom) kärnor. Du skulle ha totalt 10 kärnor, och kraftigt gängade arbetsbelastningar optimerade för den här typen av processor kan få en prestandaförstärkning över en vanlig Kaby Lake-processor med fyrkärnor. De olika typerna av kärnor har dock väldigt olika prestanda, och de långsamma kärnorna stöder inte ens några av de instruktioner de snabba kärnorna stöder, som AVX (ARM undviker detta problem genom att kräva att både stora och små kärnor stöder samma instruktioner ).
Återigen antar de flesta Windows-baserade flertrådiga applikationer att varje kärna har samma eller nästan samma prestationsnivå och kan utföra samma instruktioner, så den här typen av asymmetri kommer sannolikt att resultera i mindre än- perfekt prestanda, kanske till och med kraschar om den använder instruktioner som inte stöds av de långsammare kärnorna. Medan Intel kan ändra de långsamma kärnorna för att lägga till avancerat instruktionsstöd så att alla kärnor kan utföra alla instruktioner, skulle detta inte lösa problem med mjukvaruunderstöd för heterogena processorer.
En annan metod för applikationsdesign, närmare vad du troligen tänker om i din fråga skulle använda GPU för acceleration av mycket parallella delar av applikationer. Detta kan göras med hjälp av API som OpenCL och CUDA. När det gäller en enda chip-lösning, främjar AMD hårdvaruunderstöd för GPU-acceleration i sina APUer, som kombinerar en traditionell CPU och en högpresterande integrerad GPU i samma chip, som Heterogen System Architecture, men det här har inte sett mycket industriupptagning utanför av några specialiserade applikationer.
Har något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in den fullständiga diskussionsgängan här.
Bildkrediter: Mirko Waltermann (Flickr)
Hur man tittar på eller strömmar på 2018 Super Bowl (utan kabel)
Vi är på T-minus noll veckor till Super Bowl, den största händelsen i amerikansk sport (sorry-not-sorry , "Världsserien). Vad är det? Du har ingen kabel eller satellitabonnemang? Oroa dig inte, du har fortfarande sätt att titta på. I år, Super Bowl LII (det är 52 om dina romerska talanger är rostiga) äger rum i Minneapolis, Minnesota, söndagen den 4 februari.
Nybörjare: Så här installerar du Google Chrome i Ubuntu 14.04
Om du har försökt installera Google Chrome i Ubuntu Linux har du kanske märkt att den inte är tillgänglig i Ubuntu Software Center. Det är dock enkelt att hämta en paketfil till Google Chrome och installera den på ditt system, så visar vi dig hur. OBS! När vi säger att du skriver in något i den här artikeln och det finns citat runt texten, gör DO Skriv INTE citat, såvida vi inte anger något annat.