Κεφάλαιο 1 | Ενότητα 4 | Ερωτήσεις επισκόπησης | Επόμενο |Λεξικό όρων

Πότε προκαλείται Κίνδυνος Δεδομένων

 

Όπως έχουμε ήδη δει, στη σωλήνωση διαφορετικά στάδια διαφορετικών εντολών εκτελούνται στον ίδιο κύκλο ρολογιού. Στο παράδειγμα που ακολουθεί, όλες οι εντολές που ακολουθούν την εντολή ADD χρησιμοποιούν τον καταχωρητή R1. Π.χ το WB στάδιο της εντολής ADD όπου χρησιμοποιείται ο R1, εκτελείται στον ίδιο κύκλο ρολογιού με το στάδιο της εντολής SUB, όπου χρησιμοποιείται επίσης ο R1. Το γεγονός αυτό όμως μπορεί να προκαλέσει κάποια προβλήματα σε ό,τι αφορά τη σειρά με την οποία θα έπρεπε να γίνονται οι προσβάσεις στους τελεστέους για ανάγνωση ή εγγραφή. Κατά συνέπεια ένας τελεστέος μπορεί, για παράδειγμα, να διαβάζεται πριν η τιμή του να έχει ενημερωθεί. Στις περιπτώσεις αυτές προκαλείται ένας κίνδυνος δεδομένων.

Στις περιπτώσεις αυτές προκαλείται ένας κίνδυνος δεδομένων.

ΠΑΡΑΔΕΙΓΜΑ: Έστω ότι έχουμε την ακόλουθη εκτέλεση εντολών με σωλήνωση :

ADD R1, R2, R3

SUB R4, R5, R1

AND R6, R1, R7

OR R8, R1, R9

XOR R10, R1, R11

ΠΑΡΑΤΗΡΗΣΕΙΣ :

Παρατηρήστε ότι στην παραπάνω ακολουθία εντολών χρησιμοποιούμε τον καταχωρητή R1 σε όλες τις εντολές. Ξεκινώντας όμως με την εντολή ADD, οι υπόλοιπες εντολές χρησιμοποιούν το αποτέλεσμα της. Το σχήμα 1.4.1 απεικονίζει την εκτέλεση των εντολών.

ΣΧΗΜΑ 1.4.1 Η χρήση του αποτελέσματος της ADD εντολής στις επόμενες τρεις εντολές προκαλεί ένα κίνδυνο, αφού ο καταχωρητής παίρνει τη νέα τιμή στο στάδιο WB.

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 1

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

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 1