11Aug

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

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 hastigheden i stedet for 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 &Svar session kommer til os høflighed af SuperUser-en underafdeling af Stack Exchange, en community-drevet 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:

Hvis du køber en ny computer, vælger du generelt, 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. Med hensyn til hvad der er tilgængeligt på markedet, synes alle CPU'er at have stort set samme hastighed med de vigtigste forskelle, der 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, basisfrekvens 4.20 GHz, 4 kerner, 8 tråde
  • AMD Ryzen 5 1600X, basisfrekvens 3,60 GHz, 6kerner, 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, maks. 16 GHz)?Ville den anden mulighed være lige så god til enkelt gevindbelastning af arbejdsbelastningen, 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 om 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 langsommelangsommere 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 batterilevetiden, 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 mobilenheder, 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å at erstatte nogle kerner med langsommere vil ikke tillade de resterende kerner at køre hurtigere.

Selvom der er et par desktop-processorer, der har en eller to kerner, der kan køre 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 involverer kun en lille forstærkningi præstation for de kerner, der kan køre hurtigere.

Selvom det sikkert er 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, ville dette tilføje betydelig kompleksitet til processoren design og applikationer er usandsynligt, at det 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 de fleste Windows-baserede multi-threaded-applikationer, 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åskeselv 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å det, du sandsynligvis tænker på i dit spørgsmål, ville bruge GPU'en 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 udenforaf 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? Tjek den fulde diskussionstråd her.

Billedkredit: Mirko Waltermann( Flickr)