11Aug

De ce toate nucleele CPU au aceeași viteză în loc de altele?

Dacă ați făcut vreodată cumpărături comparative pentru un nou CPU, este posibil să fi observat că toate nucleele par a avea viteza mai degrabă decât o combinație de diferite. De ce este asta? Postul SuperUser Q & A de astăzi are răspunsul la o întrebare curioasă a cititorului.

Întrebarea de astăzi &Sesiunea de răspuns vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor web Q & A.

Întrebarea

SuperUser cititor Jamie vrea să știe de ce nucleele CPU au aceeași viteză în loc de altele diferite:

În general, dacă cumpărați un computer nou, ați determina ce procesor să cumpere pe baza volumului de lucru preconizat pentru computer. Performanța în jocurile video tinde să fie determinată de o viteză unică de bază, în timp ce aplicațiile cum ar fi editare video sunt determinate de numărul de nuclee.În ceea ce privește ceea ce este disponibil pe piață, toate procesoarele par să aibă aproximativ aceeași viteză, principalele diferențe fiind mai multe fire sau mai multe nuclee.

De exemplu:

  • Intel Core i5-7600K, frecvență de bază 3,80 GHz, 4 nuclee, 4 fire
  • Intel Core i7-7700K, frecvență de bază 4,20 GHz, 4 nuclee, 8 fire
  • AMD Ryzen 5 1600X, frecvență de bază 3,60 GHz, 6miezuri, 12 fire
  • AMD Ryzen 7 1800X, frecvență de bază 3.60 GHz, 8 fire, 16 fire

De ce vedem acest model de miez crescător, totuși toate firele au aceeași viteză de ceas? De ce nu există variante cu viteze diferite de ceas? De exemplu, două nuclee "mari" și o mulțime de nuclee mici.

În loc de, de exemplu, patru nuclee la 4,0 GHz( adică 4 × 4 GHz, maximum 16 GHz), cum ar fi un procesor cu două nuclee care rulează la 4,0 GHz și patru nuclee care rulează la 2,0 GHz( adică 2 × 4,0 GHz + 4 ×2,0 GHz, maximum 16 GHz)?A doua opțiune ar fi la fel de bună la sarcinile de lucru cu un singur file, dar potențial mai bună la încărcările multi-filetate?

Eu întreb acest lucru ca o întrebare generală și nu în mod specific cu privire la CPU-urile enumerate mai sus sau la un anumit volum de lucru. Sunt doar curios de ce modelul este ceea ce este.

De ce toate nucleele procesorului au aceeași viteză în loc de altele diferite?

Răspunsul la răspunsul

Contribuitorul SuperUser bwDraco are răspunsul pentru noi:

Acesta este cunoscut sub numele de procesare heterogenă multiplă( HMP) și este adoptat pe scară largă de dispozitivele mobile.În dispozitivele ARM care implementează big. LITTLE, procesorul conține nuclee cu diferite performanțe și profile de putere, adică unele nuclee rulează rapid, dar atrag o mulțime de putere( arhitectura mai rapidă și / sau ceasuri mai mari), în timp ce altele sunt eficiente din punct de vedere energetic,arhitectura mai lentă și / sau ceasuri mai mici).Acest lucru este util, deoarece consumul de energie tinde să crească disproporționat, pe măsură ce creșteți performanța odată ce treceți de un anumit punct. Ideea aici este să obții performanțe atunci când ai nevoie de ea și de viață a bateriei atunci când nu.

Pe platformele desktop, consumul de energie este mult mai puțin o problemă, deci acest lucru nu este cu adevărat necesar. Cele mai multe aplicații se așteaptă ca fiecare nucleu să aibă caracteristici de performanță similare, iar procesele de programare pentru sistemele HMP sunt mult mai complexe decât planificarea sistemelor tradiționale de procesare simetrică multiplă( tehnic, Windows 10 are suport pentru HMP,dispozitive care utilizează ARM mare. LITTLE).

De asemenea, majoritatea procesoarelor desktop și laptop de astăzi nu sunt limitate din punct de vedere termic sau electric până la punctul în care unele nuclee trebuie să funcționeze mai repede decât altele, chiar și pentru explozii scurte. De fapt, am atins un zid pe cât de repede putem face nuclee individuale, astfel încât înlocuirea unor nuclee cu cele mai lentă nu va permite ca miezurile rămase să curgă mai repede.

Deși există câteva procesoare desktop care au unul sau două nuclee capabile să ruleze mai repede decât celelalte, această capacitate este în prezent limitată la anumite procesoare Intel foarte cunoscute( cunoscute sub numele de Turbo Boost Max Technology 3.0) și implică doar un ușor câștigîn performanță pentru acele nuclee care pot rula mai repede.

Cu toate că este cu siguranță posibil să se proiecteze un procesor tradițional x86 cu miezuri mari și rapide și miezuri mai mici și mai mici pentru a se optimiza pentru sarcini de lucru puternic filetate, acest lucru ar adăuga o complexitate considerabilă proiectării procesorului și este puțin probabil ca aplicațiile să o susțină în mod corespunzător.

Luați un procesor ipotetic cu două nuclee rapide Kaby Lake( 7-generație) și opt nuclee lentă Goldmont( Atom).Aveți un număr total de 10 nuclee, iar volumul de lucru puternic încărcat, optimizat pentru acest tip de procesor, ar putea să înregistreze un câștig de performanță și eficiență într-un procesor normal quad-core Kaby Lake. Cu toate acestea, diferitele tipuri de nuclee au nivele diferite de performanță și miezurile lentă nu suportă nici măcar câteva instrucțiuni care suportă miezurile rapide, cum ar fi AVX( ARM evită această problemă solicitând atât miezurile mari cât și LITTLE să susțină aceleași instrucțiuni).

Din nou, majoritatea aplicațiilor multi-threaded bazate pe Windows presupun că fiecare nucleu are același sau aproape același nivel de performanță și poate executa aceleași instrucțiuni, astfel încât acest tip de asimetrie poate duce la performanțe mai puțin decât cele ideale, poatechiar se blochează dacă utilizează instrucțiuni care nu sunt acceptate de nucleele mai lent.În timp ce Intel ar putea modifica nucleele lente pentru a adăuga suport pentru instrucțiuni avansate, astfel încât toate nucleele să poată executa toate instrucțiunile, acest lucru nu ar rezolva problemele legate de suportul software pentru procesoare eterogene.

O abordare diferită a designului aplicației, mai aproape de ceea ce probabil vă gândiți la întrebarea dvs., ar folosi GPU-ul pentru accelerarea unor porțiuni paralele de aplicații. Acest lucru se poate face folosind API-uri precum OpenCL și CUDA.În ceea ce privește o soluție cu un singur chip, AMD promovează suportul hardware pentru accelerarea GPU în APU-urile sale, care combină un CPU tradițional și un GPU integrat de înaltă performanță în același chip, ca arhitectura sistemelor heterogene, deși acest lucru nu a văzut prea multe preluări din industriedin câteva aplicații specializate.

Aveți ceva de adăugat la explicație? Sunați în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.

Credit de imagine: Mirko Waltermann( Flickr)