Procesoare de bază multiple: este mai mult întotdeauna mai bine?

Adăugarea mai multor nuclee la unul 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.

Progrese tehnologice multi-core

PAE-NX-SSE2-CPU-Windows
TobiasD / Pixabay

Procesoare cu mai multe nuclee au fost disponibile în calculatoare personale de la începutul anilor 2000. Design-urile multi-core au abordat problema procesoarelor care lovesc plafonul fizic limitări în ceea ce privește vitezele de ceas și cât de eficient ar putea fi răcite și încă menținute precizie. 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 către CPU.

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 multithreading simultane, cum ar fi Hyper-Threading de la Intel, pot dubla nucleele virtuale pe care

sistem de operare vede.

Procese și fire

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

A 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-o manieră aparent concomitentă.

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 concurente la un moment dat, tehnologia a fost dezvoltată inițial pentru client întreprindere — dar pe măsură ce computerele personale au devenit mai complexe și multitasking-ul a crescut, și ei au beneficiat de pe urma miezuri suplimentare.

Fiecare proces, totuși, 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 atunci când dublezi nucleele. Astfel, nu este neobișnuit ca un joc să maximizeze complet 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 primar este un limitator de rată pentru dvs aplicația, iar aplicațiile care sunt sensibile la această arhitectură vor funcționa mai bine decât aplicațiile care nu sunt.

Dependență 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 de execuție 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 ceas de bază mai mari.

Toate sistemele de operare actuale majore acceptă capacitatea de multithreading. Dar multithreading-ul trebuie să fie 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 mulți simpli programe, suportul multithreading încă nu este implementat din cauza complexității software-ului construi. 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, unde 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 includea 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?

Trecerea dincolo de 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 în mod obișnuit. De exemplu, multe jocuri clasice oferă încă o mică diferență 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 un viteză de ceas de bază mai mare, având în vedere că eficiența firului primar guvernează eficiența multithreaded performanţă.

Pe de altă parte, un program de codificare video care transcodează videoclipurile va avea probabil beneficii uriașe randarea cadru individual 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 transfera munca grea către firele fiice care maximizează nucleele procesorului.

Viteze de ceas

Managerul de activități care arată utilizarea procesorului

Î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 procesează mai multe date fire datorită nucleelor ​​suplimentare, dar fiecare dintre acele nuclee va rula la viteze mai mici din cauza restricțiilor termice.

De exemplu, un procesor dual-core poate suporta viteze de ceas de bază de 3,5 GHz pentru fiecare procesor, în timp ce un procesor quad-core poate rulează 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 cu patru nuclee. Astfel, dacă ai un program care este doar single-threaded, 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 acel procesor 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ă dvs software iar cazurile de utilizare tipice îl susțin. Î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ă.

Verificați gândurile 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.