Cum alegem procesorul? GHz, Threads, Cache.

Cum alegem procesorul? GHz, Threads, Cache.

De multe ori ne amintim de frecvența procesorului ca și echivalentul performanței acestuia. Deși la început când au apărut calculatoarele poate că acesta era foarte aproape de adevăr, astăzi situația este mult mai complexă. Procesoarele s-au dezvoltat foarte mult de-a lungul timpului, având în vedere că în anul 2000 frecvențele maxime erau undeva la 1,5 GHz, iar primul procesor cu 2 nuclee a apărut prin 2005. Însă cât de mult contează astăzi frecvența procesorului?

Ce trebuie să știm despre procesoare?

Frecvența procesorului este măsurată în MHz (megahertz) sau GHz (gigahertz). Acest număr reprezintă de câte ori ceasul intern din interiorul procesorului bifează în cicluri pe secundă. Ceasul dintr-un procesor de 2,5 GHz bifează de 2,5 miliarde de ori pe secundă. Acest ciclu este practic ceea ce se întâmplă când procesorul primește un puls electric, determinându-l să executeze instrucțiunile.

Însă frecvența procesorului nu reprezintă o măsură completă a performanței. Eficiența – cât de mult poate lucra un CPU de la fiecare ciclu de ceas – este de asemenea importantă. Aceasta se măsoară în termeni de instrucțiuni per ciclu, adesea prescurtate ca IPC. Este posibil ca un procesor cu o frecvență de ceas foarte mare, dar IPC scăzut să nu funcționeze la fel de bine ca un CPU cu o frecvență de ceas mai mică și un IPC ridicat.

Deoarece accesul rapid la memorie este și ea importantă, procesoarele dispun de memorie cache, iar ierarhia de memorie este o modalitate de a arăta unde sunt blocaje de memorie. Registrele procesorului dețin datele care sunt efectiv utilizate în calcule și cuprind cea mai rapidă memorie. Următoarele în listă sunt cache-urile de nivel 1, 2 și 3.

Aceste sunt cantități mici de memorie rapidă încorporate chiar pe nucleul procesorului. Memoria cache de nivel 1 (L1) este mai rapidă, dar mai mică decât nivelul 2 (L2) iar al treilea nivel este adesea împărțit între nuclee. Chiar și memoria cache L3 este mult mai rapidă decât principala memorie a computerului.

Dacă un element de date nu se află în cache, procesorul trebuie să aștepte până la recuperarea datelor din memorie. În cel mai lent caz, datele nu sunt nici în memoria principală ci trebuie preluate de pe hard disk. Cu toate acestea, în timp ce așteptați ca datele respective să fie preluate din memoria sistemului, procesorul poate apela la o sarcină diferită pentru a ajuta calculatorul să funcționeze eficient.

Performanță multicore

Până în 2005, procesoarele erau toate pe o singură nuclee, frecvența procesorului fiind una dintre cele mai importante factori – cât mai rapid, cu atât mai bine. Însă astăzi avem procesoare cu mai multe nuclee, chiar și sisteme care funcționează cu mai multe procesoare.

Producătorilor era din ce în ce mai greu să dezvolte procesoare mai rapide din cauza limitațiilor technologice apărute în încercarea de a mări frecvența. Astfel, în loc să depună eforturi considerabile în mărirea nesimnificativă a frecvenței, ș-a modificat filosofia dezvoltării, și au început să adauge unități de procesare identice la aceleași procesor – astfel primul procesor cu două nuclee a apărut.

Procesoarele moderne care se regăsesc în PC-uri (dar în general și în alte device-uri) sunt multicore, însemnând că un procesor poate dispune de 2, 4, sau mai multe nuclee care lucrează împreună simultan la același frecvență. Asta înseamnă că instrucțiunile sunt împărțite și prelucrate deodată pe două (sau mai multe) nuclee la același frecvență.

Aici menționăm termenii multi-threading și hyper-threading. Multi-threading este abilitatea de a utiliza nucleele multiple pentru procesare. Dacă o aplicație este dezvoltată pentru a beneficia de multi-threading, aceasta va funcționa semnificativ mai bine pe un procesor cu multiple nuclee decât pe unul pe un singur nucleu, orice frecvență ar avea aceasta.

Hyper-Threading-ul este o technologie proprietară Intel, care permite unui singur nucleu să se împartă într-un nucleu virtual și unul logic și să-și împartă volumul de muncă printre acestea, fiind un aspect valoros în cazurile în care o aplicație este foarte bine optimizată pentru multi-threading.

Așadar am vorbit despre frecvența procesorului și surplusul de performanță adus de către multiplele nuclee ale procesorului. Acum punem întrebarea: un procesor cu mai multe nuclee dar cu o frecvență redusă, ori una cu mai puține nuclee dar frecvență mai mare?

Mai multe nuclee, frecvență redusă:

Pro:

  • Aplicațiie cu suport multi-threading vor benefia de avantajele nucleelor multiplele, așadar vor avea o performanță mai bună.
  • Un număr mai mare de nuclee este un mod rentabil de a mări performanța
  • Optimizarea aplicațiilor pe multi-threading se va îmbunătăți în viitor
  • Utilizarea mai multor aplicații fără scăderi de performanță

Contra:

  • Performanța în scenarii single-thread este mai mică decât în cazul procesoarelor care dispun de o frecvență mai înaltă

Nuclee mai puține, frecvență mai mare:

Pro:

  • Performanță single-threaded mai înaltă
  • Opțiune mai rentabilă din punctul de vedere al costurilor

Contra:

  • Aplicațiile au la dispoziție mai puține nuclee prin care să împartă volumul de muncă
  • Performanță multi-threading redusă

Acestea fiind spuse, avem o imagine clară despre cât de complexă este rolul procesorului în calculatorul (sau device-ul) nostru. Între timp importanța frecvenței s-a diminuat, dar să nu credem că nu are nici o valoare. Sunt unele aplicații care necesită mai multe nuclee și threaduri, în timp ce alte aplicații sunt construite încât să funcțineze mai bine cu un procesor cu o frecvență înaltă. Desigur, dintre procesoare similare, cu același număr de nuclee și Cache-uri similare, cel care dispune de o frecvență mai mare este de obicei mai rapid, însă acesta este doar unul dintre factori pe care trebuie să luăm în considerare când alegem un procesor.