Πίσω

Δραστηριότητα 1

   Αφού παρατηρήσετε προσεκτικά το σχήμα 1.4.1, να προσδιορίσετε τα σημεία εκείνα στα οποία μπορεί να παρουσιαστεί κίνδυνος δεδομένων.


Απάντηση δραστηριότητας 1

   Στο σχήμα βλέπουμε ότι στην εντολή ADD γίνεται εγγραφή της τιμής του R1 στο στάδιο WB της σωλήνωσης (5ος κύκλος ρολογιού), αλλά η εντολή SUB διαβάζει την τιμή του R1 ενώ βρίσκεται στο στάδιο ID (3ος κύκλος ρολογιού). Αν δεν προσέξουμε και επιτρέψουμε στην εντολή SUB να εκτελεστεί χωρίς κάποια καθυστέρηση, τότε η εντολή αυτή θα διαβάσει λάθος δεδομένα. Δηλαδή, αντί να διαβάσει την νέα τιμή του καταχωρητή R1, που υπολογίστηκε στην εντολή ADD, θα διαβάσει την τιμή που είχε πριν από την εντολή ADD. Επομένως αν δεν υπάρξει καθυστέρηση θα εμφανιστεί κίνδυνος δεδομένων στην εντολή SUB. Η εντολή SUB δεν είναι η μόνη που επηρεάζεται από αυτόν τον κίνδυνο. Μετά από αυτή ακολουθεί η εντολή AND, η οποία αντιμετωπίζει και αυτή τον ίδιο κίνδυνο, δηλαδή την ανάγνωση τις τιμής του καταχωρητή R1 πριν γίνει η εγγραφή της νέας τιμής από την εντολή ADD. Τον ίδιο κίνδυνο μπορεί να αντιμετωπίσει και η εντολή OR(όπως θα δούμε παρακάτω, η εντολή αυτή μπορεί να αποφύγει τον κίνδυνο, με την υλοποίηση της τεχνικής της προώθησης). Στη συνέχεια η εντολή XOR μπορεί να λειτουργήσει κανονικά, αφού η εντολή ADD έχει ήδη τελειώσει με το στάδιο WB και ο καταχωρητής R1 θα έχει λάβει τη νέα του τιμή.