Procesoare Superscalare

Curs
9/10 (2 voturi)
Domeniu: Automatică
Conține 1 fișier: doc
Pagini : 9 în total
Cuvinte : 4401
Mărime: 157.39KB (arhivat)
Publicat de: Amza Mircea
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Marian Popescu
Univeristatea Constantin Brancusi . Ingineria Sistemelor

Extras din curs

Procesoarele superscalare, exploatând paralelismul arhitecturii, pot executa mai multe instrucţiuni într-un ciclu maşină. Metodele superscalare, rezultat al extinderii principiilor ce stau la baza procesoarelor RISC, au fost aplicate începând din anii 1990 unei game largi de arhitecturi, de la cele specifice RISC (DEC Alpha), până la unele evident non-RISC (Intel x86).

Arhitectura internă

Elementele (unităţile) principale ale arhitecturii, prezentate în figura 4.1, realizează, în ordinea în care sunt parcurse de fluxul de instrucţiuni, următoarele operaţii: citirea instrucţiunilor (fetch) şi predicţia salturilor, decodificarea instrucţiunilor şi analiza depen¬dentelor de date, alocarea unităţilor de execuţie, analiza şi execuţia operaţiilor cu memoria, reordonarea instrucţiunilor şi înscrierea rezultatelor. La baza acestei arhitecturi stă o implementare a unei „benzi de asamblare" (pipeline), ale cărei etape se suprapun, într-o oarecare măsură, peste fazele de procesare.

Fig.4.1 Organizarea hardware a unui procesor superscalar

Un procesor superscalar aduce din memorie şi decodifică, în mod obişnuit, mai multe instrucţiuni simultan. Ca parte a acestui proces, efectele salturilor condiţionate sunt anticipate pentru a asigura un flux neîntrerupt de instrucţiuni. Fluxul de instrucţiuni, adus anticipat în bufferul de prefetch (citire anticipată a instrucţiunilor), este analizat pentru determinarea dependenţelor de date, iar instrucţiunile independente sunt distri¬buite unităţilor funcţionale, în conformitate cu tipul lor. Aici începe, în paralel, execuţia instrucţiunilor, în funcţie, mai ales, de disponibilitatea operanzilor şi mai puţin de ordinea în care se află aceştia în programul secvenţial. Terminarea execuţiei instrucţiu¬nilor şi înscrierea rezultatelor are loc în aşa fel încât starea logică a procesului este actualizată în ordinea secvenţială a programului, pentru a da posibilitatea tratării precise a unei eventuale întreruperi.

Dependenţele de date apar între instrucţiuni care obţin acces la acelaşi registru sau locaţie de memorie. în acest moment se spune că există un hazard datorat posibilităţii ca instrucţiunile să se execute într-o ordine incorectă. Aceste hazarduri pot fi de tipurile WAR,WAW şi RAW.

Hazardul WAR (Write After Read), adică „scriere după citire", apare când instruc¬ţiunile trebuie să modifice o locaţie de memorie, dar trebuie să aştepte ca toate instruc¬ţiunile anterioare ce necesită vechea valoare să o citească.

Hazardul WAW (Write After Write), adică „scriere după scriere", apare când mai multe instrucţiuni modifică aceeaşi locaţie; modificările trebuie realizate în ordinea preci¬zată de programul secvenţial, pentru ca la locaţia respectivă să rămână, în final, valoarea corectă.

Aceste două tipuri de hazarduri sunt artificiale, fiind cauzate de un cod neoptimizat, de numărul limitat de registre, de necesitatea de a economisi memorie sau de ciclurile programului (în care o instrucţiune poate fi dependentă de ea însăşi). în general, aceste dependenţe pot fi eliminate prin redenumirea resurselor respective.

Hazardurile RAW (Read After Write), adică „citire după scriere" sunt cele mai frec¬vente, deoarece o instrucţiune poate citi o valoare numai după ce valoarea a fost furnizată de instrucţiunea care o scrie.

Mai toate procesoarele superscalare utilizează o memorie rapidă, de mici dimen¬siuni, de tip cache, care conţine instrucţiunile cel mai recent executate, pentru a reduce întârzierile, datorate accesului la memoria principală, care este mai lentă, şi pentru a mări numărul de instrucţiuni aflate, la un moment dat, la dispoziţia procesorului. Cache-ul de instrucţiuni este organizat în blocuri conţinând instrucţiuni consecutive. Dacă instruc¬ţiunea ce urmează a fi executată nu este în cache, atunci blocul care o conţine este adus, în întregime, din memoria principală, şi scris în cache.

Pentru a executa mai multe instrucţiuni în paralel, faza fetch trebuie să aducă, din memoria cache, mai multe instrucţiuni într-un ciclu. Din acest motiv, există două cache-uri: unul pentru date şi unul pentru instrucţiuni. Numărul maxim de instrucţiuni adus într-un ciclu ar trebui să fie egal cu rata de decodificare şi execuţie; el este, însă, ceva mai mare, pentru a compensa „miss"-urile în cache (adică lipsa acelei instrucţiuni din cache) şi situaţiile în care se pot aduce doar un număr limitat de instrucţiuni (de exemplu, dacă o instrucţiune transferă controlul unei alte instrucţiuni, aflate în interiorul unui bloc din cache, instrucţiunile ce o preced în bloc sunt inutile).

Preview document

Procesoare Superscalare - Pagina 1
Procesoare Superscalare - Pagina 2
Procesoare Superscalare - Pagina 3
Procesoare Superscalare - Pagina 4
Procesoare Superscalare - Pagina 5
Procesoare Superscalare - Pagina 6
Procesoare Superscalare - Pagina 7
Procesoare Superscalare - Pagina 8
Procesoare Superscalare - Pagina 9

Conținut arhivă zip

  • Procesoare Superscalare.doc

Alții au mai descărcat și

Semnale și Sisteme

1.1. Semnale Un fenomen fizic, variabil in timp, care poarta cu sine o informatie este un exemplu de semnal. Tipuri de semnale: biologice,...

Inginerie Software

Laborator 1 UML – Unified Modeling Language Diagrama cazurilor de utilizare (Use Case Diagram) Introducere UML este un limbaj de modelare bazat...

Inteligență Artificială

Capitolul 1: Introducere în I.A. I.A. este un domeniu al Informaticii care are ca scop dezvoltarea unor maşini, calculatoare, "inteligente",...

Cursuri AC

caracterizarea noţiunii de informaţie, reprezentarea şi prelucrarea acesteia în sistemele tehnice; - obţinerea prin rafinări succesive a unui...

Robotică

I. Domeniul Roboticii 1.1. Definiţia robotului şi a robotului industrial Robotul este un sistem cu funcţionarea automată, adaptabilă prin...

Rețele

Cap.1 Introducere SED - fie un sistem real - fie un model matematic, ce descrie funcţionarea unui sistem real a cărui evoluţie este raportată la...

Afaceri Electronice

1.1 Societatea informaţională şi noua economie Evoluţia spre Era Informaţională Date - Informaţii - Cunoştinţe 1.2. Caracteristicile noului tip...

Conectare C la MySQL Server

ADO.Net ADO.Net este o multime de biblioteci orientate obiect care permit interactiunea cu sistemele de stocare a informatiilor. De obicei,...

Te-ar putea interesa și

Componentele și Funcționarea Microprocesorului

Argument: Am ales acest proiect deoarece am considerat că în contextul actual al dezvoltării tehnologice este necesară o cât mai bună şi complexă...

Evoluția Supercalculatoarelor

Introducere Odată cu progresul ştiinţific au evoluat şi s-au multiplicat problemele ce afectează întreaga societate. Evoluţia furtunoasă a...

Evoluția microprocesoarelor

Arhitectura x86 Corporatia Cyrix este unul dintre furnizorii de baza ai solutiilor bazate pe microprocesoare, care a introdus noi standarde pe...

Evoluția microprocesoarelor

Evolutia procesoarelor Perioada 1993-1998 a fost foarte zbuciumata, marcata de o lupta foarte dura pe piata microprocesoarelor, in care Intel a...

Procesoare Evoluate

1. Cresterea de viteza, Legea lui Amdahl. (Speedup & Amdahl Law) Prin paralelizarea unui program secvential se urmareste in primul rand obtinerea...

Procese Multimedia

1)Clasificarea procesoarelor Multimedia Procesoarele care poseda facilitati pentru prelucrarile multimedia provin atit categoria GPP cit si din...

Arhitectura calculatoarelor

Capitolul 1 INTRODUCERE 1.1 Scurt istoric al sistemelor de calcul Istoria mijloacelor mecanice de calcul începe cu multe secole în urma. Se...

Multiprocesoare

INTRODUCERE “Necesarul de simulări al Departamentului pentru Energie (DOE) al Statelor Unite depăşeşte cu mult capacitatea celor mai puternice...

Ai nevoie de altceva?