Τι είναι η άμεση πρόσβαση στη μνήμη (DMA) και πώς λειτουργεί; [MiniTool Wiki]
What Is Direct Memory Access
Γρήγορη πλοήγηση:
Μπορείτε να υιοθετήσετε το RDMA τεχνολογία που επιτρέπει στους υπολογιστές σε ένα δίκτυο να ανταλλάσσουν δεδομένα στην κύρια μνήμη χωρίς να περιλαμβάνει τον επεξεργαστή, την προσωρινή μνήμη ή το λειτουργικό σύστημα και των δύο υπολογιστών. Ωστόσο, μπορείτε επίσης να χρησιμοποιήσετε τη δυνατότητα DMA για απευθείας αποστολή δεδομένων από μια συνδεδεμένη συσκευή στη μνήμη της μητρικής πλακέτας του υπολογιστή. Αυτή η ανάρτηση από MiniTool μιλά κυρίως για DMA.
Ο ορισμός της άμεσης πρόσβασης στη μνήμη
Πρώτα απ 'όλα, τι είναι η άμεση πρόσβαση στη μνήμη; Η άμεση πρόσβαση στη μνήμη μπορεί να συντομευτεί στο DMA, το οποίο είναι ένα χαρακτηριστικό των συστημάτων υπολογιστών. Επιτρέπει στις συσκευές εισόδου / εξόδου (I / O) να έχουν πρόσβαση στην κύρια μνήμη συστήματος ( μνήμη τυχαίας προσπέλασης , ανεξάρτητα από την κεντρική μονάδα επεξεργασίας (CPU), η οποία επιταχύνει τις λειτουργίες μνήμης.
Υπόδειξη: Μπορεί να σας ενδιαφέρει αυτή η ανάρτηση - 8 Χρήσιμες λύσεις για τη διόρθωση της CPU σας 100% στα Windows 10 .
Χωρίς άμεση πρόσβαση στη μνήμη, όταν η CPU χρησιμοποιεί προγραμματισμένες εισόδους / εξόδους, συνήθως καταλαμβάνεται πλήρως κατά τη διάρκεια ολόκληρης της λειτουργίας ανάγνωσης ή εγγραφής, οπότε δεν μπορεί να εκτελέσει άλλες εργασίες. Με το DMA, η CPU ξεκινά πρώτα τη μεταφορά, μετά εκτελεί άλλες λειτουργίες ενώ η μεταφορά βρίσκεται σε εξέλιξη και τελικά λαμβάνει μια διακοπή από τον ελεγκτή DMA (DMAC) όταν ολοκληρωθεί η λειτουργία.
Η άμεση πρόσβαση στη μνήμη είναι χρήσιμη κάθε φορά που η CPU δεν μπορεί να συμβαδίσει με το ρυθμό μεταφοράς δεδομένων ή όταν η CPU πρέπει να εκτελέσει εργασία ενώ περιμένει σχετικά αργή μεταφορά δεδομένων I / O.
Πολλά συστήματα υλικού υιοθετούν άμεση πρόσβαση στη μνήμη, όπως ελεγκτές μονάδων δίσκου, κάρτες γραφικών, κάρτες δικτύου και κάρτες ήχου. Το DMA χρησιμοποιείται επίσης για μεταφορά δεδομένων on-chip σε επεξεργαστές πολλαπλών πυρήνων. Σε σύγκριση με υπολογιστές χωρίς κανάλια άμεσης πρόσβασης στη μνήμη, οι υπολογιστές με κανάλια DMA μπορούν να μεταφέρουν δεδομένα μεταξύ συσκευών με πολύ λιγότερη επιβάρυνση της CPU.
Η άμεση πρόσβαση στη μνήμη μπορεί επίσης να χρησιμοποιηθεί για τη 'μνήμη στη μνήμη' για να αντιγράψετε ή να μετακινήσετε δεδομένα στη μνήμη. Μπορεί να μεταφέρει ακριβές λειτουργίες μνήμης (όπως μεγάλα αντίγραφα ή λειτουργίες συλλογής διασποράς) από την CPU σε έναν αποκλειστικό κινητήρα DMA. Το DMA είναι σημαντικό στις αρχιτεκτονικές υπολογιστών δικτύου σε chip και μνήμης.
Πώς λειτουργεί η άμεση πρόσβαση στη μνήμη;
Τότε πώς λειτουργεί η Άμεση Μνήμη; Η τυπική άμεση πρόσβαση μνήμης (ονομάζεται επίσης DMA τρίτου μέρους) υιοθετεί έναν ελεγκτή DMA. Ο ελεγκτής DMA μπορεί να παράγει διευθύνσεις μνήμης και να ξεκινήσει κύκλους ανάγνωσης ή εγγραφής μνήμης. Καλύπτει πολλούς καταχωρητές υλικού που μπορούν να διαβαστούν και να γραφτούν από την CPU.
Αυτοί οι καταχωρητές αποτελούνται από έναν καταχωρητή διευθύνσεων μνήμης, έναν καταχωρητή μετρήσεων byte και έναν ή περισσότερους καταχωρητές ελέγχου. Ανάλογα με τις δυνατότητες που παρέχονται από τον ελεγκτή Direct Memory Access, αυτοί οι καταχωρητές ελέγχου μπορούν να ορίσουν κάποιο συνδυασμό πηγής, προορισμού, κατεύθυνσης μεταφοράς (ανάγνωση ή εγγραφή σε συσκευή I / O), μέγεθος της μονάδας μεταφοράς ή / και τον αριθμό byte για μεταφορά σε μία ριπή.
Για την εκτέλεση λειτουργιών εισόδου, εξόδου ή μνήμης σε μνήμη, ο κεντρικός επεξεργαστής προετοιμάζει τον ελεγκτή DMA με τον αριθμό των λέξεων που θα μεταφερθούν και τη διεύθυνση μνήμης που θα χρησιμοποιηθεί. Στη συνέχεια, η CPU δίνει εντολή στην περιφερειακή συσκευή να ξεκινήσει τη μεταφορά δεδομένων.
Στη συνέχεια, ο ελεγκτής Direct Memory Access προσφέρει διευθύνσεις και γραμμές ελέγχου ανάγνωσης / εγγραφής στη μνήμη του συστήματος. Κάθε φορά που ένα byte δεδομένων προετοιμάζεται για μεταφορά μεταξύ της περιφερειακής συσκευής και της μνήμης, ο ελεγκτής DMA αυξάνει τον εσωτερικό καταχωρητή διευθύνσεών του έως ότου μεταφερθεί ένα πλήρες μπλοκ δεδομένων.
Τρόποι λειτουργίας
Η άμεση πρόσβαση μνήμης λειτουργεί διαφορετικά σε διαφορετικούς τρόπους λειτουργίας.
Λειτουργία ριπής
Σε λειτουργία ριπής, το πλήρες μπλοκ δεδομένων μεταδίδεται με συνεχή ακολουθία. Μόλις η CPU επιτρέπει στον ελεγκτή DMA να έχει πρόσβαση στο δίαυλο συστήματος, ο ελεγκτής DMA θα μεταφέρει όλα τα byte δεδομένων στο μπλοκ δεδομένων πριν απελευθερώσει τον έλεγχο των διαύλων συστήματος πίσω στην CPU, αλλά θα προκαλέσει την CPU να είναι ανενεργή για ένα πολύ καιρό. Αυτή η λειτουργία ονομάζεται επίσης 'Block Transfer Mode'.
Λειτουργία Cycle Stealing
Η λειτουργία κλοπής κύκλου χρησιμοποιείται σε ένα σύστημα όπου η CPU δεν μπορεί να απενεργοποιηθεί για το χρονικό διάστημα που απαιτείται για τη λειτουργία μεταφοράς ριπής. Στη λειτουργία κύκλου κλοπής, ο ελεγκτής DMA αποκτά την πρόσβαση στο δίαυλο συστήματος χρησιμοποιώντας τα σήματα BR (Bus Request) και BG (Bus Grant), τα οποία είναι ίδια με τη λειτουργία burst. Αυτά τα δύο σήματα ελέγχουν τη διεπαφή μεταξύ της CPU και του ελεγκτή DMA.
Αφενός, στη λειτουργία κλοπής κύκλου, η ταχύτητα μετάδοσης μπλοκ δεδομένων δεν είναι τόσο γρήγορη όσο στη λειτουργία ριπής, αλλά από την άλλη πλευρά, ο χρόνος αδράνειας της CPU δεν είναι τόσο μεγάλος όσο στη λειτουργία ριπής.
Διαφανής λειτουργία
Η διαφανής λειτουργία απαιτεί το μεγαλύτερο χρόνο για τη μεταφορά μπλοκ δεδομένων, αλλά είναι επίσης η πιο αποτελεσματική λειτουργία όσον αφορά τη συνολική απόδοση του συστήματος. Σε διαφανή λειτουργία, ο ελεγκτής Direct Memory Access μεταφέρει δεδομένα μόνο όταν η CPU εκτελεί λειτουργίες που δεν χρησιμοποιούν τους διαύλους συστήματος.
Το κύριο πλεονέκτημα της διαφανούς λειτουργίας είναι ότι η CPU δεν σταματά ποτέ να εκτελεί τα προγράμματά της και οι μεταφορές άμεσης πρόσβασης μνήμης είναι δωρεάν από την άποψη του χρόνου, ενώ το μειονέκτημα είναι ότι το υλικό πρέπει να προσδιορίσει πότε η CPU δεν χρησιμοποιεί τους διαύλους συστήματος, οι να είσαι περίπλοκος. Αυτό ονομάζεται επίσης 'κρυφή λειτουργία μεταφοράς δεδομένων DMA'.