Dacă ați făcut vreodată multe comparații pentru un nou procesor, este posibil să fi observat că toate nucleele par să aibă viteza mai degrabă decât o combinație de altele. De ce este asta? Postarea de astăzi a SuperUser Q&A are răspunsul la întrebarea unui cititor curios.
Sesiunea de Întrebări și Răspunsuri de astăzi ne vine prin amabilitatea SuperUser - o subdiviziune a Stack Exchange, un grup de site-uri web de întrebări și răspunsuri bazat pe comunitate.
Intrebarea
Cititorul SuperUser Jamie vrea să știe de ce nucleele CPU au toate aceeași viteză în loc de altele diferite:
În general, dacă cumpărați un computer nou, veț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 viteza unui singur nucleu, în timp ce aplicațiile precum editarea 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ă, diferențele principale 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, 6 nuclee, 12 fire
- AMD Ryzen 7 1800X, frecvență de bază 3,60 GHz, 8 nuclee, 16 fire
De ce vedem acest tipar de nuclee în creștere, totuși toate nucleele având aceeași viteză de ceas? De ce nu există variante cu viteze de ceas diferite? De exemplu, două nuclee „mari” și o mulțime de nuclee mici.
În loc de, să zicem, patru nuclee la 4,0 GHz (adică 4 × 4 GHz, maxim 16 GHz), ce zici de 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 sarcinile de lucru cu un singur fir, dar potențial mai bună la sarcinile de lucru cu mai multe fire?
Îl pun ca o întrebare generală și nu în mod specific în ceea ce privește CPU-urile enumerate mai sus sau despre o anumită sarcină de lucru. Sunt curios doar de ce tiparul este ceea ce este.
De ce miezurile CPU au toate aceeași viteză în loc de altele diferite?
Răspunsul
Contribuitorul SuperUser bwDraco are răspunsul pentru noi:
Acest lucru este cunoscut sub numele de multi-procesare eterogenă (HMP) și este adoptat pe scară largă de dispozitivele mobile. În dispozitivele bazate pe ARM care implementează mare mic , procesorul conține nuclee cu diferite performanțe și profile de putere, adică unele nuclee rulează rapid, dar consumă multă putere (arhitectură mai rapidă și / sau ceasuri mai mari), în timp ce altele sunt eficiente din punct de vedere energetic, dar lent (arhitectură 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țineți performanță atunci când aveți nevoie de ea și durata de viață a bateriei atunci când nu aveți nevoie.
Pe platformele desktop, consumul de energie este mult mai puțin important, deci acest lucru nu este cu adevărat necesar. Majoritatea aplicațiilor se așteaptă ca fiecare nucleu să aibă caracteristici de performanță similare, iar procesele de planificare pentru sistemele HMP sunt mult mai complexe decât planificarea pentru sistemele tradiționale simetrice de procesare multiplă (SMP) (din punct de vedere tehnic, Windows 10 are suport pentru HMP, dar este destinat în principal pentru dispozitive mobile dispozitive care folosesc ARM big.LITTLE).
De asemenea, majoritatea procesoarelor desktop și laptop de astăzi nu sunt limitate termic sau electric la punctul în care unele nuclee trebuie să ruleze mai repede decât altele, chiar și pentru rafale scurte. Practic am lovit un perete cât de repede putem realiza nuclee individuale , deci înlocuirea unor nuclee cu altele mai lente nu va permite restul nucleelor să ruleze 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 limitată în prezent la anumite procesoare Intel de ultimă generație (cunoscute sub numele de Turbo Boost Max Technology 3.0) și implică doar un câștig ușor în performanță pentru acele nuclee care pot rula mai repede.
Deși este cu siguranță posibilă proiectarea unui procesor tradițional x86 cu nuclee mari, rapide și nuclee mai mici și mai lente, pentru a optimiza sarcinile de lucru cu fire foarte mari, acest lucru ar adăuga o complexitate considerabilă proiectării procesorului și este puțin probabil ca aplicațiile să îl susțină în mod corespunzător.
Luați un procesor ipotetic cu două rapide Lacul Kaby (Generația a 7-a) nuclee și opt lent Goldmont (Atom) nuclee. Ați avea un total de 10 nuclee, iar sarcinile de lucru puternic optimizate pentru acest tip de procesor ar putea avea un câștig în performanță și eficiență față de un procesor normal quad-core Kaby Lake. Cu toate acestea, diferitele tipuri de nuclee au niveluri de performanță extrem de diferite, iar nucleele lente nici nu acceptă unele dintre instrucțiunile acceptate de nucleele rapide, cum ar fi AVX (ARM evită această problemă solicitând atât nucleele mari, cât și cele LITTLE să accepte aceleași instrucțiuni).
Din nou, majoritatea aplicațiilor multi-thread 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 va avea probabil o performanță mai mică decât ideală, poate chiar se blochează dacă folosește instrucțiuni neacceptate de nucleele mai lente. În timp ce Intel ar putea modifica nucleele lente pentru a adăuga suport de instrucțiuni avansat astfel încât toate nucleele să poată executa toate instrucțiunile, acest lucru nu ar rezolva problemele legate de suportul software pentru procesoarele eterogene.
O abordare diferită a proiectării aplicațiilor, mai aproape de ceea ce probabil vă gândiți la întrebarea dvs., ar folosi GPU pentru accelerarea porțiunilor de aplicații foarte paralele. Acest lucru se poate face folosind API-uri precum OpenCL și MINUNI . În ceea ce privește o soluție cu un singur cip, AMD promovează suportul hardware pentru accelerarea GPU în APU-urile sale, care combină un procesor tradițional și un GPU integrat de înaltă performanță în același cip, ca Arhitectura eterogenă a sistemului , deși acest lucru nu a văzut prea multă industrie în afara câtorva aplicații specializate.
Aveți ceva de adăugat la explicație? Sună în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori ai Stack Exchange? Consultați aici firul complet de discuție .
Credit de imagine: Mirko Waltermann (Flickr)