Hvis du noen gang har gjort mye sammenligning med å kjøpe en ny CPU, har du kanskje lagt merke til at kjerner alle synes å ha fart snarere enn en kombinasjon av forskjellige. Hvorfor det? Dagens SuperUser Q & A-post har svaret på en nysgjerrig leser spørsmål.
Dagens Spørsmål og Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppe av Q & A-nettsteder.
SuperUser-leser Jamie vil vite hvorfor CPU-kjerner alle har samme hastighet i stedet for forskjellige:
Generelt om 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 å bestemmes av enkel kjernehastighet, 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 kjerne, 4 tråder
- Intel Core i7-7700K, basfrekvens 4.20 GHz, 4 kjerner, 8 tråder
- AMD Ryzen 5 1600X, basisfrekvens 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, 16 GHz maksimum)? Ville det andre alternativet være like bra på enkeltrådede arbeidsbelastninger, men potensielt bedre ved multi-threaded arbeidsbelastninger?
Jeg spør dette som et generelt spørsmål og ikke spesifikt med hensyn til CPUene som er 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
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 batterilevetiden når du ikke gjør det.
På stasjonære plattformer er strømforbruket langt mindre et problem, så dette er ikke helt 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 multi-prosesseringssystemer (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 at de gjenværende kjernene løper raskere.
Selv om det er noen stasjonære prosessorer som har en eller to kjerner i stand til kjører raskere enn de andre, er denne kapasiteten for tiden begrenset til visse meget avanserte Intel-prosessorer (kjent som Turbo Boost Max Technology 3.0), og innebærer bare en svak ytelse for de kjernene som kan kjøre raskere.
Mens det er absolutt mulig å designe en tradisjonell x86-prosessor med både store, hurtige kjerner og mindre, langsommere kjerner for å optimalisere for hardt belastede arbeidsbelastninger, vil dette legge til betydelig kompleksitet i 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 samme instruksjoner, 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 antakelig tenker om i spørsmålet ditt, ville bruke GPU for akselerasjon av 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 spesialiserte applikasjoner.
Har du noe å legge til forklaringen? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Se full diskusjonstråd her.
Bilde Kreditt: Mirko Waltermann (Flickr)
Koble kontrollpanelet til oppgavelinjen for raskere tilgang til de mest brukte Windows-verktøyene
Hvis det er Kontrollpanel-programmer, bruker du hele tiden, hvorfor ikke få tilgang til dem raskere? Bare pin kontrollpanelet til oppgavelinjen eller Start-menyen, og pin deretter enkelte apper til sin hoppeliste. Når du skrev opp artikler om å tilpasse oppgavelinjen og fastleggingsmapper til oppgavelinjen, fant det meg at i alle disse årene med å bruke Windows, jeg hadde aldri plaget meg til å pinne kontrollpanelet.
Hva er forskjellen mellom OLED og Samsungs QLED-TV?
Organiske lysemitterende dioder, forkortet OLED, er alle raseri for high-end HD-fjernsyn. Teknologien har hoppet fra telefoner og tabletter til større skjermer, og dets livlige farger og "perfekte" svarte nivåer gir fantastisk bildekvalitet. Men det er ikke den eneste spilleren i byen. I øyeblikket skyver Sony og LG OLED-teknologi hardt på sine topp-tv-apparater, men Samsung synes å være doblet ned på forbedringer av konvensjonelle LED-skjermer i stedet.