Υλικό υπολογιστών

Γνώση Υπολογιστών >> Υλικό υπολογιστών >  >> Επεξεργαστές (CPU)

Τι θα εκκρεμεί ο επεξεργαστής με διακοπή;

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

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

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

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

* Διακόπτης διάνυσμα (συχνά): Ο επεξεργαστής καθορίζει ποια ρουτίνα διακόπτη χειριστή να εκτελέσει. Αυτό γίνεται συχνά χρησιμοποιώντας έναν πίνακα διανυσμάτων διακοπής. Κάθε καταχώρηση σε αυτόν τον πίνακα δείχνει τη διεύθυνση μνήμης του κώδικα που χειρίζεται έναν συγκεκριμένο τύπο διακοπής. Ο φορέας διακοπής καθορίζεται με βάση την πηγή ή τον τύπο της διακοπής.

* Εκτέλεση χειριστή διακοπής: Ο επεξεργαστής πηδά στη διεύθυνση που καθορίζεται από το διάνυσμα διακοπής και εκτελεί την κατάλληλη ρουτίνα υπηρεσίας διακοπής (ISR) ή χειριστή διακοπής. Αυτός ο κώδικας εκτελεί την απαραίτητη ενέργεια για να ανταποκριθεί στη διακοπή (π.χ., διαβάστε τα δεδομένα από μια συσκευή, ενημερώστε ένα χρονοδιακόπτη, χειριστείτε έναν τύπο πληκτρολογίου).

* Επαναφορά πλαισίου: Μετά την ολοκλήρωση του ISR, ο επεξεργαστής αποκαθιστά το αποθηκευμένο πλαίσιο από το βήμα 2. Αυτό περιλαμβάνει την επαναφόρτωση των καταχωρητών, του μετρητή προγραμμάτων και των σημαιών κατάστασης.

* Επιστροφή από τη διακοπή: Μια ειδική εντολή (π.χ., `IRET` σε x86) εκτελείται για να επιστρέψει τον έλεγχο στο διακόπτο. Ο επεξεργαστής επαναλαμβάνει την εκτέλεση από την εντολή αμέσως μετά το σημείο όπου συνέβη η διακοπή.

3. Προτεραιότητα διακοπής (εάν ισχύει): Εάν εκκρεμούν πολλαπλές διακοπές, ο επεξεργαστής μπορεί να τους δώσει προτεραιότητα με βάση τα επίπεδα προτεραιότητας. Οι διακοπές υψηλότερης προτεραιότητας ενδέχεται να προλάβουν τις χαμηλότερες προτεραιότητες. Ο ακριβής μηχανισμός για το χειρισμό πολλαπλών διακοπών ποικίλλει ανάλογα με την αρχιτεκτονική του επεξεργαστή.

4. Διακοπή κάλυψης (προαιρετικό): Ο επεξεργαστής μπορεί να είναι σε θέση να καλύψει (απενεργοποιήστε τις συγκεκριμένες διακοπές. Αυτό εμποδίζει ορισμένες διακοπές από τη διακοπή της εκτέλεσης του τρέχοντος προγράμματος ή άλλου χειριστή διακοπής. Αυτό είναι συχνά χρήσιμο για την πρόληψη των συγκρούσεων ή τη διασφάλιση της διακοπής των κρίσιμων καθηκόντων.

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

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα