Flerkjerne

Multi core , i elektronikk og informatikk er et begrep som brukes for å indikere to eller flere kjerner , eller flere "fysiske" kjerner montert på samme pakke .

Begrepet er generisk, og selv om det er egnet for å beskrive stasjoner som inneholder mer enn to kjerner, kan det ledsages av andre spesifikke termer. Hvis du vil beskrive 100 eller flere kjerner, i stedet for multi-core , brukes ofte mange kjerner , men det er spesifikke navn også for enheter med 128 kjerner (octacosahecta-kjerne), 256 kjerner (hexapentacontadicta-kjerne), 512 kjerner (dodecapenta-kjerne) , 1000 kjerner (kilo kjerne), 1024 kjerner (tetracosakilia kjerne) og 2048 kjerner (octatetracontadilia kjerne).

Historisk utvikling

De første CPU-ene til IBM og SUN

De første eksemplene på multi-core CPUer ble presentert av IBM med sin PowerPC i 2003 , men først i 2005 ble de produsert for forbrukermarkedet, med Intel på slutten av 2005 , ved å bruke Pentium D-prosessorene basert på Smithfield - kjerner , mens rivalen AMD lanserte den nye Athlon 64 X2 i 2005.

Intel ble kreditert for å gjøre quad core (4 core) prosessorer tilgjengelige for allmennheten gjennom Core 2 Extreme og Core 2 Quad basert på Kentsfield kjerner , men de første multi core prosessorene med mer enn 2 kjerner ble introdusert til markedet mot slutten av 2005 ; dette er cellen , utviklet i fellesskap av IBM , Sony og Toshiba for konsoll- / bladservermarkedet og sammensatt av 8 heterogene kjerner , og UltraSPARC T1 , en prosessor med 8 homogene kjerner utviklet av Sun Microsystems for servermarkedet (spesielt for servermarkedet) Webserver med mange tilganger) som kan håndtere 32 tråder samtidig. Denne typen arkitektur, som tokjernesystemer og mer generelt, av alle biprosessor- og multiprosessorsystemer , lar deg øke datakraften uten å øke arbeidsfrekvensen, til fordel for spredt varme, i tillegg til å sikre større ytelse i svært spesifikke områder der det kreves stor parallellitet i stedet for høy datakraft .

Octa-kjernen ble designet for å kjøre fire kjerner om gangen avhengig av belastningen på operasjoner, mens hexa-kjerneprosessoren (6 kjerner) kjører alle 6 kjerner samtidig for bedre ytelse.

Utviklingen siden 2005

I løpet av 2005 kom de første dual core-brikkene for skrivebordsmarkedet, igjen takket være Intel som presenterte de første Pentium D Smithfields ; på den tiden hadde vi nådd et teknologisk nivå av maskinvareutvikling som ikke lenger tillot å øke prosessorkraften ved å bare øke klokkefrekvensen . Frem til det øyeblikket hadde den kontinuerlige økningen i ytelse først og fremst vært basert på økningen i driftsfrekvens takket være innovasjonene som tilbys av stadig mer miniatyriserte produksjonsprosesser. Imidlertid ble det nådd et punkt der ytterligere økning av frekvensene til enkeltkjerne-CPU-ene, til tross for minimumsstørrelsen på transistorene , nå førte til for høyt forbruk i forhold til den beskjedne økningen i ytelse (den gang en topp-av-the- rekkevidde enkjerneprosessor langt overskredet 100 W maksimalt forbruk), og dette hadde alvorlige konsekvenser også for det alvorlige problemet med å kjøle kretsene.

Løsningen som virket mest opplagt for mikroprosessordesignere var å fokusere alt på parallellitet for å øke antallet operasjoner som kan utføres i en enkelt klokkesyklus. Denne nye tilnærmingen var imidlertid ikke helt smertefri og hadde også noen ulemper, ettersom programmene måtte optimaliseres for parallellisert flertrådsbruk (hvert program kjøres i flere deler) for å dra full nytte av egenskapene til disse prosessorene, ellers ville de bare ha engasjert den ene av kjernene, og etterlatt den andre nesten ubrukt. Paradoksalt nok var det også mulig at et applikasjonsprogram som ikke var utviklet for parallell kjøring var tregere å kjøre på en flerkjerneprosessor enn en enkeltkjerne, og faktisk på tidspunktet for lanseringen av de første eksemplene var det svært få programvare klare for disse nye arkitekturene. Denne manglende evnen til å nå de teoretiske ytelsesnivåene til massivt parallelle systemer er kjent som von Neumanns syndrom .

Analyse

Det er forskjellige tilnærminger som flerkjernebrikker kan lages gjennom, hver med presise særegenheter; for mer informasjon, vennligst se følgende detaljerte elementer som, selv om de refererer til dual-core prosessorer, fortsatt avslører generelle konsepter som er godt egnet for vurderinger på multi-core CPUer generelt:

Det er tilfeller der det kan være produkter med et oddetall kjerner, for eksempel AMDs trippelkjerne (Athlon II X3 435). Denne typen arkitektur, sammenlignet med enkeltkjernen , gjør det mulig å øke datakraften til en CPU uten å øke arbeidsklokkefrekvensen , til fordel for den spredte varmen (som reduseres sammenlignet med flere separate prosessorer) så vel som den absorberte energien.

Bruk av operativsystemer

Hvert operativsystem administrerer potensialet til flerkjerneprosessorer på en annen måte, i noen tilfeller varierer disse administrasjonene også avhengig av versjonen av operativsystemet (Windows XP, Windows XP SP2 professional, etc.), mens de implementerer støtte for forskjellig maskinvare teknologier og løsningsprogramvare det er ikke sagt at du kan se reelle fordeler, siden programmene ikke alltid støtter disse maskinvarearkitekturene effektivt, noe som begrenser fordelene til bruk av flere programmer samtidig, av denne grunn bør kjernen skrives om i for å utnytte flerkjernepotensialet fullt ut. [1] [2]

De første implementeringene i Microsoft-systemer skjer med den profesjonelle SP2-versjonen av Windows XP, med begrenset støtte for SMP-maskinvarearkitekturen ( Symmetric multiprocessing eller Symmetric multiprocessor ) hvor kjernene eller prosessorene får tilgang til et delt minne, mens fra Vista-programvare prosessortilhørighetsfunksjonen som identifiserer kjernene som Core0 og Core1, slik at brukeren kan bestemme hvilken av dem som skal starte og kjøre applikasjonen, deretter ble tilnærmingen revidert først med Windows Vista og deretter med Windows 7, denne sistnevnte støtter Non-Uniform Maskinvareløsninger for minnetilgang (NUMA ) [3] .

I Apple macOS- systemer med versjon 10.6 er det introduksjonen av Grand Central Dispatch for å implementere parallellitet på trådnivå , og forbedre støtten for flerkjerner.

I Linux-kjernebaserte systemer kom SMP-maskinvarestøtte først med kjerneversjon 2, som inkluderte en stor kjernelås (BKL) for avbruddshåndtering, senere med versjon 2.2 hadde avbruddsbehandlerne spinlock- differensiert, noen distribusjoner og optimaliseringer inkluderte støttekode for NUMA systemer. I versjon 2.4 ble flere og flere delsystemer administrert utenfor BKL, takket være introduksjonen av nye databaselåser, men den har fortsatt spinlocks som dekker hele delsystemer, dette tillot å forbedre skalerbarheten, som ble ytterligere forbedret med versjon 2.5 av kjernen, som optimaliserte cachen til konverteringslåssiden fra en enkelt kodeblokk til flere datablokker.
Med versjon 2.6 ble BKL henvist til en liten del av kjernekoden, ettersom det meste av BKL ble konvertert til databaselåser med høy tuning og skalerbarhet for å eliminere repetisjonen av den delte cache-linjen, mens det i kritiske undersystemer er en viss bruk av mindre avanserte låsetilnærminger, for eksempel Read-Copy-Update (RCU) , en ny multi-CPU-køprogrammerer ble introdusert, som løste strid om globale utførelseskøer som deles av flere CPUer, og reduserer kostnadene ved å behandle parallell planlegging. Denne planleggeren ble også introdusert på noen 2.4-kjerner i de siste distribusjonene. [4] [5] Denne strategien har tillatt linux-kjernen i høy skalerbarhet og effektive forbedringer med flerkjernesystemer [6]

Innen videospillfeltet og spesielt de grafiske bibliotekene har DirectX 12 , Vulkan (API) og Mantle tillatt den beste utnyttelsen av de forskjellige prosessorkjernene, noe som muliggjør aktiv og direkte dialog med GPUen, som tidligere ikke var mulig hvis ikke i en begrenset måte [7]

Utnyttelsen av applikasjoner og driftssituasjoner varierer sterkt avhengig av det samme og avhengig av operativsystemet som brukes [8]

Referanseterminologi

Merknader

  1. ^ Windows presterer dårligere med multi-core CPUer
  2. ^ Multiprosessor og flerkjernesystemer
  3. ^ Windows og multi-core CPUer
  4. ^ Linux multi-core skalerbarhet
  5. ^ Hvor godt støtter Linux multi-core CPUer?
  6. ^ Linux 2.6.38: benchmark for skaleringskjerne med flere kjerner. Arkivert 29. september 2014 på Internet Archive .
  7. ^ Brad Wardell avslører hvorfor Microsoft, AMD, Nvidia og Intel ikke vil snakke om fordelene med DirectX 12
  8. ^ Multi-Core, Multi-OS skaleringsytelse

Relaterte elementer

Eksterne lenker