Extras din proiect
Predicția Salturilor
Predicţia salturilor este o cerinţă importantă în sistemele de calcul ce utilizează intens
tehnica pipe-line. Prin predicţia salturilor se optimizează utilizarea structurii pipe-line
evitându-se reiniţializarea acesteia dacă intrucţiunile corespunzătoare saltului în program au
fost încărcate în mod eronat.
În situaţia unei instrucţiuni de salt condiţionat instrucţiunea ţintă nu poate fi încarcată
în pipe-line decât după ce s-a calculat adresa de salt şi nu s-a evaluat condiţia de salt. Pentru
salturile necondiţionate trebuie calculată numai adresa de salt.
Până când aceste informaţii sunt disponibile structura pipe-line aşteaptă sau încarcă o
instrucţiune tintă posibilă; în momentul când informaţiile sunt disponibile se poate decide o
reiniţializare a structurii (în situaţia în care în pipe-line s-au încărcat instrucţiuni ţintă în mod
eronat). În ambele situaţii apare o degradare a performanţei structurii pipe-line. Utilizarea
predicţiei salturilor conduce la o atenuare a acestei degradări de performanţă datorită faptului
că în majoritatea cazurilor instrucţiunile ţintă sunt încărcate corect.
Instrucţiunile de salt se impart în două categorii:
- salturi statice ( care se regăsesc în codul binar şi sînt cunoscute înainte de execuţia programului)
- salturi dinamice ( care apar în urma execuţiei şi nu sînt cunoscute înainte de execuţie)
Predicţia salturilor dinamice este mai dificilă decît predicţia salturilor statice.
Ideea de bază a predicţiei salturilor este memorarea istoriei fiecărui salt (dacă s-a
efectuat sau nu s-a efectuat) şi luarea deciziei (salt efectuat / salt ne-efectuat) pe baza acestei
istorii. Se definesc anumite tipare (patern) de diferite lungimi care indică în timp dacă saltul
s-a efectuat sau nu. Aceste tipare sunt dependente de tipul de program care se execută.
Există mai multe tipuri de programe (task-uri):
• T1 – procesarea bazelor de date
• T2 – programe de căutare, editare, compilare şi testare
• T3 – programe de rezervare hotelieră, tranzacţii bancare
• T4 – programe utilitare pentru manevrarea de date
În următorul tabel se prezintă un număr de instrucțiuni de salt pentru fiecare tip de task:
Predicţia salturilor utilizează un buffer de memorie ( BTB – Branch Target Buffer)
care conţine adresele instrucţiunilor ţintă pentru fiecare salt precum şi informaţia necesară
predicţiei. Bufferul BTB este adresat cu ajutorul adresei instrucţiunii de salt. Deoarece în mod
evident nu se poate utilize un BTB excesiv de mare se vor utilize tehnici de mapare a adresei
instrucţiunii de salt în spaţiul de adresabilitate al BTB ( tehnici similare mapării memoriei
cache). Dimensiunea bufferului BTB influenţează rata de predicţie (figura 1).
Figura 1. Variaţia ratei de predicţie funcţie de dimensiunea BTB
Dimensiunea mare a BTB poate fi în aparenţă un avantaj. Totuşi un BTB mare are
următoarele dezavantaje:
• se reduce din dimensiunea memoriei sistemului
• se stochează adrese effective ( nu adrese fizice) ceea însemnă că la comutarea task-urilor tot conţinutul BTB este inutil sau chiar contraproductiv
Bibliografie
1. The 1st JILP Championship Branch Prediction Competition (CBP-1),
http://www.jilp.org/cbp, 2004
Gellert A., Vint¸an L., Person Movement Prediction Using Hidden
Markov Models, Studies in Informatics and Control, Vol.15, No. 1,
2. ISSN: 1220-1766, National Institute for Research and Development in
Informatics, Bucharest, March 2006
3. Gellert A., Florea A., Vint¸an M., Egan C., Vint¸an L. Unbiased
Branches: An Open Problem, Lecture Notes in Computer Science,
Advances in Computer Systems Architecture, vol. 4697, pg. 16-27,
Springer-Verlag Berlin / Heidelberg, 2007
4. Marcus S., Paradigme universale, Ed. Paralela 45, Pite¸sti, 2005,
paginile 248-257
5. Marcus S. - Comunicare personal˘a (trimis˘a prin e-mail autorului), 23
ianuarie, 2008
6. Rabiner L. R.,A Tutorial on Hidden Markov Models and Selected Ap-
plications in Speech Recognition, Proceedings of the IEEE, Vol. 77, No.
February 1989
7. Vint¸an L.,Towards a High Performance Neural Branch Predictor, Pro-
ceedings of the International Joint Conference on Neural Networks,
Washington DC, USA, 10-16 July, 1999
8. Vint¸an L., Gellert A., Florea A., Oancea M., Egan C., Understanding
Prediction Limits through Unbiased Branches, Lecture Notes in Com-
puter Science, Advances in Computer Systems Architecture, vol. 4186,
pg. 480-487, Springer-Verlag Berlin / Heidelberg, 2006
Lucian N. Vint¸an 31
9. Vint¸an L., Prediction Techniques in Advanced Computing Architec-tures, Matrix Rom Publishing House, Bucharest, 2007
10. Volchan S. B., What Is a Random Sequence?, The American Mathe-matical Monthly, 109, January 2002
11. http://en.wikipedia.org/wiki/Kolmogorov complexity
Universitatea ”Lucian Blaga” din Sibiu
Catedra de Calculatoare ¸si Automatiz˘ari,
Str.E. Cioran, Nr. 4, Sibiu - 550025, ROMˆANIA,
E-mail: lucian.vintan@ulbsibiu.ro,
http://webspace.ulbsibiu.ro/lucian.vintan
Preview document
Conținut arhivă zip
- Mecanisme avansate in procesoare.docx