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


Ανακεφαλαιώνοντας λοιπόν...

Η απευθείας πρόσβαση στη μνήμη (DMA) χρησιμοποιείται για να απαλλάξει τον επεξεργαστή από τη συνεχή συμμετοχή του στις λειτουργίες εισόδου/εξόδου.

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

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

Η αποτελεσματικότητα του μηχανισμού DMA αυξάνεται περαιτέρω με την ταυτόχρονη χρησιμοποίηση των επεξεργαστών Ι/Ο, οι οποίοι αποτελούν ειδικευμένους επεξεργαστές που εκτελούν ένα συγκεκριμένο πρόγραμμα, απαλλάσσοντας περαιτέρω τον επεξεργαστή.

Δίλημμα αποτελεί η χρησιμοποίηση φυσικών ή ιδεατών διευθύνσεων στο μηχανισμό DMA. Οι ιδεατές διευθύνσεις μας αναγκάζουν να τις μετατρέπουμε συνεχώς σε φυσικές, ενώ με τις φυσικές πρέπει να χρησιμοποιήσουμε ειδικές τεχνικές για να μπορούμε να μεταφέρουμε ποσότητα δεδομένων μεγαλύτερη από το μέγεθος μιας σελίδας μνήμης.

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