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

Γνώση Υπολογιστών >> Υλικό υπολογιστών >  >> Συσκευές Εισόδου και Εξόδου

Πώς επικοινωνεί ένας οδηγός συσκευής με τη συσκευή;

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

1. Ειδικές διεπαφές υλικού:

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

* Port-mapped I/O (PIO): Η συσκευή έχει πρόσβαση μέσω συγκεκριμένων θυρών εισόδου/εξόδου. Ο οδηγός στέλνει εντολές και λαμβάνει δεδομένα γράφοντας και διαβάζοντας από αυτές τις θύρες. Αυτό είναι λιγότερο συνηθισμένο τώρα, αλλά εξακολουθεί να βρίσκεται στα Legacy Systems. Όπως το MMIO, είναι μια άμεση αλληλεπίδραση.

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

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

2. Διεπαφές λογισμικού (στρώματα αφαίρεσης):

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

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

* APIs για συγκεκριμένες συσκευές: Τα λειτουργικά συστήματα παρέχουν συχνά API (διεπαφές προγραμματισμού εφαρμογών) ειδικά για ορισμένους τύπους συσκευών (π.χ. SCSI, SATA, USB). Αυτά τα API απλοποιούν την ανάπτυξη του οδηγού, αφαιρώντας τις λεπτομέρειες χαμηλού επιπέδου.

* Ειδικές διεπαφές λεωφορείου: Η συσκευή είναι συνδεδεμένη στο σύστημα μέσω δίαυλου (π.χ. PCI, USB, SATA). Ο οδηγός χρησιμοποιεί πρωτόκολλα και διεπαφές ειδικά για το λεωφορείο για να επικοινωνεί με τη συσκευή μέσω του λεωφορείου.

Συνοπτικά:

Η διαδικασία επικοινωνίας μπορεί να απεικονιστεί ως εξής:

1. Εφαρμογή (χρήστης ή σύστημα): Ζητά μια λειτουργία (π.χ., ανάγνωση δεδομένων από σκληρό δίσκο).

2. Λειτουργικό σύστημα: Δρομολογεί το αίτημα στο κατάλληλο πρόγραμμα οδήγησης συσκευής.

3. Οδηγό συσκευής: Χρησιμοποιεί την κατάλληλη διασύνδεση ειδικού υλικού (MMIO, PIO κ.λπ.) και αφαίρεσης λογισμικού για να επικοινωνήσει με τη συσκευή. Αυτό μπορεί να περιλαμβάνει την αποστολή εντολών, τη λήψη δεδομένων, τη διαχείριση των διακοπών ή τη διαχείριση των μεταφορών DMA.

4. Συσκευή: Εκτελεί την ζητούμενη λειτουργία και στέλνει το αποτέλεσμα (εάν υπάρχει) πίσω στον οδηγό.

5. Πρόσωπο συσκευής: Επεξεργάζεται την απόκριση και επιστρέφει το αποτέλεσμα στο λειτουργικό σύστημα.

6. Λειτουργικό σύστημα: Επιστρέφει το αποτέλεσμα στην εφαρμογή.

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

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

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