Sunteți pe pagina 1din 16

L2a: Soluţii hardware şi software de prelucrare paralelă

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ă

Soluţiile de implementare a prelucrării paralele sunt corelate cu arhitecturile din


clasificarea Flynn (SISD, SIMD, MISD şi MIMD) în privinţa soluţiilor hardware,
soluţiile software fiind specifice sistemelor de operare care gestionează intervalele de
timp alocate diferitelor aplicaţii şi speculând, astfel, posibilitatea prelucrărilor paralele.
Soluţii hardware sunt:
 multiplicarea şi specializarea unităţilor aritmetico-logice (ALU) (paralelism
pentru sistemele SISD);
 paralelism şi pipe-line în interiorul unităţii centrale de prelucrare (CPU);
 arhitecturi superscalare;
 unitate ALU vectorială (paralelism pentru sistemele SIMD);
 suprapunerea operaţiilor efectuate de procesor (CPU) cu operaţiile efectuate
de controlerele de I/O;
 utilizarea unui sistem ierarhizat de memorie a sistemului de calcul;
 echilibrarea vitezelor de prelucrare ale subsistemelor componente ale
sistemului de calcul.
Soluţii software sunt:
 prelucrarea pe loturi (batch processing);
 multiprogramarea;
 diviziunea în timp (time sharing).

2.1. Soluţii hardware

2.1.1. Multiplicarea şi specializarea unităţilor aritmetico-logice (ALU)

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.

Fig 1. Multiplicarea ALU prin specializarea pe operaţii.

În timp ce o instrucţiune este executată de o anumită unitate ALU, unitatea de


comandă încarcă şi decodifică o altă instrucţiune pe care o încredinţează unei alte unităţi
ALU ş.a.m.d. Sistemul este eficient dacă timpul de execuţie de către ALU a unei operaţii
este mult mai mare decât timpul de încărcare şi decodificare a unei instrucţiuni. Această
condiţie este în general îndeplinită.
Exprimarea algebrică a condiţiei de eficienţă este: tEX(ALU) >> tIF + tID.

2.1.2. Arhitecturi superscalare

În arhitectura superscalară (vezi figura 2), şirurile de instrucţiuni diferite (de


obicei două sau, eventual, mai multe șiruri) utilizează resurse diferite în aceleaşi stadii de
execuţie a instrucţiunilor de pe fiecare şir.
Structura superscalară cu tehnică burst sau cu citire în rafale (vezi figura 3) este
folosită începând cu microprocesorul 80486 şi este corelată cu momentul introducerii în
capsula procesorului a memoriei cache de nivel 1.
Tehnica burst foloseşte această memorie pentru a citi blocuri de instrucţiuni din
memoria cache, instrucţiuni care au fost încărcate acolo din memoria principală (MP) în
mod secvenţial. În acest mod, se citesc dintr-o dată fie două, fie patru cuvinte, în funcţie
de dimensiunea instrucţiunii (pe 32 sau pe 16 biţi). Inițial, s-a folosit o magistrală internă
de 64 de biţi între cache şi decodificatorul de instrucţiuni, ajungându-se în prezent la 256,
512 sau chiar 1024 biţi.
L2a: Soluţii hardware şi software de prelucrare paralelă pentru CPU 27

Fig 2. Arhitectura superscalară.

Fig. 3. Arhitectura superscalară cu tehnică de burst (citire în rafale).

2.1.3. Unitate ALU vectorială

Fig. 4. Arhitectură SIMD cu unitate ALU vectorială.


28 Arhitectura sistemelor de calcul – lucrări practice

Reprezintă modul de implementare a paralelismului pentru sistemele SIMD (vezi


figura 4).

2.2. Soluţii software

2.2.1. Prelucrarea pe loturi

Prelucrarea pe loturi presupune formarea unui fişier cu extensia .bat şi lansarea


acestuia în execuție. Procesele au loc succesiv, iar CPU (care execută operaţiile de calcul)
nu este folosită în mod eficient (vezi figura 5).
Exemplu. Fie 4 procese paralele P1, P2, P3 şi P4, fiecare proces fiind văzut în
timp ca o succesiune de trei etape: intrare (i), calcul (c) şi ieşire (o).

Fig. 5. Prelucrarea pe loturi.

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.

2.2.3. Diviziunea în timp (time sharing)

Diviziunea în timp reprezintă împărţirea timpului de execuţie al CPU între toate


procesele active (task-urile active) din sistemul de calcul. Cuantele de timp alocate
fiecărui proces pot fi egale sau inegale de la un proces la altul. Viteza de prelucrare poate
creşte astfel mai mult decât în cazul multiprogramării (vezi figura 7).

Fig. 7. Repartizarea în timp a desfăşurării proceselor (time sharing).

Procesul de calcul se împarte în mai multe etape. În funcţie de împărţirea în


intervale de timp, se poate face ca procesele să se termine aproximativ în acelaşi interval
de timp (nu există un proces dominant) sau nu (există proces dominant).
Diviziunea în timp constituie o atribuţie a sistemului de operare (care se numește
sistem de operare cu diviziune în timp). Utilizarea diviziunii în timp a programelor
(proceselor) în sistemele uniprocesor creează conceptul de procesor virtual.
Exemplu. În cazul sistemelor de calcul cu un singur procesor şi mai multe
terminale, pentru subiectul uman răspunsul unicului procesor este suficient de rapid astfel
încât să se considere că fiecare terminal operează independent, ca şi cum ar poseda el
însuşi procesor (utilizatorul are impresia că este singur pe calculator).
Conceptul de diviziune în timp poate fi extins la sistemele multiprocesor.
Observaţii.
1. În cazul multiprogramării, procesele îşi termină faza de calcul (în CPU),
apărând suprapunere doar între operaţii CPU şi operaţii I/O.
2. În cazul diviziunii în timp, procesele nu îşi termină faza de calcul înainte de a
se executa alt proces; procesele pot fi intercalate, astfel încât să se câştige timp de
execuţie în raport cu multiprogramarea (suprapuneri între operaţiile CPU şi operaţiile I/O,
respectiv, între diferitele operaţii I/O).
30 Arhitectura sistemelor de calcul – lucrări practice

3. Descrierea aplicaţiei

Aplicaţia este realizată în Visual C# .NET şi conţine câte un formular pentru


fiecare metodă implementată, un formular cu meniul, precum şi un formular în care sunt
comparate metodele software de prelucrare paralelă.
La rularea aplicației L2A, apare pe ecran primul formular al aplicaţiei, cel cu
meniul (vezi figura 8), care conține două secțiuni: soluții hardware și soluții software. Din
acest formular, se vor deschide ulterior celelalte formulare care conţin mecanismele de
prelucrare paralelă. De reţinut faptul că formularul cu meniul nu se închide la deschiderea
altui formular, iar în momentul închiderii lui celelalte formulare deschise de utilizator se
vor închide automat.
În continuare vor fi prezentate celelalte formulare în ordinea din meniu.

Fig. 8. Meniul aplicaţiei.

3.1. Multiplicarea şi specializarea ALU

Acest formular începe prin selectarea numărului de unităţi aritmetico-logice


(ALU). În formular vor apărea în partea din stânga-sus operaţiile posibile de efectuat la
specializarea ALU (câte unități ALU se aleg pentru fiecare operație), în partea din stânga-
jos operanzii necesari pentru calculele ALU selectate anterior, iar în partea din dreapta
schema de principiu corespunzătoare selecțiilor efectuate, dacă şi numai dacă s-a ales o
valoare pentru numărul de ALU (valori posibile: 4 ÷ 8). În caz contrar, formularul va
rămâne nemodificat. Operaţiile posibile pentru unitățile ALU sunt de două categorii:
 aritmetice: adunare (ADD), scădere (SUB), înmulţire (MUL), împărţire (DIV);
 logice: ŞI (AND), SAU (OR), NU (NOT), SAU EXCLUSIV (XOR).
Numărul total al operaţiilor posibile din fiecare tip este chiar numărul unităţilor
aritmetico-logice selectat. Completarea fiecărui combo-box se face în ordinea: adunare,
scădere, înmulţire, împărţire, ŞI, SAU, NU, SAU EXCLUSIV (vezi figura 9). În cazul
modificării numărului de apariţii al unei operaţii, valorile de selecție ale tuturor
operaţiilor se vor seta la zero şi vor putea lua doar valorile posibile pentru ca suma totală
a apariţiilor tuturor operaţiilor alese să nu depăşească numărul selectat de ALU.
L2a: Soluţii hardware şi software de prelucrare paralelă pentru CPU 31

Fig. 9. Exemplu pentru multiplicarea şi specializarea ALU.

Dacă numărul operaţiilor selectate va fi egal cu numărul de ALU şi nu s-a ajuns la


ultima operaţie posibilă, celelalte operaţii posibile vor dispărea din formular. Aplicaţia
poate continua însă şi dacă nu s-a atins numărul maxim de ALU.
Exemplu. Dacă se selectează numărul de ALU egal cu 5, cu două operaţii de
adunare, o operaţie de scădere, o operaţie de înmulţire și o operație de ȘI, restul
operaţiilor (împărţire, SAU, NU, SAU EXCLUSIV) nu vor apărea în formular, așa cum
se observă în figura 9.
În formular vor apărea și operanzii posibili pentru fiecare operaţie deja selectată,
precum şi un buton de operare asupra schemei bloc de principiu (Scrie în registre).
Operaţiile selectate vor apărea pe schemă.
Valorile posibil de selectat pentru operanzi sunt:
 pentru adunare, scădere, înmulţire, împărţire: 1 ÷ 9;
 pentru ŞI, SAU, NU, SAU EXCLUSIV: 0, 1.
După selectarea operanzilor doriţi, prin apăsarea butonului Scrie în registre
valorile operanzilor selectaţi vor fi scrise în registrele din partea de sus a schemei, iar
apoi se va derula o animație care va indica secvențial, pas cu pas, încărcarea valorilor din
registrele interne în registrele de intrare ale ALU, calculul rezultatelor depuse în registrele
de ieșire ale unităților ALU și încărcarea registrelor interne cu rezultatele obținute în
registrele de ieșire ale unităților ALU (în coloana din dreapta). Fiecare pas al acestor
operații efectuate pe schemă va fi marcat în animație printr-un fond de culoare verde.
Rezultatele operațiilor efectuate se vor exprima în valoare întreagă, urmată de
două zecimale (în cazul operațiilor aritmetice) și în binar (în cazul operațiilor logice).
Acest formular nu îşi propune să fie un minicalculator real, ci doar să ilustreze
printr-o animație sugestivă multiplicarea şi specializarea ALU prin operaţii de bază şi
operanzi elementari. În realitate, toate aceste operații au loc simultan, în toate fazele
prelucrării paralele: încărcarea operanzilor, efectuarea calculelor, obținerea rezultatelor și
depunerea acestora în registrele interne.
32 Arhitectura sistemelor de calcul – lucrări practice

3.2. Arhitecturi superscalare

Acest formular are rolul de a exemplifica prin câteva scheme de principiu


conceptul de arhitecturi superscalare, precum şi conceptul de citire în rafale (tehnica de
burst). Acest formular are trei părţi care se pot modifica:
 numărul de pipe-line-uri al arhitecturii superscalare;
 numărul de biţi al instrucţiunilor citite în rafale;
 numărul de biţi al magistralei dintre memorie şi decodificatorul de instrucţiuni.
În funcţie de numărul de pipe-line-uri ale arhitecturii superscalare, se va afişa şi
un exemplu de procesor cu astfel de arhitectură. Valorile posibile ale numărului de pipe-
line-uri sunt: 2, 3, 5, 24, 40, 72, 126. Pentru fiecare selecție, pe formular vor apărea atât
schema de principiu, precum şi exemplul de procesor cu acea arhitectură (vezi figura 10).

Fig. 10. Exemplu de arhitecturi superscalare.

În funcţie de numărul de biţi selectat pentru instrucţiune şi pentru magistrală, în


partea a doua a formularului se va afişa, în timp real, numărul instrucţiunilor citite
simultan. Valorile posibile pentru instrucţiuni sunt: 16, 32, 64, iar pentru magistrale sunt:
64, 128, 256. Dacă una dintre valori nu este selectată, în formular nu se va afişa nimic.

3.3. Unitate ALU vectorială

La fel ca în formularul precedent, acest formular are rolul de a exemplifica


conceptul de unităţi aritmetico-logice vectoriale. În funcţie de numărul de componente al
vectorului de intrare (valorile posibile sunt 4, 8, 16, și 64), pe formular se va afişa în timp
real schema corespunzătoare numărului de componente ales, iar în text-box se vor afişa
exemple de procesoare care folosesc arhitectura respectivă (vezi figura 11).
L2a: Soluţii hardware şi software de prelucrare paralelă pentru CPU 33

Fig. 11. Exemplu de ALU vectorială.

3.4. Prelucrarea pe loturi (batch processing)

Acest formular prezintă execuţia proceselor conform tehnicii de prelucrare pe


loturi (batch processing). Procesele sunt împărţite în trei etape: intrare, calcul şi ieşire.
Formularul începe prin selectarea numărului de procese (valori posibile: 1 ÷ 8).
În funcţie de numărul de procese selectat, pentru fiecare proces se va putea alege
durata fiecărei etape (de intrare, de calcul şi de ieşire), în intervalul 1 ÷ 10. Afişarea se va
realiza doar dacă s-a introdus 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 dintre procese,
în dataGridView se va afişa succesiunea de procese conform prelucrării pe loturi (vezi
figura 12). 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 (în unități de timp).

Fig. 12. Exemplu de prelucrare pe loturi.


34 Arhitectura sistemelor de calcul – lucrări practice

3.5. Multiprogramarea

Acest formular prezintă execuţia proceselor conform tehnicii multiprogramării.


Similar prelucrării pe loturi, procesele sunt împărţite în trei etape: intrare, calcul şi ieşire.
Formularul începe prin selectarea numărului de procese. Numărul proceselor
poate fi: 2 ÷ 8 (vezi figura 13).

Fig. 13. Exemplu de multiprogramare.

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

3.6. Diviziunea în timp (time sharing)

Spre deosebire de celelalte două soluţii software, în care afişarea proceselor se


făcea într-un singur mod, diviziunea în timp oferă două posibilităţi de reprezentare.
Formularul începe prin alegerea uneia dintre cele două modalităţi de afişare.
Procesele se termină aproximativ în acelaşi timp/nu există proces dominant (varianta Da)
sau procesele nu se termină în acelaşi timp/există proces dominant (varianta Nu). Etapele
de intrare şi de ieşire rămân nemodificate indiferent de varianta aleasă, însă etapa de
calcul este complet diferită de la o variantă la alta.
Duratele posibile pentru etapele de intrare şi ieşire sunt: 1÷10. Pentru varianta Da,
procesele au acelaşi număr de cuante în etapa de calcul, dar duratele cuantelor pe procese în
etapa de calcul sunt diferite în funcţie de duratele totale ale etapelor de calcul. În această
variantă, pentru a simplifica afişarea, duratele etapelor de calcul pentru fiecare proces sunt
multipli întregi ai numărului de cuante.
Exemplu. Dacă s-a selectat numărul de cuante egal cu 3, duratele posibile pentru
etapa de calcul sunt: 3, 6, 9, 12, 15, 18, 21, 24, 27, 30.
Pentru varianta Nu, procesele au duratele cuantelor în etapa de calcul egale, dar
numărul cuantelor pe procese diferă în funcţie de duratele totale ale etapelor de calcul. În
această variantă, duratele posibile pentru etapa de calcul sunt: 1÷10.
În formular se va putea selecta numărul de procese, iar formularul se va modifica
diferit, în funcţie de varianta aleasă.

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

În varianta Da, după alegerea numărului de procese, se va alege numărul de


cuante. Valorile posibile sunt: 1÷10. După selectarea numărului de cuante, formularul va
continua cu alegerea duratelor proceselor (împărţite în: etapa de intrare, de calcul şi de
ieşire). Afişarea proceselor conform tehnicii diviziunii în timp (apăsarea butonului
Afişează) se va realiza în dataGridView. În partea de jos a formularului se va afişa şi
durata totală a proceselor (în unități de timp) conform diviziunii în timp (vezi figura 14).
În varianta Nu, după selectarea numărului de procese) se vor afişa valorile
posibile pentru duratele fiecărui proces (intrare, calcul şi ieşire), între 1 și 10. În funcţie
de valorile selectate pentru duratele etapelor de calcul, se va putea selecta durata unei
cuante în etapa de calcul, valabile pentru toate procesele (vezi figura 15).

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

Se remarcă faptul că durata totală pentru Da și Nu rămâne neschimbată la același


set de date de intrare, ceea ce se modifică la diviziunea în timp (așa după cum îi spune și
numele), fiind distribuția etapelor de calcul efectuate în cuante la fiecare proces în parte.

3.7. Comparaţia între soluţiile software

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).

Fig. 16. Exemplu de comparaţie între soluţiile software de prelucrare paralelă.

Diviziunea în timp se aseamănă foarte mult cu multiprogramarea, diferenţa fiind


doar în tratarea eșalonată a etapelor de calcul.
În cazul diviziunii în timp, etapele de calcul sunt efectuate divizat, în funcţie de
duratele cuantelor de calcul alese. Însă durata totală a etapelor de calcul pentru diviziunea
în timp este aceeaşi cu durata totală a etapelor de calcul pentru multiprogramare.
În partea de jos a formularului, sunt afişate duratele totale pentru fiecare metodă
software, precum şi diferenţa dintre acestea (în unități de timp).
38 Arhitectura sistemelor de calcul – lucrări practice

4. Desfăşurarea lucrării

1. Se parcurg paragrafele de introducere teoretică şi de descriere a aplicaţiei.


2. Se lansează aplicaţia L2A.
3. Se deschide formularul referitor la multiplicarea şi specializarea ALU.
3.1. Se selectează numărul de ALU.
3.2. Se selectează numărul dorit de apariţii al fiecărei operaţii aritmetice și
logice. Suma acestora pentru toate operațiile selectate trebuie să fie
egală cu numărul selectat de ALU
3.3. Se aleg operanzii în funcţie de operaţiile selectate.
3.4. Se apasă butonul Scrie în registre, pentru a produce evenimentele:
scrierea operanzilor în registrele interne, încărcarea valorilor din
registrele interne în registrele de intrare ale ALU, efectuarea operaţiilor
selectate, scrierea rezultatelor în registrele de ieşire ale ALU și
încărcarea rezultatelor din registrele de ieșire ale ALU în ultima coloană
din registrele interne (procese reprezentate printr-o animație pas cu pas).
3.5. Se reia pasul anterior pentru alte valori ale parametrilor. Pentru una
dintre configurațiile selectate (la alegere), se notează datele de intrare și
se desenează schema cu rezultatul final
4. Se deschide formularul referitor la arhitecturi superscalare.
4.1. Se alege numărul de pipeline-uri, pentru a vizualiza schema de principiu
cu numărul de pipeline-uri selectate, precum şi exemplele de procesoare
cu astfel de arhitectură. Se vizualizează mai multe opțiuni diferite și se
reține (se desenează) o configurație la alegere.
4.2. În partea a doua a formularului, se selectează numărul de biţi ai
instrucţiunii şi ai magistralei. Se reţine numărul instrucţiunilor citite în
acelaşi timp (în rafală). Se vizualizează mai multe opțiuni diferite și se
reține (se desenează) o configurație la alegere.
5. Se deschide formularul referitor la unităţi aritmetico-logice vectoriale.
5.1. Se selectează dimensiunea vectorului de intrare și se vizualizează
schema.
5.2. Se reia pasul anterior pentru alte valori ale dimensiunii vectorului de
intrare. Se vizualizează mai multe opțiuni diferite și se reține (se
desenează) o configurație la alegere.
6. Se deschide formularul referitor la prelucrarea pe loturi.
6.1. Se selectează numărul de procese.
6.2. Se selectează duratele fiecărui proces, alegând câte o valoare pentru
fiecare etapă (de intrare, de calcul şi de ieşire). Se apasă butonul
Afişează.
6.3. Se reia pasul anterior pentru alte valori ale parametrilor.
6.4. Se desenează reprezentarea proceselor şi se notează durata totală a
acestora, pentru o configurație la alegere
7. Se deschide formularul referitor la multiprogramare.
7.1. Se selectează numărul de procese.
L2a: Soluţii hardware şi software de prelucrare paralelă pentru CPU 39

7.2. Se selectează duratele fiecărui proces, alegând câte o valoare pentru


fiecare etapă (de intrare, de calcul şi de ieşire). Se apasă butonul
Afişează.
7.3. Se reia pasul anterior pentru alte valori ale parametrilor.
7.4. Pentru o configurație la alegere, se desenează reprezentarea proceselor
atât în modul suprapus (toate procesele) precum şi în modul grupării
etapelor orientate spre CPU şi I/O. Se notează durata totală a proceselor.
8. Se deschide formularul referitor la diviziunea în timp.
8.1. Se alege varianta ca procesele să se termine aproximativ în acelaşi timp
(varianta Da).
8.2. Se selectează numărul de procese.
8.3. Se selectează numărul de cuante.
8.4. Se selectează duratele fiecărui proces, alegând câte o valoare pentru
fiecare etapă (de intrare, de calcul şi de ieşire). Se apasă butonul
Afişează și se vizualizează diagrama de timp.
8.5. Se reia pasul anterior pentru alte valori ale parametrilor.
8.6. Pentru o configurație la alegere, se desenează reprezentarea proceselor
şi se notează durata totală a acestora.
8.7. Se alege varianta ca procesele să nu se termine în acelaşi timp (varianta
Nu).
8.8. Se selectează numărul de procese.
8.9. Se selectează duratele fiecărui proces, alegând câte o valoare pentru
fiecare etapă (de intrare, de calcul şi de ieşire).
8.10. Se selectează durata unei cuante în etapa de calcul, după care se apasă
butonul Afişează și se vizualizează diagrama de timp.
8.11. Se reia pasul anterior pentru alte valori ale parametrilor.
8.12. Pentru o configurație la alegere, se desenează reprezentarea proceselor
şi se notează durata totală a acestora.
9. Se deschide formularul referitor la comparaţia soluţiilor software.
9.1. Se selectează numărul de procese.
9.2. Se selectează duratele fiecărui proces, alegând câte o valoare pentru
fiecare etapă (de intrare, de calcul şi de ieşire). Se apasă butonul
Afișează și se vizualizează diagramele de timp.
9.3. Se reia pasul anterior pentru alte valori ale parametrilor.
9.4. Pentru o configurație la alegere, se desenează reprezentarea proceselor
şi se notează durata totală a acestora pentru fiecare metodă de
prelucrare, precum și diferenșa acestora.

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ă.

S-ar putea să vă placă și