Κύρια μνήμη υπολογιστή

μικρογραφία|Μνήμη DDR4 SDRAM. Μέχρι και το 2021, πάνω από το 90% της μνήμης που χρησιμοποιείται σε υπολογιστές και server ήταν αυτού του τύπου.
Η **Μνήμη ενός υπολογιστή** αποθηκεύει πληροφορίες, όπως δεδομένα και προγράμματα, για άμεση χρήση σε έναν υπολογιστή. 

Η κύρια μνήμη λειτουργεί σε υψηλή ταχύτητα συγκρίνοντάς τη με τη δευτερεύουσα, η οποία είναι πιο αργή αλλά λιγότερο κοστοβόρα ανά bit και υψηλότερη σε χωρητικότητα. Εκτός από τη αποθήκευση ανοιχτών προγραμμάτων και την ενεργή επεξεργασία δεδομένων, η μνήμη του υπολογιστή λειτουργεί ως κρυφή μνήμη για τον κύριο χώρο αποθήκευσης αλλά και ως ενδιάμεση μνήμη για εγγραφές, για να βελτιώσει τόσο την απόδοση ανάγνωσης όσο και την απόδοση γραφής. Τα λειτουργικά συστήματα δανείζονται τη μνήμη RAM για caching αρκεί να μην είναι απαραίτητη για την εκτέλεση του software την δεδομένη στιγμή. Σε περίπτωση που χρειαστεί, περιεχόμενο της μνήμης του υπολογιστή μπορεί να μεταφερθεί στον δευτερεύοντα χώρο αποθήκευσης· ένας κοινός τρόπος για να γίνει αυτό είναι μέσω μιας τεχνικής διαχείρισης μνήμης που ονομάζεται *[[εικονική μνήμη]]*.

Η σύγχρονη μνήμη υπολογιστή υλοποιείται ως ημιαγωγική μνήμη, όπου τα δεδομένα αποθηκεύονται μέσα σε κελιά μνήμης που κατασκευάζονται από μετασχηματιστές MOS και άλλα στοιχεία σε ολοκληρωμένα κυκλώματα. Υπάρχουν δύο κύριοι τύποι ημιαγωγικών μνήμων: οι πτητικές (volatile) και μη πτητικές (non-volatile). Παραδείγματα μη πτητικής μνήμης είναι η μνήμη flash και η μνήμες ROM, PROM, EPROM και EEPROM. Παραδείγματα πτητικής μνήμης είναι η Δυναμική μνήμη τυχαίας πρόσβασης (DRAM) που χρησιμοποιείται για πρωτογενή αποθήκευση, και η στατική μνήμη τυχαίας προσπέλασης, που χρησιμοποιείται κυρίως για caching μέσα σε μία CPU.

Οι περισσότερες ημιαγωγικές μνήμες οργανώνονται σε κελιά, τα οποία αποθηκεύουν ένα bit το καθένα (0 ή 1). Η οργάνωση της Μνήμης flash περιλαμβάνει τόσο ένα bit ανά κελί μνήμης όσο και ένα κελί πολλαπλών επιπέδων ικανό να αποθηκεύει πολλαπλά bits. Τα κελιά μνήμης ομαδοποιούνται σε λέξεις σταθερού μήκους, για παράδειγμα, 1, 2, 4, 8, 16, 32, 64 ή 128 bits. Κάθε λέξη μπορεί να προσπελαστεί μέσω μιας δυαδικής διεύθυνσης *Ν* bits, καθιστώντας δυνατή την αποθήκευση 2*<sup>N</sup>* λέξεων στη μνήμη.

## Ιστορία
μικρογραφία|Χαμηλότερη ιστορικά τιμή λιανικής κύριας και δευτερεύουσας μνήμης υπολογιστών
μικρογραφία|Ηλεκτρομηχανική μνήμη που χρησιμοποιούταν στον IBM 602, έναν πρώιμο υπολογιστή διάτρησης πολλαπλασιασμού
[μικρογραφία|Λεπτομέρεια του πίσω μέρους ενός τμήματος του [ENIAC, που δείχνει θερμιονικές βαλβίδες]]
μικρογραφία| Η λυχνία Williams-Kilburn (Williams tube) σε χρήση ως μνήμη στον Υπολογιστής IAS περίπου το 1951
μικρογραφία| microSDHC κάρτα μεγέθους 8 GB τοποθετημένη πάνω από 8 bytes μνήμη μαγνητικού πυρήνα (1 πυρήνας είναι 1 bit)
Στις αρχές της δεκαετίας του 1940, η τεχνολογία μνήμης επέτρεπε χωρητικότητα λιγοστών bytes. Ο πρώτος ηλεκτρονικός προγραμματιζόμενος ψηφιακός υπολογιστής, ο ENIAC, χρησιμοποιώντας χιλιάδες λυχνίες κενού, μπορούσε να εκτελέσει απλούς υπολογισμούς που περιλάμβαναν 20 αριθμούς δέκα δεκαδικών ψηφίων που αποθηκεύονταν στις λυχνίες αυτές.

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

Δύο εναλλακτικές λύσεις στην γραμμή καθυστέρησης, η λυχνία Williams και η λυχνία Selectron, ξεκίνησαν το 1946, και τα δύο χρησιμοποιώντας δέσμες ηλεκτρονίων σε γυάλινες λυχνίες ως μέσο αποθήκευσης. Χρησιμοποιώντας καθοδικούς σωλήνες ο Φρεντ Γουίλιαμς εφευρέθηκε τον σωλήνα Williams, ο οποίος αποτέλεσε την πρώτη μνήμη υπολογιστή τυχαίας πρόσβασης. Ο σωλήνας Williams μπορούσε να αποθηκεύσει περισσότερες πληροφορίες από τον σωλήνα Selectron (ο Selectron περιοριζόταν σε 256 bits, ενώ ο Williams μπορούσε να αποθηκεύει χιλιάδες) και ήταν λιγότερο ακριβός. Ωστόσο ο δεύτερος έδειχνε απογοητευτική ευαισθησία σε αλλαγές του περιβάλλοντος.

Στα τέλη της δεκαετίας του 1940 άρχισαν προσπάθειες για την εύρεση μη πτητικής μνήμης (non-volatile memory). Η Μνήμη μαγνητικού πυρήνα επέτρεπε την ανάκτηση πληροφορίας μετά από απώλεια ισχύος. Αναπτύχθηκε από τον Φρέντερικ Β. Βιέ και τον Αν Γουάνγκ στα τέλη της δεκαετίας του 1940, και βελτιώθηκε από τον Τζέι Ράιτ Φόρεστερ και τον Τζαν Α. Ρατζμαν στις αρχές της δεκαετίας του 1950, πριν εμπορευματικοποιηθεί μέσω του υπολογιστή Whirlwind I το 1953. Η μνήμη μαγνητικού πυρήνα ήταν η κυρίαρχη μορφή μνήμης μέχρι την ανάπτυξη της μνήμης ημιαγωγού MOS στη δεκαετία του 1960.

Η πρώτη ημιαγωγική μνήμη εφαρμόστηκε ως ένα κύκλωμα από flip-flops στις αρχές της δεκαετίας του 1960 χρησιμοποιώντας διπολικούς τρανζίστορες. Ημιαγωγική μνήμη κατασκευασμένη από διακριτικά ηλεκτρονικά στοιχεία διανεμήθηκε για πρώτη φορά από την Texas Instruments στην Πολεμική Αεροπορία των Ηνωμένων Πολιτειών το 1961. Την ίδια χρονιά, η ιδέα της μνήμης στερεής κατάστασης (solid state memory) σε ένα τσιπ ολοκληρωμένου κυκλώματος (IC) προτάθηκε από τον μηχανικός εφαρμογών Bob Norman στην Fairchild Semiconductor. Η πρώτη διπολική ημιαγωγικό μνήμη IC chip ήταν το SP95 που εισήχθη από την IBM το 1965. Ενώ η μνήμη ημιαγωγού προσέφερε βελτιωμένη απόδοση σε σχέση με τη μνήμη μαγνητικού πυρήνα, παρέμεινε μεγαλύτερη και ακριβότερη, και δεν αντικατέστησε την δεύτερη μέχρι τα τέλη της δεκαετίας του 1960.

### Μνήμη MOS
Η εφεύρεση του MOS (Metal-oxide-semiconductor) τρανζίστορ επίδρασης πεδίου (MOSFET) επέτρεψε την πρακτική χρήση τρανζίστορ MOS ως κελιά μνήμης για στοιχεία αποθήκευσης. Η μνήμη MOS αναπτύχθηκε από τον John Schmidt στο Fairchild Semiconductor το 1964. Εκτός από υψηλότερες επιδόσεις, η ημιαγωγική μνήμη MOS ήταν φθηνότερη και κατανάλωνε λιγότερη ενέργεια από τη μνήμη μαγνητικού πυρήνα. Η ανάπτυξη της τεχνολογίας ολοκληρωμένων κυκλωμάτων MOS (MOS IC) πύλων πυρίτιου από τον Federico Faggin στο Fairchild το 1968 επέτρεψε την παραγωγή chip μνήμης MOS. Η μνήμη NMOS βγήκε στην αγορά από την IBM στις αρχές της δεκαετίας του 1970. Η μνήμη MOS ξεπέρασε την μνήμη μαγνητικού πυρήνα ως κυρίαρχη τεχνολογία μνήμης στις αρχές της ίδιας δεκαετίας.

Οι δύο κύριοι τύποι πτητικής μνήμης τυχαίας προσπέλασης (RAM) είναι η Στατική μνήμη τυχαίας προσπέλασης (SRAM) και η δυναμική μνήμη τυχαίας πρόσβασης (DRAM). Η διπολική SRAM εφευρέθηκε από τον Robert Norman στην Fairchild Semiconductor το 1963, και έπειτα αναναπτύχθηκε η MOS SRAM από τον John Schmidt στο Fairchilde το 1964. Η SRAM αποτελεί μια εναλλακτική λύση αντί της μνήμης μαγνητικού πυρήνα, αλλά απαιτεί έξι τρανζίστορες για κάθε κομμάτι δεδομένων. Η εμπορική χρήση της SRAM ξεκίνησε το 1965, όταν η IBM εισήγαγε το τσιπ SP95 SRAM για το System/360 Model 95.

Η Toshiba εισήγαγε DRAM κελιά μνήμης για τον ηλεκτρονική υπολογιστή Toscal BC-1411 το 1965. Η διπολική DRAM, ενώ προσέφερε βελτιωμένη απόδοση, δεν μπορούσε να ανταγωνιστεί την χαμηλότερη τιμή της τότε ακόμα κυρίαρχης μνήμης μαγνητικού πυρήνα. Η τεχνολογία MOS έθεσε τα θεμέλια για τη σύγχρονη DRAM. Το 1966, ο Ρόμπερτ Χ. Ντέναρντ στο ερευντικό κέντρο Thomas J. Watson της IBM εργάστηκε πάνω στη μνήμη MOS. Εξετάζοντας τα χαρακτηριστικά της τεχνολογίας MOS, διαπίστωσε ότι ήταν δυνατό να κατασκευαστούν κατά τέτοιον τρόπο πυκνωτές MOS ώστε η αποθήκευση ή μη φορτίου να αντιπροσωπεύει το 1 και το 0 ενός bit, ενώ το transistor MOS θα μπορούσε να ελέγχει την γραφή της φόρτισης στον πυκνωτή. Αυτό οδήγησε στην ανάπτυξη ενός μονού-τρανζίστορ DRAM κελιού μνήμης. Το 1967, ο Ντέναρντ κατέθεσε δίπλωμα ευρεσιτεχνίας για ένα ενός-τρανζίστορ DRAM κελιού μνήμης με βάση την τεχνολογία MOS. Αυτό οδήγησε στο πρώτο εμπορικό τσιπ με ολοκληρωμένο κύκλωμα DRAM, το Intel 1103 τον Οκτώβριο του 1970. Η Σύγχρονη δυναμική μνήμη τυχαίας πρόσβασης (Synchronous dynamic random-access memory - SDRAM) έκανε αργότερα το ντεμπούτο της με το chip Samsung KM48SL2000 το 1992.

Ο όρος *μνήμη* χρησιμοποιείται επίσης συχνά για να αναφέρεται σε μη πτητική μνήμη, συμπεριλαμβανομένης της Μνήμης μόνο ανάγνωσης (ROM) μέσω της μοντέρνας μνήμης flash. Η προγραμματιζόμενη μνήμη μόνο για ανάγνωση (PROM) εφευρέθηκε από τον Wen Tsing Chow το 1956, όσο εργαζόταν για το Τμήμα Arma της Αμερικανικής εταιρίας Bosch Arma. Το 1967, ο Dawon Kahng και ο Simon Sze του Bell Labs πρότειναν ότι η κινητή πύλη ενός ημιαγωγού MOS θα μπορούσε να χρησιμοποιηθεί για το κελί μιας επαναπρογραμματισμένης ROM, κάτι που οδήγησε τον Dov Frohman της Intel να εφεύρει την EPROM (PROM με δυνατότητα διαγραφής) το 1971. Η EEPROM (PROM με δυνατότητα ηλεκτρικής διαγραφής) αναπτύχθηκε από τον Yasuo Tarui, τον Yutaka Hayashi και τον Kiyoko Naga στο **AIST** στο Τόκυο το 1972. Η μνήμη flash εφευρέθηκε από τον Fujio Masuoka στην Toshiba στις αρχές της δεκαετίας του 1980. Ο Μασουόκα με τους συνεργάτες του παρουσίασαν την εφεύρεση της NOR μνήμης flash το 1984. Η Toshiba εισήγαγε στην αγορά τη μνήμη flash NAND το 1987.

Οι εξελίξεις στην τεχνολογία και τις οικονομίες κλίμακας έχουν καταστήσει δυνατούς τους λεγόμενους υπολογιστές πολύ μεγάλης μνήμης **** (VLM).

## Πτητική μνήμη
μικρογραφία|Διάφορα εξαρτήματα μνήμης που περιέχουν διαφορετικούς τύπους DRAM (από πάνω προς τα κάτω): DDR SDRAM, SDRAM, EDO DRAM, and FPM DRAM
Η πτητική μνήμη είναι η μνήμη του υπολογιστή η οποία απαιτεί ενέργεια για να διατηρήσει τις αποθηκευμένες πληροφορίες. Οι περισσότερες σύγχρονες ημιαγωγικές πτητικές μνήμες είναι είτε στατική RAM (SRAM) είτε δυναμική RAM (DRAM). Η DRAM είναι η κυρίαρχη σε προσωπικούς υπολογιστές. Η SRAM χρησιμοποιείται για το caching της CPU. H SRAM συναντάται επίσης σε μικρά ενσωματωμένα συστήματα που απαιτούν λιγοστή μνήμη. 

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

## Μη πτητική μνήμη
Η μη πτητική μνήμη διατηρεί τις αποθηκευμένες πληροφορίες ακόμη και όταν δεν είναι ενεργοποιημένη. Παραδείγματα μη πτητικής μνήμης περιλαμβάνουν Μνήμη μόνο ανάγνωσης (ROM), μνήμες flash, τα περισσότερα είδη μαγνητικών συσκευών αποθήκευσης υπολογιστών (π.χ. σκληροί δίσκοι, δισκέτες και μαγνητική ταινία), οπτικοί δίσκοι και πρώιμες τεχνικές αποθήκευσής υπολογιστών όπως το οι διάτρητες κάρτες.

Οι τεχνολογίες μη πτητικής μνήμης που αναπτύσσονται περιλαμβάνουν τη σιδηροηλεκτρική RAM, τη μαγνητική RAM ροπής μεταφοράς spin, τη SONOS, την αντιστατική RAM, τη μνημη racetrack, τη Nano-RAM, το 3D XPoint και άλλες.

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

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

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

### Εικονική μνήμη
Η εικονική μνήμη είναι ένα σύστημα όπου η φυσική μνήμη διαχειρίζεται το λειτουργικό σύστημα με τη βοήθεια μιας Μονάδα διαχείρισης μνήμης, η οποία είναι μέρος πολλών σύγχρονων επεξεργαστών. Επιτρέπει την παράλληλη χρήση πολλαπλών ειδών μνήμης. Για παράδειγμα, ορισμένα δεδομένα μπορούν να αποθηκευτούν στη RAM ενώ άλλα δεδομένα αποθηκεύονται σε σκληρούς δίσκους (π.χ. σε ένα swapfile), λειτουργώντας ως επέκταση της ιεραρχίας της μνήμης cache. Αυτό προσφέρει πολλά πλεονεκτήματα. Οι προγραμματιστές υπολογιστών δεν χρειάζεται πλέον να ανησυχούν για το πού αποθηκεύονται τα δεδομένα τους σε φυσικό επίπεδο ή για το αν ο υπολογιστής του τελικόυ χρήστη θα έχει αρκετή μνήμη. Το λειτουργικό σύστημα τοποθετεί τα ενεργά χρησιμοποιούμενα δεδομένα στην RAM, η οποία είναι πολύ γρηγορότερη από τους σκληρούς δίσκους. Όταν το μέγεθος της RAM δεν είναι επαρκές για να εκτελέσει όλα τα τρέχοντα προγράμματα, είναι πιθανό ο υπολογιστής να δαπανά περισσότερο χρόνο στην μεταφορά δεδομένων μεταξύ RAM και σκληρού δίσκου σε σχέση με την εκτέλεση διεργασιών. Αυτό είναι γνωστό ως λυγισμός (thrashing).

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

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

## Δείτε επίσης
* Μνήμη υπολογιστή
* Κρυφή μνήμη
* Μνήμη τυχαίας προσπέλασης

## Παραπομπές


## Εξωτερικοί σύνδεσμοι
* 

Κατηγορία:Ψηφιακά ηλεκτρονικά
Κατηγορία:Μνήμη υπολογιστή