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

Διακοπές στον υπολογιστή DLX

   Το σχήμα 1.7.1 παρουσιάζει τα στάδια σωλήνωσης του υπολογιστή DLX και ποιες 'προβληματικές' διακοπές συμβαίνουν σε κάθε στάδιο. Εξαιτίας της σωλήνωσης στον ίδιο κύκλο ρολογιού μπορούν να συμβούν πολλαπλές διακοπές, αφού υπάρχουν πολλές εντολές σε εκτέλεση.



Σχήμα 1.7.1 - Οι διακοπές που μπορούν να συμβούν στη σωλήνωση του υπολογιστή DLX



Παράδειγμα

Έστω η παρακάτω ακολουθία εντολών:

Οι δύο αυτές εντολές μπορούν να προκαλέσουν ένα σφάλμα σελίδας δεδομένων και ταυτόχρονα μια αριθμητική διακοπή, αφού η εντολή LW βρίσκεται στο στάδιο MEM, ενώ η εντολή ADD στο στάδιο EX. Αυτή η περίπτωση αντιμετωπίζεται με το χειρισμό μόνο του σφάλματος σελίδας δεδομένων και με την επανεκίνηση, στη συνέχεια της εκτέλεσης. Βέβαια, η δεύτερη διακοπή θα ξανασυμβεί, όχι όμως και η πρώτη (αν το λογισμικό είναι σωστό) και τότε μπορεί να αντιμετωπιστεί ανεξάρτητα.

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

Παράδειγμα

Έστω η ίδια ακολουθία εντολών:

Η εντολή LW μπορεί να πάρει ένα σφάλμα σελίδας δεδομένων που φαίνεται όταν η εντολή φτάσει στο στάδιο MEM. Επίσης, η εντολή ADD προκαλεί ένα σφάλμα σελίδας εντολών, το οποίο φαίνεται στο στάδιο IF της εντολής ADD. Έτσι το σφάλμα σελίδας εντολών θα συμβεί πρώτα, παρά το γεγονός ότι προκαλείται από μια μεταγενέστερη εντολή.

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


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

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

Έστω Ι και Ι+1 δύο διαδοχικές εντολές και προκαλείται διακοπή στην εντολή Ι+1 πριν από τη διακοπή στην εντολή Ι.
· Μπορείτε να εξηγήσετε τι θα συμβεί σε αυτή την περίπτωση;
· Αν η Ι είναι μια εντολή LW και η Ι+1 είναι μια εντολή SUB, θεωρείται ότι υπάρχει πρόβλημα με τις εγγραφές στο αρχείο καταχωρητών; Να αιτιολογήσετε την απάντησή σας.

 

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