da.phhsnews.com


da.phhsnews.com / Hvorfor har CPU-kerner alle samme hastighed i stedet for forskellige enheder?

Hvorfor har CPU-kerner alle samme hastighed i stedet for forskellige enheder?


Hvis du nogensinde har gjort meget sammenligning med at købe en ny CPU, har du måske bemærket, at kerner alle synes at have hastighed snarere end en kombination af forskellige. Hvorfor det? Dagens SuperUser Q & A-indlæg har svaret på en nysgerrig læsers spørgsmål.

Dagens Spørgsmål og Svar-sessions kommer til vores side med SuperUser-en underafdeling af Stack Exchange, en community-driven gruppe af Q & A-websteder.

Spørgsmål

SuperUser-læser Jamie vil vide, hvorfor CPU-kerner alle har samme hastighed i stedet for forskellige:

Generelt, hvis du køber en ny computer, bestemmer du hvilken processor der skal købes baseret på den forventede arbejdsbyrde for computeren . Ydeevne i videospil er tilbøjelig til at blive bestemt af single core-hastighed, mens applikationer som videoredigering bestemmes af antallet af kerner. Hvad angår det, der er tilgængeligt på markedet, synes alle CPU'er at have omtrent samme hastighed, idet de vigtigste forskelle er flere tråde eller flere kerner.

For eksempel:

  • Intel Core i5-7600K, basisfrekvens 3,80 GHz, 4 kerner, 4 tråde
  • Intel Core i7-7700K, basfrekvens 4.20 GHz, 4 kerner, 8 tråde
  • AMD Ryzen 5 1600X, basisfrekvens 3,60 GHz, 6 kerner, 12 tråde
  • AMD Ryzen 7 1800X, basisfrekvens 3,60 GHz, 8 kerner, 16 tråde

Hvorfor ser vi dette mønster af stigende kerner, men alle kerner har samme klokkehastighed? Hvorfor er der ingen varianter med forskellige urhastigheder? For eksempel to "store" kerner og masser af små kerner.

I stedet for at sige fire kerner på 4,0 GHz (dvs. 4 × 4 GHz, 16 GHz maksimum), hvad med en CPU med to kerner, der kører ved 4,0 GHz og fire kerner kører ved 2,0 GHz (dvs. 2 × 4,0 GHz + 4 × 2,0 GHz, 16 GHz maksimum)? Ville den anden mulighed være lige så god til enkelt gevindbelastning af arbejdsbelastning, men muligvis bedre ved multi-threaded arbejdsbyrder?

Jeg spørger dette som et generelt spørgsmål og ikke specifikt med hensyn til CPU'erne ovenfor eller om en bestemt arbejdsbyrde. Jeg er bare nysgerrig, hvorfor mønsteret er hvad det er.

Hvorfor har CPU-kerner alle samme hastighed i stedet for forskellige?

Svaret

SuperUser-bidragyder bwDraco har svaret for os:

Dette er kendt som heterogen multi-processing (HMP) og er almindeligt vedtaget af mobile enheder. I ARM-baserede enheder, der implementerer big.LITTLE, indeholder processoren kerner med forskellige præstations- og strømprofiler, dvs. nogle kerner kører hurtigt, men tegner masser af strøm (hurtigere arkitektur og / eller højere klokker), mens andre er energieffektive men langsomme langsommere arkitektur og / eller lavere ure). Dette er nyttigt, fordi strømforbruget har tendens til at stige uforholdsmæssigt, da du øger ydeevnen, når du kommer forbi et bestemt punkt. Ideen her er at få ydeevne, når du har brug for det, og batterilevetid, når du ikke gør det.

På stationære platforme er strømforbruget meget mindre et problem, så det er ikke helt nødvendigt. De fleste applikationer forventer, at hver kerne har lignende præstationsegenskaber, og planlægningsprocesser for HMP-systemer er meget mere komplekse end planlægning for traditionelle symmetriske multi-processing (SMP) systemer (teknisk set har Windows 10 støtte til HMP, men det er hovedsagelig beregnet til mobil enheder, der bruger ARM big.LITTLE).

Desuden er de fleste desktop- og bærbare processorer i dag ikke termisk eller elektrisk begrænset til det punkt, hvor nogle kerner skal køre hurtigere end andre, selv for korte udbrud. Vi har stort set ramt en mur på, hvor hurtigt vi kan lave individuelle kerner, så erstatning af nogle kerner med langsommere vil ikke tillade de resterende kerner at køre hurtigere.

Mens der er et par desktop processorer, der har en eller to kerner, der kan kører hurtigere end de andre, er denne kapacitet i øjeblikket begrænset til visse meget avancerede Intel-processorer (kendt som Turbo Boost Max Technology 3.0) og indebærer kun en lille forbedring i ydeevnen for de kerner, der kan køre hurtigere.

Mens det er Det er helt sikkert muligt at designe en traditionel x86-processor med både store, hurtige kerner og mindre, langsommere kerner for at optimere til stærkt gevindbelastede arbejdsbelastninger, hvilket vil medføre betydelig kompleksitet i processormodellen, og det er usandsynligt, at applikationer kan understøtte det korrekt.

Tag en hypotetisk processor med to hurtige Kaby Lake (7. generation) kerner og otte langsomme Goldmont (Atom) kerner. Du ville have i alt 10 kerner, og stærkt gevindbelastede arbejdsbyrder optimeret til denne type processor kan se en gevinst i ydeevne og effektivitet over en normal quad-core Kaby Lake processor. De forskellige typer kerner har imidlertid vildt forskellige præstationsniveauer, og de langsomme kerner understøtter ikke engang nogle af de instruktioner, som de hurtige kerner understøtter, som AVX (ARM undgår dette problem ved at kræve, at både de store og små kerner understøtter de samme instruktioner ).

Igen antages det, at de fleste Windows-baserede multi-threaded-applikationer antager, at hver kerne har det samme eller næsten samme niveau af ydeevne og kan udføre de samme instruktioner, så denne form for asymmetri vil sandsynligvis resultere i mindre end ideel ydeevne, måske endda nedbrud, hvis den bruger instruktioner, der ikke understøttes af de langsommere kerner. Mens Intel kunne ændre de langsomme kerner for at tilføje avanceret instruktionssupport, så alle kerner kan udføre alle instruktioner, ville dette ikke løse problemer med software support til heterogene processorer.

En anden tilgang til applikationsdesign, tættere på hvad du sandsynligvis tænker om i dit spørgsmål, ville bruge GPU til acceleration af meget parallelle dele af applikationer. Dette kan gøres ved hjælp af API'er som OpenCL og CUDA. Med hensyn til en enkeltchips løsning fremmer AMD hardware support til GPU acceleration i sine APU'er, der kombinerer en traditionel CPU og en højtydende integreret GPU i samme chip som Heterogene System Architecture, selv om dette ikke har set meget industrioptagelse udenfor af nogle få specialiserede applikationer.


Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Se den fulde diskussionstråd her.

Billedkredit: Mirko Waltermann (Flickr)


Sådan tilføjes

Sådan tilføjes "Open PowerShell Here" til højre-klik-menuen til en mappe i Windows

Hvis du er fan af at bruge Windows PowerShell i stedet for kommandoprompt, kan du godt lide At få adgang til det lige fra den sammenhængsmenu, du får, når du højreklikker på en mappe i Windows. Sådan gør du det. Windows indeholder allerede et "Åbn kommandovindue her", når du Shift + klikker på en mappe.

(how-top)

Sådan finder du din tabte telefon med Amazon Echo

Sådan finder du din tabte telefon med Amazon Echo

Det er alt for nemt at miste din telefon rundt i huset, især hvis du er tilbøjelig til at miste tingene generelt. Din Amazon Echo kan dog hjælpe dig med at finde den ved hjælp af nogle fine tjenester fra tredjepart. Der er to måder at gøre dette på. Hvis du ikke har noget imod at installere en app på din telefon, er TrackR den hurtigste mulighed.

(how-top)