Άμεση πρόσβαση μνήμης (DMA) στην αρχιτεκτονική υπολογιστών

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Για την εκτέλεση ενός προγράμματος υπολογιστή, απαιτεί τη σύγχρονη λειτουργία περισσότερων του ενός συστατικών ενός υπολογιστή. Για παράδειγμα, Επεξεργαστές - παροχή απαραίτητων πληροφοριών ελέγχου, διευθύνσεων ... κλπ, λεωφορείων - για τη μεταφορά πληροφοριών και δεδομένων από και προς τη μνήμη σε συσκευές I / O ... κλπ. Ο ενδιαφέρων παράγοντας του συστήματος θα ήταν ο τρόπος με τον οποίο χειρίζεται τη μεταφορά πληροφοριών μεταξύ συσκευών επεξεργαστή, μνήμης και I / O. Συνήθως, οι επεξεργαστές ελέγχουν όλη τη διαδικασία μεταφοράς δεδομένων, από την έναρξη της μεταφοράς έως την αποθήκευση δεδομένων στον προορισμό. Αυτό προσθέτει φορτίο στον επεξεργαστή και τις περισσότερες φορές παραμένει στην ιδανική κατάσταση, μειώνοντας έτσι την αποδοτικότητα του συστήματος. Για να επιταχύνετε τη μεταφορά δεδομένων μεταξύ συσκευών I / O και μνήμης, ο ελεγκτής DMA ενεργεί ως master station. Ο ελεγκτής DMA μεταφέρει δεδομένα με ελάχιστη παρέμβαση του επεξεργαστή.

Τι είναι ο ελεγκτής DMA;

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




Διάγραμμα ελεγκτή DMA στην αρχιτεκτονική υπολογιστών

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

DMA στην Αρχιτεκτονική Υπολογιστών

DMA στην Αρχιτεκτονική Υπολογιστών



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

Τυπικό διάγραμμα μπλοκ του ελεγκτή DMA

Τυπικό διάγραμμα μπλοκ του ελεγκτή DMA

Εργασία του ελεγκτή DMA

Ο ελεγκτής DMA πρέπει να μοιραστεί το δίαυλο με τον επεξεργαστή για να πραγματοποιήσει τη μεταφορά δεδομένων. Η συσκευή που συγκρατεί το λεωφορείο σε μια δεδομένη στιγμή ονομάζεται master bus. Όταν πρέπει να γίνει μεταφορά από τη συσκευή I / O στη μνήμη ή το αντίστροφο στίχο, ο επεξεργαστής σταματά την εκτέλεση του τρέχοντος προγράμματος, το πρόγραμμα Μετρητής, μετακινεί δεδομένα σε στοίβα και μετά στέλνει σήμα επιλογής DMA στον ελεγκτή DMA μέσω του διαύλου διευθύνσεων.

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


Μεταφορά δεδομένων μέσω DMA Σε υπολογιστή μέσω DMA

Μεταφορά δεδομένων στον υπολογιστή μέσω του ελεγκτή DMA

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

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

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

προς την) Λειτουργία ριπής : Σε αυτήν τη λειτουργία, η DMA παραδίδει τα λεωφορεία στην CPU μόνο μετά την ολοκλήρωση ολόκληρης της μεταφοράς δεδομένων. Εν τω μεταξύ, εάν η CPU απαιτεί το λεωφορείο, πρέπει να παραμείνει ιδανική και να περιμένει τη μεταφορά δεδομένων.

σι) Λειτουργία Cycle Stealing : Σε αυτήν τη λειτουργία, το DMA δίνει έλεγχο των λεωφορείων στην CPU μετά τη μεταφορά κάθε byte. Εκδίδει συνεχώς ένα αίτημα για έλεγχο λεωφορείου, κάνει τη μεταφορά ενός byte και επιστρέφει το λεωφορείο. Με αυτήν την CPU δεν χρειάζεται να περιμένετε για μεγάλο χρονικό διάστημα εάν χρειάζεται λεωφορείο για εργασία υψηλότερης προτεραιότητας.

ντο) Διαφανής λειτουργία: Εδώ, το DMA μεταφέρει δεδομένα μόνο όταν η CPU εκτελεί τις οδηγίες που δεν απαιτούν τη χρήση λεωφορείων.

8237 DMA Ελεγκτής

  • Το 8237 διαθέτει 4 κανάλια εισόδου / εξόδου μαζί με την ευελιξία αύξησης του αριθμού των καναλιών.
  • Κάθε κανάλι μπορεί να προγραμματιστεί ξεχωριστά και έχει 64k διεύθυνση και δυνατότητα δεδομένων.
  • Το μπλοκ ελέγχου χρονισμού, το μπλοκ ελέγχου εντολών προγράμματος, το μπλοκ κωδικοποίησης προτεραιότητας είναι τα τρία κύρια μπλοκ του 8237A.
  • Τα σήματα εσωτερικού συγχρονισμού και εξωτερικού ελέγχου οδηγούνται από το μπλοκ ελέγχου χρονισμού.
  • Διάφορες εντολές που δίδονται από τον μικροεπεξεργαστή στο DMA αποκωδικοποιούνται από το μπλοκ ελέγχου εντολών προγράμματος.
  • Ποιο κανάλι πρέπει να έχει την υψηλότερη προτεραιότητα αποφασίζεται από την προτεραιότητα μπλοκ κωδικοποιητή .
    Το 8237A έχει 27 εσωτερικούς καταχωρητές.

Το 8237A λειτουργεί σε δύο κύκλους - Ιδανικός κύκλος και ενεργός κύκλος, όπου κάθε κύκλος περιέχει 7 ξεχωριστές καταστάσεις που αποτελούνται από μία περίοδο ρολογιού η καθεμία.

S0- Η πρώτη κατάσταση, όπου ο ελεγκτής έχει ζητήσει το λεωφορείο και περιμένει την επιβεβαίωση από τον επεξεργαστή.

Οι S1, S2, S3, S4 ονομάζονται καταστάσεις λειτουργίας του 8237A όπου πραγματοποιείται η πραγματική μεταφορά δεδομένων. Εάν απαιτείται περισσότερος χρόνος για τη μεταφορά, περιμένετε καταστάσεις SW προστίθενται μεταξύ αυτών των καταστάσεων.

Για μεταφορά μνήμης προς μνήμη πρέπει να γίνουν μεταφορές από μνήμη και μεταφορά από μνήμη σε μνήμη. Απαιτούνται οκτώ πολιτείες για μία μεταφορά. Οι τέσσερις πρώτες καταστάσεις με τις συνδρομές S11, S12, S13, S14 πραγματοποιούν τη μεταφορά ανάγνωσης από τη μνήμη και οι επόμενες τέσσερις S21, S22, S23, S24 είναι για μεταφορά εγγραφής σε μνήμη.

Το DMA μπαίνει στην ιδανική κατάσταση όταν κανένα κανάλι δεν ζητά υπηρεσία και εκτελεί κατάσταση SI. Το SI είναι μια ανενεργή κατάσταση όπου το DMA είναι ανενεργό έως ότου λάβει ένα αίτημα. Σε αυτήν την κατάσταση, το DMA βρίσκεται σε κατάσταση προγράμματος όπου ο επεξεργαστής μπορεί να προγραμματίσει το DMA.

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

8237 PinDiagram

Διάγραμμα 8237 Pin

8257 DMA Ελεγκτής

Όταν συνδυάζεται με μία συσκευή Intel 8212 I / O port, ο ελεγκτής 8257 DMA σχηματίζει ένα πλήρες κανάλι 4 Ελεγκτής DMA . Μόλις λάβει μια αίτηση μεταφοράς, ο ελεγκτής 8257

  • Λαμβάνει τον έλεγχο του διαύλου συστήματος από τον επεξεργαστή.
  • Αναγνωρίζεται το περιφερειακό που είναι συνδεδεμένο στο κανάλι υψηλότερης προτεραιότητας.
  • Τα λιγότερο σημαντικά bit της διεύθυνσης μνήμης μετακινούνται πάνω από τις γραμμές διευθύνσεων A0-A7 του διαύλου συστήματος.
  • Το πιο σημαντικό 8 bit της διεύθυνσης μνήμης οδηγούνται στη θύρα 8212 I / O μέσω γραμμών δεδομένων.
  • Δημιουργεί τα κατάλληλα σήματα ελέγχου για τη μεταφορά δεδομένων μεταξύ περιφερειακών και διευθυνόμενων θέσεων μνήμης.
  • Όταν μεταβιβάζεται ο καθορισμένος αριθμός byte, ο ελεγκτής ενημερώνει το τέλος μεταφοράς της CPU ενεργοποιώντας την έξοδο τερματικού (TC).

Για κάθε κανάλι 8257 περιέχει δύο Μητρώα 16-bit - 1) Μητρώο διευθύνσεων DMA και 2) Μητρώο καταμέτρησης τερματικού, το οποίο πρέπει να αρχικοποιηθεί πριν ενεργοποιηθεί ένα κανάλι. Η διεύθυνση της πρώτης θέσης μνήμης προς πρόσβαση φορτώνεται στον καταχωρητή διευθύνσεων DMA. Η χαμηλότερη σειρά 14 bits της τιμής που φορτώνεται στον καταχωρητή καταμέτρησης τερματικού υποδεικνύει τον αριθμό κύκλων DMA μείον έναν πριν από την ενεργοποίηση της εξόδου τερματικού. Ο τύπος λειτουργίας ενός καναλιού υποδεικνύεται από τα πιο σημαντικά δύο bit του καταχωρητή τερματικού.

Διάγραμμα 8257 Pin

Διάγραμμα 8257 Pin

Πλεονεκτήματα και μειονεκτήματα του DMA Controller

Τα πλεονεκτήματα και τα μειονεκτήματα του ελεγκτή DMA περιλαμβάνουν τα ακόλουθα.

Πλεονεκτήματα

  • Το DMA επιταχύνει τις λειτουργίες της μνήμης παρακάμπτοντας τη συμμετοχή της CPU.
  • Η υπερφόρτωση εργασίας στη CPU μειώνεται.
  • Για κάθε μεταφορά, απαιτούνται μόνο μερικοί αριθμοί κύκλων ρολογιού

Μειονεκτήματα

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

DMA ( Άμεση πρόσβαση στη μνήμη ) Ο ελεγκτής χρησιμοποιείται σε κάρτες γραφικών, κάρτες δικτύου, κάρτες ήχου κ.λπ.… Το DMA χρησιμοποιείται επίσης για μεταφορά εντός-chip σε επεξεργαστές πολλαπλών πυρήνων. Λειτουργώντας σε έναν από τους τρεις τρόπους λειτουργίας, το DMA μπορεί να μειώσει σημαντικά το φορτίο του επεξεργαστή. Σε ποιους από τους τρόπους λειτουργίας του DMA έχετε εργαστεί; Ποιος από τους τρόπους που θεωρείτε πιο αποτελεσματικός;