Transcript

Executia dinamica a instructiunilor (out-of-order execution )

Executia dinamica a instructiunilor (out-of-order execution )

Coman Elena-MadalinaFAIMA, IEDEEEGrupa 1541 E

Out-of-order execution (OoOE) este o tehnica de planificare dinamica prin care instruciunile sunt executate n alt ordine dect cea a programului, ns rezultatele sunt ordonate ca si cum ar fi fost executate normal. Aceasta soluie necesit hardware suplimentar.Executia out-of-order este o forma restrictionata de calcul a fluxului de date, ceea ce a fost o mare arie de cercetare in arhitectura computerelor in anii 1970, inceputul lui 1980.O lucrare de James E. Smith si A. R. Pleszkun, publicata in 1985 completeaza schema descriind cum comportamentul precis al exceptiilor ar putea fi mentinut in masinile out-of-order.

Prima masina care a utilizat executia out-of-order a fost CDC 6600, 1964. Aceasta folosea o tabla de bord pentru a rezolva conflictele. In utilizarea moderna, astfel de table de bord sunt considerate a fi executii in-order, nu executii out-of-order, deoarece aceste masini stau pe primul conflict RAW (Read After Write).

In 1966, IBM introduce algoritmul lui Tomasulo, care face intreaga executie out-of-order posibila. In 1990, IBM a introdus primul microprocesor out-of-order, POWER1, de asemenea executia out-of-order a fost limitata doar la instructiuni de virgula mobila.

Out-of-order processorsAceasta noua paradigma intrerupe procesarea instructiunilor prin acesti pasi:

Instructiunea fetchInstructiunea este expediata intr-o coada de instructiune Instructiunea asteapta in coada pana operanzii de intrare sunt disponibili. Instructiunea este emisa de cea mai apropiata unitate functional si executata de acea unitate.Rezultatele sunt in asteptare.Numai dupa ce toate vechile instructiuni au rezultatele scrise in registru, atunci acest rezultat este scris in registru. Aceasta este numita absolvire.

Conceptul cheie al prelucrarii OoOE este de a permite procesorului sa evite clasa de intarzieri ce apar atunci cand datele necesare pentru a efectua o operatie sunt indisponibile. Procesorul OoOE evita intarzierile ce au loc la pasul 2 al procesorului in-order cand instructiunea nu este complet gata pentru a procesa din cauza datelor lipsa.

Beneficiul procesarii OoOE creste cu cat instructiunea conductelor se adanceste si diferenta de viteza dintre memoria principal si procesor se largeste.


Top Related