Όπως συμβαίνει στις μη σωληνωμένες υλοποιήσεις, οι δυσκολότερες διακοπές έχουν δύο ιδιότητες:
Στη σωλήνωση του υπολογιστή DLX, για παράδειγμα, ένα σφάλμα σελίδας ιδεατής μνήμης δεν μπορεί να συμβεί πριν από κάποιο σημείο στο στάδιο MEM της εντολής. Μέχρι να γίνει αντιληπτό το σφάλμα έχει αρχίσει η εκτέλεση άλλων εντολών. Ένα σφάλμα σελίδας υλοποιείται συνήθως με την αποθήκευση της τιμής του PC της εντολής με την οποία θα ξαναρχίσει. Τότε έχουμε δύο περιπτώσεις: ΔΡΑΣΤΗΡΙΟΤΗΤΑ 4
· Αν η εντολή που ξαναρχίζει δεν είναι εντολή διακλάδωσης τότε θα συνεχίσουμε να καλούμε τη σειρά επόμενων εντολών και θα ξεκινήσουμε την εκτέλεση τους με τον κανονικό τρόπο.
· Αν η εντολή επανεκκίνησης είναι εντολή διακλάδωσης, τότε θα επανεκτιμήσουμε τη συνθήκη διακλάδωσης και θα ξεκινήσουμε τη ροή εντολών, είτε από το στόχο είτε από το σημείο στο οποίο η εντολή διακόπηκε.
Όταν συμβεί μια διακοπή, μπορούμε να εκτελέσουμε τα ακόλουθα για να σώσουμε με ασφάλεια την κατάσταση της σωλήνωσης: Αφού η διακοπή έχει αντιμετωπισθεί, ειδικές εντολές επιστρέφουν τον υπολογιστή από τη διακοπή, ξαναφορτώνοντας τους PC's και ξαναρχίζοντας την ακολουθία εντολών.
.
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 5
ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 5 ΔΡΑΣΤΗΡΙΟΤΗΤΑ 6
ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 6 Αν η σωλήνωση μπορεί να σταματήσει, έτσι ώστε οι εντολές που βρίσκονται ακριβώς πριν από τη λανθάνουσα εντολή να έχουν ολοκληρωθεί και αυτές που βρίσκονται μετά να μπορούν να ξεκινήσουν από το σημείο διακοπής, λέμε ότι η εντολή έχει διακοπές ακριβείας.
Στις διακοπές των εντολών κινητής υποδιαστολής, η λανθάνουσα εντολή σε μερικές μηχανές, γράφει το αποτέλεσμα της πριν αντιμετωπισθεί η διακοπή. Σε αυτές τις περιπτώσεις, είναι δουλειά του υλικού να είναι προετοιμασμένο να ανακαλέσει τους πηγαίους τελεστέους, ακόμα και αν ο προορισμός είναι ίδιος με έναν από αυτούς. Επειδή όμως οι λειτουργίες κινητής υποδιαστολής μπορούν να εκτελούνται για πολλούς κύκλους ρολογιού, είναι πολύ πιθανό κάποια άλλη εντολή να έχει εκτελέσει εγγραφή των πηγαίων τελεστέων. Για να μπορέσουν να αντιμετωπίσουν αυτό το φαινόμενο, πολλοί υπολογιστές υψηλών επιδόσεων έχουν εισάγει δύο ρυθμούς λειτουργίας: ΔΡΑΣΤΗΡΙΟΤΗΤΑ 7
1. ρυθμός λειτουργίας του οποίου οι εντολές να υποστηρίζουν διακοπές ακριβείας,
2. ρυθμός λειτουργίας (γρήγορος ή ρυθμός επιδόσεων) του οποίου οι εντολές δεν υποστηρίζουν διακοπές ακριβείας.
Ο ρυθμός λειτουργίας με διακοπές ακρίβειας είναι πιο αργός επειδή επιτρέπει λιγότερες επικαλύψεις μεταξύ εντολών κινητής υποδιαστολής.
|
|