Next              Up                Back               Contents

Επόμενο:3.4 Δίκτυα διασύνδεσης Επεξεργαστή-Μνήμης Πάνω: Κεφάλαιο 3ο :Αρχιτεκτονική συστημάτων διαμοιραζόμενης μνήμης. Πίσω:3.2 Κρυφή Μνήμη


 

3.3 Πολλαπλά Τμήματα Μνήμης.

 

Για την παραπέρα βελτίωση της απόδοσης στα συστήματα διαμοιραζόμενης μνήμης, η διαμοιραζόμενη μνήμη μπορεί να διαιρεθεί σε πολλαπλά τμήματα, τα οποία μπορούν να προσπελαστούν παράλληλα από διαφορετικούς επεξεργαστές. Το Σχήμα 1.2 δείχνει την γενική δομή ενός τέτοιου συστήματος προσπέλασης πολυτμηματικής μνήμης σε υπολογιστές διαμοιραζόμενης μνήμης. Οι n φυσικοί επεξεργαστές έχουν όλοι πρόσβαση στο κοινό σύστημα διαμοιραζόμενης μνήμης. Η μνήμη αποτελείται από m ανεξάρτητα τμήματα μνήμης. Ένα σύστημα μεταγωγής επιτρέπει σε κάθε επεξεργαστή να έχει πρόσβαση σε κάθε θέση μνήμης σε οποιοδήποτε τμήμα της μνήμης. Το σύστημα μνήμης θα εξακολουθεί να φαίνεται στους επεξεργαστές σαν ένας χώρος αδιαίρετης διαμοιραζόμενης μνήμης, που προσπελαύνεται από συνηθισμένους μηχανισμούς διευθυνσιοδότησης μνήμης. Κάθε αναφορά μνήμης από οποιονδήποτε επεξεργαστή μέσω του συστήματος μεταγωγής, απ’ όπου αυτόματα δρομολογείται στο κατάλληλο φυσικό τμήμα μνήμης. Με αυτό το σύστημα πολυτμηματικής μνήμης πολλές αιτήσεις μνήμης μπορούν να εξυπηρετηθούν ταυτόχρονα έτσι ώστε να μειωθούν οι πιθανότητες ανταγωνισμού πρόσβασης στη μνήμη.

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

Συχνά παρατηρείται ότι οι επεξεργαστές προσπελαύνουν παρακείμενες διευθύνσεις μνήμης. Αυτό συμβαίνει κατά τη διάρκεια προσπέλασης μεγάλων πινάκων δεδομένων. Το πρόγραμμα είναι επίσης αποθηκευμένο στη μνήμη τα οποία προσπελαύνονται από κάθε επεξεργαστή σε διαδοχικές θέσεις μνήμης. Σε αυτές τις περιπτώσεις για να μειωθεί ο ανταγωνισμός πρόσβασης στη μνήμη, παρακείμενες διευθύνσεις μνήμης ανατίθενται σε διαφορετικά τμήματα μνήμης όπως φαίνεται στο Σχήμα 3.3. Στο Σχήμα η διεύθυνση 0, βρίσκεται στο τμήμα μνήμης 0, η διεύθυνση μνήμης 1 βρίσκεται στο τμήμα μνήμης 1, η διεύθυνση 2 είναι στο τμήμα 2 και η διεύθυνση 3 είναι στο τμήμα 3. Στη συνέχεια η διεύθυνση 4 αφού περάσει μια φορά από όλα τα τμήματα ξεκινάει ξανά από το τμήμα 0. Με αυτό τον τρόπο οι παρακείμενες διευθύνσεις μνήμης διασκορπίζονται στα τέσσερα τμήματα μνήμης. Είναι ενδιαφέρον να εξετάσετε με λεπτομέρεια πως αυτή η κατανομή των διευθύνσεων μνήμης, βοηθάει στην μείωση του ανταγωνισμού πρόσβαση στη μνήμη, κατά τη διάρκεια της σειριακής πρόσβασης από κάθε επεξεργαστή στις παρακείμενες διευθύνσεις μνήμης.

 

 

Module 0

Module 1

Module 2

Module 3

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

.

.

.

.

.

.

.

.

.

.

.

.

 

ΣΧΗΜΑ 3.3 Κατανομή των διευθύνσεων μνήμης στα τμήματα μνήμης.

 

Υποθέστε ένα παράλληλο πρόγραμμα που έχει σαν αποτέλεσμα καθένας από τους τέσσερις φυσικούς επεξεργαστές να προσπελαύνει παρακείμενες διευθύνσεις μνήμης 0, 1, 2, 3, 4,..., 100. Αυτό παρουσιάζεται στο χρονοδιάγραμμα του Σχήματος 3.4 που δείχνει τις αναφορές στην μνήμη από κάθε επεξεργαστή κατά τη διάρκεια ενός χρονικού διαστήματος. Η διαδοχή του δίνεται στον κάθετο άξονα.

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

 

 

Processor 1

Processor 2

Processor 3

Processor 4

0

0

0

0

1

1

1

1

2

2

2

2

3

3

3

3

4

4

4

4

5

5

5

5

6

6

6

6

7

7

7

7

8

8

8

8

.

.

.

.

.

.

.

.

.

.

.

.

100

100

100

100

 

ΣΧΗΜΑ 3.4 Πρότυπο πρόσβασης παρακείμενων διευθύνσεων μνήμης.

 

Αρχικά όταν ξεκινούν οι τέσσερις επεξεργαστές, υπάρχει ανταγωνισμός για την διεύθυνση μνήμης 0. Ας υποθέσουμε ότι ο Επεξεργαστής 0 είναι αυτός που πρώτος κερδίζει πρόσβαση στη διεύθυνση μνήμης 0, που είναι τοποθετημένη στο τμήμα μνήμης 0. Οι Επεξεργαστές 2 - 4 πρέπει να περιμένουν τον επεξεργαστή 1 να τελειώσει. Όταν ο Επεξεργαστής 1 πηγαίνει στην επόμενη διεύθυνση μνήμης 1, τότε ο Επεξεργαστής 2 θα αποκτήσει πρόσβαση στη διεύθυνση μνήμης 0. Ακολουθεί ο Επεξεργαστής 2, και τελικά οι Επεξεργαστές 3 και 4 που θα αποκτήσουν πρόσβαση στην διεύθυνση μνήμης 0. Αυτή η αρχική καθυστέρηση του κάθε επεξεργαστή να προσπελάσει τη διεύθυνση μνήμης 0, αλλάζει το πρότυπο πρόσβασης στη μνήμη, όπως φαίνεται στο Σχήμα 3.5.

 

 

Processor 1

Processor 2

Processor 3

Processor 4

0

*

*

*

1

0

*

*

2

1

0

*

3

2

1

0

4

3

2

1

5

4

3

2

6

5

4

3

7

6

5

4

8

7

6

5

9

8

7

6

10

9

8

7

11

10

9

8

.

.

.

.

.

.

.

.

.

.

.

.

100

99

98

97

 

100

99

98

   

100

99

     

100

ΣΧΗΜΑ 3.5 Αλλάζοντας το πρότυπο της πρόσβασης μνήμης για την εξάλειψη του ανταγωνισμού.

 

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

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


     Next              Up                Back               Contents

Επόμενο:3.4 Δίκτυα διασύνδεσης Επεξεργαστή-Μνήμης Πάνω: Κεφάλαιο 3ο :Αρχιτεκτονική συστημάτων διαμοιραζόμενης μνήμης. Πίσω:3.2 Κρυφή Μνήμη