Αστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια Ανενεργά
 

3.6.1 Ανάγνωση Μνήμης

 

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

 

            Η απλή λειτουργία της ανάγνωσης της μνήμης γίνεται στα τέσσερα παρακάτω βήματα:

 

  1. Η είσοδος της διεύθυνσης της μνήμης παίρνει την τιμή της διεύθυνσης που θέλουμε να διαβάσουμε.
  2. Ενεργοποιείται το σήμα επιλογής της μνήμης CS (chip select).
  3. Το περιεχόμενο της θέσης μνήμης, που έχει επιλεγεί, εμφανίζεται ως έξοδος στις γραμμές των δεδομένων τις μνήμης.
  4. Ολοκλήρωση ανάγνωσης δεδομένου.

 

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

 

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

 

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

 

Σχήμα 3.6.1 Διάγραμα χρονισμού κύκλου ανάγνωσης

 

            Χρόνος επιλογής ονομάζεται το χρονικό διάστημα που χρειάζεται για να εμφανιστούν τα δεδομένα της θέσης μνήμης από την στιγμή που θα ενεργοποηθεί το σήμα chip select.

 

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

 

            Η μνήμη κρατάει τα δεδομένα στην έξοδο της όσο χρονικό διάστημα η διεύθυνση μένει σταθερή και η μνήμη είναι ενεργοποιημένη. Ο ελάχιστος χρόνος μεταξύ δύο διαδοχικών αναγνώσεων διαφορετικών θέσεων μνήμης ονομάζεται χρόνος κύκλου ανάγνωσης, και είναι χαρακτηριστικός της ταχύτητας της μνήμης. Μας δείχνει πόσο γρήγορα μπορούμε να διαβάσουμε δεδομένα. Για παράδειγμα αν έχουμε χρόνο κύκλου ανάγνωσης 10nsec τότε σε 1 sec μπορούμε να διαβάσουμε 100 εκατομμύρια θέσεις μνήμης.

 

3.6.2 Εγγραφή μνήμης

 

             Τα βασικά βήματα που πρέπει να γίνουν για την εγγραφή ενός δεδομένου σε μία θέση μνήμης είναι τα εξής:

 

  1. Δίνεται η διεύθυνση στην οποία θέλουμε να γράψουμε.
  2. Επιλέγεται η μνήμη με την ενεργοποίηση του chip select.
  3. Η είσοδος των δεδομένων παίρνει την τιμή που θέλουμε να γράψουμε.
  4. Ενεργοποιείται η διαδικασία εγγραφής με το σήμα WE (write enable)
  5. Η εγγραφή έχει ολοκληρωθεί και μπορεί να ξεκινήσει νέα εγγραφή ή ανάγνωση.

 

Στο σχήμα 3.6.2 φαίνεται το διάγραμμα χρονισμού της εγγραφής μίας στατικής μνήμης.

 

            Η εγγραφή του δεδομένου στην μνήμη ξεκινάει όταν ενεργοποιηθεί το σήμα write enable (WE). Η ενεργοποίηση του σήματος αυτού πρέπει να γίνει αφού περάσει ένα χρονικό διάστημα από τη στιγμή που εφαρμόστηκε η διεύθυνση εγγραφής. Το χρονικό αυτό διάστημα χρειάζεται για τον προσδιορισμό της θέσης μνήμης και ονομάζεται χρόνος καθυστέρησης εγγραφής (tAW).

 

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

 

 

 

 

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

 

3.6.3 Λανθάνουσα μνήμη

 

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

 

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

 

 

Η λανθάνουσα μνήμη χωρίζεται σε ομάδες θέσεων μνήμης που ονομάζονται γραμμές (cache line). Για παράδειγμα μία γραμμή μπορεί να αποτελείται από 16 θέσεις μνήμης. Σε κάθε γραμμή υπάρχει το αντίγραφο 16 θέσεων της κύριας μνήμης που είναι γειτονικά στην κύρια μνήμη όπως φαίνεται και στο σχήμα 3.6.4.

 

 

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

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

 

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

 

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

 

Διαγραφή με βάση το χρόνο παραμονής (FIFO first in - first out). Σύμφωνα με την τεχνική αυτή η γραμμή που έχει παραμείνει στην λανθάνουσα μνήμη περισσότερο χρόνο θα πρέπει να διαγραφεί. Δηλαδή διαγράφεται η παλαιότερη χρονικά εγγραφή.

 

Διαγραφή με βάση την λιγότερη χρήση
(
LRU - least recently used). Σύμφωνα με την τεχνική αυτή η γραμμή που θα διαγραφεί είναι αυτή που έχει μείνει αχρησιμοποίητη περισσότερο χρόνο από τις άλλες. Έτσι μια παλιά εγγραφή που χρησιμοποιείται συχνά δεν διαγράφεται σε αντίθεση με την προηγούμενη τεχνική.

 

Στην περίπτωση που ο επεξεργαστής θέλει να γράψει στην μνήμη διακρίνουμε δύο περιπτώσεις:

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

 

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

 

Διεγγραφής (write throught). Σύμφωνα με αυτή την τεχνική η εγγραφή γίνεται ταυτόχρονα και στην κύρια μνήμη και στην λανθάνουσα. Έτσι δεν υπάρχει περίπτωση η κύρια μνήμη και η λανθάνουσα μνήμη να έχουν διαφορετικές τιμές.

 

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

 

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

 

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

 

Το πρώτο επίπεδο λανθάνουσας μνήμης (level 1) βρίσκεται μέσα στο ολοκληρωμένο του επεξεργαστή. Η μνήμη αυτή είναι ταχύτερη. Εργάζεται με την ταχύτητα του επεξεργαστή

 

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

 

Τι έμαθες

 

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

 

Ορολογία

 

  • Χρόνος προσπέλασης – επιλογής – κύκλου ανάγνωσης
  • Χρόνος καθυστέρησης εγγραφής – εφαρμογής δεδομένων – κύκλου εγγραφής
  • Λανθάνουσα μνήμη
  • Διεγγραφή
  • Επανεγγραφή
  • Τοπικότητα της αναφοράς

 

Έλεγχος γνώσεων

 

  1. 1.Ποιά είναι τα βασικά στάδια της ανάγνωσης μιας μνήμης;
  2. 2.Τι ονομάζουμε χρόνο κύκλου ανάγνωσης;
  3. 3.Τι ονομάζουμε χρόνο εφαρμογής δεδομένων και τι χρόνο κύκλου εγγραφής;
  4. 4.Τι ονομάζουμε λανθάνουσα μνήμη;
  5. 5.Ποιες τακτικές υπάρχουν για την διαγραφή μιας λέξης της λανθάνουσας μνήμης;
  6. 6.Με ποιους τρόπους τα περιεχόμενα της κύριας μνήμης και της λανθάνουσας είναι σε συμφωνία;

Προσθήκη νέου σχολίου


Κωδικός ασφαλείας
Ανανέωση