Procesoare cu mai multe nuclee: este mai mult întotdeauna mai bun?

Cuprins:

Procesoare cu mai multe nuclee: este mai mult întotdeauna mai bun?
Procesoare cu mai multe nuclee: este mai mult întotdeauna mai bun?
Anonim

Adăugarea mai multor nuclee la un singur procesor oferă beneficii semnificative datorită naturii multitasking a sistemelor de operare moderne. Cu toate acestea, pentru anumite scopuri, există o limită practică superioară a numărului de nuclee care produc îmbunătățiri în raport cu costul adăugării lor.

Avansuri în tehnologie multi-core

Image
Image

Procesoarele cu mai multe nuclee au fost disponibile în computerele personale încă de la începutul anilor 2000. Design-urile cu mai multe nuclee au abordat problema procesoarelor care atingeau limita limitărilor fizice în ceea ce privește vitezele de ceas și cât de eficient ar putea fi răcite și mențin în continuare precizia. Trecând la nuclee suplimentare pe un singur cip de procesor, producătorii au evitat problemele cu vitezele de ceas prin multiplicarea efectivă a cantității de date care puteau fi gestionate de procesor.

Când au fost lansate inițial, producătorii ofereau doar două nuclee într-un singur procesor, dar acum există opțiuni pentru patru, șase și chiar 10 sau mai multe. Pe lângă adăugarea de nuclee, tehnologiile simultane de multithreading, cum ar fi Hyper-Threading de la Intel, pot dubla nucleele virtuale pe care le vede sistemul de operare.

Procese și fire

Un proces este o sarcină specifică, ca un program, care rulează pe un computer. Un proces constă dintr-unul sau mai multe fire.

Un fir este pur și simplu un singur flux de date dintr-un program care trece prin procesorul de pe computer. Fiecare aplicație își generează unul sau mai multe fire de execuție, în funcție de modul în care rulează. Fără multitasking, un procesor cu un singur nucleu poate gestiona doar un singur thread la un moment dat, astfel încât sistemul comută rapid între fire pentru a procesa datele într-un mod aparent simultan.

Avantajul de a avea mai multe nuclee este că sistemul poate gestiona mai multe fire simultan. Fiecare nucleu poate gestiona un flux separat de date. Această arhitectură mărește foarte mult performanța unui sistem care rulează aplicații concurente. Deoarece serverele tind să ruleze multe aplicații concomitente la un moment dat, tehnologia a fost dezvoltată inițial pentru clientul întreprinderilor - dar pe măsură ce computerele personale au devenit mai complexe și multitasking-ul a crescut, și ele au beneficiat de nuclee suplimentare.

Totuși, fiecare proces este guvernat de un fir primar care poate ocupa doar un singur nucleu. Astfel, viteza relativă a unui program cum ar fi un joc sau un randament video este limitată la capacitatea nucleului pe care o consumă firul primar. Firul primar poate delega absolut firele secundare altor nuclee - dar un joc nu devine de două ori mai rapid când dublezi nucleele. Astfel, nu este neobișnuit ca un joc să maximizeze un nucleu (firul primar), dar să vadă doar utilizarea parțială a altor nuclee pentru firele secundare. Nicio dublare a nucleului nu ocolește faptul că nucleul principal este un limitator de rată pentru aplicația dvs., iar aplicațiile care sunt sensibile la această arhitectură vor funcționa mai bine decât aplicațiile care nu sunt.

Dependența de software

În timp ce conceptul de procesoare cu mai multe nuclee sună atrăgător, există o avertizare majoră la această tehnologie. Pentru ca adevăratele beneficii ale procesoarelor multiple să se bucure, software-ul care rulează pe computer trebuie să fie scris pentru a suporta multithreading. Fără software-ul care să suporte o astfel de caracteristică, firele vor fi rulate în principal printr-un singur nucleu, degradând astfel eficiența generală a computerului. La urma urmei, dacă poate rula doar pe un singur nucleu într-un procesor quad-core, poate fi de fapt mai rapid să-l rulezi pe un procesor dual-core cu viteze de bază mai mari.

Toate sistemele de operare actuale majore acceptă capacitatea de multithreading. Dar multithreading-ul trebuie scris și în software-ul aplicației. Suportul pentru multithreading în software-ul de consum s-a îmbunătățit de-a lungul anilor, dar pentru multe programe simple, suportul multithreading încă nu este implementat din cauza complexității construcției software. De exemplu, un program de e-mail sau un browser web nu este probabil să vadă beneficii uriașe ale multithreading-ului la fel de mult ca un program de editare grafică sau video, în care computerul procesează calcule complexe.

Un bun exemplu pentru a explica această tendință este să te uiți la un joc tipic pe computer. Majoritatea jocurilor necesită o formă de motor de randare pentru a afișa ceea ce se întâmplă în joc. În plus, un fel de inteligență artificială controlează evenimentele și personajele din joc. Cu un singur nucleu, ambele sarcini se execută prin comutarea între ele. Această abordare nu este eficientă. Dacă sistemul include mai multe procesoare, redarea și AI ar putea rula fiecare pe un nucleu separat - o situație ideală pentru un procesor cu mai multe nuclee.

Este 8 > 4 > 2?

Depășirea celor două nuclee prezintă beneficii mixte, dat fiind că răspunsul pentru orice cumpărător de computer depinde de software-ul pe care îl folosește de obicei. De exemplu, multe jocuri clasice oferă încă o diferență mică de performanță între două și patru nuclee. Chiar și jocurile moderne - dintre care unele presupus că necesită sau acceptă opt nuclee - ar putea să nu funcționeze mai bine decât o mașină cu șase nuclee cu o viteză de bază mai mare, având în vedere că eficiența firului primar guvernează eficiența performanței cu mai multe fire.

Pe de altă parte, un program de codificare video care transcodează videoclipurile va avea probabil beneficii uriașe, deoarece randarea cadrelor individuale poate fi transmisă la diferite nuclee și apoi adunată într-un singur flux de către software. Astfel, a avea opt nuclee va fi chiar mai benefic decât a avea patru. În esență, firul primar nu are nevoie de resurse relativ bogate; în schimb, poate duce munca grea către firele fiice care maximizează nucleele procesorului.

Viteze de ceas

Image
Image

În termeni generali, o viteză de ceas mai mare va însemna un procesor mai rapid. Vitezele de ceas devin mai nebuloase atunci când luați în considerare vitezele în raport cu mai multe nuclee, deoarece procesoarele strâng mai multe fire de date datorită nucleelor suplimentare, dar fiecare dintre acele nuclee va rula la viteze mai mici din cauza restricțiilor termice.

De exemplu, un procesor cu două nuclee poate suporta viteze de bază de 3,5 GHz pentru fiecare procesor, în timp ce un procesor cu patru nuclee poate rula doar la 3,0 GHz. Privind doar un singur nucleu pe fiecare dintre ele, procesorul dual-core este cu 14% mai rapid decât pe quad-core. Astfel, dacă aveți un program care este doar cu un singur thread, procesorul dual-core este de fapt mai eficient. Apoi, din nou, dacă software-ul dvs. poate folosi toate cele patru procesoare, atunci procesorul quad-core va fi de fapt cu aproximativ 70 la sută mai rapid decât procesorul dual-core.

Concluzii

În cea mai mare parte, a avea un procesor cu număr mai mare de nuclee este, în general, mai bine dacă software-ul și cazurile de utilizare tipice îl acceptă. În cea mai mare parte, un procesor dual-core sau quad-core va fi mai mult decât suficientă pentru un utilizator de calculator de bază. Majoritatea consumatorilor nu vor vedea beneficii tangibile din depășirea celor patru nuclee de procesor, deoarece atât de puțin software nespecializat profită de el. Cel mai bun caz de utilizare pentru procesoarele cu număr mare de nuclee se referă la mașinile care îndeplinesc sarcini complexe, cum ar fi editarea video desktop, unele forme de jocuri de gaming de vârf sau programe complicate de știință și matematică.

Consultați părerile noastre despre Cât de rapid am nevoie de un computer? pentru a vă face o idee mai bună despre tipul de procesor care se potrivește cel mai bine nevoilor dvs. de calcul.

Recomandat: