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


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

Μια τεχνική του υλικού, με την οποία μπορούμε να λύσουμε το πρόβλημα, που συναντήσαμε στο προηγούμενο παράδειγμα, είναι η τεχνική της προώθησης. Επιστρέφοντας στο Σχήμα 1.4.1 και στη ροή εντολών αυτού, μπορούμε να εξηγήσουμε την τεχνική της προώθησης. Βασίζεται στην παρατήρηση ότι το αποτέλεσμα μπορεί να μεταφερθεί από το σημείο που η ADD το παράγει, δηλαδή στην έξοδο της ALU, στο σημείο που η εντολή SUB το χρειάζεται, δηλαδή στους μανταλωτές εισόδου της ALU, τότε μπορούμε να αποφύγουμε την ανάγκη για καθυστέρηση.

Αναλυτικότερα η προώθηση λειτουργεί ως εξής :

Το αποτέλεσμα της ALU ανατροφοδοτείται πάντα στους μανταλωτές εισόδου της ALU.
Αν το κύκλωμα προώθησης ανιχνεύσει ότι η προηγούμενη εντολή της ALU έχει ως καταχωρητή προορισμού, εκείνον ο οποίος αντιστοιχεί στον πηγαίο καταχωρητή της τρέχουσας λειτουργίας της ALU, ο λογικός έλεγχος επιλέγει το προωθημένο αποτέλεσμα ως είσοδο της ALU, αντί της τιμής που διαβάζεται από το αρχείο καταχωρητών.


Στο Σχήμα 1.4.2 παρουσιάζουμε το προηγούμενο παράδειγμα του Σχήματος 1.4.1, χρησιμοποιώντας την τεχνική της προώθησης. Τώρα η ακολουθία αυτή των εντολών μπορεί να εκτελεστεί χωρίς καθυστερήσεις.

ΣΧΗΜΑ 1.4.2. Μια ομάδα εντολών που εξαρτώνται από το αποτέλεσμα της ADD χρησιμοποιούν την τεχνική της προώθησης για να αποφύγουν τον κίνδυνο δεδομένων. Οι είσοδοι για τις εντολές SUB και AND προωθούνται από τους EX/MEM και MEM/WB καταχωρητές σωλήνωσης, αντίστοιχα, στην πρώτη είσοδο της ALU . Η OR εντολή λαμβάνει το αποτέλεσμα της με προώθηση μέσα από το αρχείο καταχωρητών, κάτι που είναι εύκολα πραγματοποιήσιμο διαβάζοντας τους καταχωρητές στο δεύτερο μισό του κύκλου ρολογιού και γράφοντάς τους στο πρώτο μισό του κύκλου ρολογιού, όπως δείχνουν οι διακεκομμένες γραμμές στους καταχωρητές. Σημειώστε ότι το προωθημένο αποτέλεσμα μπορεί να πάει σε οποιαδήποτε είσοδο της ALU. Στην πραγματικότητα, και οι δύο είσοδοι της ALU μπορούν να χρησιμοποιούν προωθημένες εισόδους από είτε τον ίδιο καταχωρητή σωλήνωσης ή από διαφορετικούς καταχωρητές σωλήνωσης. Αυτό θα συνέβαινε για παράδειγμα, αν η εντολή ADD ήταν ADD R6, R1, R4.


ΠΑΡΑΔΕΙΓΜΑ : Έστω η παρακάτω ακολουθία εντολών :

ADD R1 , R2 , R3

LW R4 , 0 (R1)

SW 12 (R1) , R4

ΠΑΡΑΤΗΡΗΣΕΙΣ: Μελετώντας την παραπάνω ακολουθία εντολών βλέπουμε ότι η εντολή LW εξαρτάται από την εντολή ADD εξαιτίας του καταχωρητή R1 το ίδιο κι η εντολή SW. Επίσης βλέπουμε ότι η εντολή SW εξαρτάται από την LW λόγω του καταχωρητή R4. Στο Σχ.1.4.3 απεικονίζεται ο τρόπος που λειτουργεί η τεχνική της προώθησης πάνω στη συγκεκριμένη ακολουθία εντολών.


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

Μπορείτε να σχεδιάσετε το σχήμα που απεικονίζει τον τρόπο με τον οποίο λειτουργεί η τεχνική της προώθησης, κατά την εκτέλεση της ακολουθίας εντολών του προηγούμενου παραδείγματος; Να συγκρίνετε το σχήμα που σχεδιάσατε με το σχήμα που ακολουθεί (σχήμα 1.4.3).
(Υπόδειξη: Για τη σχεδίαση του σχήματος να βασιστείτε στο σχήμα 1.4.2. Καλό θα ήταν να μελετούσατε το συγκεκριμένο σχήμα άλλη μια φορά ώστε να κατανοήστε καλύτερα την τεχνική της προώθησης.)


ΣΧΗΜΑ 1.4.3.Η εντολή αποθήκευσης απαιτεί έναν τελεστέο κατά τη διάρκεια του MEM σταδίου, και η προώθηση αυτού του τελεστέου φαίνεται εδώ. Το αποτέλεσμα της εντολής φόρτωσης προωθείται από την έξοδο της μνήμης μέσα στον καταχωρητή MEM/WB, στην είσοδο της μνήμης για να αποθηκευθεί. Επίσης, η έξοδος της ALU προωθείται στην είσοδο της ALU για τον υπολογισμό της διεύθυνσης της εντολής φόρτωσης αλλά και της εντολής αποθήκευσης. Αν η εντολή αποθήκευσης εξαρτιόταν από μια αμέσως προηγούμενη λειτουργία της ALU, τότε το αποτέλεσμα θα χρειαζόταν να προωθηθεί για να αποτραπεί μια καθυστέρηση.