Hjemmeside » hvordan » Hvorfor har CPU-kjerner alle samme hastighet i stedet for forskjellige enheter?

    Hvorfor har CPU-kjerner alle samme hastighet i stedet for forskjellige enheter?

    Hvis du noensinne har gjort mye sammenligning shopping for en ny CPU, kan du ha lagt merke til at kjerner alle synes å ha fart i stedet for en kombinasjon av forskjellige. Hvorfor det? Dagens SuperUser Q & A innlegg har svaret på en nysgjerrig leser spørsmål.

    Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.

    Spørsmålet

    SuperUser leser Jamie vil vite hvorfor CPU-kjerner alle har samme hastighet i stedet for forskjellige:

    Generelt, hvis du kjøper en ny datamaskin, bestemmer du hvilken prosessor som skal kjøpes basert på forventet arbeidsbelastning for datamaskinen. Ytelse i videospill har en tendens til å bli bestemt av single core-hastighet, mens programmer som videoredigering bestemmes av antall kjerner. Når det gjelder hva som er tilgjengelig på markedet, synes alle CPUer å ha omtrent samme hastighet med de viktigste forskjellene som er flere tråder eller flere kjerner.

    For eksempel:

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

    Hvorfor ser vi dette mønsteret av økende kjerner, men alle kjerner har samme klokkefrekvens? Hvorfor er det ingen varianter med forskjellige klokkehastigheter? For eksempel to "store" kjerner og mange små kjerner.

    I stedet for å si fire kjerner på 4,0 GHz (dvs. 4 × 4 GHz, 16 GHz maksimum), hva med en CPU med to kjerner som kjører på 4,0 GHz og fire kjerner som kjører på 2,0 GHz (dvs. 2 × 4,0 GHz + 4 × 2,0 GHz, maks. 16 GHz)? Ville det andre alternativet være like bra på enkeltgjorte arbeidsbelastninger, men potensielt bedre ved multi-threaded arbeidsbelastning?

    Jeg spør dette som et generelt spørsmål og ikke spesifikt med hensyn til CPUene nevnt ovenfor eller om en bestemt arbeidsbelastning. Jeg er bare nysgjerrig på hvorfor mønsteret er hva det er.

    Hvorfor har CPU-kjerner alle samme hastighet i stedet for forskjellige?

    Svaret

    SuperUser bidragsyter bwDraco har svaret for oss:

    Dette er kjent som heterogen multi-processing (HMP) og er allment vedtatt av mobile enheter. I ARM-baserte enheter som implementerer big.LITTLE, inneholder prosessoren kjerner med forskjellige ytelses- og kraftprofiler, dvs. noen kjerner går fort, men tegner mye kraft (raskere arkitektur og / eller høyere klokker) mens andre er energieffektive men sakte ( langsommere arkitektur og / eller lavere klokker). Dette er nyttig fordi strømforbruket har en tendens til å øke uforholdsmessig når du øker ytelsen når du kommer forbi et bestemt punkt. Ideen her er å få ytelse når du trenger det og batterilevetid når du ikke gjør det.

    På stasjonære plattformer er strømforbruket langt mindre et problem, så dette er ikke virkelig nødvendig. De fleste applikasjoner forventer at hver kjerne har lignende ytelsesegenskaper, og planleggingsprosesser for HMP-systemer er mye mer kompliserte enn planlegging for tradisjonelle symmetriske flerbehandlingssystemer (teknisk sett har Windows 10 støtte for HMP, men det er hovedsakelig ment for mobil enheter som bruker ARM big.LITTLE).

    Dessuten er de fleste stasjonære og bærbare prosessorer i dag ikke termisk eller elektrisk begrenset til det punktet hvor noen kjerner må løpe raskere enn andre, selv for korte utbrudd. Vi har i utgangspunktet slått en vegg på hvor fort vi kan lage individuelle kjerner, så erstatning av noen kjerner med tregere vil ikke tillate de resterende kjernene å løpe raskere.

    Selv om det er noen stasjonære prosessorer som har en eller to kjerner som kan kjøre raskere enn de andre, er denne funksjonen for tiden begrenset til visse meget høye Intel-prosessorer (kjent som Turbo Boost Max Technology 3.0) og involverer bare en svak gevinst i ytelse for de kjernene som kan løpe raskere.

    Selv om det er sikkert mulig å designe en tradisjonell x86-prosessor med både store, hurtige kjerner og mindre, tregere kjerner for å optimalisere for hardt belastede arbeidsbelastninger, vil dette gi betydelig kompleksitet til prosessorutformingen, og det er usannsynlig at applikasjoner ikke støtter det riktig..

    Ta en hypotetisk prosessor med to raske Kaby Lake (7. generasjon) kjerner og åtte sakte Goldmont (Atom) kjerner. Du vil ha totalt 10 kjerner, og kraftige gjengede arbeidsbelastninger optimalisert for denne typen prosessor kan se en gevinst i ytelse og effektivitet over en vanlig quad-core Kaby Lake-prosessor. Imidlertid har de forskjellige typer kjerner helt forskjellige ytelsesnivåer, og de sakte kjernene støtter ikke engang noen av instruksjonene som de hurtige kjernene støtter, som AVX (ARM unngår dette problemet ved å kreve at både de store og små kjernene støtter de samme instruksjonene ).

    Igjen antar de fleste Windows-baserte multi-threaded-applikasjoner at hver kjerne har samme eller nesten samme ytelsesnivå og kan utføre de samme instruksjonene, slik at denne typen asymmetri sannsynligvis vil resultere i mindre enn ideell ytelse, kanskje til og med krasjer hvis den bruker instruksjoner som ikke støttes av tregere kjerner. Mens Intel kunne endre langsomme kjerner for å legge til avansert instruksjonsstøtte slik at alle kjerner kan utføre alle instruksjoner, ville dette ikke løse problemer med programvarestøtte for heterogene prosessorer.

    En annen tilnærming til applikasjonsdesign, nærmere hva du sannsynligvis tenker på i spørsmålet ditt, ville bruke GPUen til å akselerere svært parallelle deler av applikasjoner. Dette kan gjøres ved hjelp av APIer som OpenCL og CUDA. Når det gjelder en enkelt-chip-løsning, fremmer AMD maskinvare-støtte for GPU-akselerasjon i sine APUer, som kombinerer en tradisjonell CPU og en høyytelsesintegrert GPU i samme chip, som Heterogene System Architecture, selv om dette ikke har sett mye industriopptak utenfor av noen få spesialiserte applikasjoner.


    Har du noe å legge til forklaringen? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.

    Bilde Kreditt: Mirko Waltermann (Flickr)