Πίσω
Παράδειγμα 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 κύκλους ρολογιού.