Προηγμένες Αρχιτεκτονικές Υπολογιστών Εισαγωγή Κ. Διαμαντάρας Α. Βαφειάδης Τμήμα Πληροφορικής ΑΤΕΙ Θεσσαλονίικης 2011
Στοιχεία επικοινωνίας Καθηγητής : Κώστας Διαμαντάρας Email: kdiamant@it.teithe.gr URL: http://www.it.teithe.gr/~kdiamant Τηλ. 2310 013592 Σημειώσεις, ανακοινώσεις και διαφάνειες στο http://blackboard.teithe.gr Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Περιεχόμενα Μαθήματος Εισαγωγή: προηγμένες αρχιτεκτονικές και παράλληλη επεξεργασία, ταξινόμηση συστημάτων SISD, MISD, SIMD, MIMD, ταξινόμηση UMA, NUMA, μοντέλα μνήμης (κοινή μνήμη, κατανεμημένη μνήμη), μοντέλο μεταγωγής μηνυμάτων, πολυεπεξεργαστές, πολυυπολογιστές Τεχνολογία της μνήμης: τεχνολογία της ιεραρχημένης μνήμης, οργάνωση της μνήμης cache, τοποθέτηση και αναζήτηση δεδομένων στην cache, εκτίμηση επίδοσης μιας cache, μέθοδοι βελτίωσης της επίδοσης μιας cache, διαχείριση πολλαπλών cache, το πρόβλημα cache coherence, πρωτόκολλα snooping, directory-based Pipelining: Το pipeline των εντολών, οι φάσεις εκτέλεσης μιας εντολής, η γλώσσα DLX, pipeline της DLX, οι κίνδυνοι της pipeline, η pipeline της μονάδας κινητής υποδιαστολής, κανονικοποίηση, η πράξη της πρόσθεσης, η πράξη του πολλαπλασιασμού, έλεγχος της pipeline. Παράλληλος προγραμματισμός: ο Νόμος του Amdahl, σηματοφορείς, κλείδωμα, συγχρονισμός, αδιέξοδα και αποφυγή τους Παραλληλοποίηση: γράφος εξάρτησης, εμφωλευμένοι βρόχοι, απεικόνιση αλγορίθμων, μέθοδοι γραμμικής απεικόνισης, χρονοδρομολόγηση, βέλτιστες μέθοδοι χ/δ για ειδικές περιπτώσεις, ευρηστικές μέθοδοι χ/δ Clusters και Grids: σχεδιαστικές επιλογές, το cluster της Google Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Ασκήσεις Πράξης, αξιολόγηση, τελική βαθμολογία Στις ασκήσεις πράξης θα γίνεται μάθημα MPI (Message Passing Interface). MPI = βιβλιοθήκη για συγγραφή παράλληλων προγραμμάτων σε cluster αποτελούμενα από απλά desktop μηχανήματα (πχ. Windows) σε δίκτυο. Προαιρετικά: δήλωση εργασίας στο MPI με συμμετοχή στον τελικό βαθμό 30% (+ 70% ο βαθμός της τελικής γραπτής εξέτασης) Διαφορετικά τελικός βαθμός = 100% ο βαθμός της τελικής γραπτής εξέτασης Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Περιεχόμενα Πρώτου Κεφαλαίου Ημερομηνίες σταθμοί στην ανάπτυξη των υπολογιστών Βασικά αρχιτεκτονικά στοιχεία των σύγχρονων υπολογιστών Εξέλιξη της τεχνολογίας Αξιολόγηση της απόδοσης μιας αρχιτεκτονικής Η επίδοση της CPU Ο νόμος του Amdahl Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Το αρχιτεκτονικό μοντέλο Von Neumann Ιεραρχία Μνήμης Μνήμη Κεντρική Μονάδα Επεξεργασίας Μονάδα Ελέγχου Καταχωρητές ALU Μετρητής Προγράμματος Συσκευή Εισόδου 1 Συσκευή Εισόδου Ν Συσκευή Εξόδου 1 Συσκευή Εξόδου Μ . . . . . Είσοδος / Έξοδος Δίαυλος (Bus) μνήμης Δίαυλος (Bus) I/O Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Βάσεις της Αρχιτεκτονικής εξέλιξης Pipelining: επιτρέπει ταυτόχρονη εκτέλεση πολλαπλών εντολών, έστω και σε διαφορετικές φάσεις η κάθε μια, από μια μόνο κεντρική επεξεργαστική μονάδα Παραλληλισμός: επιτρέπει την ταυτόχρονη εκτέλεση πολλαπλών εντολών με χρήση πολλών επεξεργαστικών μονάδων και Αρχή της τοπικότητας των κλήσεων: καθιστά ανταποδοτική την χρήση της κρυφής μνήμης (cache) και της εικονικής μνήμης (virtual memory). Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Τεχνολογικές εξελίξεις Μείωση μεγέθους τρανζίστορ αύξηση πλήθους τρανζίστορ στο chip. Μέγεθος chip περίπου σταθερό (1cm – 2cm) σε πλάτος και μήκος. Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Πλήθους τρανζιστορ ανά chip επεξεργαστή Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Εξέλιξη ταχύτητας ρολογιού CPU Παράδειγμα: Επεξεργαστές Intel Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Προκλήσεις αρχιτεκτονικής επεξεργαστών ~2004 : φτάσαμε στο όριο των τεχνολογικών καινοτομιών, είτε αφορούσαν την τεχνολογία του υλικού είτε αφορούσαν την βελτιστοποίηση της εκτέλεσης των εντολών Το πλήθος των τρανζίστορ δεν μπορεί να αυξάνει απεριόριστα Η ενέργεια που καταναλίσκεται από ένα επεξεργαστή σημαντικός παράγοντας σχεδίασης Μικρή αύξηση της ταχύτητας της μνήμης (συγκριτικά με την αύξηση της ταχύτητας του επεξεργαστή) Εκμετάλλευση τεχνικών όπως το pipelining, για την ταχύτερη εκτέλεση εντολών από ένα επεξεργαστή έφτασαν επίσης στα όριά τους με μικρές δυνατότητες περαιτέρω βελτίωσης Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Ο παραλληλισμός στο προσκήνιο: Επεξεργαστές πολλαπλών πυρήνων Αύξηση της ταχύτητας των υπολογιστών πλέον πολύ πιο φθηνή και ανταποδοτική με την εισαγωγή παραλληλισμού αντί της παραδοσιακής τεχνολογικής βελτίωσης ενός επεξεργαστή. Πολλοί επεξεργαστικοί πυρήνες (cores) σε ένα chip το οποίο ονομάζεται επίσης επεξεργαστής (προκαλώντας πολλές φορές σύγχυση!) Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Πολυπύρηνοι επεξεργαστές: Παράδειγμα 1 Intel Xeon (Nehalem): 8 πυρήνες Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Πολυπύρηνοι επεξεργαστές: Παράδειγμα 2 AMD Opteron (Magny Cours): 12 πυρήνες Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Ταξινόμηση υπολογιστών κατά Flynn Instruction Stream: ροή εντολών Data Stream: ροή δεδομένων Instruction Stream Single Multiple SISD MISD SIMD MIMD Stream Data Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
SISD: Single Instruction - Single Data Ο απλός μονο-επεξεργαστής (όχι παράλληλο σύστημα) CU: Control Unit PU: Processing Unit M: Memory I/O: Input/Output IS: Instruction Stream DS: Data Stream IS DS CU PU M Ι/Ο Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
MISD: Multiple Instruction - Single Data MISD = Pipeline Δεν υπάρχει αυτόνομος υπολογιστής τύπου MISD. Ωστόσο το pipelining εφαρμόζεται ευρέως σε υποσυστήματα, όπως το instruction pipeline. IS1 Μ CU1 PU1 M DS IS2 Μ CU2 PU2 . . . . . . . . ISΝ Μ CUΝ PUΝ Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
SIMD: Single Instruction - Multiple Data Παράλληλος υπολογιστής. Η ίδια εντολή εκτελείται κάθε χρονική στιγμή σε διαφορετικά δεδομένα Προσκολλημένος σε κάποιο Host (πχ. Linux Pentium) DS1 PU1 M1 H o s t DS2 IS CU PU2 M2 . . . . . . . . DSΝ PUΝ MΝ Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
MIMD: Multiple Instruction - Multiple Data Ο πιο γενικός παράλληλος υπολογιστής Στέκεται αυτόνομος Χρήση γενικού σκοπού CU1 PU2 M1 IS1 DS1 PU1 PUΝ . . . . . . . . M2 MΝ DS2 DSΝ IS2 ISΝ CU2 CUΝ Μ Δ Ι Κ Τ Υ Ο Κατανεμημένη μνήμη Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
MIMD: Multiple Instruction - Multiple Data (2) IS1 DS1 Bus Μ CU1 PU1 M IS2 DS2 Μ CU2 PU2 . . . . . . . . ISΝ DSΝ Μ CUΝ PUΝ Κοινή μνήμη Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Υπολογιστές τύπου MIMD Γενικού σκοπού Μπορούν να χτιστούν με κοινούς εμπορικούς επεξεργαστές (πχ. Intel Pentium) Τύποι MIMD Πολυ-επεξεργαστές (κοινή μνήμη) Πολυ-υπολογιστές (κατανεμημένη μνήμη) Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Πολυ-επεξεργαστής Κοινή Μνήμη Επεξ. 1 Επεξ. 2 Επεξ. N . . . . . cache1 . . . . . cache1 cache2 cacheN Bus Μ Ι/Ο Κοινή Μνήμη Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Χωρικά Κατανεμημένη Μνήμη Πολυ-υπολογιστής Επεξ. 1 Επεξ. 2 Επεξ. N . . . . . cache1 cache2 cacheN Ι/Ο Ι/Ο Ι/Ο Μ1 Μ2 ΜΝ ΔΙΚΤΥΟ Χωρικά Κατανεμημένη Μνήμη Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Κατανομή μνήμης Χωρική κατανομή: κάθε επεξεργαστής έχει στη γειτονιά του μια δική του μνήμη (πχ. στην ίδια κάρτα). Συνδέεται με τη δική του μνήμη άμεσα. Με τις άλλες μνήμες συνδέεται μέσω δικτύου Λογική κατανομή: ο επεξεργαστής i εκδίδει διευθύνσεις μόνο για τη δική του μνήμη i. Δεν «βλέπει» τις άλλες μνήμες. Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Κατανεμημένη μνήμη - Δύο επιλογές Απλή κατανεμημένη μνήμη: Χωρικά κατανεμημένη και λογικά κατανεμημένη. Ο κόμβος i προσπελαύνει τα δεδομένα του κόμβου j με ανταλλαγή μηνυμάτων (message passing) Κοινή κατανεμημένη μνήμη: Χωρικά κατανεμημένη αλλά λογικά κοινή. Ο κάθε κόμβος i εκδίδει δευθύνσεις που βλέπουν όλες τις μνήμες σαν ένα σύνολο Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Σύγκριση κοινής μνήμης-ανταλλαγής μηνυμάτων Κοινή Μνήμη Ανταλλαγή μηνυμάτων Προγραμματισμός Εύκολος. Συμβατό με το γνωστό μοντέλο SISD Δύσκολος. Εκπαίδευση σε ανταλλαγή μηνυμ. Cache Διαχείριση πολλών cache με κοινά δεδομένα - Δίκτυο Bus Ευελιξία επιλογής Επεκτασιμότητα Δύσκολη (Ν<16) Σχετικά εύκολη Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα
Κοινή κατανεμημένη μνήμη (Distributed Shared Memory) Συνδυασμός των θετικών από τους δύο κόσμους: Ευκολία προγραμματισμού Συμβατότητα με το κλασικό SISD Ευελιξία στην επεκτασιμότητα Μειονεκτήματα: Όχι ομοιόμορφος χρόνος προσπέλασης μνήμης Πολύπλοκη σχεδίαση (software-hardware) Κ. Διαμαντάρας – Α. Βαφειάδης Προηγμένες Αρχιτεκτονικές Η/Υ & Παράλληλα Συστήματα