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

Πώς σταματάμε και ξαναρχίζουμε την εκτέλεση

   Όπως συμβαίνει στις μη σωληνωμένες υλοποιήσεις, οι δυσκολότερες διακοπές έχουν δύο ιδιότητες:

  1. Συμβαίνουν μέσα στις εντολές (δηλαδή, στη μέση της εκτέλεσης της εντολής, στα στάδια EX και MEM).
  2. Πρέπει οι εντολές να μπορούν να ξαναρχίσουν.

Στη σωλήνωση του υπολογιστή DLX, για παράδειγμα, ένα σφάλμα σελίδας ιδεατής μνήμης δεν μπορεί να συμβεί πριν από κάποιο σημείο στο στάδιο MEM της εντολής. Μέχρι να γίνει αντιληπτό το σφάλμα έχει αρχίσει η εκτέλεση άλλων εντολών. Ένα σφάλμα σελίδας υλοποιείται συνήθως με την αποθήκευση της τιμής του PC της εντολής με την οποία θα ξαναρχίσει. Τότε έχουμε δύο περιπτώσεις:
· Αν η εντολή που ξαναρχίζει δεν είναι εντολή διακλάδωσης τότε θα συνεχίσουμε να καλούμε τη σειρά επόμενων εντολών και θα ξεκινήσουμε την εκτέλεση τους με τον κανονικό τρόπο.
· Αν η εντολή επανεκκίνησης είναι εντολή διακλάδωσης, τότε θα επανεκτιμήσουμε τη συνθήκη διακλάδωσης και θα ξεκινήσουμε τη ροή εντολών, είτε από το στόχο είτε από το σημείο στο οποίο η εντολή διακόπηκε.


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

Θυμάστε τι είναι η ιδεατή μνήμη και πότε αυτή χρησιμοποιείται; Να περιγράψετε συνοπτικά την τεχνική της ιδεατής μνήμης και τον τρόπο λειτουργίας της. Για περισσότερες λεπτομέρειες καλό θα ήταν να ανατρέξετε στις σημειώσεις του μαθήματος «Αρχιτεκτονική Υπολογιστών Ι» και συγκεκριμένα στο 4ο κεφάλαιο: «Η Μνήμη των Υπολογιστικών Συστημάτων».

 

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



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

  1. Να αναγκαστεί μια εντολή παγίδας να μπει στη σωλήνωση στο επόμενο στάδιο IF
  2. Μέχρι να αρχίσει η εκτέλεση της παγίδας, πρέπει να καταργηθούν όλες οι εγγραφές για τη λανθάνουσα εντολή και για όλες τις εντολές που ακολουθούν τη σωλήνωση. Αυτό μπορεί να γίνει θέτοντας μηδενικά στους καταχωρητές της σωλήνωσης για όλες τις εντολές της σωλήνωσης, ξεκινώντας από αυτή που παράγει τη διακοπή, αλλά όχι για τις προηγούμενες. Αυτό εμποδίζει κάθε αλλαγή κατάστασης για εντολές που δε θα ολοκληρωθούν πριν η διακοπή αντιμετωπιστεί.
  3. Αφού η ρουτίνα εξυπηρέτησης της διακοπής στο λειτουργικό σύστημα αναλάβει τον έλεγχο, αποθηκεύεται αμέσως στον PC η διεύθυνση της λανθάνουσας εντολής. Η τιμή αυτή θα χρησιμοποιηθεί αργότερα για την επιστροφή από τη διακοπή.

Αφού η διακοπή έχει αντιμετωπισθεί, ειδικές εντολές επιστρέφουν τον υπολογιστή από τη διακοπή, ξαναφορτώνοντας τους PC's και ξαναρχίζοντας την ακολουθία εντολών. .

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

Θυμάστε ποια είναι η εντολή ελέγχου του υπολογιστή DLX η οποία προκαλεί την επιστροφή στον κώδικα μετά από μία διακοπή; Για περισσότερες λεπτομέρειες καλό θα ήταν να ανατρέξετε στις σημειώσεις του μαθήματος «Αρχιτεκτονική Υπολογιστών Ι» και συγκεκριμένα στο 2ο κεφάλαιο: «Αρχιτεκτονικές Συνόλου Εντολών». Συστημάτων».

 

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



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

Έστω ότι έχουμε μια σχισμή διακλάδωσης και ότι η διακοπή συμβαίνει στην εντολή που βρίσκεται στη σχισμή. Σε αυτή την περίπτωση δεν είναι πλέον δυνατό να ξαναδημιουργήσουμε την κατάσταση του υπολογιστή με τη διεύθυνση από ένα μόνο PC γιατί οι εντολές στη σωλήνωση μπορεί να μην είναι στην κανονική σειρά τους, λόγω της σχισμής καθυστέρησης. Μπορείτε να εξηγήσετε τι πρέπει να γίνει σε αυτή την περίπτωση;

 

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



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

Στις διακοπές των εντολών κινητής υποδιαστολής, η λανθάνουσα εντολή σε μερικές μηχανές, γράφει το αποτέλεσμα της πριν αντιμετωπισθεί η διακοπή. Σε αυτές τις περιπτώσεις, είναι δουλειά του υλικού να είναι προετοιμασμένο να ανακαλέσει τους πηγαίους τελεστέους, ακόμα και αν ο προορισμός είναι ίδιος με έναν από αυτούς. Επειδή όμως οι λειτουργίες κινητής υποδιαστολής μπορούν να εκτελούνται για πολλούς κύκλους ρολογιού, είναι πολύ πιθανό κάποια άλλη εντολή να έχει εκτελέσει εγγραφή των πηγαίων τελεστέων. Για να μπορέσουν να αντιμετωπίσουν αυτό το φαινόμενο, πολλοί υπολογιστές υψηλών επιδόσεων έχουν εισάγει δύο ρυθμούς λειτουργίας:
1. ρυθμός λειτουργίας του οποίου οι εντολές να υποστηρίζουν διακοπές ακριβείας,
2. ρυθμός λειτουργίας (γρήγορος ή ρυθμός επιδόσεων) του οποίου οι εντολές δεν υποστηρίζουν διακοπές ακριβείας.
Ο ρυθμός λειτουργίας με διακοπές ακρίβειας είναι πιο αργός επειδή επιτρέπει λιγότερες επικαλύψεις μεταξύ εντολών κινητής υποδιαστολής.

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

Θυμάστε ποιες είναι οι εντολές κινητής υποδιαστολής του υπολογιστή DLX και τι καθορίζουν; Να αναφέρετε ενδεικτικά κάποιες από αυτές. Για περισσότερες λεπτομέρειες καλό θα ήταν να ανατρέξετε στις σημειώσεις του μαθήματος «Αρχιτεκτονική Υπολογιστών Ι» και συγκεκριμένα στο 2ο κεφάλαιο: «Αρχιτεκτονικές Συνόλου Εντολών».

 

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