Μια τεχνική του υλικού, με την οποία μπορούμε να λύσουμε το πρόβλημα, που συναντήσαμε στο προηγούμενο παράδειγμα, είναι η τεχνική της προώθησης. Επιστρέφοντας στο Σχήμα 1.4.1 και στη ροή εντολών αυτού, μπορούμε να εξηγήσουμε την τεχνική της προώθησης. Βασίζεται στην παρατήρηση ότι το αποτέλεσμα μπορεί να μεταφερθεί από το σημείο που η ADD το παράγει, δηλαδή στην έξοδο της ALU, στο σημείο που η εντολή SUB το χρειάζεται, δηλαδή στους μανταλωτές εισόδου της ALU, τότε μπορούμε να αποφύγουμε την ανάγκη για καθυστέρηση.
Αναλυτικότερα η προώθηση λειτουργεί ως εξής :
Το αποτέλεσμα της ALU
ανατροφοδοτείται πάντα στους μανταλωτές εισόδου της ALU.
Αν το κύκλωμα προώθησης ανιχνεύσει ότι η
προηγούμενη εντολή της ALU έχει ως καταχωρητή προορισμού, εκείνον ο οποίος αντιστοιχεί στον
πηγαίο καταχωρητή της τρέχουσας λειτουργίας της ALU, ο λογικός έλεγχος επιλέγει το προωθημένο
αποτέλεσμα ως είσοδο της ALU, αντί της
τιμής που διαβάζεται από το αρχείο καταχωρητών.
Στο Σχήμα 1.4.2 παρουσιάζουμε το προηγούμενο παράδειγμα του Σχήματος 1.4.1,
χρησιμοποιώντας την τεχνική της προώθησης. Τώρα η ακολουθία αυτή των εντολών
μπορεί να εκτελεστεί χωρίς καθυστερήσεις.
ΠΑΡΑΔΕΙΓΜΑ : Έστω η παρακάτω ακολουθία εντολών :
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.Η εντολή αποθήκευσης απαιτεί έναν τελεστέο κατά τη διάρκεια του MEM σταδίου, και η προώθηση αυτού του τελεστέου φαίνεται εδώ. Το αποτέλεσμα της εντολής φόρτωσης προωθείται από την έξοδο της μνήμης μέσα στον καταχωρητή MEM/WB, στην είσοδο της μνήμης για να αποθηκευθεί. Επίσης, η έξοδος της ALU προωθείται στην είσοδο της ALU για τον υπολογισμό της διεύθυνσης της εντολής φόρτωσης αλλά και της εντολής αποθήκευσης. Αν η εντολή αποθήκευσης εξαρτιόταν από μια αμέσως προηγούμενη λειτουργία της ALU, τότε το αποτέλεσμα θα χρειαζόταν να προωθηθεί για να αποτραπεί μια καθυστέρηση.
|
|
|