Conceptul de Pipeline și Simularea Implementării în PCSpim

Referat
8/10 (1 vot)
Conține 1 fișier: doc
Pagini : 10 în total
Cuvinte : 3071
Mărime: 23.37KB (arhivat)
Publicat de: Dorel Pintilie
Puncte necesare: 7
Profesor îndrumător / Prezentat Profesorului: Marinel Iordan
Elemente de arhitectura calculatoarelor, Universitatea "Aurel Vlaicu" Arad

Extras din referat

Cap. 1. Generalitati:

Pipeline : Este o tehnica de implementare in care se permite suprapunerea

executiei mai multor instructiuni.

Secvential (fara pipeline): se repeta secventele : adresare, citire, decodificare, execuţie pentru fiecare set de instructiuni ;

Paralel (cu pipeline): fazele de mai sus pot avea loc simultan. Se adreseaza datele pentru instructiunea 1, se aduc in microprocesor pentru citire. In timp ce pentru instructiunea 1 se citesc datele, se adreseaza datele penru instructiunea 2 s.a.m.d. .

Cap. 2. Tehnica de pipeline - pe procesor:

La procesoarele pe 16 biţi unitatea de prelucrare este împărţită în unitatea de interfaţă cu magistrala (BIU), care se ocupă de aducerea în avans a instrucţiunilor din memorie şi depunerea lor într-o coadă, şi unitatea de execuţie (EU), care preia instrucţiunile din coadă şi le execută. Această împărţire permite lucrul în paralel al celor două unităţi, ceea ce se traduce printr-o funcţionare mai rapidă. La procesoarele pe 32 biţi ideea a fost dusă şi mai departe. Fiecare instrucţiune constă din 4 faze (adresare, citire, decodificare, execuţie). Mai mult, fiecare din aceste faze (mai ales cea de execuţie, care este cea mai complexă) poate consta la rândul său din mai multe operaţii mai simple. Ideea este că fiecare din aceste operaţii lucrează în principiu cu alte resurse, deci toate operaţiile se pot executa în paralel. Astfel, execuţia unei instrucţiuni poate fi împărţită într-un număr mare de acţiuni elementare, numite stagii ale pipeline-ului. Deci, la un moment dat se pot afla în execuţie în procesor mai multe instrucţiuni, în diferite faze; în cazul cel mai fericit există câte o instrucţiune tratată în fiecare stagiu al pipeline-ului. Deşi execuţia unei instrucţiuni de la început până la sfârşit necesită un număr mare de acţiuni, o instrucţiune poate începe să fie executată imediat ce instrucţiunea anterioară a trecut de primul stagiu.

De ce este atât de eficientă această structură? Activitatea procesorului este coordonată cu ajutorul semnalului de ceas al sistemului. Trecerea execuţiei unei instrucţiuni de la un stagiu la altul se poate face numai atunci când "bate" ceasul, deci la intervale regulate de timp. Pe de altă parte, fiecare acţiune elementară (stagiu) se execută într-o anumită durată finită de timp. Dacă semnalul de ceas este prea rapid, acţiunile nu se mai pot realiza pe durata dintre două "bătăi" ale ceasului, ceea ce ar duce la pierderea controlului asupra execuţiei instrucţiunilor. Ca urmare, frecvenţa ceasului nu poate fi crescută oricât de mult, ci este limitată de duratele de execuţie ale stagiilor. Dacă acţiunile elementare sunt mai simple (ceea ce implică o descompunere mai fină a instrucţiunilor şi deci un număr de stagii mai mare), ele vor consuma mai puţin timp; implicit, frecvenţa ceasului va putea fi crescută. Dacă analizăm funcţionarea unui pipeline, observăm că, în cazul cel mai fericit, la fiecare "bătaie" a ceasului se poate termina de executat câte o instrucţiune, deci performanţa procesorului depinde direct de creşterea frecvenţei semnalului de ceas.

Procesoarele Intel au evoluat în sensul creşterii continue a numărului de stagii a pipeline-ului. La ultimele microprocesoare Pentium IV s-a ajuns la un pipeline cu 32 stagii, ceea ce este mult mai mult decât oricare variantă anterioară. Cu alte cuvinte, execuţia unei instrucţiuni a microprocesorului este împărţită în 32 operaţii elementare. Pentru microprocesoarele cu număr foarte mare de stagii se foloseşte şi denumirea de unităţi superpipeline.

Totuşi, structura de tip pipeline are şi dezavantaje. Ideea sa de pornire este că fiecare stagiu lucrează cu alte resurse ale procesorului decât restul stagiilor. Această cerinţă nu poate fi niciodată satisfăcută în totalitate. Ca un exemplu simplu, o operaţie de adunare necesită folosirea unităţii aritmetico-logice (ALU) pentru efectuarea calculului propriu-zis. În acelaşi timp, în faza de adresare a unei instrucţiuni, valoarea registrului indicator de instrucţiuni (IP la procesoarele pe 16 biţi) este incrementată, pentru a putea aduce codul următoarei instrucţiuni. Deoarece incrementarea este tot o operaţie de adunare, va fi nevoie tot de ALU. Astfel, o instrucţiune de adunare aflată în faza de execuţie şi o altă instrucţiune aflată în faza de adresare vor concura pentru aceeaşi resursă (ALU). Asemenea situaţii apar de fapt mult mai des, deoarece între instrucţiuni există relaţii de dependenţă rezultate din însăşi logica programului. Se întâmplă foarte des ca o instrucţiune să aibă nevoie de rezultatul unei instrucţiuni anterioare, care încă nu l-a calculat. Din acest motiv, de multe ori o instrucţiune (şi implicit cele care urmează după ea) trebuie să aştepte până când devine disponibilă o resursă de care are nevoie, dar care este momentan folosită de altă instrucţiune. După cum am văzut, o asemenea resursă poate fi fie o componentă hardware a procesorului, fie rezultatul altei instrucţiuni. Ca urmare, în practică se întâmplă rareori ca procesorul să termine de executat câte o instrucţiune la fiecare "bătaie" a ceasului, deci câştigul de performanţă nu este atât de mare cât sperăm.

Preview document

Conceptul de Pipeline și Simularea Implementării în PCSpim - Pagina 1
Conceptul de Pipeline și Simularea Implementării în PCSpim - Pagina 2
Conceptul de Pipeline și Simularea Implementării în PCSpim - Pagina 3
Conceptul de Pipeline și Simularea Implementării în PCSpim - Pagina 4
Conceptul de Pipeline și Simularea Implementării în PCSpim - Pagina 5
Conceptul de Pipeline și Simularea Implementării în PCSpim - Pagina 6
Conceptul de Pipeline și Simularea Implementării în PCSpim - Pagina 7
Conceptul de Pipeline și Simularea Implementării în PCSpim - Pagina 8
Conceptul de Pipeline și Simularea Implementării în PCSpim - Pagina 9
Conceptul de Pipeline și Simularea Implementării în PCSpim - Pagina 10

Conținut arhivă zip

  • Conceptul de Pipeline si Simularea Implementarii in PCSpim.doc

Alții au mai descărcat și

Grilă sisteme informaționale de gestiune - Access

Adăugarea de câmpuri la o tabelă se face în modul de vizualizare:...... Previzualizare inaintea imprimarii Aplicarea unei restrictii de...

Hackeri

Hackerii sunt pasionati ai informaticii, care, de obicei au ca scop „spargerea” anumitor coduri, baze de date, pagini web etc. Ei sunt considerati...

Baze de Date

3.Introducere in bd si sgbd-uri Definitie: Numim baza de date o colectie partajata de date aflata in interdependenta logica impreuna cu o...

Ai nevoie de altceva?