Η διαδικασία, η οποία επιτρέπει σε μία εντολή να κινηθεί από το στάδιο αποκωδικοποίησής (ID) στο στάδιο εκτέλεσης (EX), ονομάζεται συνήθως διευθέτηση εντολής. Μία εντολή που έκανε αυτό το βήμα λέμε ότι διευθετήθηκε.
Στο σχήμα 1.5.2 συνοψίζουμε όλες τις περιπτώσεις κινδύνων δεδομένων που μπορεί να συναντήσουμε στη σωλήνωση.
Σχήμα 1.5.2 - Περιπτώσεις που το υλικό ανίχνευσης κινδύνων της σωλήνωσης μπορεί να αντιμετωπίσει, συγκρίνοντας τους προορισμούς και τις πηγές διαδοχικών εντολών. Αυτός ο πίνακας δείχνει πως η μόνη σύγκριση που χρειάζεται είναι μεταξύ του τελεστέου προορισμού μιας εντολής και των πηγαίων τελεστέων των δύο εντολών που έπονται. Στην περίπτωση μίας καθυστέρησης, οι εξαρτήσεις της σωλήνωσης θα μοιάζουν με την τρίτη περίπτωση, μόλις συνεχιστεί η εκτέλεση.
Η εφαρμογή της λογικής της προώθησης είναι παρόμοια, παρότι υπάρχουν περισσότερες περιπτώσεις που πρέπει να λάβουμε υπόψη μας. Έτσι μπορούμε να εφαρμόσουμε την προώθηση με μια σύγκριση των καταχωρητών προορισμού του IR που περιέχονται στα EX/MEM και MEM/WB στάδια, ως προς τους πηγαίους καταχωρητές του IR που περιέχονται στους ID/EX και EX/MEM καταχωρητές.
Όταν ένας κίνδυνος ανιχνευθεί τότε:
Όλη η προώθηση γίνεται από:
Από την άλλη μεριά, με τους συγκριτές και τη συνδιαστική λογική που χρειαζόμαστε για να καθορίσουμε πότε ένα μονοπάτι προώθησης πρέπει να ενεργοποιηθεί, είναι αναγκαίο:
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 3
Να περιγράψετε συνοπτικά τις λειτουργίες που ακολουθούν την ανίχνευση ενός κινδύνου, ο οποίος δεν αντιμετωπίζεται με την τεχνική της προώθησης.
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 4
Έστω ο κώδικας ο οποίος πρόκειται να υλοποιηθεί με την τεχνική της σωλήνωσης:
LW R24, 0(R16)
LW R25, 4(R16)
SLT R8, R25, R24
· Να περιγράψετε την εκτέλεση των εντολών.
· Να εντοπίσετε που προκύπτουν κίνδυνοι δεδομένων.
· Να προτείνετε τρόπους αντιμετώπισης των κινδύνων δεδομένων και να αιτιολογήσετε την απάντησή σας.
![]() |
![]() |
![]() |
![]() |
![]() |