Vad är heterogen multicore och hur det förbättrar effektiviteten

0 Shares

Det måste erkännas att den heterogena multicore inte är ett nytt koncept, långt ifrån det, eftersom det i världen av mobila enheter har funnits ganska länge, och du kommer säkert att vara bekant med namnet big.LITTLE från ARM eller Intel Lakefield-arkitekturen, som han också använder den. I alla fall, i den här artikeln ska vi fördjupa oss i konceptet så att du kan förstå alla dess ins och outs på det enklaste sätt vi kan.

Vad är Heterogen Multicore?

Intel 8700K-matris

Vi har redan vid andra tillfällen talat om detta arrangemang i den interna designen av processorerna, som består i att inte alla kärnor är lika utan att det finns olika kluster (grupper, för att sammanfatta det) av olika kärnor, vilket är just därför detta kallas heterogen multicore. För att sätta detta i perspektiv, föreställ dig till exempel en Intel Core i7-8700K-processor, som har sex fysiska kärnor; i detta är de sex kärnorna exakt likadana, de arbetar i samklang med samma hastighet och utför de tilldelade uppgifterna lika, och delar arbetet mellan alla.

Skillnaden mot en “normal” processor som de vi har använt i PC-datorer fram till nu, en CPU med en heterogen multicore, är att i den senare är inte alla kärnor lika, utan den har flera grupper av kärnor som kan helt annorlunda i termer av fysisk storlek (och med den, i termer av antalet transistorer), fungerar fart och multiplikator , men också (som vi kommer att förklara härnäst) när det gäller lastbalansering.

Således kan du till exempel se på bilden nedan en MediaTek Helio X20-processor som har ett fyrkärnigt Cortex-53 ULP-kluster med mycket låg förbrukning, ytterligare ett kraftfullare men mycket effektivt fyrkärnigt Cortex-A53-kluster och slutligen ett tredje kluster med två högpresterande Cortex-A72-kärnor.

Mediatek helio deca kärna

Detta är en heterogen flerkärnig processor, och den kallas så bokstavligen eftersom den har flera kärnor (multicore) som är olika (heterogena) snarare än att vara homogen datoranvändning där alla kärnor är likadana. Som vi har sagt tidigare är vart och ett av dessa kluster olika fysiskt och även i empiriska termer vad gäller hastighet, multiplikator och jämn spänning, och kan till och med bete sig som om de vore olika processorer .

Varför är denna design mer effektiv?

stort.LITT diagram

Ett exempel på heterogen beräkning finns i ARM:s big.LITTLE-arkitektur, där heterogena flerkärniga system används där de alla delar samma ISA, det vill säga alla kärnor kan utföra samma uppsättning instruktioner och utföra vilken uppgift som helst som de har anförtrotts. . Detta innebär att när systemet är inaktivt kan processorn inaktivera de mest kraftfulla kärnorna för att spara energi och därmed minska förbrukning och temperatur, vilket avsevärt förbättrar effektiviteten.

Vid den tidpunkt då mer kraft krävs från CPU:n aktiverar den nästa kluster av kärnor så att den erhållna prestandan blir som förväntat, och om det behövs kan den aktivera de högpresterande kärnorna för att leverera sin fulla potential. Detta system är mycket effektivt eftersom när processorn behövs kan den leverera all sin kraft, men eftersom varje kluster kan uppträda som en oberoende processor i sig själv kan den avaktivera grupper av kärnor när de inte är nödvändiga. sparar mycket energi.

Många av er kommer säkert att säga att i en processor med homogena kärnor kan kärnor också avaktiveras, men “hemligheten” med heterogena processorer är att ha lågförbrukningskärnor, tillräckligt för grundläggande uppgifter som inte kräver mycket ström och som skulle förbruka mindre än de generella kärnorna som hittills har utrustat processorer; Med andra ord, med specifika kärnor med låg förbrukning, uppnås en mycket bättre effektivitet.

En annan sak som gör heterogen beräkning möjlig är att inte alla kärnor måste dela samma ISA (instruktionsuppsättning), så de skulle till exempel kunna införliva specifika kärnor för AI som bara kommer i drift när de behöver utföra specifika uppgifter, eftersom de är avaktiverade resten av tiden. Detta skulle tillåta processorer med ett enormt antal kärnor som händer i grafikkort, och att varje typ av kärna (eller kluster av dem) tar hand om de specifika operationer som den har designats för, vilket återigen förbättrar effektiviteten med den.

Heterogen multicore är inte utan problem

Pila processorer

Det finns två ganska specifika “problem” med heterogena flerkärniga processorer på en plattform som PC. Den första har att göra med Överklockning , eftersom om varje kluster av kärnor fungerar med en hastighet och med en annan multiplikator, kommer vi inte att kunna överklocka hela processorn som sådan, utan helt enkelt en specifik grupp av kärnor (kluster) Även om det är sant att Intel och AMD inte har ännu avslöjade tekniska data om detta. Hur som helst verkar det logiskt att tro att det som mest kommer att vara möjligt att överklocka endast vissa kluster av kärnor och inte alla eftersom de inte är homogena.

Det andra problemet med heterogena arkitekturer är mjukvarustöd , eftersom operativsystemet trots allt måste kunna stödja denna typ av implementering för att tilldela arbetsbelastningen till rätt kärnor. I fallet med en Linux kärna, det finns moduler som ansvarar för att hantera processorns klockfrekvenser eller att aktivera respektive avaktivera kärnor, men problemet med dessa moduler är att de fungerar oberoende och kan generera konflikter mellan dem, vilket minskar effektiviteten i vissa fall eller minskar prestandan i andra.

Uppenbarligen är den här typen av arkitektur avsedd att bli populär förr eller senare (låt oss komma ihåg Intel Lakefield och att AMD också “leker” med det), så med tanke på att det mest använda operativsystemet är Microsoft Windows, måste vi vänta för Microsoft kommer att “sätta batterierna” för att anta den här typen av arkitektur och se hur den i slutändan presterar.

0 Shares