Προς το περιεχόμενο

Multi-Channel Memory vs RAID


Apollo69

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Πρώτα απ' όλα η μικρότερη υποδιαίρεση της μνήμης δεν είναι το module. Τα modules έχουν Ranks, και τα ranks αποτελούνται από τσιπάκια μνήμης, τα οποία αποτελούνται από banks. Η διαίρεση των δεδομένων, λοιπόν, δεν γίνεται μόνο μεταξύ των modules.

Για να δεις πώς λειτουργεί η DRAM ρίξε μια ματιά σε αυτά τα αρκετά ενδιαφέροντα βίντεο. Εστιάζεις στα 5-7.

Οπότε,  το dual/triple/quad channel τι σημαίνει; Πρακτικά ότι υπάρχουν διαφορετικές γραμμές δεδομένων (επιπλέον), ώστε τα modules να μπορούν ταυτόχρονα να γραφούν/διαβαστούν σε ζευγάρια/τριάδες/τετράδες.

Ο controller μπορεί να διαβάσει/γράψει είτε από μεμονωμένο module, είτε από ζευγάρι/τριάδα/τετράδα με μία ενέργεια, αν υποστηρίζεται το multichannel. Άρα πάμε στο τι γράφουμε και πώς το γράφουμε στη μνήμη.

Επεξ/σία από Orestis_G
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 53
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσιευμένες Εικόνες

3 ώρες πριν, Orestis_G είπε

Πρώτα απ' όλα η μικρότερη υποδιαίρεση της μνήμης δεν είναι το module. Τα modules έχουν Ranks, και τα ranks αποτελούνται από τσιπάκια μνήμης, τα οποία αποτελούνται από banks. Η διαίρεση των δεδομένων, λοιπόν, δεν γίνεται μόνο μεταξύ των modules.

Για να δεις πώς λειτουργεί η DRAM ρίξε μια ματιά σε αυτά τα αρκετά ενδιαφέροντα βίντεο. Εστιάζεις στα 5-7.

Οπότε,  το dual/triple/quad channel τι σημαίνει; Πρακτικά ότι υπάρχουν διαφορετικές γραμμές δεδομένων (επιπλέον), ώστε τα modules να μπορούν ταυτόχρονα να γραφούν/διαβαστούν σε ζευγάρια/τριάδες/τετράδες.

Ο controller μπορεί να διαβάσει/γράψει είτε από μεμονωμένο module, είτε από ζευγάρι/τριάδα/τετράδα με μία ενέργεια, αν υποστηρίζεται το multichannel. Άρα πάμε στο τι γράφουμε και πώς το γράφουμε στη μνήμη.

Αυτό είναι η λεπτομέρεια που δεν χρειάζομαι. Πότε είπα ότι με ενδιαφέρει μικρότερη υποδιαίρεση; Module τελεία. Όπως έχουμε την Αποθήκη (το Κτίριο το συγκρότημα θα ήταν Αποθήκες πληθυντικός).

 

Ένα κτίριο έχει δωμάτια έχει ράφια με τα οποία δεν ασχολήθηκα. Δεν με ενδιαφέρουν τα 500 π.χ κιλά που θα πάνε στην αποθήκη σε ποιο δωμάτιο ή σε ποιο ράφι θα πάνε. Δεν με ενδιαφέρει η οργάνωση. Πήγαν στην αποθήκη Α αυτό μου χρειάζεται μόνο

 

Εγώ από έξω βλέπω 1 κτίριο και αφου θες να κάνουμε "παραδοχές" (απλοποιήσεις) μου αρκεί να δούμε ως 1. Παραείναι λεπτομέρεια το ποιο δωμάτιο και ποιο ράφι. Δεν μου χρειάζεται. Λογικά και ο δίσκος θα έχει υποδιαιρέσεις αλλά εγώ στο σχήμα βλέπω D1, D2, D3. 3 Δίσκους χωρίς παραπάνω λεπτομέρεια.

 

Δεν με ενδιαφέρει περαιτέρω διαίρεση μέσα στο ίδιο το module.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ο controller μπορεί να διαβάσει/γράψει είτε από μεμονωμένο module, είτε από ζευγάρι/τριάδα/τετράδα με μία ενέργεια, αν υποστηρίζεται το multichannel.

Εδώ τελειώνει η ιστορία. Προφανώς αν γράψει πάνω από 64 bits και δουλεύει dual channel μπορεί να τα γράψει σε 2 modules ταυτόχρονα, αλλιώς θα γράψει σε ένα module.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

6 ώρες πριν, Orestis_G είπε

Ο controller μπορεί να διαβάσει/γράψει είτε από μεμονωμένο module, είτε από ζευγάρι/τριάδα/τετράδα με μία ενέργεια, αν υποστηρίζεται το multichannel.

Εδώ τελειώνει η ιστορία. Προφανώς αν γράψει πάνω από 64 bits και δουλεύει dual channel μπορεί να τα γράψει σε 2 modules ταυτόχρονα, αλλιώς θα γράψει σε ένα module.

Για τους σκληρούς μπόρεσες να μου πεις τα μονά στον ένα τα ζυγά στον άλλο. 8 λέξεις. Δεν ήταν δα και τόσο δύσκολο.

 

 

Δεν ήταν ερώτηση που μπορεί αλλά που τα γράφει. Και το σε 2 modules ταυτόχρονα τα κάνει μπάχαλο.

 

Στο mirroring τα ίδια αρχεία γράφει (γράφει το 1 εδώ και εκείνει την ώρα κάνει και 1 αντίγραφο)

Στο striping γράφει άλλα αρχεία (λογικώς επακόλουθα).

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν προσέχεις τι σου γράφω και βγάζεις τα δικά σου συμπεράσματα. Φταίω εγώ που δεν έγραψα από την αρχή "κάνει ό,τι το RAID 0", να κάτσω να ησυχάσω μετά.

ΟΚ, λοιπόν, κράτα το έτσι στο μυαλό σου. Στο βαθμό που σε ενδιαφέρει δεν αλλάζει κάτι ιδιαίτερα.

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

1 ώρα πριν, Orestis_G είπε

Δεν προσέχεις τι σου γράφω και βγάζεις τα δικά σου συμπεράσματα. Φταίω εγώ που δεν έγραψα από την αρχή "κάνει ό,τι το RAID 0", να κάτσω να ησυχάσω μετά.

ΟΚ, λοιπόν, κράτα το έτσι στο μυαλό σου. Στο βαθμό που σε ενδιαφέρει δεν αλλάζει κάτι ιδιαίτερα.

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

 

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

 

Οκ δεν είναι λογικώς διαδοχικά τα δεδομένα αλλά τι είναι; Πως γίνεται (ποιο δεδομένο πάει σε ποιο module) το data storage (data spread για την ακρίβεια);

 

12 λέξεις θέλω και ένα σχήμα.

M1, M2, M3.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σου έχω παραθέσει link που εξηγεί αρκετά αναλυτικά την οργάνωση της μνήμης. Μπορείς να ρίξεις μια ματιά και να καταλάβεις τι γίνεται. Θα σου πάρει αντίστοιχο χρόνο με όσο θα μου έπαιρνε το σχήμα.

Για το dual channel απλά χρησιμοποιείς τα 2 modules σαν ένα, φαρδύτερο (κάνεις μια εγγραφή 128bit αντί για 2 των 64, με το πρώτο μισό στο πρώτο module και το υπόλοιπο στο δεύτερο). Άρα σε εγγραφή ικανού μεγέθους δεδομένων μπορείς να περιμένεις ότι η εγγραφή των μονών κομματιών των 64bit θα είναι στο πρώτο module και των ζυγών στο δεύτερο.

Τι γράφεται στη μνήμη λοιπόν: Δεδομένα προς επεξεργασία, εκτελεσιμος κώδικας, κατάσταση εκτέλεσης προγραμμάτων, κ.λπ.

Επιπλέον ο controller μπορεί να γράψει μόνο στο ένα module, ή και να γράψει δύο διαφορετικά πράγματα στα δύο modules ξεκινώντας την προσπέλαση στο δεύτερο πριν τελειώσει η διαδικασία εγγραφής στο πρώτο.

Ο controller της μνήμης είναι πιο low level από αυτόν του RAID, ο οποίος έχει από κάτω του και τον controller του δίσκου.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

1 ώρα πριν, Orestis_G είπε

Σου έχω παραθέσει link που εξηγεί αρκετά αναλυτικά την οργάνωση της μνήμης. Μπορείς να ρίξεις μια ματιά και να καταλάβεις τι γίνεται. Θα σου πάρει αντίστοιχο χρόνο με όσο θα μου έπαιρνε το σχήμα.

Για το dual channel απλά χρησιμοποιείς τα 2 modules σαν ένα, φαρδύτερο (κάνεις μια εγγραφή 128bit αντί για 2 των 64, με το πρώτο μισό στο πρώτο module και το υπόλοιπο στο δεύτερο). Άρα σε εγγραφή ικανού μεγέθους δεδομένων μπορείς να περιμένεις ότι η εγγραφή των μονών κομματιών των 64bit θα είναι στο πρώτο module και των ζυγών στο δεύτερο.

Τι γράφεται στη μνήμη λοιπόν: Δεδομένα προς επεξεργασία, εκτελεσιμος κώδικας, κατάσταση εκτέλεσης προγραμμάτων, κ.λπ.

Επιπλέον ο controller μπορεί να γράψει μόνο στο ένα module, ή και να γράψει δύο διαφορετικά πράγματα στα δύο modules ξεκινώντας την προσπέλαση στο δεύτερο πριν τελειώσει η διαδικασία εγγραφής στο πρώτο.

Ο controller της μνήμης είναι πιο low level από αυτόν του RAID, ο οποίος έχει από κάτω του και τον controller του δίσκου.

Νομίζω δεν ρώτησα δεν ενδιαφέρομαι για την οργάνωση (το τάδε block πάει στο τάδε module αυτό θα μου αρκούσε, νομίζω η οργάνωση αναφέρεται στο τι γίνεται μέσα στο module σε ποια ράφια μπαίνουν ας πούμε).

 

Θα με ικανοποιούσε αυτό που είπες "η εγγραφή των μονών κομματιών των 64bit θα είναι στο πρώτο module και των ζυγών στο δεύτερο."

 

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

 

Και το μπορείς να περιμένεις είναι χλιαρό. Δεν μου δίνει την ίδια σιγουριά. Τι σημαίνει μπορώ να περιμένω;

 

Διάβασα 7-8 φορές την κάθε απάντηση και δεν βλέπω τι έγραψες και δεν πρόσεξα και τι ακριβώς συμπέρασμα έβγαλα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

 

2) Γιατί αν τα δεδομένα δεν είναι "ικανού μεγέθους" τότε δεν θα φτάσει το μέγεθός τους για να γίνει αυτό το πράγμα. Αν είναι ας πούμε 68 bits τα δεδομένα, τότε θα γεμίσει μία σειρά του πρώτου module και μόλις 4 bits από το δεύτερο.

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...