JPaxilleas Δημοσ. 30 Νοεμβρίου 2023 Δημοσ. 30 Νοεμβρίου 2023 (επεξεργασμένο) Επειδή κάποιοι φίλοι εδώ στο Insomnia έχουν απορίες, σχετικά με τις μνήμες, τις τεχνολογίες που τις αφορούν και κάποια χαρακτηριστικά τους (που τα συναντάμε ολοένα και περισσότερο στις σύγχρονες μητρικές), είπα να κάνω μια προσπάθεια να τα μαζέψω όσο μπορώ σε αυτό το θέμα. Η μεγαλύτερη δυσκολία ήταν στην αποτύπωση στα Ελληνικά, κάποιων όρων, που δύσκολα μεταφράζονται με μια λέξη. Σε κάθε περίπτωση, ελπίζω με τις όποιες μεταφράσεις οι παρακάτω πληροφορίες να ειναι κατανοητές. Ορισμοί RAM. Η μνήμη RAM (Random Access Memory) ή μνήμη τυχαίας προσπέλασης, είναι ένας τύπος μνήμης που χρησιμοποιείται από τον υπολογιστή για τη προσωρινή αποθήκευση δεδομένων και επιτρέπει την πρόσβαση σε αποθηκευμένα δεδομένα με οποιαδήποτε σειρά. Αυτή η τυχαιότητα είναι από όπου προέρχεται το όνομα. Όπως και άλλοι τύποι μνήμης flash, απαιτεί σταθερή τροφοδοσία για την αποθήκευση των δεδομένων της. DIMM. Το DIMM σημαίνει «Dual Inline Memory Module» και είναι το φυσικό μέρος ενός υπολογιστή στο οποίο βρίσκεται η μνήμη RAM. Το DIMM είναι μακριές, στενές, λεπτές πλακέτες κυκλώματος με προεξοχές κατά μήκος μιας άκρης. Οι προεξοχές είναι γεμάτες με επίπεδες μεταλλικές ακίδες που μεταφέρουν δεδομένα μεταξύ της μνήμης και του υπολογιστή. Στην πραγματικότητα η γνωστή μνήμη RAM είναι οι μαύρες, ορθογώνιες μονάδες στην επιφάνεια του DIMM. DIMM vs DDR. Τεχνικά, δεν υπάρχει διαφορά μεταξύ οποιασδήποτε DDR μνήμης και DIMM, επειδή η μνήμη RAM DDR είναι απλά ένας τύπος DIMM. Η διαφορά μεταξύ μιας DDR μνήμης και DIMM, είναι κάτι σαν τη διαφορά μεταξύ ενός Opel και ενός αυτοκινήτου. DIMM & Ranks. Τις μνήμες DIMM τις βρίσκουμε σε τρεις διαμορφώσεις: διαμόρφωση μονής κατάταξης (single-rank), διπλής (dual-rank) ή τετραπλής κατάταξης (quad-rank), και κάθε διαμόρφωση / κατάταξη εκφράζεται ως xR. Μαζί, τα τσιπ μνήμης σε ένα DIMM ομαδοποιούνται σε μια κατάταξη των 64-bit δεδομένων. Εάν μια DIMM περιέχει τσιπ μνήμης μόνο στη μία πλευρά της πλακέτας τυπωμένου κυκλώματος (PCB), που περιέχει ένα μόνο κομμάτι δεδομένων 64-bit, αναφέρεται ως μονάδα μονής τάξης (1R). Μια μονάδα διπλής κατάταξης (2R) περιέχει τουλάχιστον δύο κομμάτια δεδομένων 64-bit, ένα κομμάτι σε κάθε πλευρά του PCB. Τα τετραπλά DIMM (4R) περιέχουν τέσσερα κομμάτια 64-bit, δύο κομμάτια σε κάθε πλευρά. Παράδειγμα Μνήμης μονής τάξης (1R) (RAM είναι οι μαύρες, ορθογώνιες μονάδες στην επιφάνεια του DIMM) Α. Κανάλια Επικοινωνίας (Memory Channels) Ένα κανάλι επικοινωνίας δεν είναι τίποτα άλλο παρά, ο «δρόμος» μέσω του οποίου πραγματοποιείται, η επικοινωνία του επεξεργαστή με την μνήμη του υπολογιστή και αντίστροφα. Η αρχιτεκτονική μνήμης πολλαπλών καναλιών (multi-channel) προσδιορίζεται από την αρχιτεκτονική του εκάστοτε επεξεργαστή, μνήμης, ελεγκτή μνήμης και μητρικής. Όλες οι σημερινές μητρικές, επεξεργαστές, ελεγκτές μνήμης, μνήμες υποστηρίζουν τουλάχιστον αρχιτεκτονική 2 καναλιών. Τον έλεγχο της επικοινωνίας (ο τροχονόμος) μεταξύ του επεξεργαστή και της μνήμης αναλαμβάνει ο ελεγκτής μνήμης (Memory Controller) του επεξεργαστή. Β. DIMMS ανά Κανάλι Επικοινωνίας Ανάλογα με τη μητρική μπορούν να χρησιμοποιηθούν πολλαπλές DIMM ανά κανάλι. Εάν χρησιμοποιείται μία DIMM ανά κανάλι, αυτή η διαμόρφωση αναφέρεται συνήθως ως 1 DIMM ανά κανάλι (1 DPC). 2 DIMM ανά κανάλι (2 DPC) και εάν χρησιμοποιούνται 3 DIMM ανά κανάλι, αυτή η διαμόρφωση αναφέρεται ως 3 DPC. Το παρακάτω σχήμα δείχνει μια γενική περιγραφή των παραπάνω. Υποθετικό Σύστημα με 12 θέσεις για μνήμες διαφορετικών τύπων με 4 κανάλια. Παράδειγμα: Ας χρησιμοποιήσουμε την αναλογία προϊόντων, αποθηκών, κύριας αποθήκευσης (CPU), δρόμων ως καναλιών επικοινωνίας και τάξεων/ραφιών ως διευθύνσεων μνήμης για να εξηγήσουμε την παρεμβολή καναλιών και κατάταξης. Φανταστείτε ότι έχετε 100 διαφορετικούς τύπους προϊόντων, με κάθε τύπο να περιέχει 20 είδη. Αυτά τα προϊόντα πρέπει να αποθηκευτούν σε δύο αποθήκες (που αντιπροσωπεύουν οι μνήμες DIMM) πριν διανεμηθούν στην κύρια αποθήκευση (CPU). Σενάριο 1: Μονό κανάλι (Ένας δρόμος) Αρχικά, υπάρχει μόνο ένας δρόμος (κανάλι επικοινωνίας) μεταξύ των αποθηκών και της κύριας αποθήκης. Κάθε αποθήκη (DIMM) μπορεί να θεωρηθεί ως μια ενιαία κατάταξη με πολλά ράφια (διευθύνσεις μνήμης) για την αποθήκευση των προϊόντων. Σε αυτό το σενάριο, εάν θέλετε να μεταφέρετε και τους 100 τύπους προϊόντων, θα πρέπει να τα φορτώσετε διαδοχικά στα φορτηγά (που αντιπροσωπεύουν τη μεταφορά δεδομένων). Αυτό σημαίνει ότι φορτώνετε προϊόντα από την πρώτη αποθήκη και μετά τη δεύτερη αποθήκη, προκαλώντας διαδοχική πρόσβαση (παρόμοια με την πρόσβαση στη μνήμη ενός καναλιού). Ένα κανάλι με τρείς μνήμες σε μια μητρική με 4 θέσεις για μνήμες Σενάριο 2: Πολλαπλά κανάλια (δύο δρόμοι) Τώρα, ας εισαγάγουμε έναν επιπλέον δρόμο (κανάλι επικοινωνίας) μεταξύ των αποθηκών και της κύριας αποθήκευσης. Κάθε δρόμος αντιπροσωπεύει ένα ξεχωριστό κανάλι μνήμης. Με δύο δρόμους, μπορείτε να φορτώσετε προϊόντα ταυτόχρονα σε δύο διαφορετικά φορτηγά. Αυτό επιτρέπει την παράλληλη μεταφορά προϊόντων και από τις δύο αποθήκες (DIMM) στην κύρια αποθήκευση (CPU). Αυτός ο παραλληλισμός επιτρέπει την ταχύτερη μεταφορά και των 100 τύπων προϊόντων καθώς και οι δύο δρόμοι μπορούν να χρησιμοποιηθούν ταυτόχρονα, μειώνοντας τον χρόνο που απαιτείται για τη μεταφορά όλων των προϊόντων. Γ. Συνδυαστική Κατάταξη (Interleaving) Μια και ο καλύτερος ορισμός που βρήκα, είναι «η δυνατότητα να συνδυάζονται διαφορετικά πράγματα, έτσι ώστε μέρη ενός πράγματος να τοποθετούνται μεταξύ τμημάτων ενός άλλου πράγματος», ας ονομάσουμε τη εν λόγω τεχνική, ως «συνδυαστική κατάταξη». Για να εξηγήσουμε τη συνδυαστική κατάταξη, θεωρούμε κάθε αποθήκη ως DIMM με πολλαπλά Ranks (δωμάτια). Κάθε rank / δωμάτιο περιέχει ράφια (διευθύνσεις μνήμης) όπου αποθηκεύονται διαφορετικοί τύποι προϊόντων (δεδομένα). Με τη συνδυαστική κατάταξη ενεργοποιημένη, κατά τη μεταφορά των προϊόντων, αντί να φορτώνετε όλα τα προϊόντα από ένα rank / δωμάτιο (και από μια αποθήκη) κάθε φορά στα φορτηγά, εναλλάσσεστε μεταξύ δωματίων (από όλες τις αποθήκες). Για παράδειγμα, φορτώνετε μερικά προϊόντα από το πρώτο rank / δωμάτιο, μετά μερικά από το δεύτερο rank / δωμάτιο και ούτω καθεξής (από μια ή περισσότερες αποθήκες). Αυτή η παρεμβολή βοηθά στην κατανομή του φορτίου σε διαφορετικά rank / δωμάτια και επιτρέπει την καλύτερη και την ταυτόχρονη πρόσβαση στα δεδομένα, βελτιστοποιώντας το εύρος ζώνης της μνήμης και επιταχύνοντας τη μεταφορά δεδομένων. Συμπέρασμα: Συνοπτικά, πολλαπλά κανάλια (δρόμοι) επιτρέπουν την ταυτόχρονη μεταφορά δεδομένων, μειώνοντας την καθυστέρηση και αυξάνοντας την απόδοση. Η συνδυαστική κατάταξη διασφαλίζει την πρόσβαση στα δεδομένα σε διαφορετικά rank / δωμάτια και αποθήκες, βελτιώνοντας την αποτελεσματικότητα πρόσβασης στη μνήμη κατανέμοντας το φόρτο εργασίας στις διαθέσιμες διευθύνσεις μνήμης. Συνδυάζοντας και τις δυο τεχνολογίες το εκάστοτε σύστημα βελτιστοποιεί τον τρόπο με τον οποίο πραγματοποιείται η προσπέλαση στις μνήμες, με τον ίδιο τρόπο που θα χρησιμοποιούσαμε πολλαπλούς δρόμους και παίρνοντας προϊόντα από πολλαπλά δωμάτια των αποθηκών για να βελτιστοποιήσουμε τη μεταφορά τους στην κύρια αποθήκη μας (τον επεξεργαστή στην περίπτωσή μας). Για να κατανοήσουμε γιατί η πρόσβαση σε πολλά ranks / δωμάτια είναι πιο αποτελεσματική, ας διερευνήσουμε πώς λειτουργεί η πρόσβαση στη μνήμη σε ένα σύστημα με πολλαπλά ranks / δωμάτια και γιατί η συνδυαστική κατάταξη (Interleaving) μπορεί να βελτιώσει την απόδοση. Σε ένα σύστημα υπολογιστή με πολλαπλά ranks / δωμάτια ανά DIMM η ταυτόχρονη πρόσβαση σε πολλά ranks / δωμάτια επιτρέπει την ταυτόχρονη ανάκτηση ή αποθήκευση δεδομένων. Όταν ένα rank / δωμάτιο είναι απασχολημένο ή σε κατάσταση λανθάνουσας κατάστασης (π.χ. εκτελώντας έναν κύκλο ανανέωσης) ή στο παράδειγμά μας σε ένα φορτηγό έσκασε το λάστιχο, ο επεξεργαστής μπορεί να έχει πρόσβαση σε άλλο rank / δωμάτιο (στέλνοντας άλλο φορτηγό), μειώνοντας έτσι τους χρόνους αναμονής και αυξάνοντας το συνολικό εύρος ζώνης μνήμης. Αντί να περιμένει ένα rank / δωμάτιο για να ολοκληρώσει ένα αίτημα, ο επεξεργαστής μπορεί να έχει πρόσβαση σε διαφορετικά ranks / δωμάτια ταυτόχρονα ή με κλιμακωτό τρόπο, μεγιστοποιώντας την αποτελεσματικότητα πρόσβασης στη μνήμη. Παράδειγμα: Φανταστείτε ότι ο επεξεργαστής χρειάζεται να διαβάσει ένα μεγάλο αρχείο. Χωρίς τη συνδυαστική κατάταξη (Interleaving), όλα τα δεδομένα ενδέχεται να αποθηκευτούν σε ένα μόνο rank / δωμάτιο. Η πρόσβαση σε αυτά τα δεδομένα θα απαιτούσε διαδοχική πρόσβαση, η οποία ενδέχεται να οδηγήσει σε περιορισμούς απόδοσης λόγω της σειριακής φύσης της λειτουργίας. Με τη συνδυαστική κατάταξη (Interleaving), τα δεδομένα κατανέμονται σε πολλαπλά ranks / δωμάτια. Αυτό επιτρέπει στον επεξεργαστή να διαβάζει ή να γράφει μέρη των δεδομένων ταυτόχρονα από διαφορετικά ranks / δωμάτια, βελτιώνοντας την απόδοση χρησιμοποιώντας παραλληλισμό (σε ένα κύκλο λειτουργίας / cycle ο επεξεργαστής διαβάζει ή γράφει πιο πολλά δεδομένα, ενώ με σειριακό τρόπο θα ήθελε περισσότερους κύκλους λειτουργίας και άρα περισσότερο χρόνο ή εναλλακτικά στο παράδειγμά μας πολλά φορτηγά πηγαίνουν σε διαφορετικές αποθήκες στη μονάδα του χρόνου για να πάρουν ή να αποθηκεύσουν προϊόντα, ενώ στη δεύτερη ένα φορτηγό πρέπει να πάρει τα ίδια προϊόντα σε περισσότερες μονάδες χρόνου). Δ. Αλγόριθμος Ελεγκτή Μνήμης & Επεξεργαστή Ο συγκεκριμένος αλγόριθμος που χρησιμοποιείται από τους ελεγκτές μνήμης και τις CPU για την αποθήκευση δεδομένων σε DIMM και ranks μπορεί να ποικίλλει ανάλογα με την αρχιτεκτονική, την τεχνολογία μνήμης και το σχεδιασμό της πλατφόρμας. Ωστόσο, ορισμένες στρατηγικές και μηχανισμοί χρησιμοποιούνται συνήθως για την αποτελεσματική διαχείριση της αποθήκευσης δεδομένων και της πρόσβασης (και από αυτά τα χαρακτηριστικά διαφαίνεται καλύτερα πως η ταχύτητα πρόσβασης δεδομένων από και προς τη μνήμη, εξαρτάται από τον αριθμό των καναλιών ή συγκεκριμένων χαρακτηριστικών των υποσυστημάτων μνήμης και επεξεργαστή). Επικοινωνία μεταξύ Επεξεργαστή & Μνήμης & Υποσυστημάτων Σειριακός και Κυκλικός Τρόπος: Με σειριακό τρόπο εκχωρούνται διαδοχικές διευθύνσεις μνήμης σε διαφορετικά ranks / δωμάτια, ενώ με άλλον τρόπο διανέμονται διαδοχικές διευθύνσεις σε διαφορετικά ranks / δωμάτια με κυκλικό τρόπο. Παράδειγμα Σειριακού και Παράλληλου Interleaving Ανάγνωση Δεδομένων: Όταν η CPU ζητά δεδομένα, ο ελεγκτής μνήμης ανακτά τα δεδομένα από την καθορισμένη θέση μνήμης. Ανάλογα με την οργάνωση του συστήματος, μπορεί να χρησιμοποιεί παραλληλισμό, ή άλλους τρόπους για τη βελτιστοποίηση των λειτουργιών ανάγνωσης. Εγγραφή Δεδομένων: Η εγγραφή δεδομένων περιλαμβάνει την αποθήκευση πληροφοριών σε κελιά μνήμης. Ο ελεγκτής μνήμης διαχειρίζεται τη διαδικασία εγγραφής, η οποία μπορεί να περιλαμβάνει αποθήκευση δεδομένων στην προσωρινή μνήμη, πριν την εγγραφή τους στη μνήμη για βελτιστοποίηση της απόδοσης. Και εδώ, ανάλογα με την οργάνωση του συστήματος χρησιμοποιούνται διαφορετικές τεχνικές για τη βελτίωση της αποτελεσματικότητας εγγραφής. Ανανέωση Μνήμης: Η μνήμη απαιτεί περιοδικούς κύκλους ανανέωσης για τη διατήρηση της ακεραιότητας των αποθηκευμένων δεδομένων. Οι ελεγκτές μνήμης διαχειρίζονται αυτούς τους κύκλους ανανέωσης, διασφαλίζοντας ότι κάθε σειρά μνήμης ανανεώνεται εντός του καθορισμένου διαστήματος ανανέωσης, για την αποφυγή απώλειας δεδομένων. Σήματα Ελέγχου: Υπάρχουν παραλλαγές στα σήματα ελέγχου και τις απαιτήσεις χρονισμού για να ενεργοποιηθούν οι λειτουργίες εγγραφής, όπως η ενεργοποίηση της κατάλληλης γραμμής και στήλης πριν από την εγγραφή δεδομένων. Καθυστέρηση και Χρόνος: Οι λειτουργίες εγγραφής ενδέχεται να έχουν επιπλέον καθυστέρηση σε σύγκριση με τις λειτουργίες ανάγνωσης λόγω απαιτήσεων όπως η προσωρινή αποθήκευση, η ανάκτηση εγγραφής και άλλοι περιορισμοί χρονισμού που σχετίζονται με την εγγραφή δεδομένων σε κελιά μνήμης. Συνοπτικά, οι ελεγκτές μνήμης εφαρμόζουν διάφορες στρατηγικές και αλγόριθμους για την αποτελεσματική διαχείριση της πρόσβασης στη μνήμη, τόσο για λειτουργίες ανάγνωσης όσο και για λειτουργίες εγγραφής. Παράδειγμα: Ας εξετάσουμε ένα σενάριο με πολλαπλά ranks / δωμάτια και κατατάξεις μνήμης (ράφια) εντός μιας ή σε διαφορετικές μνήμες. Όταν ο επεξεργαστής έχει πρόσβαση σε διαδοχικές διευθύνσεις μνήμης (π.χ. στις διευθύνσεις 0, 1, 2, 3, 4...), ο ελεγκτής μνήμης διανέμει αυτές τις διευθύνσεις σε ranks / δωμάτια με κυκλικό μοτίβο. Παράδειγμα Interleaving Για παράδειγμα, σε ένα σύστημα με τέσσερις τάξεις (R0, R1, R2, R3) και διαδοχικές διευθύνσεις: Η διεύθυνση 0 θα αποθηκευτεί στο Rank 0 (R0). Η διεύθυνση 1 θα αποθηκευτεί στο Rank 1 (R1). Η διεύθυνση 2 θα αποθηκευτεί στο Rank 2 (R2). Η διεύθυνση 3 θα αποθηκευτεί στο Rank 3 (R3). Η διεύθυνση 4 επαναλαμβάνοντας τη προηγούμενη διαδικασία θα αποθηκευτεί στο Rank 0 (R0) ξανά, και ούτω καθεξής. Με αυτό τον τρόπο διασφαλίζεται ότι οι διαδοχικές διευθύνσεις δεν αποθηκεύονται όλες στο ίδιο rank / δωμάτιο, κάτι που βοηθά στη διανομή των αιτημάτων πρόσβασης στη μνήμη σε πολλές τράπεζες μνήμης (banks). Επικοινωνία μεταξύ Επεξεργαστή & Μνήμης & Υποσυστημάτων & Πολλαπλές τράπεζες μνήμης (banks). Επεξ/σία 30 Νοεμβρίου 2023 από JPaxilleas 5
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα