Extras din curs
1 Tehnica pipeline
Tehnica pipeline este unul dintre modelele utilizate frecvent în cele mai variate domenii de productie. Acest model este aplicabil daca activitatea care trebuie realizata se poate descompune în faze distincte care trebuie executate succesiv. Fiecare faza preia, pentru un anumit obiect de prelucrat, rezultatul aplicarii fazei precedente. La rândul ei, faza curenta transmite rezultatul prelucrarii obiectului catre faza urmatoare. Abordarea paralela a activitatii este relevanta numai daca ea trebuie aplicata unui numar mare de obiecte care trebuie prelucrate.
O prelucrare paralela pipeline este perfect similara unei linii de asamblare a unui autoturism. Asamblarea unei masini implica executia mai multor montari succesive de subansamble: mai întâi se monteaza rotile la caroserie, apoi se monteaza motorul, se fixeaza instalatia electrica, se monteaza scaunele s.a.m.d. Evident ca aceste faze trebuie sa se succeada în aceasta ordine si nici o faza nu poate începe pâna nu se termina precedenta. Abordarea pipeline presupune existenta unei benzi rulante pe care se afla simultan mai multe masini, în faze diferite de montare. Pentru fiecare faza de montare lucreaza o echipa specializata. Dupa ce o echipa monteaza subansamblul corespunzator, masina este transportata de catre banda la echipa care sa-i monteze subansamblul urmator. In fiecare moment pe banda se afla atâtea masini câte faze sunt necesare pentru montarea completa. Natural, organizatorii benzii dimensioneaza echipele de lucru asa încât timpii de finalizare pentru fiecare faza sa nu difere prea mult, spre a nu se crea aglomerari prea mari la cozile dintre faze. Daca n este numarul de faze si daca montarea completa a unei masini dureaza t unitati de timp, atunci linia de asamblare scoate o masina gata în t/n unitati de timp.
Un alt exemplu de descompunere în faze si posibila abordare pipeline este activitatea de compilare a unui program sursa. In acest caz fazele sunt: analiza lexicala, analiza sintactica, analiza semantica (controlul de tipuri), generarea de cod etc. Daca programul sursa este compus din mai multe module, atunci compilatorul poate sa-si creeze câte un proces pentru fiecare faza si sa execute compilarea în pipeline.
Figura 1.1 prezinta stadiul curent, la al i-lea moment, de prelucrare pipeline a unei activitati descompuse în patru faze.
Figura 1.1 Pipeline în patru faze
Natural, trebuie sa existe sincronizare între executiile fazelor si datele prelucrate de acestea. Mai exact, pentru derularea normala a unui pipeline, trebuie ca fiecare pereche de faze care-si transmit una alteia obiecte sa-si sincronizeze începutul dupa sfârsitul fazei precedente. Implicit, între orice doua faze succesive trebiue sa existe o zona tampon, (o coada intermediara) care sa pastreze obiectul între faze.
Orice întrerupere, fie ea si temporara a executiei unei faze poate perturba / încetini derularea întregului proces. De aceea, proiectantii unor astfel de activitati trebuie sa fie extrem de atenti la aceste aspecte.
Daca activitatea se descompune în n faze, atunci pipeline este eficient numai daca activitatea se aplica la un numar de obiecte care depaseste cu mult numarul n. Aste deoarece pentru primele n-1 obiecte (ca si pentru ultimele n-1), paralelismul este doar partial: se executa prima faza pentru primul obiect, apoi în paralel prima faza pentru al doilea obiect si a doua faza pentru primul obiect s.a.m.d. Abia dupa intrarea în lucru al celui de-al n-lea obiect paralelismul este complet, adica sunt în functiune toate cele n faze.
Tehnica pipeline este aplicata astazi pe scara larga la proiectarea procesoarelor, în vederea obtinerii de procesoare performante. Se stie ca o instructiune masina este executata în mai multe faze, fiecare dintre ele desfasurându-se pe durata unui ciclu masina. Durata unui ciclu masina coincide cu durata celei mai lungi faze posibile pentru o instructiune oarecare. Pentru fiecare faza se proiecteaza câte o componenta functionala specifica care sa o execute.
Preview document
Conținut arhivă zip
- Coperta.doc
- tehnica pipeline,hazardurile de ramificatii,...i.doc
- Bibliografie.doc