Πίσω

Παράδειγμα 2:


A) Χωρίς καθυστέρηση:
Έστω το ακόλουθο πρόγραμμα:
main:
1. addi  r1,r0,#3
2. subi  r14,r1,#4
3. and  r6,r1,r7
4. or  r8,r1,r9

Στο πρόγραμμα αυτό παρουσιάζονται κίνδυνοι δεδομένων μεταξύ των εντολών 1, 2 και 3.




Οι εντολές 2 και 3 χρειάζονται την τιμή του r1.



Με την εισαγωγή καθυστέρησης το πρόγραμμα ολοκληρώνεται σε 11 κύκλους ρολογιού.



B) Με προώθηση της σωλήνωσης αποφεύγεται η εισαγωγή καθυστέρησης



και το πρόγραμμα ολοκληρώνεται σε 9 κύκλους ρολογιού



καθώς η τιμή του r1 προωθείται από το EX και το ΜΕΜ στάδιο της εντολής 1 στο ΕΧ στάδιο της εντολής 2


και της εντολής 3



αντίστοιχα. Έχουμε δηλαδή κέρδος 2 κύκλους ρολογιού.