Το σχήμα 1.7.1 παρουσιάζει τα στάδια σωλήνωσης του υπολογιστή DLX και ποιες 'προβληματικές' διακοπές συμβαίνουν σε κάθε στάδιο. Εξαιτίας της σωλήνωσης στον ίδιο κύκλο ρολογιού μπορούν να συμβούν πολλαπλές διακοπές, αφού υπάρχουν πολλές εντολές σε εκτέλεση.
Σχήμα 1.7.1 - Οι διακοπές που μπορούν να συμβούν στη σωλήνωση του υπολογιστή DLX
Παράδειγμα
Έστω η παρακάτω ακολουθία εντολών:
Στην πραγματικότητα, οι διακοπές μπορεί να συμβούν εκτός σειράς των εντολών του προγράμματος. Αυτό μπορεί να συμβεί όταν μια εντολή προκαλέσει μια διακοπή προτού μια εντολή που βρίσκεται πριν από αυτή, προκαλέσει τη δικιά της διακοπή, γιατί αυτό θα οδηγούσε τις διακοπές να προκύπτουν εκτός της μη σωληνωμένης σειράς.
Παράδειγμα
Έστω η ίδια ακολουθία εντολών:
Στην περίπτωση που μια μεταγενέστερη διακοπή προκαλεί πρώτη διακοπή όπως στο προηγούμενο παράδειγμα, το υλικό τοποθετεί όλες τις διακοπές που προκαλεί η δοθείσα εντολή σε ένα διάνυσμα κατάστασης διακοπής, που σχετίζεται με αυτή την εντολή. Το διάνυσμα κατάστασης διακοπής μεταφέρεται μαζί, καθώς η εντολή προχωράει στη σωλήνωση. Όταν ένας δείκτης διακοπής τεθεί στο διάνυσμα κατάστασης διακοπής, κάθε σήμα ελέγχου, που μπορεί να προκαλέσει την εγγραφή μιας τιμής δεδομένων, απενεργοποιείται.
Επειδή μια εντολή αποθήκευσης μπορεί να προκαλέσει διακοπή κατά τη διάρκεια του σταδίου MEM, το υλικό πρέπει να είναι προετοιμασμένο, έτσι ώστε να αποτρέψει την ολοκλήρωση της αποθήκευσης, αν αυτή προκαλέσει διακοπή. Τη στιγμή που μία εντολή εισέρχεται στο στάδιο WB ελέγχεται το διάνυσμα κατάστασης διακοπής. Αν περιέχει διακοπές, τότε αυτές αντιμετωπίζονται με τη σειρά την οποία θα είχαν αν συνέβαιναν χρονικά σε έναν υπολογιστή με σωλήνωση. Δηλαδή η διακοπή που αντιστοιχεί στην προγενέστερη εντολή αντιμετωπίζεται πρώτη.
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 8
![]() |
![]() |
![]() |
![]() |
![]() |