Direct Memory Access (DMA)

Γιατί να Εμπιστευτείτε την Techopedia

Τι σημαίνει DMA;

Άμεση πρόσβαση μνήμης (DMA) είναι μια μέθοδος που επιτρέπει σε μια συσκευή εισόδου/εξόδου (I/O) να στέλνει ή να λαμβάνει δεδομένα απευθείας προς ή από την κύρια μνήμη, παρακάμπτοντας την CPU (Central Processing Unit – Κεντρική Μονάδα Επεξεργασίας) για να επιταχύνει τις λειτουργίες της μνήμης.

Η διαχείριση της διαδικασίας γίνεται από ένα τσιπ γνωστό ως ελεγκτής DMA (Direct Memory Access controller – DMAC).

Η Techopedia εξηγεί τι είναι Άμεση Πρόσβαση Μνήμης

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

Σε παλαιότερους υπολογιστές υπήρχαν τέσσερα κανάλια για άμεση πρόσβαση μνήμης που αριθμήθηκαν ως 0, 1, 2 και 3. Όταν εισήχθη δίαυλος επέκτασης αρχιτεκτονικής βιομηχανικού προτύπου (industry standard architecture – ISA) 16-bit, προστέθηκαν τα κανάλια 5, 6 και 7.

Η ISA ήταν ένα πρότυπο διαύλου υπολογιστή για υπολογιστές συμβατούς με IBM. Αυτό επιτρέπει σε μια συσκευή να πραγματοποιεί συναλλαγές (bus mastering) με μεγαλύτερη ταχύτητα. Ο ελεγκτής ISA DMA έχει 8 κανάλια για άμεση πρόσβαση μνήμης. Καθένα από τα κανάλια σχετίζεται με μια διεύθυνση 16-bit και μετρητές καταχωρήσεων.

Έκτοτε, το ISA έχει αντικατασταθεί από θύρα επέκτασης γραφικών (accelerated graphics port – AGP) και διασύνδεση περιφερειακών στοιχείων (peripheral component interconnect – PCI), οι οποίες είναι πολύ πιο γρήγορες. Κάθε DMA μεταφέρει περίπου 2 MB δεδομένων ανά δευτερόλεπτο.

Είδη Πηγών Συστήματος

Τα εργαλεία πηγών του συστήματος ενός υπολογιστή χρησιμοποιούνται για την επικοινωνία μεταξύ hardware και λογισμικού. Τα τέσσερις είδη πηγών του συστήματος είναι:

  • Διευθύνσεις I/O.
  • Διευθύνσεις μνήμης.
  • Αριθμοί αιτήσεων διακοπής (IRQ).
  • Κανάλια άμεσης πρόσβασης μνήμης (DMA).

Τα κανάλια για άμεση πρόσβαση μνήμης χρησιμοποιούνται για την επικοινωνία δεδομένων μεταξύ της περιφερειακής συσκευής και της μνήμης του συστήματος. Και οι τέσσερις πηγές του συστήματος βασίζονται σε συγκεκριμένες γραμμές σε ένα δίαυλο. Ορισμένες γραμμές στο δίαυλο χρησιμοποιούνται ως IRQs, άλλες ως διευθύνσεις (διευθύνσεις I/O και διεύθυνση μνήμης) και κάποιες ως κανάλια DMA.

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

Με το DMA, η CPU μπορεί να επεξεργαστεί άλλες εργασίες ενώ εκτελείται η μεταφορά δεδομένων. Η μεταφορά δεδομένων ξεκινά πρώτα από την CPU. Το μπλοκ δεδομένων μπορεί να μεταφερθεί από και προς τη μνήμη από το DMAC με τρεις τρόπους.

Στη λειτουργία ριπής, ο δίαυλος συστήματος απελευθερώνεται μόνο αφού ολοκληρωθεί η μεταφορά δεδομένων. Στη λειτουργία κλοπής κύκλου, κατά τη μεταφορά δεδομένων μεταξύ του καναλιού DMA και της συσκευής I/O, ο δίαυλος συστήματος εγκαταλείπεται για μερικούς κύκλους ρολογιού, έτσι ώστε η CPU να μπορεί να εκτελέσει άλλες εργασίες. Όταν ολοκληρωθεί η μεταφορά δεδομένων, η CPU λαμβάνει ένα αίτημα διακοπής από τον ελεγκτή DMA. Σε διαφανή λειτουργία, το DMAC μπορεί να αναλάβει τον δίαυλο συστήματος μόνο όταν δεν απαιτείται από τον επεξεργαστή.

Ωστόσο, η χρήση ενός ελεγκτή άμεσης πρόσβαση μνήμης μπορεί να προκαλέσει προβλήματα συνοχής της κρυφής μνήμης (cache). Τα δεδομένα που είναι αποθηκευμένα στη μνήμη RAM στα οποία έχει πρόσβαση ο ελεγκτής DMA ενδέχεται να μην ενημερωθούν με τα σωστά δεδομένα κρυφής μνήμης εάν η CPU χρησιμοποιεί εξωτερική μνήμη.

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

Margaret Rouse
Ειδικός Τεχνολογίας
Margaret Rouse
Ειδικός Τεχνολογίας

Η Margaret είναι μια βραβευμένη συγγραφέας και εκπαιδευτικός, γνωστή για την ικανότητά της να εξηγεί σύνθετα τεχνικά θέματα σε μη γνώστες του θέματος με έμφαση στους επιχειρηματίες. Τα τελευταία είκοσι χρόνια, οι ορισμοί της στον τομέα της πληροφορικής δημοσιεύτηκαν από την Que σε μια εγκυκλοπαίδεια με όρους τεχνολογίας και αναφέρονται σε άρθρα στους New York Times, Time Magazine, USA Today, ZDNet, PC Magazine και Discovery Magazine. Εντάχθηκε στηνομάδα της Techopedia το 2011. Η Margaret απολαμβάνει να βοηθάει τους επαγγελματίες πληροφορικής και τις επιχειρήσεις να μάθουν να μιλούν ο ένας τις εξαιρετικά εξειδικευμένες γλώσσες του άλλου.

thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail