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

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

Τι είναι η χρονική καθυστέρηση στον μικρο -επεξεργαστή;

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

Υπάρχουν διάφοροι τρόποι για την υλοποίηση των καθυστερήσεων χρόνου σε έναν μικροεπεξεργαστή:

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

`` `Συνέλευση

ΚΑΘΥΣΤΕΡΗΣΗ:

DEC R16; Μητρώο μετρητή μείωσης

Καθυστέρηση Brne; Υποκατάστημα εάν δεν είναι ίσο με μηδέν (συνεχίστε βρόχο)

RJMP Επόμενο? Μεταβείτε στην επόμενη οδηγία

`` `

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

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

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

Παράγοντες που επηρεάζουν την ακρίβεια:

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

* Διακοπές: Οι ρουτίνες υπηρεσίας διακοπής (ISRs) μπορούν να διακόψουν την εκτέλεση ενός βρόχου καθυστέρησης, καθιστώντας το περισσότερο από το αναμενόμενο.

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

Γιατί να χρησιμοποιήσετε καθυστερήσεις χρόνου;

* συγχρονισμός: Συντονισμός ενεργειών με εξωτερικό υλικό (π.χ., ελέγχοντας LED, αισθητήρες, κινητήρες).

* Debouncing: Αποτρέποντας τα ψευδή σήματα από διακόπτες ή κουμπιά.

* Περιορισμός ρυθμού: Έλεγχος της συχνότητας των συμβάντων (π.χ. περιορίζοντας την ταχύτητα μετάδοσης δεδομένων).

* Διεπαφή χρήστη: Δημιουργία παύσεων μεταξύ ενεργειών σε ένα περιβάλλον χρήστη.

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

Συναφής σύστασή

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