Στατική και δυναμική μνήμη υπολογιστή. Έλεγχος κατασκευών της γλώσσας C. Αναπαράσταση προγραμμάτων ως συναρτήσεων. Εργασία με τη μνήμη. Δομές

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

Υπάρχουν δύο τύποι στατικών μεταβλητών:

  • καθολικές μεταβλητέςορίζονται μεταβλητές εκτός λειτουργίας, η περιγραφή του οποίου δεν περιέχει τη λέξη static . Συνήθως περιγραφέςΟι καθολικές μεταβλητές που περιλαμβάνουν τη λέξη extern τοποθετούνται σε αρχεία κεφαλίδας (h-files). Η λέξη extern σημαίνει ότι η μεταβλητή δηλώνεται, αλλά δεν δημιουργείται σε αυτό το σημείο του προγράμματος. Ορισμοίκαθολικές μεταβλητές, δηλ. περιγραφές χωρίς τη λέξη extern τοποθετούνται σε αρχεία υλοποίησης (c-files ή cpp-files). Παράδειγμα: Η καθολική μεταβλητή maxid δηλώνεται δύο φορές:
    • στο αρχείο h χρησιμοποιώντας τη γραμμή

      extern int maxind?

      αυτή η δήλωση αναφέρει την παρουσία μιας τέτοιας μεταβλητής, αλλά δεν δημιουργεί αυτή τη μεταβλητή!
    • στο αρχείο cpp χρησιμοποιώντας τη γραμμή

      int maxind = 1000;

      αυτή είναι η περιγραφή δημιουργείμεταβλητή maxid και της εκχωρεί την αρχική τιμή 1000 . Σημειώστε ότι το πρότυπο γλώσσας δεν απαιτεί την υποχρεωτική εκχώρηση αρχικών τιμών σε καθολικές μεταβλητές, αλλά, ωστόσο, είναι καλύτερο να το κάνετε πάντα, διαφορετικά η μεταβλητή θα περιέχει μια απρόβλεπτη τιμή (σκουπίδια, όπως λένε οι προγραμματιστές). Είναι καλό να αρχικοποιούνται όλες οι καθολικές μεταβλητές όταν αυτές ορίζονται.
    Οι καθολικές μεταβλητές ονομάζονται έτσι επειδή είναι διαθέσιμες οπουδήποτε στο πρόγραμμα σε όλα τα αρχεία του. Επομένως, τα καθολικά ονόματα μεταβλητών πρέπει να είναι αρκετά μεγάλα ώστε να αποφεύγονται τα τυχαία ονόματα δύο διαφορετικών μεταβλητών. Για παράδειγμα, τα ονόματα x ή n δεν είναι κατάλληλα για μια καθολική μεταβλητή.
  • στατικές μεταβλητές- πρόκειται για μεταβλητές των οποίων η περιγραφή περιέχει τη λέξη static . Συνήθως, περιγράφονται στατικές μεταβλητές εκτός λειτουργίας. Τέτοιες στατικές μεταβλητές είναι από κάθε άποψη παρόμοιες με τις καθολικές, με μια εξαίρεση: το εύρος μιας στατικής μεταβλητής περιορίζεται στο μεμονωμένο αρχείο εντός του οποίου ορίζεται - και, επιπλέον, μπορεί να χρησιμοποιηθεί μόνο αφού έχει δηλωθεί, δηλ. παρακάτω στο κείμενο. Για το λόγο αυτό, οι δηλώσεις στατικών μεταβλητών τοποθετούνται συνήθως στην αρχή του αρχείου. Σε αντίθεση με τις καθολικές μεταβλητές, οι στατικές μεταβλητές ποτέδεν περιγράφονται στα αρχεία h (οι εξωτερικοί και οι στατικοί τροποποιητές έρχονται σε σύγκρουση μεταξύ τους). Συμβουλή: Χρησιμοποιήστε στατικές μεταβλητές εάν θέλετε να είναι προσβάσιμες μόνο στις λειτουργίες που περιγράφονται μέσα το ίδιο αρχείο. Εάν είναι δυνατόν, μην χρησιμοποιείτε καθολικές μεταβλητές σε τέτοιες περιπτώσεις, αυτό θα αποφύγει τις συγκρούσεις ονομάτων κατά την υλοποίηση μεγάλων έργων που αποτελούνται από εκατοντάδες αρχεία.
    • Μια στατική μεταβλητή μπορεί επίσης να περιγραφεί μέσα σε μια συνάρτηση, αν και συνήθως κανείς δεν το κάνει αυτό. Η μεταβλητή δεν βρίσκεται στη στοίβα, αλλά στη στατική μνήμη, δηλ. δεν μπορεί να χρησιμοποιηθεί σε αναδρομή και η τιμή του αποθηκεύεται μεταξύ διαφορετικών εισόδων στη συνάρτηση. Το εύρος μιας τέτοιας μεταβλητής περιορίζεται στο σώμα της συνάρτησης στην οποία ορίζεται. Διαφορετικά είναι παρόμοια με μια στατική ή καθολική μεταβλητή. σημειώσε ότι λέξη-κλειδίΤο static στο C χρησιμοποιείται για δύο διαφορετικούς σκοπούς:
      • ως ένδειξη του τύπου μνήμης: η μεταβλητή βρίσκεται στη στατική μνήμη και όχι στη στοίβα.
      • ως τρόπος περιορισμού του εύρους μιας μεταβλητής σε ένα μόνο αρχείο (στην περίπτωση περιγραφής μιας μεταβλητής εκτός συνάρτησης).
  • Η λέξη static μπορεί επίσης να εμφανιστεί στην κεφαλίδα συνάρτησης. Ωστόσο, χρησιμοποιείται μόνο για να περιορίσει το εύρος του ονόματος της συνάρτησης σε ένα μόνο αρχείο. Παράδειγμα:

    static int gcd(int x, int y); // Πρωτότυπο συνάρτησης. . . static int gcd(int x, int y) ( // Υλοποίηση... )

    Συμβουλή: Χρησιμοποιήστε τον στατικό τροποποιητή στην κεφαλίδα συνάρτησης, εάν γνωρίζετε ότι η συνάρτηση θα κληθεί μόνο σε ένα μόνο αρχείο. Η λέξη static πρέπει να υπάρχει τόσο στην περιγραφή του πρωτοτύπου της συνάρτησης όσο και στην κεφαλίδα συνάρτησης κατά την εφαρμογή της.

Στοίβα ή τοπική μνήμη

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

Οι τοπικές μεταβλητές μπορούν να χρησιμοποιηθούν στην αναδρομή, επειδή όταν μια συνάρτηση εισάγεται ξανά, δημιουργείται ένα νέο σύνολο τοπικών μεταβλητών στη στοίβα χωρίς να καταστρέφεται το προηγούμενο σύνολο. Για τον ίδιο λόγο, οι τοπικές μεταβλητές είναι ασφαλείς για νήματα στον παράλληλο προγραμματισμό (βλ. Ενότητα 2.6.2). Οι προγραμματιστές ονομάζουν αυτή την ιδιότητα μιας συνάρτησης επανεισόδου, από τα Αγγλικά re-enter ικανός - δυνατότητα επανεισόδου. Αυτό είναι πολύ σημαντική ποιότητααπό την άποψη της αξιοπιστίας και της ασφάλειας του προγράμματος! Ένα πρόγραμμα που λειτουργεί με στατικές μεταβλητές δεν έχει αυτήν την ιδιότητα, επομένως για να προστατεύσετε τις στατικές μεταβλητές πρέπει να χρησιμοποιήσετε μηχανισμούς συγχρονισμού(βλ. 2.6.2), και η λογική του προγράμματος γίνεται δραματικά πιο περίπλοκη. Θα πρέπει πάντα να αποφεύγετε τη χρήση καθολικών και στατικών μεταβλητών όταν μπορείτε να χρησιμοποιήσετε τοπικές.

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

Δυναμική μνήμη ή σωρό

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

Η δυναμική μνήμη εκχωρείται χώρος στην εικονική μνήμη της διεργασίας μεταξύ της στατικής μνήμης και της στοίβας. (Ο μηχανισμός εικονικής μνήμης συζητήθηκε στην Ενότητα 2.6.) Συνήθως, η στοίβα βρίσκεται στις υψηλότερες διευθύνσεις της εικονικής μνήμης και αυξάνεται προς μικρότερες διευθύνσεις (βλ. Ενότητα 2.3). Το πρόγραμμα και τα σταθερά δεδομένα βρίσκονται σε χαμηλές διευθύνσεις, οι στατικές μεταβλητές βρίσκονται ψηλότερα. Ο χώρος πάνω από τις στατικές μεταβλητές και κάτω από τη στοίβα καταλαμβάνεται από δυναμική μνήμη:

διεύθυνση περιεχόμενο μνήμης

κωδικός προγράμματος και δεδομένα,

αδιάβροχο

...

στατικές μεταβλητές

προγράμματα

δυναμική μνήμη

Μέγιστη. διεύθυνση (2 32 -4)

σωρός

Η δομή δυναμικής μνήμης διατηρείται αυτόματα από το σύστημα χρόνου εκτέλεσης της γλώσσας C ή C++. Η δυναμική μνήμη αποτελείται από καταγεγραμμένα και ελεύθερα τμήματα, κάθε ένα από τα οποία προηγείται από έναν περιγραφέα τμήματος. Κατά την εκτέλεση μιας αίτησης καταγραφής μνήμης, το σύστημα εκτέλεσης αναζητά ένα ελεύθερο τμήμα επαρκούς μεγέθους και καταγράφει ένα τμήμα του απαιτούμενου μήκους σε αυτό. Όταν ένα τμήμα μνήμης ελευθερώνεται, επισημαίνεται ως ελεύθερο· εάν είναι απαραίτητο, συγχωνεύονται πολλά διαδοχικά ελεύθερα τμήματα.

Στη γλώσσα C, οι τυπικές συναρτήσεις malloc και free χρησιμοποιούνται για την απόκτηση και ελεύθερη δυναμική μνήμη· περιγραφές των πρωτοτύπων τους περιέχονται στο πρότυπο αρχείο κεφαλίδας"stdlib.h". (Το όνομα malloc είναι συντομογραφία κατανομή μνήμης- "σύλληψη μνήμης".) Τα πρωτότυπα αυτών των λειτουργιών μοιάζουν με αυτό:

void *malloc(size_t n); // Καταγραφή περιοχής μνήμης // n byte σε μέγεθος void free(void *p); // Ελευθερώστε ένα τμήμα της μνήμης // με διεύθυνση p

Εδώ n είναι το μέγεθος της περιοχής που καταγράφηκε σε byte, size_t είναι το όνομα ενός από αυτά ακέραιους τύπους, ορίζοντας μέγιστο μέγεθοςκαταληφθείσα περιοχή. Ο τύπος size_t καθορίζεται στο τυπικό αρχείο κεφαλίδας "stdlib.h" χρησιμοποιώντας τον τελεστή typedef (βλ. σελ. 117). Αυτό διασφαλίζει την ανεξαρτησία του κειμένου του προγράμματος C από την αρχιτεκτονική που χρησιμοποιείται. Στην αρχιτεκτονική των 32 bit, ο τύπος size_t ορίζεται ως ένας ανυπόγραφος ακέραιος:

typedef ανυπόγραφο int size_t;

Η συνάρτηση malloc επιστρέφει τη διεύθυνση της εκχωρημένης θέσης μνήμης ή μηδέν εάν αποτύχει (όταν δεν υπάρχει ελεύθερη θέση αρκετά μεγάλη). Δωρεάν λειτουργίαελευθερώνει ένα τμήμα της μνήμης με μια δεδομένη διεύθυνση. Για να ορίσετε τη διεύθυνση, χρησιμοποιήστε τον γενικό δείκτη πληκτρολογήστε κενό*. Αφού καλέσετε τη συνάρτηση malloc, πρέπει να μεταδοθεί σε έναν δείκτη προς συγκεκριμένου τύπου, χρησιμοποιώντας τη λειτουργία χύτευσης τύπου, βλέπε ενότητα 3.4.11. Για παράδειγμα, το ακόλουθο παράδειγμα συλλαμβάνει ένα κομμάτι μνήμης σωρού 4000 byte και εκχωρεί τη διεύθυνσή του σε έναν δείκτη σε έναν πίνακα 1000 ακεραίων:

int *a; // Δείκτης σε έναν πίνακα ακεραίων. . . a = (int *) malloc(1000 * sizeof(int));

Η έκφραση στο όρισμα της συνάρτησης malloc είναι 4000 επειδή το μέγεθος του ακέραιου sizeof(int) είναι τέσσερα byte. Για τη μετατροπή ενός δείκτη, χρησιμοποιείται μια λειτουργία cast (int *) από δείκτη γενικού τύπου σε δείκτη σε ακέραιο.

Παράδειγμα: Εκτύπωση των πρώτων ν πρώτων αριθμών

Ας δούμε ένα παράδειγμα χρησιμοποιώντας δυναμική σύλληψη μνήμης. Πρέπει να εισαγάγετε έναν ακέραιο n και να εκτυπώσετε τους πρώτους n πρώτους αριθμούς. (Πρώτος αριθμός είναι ένας αριθμός που δεν έχει μη τετριμμένους διαιρέτες.) Χρησιμοποιούμε επόμενος αλγόριθμος: ελέγχουμε διαδοχικά όλους τους περιττούς αριθμούς, ξεκινώντας από τρεις (θεωρούμε δύο ξεχωριστά). Διαιρούμε τον επόμενο αριθμό με όλους τους πρώτους αριθμούς που βρέθηκαν στα προηγούμενα βήματα του αλγορίθμου και δεν υπερβαίνουν τετραγωνική ρίζααπό τον αριθμό που ελέγχεται. Εάν δεν διαιρείται με κανέναν από αυτούς τους πρώτους αριθμούς, τότε είναι ο ίδιος πρώτος. εκτυπώνεται και προστίθεται στον πίνακα των πρώτων που βρέθηκαν.

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

#περιλαμβάνω #περιλαμβάνω #περιλαμβάνω int main() ( int n; // Απαιτούμενος αριθμός πρώτων int k; // Τρέχων αριθμός πρώτων που βρέθηκαν int *a; // Δείκτης σε μια σειρά πρώτων που βρέθηκαν int p; // Επόμενος αριθμός για έλεγχο int r; / / Ακέραιο μέρος τετραγωνική ρίζα του p int i; // Ευρετήριο του πρώτου διαιρέτη bool prime; // Σημάδι του πρώτου διαιρέτη printf("Εισαγάγετε τον αριθμό των πρώτων: "); scanf("%d", &n); εάν (n<= 0) // Некорректное значение =>επιστροφή 1; // έξοδος με κωδικό σφάλματος // Αρπάξτε τη μνήμη για έναν πίνακα πρώτων αριθμών a = (int *) malloc(n * sizeof(int)); a = 2; k = 1; // Προσθήκη δύο στον πίνακα printf("%d ", a); // και εκτυπώστε το p = 3; ενώ (κ< n) { // Проверяем число p на простоту r = (int)(// Целая часть корня sqrt((double) p) + 0.001); i = 0; prime = true; while (i < k && a[i] <= r) { if (p % a[i] == 0) { // p делится на a[i] prime = false; // =>Το p δεν είναι πρώτο, σπάσε. // έξοδος από τον βρόχο ) ++i; // Στον επόμενο πρώτο διαιρέτη ) if (πρώτος) ( // Αν βρούμε έναν πρώτο αριθμό, a[k] = p; // στη συνέχεια προσθέστε τον στον πίνακα ++k; // Αυξήστε τον αριθμό των πρώτων αριθμών printf( "%d ", p ); // Εκτυπώστε έναν πρώτο αριθμό εάν (k % 5 == 0) ( // Μετάβαση στο νέα γραμμή printf("\n"); // μετά από κάθε πέντε αριθμούς ) ) p += 2; // Στον επόμενο περιττό αριθμό ) if (k % 5 != 0) ( printf("\n"); // Μετάφραση της γραμμής ) // Ελευθέρωση δυναμικής μνήμης ελεύθερη(a); επιστροφή 0; )

Ένα παράδειγμα για το πώς λειτουργεί αυτό το πρόγραμμα:

Εισαγάγετε τον αριθμό των πρώτων: 50 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 29 31 31 10 15 1 157 163 167 173 179 181 191 193 197 199 211 223 227 229

C++ νέους και διαγραφή τελεστών

Η C++ χρησιμοποιεί τους τελεστές new και delete για να αποκτήσει και να ελευθερώσει δυναμική μνήμη. Αποτελούν μέρος της γλώσσας C++, σε αντίθεση με τις malloc και τις δωρεάν συναρτήσεις που περιλαμβάνονται στη βιβλιοθήκη τυποποιημένα χαρακτηριστικάΣι.

Έστω T κάποιος τύπος γλώσσας C ή C++, το p είναι δείκτης σε αντικείμενο τύπου T. Στη συνέχεια, ο νέος τελεστής χρησιμοποιείται για να αρπάξει τη μνήμη ενός στοιχείου τύπου T:

T*p; p = νέο T;

Για παράδειγμα, για τη σύλληψη οκτώ byte για έναν πραγματικό αριθμό τύπου double, χρησιμοποιείται ένα τμήμα

διπλό *p; p = νέο διπλό;

Όταν χρησιμοποιείτε νέο , σε αντίθεση με το malloc , δεν χρειάζεται να μεταφέρετε δείκτη από τον τύπο void* σε ο σωστός τύπος: Ο νέος τελεστής επιστρέφει έναν δείκτη στον τύπο που είναι γραμμένος μετά τη λέξη νέο. Συγκρίνετε δύο ισοδύναμα αποσπάσματα σε C και C++.

Στατική μνήμη τυχαίας πρόσβασης(SRAM, στατική μνήμη τυχαίας πρόσβασης) -- μνήμη τυχαίας πρόσβασης ημιαγωγών στην οποία κάθε δυαδικό ή τριαδικό ψηφίο αποθηκεύεται σε ένα κύκλωμα με θετικό ανατροφοδότηση, επιτρέποντας τη διατήρηση της κατάστασης του σήματος χωρίς τη συνεχή επανεγγραφή που απαιτείται στη δυναμική μνήμη (DRAM). Ωστόσο, η SRAM μπορεί να αποθηκεύσει δεδομένα μόνο χωρίς να τα αντικαταστήσει όσο υπάρχει ρεύμα, δηλαδή η SRAM παραμένει ένας ασταθής τύπος μνήμης. Τυχαία πρόσβαση (RAM -- μνήμη τυχαίας πρόσβασης) -- η δυνατότητα επιλογής για εγγραφή/ανάγνωση οποιουδήποτε από τα bit (τετράριθμα) (συνήθως bytes (χαρακτηριστικά), εξαρτάται από τα χαρακτηριστικά σχεδιασμού), σε αντίθεση με τη μνήμη με διαδοχική πρόσβαση (SAM - - μνήμη διαδοχικής πρόσβασης).

Δυαδικό SRAM

Ρύζι. 1.

Μια τυπική στατική δυαδική κυψέλη μνήμης (δυαδικό flip-flop) που βασίζεται στην τεχνολογία CMOS αποτελείται από δύο διασυνδεδεμένους μετατροπείς (δακτυλίου) και βασικά τρανζίστορ για την παροχή πρόσβασης στην κυψέλη (Εικ. 1.). Συχνά, για να αυξηθεί η πυκνότητα πλήρωσης των στοιχείων σε ένα τσιπ, χρησιμοποιούνται αντιστάσεις πολυπυριτίου ως φορτίο. Το μειονέκτημα αυτής της λύσης είναι η αύξηση της κατανάλωσης στατικής ενέργειας.

Το WL (Word Line) ελέγχει δύο τρανζίστορ πρόσβασης. Γραμμές BL και BL (Bit Line) - οι γραμμές bit χρησιμοποιούνται τόσο για την εγγραφή δεδομένων όσο και για την ανάγνωση δεδομένων.

Ρεκόρ. Όταν εφαρμόζεται ένα "0" στη γραμμή BL ή BL, τα παράλληλα συνδεδεμένα ζεύγη τρανζίστορ (M5 και M1) και (M6 και M3) σχηματίζουν λογικά κυκλώματα 2OR, η επακόλουθη εφαρμογή ενός "1" στη γραμμή WL ανοίγει το τρανζίστορ. M5 ή M6, που οδηγεί σε αντίστοιχη εναλλαγή της σκανδάλης.

ΑΝΑΓΝΩΣΗ. Όταν το "1" εφαρμόζεται στη γραμμή WL, τα τρανζίστορ M5 και M6 ανοίγουν, τα επίπεδα που καταγράφονται στη σκανδάλη ρυθμίζονται στις γραμμές BL και BL και πηγαίνουν στα κυκλώματα ανάγνωσης.

Μια δυαδική κυψέλη SRAM οκτώ τρανζίστορ περιγράφεται στο.

Η εναλλαγή flip-flops μέσω τρανζίστορ πρόσβασης είναι μια έμμεση λογική λειτουργία μεταγωγής προτεραιότητας, η οποία ρητά, για δυαδικά flip-flops, βασίζεται σε λογικά στοιχεία δύο εισόδων 2OR-NOT ή 2AND-NOT. Το κύκλωμα ρητής κυψέλης μεταγωγής είναι ένα συμβατικό flip-flop RS. Με ένα ρητό σχήμα μεταγωγής, οι γραμμές ανάγνωσης και εγγραφής διαχωρίζονται, εξαλείφοντας την ανάγκη για τρανζίστορ πρόσβασης (2 τρανζίστορ ανά κυψέλη), αλλά απαιτούνται τρανζίστορ διπλής πύλης στην ίδια την κυψέλη.

Επί του παρόντος, έχει εμφανιστεί ένα βελτιωμένο κύκλωμα (!) με ανάδραση που μπορεί να απενεργοποιηθεί από το σήμα εγγραφής, το οποίο δεν απαιτεί τρανζίστορ φορτίου και, κατά συνέπεια, είναι απαλλαγμένο από υψηλή κατανάλωση ενέργειας κατά την εγγραφή.

Τριάδα SRAM

Ρύζι. 2. Τριαδικό έργο SRAM σε τριμερή μονοψήφια flip-flops

Ενας στοιχείο λογικήςΤο 2OR-NOT αποτελείται από δύο τρανζίστορ δύο πυλών, τρία από έξι, συν τρία τρανζίστορ πρόσβασης, για συνολικά εννέα τρανζίστορ ανά κυψέλη μνήμης τριών bit.

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

· Γρήγοραπρόσβαση. Η SRAM είναι πραγματικά μνήμη τυχαίας πρόσβασης· η πρόσβαση σε οποιοδήποτε κελί μνήμης ανά πάσα στιγμή διαρκεί τον ίδιο χρόνο.

· Σχεδιασμός απλού κυκλώματος - Η SRAM δεν απαιτεί πολύπλοκους ελεγκτές.

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

Ελαττώματα

· ΥψηλόςΚατανάλωση ενέργειας.

· Χαμηλή πυκνότητα εγγραφής (έξι στοιχεία ανά bit, αντί για δύο για DRAM).

· Ως αποτέλεσμα, το κόστος ενός kilobyte μνήμης είναι υψηλό.

Ωστόσο, η υψηλή κατανάλωση ενέργειας δεν είναι θεμελιώδες χαρακτηριστικό της SRAM· οφείλεται στις υψηλές συναλλαγματικές ισοτιμίες με αυτόν τον τύπο εσωτερικής μνήμης επεξεργαστή. Η ενέργεια καταναλώνεται μόνο όταν αλλάζουν πληροφορίες σε μια κυψέλη SRAM.

Εφαρμογή

Η SRAM χρησιμοποιείται σε μικροελεγκτές και FPGA, στους οποίους η ποσότητα της μνήμης RAM είναι μικρή (μερικά kilobyte), αλλά χαμηλή κατανάλωση ενέργειας (λόγω απουσίας σύνθετου ελεγκτή δυναμικής μνήμης), προβλέψιμος χρόνος λειτουργίας υπορουτίνων και εντοπισμός σφαλμάτων απευθείας στη συσκευή απαιτούνται.

Σε συσκευές με μεγάλο όγκοΗ μνήμη εργασίας RAM εκτελείται ως DRAM. Το SRAM είναι αυτό που δημιουργεί καταχωρητές και κρυφή μνήμη.

DRAM (δυναμική μνήμη τυχαίας πρόσβασης)-- ένας τύπος πτητικής ημιαγωγικής μνήμης τυχαίας πρόσβασης (RAM), επίσης η συσκευή αποθήκευσης που χρησιμοποιείται ευρέως ως RAM στους σύγχρονους υπολογιστές.

Φυσικά, η μνήμη DRAM αποτελείται από κελιά που δημιουργούνται σε υλικό ημιαγωγών, καθένα από τα οποία μπορεί να αποθηκεύσει ένα συγκεκριμένο ποσό δεδομένων, από 1 έως 4 bit. Το σύνολο των κελιών μιας τέτοιας μνήμης σχηματίζει ένα υπό όρους "ορθογώνιο", που αποτελείται από έναν ορισμένο αριθμό σειρών και στηλών. Ένα τέτοιο «ορθογώνιο» ονομάζεται σελίδα και η συλλογή σελίδων ονομάζεται τράπεζα. Ολόκληρο το σύνολο των κυττάρων χωρίζεται υπό όρους σε διάφορες περιοχές.

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


Ρύζι. 3. Εικ. 3.1

Φυσικά, η μνήμη DRAM είναι ένα σύνολο κυψελών αποθήκευσης που αποτελούνται από πυκνωτές και τρανζίστορ που βρίσκονται μέσα σε τσιπ μνήμης ημιαγωγών.

Εάν δεν υπάρχει τροφοδοσία σε αυτόν τον τύπο μνήμης, οι πυκνωτές αποφορτίζονται και η μνήμη αδειάζεται (επαναφέρεται στο μηδέν). Για να διατηρηθεί η απαιτούμενη τάση στις πλάκες των πυκνωτών των κυψελών και να διατηρηθεί το περιεχόμενό τους, πρέπει να επαναφορτίζονται περιοδικά εφαρμόζοντας τάση σε αυτά μέσω διακοπτών τρανζίστορ μεταγωγής. Αυτή η δυναμική διατήρηση της φόρτισης του πυκνωτή είναι η θεμελιώδης αρχή λειτουργίας της μνήμης DRAM. Οι πυκνωτές φορτίζονται όταν γράφεται ένα bit στο "κελί" και αποφορτίζονται όταν ένα μηδενικό bit πρέπει να γραφεί στο "κελί".

Ένα σημαντικό στοιχείο αυτού του τύπου μνήμης είναι ένας ενισχυτής αίσθησης συνδεδεμένος σε κάθε μία από τις στήλες του «ορθογώνιου». Αυτός, αντιδρώντας στην ασθενή ροή ηλεκτρονίων που ορμούν μέσα από τα ανοιχτά τρανζίστορ από τις πλάκες πυκνωτών, διαβάζει ολόκληρη τη σελίδα. Είναι η σελίδα που είναι το ελάχιστο τμήμα ανταλλαγής με δυναμική μνήμη, επειδή η ανταλλαγή δεδομένων με ένα μόνο κελί είναι αδύνατη.

Αναγέννηση

Σε αντίθεση με τη στατική μνήμη τύπου SRAM (αγγλική στατική μνήμη τυχαίας πρόσβασης), η οποία είναι δομικά πιο περίπλοκη και πιο ακριβή τύπος μνήμης και χρησιμοποιείται κυρίως στην κρυφή μνήμη, η μνήμη DRAM κατασκευάζεται με βάση μικρούς πυκνωτές, οι οποίοι χάνουν γρήγορα τη φόρτιση, επομένως πληροφορίες πρέπει να ενημερώνεται σε συγκεκριμένα χρονικά διαστήματα για να αποφευχθεί η απώλεια δεδομένων. Αυτή η διαδικασία ονομάζεται αναγέννηση μνήμης. Εφαρμόζεται από έναν ειδικό ελεγκτή εγκατεστημένο στη μητρική πλακέτα ή στο τσιπ κεντρικός επεξεργαστής. Κατά τη διάρκεια ενός χρόνου που ονομάζεται βήμα ανανέωσης, μια ολόκληρη σειρά κελιών ξαναγράφεται στη μνήμη DRAM και μετά από 8-64 ms, όλες οι σειρές μνήμης ανανεώνονται.

Η διαδικασία της αναγέννησης της μνήμης σε κλασική έκδοσηεπιβραδύνει σημαντικά τη λειτουργία του συστήματος, καθώς αυτή τη στιγμή η ανταλλαγή δεδομένων με τη μνήμη είναι αδύνατη. Η αναγέννηση που βασίζεται στη συμβατική επανάληψη σειρών δεν χρησιμοποιείται στους σύγχρονους τύπους DRAM. Υπάρχουν πολλές πιο οικονομικές επιλογές για αυτή τη διαδικασία - προηγμένες, παρτίδες, διανεμημένες. Το πιο οικονομικό είναι η κρυφή (σκιώδης) αναγέννηση.

μνήμη cache ενεργοποίησης υπολογιστή

Ενεργοποιητές

Σκανδάλη (σύστημα σκανδάλης) -- κλάση ηλεκτρονικές συσκευές, έχοντας την ικανότητα να παραμένει σε μία από δύο ή περισσότερες σταθερές καταστάσεις για μεγάλο χρονικό διάστημα και να τις εναλλάσσει υπό την επιρροή εξωτερικά σήματα. Κάθε κατάσταση ενεργοποίησης αναγνωρίζεται εύκολα από την τιμή της τάσης εξόδου.

Από τη φύση της δράσης τους, οι σκανδαλισμοί ανήκουν σε παλμικές συσκευές - τα ενεργά στοιχεία τους (τρανζίστορ, λαμπτήρες) λειτουργούν στη λειτουργία μεταγωγής και η αλλαγή της κατάστασης διαρκεί πολύ μικρό χρονικό διάστημα.

Η μνήμη RAM που συλλέγεται σε flip-flops ονομάζεται στατική μνήμη τυχαίας πρόσβασης ή απλά στατική μνήμη. Το πλεονέκτημα αυτού του τύπου μνήμης είναι η ταχύτητα. Δεδομένου ότι οι σκανδάλες συναρμολογούνται σε πύλες και ο χρόνος καθυστέρησης της πύλης είναι πολύ μικρός, η αλλαγή της κατάστασης σκανδάλης γίνεται πολύ γρήγορα. Αυτός ο τύπος μνήμης δεν είναι χωρίς μειονεκτήματα. Πρώτον, η ομάδα των τρανζίστορ που συνθέτουν ένα flip-flop είναι πιο ακριβό, ακόμα κι αν είναι χαραγμένα σε εκατομμύρια σε ένα μόνο υπόστρωμα πυριτίου. Επιπλέον, μια ομάδα τρανζίστορ καταλαμβάνει πολύ περισσότερο χώρο επειδή οι γραμμές επικοινωνίας πρέπει να είναι χαραγμένες μεταξύ των τρανζίστορ που σχηματίζουν το flip-flop. Χρησιμοποιείται για εξαιρετικά γρήγορη μνήμη RAM.

□ tdost - χρόνος αναζήτησης πληροφοριών για το μέσο.

□ Vcount ~~ ταχύτητα ανάγνωσης γειτονικών byte πληροφοριών στη σειρά (μεταφορά). Ας θυμηθούμε τις γενικά αποδεκτές συντομογραφίες: s - second, ms - millisecond, μs - microsecond, ns - nanosecond; 1 s = 106ms = 106μs = 109ns.

Στατική και δυναμική RAM

Η μνήμη RAM μπορεί να κατασκευαστεί σε τσιπ τύπου δυναμικού (Dinamic Random Access Memory - DRAM) ή στατικής (Static Random Access Memory - SRAM).

ΣτατικόςΑυτός ο τύπος μνήμης έχει σημαντικά υψηλότερη απόδοση, αλλά είναι πολύ πιο ακριβός από τη δυναμική μνήμη. Στη στατική μνήμη, τα στοιχεία (κελιά) είναι χτισμένα σε διάφορους τύπους flip-flops - κυκλώματα με δύο σταθερές καταστάσεις. Αφού γράψετε λίγο σε ένα τέτοιο κελί, μπορεί να παραμείνει σε αυτήν την κατάσταση για όσο χρονικό διάστημα επιθυμείτε - το μόνο που απαιτείται είναι η παρουσία ισχύος. Κατά την πρόσβαση σε ένα τσιπ στατικής μνήμης, παρέχεται μια πλήρης διεύθυνση, η οποία, χρησιμοποιώντας έναν εσωτερικό αποκωδικοποιητή, μετατρέπεται σε σήματα δειγματοληψίας για συγκεκριμένες κυψέλες. Τα κύτταρα στατικής μνήμης έχουν μικρό χρόνο απόκρισης (αρκετά νανοδευτερόλεπτα), αλλά τα μικροκυκλώματα που βασίζονται σε αυτά έχουν χαμηλή ειδική χωρητικότητα (αρκετά megabit ανά περίπτωση) και υψηλή κατανάλωση ενέργειας. Επομένως, η στατική μνήμη χρησιμοποιείται κυρίως ως μνήμη μικροεπεξεργαστή και προσωρινή μνήμη (cache memory).

ΣΕ δυναμικόςΟι κυψέλες μνήμης κατασκευάζονται με βάση περιοχές ημιαγωγών με τη συσσώρευση φορτίων (ένα είδος πυκνωτών), καταλαμβάνουν πολύ μικρότερη περιοχή από τα flip-flops και δεν καταναλώνουν σχεδόν καθόλου ενέργεια κατά την αποθήκευση. Οι πυκνωτές βρίσκονται στη διασταύρωση των κάθετων και οριζόντιων ράβδων διαύλου της μήτρας. Η εγγραφή και η ανάγνωση πληροφοριών πραγματοποιείται με την εφαρμογή ηλεκτρικών παλμών κατά μήκος αυτών των διαύλων μήτρας που συνδέονται με τα στοιχεία που ανήκουν στην επιλεγμένη κυψέλη μνήμης. Κατά την πρόσβαση στο μικροκύκλωμα, η διεύθυνση της γραμμής μήτρας παρέχεται πρώτα στις εισόδους του, συνοδευόμενη από το σήμα RAS (Στροβοσκοπική διεύθυνση γραμμής) και, μετά από κάποιο χρονικό διάστημα, η διεύθυνση στήλης, συνοδευόμενη από το σήμα C AS (Στροβοσκοπική διεύθυνση στήλης). Δεδομένου ότι οι πυκνωτές εκφορτίζονται σταδιακά (το φορτίο αποθηκεύεται στην κυψέλη για αρκετά χιλιοστά του δευτερολέπτου), για να αποφευχθεί η απώλεια αποθηκευμένων πληροφοριών, το φορτίο σε αυτούς πρέπει να αναγεννάται συνεχώς, εξ ου και το όνομα της μνήμης - δυναμική. Η επαναφόρτιση σπαταλά ενέργεια και χρόνο και αυτό μειώνει την απόδοση του συστήματος.

Δυναμικά κύτταρα μνήμης σε σύγκριση με τη στατική μνήμη έχουν περισσότερο χρόνοαπόκριση (δεκάδες νανοδευτερόλεπτα), αλλά μεγαλύτερη ειδική πυκνότητα (της τάξης των δεκάδων megabit ανά περίπτωση) και χαμηλότερη κατανάλωση ενέργειας. Η δυναμική μνήμη χρησιμοποιείται για τη δημιουργία συσκευών μνήμης τυχαίας πρόσβασης στην κύρια μνήμη ενός υπολογιστή.

DIV_ADBLOCK23">

Οι μικροεπεξεργαστές, ξεκινώντας από το MP 80486, έχουν τη δική τους μνήμη cache (ή cache 1ου επιπέδου - L1) ενσωματωμένη στον κύριο πυρήνα MP, η οποία, ειδικότερα, καθορίζει την υψηλή απόδοσή τους. Οι μικροεπεξεργαστές Pentium διαθέτουν κρυφή μνήμη ξεχωριστά για δεδομένα και ξεχωριστά για οδηγίες: το Pentium έχει μικρή χωρητικότητα αυτής της μνήμης - 8 KB ο καθένας, ενώ το Pentium MMX έχει 16 KB ο καθένας. Το Pentium Pro και υψηλότερο, εκτός από την κρυφή μνήμη 1ου επιπέδου, έχει επίσης μια μνήμη cache 2ου επιπέδου (L2) ενσωματωμένη στην πλακέτα μικροεπεξεργαστή χωρητικότητας 128 έως 2048 KB. Αυτή η προσωρινή μνήμη στο τσιπ λειτουργεί είτε με πλήρη ταχύτητα ρολογιού MP είτε με ταχύτητα ρολογιού μισού MP.

Θα πρέπει να ληφθεί υπόψη ότι για όλα τα MP, μπορεί να χρησιμοποιηθεί πρόσθετη μνήμη cache του 2ου (L2) ή 3ου (L3) επιπέδου, που βρίσκεται στη μητρική πλακέτα έξω από το MP, η χωρητικότητα της οποίας μπορεί να φτάσει αρκετά megabyte (cache σε MB αναφέρεται στο επίπεδο 3, εάν το MP που είναι εγκατεστημένο σε αυτήν την πλακέτα έχει κρυφή μνήμη 2ου επιπέδου). Ο χρόνος πρόσβασης στην προσωρινή μνήμη εξαρτάται από συχνότητα ρολογιού, στην οποία λειτουργεί η κρυφή μνήμη και είναι συνήθως 1-2 κύκλοι ρολογιού. Έτσι, για την κρυφή μνήμη L1 ενός Pentium MP, ο χρόνος πρόσβασης είναι 2-5 ns, για τις κρυφές μνήμες L2 και L3 αυτός ο χρόνος φτάνει τα 10 ns. Το εύρος ζώνης της κρυφής μνήμης εξαρτάται τόσο από τον χρόνο πρόσβασης όσο και από το εύρος ζώνης της διεπαφής και κυμαίνεται ευρέως από 300 έως 3000 MB/s.

Η χρήση της προσωρινής μνήμης αυξάνει σημαντικά την απόδοση του συστήματος. Πως μεγαλύτερο μέγεθοςμνήμη cache, τόσο υψηλότερη είναι η απόδοση, αλλά αυτή η σχέση είναι μη γραμμική. Υπάρχει σταδιακή μείωση του ρυθμού ανάπτυξης του συνόλου

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

Σημείωση------

Οι σύγχρονοι υπολογιστές χρησιμοποιούν συχνά μνήμη cache μεταξύ εξωτερικών συσκευών αποθήκευσης δίσκου και μνήμης RAM, συνήθως επιπέδου 3, λιγότερο συχνά, εάν υπάρχει προσωρινή μνήμη L3 στη μητρική πλακέτα, επίπεδο 4. Η κρυφή μνήμη για το VSD δημιουργείται είτε στο πεδίο RAM είτε απευθείας στη μονάδα του ίδιου του VSD.

DIV_ADBLOCK25">

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

Κύρια μνήμη(ΕΠ) περιέχει λειτουργικό (ΕΜΒΟΛΟ- Μνήμη τυχαίας πρόσβασης) και μόνιμη (ROM- Συσκευές αποθήκευσης μόνο για ανάγνωση.

Μνήμη τυχαίας προσπέλασης(ΕΜΒΟΛΟ)έχει σχεδιαστεί για να αποθηκεύει πληροφορίες (προγράμματα και δεδομένα) που εμπλέκονται άμεσα στην υπολογιστική διαδικασία στο τρέχον χρονικό διάστημα. Η RAM είναι μια πτητική μνήμη: όταν η παροχή ρεύματος είναι απενεργοποιημένη, οι πληροφορίες που είναι αποθηκευμένες σε αυτήν χάνονται. Η βάση της RAM είναι τα δυναμικά τσιπ μνήμης DRAM. Αυτά είναι μεγάλα ολοκληρωμένα κυκλώματα, που περιέχει πίνακες μνήμης ημιαγωγών

στοιχεία - πυκνωτές ημιαγωγών. Η παρουσία φορτίου στον πυκνωτή συνήθως σημαίνει "1", η απουσία φορτίου σημαίνει "Ο". Δομικά, τα στοιχεία RAM κατασκευάζονται με τη μορφή χωριστών μονάδων μνήμης - μικρές πλακέτες με ένα ή, συχνότερα, πολλά μικροκυκλώματα κολλημένα πάνω τους. Αυτές οι μονάδες εισάγονται σε υποδοχές - υποδοχές στην πλακέτα συστήματος. Η μητρική πλακέτα μπορεί να έχει πολλές ομάδες υποδοχών (τράπεζες) για την εγκατάσταση μονάδων μνήμης. Μόνο μπλοκ της ίδιας χωρητικότητας μπορούν να τοποθετηθούν σε μία τράπεζα. μπλοκ διαφορετικής χωρητικότητας μπορούν να εγκατασταθούν σε διαφορετικές τράπεζες.

DIV_ADBLOCK26">

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

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

Οι μονάδες μνήμης συνοδεύονται από ισοτιμία και μη ισοτιμία των αποθηκευμένων bit δεδομένων. Ο έλεγχος ισοτιμίας σάς επιτρέπει μόνο να εντοπίσετε ένα σφάλμα και να διακόψετε την εκτέλεση του προγράμματος που εκτελείται. Υπάρχουν επίσης πιο ακριβές μονάδες μνήμης με αυτόματη διόρθωσησφάλματα - Μνήμη ECC που χρησιμοποιεί ειδικούς κωδικούς διόρθωσης σφαλμάτων (βλ. ενότητα «Διασφάλιση της αξιοπιστίας των πληροφοριών» στο Κεφάλαιο 20).

ΣΗΜΕΙΩΣΗ

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

https://pandia.ru/text/78/135/images/image006_129.gif" width="491">Τσιπ μνήμης τύπου DIP. Οι SIMM διατίθενται σε δύο διαφορετικούς τύπους: κοντές με 30 επαφές (μήκος 75 mm) και μακρύς με 72 επαφές (μήκος 100 mm). Οι μονάδες SIMM έχουν χωρητικότητα 256 KB, 1,4, 8, 16, 32 και 64 MB. Οι μονάδες SIMM είναι διαθέσιμες με ισοτιμία, χωρίς ισοτιμία και με εξομοίωση ισοτιμίας. Οι μονάδες SIMM διαφέρουν επίσης στην ταχύτητα - συνήθως έχουν χρόνο ολοκλήρωσης 60 και 70 ns, ο οποίος πλέον θεωρείται ανεπιθύμητος, γι' αυτό οι SIMM βρίσκονται μόνο σε παλαιότερους υπολογιστές.

DIMM(Διπλή μονάδα μνήμης διπλής γραμμής) - πιο σύγχρονες μονάδες με υποδοχές 168 ακίδων (μήκος μονάδας 130 mm). μπορεί να εγκατασταθεί μόνο σε εκείνους τους τύπους μητρικών πλακών που διαθέτουν τις κατάλληλες υποδοχές. Η εμφάνιση των DIMMs υποκινήθηκε από τη χρήση Επεξεργαστές Pentiumέχοντας ένα δίαυλο δεδομένων 64-bit. Ο απαιτούμενος αριθμός μονάδων μνήμης για την πλήρωση του διαύλου ονομάζεται τράπεζα μνήμης. Για έναν δίαυλο 64 bit, αυτό απαιτεί δύο SIMM 72 ακίδων 32 bit ή ένα DIMM 168 ακίδων 64 bit. Το DIMM μπορεί να είναι 64-bit (χωρίς ισοτιμία), 72-bit (ισοτιμία) ή 80-bit (μνήμη ECC). Χωρητικότητα DIMM: 16, 32, 64.128, 256 και 512 MB. Το χαρακτηριστικό χρόνου κυκλοφορίας των σύγχρονων μονάδων DIMM που λειτουργούν σε συχνότητες 100 και 133 MHz (μονάδες PC100, PC133) κυμαίνεται από 6-10 ns.

RIMM(Rambus In line Memory Module) - ο πιο πρόσφατος τύπος μνήμης RAM. Η εμφάνιση της μνήμης Direct Rambus DRAM απαιτούσε έναν νέο σχεδιασμό για τις μονάδες μνήμης. Τα τσιπ Direct RDRAM συναρμολογούνται σε μονάδες RIMM, οι οποίες είναι παρόμοιες στην εμφάνιση με τις τυπικές μονάδες DIMM, το οποίο, παρεμπιπτόντως, αντικατοπτρίζεται στο όνομα των μονάδων του νέου σχεδιασμού. Η πλακέτα της μονάδας RIMM μπορεί να έχει έως και 16 τσιπ μνήμης Direct RDRAM, οκτώ εγκατεστημένα σε κάθε πλευρά της πλακέτας. Τα RIMM μπορούν να χρησιμοποιηθούν σε μητρικές πλακέτες ATX των οποίων το BIOS και τα chipset έχουν σχεδιαστεί να υποστηρίζουν αυτού του τύπουμνήμη. Μεταξύ των τσιπ της Intel αυτά είναι τα chipset i820, i840, i850 και οι τροποποιήσεις τους. Η πλακέτα συστήματος μπορεί να έχει έως και τέσσερις υποδοχές για αυτές τις μονάδες. Πρέπει να σημειωθεί ότι τα RIMM απαιτούν εντατική ψύξη. Αυτό οφείλεται στη σημαντική κατανάλωση ενέργειας και, κατά συνέπεια, στην παραγωγή θερμότητας, η οποία οφείλεται στην υψηλή απόδοση αυτών των μονάδων μνήμης (χρόνος πρόσβασης 5 ή λιγότερο). Αν και οι RIMM μοιάζουν εξωτερικά με DIMM, έχουν λιγότερους ακροδέκτες και καλύπτονται και στις δύο πλευρές με ειδικές μεταλλικές ασπίδες που προστατεύουν τις RIMM που λειτουργούν σε υψηλές συχνότητες προστατεύοντας τα ευαίσθητα ηλεκτρονικά κυκλώματά τους από εξωτερικές ηλεκτρομαγνητικές παρεμβολές. Επί του παρόντος, οι προδιαγραφές ορίζουν τρεις τύπους μονάδων, που διαφέρουν ως προς τις συχνότητες λειτουργίας και το εύρος ζώνης. Χαρακτηρίζονται ως RIMM PC800, RIMM PC700, RIMM PC600. Οι πιο γρήγορες είναι οι μονάδες RIMM PC800, που λειτουργούν με το chipset i850, σε συχνότητα εξωτερικού ρολογιού 400 MHz και με εύρος ζώνης 1,6 GB/s. Ενότητες

Τα RIMM PC600 και RIMM PC700 έχουν σχεδιαστεί για να λειτουργούν σε υψηλότερες συχνότητες διαύλου μνήμης, για παράδειγμα στα 133 MHz, που υποστηρίζονται από σύγχρονα chipset.

Τύποι RAM

Διακρίνονται οι ακόλουθοι τύποι RAM:

□ DRDRAM και. δ.τ.

FPM DRAM

FPM ΔΡΑΜΙ(Fast Page Mode DRAM) - δυναμική μνήμη με γρήγορη πρόσβαση στη σελίδα, που χρησιμοποιείται ενεργά με τους μικροεπεξεργαστές 80386 και 80486. Η μνήμη με πρόσβαση σελίδας διαφέρει από τη συμβατική δυναμική μνήμη στο ότι μετά την επιλογή μιας γραμμής μήτρας και κρατώντας πατημένο το RAS, επιτρέπει πολλαπλές ρυθμίσεις της διεύθυνσης της στήλης φυλάσσεται από το CAS. Αυτό επιτρέπει ταχύτερες μεταφορές μπλοκ όταν το σύνολο ή μέρος ενός μπλοκ δεδομένων περιέχεται σε μία μόνο γραμμή ενός πίνακα, που ονομάζεται σελίδα σε αυτό το σύστημα. Υπάρχουν δύο τύποι FPM DRAM, που διαφέρουν ως προς τον χρόνο πρόσβασης: 60 και 70 ns. Λόγω της βραδύτητάς τους, δεν είναι αποτελεσματικά σε συστήματα με επεξεργαστές επιπέδου Pentium II. Οι μονάδες DRAM FPM κατασκευάστηκαν κυρίως στο σχέδιο SIMM.

ΕΜΒΟΛΟ EDO

ΕΜΒΟΛΟ EDO(EDO - Extended Data Out, εκτεταμένος χρόνος διατήρησης δεδομένων στην έξοδο), είναι στην πραγματικότητα ένα κανονικό τσιπ FPM, στο οποίο έχει προστεθεί ένα σύνολο μανδαλωμένων καταχωρητών, έτσι ώστε τα δεδομένα εξόδου να μπορούν να διατηρηθούν κατά την επόμενη αίτηση στο τσιπ. Κατά την ανταλλαγή σελίδων, τέτοια μικροκυκλώματα λειτουργούν σε λειτουργία απλής διοχέτευσης: κρατούν τα περιεχόμενα του τελευταίου επιλεγμένου κελιού στην έξοδο, ενώ η διεύθυνση του επόμενου επιλεγμένου κελιού παρέχεται ήδη στις εισόδους τους. Αυτό καθιστά δυνατή την επιτάχυνση της διαδικασίας ανάγνωσης διαδοχικών συστοιχιών δεδομένων κατά περίπου 15% σε σύγκριση με το FPM. Με την τυχαία διευθυνσιοδότηση, μια τέτοια μνήμη δεν παρέχει κανένα κέρδος απόδοσης. Η μνήμη του τύπου RAM EDO έχει ελάχιστο χρόνο πρόσβασης 45 ns και μέγιστο ρυθμό μεταφοράς δεδομένων μέσω του καναλιού μνήμης επεξεργαστή 264 MB/s. Οι μονάδες RAM EDO κατασκευάστηκαν σε σχέδια SIMM και DIMM.

BEDO DRAM

BEDO DRAM(Burst Extended Data Output, EDO με πρόσβαση μπλοκ). Σύγχρονοι επεξεργαστές χάρη στην εσωτερική και εξωτερική προσωρινή αποθήκευση εντολών

και τα δεδομένα ανταλλάσσονται με την κύρια μνήμη κυρίως σε μπλοκ λέξεων μέγιστου μήκους. Αυτός ο τύπος μνήμης επιτρέπει την ανάγνωση δεδομένων σε παρτίδες (μπλοκ), έτσι ώστε τα δεδομένα να διαβάζονται σε μπλοκ σε έναν κύκλο ρολογιού. Στην περίπτωση της μνήμης BEDO, δεν χρειάζεται να τροφοδοτείτε συνεχώς διαδοχικές διευθύνσεις στις εισόδους των μικροκυκλωμάτων, ενώ τηρείτε τις απαραίτητες χρονικές καθυστερήσεις - αρκεί να κάνετε πύλη τη μετάβαση στην επόμενη λέξη του μπλοκ. Αυτή η μέθοδος επιτρέπει στο BEDO DRAM να λειτουργεί πολύ γρήγορα. Η μνήμη BEDO DRAM υποστηρίζεται από ορισμένα chipset της VIA Apollo (580VP, 590VP, 680VP) και της Intel (i480TX, κ.λπ.) σε συχνότητα διαύλου όχι μεγαλύτερη από 66 MHz. Αυτός ο τύπος μνήμης ανταγωνίζεται ενεργά τη μνήμη SDRAM, η οποία σταδιακά την αντικαθιστά. Το BEDO DRAM αντιπροσωπεύεται από τις δύο μονάδες SIMM και DIMM.

SDRAMΣύγχρονη DRAM (σύγχρονη δυναμική μνήμη), σύγχρονη μνήμη πρόσβασης, αυξάνει την απόδοση του συστήματος συγχρονίζοντας την ταχύτητα της μνήμης RAM με την ταχύτητα του διαύλου επεξεργαστή. Η SDRAM εκτελεί επίσης διοχετευτική επεξεργασία πληροφοριών· η συστοιχία μνήμης χωρίζεται εσωτερικά σε δύο ανεξάρτητες τράπεζες, οι οποίες σας επιτρέπουν να συνδυάσετε τη δειγματοληψία από μια τράπεζα με τον ορισμό μιας διεύθυνσης σε άλλη τράπεζα. Το SDRAM υποστηρίζει επίσης την εναλλαγή μπλοκ. Το κύριο πλεονέκτημα της χρήσης SDRAM είναι η υποστήριξη διαδοχικής πρόσβασης σε σύγχρονη λειτουργία, όπου μπορούν να εξαλειφθούν πρόσθετοι κύκλοι αναμονής. Η μνήμη SDRAM μπορεί να λειτουργεί σταθερά σε υψηλές συχνότητες: είναι διαθέσιμες μονάδες που έχουν σχεδιαστεί για να λειτουργούν σε συχνότητες 100 MHz (προδιαγραφή PC100) και 133 MHz (PC133). Στις αρχές του 2000, η ​​Samsung ανακοίνωσε την κυκλοφορία νέων τσιπ SDRAM με συχνότητα λειτουργίας 266 MHz. Ο χρόνος πρόσβασης σε δεδομένα σε αυτή τη μνήμη εξαρτάται από την εσωτερική συχνότητα ρολογιού του MP και φτάνει τα 5-10 ns· ο μέγιστος ρυθμός μεταφοράς δεδομένων επεξεργαστή-μνήμης σε συχνότητα διαύλου 100 MHz είναι 800 MB/s (στην πραγματικότητα ίσος με τα δεδομένα ρυθμός μεταφοράς μέσω του καναλιού της προσωρινής μνήμης επεξεργαστή). Η μνήμη SDRAM παρέχει συνολική αύξηση στην απόδοση του υπολογιστή κατά περίπου 25 %. Είναι αλήθεια ότι αυτός ο αριθμός αναφέρεται στη λειτουργία ενός υπολογιστή χωρίς προσωρινή μνήμη - εάν υπάρχει ισχυρή κρυφή μνήμη, το κέρδος απόδοσης μπορεί να είναι μόνο μερικά τοις εκατό. Η SDRAM συνήθως διατίθεται σε μονάδες τύπου DIMM 168 ακίδων. Χρησιμοποιείται όχι μόνο ως RAM, αλλά και ως μνήμη για προσαρμογείς βίντεο, όπου είναι χρήσιμο όταν παρακολουθείτε ζωντανά βίντεο και όταν εργάζεστε με τρισδιάστατα γραφικά.

DDR SDRAM

DDR SDRAM(Double Data Rate SDRAM - SDRAM 2). Μια παραλλαγή της μνήμης SDRAM που μεταφέρει πληροφορίες και στις δύο άκρες του σήματος ρολογιού. Αυτό επιτρέπει το διπλάσιο του εύρους ζώνης της παραδοσιακής SDRAM (έως 1,6 GB/s σε ταχύτητα διαύλου 100 MHz). Επιπλέον, το DDR SDRAM μπορεί να λειτουργήσει σε περισσότερα υψηλή συχνότητα- στις αρχές του 2000, κυκλοφόρησαν μονάδες DDR SDRAM 64 Mbit 143, 166 και 183 MHz. Μονάδες DDRΟι DRAM έχουν σχεδιαστεί για να είναι συμβατές με τις παραδοσιακές DIMM 168 ακίδων. Χρήση

Χρησιμοποιείται όχι μόνο ως στοιχεία RAM, αλλά και σε προσαρμογείς βίντεο υψηλής απόδοσης. Τώρα επικεντρώνονται κυρίως στην αγορά προσαρμογέων βίντεο.

DRDRAM(Direct Rambus DRAM - δυναμική μνήμη με άμεσο δίαυλο για RAM). Η DRDRAM είναι ένας πολλά υποσχόμενος τύπος RAM που παρέχει σημαντική αύξηση στην απόδοση του υπολογιστή. Η υψηλή απόδοση της άμεσης μνήμης RDRAM επιτυγχάνεται από μια σειρά λειτουργιών που δεν υπάρχουν σε άλλους τύπους. Συγκεκριμένα, η χρήση του δικού του διαύλου RAM δύο byte με συχνότητα 800 MHz, παρέχοντας μέγιστη απόδοση έως και 1,6 GB/s. Ο ελεγκτής μνήμης Direct RDRAM διαχειρίζεται τον δίαυλο Rambus και παρέχει μετατροπή του πρωτοκόλλου 800 MHz σε τυπική διασύνδεση 64 bit με συχνότητα διαύλου έως 200 MHz. Η Intel κυκλοφόρησε chipsets i820, i840, i850 με υποστήριξη. DRDRAM Direct RDRAM - Οι μονάδες RIMM είναι παρόμοιες στην εμφάνιση με τις μονάδες DIMM. Η μαζική παραγωγή μνήμης DRDRAM και η εντατική χρήση της σε υπολογιστές αναμένεται στο εγγύς μέλλον.

Συσκευές αποθήκευσης μόνο για ανάγνωση

Μνήμη μόνο για ανάγνωση (ROMή ROM - Ανάγνωση Μόνο Μνήμη, μνήμη μόνο για ανάγνωση) βασίζεται επίσης σε μονάδες (κασέτες) εγκατεστημένες στη μητρική πλακέτα και χρησιμοποιείται για την αποθήκευση αμετάβλητων πληροφοριών: προγράμματα εκκίνησηςλειτουργικό σύστημα, προγράμματα δοκιμών συσκευών υπολογιστή και ορισμένα προγράμματα οδήγησης βασικό σύστημαείσοδος/έξοδος (BIOS) κ.λπ.

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

□ μικροκυκλώματα που μπορούν να προγραμματιστούν μόνο τη στιγμή της κατασκευής - κλασική ή με μάσκα ROM ή ROM.

□ μικροκυκλώματα προγραμματισμένα μία φορά σε εργαστηριακές συνθήκες - περίπου
προγραμματιζόμενη ROM (PROM) ή προγραμματιζόμενη ROM (PROM).

□ μικροκυκλώματα που μπορούν να προγραμματιστούν πολλές φορές - επαναπρογραμματιζόμενη ROM
ή διαγράψιμο PROM (EPROM). Μεταξύ αυτών, πρέπει να σημειωθεί ηλεκτρικά
επαναπρογραμματιζόμενα τσιπ EEPROM (Electrical Erasable PROM), συμπεριλαμβανομένων
αριθμός Μνήμη FLASH(Μνήμη FLASH).

Οι μονάδες και οι κασέτες ROM που είναι εγκατεστημένες στη μητρική πλακέτα υπολογιστή έχουν χωρητικότητα, κατά κανόνα, που δεν υπερβαίνει τα 128 KB. Η απόδοση της μόνιμης μνήμης είναι χαμηλότερη από αυτή της μνήμης τυχαίας πρόσβασης, επομένως, για να αυξηθεί η απόδοση, τα περιεχόμενα της ROM αντιγράφονται στη μνήμη RAM και μόνο αυτό το αντίγραφο, που ονομάζεται επίσης μνήμη σκιών ROM (Shadow ROM).

Επί του παρόντος, οι υπολογιστές χρησιμοποιούν ημιμόνιμες, επαναπρογραμματιζόμενες συσκευές αποθήκευσης - μνήμη FLASH. Οι μονάδες ή οι κάρτες μνήμης FLASH μπορούν να εγκατασταθούν απευθείας στις υποδοχές της μητρικής πλακέτας και έχουν τις ακόλουθες παραμέτρους: χωρητικότητα από 32 KB έως 15 MB (χρησιμοποιούνται έως και 128 KB στη ROM), χρόνος πρόσβασης ανάγνωσης 0,035-0,2 μs, χρόνος εγγραφής ανά byte 2 -10 µs; Η μνήμη FLASH είναι μια μη πτητική συσκευή αποθήκευσης. Ένα παράδειγμα τέτοιας μνήμης είναι η NVRAM - Non Volatile RAM με ταχύτητα εγγραφής 500 KB/s. Συνήθως, για να ξαναγράψετε πληροφορίες, είναι απαραίτητο να εφαρμόσετε μια τάση προγραμματισμού (12 V) σε μια ειδική είσοδο μνήμης FLASH, η οποία εξαλείφει την πιθανότητα τυχαίας διαγραφής πληροφοριών. Ο επαναπρογραμματισμός της μνήμης FLASH μπορεί να πραγματοποιηθεί απευθείας από δισκέτα ή από πληκτρολόγιο υπολογιστή, εάν υπάρχει ειδικός ελεγκτής, ή από εξωτερικό προγραμματιστή συνδεδεμένο σε υπολογιστή. Η μνήμη FLASH μπορεί να είναι πολύ χρήσιμη για τη δημιουργία πολύ υψηλής ταχύτητας, συμπαγούς, εναλλακτικών συσκευών αποθήκευσης NMD - “ δίσκους στερεάς κατάστασης”, και για να αντικαταστήσετε τη ROM που αποθηκεύει τα προγράμματα του BIOS, επιτρέποντάς σας να ενημερώσετε και να αντικαταστήσετε αυτά τα προγράμματα με νεότερες εκδόσεις «απευθείας από δισκέτα» κατά την αναβάθμιση του υπολογιστή σας.

Λογική δομή της κύριας μνήμης

Δομικά, η κύρια μνήμη αποτελείται από εκατομμύρια μεμονωμένα κύτταραμνήμη χωρητικότητας 1 byte το καθένα. Η συνολική χωρητικότητα της κύριας μνήμης των σύγχρονων Η/Υ κυμαίνεται συνήθως από 16 έως 512 MB. Η χωρητικότητα της RAM είναι μία ή δύο τάξεις μεγέθους μεγαλύτερη από τη χωρητικότητα της ROM: η ROM καταλαμβάνει 128 KB, η υπόλοιπη RAM. Κάθε κελί μνήμης έχει τη δική του μοναδική (διαφορετική από όλες τις άλλες) διεύθυνση. Η κύρια μνήμη έχει έναν ενιαίο χώρο διευθύνσεων για RAM και ROM.

Χώρος διευθύνσεωνκαθορίζει το μέγιστο πιθανή ποσότηταάμεσα διευθυνσιοδοτούμενα κύρια κελιά μνήμης. Ο χώρος διευθύνσεων εξαρτάται από το πλάτος των διαύλων διευθύνσεων, επειδή ο μέγιστος αριθμός διαφορετικές διευθύνσειςορίζεται από την ποικιλομορφία δυαδικούς αριθμούς, το οποίο μπορεί να εμφανιστεί σε Π bits, δηλαδή ο χώρος διευθύνσεων είναι 2", όπου Π- μέγεθος bit διεύθυνσης. Ο υπολογιστής βασίζεται σε έναν κωδικό διεύθυνσης 16-bit, ίσο σε μήκος με το μέγεθος μιας λέξης μηχανής. Με έναν κωδικό διεύθυνσης 16-bit, μπορούν να διευθυνσιοδοτηθούν απευθείας συνολικά 4Κ (K = 1024) θέσεις μνήμης. Αυτό είναι ένα πεδίο μνήμης 64 kilobyte, το λεγόμενο τμήμα,είναι επίσης βασικό στη λογική δομή του Ε.Π. Θα πρέπει να σημειωθεί ότι σε προστατευμένη λειτουργίαΤο μέγεθος του τμήματος μπορεί να είναι διαφορετικό και να υπερβαίνει σημαντικά τα 64 KB.

Σύγχρονοι υπολογιστές (εκτός από τους πιο απλούς) οικιακούς υπολογιστές) έχουν μια κύρια μνήμη με χωρητικότητα σημαντικά μεγαλύτερη από 1 MB: η μνήμη με χωρητικότητα 1 MB είναι ένα άλλο σημαντικό δομικό στοιχείο του OP - ας το ονομάσουμε άμεσα διευθυνσιοδοτούμενη μνήμη (αυτό ισχύει απολύτως μόνο για πραγματικό εκ νέουπρέσα πάγκου).Για τη διευθυνσιοδότηση 1 MB = 220 = 1 κελιά απευθείας διευθυνσιοδοτούμενης μνήμης, απαιτείται ένας κώδικας 20 bit, ο οποίος λαμβάνεται σε έναν υπολογιστή με τη χρήση ειδικών τεχνικών για τη δόμηση των διευθύνσεων των κυψελών OP.

Απόλυτος(πλήρης, φυσική) διεύθυνσηΤο (Aabs) σχηματίζεται ως το άθροισμα πολλών στοιχείων, τα πιο συχνά χρησιμοποιούμενα από τα οποία είναι: διεύθυνση τμήματος και διεύθυνση μετατόπισης.

Διεύθυνση τμήματος(ACCgm) είναι η αρχική διεύθυνση του πεδίου των 64 kilobyte εντός του οποίου βρίσκεται το κελί που απευθύνεται.

Διεύθυνση όφσετ(Aasm) είναι η σχετική διεύθυνση 16-bit ενός κελιού μέσα σε ένα τμήμα.

Το Acegm πρέπει να είναι 20-bit, αλλά αν δεχθούμε την προϋπόθεση ότι το AceGm πρέπει να είναι πολλαπλάσιο της παραγράφου (πρέπει να περιέχει μηδενικά στα τέσσερα τελευταία bit), τότε αυτή η διεύθυνση μπορεί να προσδιοριστεί μοναδικά από έναν κωδικό 16-bit, αυξημένο κατά 16 φορές, που ισοδυναμεί με το δεξί του, συμπληρώνει τέσσερα μηδενικά και έτσι το μετατρέπει σε κώδικα 20-bit. Δηλαδή, μπορούμε να γράψουμε υπό όρους:

Aabs = 16 X Acegm + Aasm.

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

Στους σύγχρονους υπολογιστές υπάρχει μια λειτουργία εικονική διεύθυνση(Εικονικό - φαινομενικό, φανταστικό). Η εικονική διευθυνσιοδότηση χρησιμοποιείται για την αύξηση του χώρου διευθύνσεων ενός υπολογιστή εάν υπάρχει ΕΠ μεγάλη χωρητικότητα (απλόςεικονική διεύθυνση) ή κατά την οργάνωση εικονική μνήμη,που μαζί με το OP περιλαμβάνει και μέρος της εξωτερικής (συνήθως δίσκου) μνήμης. Με την εικονική διεύθυνση, αντί για την αρχική διεύθυνση του τμήματος Acgm, ένας κωδικός διεύθυνσης πολλαπλών bit, που διαβάζεται από ειδικούς πίνακες, συμμετέχει στον σχηματισμό της απόλυτης διεύθυνσης Aabe. Η αρχή της απλής εικονικής διεύθυνσης μπορεί να εξηγηθεί ως εξής. Ο καταχωρητής τμήματος (συνήθως ο καταχωρητής DS) δεν περιέχει Acegm, αλλά έναν επιλογέα με τη δομή:

https://pandia.ru/text/78/135/images/image011_103.gif" width="490 height=2" height="2">Εδώ το SL είναι βοηθητικές πληροφορίες υπηρεσίας· το F είναι ένα αναγνωριστικό που καθορίζει τον τύπο πίνακας περιγραφών για το σχηματισμό του AseGm (οι πίνακες περιγραφών δημιουργούνται στο ΕΠ αυτόματα κατά τη διάρκεια της εικονικής διευθυνσιοδότησης):

□ εάν F = 0, τότε χρησιμοποιείται ο γενικός πίνακας περιγραφών (GDT), ένας κοινός
για όλες τις εργασίες που επιλύονται σε υπολογιστή σε λειτουργία πολλαπλών προγραμμάτων.

□ εάν F = 1, τότε χρησιμοποιείται ο τοπικός πίνακας περιγραφών (LDT), δημιουργώντας
ξεχωριστά για κάθε εργασία.

□ INDEX - η διεύθυνση μιας σειράς στον πίνακα περιγραφών.

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

Η τοποθέτηση πληροφοριών στη μνήμη RAM (μείωση χαρακτηριστικού τμηματοποίησης της λειτουργίας πολυπρογραμματισμού) χρησιμοποιείται συχνά τμήμα-χώραπρόσωπο με πρόσωποδιευθυνσιοδότηση, στην οποία τα πεδία μνήμης εκχωρούνται σε προγράμματα εντός τμημάτων σε σελίδες που κυμαίνονται σε μέγεθος από 2 έως 4 KB. Ο σχηματισμός της δομής διεύθυνσης τμήματος-σελίδας εκτελείται αυτόματα από το λειτουργικό σύστημα.

Η εικονική μνήμη δημιουργείται όταν δεν υπάρχει επαρκής ποσότητα μνήμης RAM, η οποία δεν επιτρέπει να τοποθετηθούν σε αυτήν όλες οι απαραίτητες πληροφορίες για την εργασία που εκτελείται ταυτόχρονα. Κατά τη φόρτωση της επόμενης εργασίας στη μνήμη RAM, πρέπει να την εκτελέσετε διανομήπόρους μηχανής, ιδιαίτερα τη μνήμη RAM, μεταξύ των στοιχείων των εργασιών που επιλύονται ταυτόχρονα (κατ' αρχήν, η μνήμη RAM μπορεί να μην είναι αρκετή για την επίλυση ενός πολύπλοκου προβλήματος). Κατά την προετοιμασία προγραμμάτων, χρησιμοποιούνται διευθύνσεις υπό όρους, οι οποίες στη συνέχεια πρέπει να συνδεθούν σε μια συγκεκριμένη θέση στη μνήμη. Η εκχώρηση μνήμης μπορεί να γίνει είτε σε στατικόςλειτουργία πριν φορτώσετε το πρόγραμμα στο OP ή στο δυναμικόςλειτουργία αυτόματα κατά τη φόρτωση του προγράμματος. Η εκχώρηση στατικής μνήμης απαιτεί πολύ κόπο, επομένως χρησιμοποιείται σπάνια. Εάν είναι προφανές ότι η πραγματική μνήμη είναι μικρότερη από τον χώρο διευθύνσεων που απαιτείται από το πρόγραμμα, ο προγραμματιστής μπορεί χειροκίνητα να σπάσει το πρόγραμμα σε μέρη που καλούνται στο OP όπως απαιτείται - να δημιουργήσει επικάλυμμαδομή του προγράμματος. Συνήθως, χρησιμοποιείται η λειτουργία δυναμικής εκχώρησης μνήμης.

Κατά τη δυναμική εκχώρηση μνήμης σε περίπτωση ανεπαρκούς χωρητικότητας OP, είναι χρήσιμο να χρησιμοποιείται εικονική μνήμη.Στη λειτουργία εικονικής μνήμης, ο χρήστης δεν ασχολείται με τη φυσική RAM που είναι πραγματικά διαθέσιμη στον υπολογιστή, αλλά με εικονικόςχωρίς (φαινομενική) μνήμη ενός επιπέδου,του οποίου η χωρητικότητα είναι ίση με ολόκληρο τον χώρο διευθύνσεων του μικροεπεξεργαστή. Σε όλα τα στάδια προετοιμασίας του προγράμματος, συμπεριλαμβανομένης της φόρτωσής του στη μνήμη RAM, το πρόγραμμα χρησιμοποιεί εικονικές διευθύνσεις και μόνο όταν εκτελείται απευθείας η εντολή του μηχανήματος, εκτελείται η μετατροπή εικονικές διευθύνσειςστις πραγματικές φυσικές διευθύνσεις του Ε.Π. Στην πραγματικότητα, το πρόγραμμα μπορεί να βρίσκεται εν μέρει στη μνήμη RAM, εν μέρει στην εξωτερική μνήμη. Η τεχνολογία οργάνωσης εικονικής μνήμης είναι η εξής. Η φυσική μνήμη RAM και ο δίσκος (που εμπλέκονται στην εργασία) και η εικονική μνήμη χωρίζονται σε σελίδες ίδιου μεγέθους, 4 KB η καθεμία. Στις σελίδες εικονικής και φυσικής μνήμης εκχωρούνται αριθμοί που παραμένουν ίδιοι για όλη την περίοδο επίλυσης του προβλήματος. Το λειτουργικό σύστημα δημιουργεί δύο πίνακες:

□ σελίδες εικονικής μνήμης.

□ φυσική τοποθέτηση σελίδων,

και δημιουργεί λογικές συνδέσεις μεταξύ τους (Εικ. 6.2).

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

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

Πίνακας σελίδων φυσική μνήμη

Βρίσκεται στη μνήμη

Φυσική σελίδα αρ.


Ρύζι. 6.2.Πίνακας σελίδων

Στατική RAM

Η στατική μνήμη (SRAM) είναι μια πτητική ημιαγωγική μνήμη τυχαίας πρόσβασης στην οποία κάθε bit αποθηκεύεται σε ένα flip-flop που επιτρέπει στο bit να διατηρείται χωρίς συνεχή επανεγγραφή. Για την οργάνωση της ανάγνωσης και της γραφής από μια κυψέλη μνήμης, χρησιμοποιούνται επιπλέον τρία ή περισσότερα τρανζίστορ.

1. Συσκευή σκανδάλης.

Για να κατανοήσουμε την αρχή της λειτουργίας της στατικής μνήμης, ας στραφούμε στις απαρχές του σχεδιασμού κυκλωμάτων. Και ας ξεκινήσουμε με μια περιγραφή της αρχής λειτουργίας της σκανδάλης που φαίνεται στο σχήμα 1.

Η σκανδάλη είναι ένα στοιχείο μνήμης με δύο σταθερές καταστάσεις - "0" και "1". Η σκανδάλη παραμένει στην εγκατεστημένη κατάσταση για όσο διάστημα τροφοδοτείται με ρεύμα.

Συνήθως μια σκανδάλη έχει δύο εισόδους:

  • R (Επαναφορά) – επαναφέρετε τη σκανδάλη (ρυθμίστε σε "0"),
  • S (Set) – ρυθμίστε τη σκανδάλη σε κατάσταση "1",

και δύο εξόδους: Q και ανεστραμμένη Q().

Οι είσοδοι R και S χρησιμοποιούνται για τον ορισμό της κατάστασης ενεργοποίησης. Εάν μια τάση που αντιστοιχεί σε μια λογική (εφεξής απλώς μια λογική) εφαρμόζεται στην είσοδο S και μια τάση που αντιστοιχεί σε ένα λογικό μηδέν (εφεξής απλώς ένα λογικό μηδέν) εφαρμόζεται στην είσοδο R, τότε το flip-flop θα μεταβείτε στη μία κατάσταση και διατηρήστε αυτήν την κατάσταση ακόμα κι αν η είσοδος S σταματήσει να εκπέμπει ηχητικό σήμα.

Εάν εφαρμοστεί ένα λογικό μηδέν στην είσοδο S και ένα λογικό στην είσοδο R, τότε το flip-flop θα μεταβεί στην κατάσταση μηδενικής αποθήκευσης.

Όταν εφαρμόζεται ένα λογικό μηδέν και στις δύο εισόδους, η κατάσταση της σκανδάλης δεν θα αλλάξει.

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

Ο Πίνακας 1 παραθέτει όλες τις πιθανές καταστάσεις ενεργοποίησης.

μικρό R Qi Qi+1 Εγώ i+1
1 0 0 1 1 0
1 0 1 1 0 0
0 1 0 0 1 1
0 1 1 0 0 1
0 0 0 0 1 1
0 0 1 1 0 0
1 1 0 ? 1 ?
1 1 1 ? 0 ?

Πίνακας 1. Καταστάσεις ενεργοποίησης, ανάλογα με τα σήματα εισόδου.

Έχοντας εξετάσει τη λογική της σκανδάλης, ας καταλάβουμε πώς λειτουργεί. Το μπλοκ διάγραμμα της σκανδάλης φαίνεται στο σχήμα 2.

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

Ας δούμε πώς λειτουργούν αυτοί οι μετατροπείς κατά την εφαρμογή διαφορετικών σημάτων στην είσοδο.

Στην πρώτη περίπτωση, ένα λογικό εφαρμόζεται στην είσοδο S και ένα λογικό μηδέν εφαρμόζεται στην είσοδο R, δηλαδή, η σκανδάλη έχει ρυθμιστεί στην κατάσταση μονάδας. Και έτσι, εάν εφαρμοστεί μια λογική τιμή στην είσοδο S, τότε, έχοντας περάσει από τον μετατροπέα D.D2, θα πάρει την τιμή του λογικού μηδέν. Έτσι, η έξοδος θα είναι λογικά μηδέν. Εφαρμόστηκε ένα λογικό μηδέν στην είσοδο R, ως αποτέλεσμα, η έξοδος του μετατροπέα D.D1 θα είναι λογική και, κατά συνέπεια, η έξοδος Q θα είναι επίσης λογική.

Εάν αφαιρεθούν τα σήματα από τις εισόδους (ένα λογικό μηδέν εφαρμόζεται στις εισόδους S και R), τότε η κατάσταση της σκανδάλης δεν θα αλλάξει. Ένα λογικό μηδέν από την έξοδο του μετατροπέα D.D1 θα πάει στην είσοδο του μετατροπέα D.D2 και ένα λογικό μηδέν από την έξοδο του D.D2 θα πάει στην είσοδο του μετατροπέα D.D1, με αποτέλεσμα μια λογική τιμή στο την έξοδο του μετατροπέα D.D1. Δηλαδή έχουμε κλείσει έναν κύκλο που θα συνεχίζεται όσο τροφοδοτείται με ρεύμα η σκανδάλη. Θα εξετάσουμε γιατί χρειάζεται ρεύμα λίγο αργότερα, όταν εξετάσουμε την αρχή του μετατροπέα.

Ας εξετάσουμε τη δεύτερη περίπτωση, όταν εφαρμόζεται ένα λογικό μηδέν στην είσοδο S, και ένα λογικό εφαρμόζεται στην είσοδο R, δηλαδή γίνεται επαναφορά της σκανδάλης. Και έτσι, αν εφαρμοστεί ένα λογικό μηδέν στην είσοδο S, τότε, έχοντας περάσει από τον μετατροπέα D.D2, θα πάρει την τιμή ενός λογικού. Έτσι, η έξοδος θα είναι λογική. Εφαρμόστηκε ένα λογικό στην είσοδο R, ως αποτέλεσμα, η έξοδος του μετατροπέα D.D1 θα είναι ένα λογικό μηδέν και, κατά συνέπεια, η έξοδος Q θα είναι το ίδιο λογικό μηδέν.

Όπως και στην πρώτη περίπτωση, όταν αφαιρεθούν τα σήματα από τις εισόδους R και S, η κατάσταση της σκανδάλης δεν θα αλλάξει.

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

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

Το στοιχείο τροφοδοτείται πάντα με power Up. Ως αποτέλεσμα, το παραγόμενο ρεύμα μπορεί να πάει είτε κατά μήκος της γραμμής AB, οπότε δεν θα υπάρχει ρεύμα στην έξοδο του μετατροπέα (θα υπάρχει λογικό μηδέν), είτε κατά μήκος της γραμμής AC, οπότε θα υπάρχει ρεύμα στην έξοδο του μετατροπέα (θα υπάρχει μια λογική).

Το ρεύμα θα ρέει μέσω της γραμμής AB εάν το τρανζίστορ VT1 είναι ανοιχτό και για αυτό είναι απαραίτητο να εφαρμοστεί τάση στην είσοδο του μετατροπέα.

Το ρεύμα θα ρέει μέσω της γραμμής AC εάν το τρανζίστορ VT1 είναι κλειστό και αυτό θα συμβεί εάν δεν υπάρχει τάση στην είσοδο του μετατροπέα.

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

2. Σχεδιασμός κυψέλης στατικής μνήμης.

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

Το σχήμα 4 δείχνει ένα απλοποιημένο διάγραμμα ενός από τους τρόπους οργάνωσης μιας στατικής κυψέλης μνήμης.

Όπως μπορείτε να δείτε, αποτελείται από μια σκανδάλη και τρία τρανζίστορ που λειτουργούν ως πλήκτρα που ανοίγουν και κλείνουν την πρόσβαση στο κελί μνήμης. Τα τρανζίστορ VT1 και VT2 χρησιμοποιούνται για την ενεργοποίηση και απενεργοποίηση της εγγραφής στην κυψέλη και το τρανζίστορ VT3 χρησιμοποιείται για την ενεργοποίηση και απενεργοποίηση της ανάγνωσης.

Για την εγγραφή δεδομένων, είναι απαραίτητο να εφαρμοστεί τάση στη γραμμή συμβολοσειράς, μετά την οποία θα ανοίξουν τα τρανζίστορ VT1, VT2 και VT3. Στη συνέχεια, για να γράψετε ένα, είναι απαραίτητο να εφαρμόσετε μια τάση που αντιστοιχεί σε μια λογική στη γραμμή D και μια τάση που αντιστοιχεί σε ένα λογικό μηδέν στη γραμμή. Για να αλλάξετε το flip-flop στη μηδενική κατάσταση αποθήκευσης, είναι απαραίτητο να εφαρμόσετε μια τάση που αντιστοιχεί στο λογικό μηδέν στη γραμμή D και μια τάση που αντιστοιχεί στο λογικό ένα στη γραμμή .

Η σκανδάλη θα παραμείνει στην εγκατεστημένη κατάσταση ακόμη και μετά την αφαίρεση της τάσης από τη γραμμή γραμμής και από τις γραμμές D και για όσο διάστημα παρέχεται ρεύμα σε αυτήν Up.

Για να διαβάσετε δεδομένα, είναι απαραίτητο να εφαρμόσετε μια τάση που αντιστοιχεί σε ένα λογικό μηδέν στις εξόδους D, καθώς η εφαρμογή δύο λογικών μηδενικών στις εισόδους της σκανδάλης δεν θα αλλάξει την κατάστασή της και στη συνέχεια θα εφαρμόσετε τάση στη γραμμή. Ως αποτέλεσμα, το τρανζίστορ VT3 θα ανοίξει και το ρεύμα από τη σκανδάλη θα ρέει μέσω της γραμμής Q στον αναγνώστη. Ταυτόχρονα με το τρανζίστορ VT3, τα τρανζίστορ VT1 και VT2 θα ανοίξουν. Αλλά επειδή η τάση στις γραμμές D αντιστοιχεί στο λογικό μηδέν, δεν θα επηρεάσει την κατάσταση του τρανζίστορ.

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

3. Σχεδιασμός τσιπ στατικής μνήμης.

Ας περάσουμε στο επόμενο στάδιο της μελέτης του τρόπου λειτουργίας της στατικής μνήμης και ας εξετάσουμε τη γενική λογική λειτουργίας της. Για να το κάνουμε αυτό, ας στραφούμε στο απλοποιημένο μπλοκ διάγραμμα της στατικής μνήμης που φαίνεται στο Σχήμα 5.

Ας ξεκινήσουμε γράφοντας δεδομένα στη στατική μνήμη και ας εξετάσουμε την περίπτωση εγγραφής μιας μονάδας στο κελί M11.

Ο ελεγκτής διαύλου μνήμης λαμβάνει τη διεύθυνση της κυψέλης μνήμης και τα δεδομένα που πρόκειται να εγγραφούν από τον ελεγκτή μνήμης που είναι ενσωματωμένος στη βόρεια γέφυρα της μητρικής πλακέτας ή του επεξεργαστή. Η διεύθυνση του κελιού μετατρέπεται σε δύο στοιχεία - αριθμός σειράς και αριθμός στήλης. Ο αριθμός γραμμής μεταδίδεται στον «Αποκωδικοποιητή Διεύθυνσης Γραμμής», από όπου εφαρμόζεται τάση στην επιθυμητή γραμμή.

Δεδομένου ότι εξετάζουμε το ενδεχόμενο εγγραφής στο κελί M 11, η τάση από τον αποκωδικοποιητή διεύθυνσης σειράς εφαρμόζεται στην πρώτη σειρά. Ως αποτέλεσμα, τα τρανζίστορ VT1, VT2 και VT3 ανοίγουν. Ανοίγουν επίσης παρόμοια τρανζίστορ άλλων κυψελών μνήμης που βρίσκονται σε αυτή τη σειρά.

Μέσω του τρανζίστορ VT3 της πρώτης κυψέλης και παρόμοιων τρανζίστορ άλλων κυψελών μνήμης της πρώτης σειράς, ένα ρεύμα που αντιστοιχεί στην κατάσταση των ενεργοποιητών αυτών των κυψελών θα ρέει στο "Data Buffer". Ωστόσο, το "Data Buffer" θα αγνοήσει τις ληφθείσες πληροφορίες, καθώς δεν έχει σήμα από τη "Μονάδα Ελέγχου" για την αποθήκευση των δεδομένων ανάγνωσης.

Παράλληλα με την παροχή τάσης σε μια σειρά της μήτρας μνήμης, το "Μπλοκ Επεξεργασίας Δεδομένων" θα εκδίδει μια τάση που αντιστοιχεί στα δεδομένα που γράφονται στα "Μπλοκ εγγραφής 1 - m" και από το "Μπλοκ αποκρυπτογράφησης διεύθυνσης στήλης" θα εκδοθεί άδεια στις αντίστοιχες στήλες (αντίστοιχη λογική μονάδα τάσης) για εγγραφή δεδομένων.

Τα μπλοκ εγγραφής χρησιμοποιούνται για την αναστολή της ροής του ρεύματος στη γραμμή D και κατά την ανάγνωση δεδομένων και τη μετατροπή από τα εισερχόμενα σήματα δεδομένων σε ανεστραμμένα σήματα για την αλλαγή της κατάστασης των flip-flops στην οποία πρέπει να αποθηκευτούν τα δεδομένα.

Στην περίπτωσή μας, η καταχώρηση γίνεται στο κελί M 11 και γράφεται μια μονάδα. Αντίστοιχα, από το «Μπλοκ επεξεργασίας δεδομένων» θα εκδοθεί ένα λογικό στο «Μπλοκ εγγραφής 1» και από το «Μπλοκ αποκρυπτογράφησης διεύθυνσης στήλης» θα εκδοθεί ένα λογικό στο «Μπλοκ εγγραφής 1».

Ας εξετάσουμε τη λειτουργία του "Recording Block 1" με τέτοια σήματα εισόδου. Και έτσι, στην είσοδο του στοιχείου D.D3 θα υπάρχει ένα λογικό, και στην έξοδο - λογικό μηδέν, αφού το στοιχείο D.D3 είναι ένας μετατροπέας (λογικό στοιχείο "NOT"). Αντίστοιχα, στις εισόδους του στοιχείου D.D4 (λογικό στοιχείο «AND») θα υπάρχει: λογικό μηδέν και λογικό ένα. Ως αποτέλεσμα, η έξοδος αυτού του στοιχείου θα είναι λογικά μηδέν.

Θα υπάρχουν δύο λογικές στις εισόδους του στοιχείου D.D5 (λογικό στοιχείο "AND"), ως αποτέλεσμα, η έξοδος αυτού του στοιχείου θα είναι λογικό μηδέν.

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

Μετά την αλλαγή της κατάστασης ενεργοποίησης του πρώτου στοιχείου, η τάση από την πρώτη σειρά αφαιρείται και τα τρανζίστορ VT1, VT2 και VT3 κλείνουν, απαγορεύοντας την εγγραφή και την ανάγνωση από το κελί.

Όταν γράφετε ένα μηδέν σε ένα κελί μνήμης, όλα συμβαίνουν σύμφωνα με το ίδιο σχήμα, μόνο από το "Μπλοκ Επεξεργασίας Δεδομένων" έως το "Μπλοκ εγγραφής 1" θα παρέχεται η τάση που αντιστοιχεί στο λογικό μηδέν. Αυτό σημαίνει ότι στην έξοδο D1 του «Μπλοκ εγγραφής 1» θα υπάρχει μια τάση που αντιστοιχεί σε μια λογική και στην έξοδο 1 θα υπάρχει μια τάση που αντιστοιχεί σε ένα λογικό μηδέν. Αυτές οι τιμές τάσης θα θέσουν τη σκανδάλη της πρώτης κυψέλης μνήμης σε κατάσταση μηδενικής αποθήκευσης.

Στην εγκατεστημένη κατάσταση, η σκανδάλη του πρώτου κελιού θα παραμείνει για όσο διάστημα παρέχεται σε αυτό το power Up.

Η ανάγνωση του δίσκου είναι ακόμα πιο εύκολη. Από τον ελεγκτή μνήμης προέρχεται η διεύθυνση των κελιών μνήμης από τα οποία πρέπει να διαβάζονται τα δεδομένα και μια εντολή ανάγνωσης.

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

Ας εξετάσουμε την περίπτωση όταν τα δεδομένα διαβάζονται από το πρώτο κελί. Σε αυτήν την περίπτωση, η τάση από τον "Αποκωδικοποιητή διεύθυνσης σειράς" θα εφαρμοστεί στην πρώτη σειρά, η οποία θα οδηγήσει στο άνοιγμα των τρανζίστορ VT1, VT2 και VT3 του στοιχείου M 11 και όλων των άλλων κυψελών της πρώτης σειράς. Το ρεύμα από τη σκανδάλη της πρώτης κυψέλης, μέσω του τρανζίστορ VT1, θα περάσει ελεύθερα στο "Data Buffer". Το ίδιο θα συμβεί και στα υπόλοιπα κελιά της πρώτης σειράς. Τα δεδομένα που διαβάζονται από τα κελιά μνήμης της πρώτης σειράς θα αποθηκευτούν στο "Data Buffer".

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

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

Όπως μπορείτε να δείτε, η λειτουργία της στατικής μνήμης μοιάζει πολύ με τη λειτουργία της δυναμικής μνήμης, ωστόσο, η διαδικασία εγγραφής και ανάγνωσης είναι πολύ πιο γρήγορη, καθώς δεν χάνεται χρόνος για τη φόρτιση και εκφόρτιση πυκνωτών και δεν απαιτείται αναγέννηση κυψελών. Ωστόσο, είναι απαραίτητο να σημειωθεί ότι το σχήμα που εξετάσαμε είναι πολύ απλοποιημένο και στην πράξη χρησιμοποιούν πολύ πιο σύνθετους μηχανισμούς για γραφή και ανάγνωση από τη μνήμη, που αυξάνουν την αξιοπιστία και την ταχύτητα της στατικής μνήμης. Ωστόσο, η αρχή λειτουργίας που περιγράφεται παραπάνω μας επιτρέπει να κατανοήσουμε τα βασικά της λειτουργίας της στατικής μνήμης, τα μειονεκτήματα και τα πλεονεκτήματά της. Ας προσπαθήσουμε να τα διατυπώσουμε (κύρια μειονεκτήματα και πλεονεκτήματα).

4. Πλεονεκτήματα και μειονεκτήματα της στατικής μνήμης.

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

  • υψηλή ταχύτητα;
  • δεν υπάρχει ανάγκη για αναγέννηση των κυττάρων.

Ελαττώματα:

  • υψηλή τιμή;
  • χαμηλή πυκνότητα συσκευασίας.
  • μικρός όγκος?
  • υψηλή κατανάλωση ενέργειας.

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

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


Η ΔΗΜΟΚΡΑΤΙΑ ΤΟΥ ΚΑΖΑΚΣΤΑΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ "ΤΟΥΡΑΝ"

Τμήμα Τεχνολογιών Πληροφορικής

Θέμα: "Στατική μνήμη"

Συμπλήρωσε: Ainakulov D.A. 3ο έτος, «IS» 9 γρ. Έλεγχος: Ziyatbekova G.Z.

Αλμάτι 2009


1. Εισαγωγή

2. Στατική μνήμη

4. Τύποι στατικής μνήμης

5. Συμπέρασμα

Κατάλογος χρησιμοποιημένης βιβλιογραφίας


1. Εισαγωγή

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

Η λέξη "υπολογιστής" σημαίνει "υπολογιστής". Η ανάγκη αυτοματοποίησης της επεξεργασίας δεδομένων, συμπεριλαμβανομένων των υπολογισμών, προέκυψε εδώ και πολύ καιρό. Επί του παρόντος, η βιομηχανία υλικού και λογισμικού υπολογιστών είναι ένας από τους σημαντικότερους τομείς της οικονομίας των ανεπτυγμένων και αναπτυσσόμενων χωρών. Οι λόγοι για την ταχεία ανάπτυξη της βιομηχανίας προσωπικών υπολογιστών είναι: χαμηλό κόστος. συγκριτικό όφελος για πολλές επιχειρηματικές εφαρμογές. ευκολία στη χρήση; τη δυνατότητα ατομικής αλληλεπίδρασης από υπολογιστές χωρίς μεσάζοντες και περιορισμούς· υψηλές δυνατότητες επεξεργασίας, αποθήκευσης και έκδοσης πληροφοριών· υψηλή αξιοπιστία, ευκολία επισκευής και λειτουργίας. Το υλικό του υπολογιστή προσαρμόζεται στις ιδιαιτερότητες της χρήσης του υπολογιστή. διαθεσιμότητα λογισμικού που καλύπτει σχεδόν όλους τους τομείς της ανθρώπινης δραστηριότητας, καθώς και ισχυρά συστήματαγια την ανάπτυξη νέου λογισμικού. Η ισχύς των υπολογιστών αυξάνεται συνεχώς και το πεδίο των εφαρμογών τους διευρύνεται συνεχώς. Οι υπολογιστές μπορούν να συνδεθούν σε δίκτυο, επιτρέποντας σε εκατομμύρια ανθρώπους να μοιράζονται εύκολα πληροφορίες με υπολογιστές οπουδήποτε σφαίρα. Ποια είναι λοιπόν αυτή η μοναδική ανθρώπινη εφεύρεση; Το πρώτο χαρακτηριστικό με το οποίο χωρίζονται οι υπολογιστές είναι η πλατφόρμα. Υπάρχουν δύο κύριες πλατφόρμες υπολογιστών: Η συμβατή πλατφόρμα υπολογιστών με IBM περιλαμβάνει μια τεράστια γκάμα διαφορετικών υπολογιστών, από απλούς οικιακούς προσωπικούς υπολογιστές έως σύνθετους διακομιστές. Αυτός είναι ο τύπος πλατφόρμας που συναντά συνήθως ένας χρήστης. Παρεμπιπτόντως, δεν είναι καθόλου απαραίτητο οι καλύτεροι υπολογιστές που είναι συμβατοί με IBM να κατασκευάζονται από την IBM - ο "μπλε γίγαντας" που γέννησε αυτό το πρότυπο είναι σήμερα μόνο ένας από τους πολλούς κατασκευαστές υπολογιστών. Πλατφόρμα Apple- παρουσιάζεται αρκετά δημοφιλής στη Δύση υπολογιστές Macintosh. Χρησιμοποιούν το δικό τους ειδικό λογισμικό και η «γέμιση» τους διαφέρει σημαντικά από την IBM. Συνήθως, οι υπολογιστές συμβατοί με την IBM αποτελούνται από τρία μέρη (μπλοκ): μια μονάδα συστήματος. οθόνη (οθόνη)? πληκτρολόγιο (μια συσκευή που σας επιτρέπει να εισάγετε χαρακτήρες σε έναν υπολογιστή). Η ανάπτυξη της βιομηχανίας ηλεκτρονικών πραγματοποιείται με τόσο γρήγορους ρυθμούς που κυριολεκτικά σε ένα χρόνο, το σημερινό «θαύμα της τεχνολογίας» γίνεται ξεπερασμένο λόγω του γεγονότος ότι το υλικό των υπολογιστών τροποποιείται συνεχώς και εμφανίζεται νέο λογισμικό. Ωστόσο, οι αρχές ενός υπολογιστή παρέμειναν αμετάβλητες από τότε που ο διάσημος μαθηματικός John von Neumann ετοίμασε μια έκθεση σχετικά με το σχεδιασμό και τη λειτουργία των καθολικών υπολογιστικών συσκευών το 1945.


2. Στατική μνήμη

Η στατική μνήμη ή SRAM (Statistic RAM) είναι ο πιο ισχυρός τύπος μνήμης. Τα τσιπ SRAM χρησιμοποιούνται για την προσωρινή αποθήκευση της μνήμης RAM, η οποία χρησιμοποιεί τσιπ δυναμικής μνήμης, καθώς και για την αποθήκευση δεδομένων σε μηχανικές συσκευές αποθήκευσης, σε μονάδες μνήμης προσαρμογέων βίντεο κ.λπ. Στην πραγματικότητα, τα τσιπ SRAM χρησιμοποιούνται όπου η απαιτούμενη ποσότητα μνήμης δεν είναι πολύ μεγάλη , αλλά οι απαιτήσεις απόδοσης είναι υψηλές και αν ναι, τότε δικαιολογείται η χρήση ακριβών μικροκυκλωμάτων. Οι προσωπικοί υπολογιστές με επεξεργαστές που δεν είχαν μνήμη cache L2 στο chip χρησιμοποιούσαν πάντα τσιπ SRAM εξωτερική κρυφή μνήμη. Για να μειώσουν το κόστος των μητρικών και τη δυνατότητα αναβάθμισής τους, οι κατασκευαστές μητρικών με επεξεργαστές 486 και οι πρώτες γενιές Pentium εγκατέστησαν ειδικά κρεβάτια (υποδοχές για τσιπ με πακέτο DIP), στα οποία ήταν δυνατή η εγκατάσταση διαφόρων τσιπ SRAM, διαφορετικά τόσο σε ταχύτητα και χωρητικότητα μνήμης, όσο και σε διαφορετικό βάθος bit. Για να ρυθμίσετε τις παραμέτρους της μνήμης, προσφέρθηκε ένα σετ άλτης στη μητρική πλακέτα. Για αναφορά, οι πληροφορίες σχετικά με την εγκατάσταση των βραχυκυκλωτικών χρωματίστηκαν απευθείας στην πλακέτα συστήματος, για παράδειγμα, όπως φαίνεται στον πίνακα (οι στήλες JS1 και JS2 υποδεικνύουν τον αριθμό των επαφών που πρέπει να συνδεθούν με βραχυκυκλωτήρες).

Παράδειγμα πίνακα διαμόρφωσης προσωρινής μνήμης σε μητρική πλακέτα

Μέγεθος SRAM JS1 JS2
256 Κ 32x8 1-2 1-2
512 Κ 64Χ8 2-3 1-2
1 Μ 128x8 2-3 2-3

Λάβετε υπόψη ότι η διαμόρφωση της προσωρινής μνήμης άλλαξε μόνο όταν απέτυχε οποιοδήποτε τσιπ κρυφής μνήμης. Σε άλλες περιπτώσεις, δεν συνιστάται η αλλαγή της θέσης των jumper. Αργότερα, καθώς αναπτύχθηκαν πιο προηγμένα τσιπ SRAM, συγκολλήθηκαν απευθείας στη μητρική πλακέτα σε ποσότητες 1, 2 ή 4 τεμαχίων. Στις τρέχουσες μητρικές πλακέτες, τα τσιπ SRAM χρησιμοποιούνται κυρίως μόνο για προσωρινή αποθήκευση I/O και άλλες λειτουργίες συστήματος.

3. Σχεδιασμός του πίνακα στατικής μνήμης

Όπως τα δυναμικά κελιά, οι εναύσματα συνδυάζονται σε έναν ενιαίο πίνακα που αποτελείται από γραμμές και στήλες, οι τελευταίες από τις οποίες ονομάζονται επίσης bit.

Σε αντίθεση με ένα στοιχείο δυναμικής μνήμης, το οποίο χρειάζεται μόνο ένα τρανζίστορ κλειδιού για έλεγχο, ένα στοιχείο στατικής μνήμης ελέγχεται από τουλάχιστον δύο. Αυτό δεν θα φανεί περίεργο αν θυμηθούμε ότι μια σκανδάλη, σε αντίθεση με έναν πυκνωτή, έχει ξεχωριστές εισόδους για την εγγραφή του λογικού μηδενός και ενός, αντίστοιχα. Έτσι, έως και οκτώ τρανζίστορ καταναλώνονται ανά κυψέλη στατικής μνήμης (βλ. Εικ. 1) - τέσσερα πηγαίνουν, στην πραγματικότητα, στην ίδια τη σκανδάλη και άλλα δύο στα «μάνδαλα» ελέγχου.

Ρύζι. 1. Σχεδιασμός κυψέλης μνήμης SRAM μονής θύρας 6 τρανζιστόνιων


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

Η μνήμη πολλαπλών θυρών δεν έχει αυτόν τον περιορισμό. Κάθε κελί μνήμης πολλαπλών θυρών περιέχει ένα ενιαίο flip-flop, αλλά έχει πολλά σετ τρανζίστορ ελέγχου, καθένα από τα οποία είναι συνδεδεμένο με τις δικές του γραμμές ROW και BIT, έτσι ώστε διαφορετικά κελιά μήτρας να μπορούν να επεξεργαστούν ανεξάρτητα. Αυτή η προσέγγιση είναι πολύ πιο προοδευτική από τη διαίρεση της μνήμης σε τράπεζες. Πράγματι, στην τελευταία περίπτωση, ο παραλληλισμός επιτυγχάνεται μόνο κατά την πρόσβαση σε κελιά διαφορετικών τραπεζών, κάτι που δεν είναι πάντα εφικτό, και η μνήμη πολλαπλών θυρών επιτρέπει την ταυτόχρονη επεξεργασία οποιωνδήποτε κυψελών, απαλλάσσοντας τον προγραμματιστή από την ανάγκη να εμβαθύνει στα χαρακτηριστικά της αρχιτεκτονικής του .

Η πιο συνηθισμένη είναι η μνήμη δύο θυρών, η δομή της κυψέλης της οποίας φαίνεται στο Σχ. 2. (προσοχή! αυτή δεν είναι η ίδια μνήμη που, συγκεκριμένα, χρησιμοποιείται στην κρυφή μνήμη πρώτου επιπέδου των μικροεπεξεργαστών Intel Pentium). Είναι εύκολο να υπολογίσουμε ότι για να δημιουργηθεί ένα κελί μνήμης δύο θυρών, καταναλώνονται έως και οκτώ τρανζίστορ. Αφήστε τη χωρητικότητα της μνήμης cache να είναι 32 KB, τότε μόνο ένας πυρήνας θα απαιτήσει πάνω από δύο εκατομμύρια τρανζίστορ!


Ρύζι. 2. Σχεδιασμός κυψέλης μνήμης SRAM δύο θυρών 8 τρανζιστόνιων

Ρύζι. 3. Δυναμική κυψέλη μνήμης ενσωματωμένη σε κρύσταλλο

4. Τύποι στατικής μνήμης

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

Ασύγχρονη στατική μνήμη

Η ασύγχρονη στατική μνήμη λειτουργεί ανεξάρτητα από τον ελεγκτή και επομένως ο ελεγκτής δεν μπορεί να είναι σίγουρος ότι το τέλος του κύκλου ανταλλαγής θα συμπέσει με την αρχή του επόμενου παλμού ρολογιού. Ως αποτέλεσμα, ο κύκλος ανταλλαγής επιμηκύνεται τουλάχιστονκατά ένα ρολόι, μειώνοντας έτσι αποτελεσματική απόδοση. "Χάρη" στην τελευταία περίσταση, επί του παρόντος η ασύγχρονη μνήμη ουσιαστικά δεν χρησιμοποιείται πουθενά (οι τελευταίοι υπολογιστές στους οποίους χρησιμοποιήθηκε ακόμη ως προσωρινή μνήμη δεύτερου επιπέδου ήταν "τρία ρούβλια" - μηχανήματα που κατασκευάστηκαν με βάση Επεξεργαστής Intel 80386).

Σύγχρονη στατική μνήμη

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

Στατική μνήμη αγωγού

Η στατική μνήμη Pipeline είναι μια σύγχρονη στατική μνήμη εξοπλισμένη με ειδικά "μάνδαλα" που συγκρατούν γραμμές δεδομένων, επιτρέποντας την ανάγνωση (εγγραφή) των περιεχομένων ενός κελιού παράλληλα με τη διεύθυνση ενός άλλου κελιού που μεταβιβάζεται.

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