Pagina principala » HOWTO » De ce nucleul procesorului are aceeași viteză în loc de diferiți?

    De ce nucleul procesorului are aceeași viteză în loc de diferiți?

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

    Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor web Q & A.

    Intrebarea

    Utilizatorul SuperUser Jamie vrea să știe de ce nucleul CPU-ului are aceeași viteză în loc de altele diferite:

    În general, dacă cumpărați un computer nou, ați determina ce procesor să cumpărați 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 fire.

    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, 6 nuclee, 12 fire
    • AMD Ryzen 7 1800X, frecvență de bază 3,60 GHz, 8 nuclee, 16 fire

    De ce vedem acest tipar de miez crescând, dar toate nucleele 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), ce despre 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, maxim 16 GHz)? A doua opțiune ar fi la fel de bună la încărcările de lucru unice, dar potențial mai bună la volumul de lucru multi-filetat?

    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 curios de ce modelul este ceea ce este.

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

    Răspunsul

    Contribuitorul SuperUser bwDraco are răspunsul pentru noi:

    Aceasta este cunoscută sub denumirea de procesare multiplă eterogenă (HMP) și este adoptată pe scară largă de dispozitivele mobile. În cazul dispozitivelor 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 ceasurile inferioare). 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 de a obține performanță atunci când aveți 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 multiprocesare SMP (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ă ruleze mai repede decât altele, chiar și pentru exploziile 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 de ultimă generație (cunoscută sub numele de Turbo Boost Max Technology 3.0) și are doar un câștig ușor performanță pentru acele nuclee care pot rula mai repede.

    Deși este cu siguranță posibil să se proiecteze un procesor tradițional x86 cu miezuri mari și rapide și cu miezuri mai mici și mai mici pentru a se optimiza pentru sarcini de lucru foarte solicitate, acest lucru ar aduce o complexitate considerabilă procesului de procesare și este puțin probabil ca aplicațiile să îl sprijine.

    Luați un procesor ipotetic cu două nuclee rapide Kaby Lake (7-generație) și opt nuclee lentă Goldmont (Atom). Ai avea un total de 10 nuclee, iar încărcările de lucru foarte încărcate, optimizate pentru acest tip de procesor, pot avea un câștig de performanță și eficiență peste un procesor normal quad-core Kaby Lake. Cu toate acestea, diferitele tipuri de nuclee au nivele diferite de performanță, iar miezurile lentă nu suportă nici măcar câteva instrucțiuni pe care suportă miezurile rapide, cum ar fi AVX (ARM evită această problemă cerâ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, poate chiar se blochează dacă utilizează instrucțiuni nesuportate de nucleele mai lent. În timp ce Intel ar putea modifica nucleul lent pentru a adăuga suport pentru instrucțiuni avansate, astfel încât toate nucleele să poată executa toate instrucțiunile, nu s-ar rezolva problemele cu suportul software pentru procesoarele eterogene.

    O abordare diferită a designului de aplicație, mai aproape de ceea ce vă gândiți probabil la întrebarea dvs., ar folosi GPU-ul pentru accelerarea parțiunilor extrem de 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 industrie din câteva aplicații specializate.


    Aveți ceva de adăugat la explicație? Sunați în comentariile. 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)