Execuție extraordinară
Execuția în afara ordinii instrucțiunilor de mașină este executarea instrucțiunilor de mașină nu în ordinea în care apar în codul mașinii (cum era atunci când se executau instrucțiunile în ordine ( eng . execuție în ordine )), ci în ordine de disponibilitate pentru executare. Implementat pentru a îmbunătăți performanța dispozitivelor de calcul.
Printre mașinile binecunoscute, a fost implementat pentru prima dată într-o măsură semnificativă în mașinile CDC 6600 de la Control Data și IBM System / 360 Model 91 de la IBM .
Descriere și comparație
Secvențierea clasică
Când executați instrucțiunile în ordine ( în ordine în engleză ), sunt efectuate următoarele acțiuni:
- instrucțiuni de citire;
- opriți procesorul așteptând să încarce operanzi de instrucțiuni;
- trimiterea instrucțiunilor de execuție către modulul de execuție corespunzător;
- executarea instrucțiunii de către modulul corespunzător;
- înregistrarea rezultatului executării instrucțiunii de către modul într-o celulă de registru.
Execuție în afara ordinului
La executarea instrucțiunilor în afara ordinii ( în engleză out-of-order ), sunt efectuate următoarele acțiuni:
- instrucțiuni de citire;
- plasarea unei instrucțiuni în coada I (numită coadă de instrucțiuni în limba engleză , buffer de instrucțiuni sau stații de rezervare );
- așteptând până când operanzii oricărei instrucțiuni din coada devin disponibili;
- transferarea instrucțiunii, ai cărei operanzi sunt disponibili, pentru execuție către unitatea de execuție corespunzătoare;
- executarea instrucțiunii de către modulul corespunzător;
- scrierea rezultatului executării instrucțiunii de către modul în coada II;
- extragerea din coada II a rezultatelor executării acelor instrucțiuni înaintea cărora nu există instrucțiuni neexecutate în coada I și scrierea rezultatelor într-un fișier registru; eliminarea unor astfel de instrucțiuni din coada I.
Caracteristici și funcționare interioară
Caracteristici ale executiei extraordinare:
- o instrucțiune poate fi executată mai devreme decât altele, ai căror operanzi vor fi gata înaintea operanzilor altor instrucțiuni;
- o instrucțiune pusă în coadă I mai târziu poate fi executată mai devreme;
- timpul de inactivitate cauzat de așteptarea ca operanzii de instrucțiune să fie pregătiți este redus (comparativ cu un procesor care execută instrucțiuni în ordine) prin așteptarea ca operanzii mai multor instrucțiuni să fie pregătiți;
- datorită utilizării cozii II, rezultatele sunt scrise în fișierul de registru în ordinea instrucțiunilor din codul mașinii (există o apariție a execuției instrucțiunilor în ordine).
Ideea principală a execuției în afara ordinului este capacitatea de a evita timpul de inactivitate a procesorului atunci când datele necesare pentru a executa următoarea instrucțiune nu sunt disponibile. După cum se poate vedea mai sus, procesorul evită timpul de inactivitate care apare în pasul 2 pentru următoarea execuție a instrucțiunilor în cazul în care instrucțiunea nu poate fi executată din cauza indisponibilității operanzilor săi.
Procesorul necomandat execută acele instrucțiuni ai căror operanzi sunt gata, indiferent de ordinea instrucțiunilor din codul programului. Instrucțiunile sunt executate nu în ordinea în care apar în codul programului, ci în ordinea în care datele sunt disponibile în registrele procesorului. Cu ajutorul cozii II, procesorul înregistrează rezultatele execuției instrucțiunilor astfel încât să se creeze apariția unei execuții normale, următoarea.
Evaluarea performanței
Execuția în afara ordinului este mai eficientă cu cât conducta procesorului este mai lungă și diferența dintre viteza memoriei ( RAM sau cache ) și viteza procesorului este mai mare. În modern[ când? ] În computere, procesoarele sunt mult mai rapide decât memoria , așa că în timp ce așteaptă sosirea datelor, procesorul poate executa multe instrucțiuni ai căror operanzi sunt disponibili.
Vezi și
- algoritmul Tomasulo
- Calcul paralel
- Conducta de calcul
Note
Literatură
- David A. Patterson , John L. Hennessy . Arhitectura computerului: o abordare cantitativă, ediția a 5-a . - Morgan Kaufmann, 2011. - 856 p. — ISBN 012383872X . (Engleză)
Link -uri
- Oleg Bessonov, Revizuirea microarhitecturii procesoarelor desktop moderne. Partea 2: executarea extraordinară a operațiunilor / Ixbt, 6 iulie 2006