Documente Academic
Documente Profesional
Documente Cultură
pentru CPU
1. Obiectivul lucrării
Lucrarea îşi propune să prezinte într-o formă cât mai simplă şi eficientă câteva
mecanisme hardware şi software de prelucrare paralelă pentru unităţi centrale de prelucrare
în scopul paralelizării unui sistem de calcul care lucrează serial sau secvențial.
2. Introducere teoretică
Procesoarele clasice aveau un singur bloc de tip ALU. În acest fel, nu se efectua
decât o singură operaţie la un moment dat. Prin multiplicarea ALU, majoritatea funcţiilor
pot fi distribuite între unităţile specializate pe o anumită operaţie aritmetică sau logică şi
astfel acestea pot funcţiona în paralel. În unele procesoare există două ALU care pot lucra
în paralel (o unitate pentru aritmetica în virgulă fixă şi alta pentru aritmetica în virgulă
mobilă). Ideea specializării funcţionale şi a distribuirii şi multiplicării ALU (numite şi
unităţi funcţionale) se poate extinde atât la sistemele multiprocesor, cât şi la cele
matriceale. Acest mecanism constituie de fapt implementarea paralelismului în sistemele
SISD.
26 Arhitectura sistemelor de calcul – lucrări practice
Se prezintă un exemplu pentru ilustrarea acestei soluţii (vezi figura 1), în care
unitatea centrală conţine 5 unităţi ALU specializate, care pot lucra în paralel.
2.2.2. Multiprogramarea
În acelaşi interval de timp pot exista mai multe programe (procese) active în
sistemul de calcul, concurând pentru memorie, unități I/O şi CPU. Totuşi, unele programe
sunt orientate către calcule (utilizând intens CPU), în timp ce altele sunt orientate către
citirea/scrierea dispozitivelor I/O. Se pot astfel organiza (intercala) cele două clase de
programe pentru a obţine un timp de prelucrare global cât mai bun. Câştigul de timp faţă
de prelucrarea pe loturi este notat cu Δ (vezi figura 6). Intercalarea programelor permite
utilizarea mai eficientă a resurselor calculatorului prin suprapunerea operaţiilor I/O cu
operaţiile CPU. Acest mod de organizare este gestionat de sistemul de operare
(programul de supervizare). Astfel, multiprogramarea se poate defini ca intercalarea
operaţiilor CPU cu operaţiile I/O pentru mai multe programe.
Fig. 6. Multiprogramarea.
L2a: Soluţii hardware şi software de prelucrare paralelă pentru CPU 29
Observaţie. Procesele P1, P2, P3 şi P4 pot aparţine aceluiaşi program sau unor
programe diferite.
În cadrul multiprogramării se poate întâmpla ca un proces cu prioritate mare să
ocupe CPU un timp îndelungat şi în acest fel se împiedică execuţia altor procese.
Neajunsul se poate înlătura folosind un sistem de operare cu divizare în timp.
3. Descrierea aplicaţiei
3.5. Multiprogramarea
Dacă numărul de procese a fost selectat, se va putea alege pentru fiecare proces
durata fiecărei etape (de intrare, de calcul şi de ieşire), după care va apărea butonul de
afişare. Pentru etapele de intrare, calcul şi ieşire valorile posibile sunt: 1 ÷ 10. Afişarea se
va realiza doar dacă s-a ales cel puţin o valoare corespunzătoare oricărei etape.
În funcţie de numărul de procese selectat şi de duratele alese pentru fiecare
proces, în primul dataGridView se vor afişa toate procesele separat, conform
multiprogramării, afişarea făcându-se pe mai multe linii, în funcție de numărul de procese
selectat.
În al doilea dataGridView, procesele sunt afişate pe două linii, prima linie
reprezentând succesiunea etapelor orientate spre CPU (de calcul), iar cea de-a doua linie
reprezentând succesiunea etapelor orientate spre I/O (de intrare și ieșire).
Pentru etapele de intrare, calcul şi ieşire s-au ales culori diferite. În partea de jos a
formularului se va afişa şi durata totală a proceselor selectate conform multiprogramării
(în unități de timp).
L2a: Soluţii hardware şi software de prelucrare paralelă pentru CPU 35
Fig. 14. Exemplu de diviziune în timp pentru procese care se termină aproximativ în acelaşi timp.
36 Arhitectura sistemelor de calcul – lucrări practice
Fig. 15. Exemplu de diviziune în timp pentru procese care nu se termină în acelaşi timp.
Valorile posibile sunt de la 1 la durata cea mai mică dintre etapele de calcul
selectate. La apăsarea butonul Afişează, procesele vor fi afişate în dataGridView conform
tehnicii diviziunii în timp. În partea de jos a formularului se va afişa durata totală a
proceselor conform diviziunii în timp (în unități de timp).
Având două moduri de afişare a proceselor, formularul cu diviziunea în timp are o
funcţie în plus faţă de celelalte formulare cu soluţii software (prelucrarea pe loturi și
multiprogramarea). Este vorba despre o funcţie care resetează formularul în cazul alegerii
altei variante de afişare decât cea deja selectată (doar la schimbarea din Da în Nu). În
acest caz, se reiau paşii de completare a valorilor cerute pentru etapa de calcul.
L2a: Soluţii hardware şi software de prelucrare paralelă pentru CPU 37
Acest formular este foarte asemănător celor trei formulare care conţin soluţiile
software de prelucrare paralelă. Formularul începe prin selectarea numărului de procese.
Variantele posibile sunt: 2 ÷ 8. În formular se vor selecta apoi valorile posibile pentru
duratele etapelor de intrare, de calcul şi de ieşire ale proceselor (între 1 și 10).
În cazul în care există durate care nu au fost selectate, prin apăsarea butonului
Afișează în formular nu se va afișa nimic și, la fel ca în toate celelalte formulare în care
selecția datelor care trebuie introduse nu este completă, va apărea un mesaj de eroare.
Dacă valorile pentru etape au fost selectate, în formular se va efectua comparaţia între
cele trei soluții software: prelucrarea pe loturi, multiprogramarea și diviziunea în timp.
În dataGridView, pe prima linie vor fi afişate procesele conform tehnicii de
prelucrare pe loturi, iar pe ultimele două linii vor fi afişate procesele conform tehnicilor
de multiprogramare și diviziune în timp. (vezi figura 16).
4. Desfăşurarea lucrării
5. Întrebări
1. Care este condiţia de eficienţă în cazul multiplicării şi specializării ALU?
2. În ce constă tehnica de citire în rafale (burst)?
3. Care este dezavantajul prelucrării pe loturi?
4. Cum se poate defini multiprogramarea?
5. În ce constă diviziunea în timp?
40 Arhitectura sistemelor de calcul – lucrări practice
6. Cum se poate calcula diferenţa de timp (Δ) între durata totală a unor procese
prelucrate pe loturi şi prin microprogramare? Dar între microprogramare şi diviziune în
timp?
7. Calculaţi diferenţa dintre prelucrarea pe loturi şi multiprogramare pe un
exemplu cu trei procese, pentru un set de parametri la alegere.
8. Explicaţi în ce situaţii este mai avantajos ca procesele paralele să se termine
(aproximativ) în acelaşi timp şi în ce situaţii se preferă existenţa unui proces dominant.
9. Care este diferenţa între cele două variante de afişare în cadrul diviziunii în
timp? Ilustraţi printr-un exemplu.
10. Arătaţi care sunt resursele hardware ale unei unităţi centrale de calcul (CPU)
implicate în fiecare dintre etapele unui proces (intrare, calcul şi ieşire). Există procese la
poate lipsi etapa de calcul? Dați exemple.
11. Care sunt operaţiile posibile în cadrul multiplicării şi specializării ALU?
12. Daţi trei exemple de procesoare cu arhitectură superscalară, menţionând şi
numărul lor de pipeline-uri.
13. Daţi exemple de procesoare vectoriale cu opt componente ale vectorilor de
intrare.
14. Care sunt considerentele pentru care s-au limitat valorile numărului unităţilor
fizice componente în cazul soluţiilor hardware şi al duratelor etapelor în cazul soluţiilor
software?
15. De ce credeți că în varianta Da de la diviziunea în timp duratele etapelor de
calcul pentru fiecare proces sunt alese în aplicație ca fiind multipli întregi ai numărului de
cuante?
16. Propuneţi o soluţie de îmbunătăţire a caracterului interactiv în lucrul cu
schemele propuse la soluţiile hardware de prelucrare paralelă.