Το πρότυπο Direct Memory Access (DMA), που σημαίνει «Άμεση Πρόσβαση Μνήμης» ή «Άμεση Προσπέλαση Μνήμης», είναι ένα χαρακτηριστικό των σύγχρονων υπολογιστών και μικροεπεξεργαστών το οποίο παρέχει τη δυνατότητα σε υποσυστήματα του υλικού ενός υπολογιστή να έχουν πρόσβαση στη μνήμη του συστήματος για ανάγνωση ή εγγραφή δεδομένων ανεξάρτητα από την κεντρική μονάδα επεξεργασίας. Μεγάλο μέρος του υλικού των υπολογιστών χρησιμοποιεί το DMA, συμπεριλαμβανομένων των ελεγκτών σκληρού δίσκου, των καρτών γραφικών, των καρτών δικτύου, των καρτών ήχου και των μονάδων επεξεργασίας γραφικών (GPU). Το DMA χρησιμοποιείται επίσης για τη μεταφορά δεδομένων διαμέσου των ολοκληρωμένων κυκλωμάτων (τσιπ) στους πολυπύρηνους επεξεργαστές.

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

Το πρότυπο DMA υλοποιείται με έναν εξειδικευμένο επεξεργαστή-ελεγκτή (controller) ο οποίος μεταφέρει δεδομένα μεταξύ της μνήμης και μιας συσκευής εισόδου/εξόδου, ενώ την ίδια στιγμή ο επεξεργαστής ασχολείται με άλλες διεργασίες. Γι’ αυτό το λόγο βρίσκεται εκτός του επεξεργαστή και έχει τον έλεγχο της αρτηρίας, κατευθύνοντας την ανάγνωση και την εγγραφή δεδομένων ανάμεσα στη συσκευή και τη μνήμη. Συνήθως βρίσκεται ενσωματωμένος στο chipset των σύγχρονων υπολογιστών.

Η αρχική υλοποίηση υπολογιστή IBM XT είχε έναν τέτοιον ελεγκτή DMA και υποστήριζε 4 κανάλια DMA, από 0 ως 3. Στον IBM AT, προστέθηκε ένας δεύτερος ελεγκτής DMA, ο οποίος βρισκόταν σε σειριακή σύνδεση με τον πρώτο. Με αυτό τον τρόπο έγιναν διαθέσιμα 8 κανάλια DMA, από το 0 ως το 7. Το DMA 4 δεν είναι διαθέσιμο προς χρήση από άλλες συσκευές καθώς διασυνδέει τους δύο ελεγκτές μεταξύ τους.

Αρ. καναλιού Λειτουργία Ελεγκτής (εύρος)
0 Διαθέσιμο (ήχος) 1ος (8 bit)
1 Διαθέσιμο (ήχος) 1ος (8 bit)
2 Ελεγκτής floppy drive 1ος (8 bit)
3 Διαθέσιμο (LPT1) 1ος (8 bit)
4 Επικοινωνία DMA ελεγκτών 2ος (16 bit)
5 Διαθέσιμο (ήχος) 2ος (16 bit)
6 Διαθέσιμο (SCSI) 2ος (16 bit)
7 Διαθέσιμο 2ος (16 bit)

Πρόσθετες πηγές Επεξεργασία