ProcesorProbabil că v-aţi întrebat cum se calculează viteza unui procesor cu mai multe nuclee. Dacă luăm ca exemplu procesorul i5-2320 de 3.0 GHz cu 4 nuclee, putem spune despre el că are o viteză totală de 12.0 GHz (3 GHz x 4 nuclee)?

 

 

 

Ca să răspundem la întrebare va trebui să înţelegem cum funcţionează un procesor cu mai multe nuclee.

Mai întâi apelăm la o analogie; să ne imaginăm o fabrică de autoturisme în două cazuri:
:: o singură linie de producţie cu o rată de 3 componente/minut (3.0GHz).
:: 4 linii de producţie (4 nuclee) cu aceeaşi rată, fiecare.

Maşina este produsul final. În care dintre cele două cazuri se vor produce mai multe maşini într-o oră? Bineînţeles în cel de-al doilea caz. Fiecare linie se va ocupa de anumite componente :
:: va produce motorul şi transmisia;
:: va produce părţile electrice şi electronice;
:: va produce şasiul şi caroseria;
:: va produce elementele interioare;

Deşi viteza de lucru este aceeaşi pentru fiecare linie (3 componente/componente), viteza de producţie a maşinilor creşte (am luat cazul ideal unde am ignorat timpul de asamblare).

 

Viteza de calcul rămânând aceeaşi de 3.0GHz, dar calculul fiind efectuat paralel şi simultan pentru cele 4 nuclee, am scos un timp de producţie mai mic.

Concluzie: nu putem spune că i5-2320 are o viteză totală de 12GHz.

Cine sau ce generează frecvenţa procesorului de 3.0GHz (gigahertzi)?

Frecvenţa de 3.0 GHz este frecvenţa de tact a ceasului (oscilatorului). Acest ceas stabileşte frecvenţa impulsurilor pentru circuitele electronice ale calculatorului, impulsuri prin care li se comandă acestor circuite să execute operaţii, calcule. Ea se măsoară în megahertzi - MHz (1000 MHz = 1 GHz), multiplii (GHz).

1 MHz = 1 milion de impulsuri/secundă;

Totuşi, cum calculăm viteza şi ce viteză calculăm de fapt?

Noi vom afla timpul de execuţie al calculelor efectuate în paralel cu aproximativ aceeaşi frecvenţă, aşa cum se întâmplă în procesoarele cu mai multe nuclee, cu ajutorul legii lui Amdhal. Procesorul cu un singur nucleu va avea un timp de execuţie mai mare, deoarece efectuează doar funcţii secvenţiale.

Există, însă, fracţii în fiecare program ce nu pot fi paralelizate şi trebuie ca ele să fie executate secvenţial. Astfel, accelerarea paralelă este limitată de acea proporţie calculată secvenţial, notată (1-f).

Accelerarea paralelă este dată de timpul secvenţial de execuţie şi timpul de execuţie paralelă.

Valoarea maximă a accelerării paralele este egală cu numărul de procesoare din sistem. O astfel de valoare nu există decât în cazuri ideale unde nu există întârziere de comunicare între componente.

Dacă, prin absurd, avem un procesor de 12 GHz, el va avea un timp de execuţie mult mai rapid decât un procesor cu 4 nuclee de 3.0GHz.

Acest argument este verificat de legea lui Amdhal:

A=1/((1-f)+f/n)

A – valoarea accelerării calculelor
f – proporţia programului ce poate fi paralelizat
(1 – f) – proporția secvenţială, care nu poate fi paralelizată
n – numărul de procesoare (nuclee)


Cu un vocabular popular, putem spune despre o aplicaţie care trebuie să efectueze un set de calcule că se va împărţi în f subseturi (aproape 4 pentru procesorul dat ca exemplu). Fiecare nucleu se va ocupa de câte un subset de calcule în paralel dar va avea loc şi un calcul secvenţial (1-f). Timpul de răspuns va fi mai mic decât cel al procesorului cu un singur nucleu de aceeaşi frecvenţă.

 



Articol adaptat de Bogdan Mihalcea după how-do-you-calculate-processor-speed-on-multi-core-processors. Alte surse folosite:
www.youtube.com/watch?v=KfgWmQpzD74
ro.scribd.com/doc/81236500/Legea-lui-Amdhal
en.wikipedia.org/wiki/Amdahl%27s_law
"Ce este calculatorul" – Autor: Mariana Miloşescu