ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ

Σχετικά έγγραφα
ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

Αρχιτεκτονική Υπολογιστών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

Παραλληλισμός σε επίπεδο εντολών

Διαφορές single-processor αρχιτεκτονικών και SoCs

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Τεχνολογίες Κύριας Μνήμης

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ

Εικονική Μνήμη (Virtual Μemory)

Κεφάλαιο 3. Διδακτικοί Στόχοι

Αρχιτεκτονική Υπολογιστών

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

Chapter 4 ( ή 1 στο βιβλίο σας)

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Πολυπύρηνοι επεξεργαστές Multicore processors

Αρχιτεκτονική υπολογιστών

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Δυναμική Θεώρηση και Συγχρονισμός των εξαρτήσεων των δεδομένων. Αλεξάνδρα Παπανδρεάδη (ΑΜ 362)

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

Αρχιτεκτονική Υπολογιστών

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

Αρχιτεκτονική υπολογιστών

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Αρχιτεκτονική Υπολογιστών

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Λειτουργικά Συστήματα Η/Υ

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

Λιβανός Γιώργος Εξάμηνο 2017Β

Οργάνωση Υπολογιστών (ΙI)

Αρχιτεκτονική Υπολογιστών

Λειτουργικά Συστήματα Η/Υ

Κεφάλαιο 3 Πολυπλεξία

Εισαγωγή στην Επιστήμη των Υπολογιστών

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)


Εισαγωγή στην Πληροφορική

Αρχιτεκτονική Υπολογιστών

ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Αρχιτεκτονική υπολογιστών

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές...

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Αρχιτεκτονική Μνήμης

Αρχιτεκτονική υπολογιστών

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ << ΜΕΛΕΤΗ ΤΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ CUDA ΚΑΙ ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΡΤΩΝ GPU ΤΗΣ NVIDIA >> Αρ. Μητρώου: 04/2519

Αρχιτεκτονική Υπολογιστών II Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

Κεντρική Μονάδα Επεξεργασίας

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Τ.Ε.Ι. ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΥΝΕΡΓΑΣΤΗΚΑΝ ΡΟΚΑ ΑΦΡΟΔΙΤΗ ΣΩΤΗΡΑΚΟΥ ΣΤΑΜΑΤΙΑ ΦΕΒΡΟΥΑΡΙΟΣ 2006

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΙΚΟΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

Εικονική Μνήμη (Virtual Μemory)

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι

Παραλληλισµός Εντολών (Pipelining)

Η ιεραρχία της μνήμης

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Διάλεξη 15 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Εξομοίωση της Αρχιτεκτονικής PiSMA στο περιβάλλον εξομοίωσης SIMICS Μεταπτυχιακό Πρόγραμμα Επιστήμη & Τεχνολογία Υπολογιστών ΡΟΔΑΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Α.Μ. 435 ΥΠΕΥΘΥΝΟΣ ΚΑΘΗΓΗΤΗΣ: Δημήτρης Λιούπης, Αναπληρωτής Καθηγητής ΕΞΕΤΑΣΤΙΚΗ ΕΠΙΤΡΟΠΗ Δ. Λιούπης, Κ. Μπερμπερίδης, Χ. Κακλαμάνης Πάτρα, 10 Ιουλίου 2006

Περιεχόμενα Περιεχόμενα 3 Πρόλογος 5 Ευχαριστίες 7 Κεφάλαιο 1 Chip Multiprocessing CMP 9 1.1 Εισαγωγή 11 1.2 Τι είναι το CMP 12 1.3 Ανάλυση του CMP 12 1.3.1 Περιορισμοί της Superscalar (SS) αρχιτεκτονικής 12 1.3.2 Η περίπτωση του CMP 16 1.3.3 Σύγκριση 1 η CMP vs. SS 17 1.3.4 Σύγκριση 2 η CMP vs. SMT vs. SS 26 1.4 Αρχιτεκτονικές βασισμένες σε CMP 32 1.4.1 AMD Dual-Core Opteron 32 1.4.2 Hewlett Packard PA-8800 32 1.4.3 IBM PowerPC 970 33 1.4.4 Intel Pentium Extreme Edition 900 34 Κεφάλαιο 2 Περιγραφή της Αρχιτεκτονικής PiSMA 35 2.1 Εισαγωγή 37 2.2 Παρόμοιες αρχιτεκτονικές 37 2.2.1 Αρχιτεκτονικές Edge 37 2.2.2 Αρχιτεκτονική RAW 39 2.3 Παρουσίαση της αρχιτεκτονικής PiSMA 44 2.4 Διαχείριση Μνήμης & Μετάδοση Μηνυμάτων 47 2.4.1 Διαχείριση Εικονικής Μνήμης 47 2.4.2 Μετάδοση Μηνυμάτων 49 2.5 Κατανομή του φόρτου εργασίας 50 2.5.1 Αλγόριθμος Κατανομής 50 2.5.2 Αποτελέσματα 51 2.5.3 Συμπεράσματα 55 2.6 Ένα αναλυτικό μοντέλο 56 2.6.1 Περιγραφή του μοντέλου 56 2.6.2 Εφαρμογή του μοντέλου στην PiSMA 56 2.6.3 Αποτελέσματα 64 Κεφάλαιο 3 Περιγραφή του περιβάλλοντος εξομοίωσης Simics 69 3.1 Εισαγωγή 71 3.2 Εξομοίωση στο Simics 72 3.2.1 Υλοποιημένα Συστήματα 72 3.2.2 Ένα απλό παράδειγμα 73 3.2.3 Simics Configuration 77 3.2.4 Simics Scripting με Python 79 3.2.5 Simics Memory System & Cache Simulation 82 3.3 Προγραμματισμός στο Simics 87 3.3.1 Δημιουργία Modules 87 3.3.2 Υλοποίηση Κλάσεων, Αντικειμένων & Ιδιοτήτων 89 3

3.3.3 Προγραμματισμός της Ιεραρχίας Μνήμης 94 Κεφάλαιο 4 Υλοποίηση της PiSMA στο Simics 97 4.1 Εισαγωγή 99 4.2 Υλοποιήσεις 99 4.2.1 Μόνο με caches 99 4.2.2 Χωρίς caches μόνο με μνήμες 102 4.2.3 Με μνήμες και caches 104 4.2.4 Υλοποιήσεις με επεξεργαστές SPARC 105 4.3 Μελλοντική Εργασία 106 Βιβλιογραφία 109 4

Πρόλογος Είναι ευρέως γνωστό πως η αλματώδης ανάπτυξη της τεχνολογίας επιτρέπει τη συνεχώς μεγαλύτερη δυνατότητα ολοκλήρωσης των ψηφιακών κυκλωμάτων. Σήμερα περισσότερο από κάθε άλλη φορά έχουμε τη δυνατότητα να τοποθετήσουμε τεράστιο αριθμό από τρανζίστορ πάνω σε ένα τσιπ κάτι που διευρύνει τους ορίζοντες της σχεδίασης ολοκληρωμένων. Σε αυτήν τη διπλωματική εργασία προσπαθήσαμε να εκμεταλλευτούμε αυτές τις δυνατότητες υλοποιώντας στην ολοκληρωμένη, αξιόπιστη και γρήγορη πλατφόρμα εξομοίωσης Simics την πρωτοποριακή αρχιτεκτονική PiSMA. Η αρχιτεκτονική είναι μια multiprocessing αρχιτεκτονική με την προοπτική να είναι επεκτάσιμη σε αυθαίρετο αριθμό επεξεργαστών. Κάθε επεξεργαστής συνδέεται με τέσσερις μνήμες ενώ κάθε μνήμη συνδέεται με τέσσερις επεξεργαστές. Ο διαμοιρασμός των δεδομένων γίνεται με τη μετάδοση μηνυμάτων διαμέσω των επεξεργαστών στις μνήμες του πλέγματος. Από την άλλη μεριά το Simics είναι ένας Instruction Set simulator που παρέχει εξαιρετικές δυνατότητες για την εξομοίωση συστημάτων υλικού. Είναι κατασκευασμένος με μια αντικειμενοστρεφή λογική οπότε όλες οι υπηρεσίες που προσφέρει είναι στη μορφή κλάσεων ενώ ο χρήστης μπορεί να τις διαχειριστεί μέσω των αντικειμένων που κατασκευάζει από αυτές. Η διπλωματική αυτή είναι στη συνέχεια οργανωμένη ως εξής. Στο Πρώτο Κεφάλαιο αναφέρουμε τις τάσεις της εποχής σχετικά με το Chip Multiprocessing (CMP) δηλαδή τη χρησιμοποίηση περισσότερων από ένα επεξεργαστών ή επεξεργαστικών cores πάνω στο ίδιο τσιπ για την αύξηση της απόδοσης των μηχανημάτων. Αναφέρουμε λεπτομερειακά πως ξεκίνησε αυτή η τάση, ποιες συνθήκες ήταν εκείνες που ευνόησαν την υλοποίηση τέτοιων συστημάτων και ποια τέτοια συστήματα έχουν κατασκευαστεί μέχρι τώρα. Στη συνέχεια στο Δεύτερο Κεφάλαιο αναλύουμε σε μεγάλο βαθμό την αρχιτεκτονική PiSMA που θα εξομοιώσουμε. Αναφέρουμε με κάθε λεπτομέρεια τη δομή της αρχιτεκτονικής, τι είδους προβλήματα προκύπτουν στο σχεδιασμό της καθώς και πως αναμένουμε να συμπεριφερθεί, όσον αφορά την απόδοση, σε διαφόρων ειδών εφαρμογές. Στο Τρίτο Κεφάλαιο δίνουμε μια ολοκληρωμένη και περιεκτική περιγραφή της πλατφόρμας εξομοίωσης Simics. Αναφέρουμε τις κυριότερες δυνατότητες που παρέχει αυτή καθώς και τα σημαντικότερα εργαλεία για τη σχεδίαση νέων αρχιτεκτονικών και τη λήψη μετρήσεων από αυτές. Τέλος στο Τέταρτο Κεφάλαιο αναφέρουμε τη διαδικασία που ακολουθήσαμε για να υλοποιήσουμε την αρχιτεκτονική PiSMA πάνω στο Simics, πως αντιμετωπίσαμε τα διάφορα προβλήματα που προέκυψαν και ποια εργαλεία του εξομοιωτή χρησιμοποιήσαμε για να το καταφέρουμε αυτό. 5

6

Ευχαριστίες Θέλω να ευχαριστήσω τον κ. Λιούπη Δημήτριο Αναπληρωτή Καθηγητή του τμήματος Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής του Πανεπιστημίου Πατρών, επιβλέποντα της εργασίας αυτής για την ουσιαστική και πολύτιμη συνεισφορά στην διεκπεραίωση της παρούσας διπλωματικής εργασίας. Ο κ. Λιούπης προσέφερε όλες τις δυνατότητες και τους πόρους του εργαστήριου του για να βοηθήσει στην όσο το δυνατόν καλύτερη ανάπτυξη αυτής της εργασίας. Θα ήθελα επίσης να ευχαριστήσω τον κ. Στεφανιδάκη Μιχάλη για τις πολύτιμες συμβουλές και παρατηρήσεις του οι οποίες βοήθησαν ουσιαστικά και σημαντικά αυτήν την εργασία. Τα περισσότερα από τα αποτελέσματα, οι πίνακες και τα σχήματα του Κεφαλαίου 2 προέρχονται από δική του παλαιότερη εργασία πάνω στο θέμα σε συνεργασία με τον κ. Λιούπη και άλλους συνεργάτες. Τέλος θα ήθελα να ευχαριστήσω τους γονείς μου που με στήριξαν με όλες τους τις δυνάμεις όλα αυτά τα χρόνια της φοιτητικής μου πορείας. Ροδάς Κωνσταντίνος Απόφοιτος του Τμήματος Μηχανικών Η/Υ & Πληροφορικής. 7

Κεφάλαιο 1 Chip Multiprocessing CMP

10

Κεφάλαιο 1 Chip Multiprocessing CMP 1.1 Εισαγωγή 1.1 Εισαγωγή Η εξέλιξη στην IC επεξεργασία έχουν προσφέρει νέες επιλογές στη σχεδίαση των μικροεπεξεργαστών. Η αυξανόμενη πολυπλοκότητα και το κόστος των καλωδίων στα προηγμένα ολοκληρωμένα κυκλώματα καθιστούν επιτακτική την ανάγκη για εύρεση νέων τρόπων αποδοτικής εκμετάλλευσης των δυνατοτήτων τους. Η εξέλιξη στη τεχνολογία των ολοκληρωμένων κυκλωμάτων έχει ωθήσει την ανάπτυξη των μικροεπεξεργαστών τα τελευταία δεκαπέντε χρόνια [1]. Κάθε αύξηση στη πυκνότητα του ολοκληρωμένου επιτρέπει ταχύτερα ρολόγια και προσφέρει νέες ευκαιρίες για καινοτομίες στο επίπεδο της μικρο-αρχιτεκτονικής. Οι καινοτομίες της μικρο-αρχιτεκτονικής που υιοθετήθηκαν από τους τελευταίους μικροεπεξεργαστές περιλαμβάνουν πολλαπλή έκδοση εντολών, δυναμικό χρονοπρογραμματισμό, πιθανολογική εκτέλεση και non-blocking caches. Η τεχνολογία των ολοκληρωμένων κυκλωμάτων προσφέρει αυξανόμενη πυκνότητα ολοκλήρωσης η οποία με τη σειρά της οδηγεί στην αύξηση της απόδοσης. Η δυνατότητα για ολοκλήρωση ενός δισεκατομμυρίου τρανζίστορ σε ένα μικρού μεγέθους τσιπ καθιστά αναγκαία την εύρεση τρόπων παραλληλισμού ώστε να χρησιμοποιηθούν αποδοτικά τα παρεχόμενα τρανζίστορ. Μέχρι τώρα ο σχεδιασμός των επεξεργαστών ήταν έτσι ώστε να επιτυγχάνεται παραλληλισμός με το να εκτελούνται πολλές εντολές ενός ακολουθιακού προγράμματος παράλληλα. Για την εύρεση ανεξάρτητων εντολών μέσα σε μια ακολουθία εντολών, η σε ένα thread ελέγχου, οι επεξεργαστές κάνουν χρήση εξεζητημένων αρχιτεκτονικών χαρακτηριστικών. Τέτοια παραδείγματα είναι η out-of-order εκτέλεση εντολών και η πιθανολογική εκτέλεση εντολών μετά από διακλαδώσεις που έχουν προβλεφθεί με δυναμικές τεχνικές πρόβλεψης. Οι μελλοντικές βελτιώσεις απόδοσης θα απαιτούν από τους επεξεργαστές να εκτελούν περισσότερες εντολές ανα κύκλο ρολογιού. Ωστόσο η εξάρτηση από ένα μόνο thread ελέγχου περιορίζει τον παραλληλισμό που είναι διαθέσιμος για πολλές εφαρμογές και το κόστος της εξαγωγής παραλληλισμού από ένα μόνο thread γίνεται απαγορευτικό. Αυτό το κόστος παρουσιάζεται με πολλούς τρόπους μέσα στους οποίους περιλαμβάνονται το αυξανόμενο μέγεθος του ολοκληρωμένου και ο μεγαλύτερος χρόνος σχεδιασμού και επαλήθευσης. Γενικά δεν παρατηρούμε καλά αποτελέσματα όταν προσπαθούμε να πάρουμε παραλληλισμό από ένα μόνο thread. Παρόλο που αυτός ο παραλληλισμός μπορεί να επιτευχθεί δυναμικά σε υλικό η δυνατότητα αυτού να είναι απλό και γρήγορο συνηγορεί στο να γίνει μια προσέγγιση μέσω λογισμικού. Οι αναδυόμενες τεχνολογίες παράλληλων μεταφραστών [2], η αύξηση της χρήσης παράλληλων εφαρμογών όπως είναι τα πολυμέσα και η πιο διαδεδομένη χρήση των multitasking λειτουργικών συστημάτων θα πρέπει να το κάνει αυτό εφικτό. Σε αντιπαράθεση με τα παραπάνω οι ερευνητές έχουν προτείνει δύο εναλλακτικές μικρο-αρχιτεκτονικές οι οποίες εκμεταλλεύονται πολλαπλά threads ελέγχου : τη simultaneous multithreading (SMT) [3] και τη chip multiprocessors (CMP) [4]. Οι SMT επεξεργαστές (με το να εκδίδουν πολλές εντολές μαζί) παρέχουν υλικό στους superscalar επεξεργαστές που τους επιτρέπει την εκτέλεση εντολών από πολλαπλά threads ελέγχου ταυτόχρονα όταν αυτό είναι δυνατό. Αυτό γίνεται με το να επιλέγει δυναμικά και να εκτελεί εντολές από πολλά ενεργά threads παράλληλα. Το γεγονός αυτό προωθεί πολύ περισσότερο utilization των πόρων εκτέλεσης του επεξεργαστή και παρέχει ανοχή της καθυστέρησης στην περίπτωση που ένα thread καθυστερεί 11

Κεφάλαιο 1 Chip Multiprocessing CMP 1.2 Τι είναι το CMP εξαιτίας cache misses η εξάρτησης δεδομένων. Όταν πολλαπλά threads δεν είναι διαθέσιμα το SMT απλά μοιάζει με έναν συμβατικό wide-issue superscalar επεξεργαστή. Στη συνέχεια θα δούμε τον τρόπο λειτουργίας μιας CMP μικροαρχιτεκτονικής. 1.2 Τι είναι το CMP Το CMP [20] είναι ένα symmetric multiprocessing (SMP) (είναι μια πολυεπεξεργαστική αρχιτεκτονική όπου δύο ή περισσότεροι πανομοιότυποι επεξεργαστές είναι συνδεδεμένοι σε μια κοινή διαμοιραζόμενη κύρια μνήμη. Οι πιο κοινοί πολυεπεξεργαστές σήμερα χρησιμοποιούν SMP. Τα SMP συστήματα επιτρέπουν σε κάθε επεξεργαστή να εργάζεται σε ένα task ανεξάρτητα από το που βρίσκονται στη μνήμη τα δεδομένα του συγκεκριμένου task. Με το κατάλληλο λειτουργικό σύστημα τα SMP μπορούν εύκολα να μετακινούν task μεταξύ των επεξεργαστών ώστε να ισοσκελίζεται ο φόρτος εργασίας. Στα μειονεκτήματα συγκαταλέγεται το γεγονός ότι η μνήμη είναι πολύ πιο αργή απ ότι οι επεξεργαστές που την προσπελαύνουν τόσο που ακόμα και μονο-επεξεργαστικά συστήματα τείνουν να ξοδεύουν σημαντικό κομμάτι χρόνου περιμένοντας για τα δεδομένα. Το SMP το κάνει αυτό ακόμα χειρότερο καθώς μόνο ένας επεξεργαστής μπορεί να προσπελαύνει τη μνήμη κάθε φορά.) υλοποιημένο σε ένα μόνο VLSI ολοκληρωμένο κύκλωμα. Πολλοί processor cores τυπικά μοιράζονται δευτέρου ή τρίτου επιπέδου cache και τη διασύνδεση. Ο στόχος ενός CMP συστήματος είναι να επιτρέψει μεγαλύτερη χρησιμοποίηση του thread επιπέδου παραλληλισμού (Thread-Level Parallelism TLP) ειδικότερα για εφαρμογές που δεν έχουν επαρκές παραλληλισμό επιπέδου εντολών (Instruction- Level Parallelism ILP) ώστε να κάνουν καλύτερη χρήση των superscalar επεξεργαστών. Οι CMP χρησιμοποιούν σχετικά απλούς single-thread processor cores για να εκμεταλλευτούν μετριασμένο μέγεθος παραλληλισμού μέσα σε κάθε ένα thread ενώ εκτελούν πολλαπλά thread παράλληλα σε διάφορους processor cores. Αν μια εφαρμογή δε μπορεί να διασπαστεί αποδοτικά σε threads, οι CMP επεξεργαστές δε θα αξιοποιούνται στο έπακρο των δυνατοτήτων τους. Από την απλή σκοπιά μόνο της αρχιτεκτονικής η ευελιξία του SMT το καθιστά ανώτερο. Ωστόσο η ανάγκη περιορισμού των φαινομένων καθυστέρησης στη διασύνδεση, τα οποία σιγά σιγά γίνονται πολύ πιο αργά από την καθυστέρηση των πυλών τρανζίστορ, θα οδηγήσουν στη σχεδίαση του τσιπ με δισεκατομμύρια τρανζίστορ. Η καθυστέρηση στη διασύνδεση επίσης θα αναγκάσει τη μικρο-αρχιτεκτονική να χωριστεί σε μικρά, τοπικά επεξεργαστικά στοιχεία. Για αυτό το λόγο το CMP είναι πολύ περισσότερο υποσχόμενο επειδή είναι ήδη χωρισμένο σε ανεξάρτητα processing cores. Επειδή αυτά τα cores είναι σχετικά απλά υπόκεινται σε βελτιστοποίηση της ταχύτητας και μπορούν να σχεδιαστούν σχετικά εύκολα. 1.3 Ανάλυση του CMP 1.3.1 Περιορισμοί της Superscalar (SS) αρχιτεκτονικής Η τάση στη βιομηχανία των μικροεπεξεργαστών ήταν ο σχεδιασμός CPU με πολλαπλή έκδοση εντολών και τη δυνατότητα για εκτέλεση εντολών με διαφορετική σειρά από αυτή με την οποία εμφανίζονται στο πρόγραμμα (Out Of program Order). Αυτή η δυνατότητα καλείται δυναμικός χρονοπρογραμματισμός 12

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP και παρουσιάστηκε για πρώτη φορά στο [5]. Ο δυναμικός χρονοπρογραμματισμός χρησιμοποιεί υλικό ώστε να βρει εξαρτήσεις στους καταχωρητές μεταξύ των εντολών. Μια εντολή εκτελείται, ίσως και με διαφορετική σειρά από του προγράμματος, αμέσως μόλις όλες οι εξαρτήσεις της ικανοποιηθούν. Είναι δυνατό να σχεδιάσουμε έναν δυναμικά χρονοπρογραμματισμένο superscalar μικροεπεξεργαστή χρησιμοποιώντας σταθμούς δέσμευσης. Ωστόσο η πιο συχνή υλοποίηση ενός τέτοιου επεξεργαστή χρησιμοποιεί μια δομή παρόμοια με αυτή που φαίνεται στο παρακάτω σχήμα. Σχήμα 1 Εδώ η μετονομασία μεταξύ των αρχιτεκτονικών και των φυσικών καταχωρητών γίνεται ρητά και ο χρονοπρογραμματισμός των εντολών καθώς και η εύρεση των εξαρτήσεων των καταχωρητών μεταξύ των εντολών γίνονται σε μια ουρά έκδοσης εντολών. Μερικά παραδείγματα σχεδιασμού τέτοιων μικροεπεξεργαστών είναι ο MIPS Technologies R10000 και ο HP PA-8000. Σε αυτούς τους επεξεργαστές η ουρά των εντολών είναι υλοποιημένη ουσιαστικά ως πολλές ουρές εντολών για διαφορετικές τάξεις εντολών (π.χ. ακέραιοι, κινητής υποδιαστολής, load/store). Οι τρεις κύριες φάσεις της εκτέλεσης μιας εντολής σε ένα δυναμικό superscalar (SS) μηχάνημα απεικονίζονται επίσης στο Σχήμα 1. Αυτές είναι η προσκόμιση, η έκδοση και η εκτέλεση. Στη συνέχεια θα περιγράψουμε αυτές τις φάσεις και τους περιορισμούς που επιφέρουν στο σχεδιασμό μιας CPU με έκδοση πολύ μεγάλων εντολών. Ο στόχος της φάσης προσκόμισης είναι να φέρει στη CPU ένα μεγάλο και ορθό παράθυρο από αποκωδικοποιημένες εντολές. Τρεις παράγοντες περιορίζουν 13

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP τη διαδικασία προσκόμισης : λάθος πρόβλεψη διακλαδώσεων, κακή παράταξη εντολών και cache misses. Η ικανότητα να προβλέπονται σωστά οι διακλαδώσεις είναι κρίσιμη όσον αφορά τη δημιουργία ενός μεγάλου και ορθού παραθύρου εντολών. Ευτυχώς χρησιμοποιώντας ένα λογικό μέγεθος μνήμης (64 Κbit), οι διαδικασίες πρόβλεψης των διακλαδώσεων όπως ο selective branch predictor του McFarling μπορούν να μειώσουν τις λάθος προβλέψεις σε ένα ποσοστό κάτω του 5% για τα περισσότερα προγράμματα. Παρόλ αυτά μια καλή διαδικασία πρόβλεψης δεν είναι αρκετή. Είναι επίσης απαραίτητο να βάλουμε σε σειρά ένα πακέτο εντολών για τον αποκωδικοποιητή. Όταν το εύρος έκδοσης είναι μεγαλύτερο από τέσσερις εντολές τότε υπάρχει υψηλή πιθανότητα να χρειαστεί να κάνουμε προσκόμιση κατά τη διάρκεια μιας διακλάδωσης για ένα πακέτο εντολών, καθώς στα προγράμματα των ακεραίων μία στις πέντε εντολές κατά μέσο όρο είναι εντολή διακλάδωσης. Αυτό θα απαιτούσε προσκόμιση από δύο γραμμές cache ταυτόχρονα και συγχώνευση των γραμμών ώστε να σχηματίσουν ένα πακέτο εντολών. Μια τεχνική η οποία διαχωρίζει την instruction cache σε banks και προσκομίζει από πολλά banks ταυτόχρονα δεν είναι τόσο δύσκολο να υλοποιηθεί και παρέχει απόδοση η οποία είναι μεταξύ του 3% του βέλτιστου σχήματος σε ένα 8-wide issue μηχάνημα. Ακόμα και με καλή πρόβλεψη των διακλαδώσεων και σωστή παράταξη των εντολών ένα σημαντικό miss rate θα μειώνει την ικανότητα προσκόμισης για διατήρηση ενός ικανοποιητικού παραθύρου εντολών. Υπάρχουν ακόμα κάποιες εφαρμογές όπως μεγάλες λογικές εξομοιώσεις, επεξεργασία συναλλαγών και ο πυρήνας των λειτουργικών συστημάτων οι οποίες έχουν υψηλό miss rate ακόμα και με σχετικά μεγάλο μέγεθος 64 KB two way set-associative caches. Ευτυχώς είναι δυνατό να κρύψουμε κάποια από τη καθυστέρηση που προκαλείται από τα cache misses σε ένα δυναμικά χρονοπρογραμματιζόμενο επεξεργαστή με το να εκτελούμε εντολές οι οποίες είναι ήδη στο παράθυρο εντολών. Έχει αποδειχτεί ότι πάνω από 60% της καθυστέρησης των cache misses μπορεί να περάσει απαρατήρητη σε ένα benchmark μιας βάσης δεδομένων με μια 64 KB two way set-associative instruction cache. Με δεδομένη καλή πρόβλεψη εντολών και παράταξη εντολών είναι πιθανό ότι η φάση προσκόμισης ενός wide-issue δυναμικού SS επεξεργαστή δε θα περιορίζει την απόδοση. Στη φάση έκδοσης, ένα πακέτο εντολών που έχουν μετονομαστεί εισέρχεται στην ουρά έκδοσης εντολών. Μια εντολή εκδίδεται για εκτέλεση όταν όλα τα έντελα της είναι έτοιμα. Υπάρχουν δύο τρόποι υλοποίησης της μετονομασίας. Κάποιος θα μπορούσε να χρησιμοποιήσει έναν πίνακα για την αντιστοίχιση αρχιτεκτονικών καταχωρητών με φυσικούς καταχωρητές όπως συμβαίνει στον R10000 ή θα μπορούσε να χρησιμοποιήσει ένα συνδυασμό reorder buffer/instruction ουράς όπως γίνεται στον PA-8000. Το πλεονέκτημα του πίνακα αντιστοίχισης είναι ότι δεν απαιτούνται συγκρίσεις για τη μετονομασία. Το μειονέκτημα είναι ότι ο αριθμός των ports πρόσβασης που χρειάζονται είναι O x W όπου O είναι ο αριθμός έντελων ανα εντολή και W είναι το εύρος έκδοσης του μηχανήματος. Ένα 8-wide issue μηχάνημα με τρία έντελα ανα εντολή απαιτεί έναν 24 port πίνακα αντιστοίχισης. Από την άλλη μεριά η υλοποίηση με χρήση reorder buffer έχει τα δικά της μειονεκτήματα. Απαιτεί n x Q x Q x W συγκριτές του ενός bit για να καθορίσει ποιοι φυσικοί καταχωρητές θα έπρεπε να παρέχουν έντελα για ένα νέο πακέτο εντολών, όπου n ο αριθμός των bits που απαιτούνται για την κωδικοποίηση των αναγνωριστικών των καταχωρητών και Q το μέγεθος της ουράς έκδοσης εντολών. Προφανώς ο αριθμός των συγκριτών αυξάνει με το 14

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP μέγεθος της ουράς εντολών και το εύρος έκδοσης. Όταν μια εντολή είναι στην ουρά εντολών όλες οι εντολές που εκδίδουν πρέπει να ενημερώσουν τις εξαρτήσεις τους. Αυτό απαιτεί άλλο ένα σετ από n x Q x Q x W συγκριτές. Για παράδειγμα ένα 8-wide issue μηχάνημα με τρία έντελα σε κάθε εντολή, μια 64 εγγραφών ουρά εντολών και συγκρίσεις των 6-bit, απαιτεί 9.216 συγκριτές του 1 bit. Το τελικό αποτέλεσμα όλης της λογικής των συγκρίσεων και της κωδικοποίησης που σχετίζεται με την ουρά έκδοσης εντολών είναι ότι χρειάζεται μεγάλο χώρο για να υλοποιηθεί. Στον PA-8000 που είναι ένα 4-issue μηχάνημα με 56 εγγραφές στην ουρά εντολών, η ουρά έκδοσης εντολών καταλαμβάνει το 20% του ολοκληρωμένου. Επιπλέον καθώς αυξάνει το εύρος έκδοσης χρειάζονται επίσης και μεγαλύτερα παράθυρα ώστε να βρεθούν ανεξάρτητες εντολές οι οποίες να μπορούν να εκτελεστούν παράλληλα για να εκμεταλλευτούνε το μέγιστο εύρος έκδοσης. Το αποτέλεσμα είναι μια τετραγωνική αύξηση στην ουρά έκδοσης εντολών. Μετακινούμενοι στο επίπεδο του κυκλώματος, η ουρά έκδοσης εντολών χρησιμοποιεί ένα μηχανισμό εκπομπής για να μεταδώσει τις ταμπέλες των εντολών, κάτι που απαιτεί τη χρήση καλωδίων τα οποία πρέπει να διατείνονται σε όλο το εύρος της δομής. Σε μεταγενέστερα ολοκληρωμένα αυτά τα καλώδια θα έχουν ολοένα και μεγαλύτερες καθυστερήσεις ανάλογες με τις πύλες που τα οδηγούν. Δεδομένης αυτής της κατάστασης, τελικά, η ουρά έκδοσης εντολών θα περιορίζει το χρονικό κύκλο του επεξεργαστή. Για αυτούς τους λόγους η ουρά έκδοσης εντολών ουσιαστικά θα περιορίζει την απόδοση των μεγάλου εύρους έκδοσης superscalar μηχανών. Στη φάση εκτέλεσης οι τιμές των έντελων προσκομίζονται από το αρχείο των καταχωρητών ή από προηγούμενες εντολές ώστε να εκτελεστούν στα functional units. Το ευρύ SS μοντέλο εκτέλεσης αντιμετωπίζει περιορισμούς απόδοσης στο αρχείο των καταχωρητών, στη λογική προσκόμισης από προηγούμενες εντολές και στα functional units. Ευρύτερη έκδοση εντολών απαιτεί και μεγαλύτερο παράθυρο εντολών κάτι που προϋποθέτει και περισσότερη μετονομασία καταχωρητών. Όχι μόνο πρέπει το αρχείο των καταχωρητών να είναι μεγαλύτερο ώστε να φιλοξενεί περισσότερους καταχωρητές αλλά και ο αριθμός των ports που χρειάζονται για να ικανοποιήσουν το πλήρες εύρος έκδοσης εντολών αυξάνει με το εύρος έκδοσης. Ξανά αυτό προκαλεί τετραγωνική αύξηση της πολυπλοκότητας του αρχείου των καταχωρητών με την αύξηση του εύρους έκδοσης. Έχει βρεθεί ότι ένα 8-issue μηχάνημα έχει μόνο 20% καλύτερη απόδοση από ένα 4-issue μηχάνημα όταν υπολογίζεται το φαινόμενο του χρονικού κύκλου στις μετρήσεις της απόδοσης. Η πολυπλοκότητα της λογικής προσκόμισης έντελων από προηγούμενες εντολές επίσης αυξάνει τετραγωνικά με τον αριθμό των execution units. Ωστόσο ένας πιο περιοριστικός παράγοντας είναι η καθυστέρηση των καλωδίων που συνδέουν τα execution units. Όσον αφορά μόνο τα execution units τα αριθμητικά functional units μπορούν να διπλασιαστούν για να υποστηρίζουν το εύρος έκδοσης, αλλά περισσότερα ports πρέπει να προστεθούν στην primary data cache ώστε αυτή να παρέχει το απαιτούμενο load/store εύρος ζώνης. Ο φθηνότερος τρόπος για να προσθέσουμε ports στην data cache είναι με το να κατασκευάσουμε μια banked cache, όμως η προστιθέμενη πολυπλεξία και ο έλεγχος που απαιτείται για την υλοποίηση μιας banked cache αυξάνει το χρόνο προσπέλασης της cache. 15

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP 1.3.2 Η περίπτωση του CMP Το κίνητρο για την κατασκευή ενός πολυ-επεξεργαστή σε ένα ολοκληρωμένο προέρχεται από δύο πλευρές : υπάρχει μια τεχνολογική ώθηση και μια ώθηση που προέρχεται από τις εφαρμογές. Όπως είδαμε μέχρι τώρα υπάρχουν τεχνολογικά θέματα, όπως η καθυστέρηση στην πολύπλοκη ουρά έκδοσης και τα multi-port αρχεία των καταχωρητών, τα οποία θα περιορίζουν την αποδοτικότητα ενός superscalar μοντέλου εκτέλεσης. Αυτό αυξάνει την ανάγκη για μια αποκεντρωμένη μικρο-αρχιτεκτονική ώστε να διατηρηθεί η αυξανόμενη αποδοτικότητα των μικροεπεξεργαστών. Από την πλευρά των εφαρμογών, η μικρο-αρχιτεκτονική που έχει τα καλύτερα αποτελέσματα εξαρτάται από το ποσοστό και τα χαρακτηριστικά του παραλληλισμού στην εφαρμογή. Από διάφορες μελέτες [6] προκύπτει ότι οι εφαρμογές ταξινομούνται σε δύο κλάσεις. Η πρώτη κλάση αποτελείται από εφαρμογές με μικρό έως συγκρατημένο ποσοστό παραλληλισμού κάτω από δέκα εντολές ανά κύκλο με μετρημένη πρόβλεψη διακλαδώσεων και μεγάλα αλλά όχι άπειρα μεγέθη παραθύρων. Οι περισσότερες από αυτές τις εφαρμογές είναι εφαρμογές ακεραίων. Η δεύτερη κλάση αποτελείται από εφαρμογές με μεγάλο ποσοστό παραλληλισμού, μεγαλύτερο από σαράντα εντολές ανά κύκλο με σχετική πρόβλεψη διακλαδώσεων και μεγάλα μεγέθη παραθύρων. Η πλειοψηφία αυτών των εφαρμογών είναι εφαρμογές κινητής υποδιαστολής και ο περισσότερος παραλληλισμός είναι της μορφής του επιπέδου βρόγχων. Η ώθηση απέναντι σε ένα πολυ-επεξεργαστή του ενός τσιπ προκύπτει επειδή αυτές οι δύο κλάσεις εφαρμογών απαιτούν διαφορετικά μοντέλα εκτέλεσης. Οι εφαρμογές της πρώτης κλάσης δουλεύουν καλύτερα σε επεξεργαστές που είναι σχετικά superscalar (2-issue) με πολύ μεγάλη συχνότητα ρολογιού επειδή υπάρχει μικρός παραλληλισμός που μπορεί να εκμεταλλευτεί το μοντέλο. Για να το καταστήσουμε αυτό περισσότερο σαφές αναφέρουμε ότι ένας 200 MHz MIPS R5000 που είναι ένας 1-issue επεξεργαστής, όταν τρέχει προγράμματα ακεραίων πετυχαίνει ένα SPEC95 ποσοστό ακεραίων το οποίο είναι 70% του ποσοστού ενός 200 MHz MIPS R10000 που είναι ένας 4-issue επεξεργαστής. Και τα δύο μηχανήματα έχουν το ίδιο μέγεθος caches δεδομένων και εντολών όμως ο R5000 έχει blocking cache δεδομένων ενώ ο R10000 έχει non-blocking cache δεδομένων. Οι εφαρμογές της δεύτερης κλάσης έχουν μεγάλο ποσοστό παραλληλισμού και βλέπουν αυξήσεις στην απόδοση από μια ποικιλία μεθόδων που είναι σχεδιασμένες για να εκμεταλλεύονται τον παραλληλισμό όπως είναι ο superscalar, ο VLIW και η επεξεργασία διανυσμάτων. Ωστόσο οι νεότερες εξελίξεις των παράλληλων μεταφραστών καθιστούν έναν πολυ-επεξεργαστή ικανό και ευέλικτο στην εκμετάλλευση του παραλληλισμού αυτών των προγραμμάτων. Οι CMP οι οποίοι είναι σχεδιασμένοι έτσι ώστε κάθε επεξεργαστής να είναι απλός και να επιτυγχάνει υψηλές συχνότητες ρολογιού θα έχουν καλά αποτελέσματα στις ακέραιες εφαρμογές της πρώτης κλάσης. Επιπλέον η μικρή καθυστέρηση στην επικοινωνία μεταξύ των επεξεργαστών του ίδιου τσιπ επιτρέπουν στον πολυ-επεξεργαστή να εκμεταλλευτεί τον παραλληλισμό των εφαρμογών κινητής υποδιαστολής της δεύτερης κλάση. Υπάρχουν διάφοροι τρόποι που μπορεί να χρησιμοποιηθεί ένας πολυεπεξεργαστής. Η πιο διαδεδομένη χρήση είναι η εκτέλεση πολλών διεργασιών παράλληλα ώστε να αυξηθεί η απόδοση σε ένα περιβάλλον πολλών προγραμμάτων 16

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP υπό τον έλεγχο ενός λειτουργικού συστήματος που θα μπορεί να αναγνωρίζει τις δυνατότητες του πολυ-επεξεργαστή. Σημειώνουμε ότι υπάρχει ένας αριθμός από λειτουργικά περιβάλλοντα που έχουν αυτήν την ικανότητα. Επιπροσθέτως η αυξανόμενη και διαδεδομένη χρήση των οπτικών και πολυμεσικών εφαρμογών τείνει να αυξήσει και τον αριθμό των ενεργών επεξεργαστών ή των ανεξάρτητων threads σε ένα desktop μηχάνημα ή σε ένα server σε ένα συγκεκριμένο χρονικό σημείο. Ένας διαφορετικός τρόπος που θα μπορούσαμε να χρησιμοποιήσουμε έναν πολυ-επεξεργαστή είναι να εκτελούσαμε πολλά threads παράλληλα τα οποία θα προέρχονται από μια εφαρμογή. Δύο τέτοια παραδείγματα είναι η επεξεργασία συναλλαγών και η χειρωνακτική παραλληλοποίηση επιστημονικών εφαρμογών κινητής υποδιαστολής. Σε αυτήν την περίπτωση τα διάφορα threads επικοινωνούν μεταξύ τους χρησιμοποιώντας διαμοιραζόμενες μνήμες. Ένα άλλο παράδειγμα χειρωνακτικά παραλληλοποιημένων εφαρμογών είναι οι κατακερματισμένες επιπέδου thread εφαρμογές ακεραίων. Αυτές οι εφαρμογές δεν παρουσιάζουν μεγάλο βαθμό παραλληλίας ακόμα και όταν το παράθυρο των εντολών είναι μεγάλο και η πρόβλεψη των διακλαδώσεων τέλεια, επειδή ο παραλληλισμός που υπάρχει είναι διασπαρμένος σε μια ευρεία περιοχή. Εξαιτίας του μεγάλου παραθύρου και της τέλειας πρόβλεψης θα ήταν πολύ δύσκολο αυτή η παραλληλία να γίνει εκμεταλλεύσιμη από ένα superscalar μοντέλο. Ωστόσο είναι δυνατό για έναν προγραμματιστή που καταλαβαίνει τη φύση του παραλληλισμού στην εφαρμογή, να διασπάσει την εφαρμογή σε πολλά threads. Ο παραλληλισμός που εξάγεται με αυτόν τον τρόπο είναι πολύ λεπτός και δε μπορεί να τον εκμεταλλευτεί μια συμβατική πολυ-επεξεργαστική αρχιτεκτονική. Ο μόνος τρόπος που μπορεί να χρησιμοποιηθεί αυτού του είδους ο παραλληλισμός είναι μέσω μιας CMP αρχιτεκτονικής. Ένας τρίτος τρόπος χρήσης ενός CMP θα ήταν στην επιτάχυνση της εκτέλεσης ακολουθιακών προγραμμάτων χωρίς χειρωνακτική επέμβαση. Αυτό απαιτεί αυτόματη τεχνολογία παραλληλοποίησης. Αυτή η αυτόματη τεχνολογία παραλληλοποίησης έχει φανεί να είναι αποτελεσματική σε επιστημονικές εφαρμογές [7] αλλά δεν είναι ακόμα έτοιμη για γενικού σκοπού εφαρμογές ακεραίων. Όπως οι χειρωνακτικά παραλληλοποιημένες εφαρμογές ακεραίων έτσι και αυτές οι εφαρμογές θα μπορούσαν να έχουν σημαντική βελτίωση στην απόδοσή τους από την μικρής καθυστέρησης επικοινωνία των επεξεργαστών που παρέχει ένας CMP. 1.3.3 Σύγκριση 1 η CMP vs. SS Για τη σύγκριση του SS με το CMP θα χρησιμοποιήσουμε δύο αρχιτεκτονικές που θα περιγράψουμε στη συνέχεια. Η superscalar αρχιτεκτονική είναι μια λογική επέκταση του R10000 επεκτεταμένη από 4-issue σε 6-issue. Η CMP αρχιτεκτονική είναι ένας 4-way single chip πολυ-επεξεργαστής που αποτελείται από τέσσερις πανομοιότυπους 2-way superscalar επεξεργαστές. Αυτές οι δύο διαφορετικές αρχιτεκτονικές έχουν σχεδόν το ίδιο μέγεθος ολοκληρωμένου αν κατασκευαστούν με την ίδια τεχνολογική διαδικασία. Μέχρι τώρα είδαμε ότι o απλούστερος 2-issue CPU που χρησιμοποιείται στην πολυ-επεξεργαστική αρχιτεκτονική θα έχει μεγαλύτερη συχνότητα ρολογιού απ ότι ο 6-issue CPU. Ωστόσο για τους σκοπούς αυτής της σύγκρισης υποθέτουμε ότι οι δύο επεξεργαστές έχουν την ίδια συχνότητα ρολογιού. Για την επίτευξη της ίδιας συχνότητας ρολογιού η SS αρχιτεκτονική θα απαιτούσε μεγαλύτερη pipeline εξαιτίας 17

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP της ευμεγέθους ποσότητας λογικής έκδοσης στο κρίσιμο μονοπάτι. Για λόγους απλότητας αγνοούμε τις διαφορές καθυστέρησης ανάμεσα στις δύο αρχιτεκτονικές λόγω του βαθμού του pipelining. Υποθέτουμε ότι η συχνότητα του ρολογιού των δύο μηχανημάτων είναι 500 MHz. Σε αυτή τη συχνότητα οι καθυστερήσεις της κύριας μνήμης για τον επεξεργαστή είναι μεγάλες. Η κύρια μνήμη έχει μοντελοποιηθεί ως 50-κύκλων 100 ns καθυστέρηση και για τις δύο αρχιτεκτονικές. Ο Πίνακας 1 συγκεντρώνει τα χαρακτηριστικά των δύο αρχιτεκτονικών. Πίνακας 1 Η 6-way superscalar αρχιτεκτονική που θα χρησιμοποιήσουμε παρουσιάζεται στο Σχήμα 2. Όπως φαίνεται η απαραίτητη λογική για out-of-order έκδοση εντολών και χρονοπρογραμματισμό καταλαμβάνει την μεγαλύτερη περιοχή του τσιπ εξαιτίας της τετραγωνικής επίδρασης της υποστήριξης 6-way έκδοσης εντολών. Αυτό συμβαίνει επειδή κατ αρχήν αυξήθηκε ο αριθμός των ports στον instruction buffer κατά 50% για να υποστηρίζει 6-way αντί για 4-way αυξάνοντας έτσι την περιοχή κάθε buffer κατά 30-40%. Στη συνέχεια αυξήθηκε ο αριθμός των instruction buffer από 48 σε 128 έτσι ώστε ο επεξεργαστής να εξετάζει μεγαλύτερο παράθυρο εντολών για ILP και να κρατάει τα execution units απασχολημένα. Αυτό το μεγάλο μέγεθος παραθύρου αντισταθμίζει επίσης και το γεγονός ότι οι εξομοιώσεις δεν εκτελούν κώδικα βελτιστοποιημένο για ένα 6-way superscalar μηχάνημα. 18

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP Σχήμα 2 Η on-chip ιεραρχία μνήμης αποτελείται από μια γρήγορη cache 1 ου επιπέδου (L1) και μια μεγαλύτερη on-chip cache 2 ου επιπέδου (L2). Το ευρύ φάσμα έκδοσης απαιτεί από την L1 να υποστηρίζει ευρείες προσκομίσεις εντολών από την cache εντολών και πολλαπλές φορτώσεις από την cache δεδομένων σε ένα κύκλο του ρολογιού. Η 2-way set associative 32 KB L1 cache δεδομένων είναι χωρισμένη σε 8 ανεξάρτητα single-ported banks των 4 KB κάθε ένα από τα οποία διαχειρίζεται μια προσπέλαση ανά 2 ns του κύκλου του επεξεργαστή. Ωστόσο το επιπλέον κόστος της λογικής ελέγχου των banks και το crossbar που χρειάζεται για να ρυθμίζει τα πολλαπλά αιτήματα που διαμοιράζονται στα 8 banks προσθέτει άλλον ένα κύκλο στην καθυστέρηση της L1 cache. Έτσι η μοντελοποίηση της L1 cache έχει hit time των 2 κύκλων. Πάνω από την 32 KB L1 cache βρίσκεται μια ενοποιημένη 256 KB L2 cache που χρειάζεται 4 κύκλους για να προσπελαστεί. Η πολυ-επεξεργαστική αρχιτεκτονική αποτελείται από τέσσερις 2-way superscalar επεξεργαστές που είναι συνδεδεμένοι μεταξύ τους με ένα crossbar το οποίο τους επιτρέπει να διαμοιράζονται την L2 cache. Στο ολοκληρωμένο οι επεξεργαστές τοποθετούνται σε ένα πλέγμα με την L2 στη μια άκρη όπως φαίνεται στο Σχήμα 3. Εσωτερικά κάθε επεξεργαστής έχει ένα register renaming buffer που είναι πολύ περιορισμένος σχετικά με εκείνον στην 6-way αρχιτεκτονική καθώς κάθε CPU έχει ένα buffer εντολών με μόνο οκτώ εγγραφές. Επίσης έχει τετραπλασιαστεί το μέγεθος των μηχανισμών πρόβλεψης διακλαδώσεων στις μονάδες προσκόμισης σε 512 BTB εγγραφές και 8 call-return stack entries. Ο αριθμός των execution units αυξάνεται στη CMP αρχιτεκτονική επειδή ο 6-way επεξεργαστής έχει τρεις μονάδες για κάθε τύπο ενώ ο πολυ-επεξεργαστής έχει τέσσερις, μία για κάθε CPU. Από την άλλη μεριά η λογική έκδοσης γίνεται δραματικά μικρότερη εξαιτίας της μείωσης των instruction buffer ports και του μικρότερου αριθμού των εγγραφών σε κάθε 19

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP instruction buffer. Οι δύο αυτοί παράγοντες του μεγέθους αλληλο-ισοσκελίζονται καθιστώντας το μέγεθος του κάθε επεξεργαστή κοντά στο ¼ του 6-way. Σχήμα 3 Η on-chip ιεραρχία των caches είναι σημαντικά διαφορετική από εκείνη του superscalar. Κάθε ένας από τους τέσσερις επεξεργαστές έχει τη δική του ενός bank και ενός port 8 ΚΒ cache δεδομένων και εντολών που μπορούν και οι δύο να προσπελαστούν σε έναν 2 ns κύκλο. Εφόσον κάθε cache μπορεί να προσπελαστεί από έναν επεξεργαστή με μία load/store unit δε χρειάζεται επιπλέον υλικό για τη διαχείριση των προσπελάσεων μεταξύ των ανεξάρτητων μονάδων της μνήμης. Ωστόσο καθώς οι τέσσερις επεξεργαστές μοιράζονται μια L2 cache αυτή η cache χρειάζεται έναν επιπλέον κύκλο καθυστέρησης κατά τη διάρκεια κάθε προσπέλασης για τη διαχείριση των επεξεργαστών και τη καθυστέρηση στο crossbar. Αυτή η L2 cache μοντελοποιείται με την προσθήκη ενός κύκλου σε κάθε προσπέλαση έχοντας ως αποτέλεσμα hit time των 5 κύκλων. Στη συνέχεια θα περιγράψουμε το περιβάλλον εξομοίωσης και τις εφαρμογές που χρησιμοποιήθηκαν για την εξομοίωση. Το περιβάλλον εξομοίωσης που χρησιμοποιήθηκε ήταν το SimOS το οποίο μοντελοποιεί CPUs, ιεραρχία μνήμης και συσκευές I/O μονο-επεξεργαστικών ή πολυ-επεξεργαστικών συστημάτων με αρκετή λεπτομέρεια ώστε να μπουτάρουν και να τρέχουν ένα εμπορικό λειτουργικό σύστημα. Το SimOS χρησιμοποιεί το instruction set του MIPS-2 και τρέχει το λειτουργικό σύστημα της Silicon Graphics IRIX 5.3 το οποίο ρυθμίστηκε για πολυ-επεξεργαστική απόδοση. Το SimOS ουσιαστικά εξομοιώνει το λειτουργικό σύστημα, έτσι όλες οι αναφορές στη μνήμη που γίνονται από το λειτουργικό σύστημα και τις εφαρμογές δημιουργούνται. Αυτό το χαρακτηριστικό είναι πολύ σημαντικό στη μελέτη των πολυ-προγραμματιστικών φόρτων εργασίας όπου ο χρόνος που καταναλώνεται για 20

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP την εκτέλεση του κώδικα του πυρήνα αποτελεί μεγάλο κομμάτι του non-idle χρόνου εκτέλεσης. Η απόδοση εννέα ρεαλιστικών εφαρμογών χρησιμοποιείται για την αξιολόγηση των δύο μικρο-αρχιτεκτονικών. Ο Πίνακας 2 δείχνει ότι οι εφαρμογές προέρχονται από δύο SPEC95 benchmark ακεραίων (compress, m88ksim), ένα SPEC92 benchmark ακεραίου (eqntott), μια άλλη ακέραια εφαρμογή (MPsim), τέσσερις SPEC95 benchmark κινητής υποδιαστολής (applu, apsi, swim, tomcatv) και μια πολυ-προγραμματιστική εφαρμογή (pmake). Πίνακας 2 Οι εφαρμογές έχουν παραλληλοποιηθεί με διάφορους τρόπους για να τρέξουν στη CMP αρχιτεκτονική. Ο compress τρέχει ως έχει και στις δύο αρχιτεκτονικές χρησιμοποιώντας μόνο τον ένα επεξεργαστή του πολυ-επεξεργαστικού συστήματος. Ο Eqtnott παραληλοποιήθηκε χειρωνακτικά ενώ ο mksim διασπάστηκε σε τρία threads με το SUIF compiler runtime σύστημα. Με παρόμοιους τρόπους παραλληλοποιήθηκαν και οι υπόλοιπες εφαρμογές. Ένα δύσκολο πρόβλημα που προκύπτει κατά τη σύγκριση της απόδοσης διαφορετικών επεξεργαστών είναι στη διασφάλιση ότι εκτελούν τον ίδιο φόρτο εργασίας. Η λύση δεν τόσο απλή όσο να συγκρίνουμε τους χρόνους εκτέλεσης της κάθε εφαρμογής σε κάθε μηχάνημα. Εξαιτίας της χαμηλής ταχύτητας εξομοίωσης του λεπτομερούς εξομοιωτή της CPU που χρησιμοποιείται για να συγκεντρώσει τα αποτελέσματα, θα χρειαζόταν πολύς χρόνος μέχρι να ολοκληρωθούν οι εφαρμογές. Η λύση είναι να συγκρίνουμε τις δύο αρχιτεκτονικές πάνω σε ένα κομμάτι της εφαρμογής χρησιμοποιώντας την τεχνική αντιπροσωπευτικών παραθύρων εκτέλεσης [8]. Στις περισσότερες υπολογιστικά ευαίσθητες εφαρμογές υπάρχει μια σταθερή περιοχή εκτέλεσης η οποία αποτελείται από ένα εξωτερικό βρόγχο ή από ένα σετ βρόγχων τα οποία αποτελούν και τον κύριο όγκο του χρόνου εκτέλεσης. Είναι αρκετό να πάρουμε ως δείγμα ένα μικρό αριθμό επαναλήψεων αυτών των βρόγχων ως αντιπροσωπευτικό παράθυρο εκτέλεσης, αν η συμπεριφορά του, όσον αφορά το χρόνο εκτέλεσης, είναι όντως αντιπροσωπευτική του συνολικού προγράμματος. Αποτελέσματα εξομοιώσεων έχουν δείξει ότι για τις περισσότερες εφαρμογές το ποσοστό των cache misses και ο αριθμός των εντολών που εκτελούνται στο 21

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP παράθυρο παρεκκλίνει λιγότερο από 1% από τα αποτελέσματα ολόκληρου του προγράμματος. Στη συνέχεια θα δούμε τα αποτελέσματα της απόδοσης των αρχιτεκτονικών που προαναφέραμε. Ξεκινάμε εξετάζοντας την απόδοση της SS αρχιτεκτονικής και του ενός επεξεργαστής της πολυ-επεξεργαστικής αρχιτεκτονικής. Ο Πίνακας 3 παρουσιάζει το IPC, τα ποσοστά της πρόβλεψης διακλαδώσεων και τα ποσοστά των cache misses για έναν επεξεργαστή της πολυ-επεξεργαστικής αρχιτεκτονικής. Πίνακας 3 Ο Πίνακας 4 παρουσιάζει το IPC, τα ποσοστά πρόβλεψης διακλαδώσεων και τα ποσοστά των cache misses για την SS αρχιτεκτονική. Τα cache misses παρουσιάζονται στη μορφή των misses για κάθε ολοκληρωμένη εντολή (Misses Per Completed Instruction MPCI) περιλαμβάνοντας και τις εντολές που ολοκληρώνονται σε kernel και user mode. Όταν το εύρος έκδοσης αυξάνεται από δύο σε έξι παρατηρούμε ότι το πραγματικό IPC αυξάνεται κατά ένα παράγοντα μικρότερο του 1.6 για όλες τις ακέραιες και πολυ-προγραμματιστικές εφαρμογές. Για τις εφαρμογές κινητής υποδιαστολής η αύξηση της απόδοσης ποικίλει από ένα παράγοντα 1.6 για το tomcatv σε ένα 2.4 για το swim. Ένας από τους κυριότερους παράγοντες που οδηγούν τους επεξεργαστές να κάνουν stall είναι τα cache misses. Ωστόσο τα cache misses σε ένα δυναμικά χρονοπρογραμματιζόμενο superscalar επεξεργαστή με πιθανολογική εκτέλεση και non-blocking caches δεν είναι ευδιάκριτα για να χαρακτηριστούν. Τα cache misses που ανακύπτουν σε ένα 1-issue in-order επεξεργαστή δεν είναι απαραίτητα τα ίδια με αυτά που θα εμφανιστούν σε έναν πιθανολογικό out-of-order επεξεργαστή. Στους πιθανολογικούς επεξεργαστές υπάρχουν misses που προκαλούνται από πιθανολογικές εντολές που ποτέ δεν ολοκληρώνονται. Με τις non-blocking caches τα misses μπορεί να εμφανιστούν σε γραμμές που έχουν ήδη εκκρεμείς misses. Και οι δύο τύποι των misses τείνουν να διογκώνουν το ποσοστό των cache misses ενός πιθανολογικού outof-order επεξεργαστή. Ο δεύτερος τύπος των misses είναι ο κύριος υπεύθυνος για τα 22

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP υψηλότερα ποσοστά misses της L2 του 6-issue επεξεργαστή σε σύγκριση με τον 2- issue επεξεργαστή, αν και τα μεγέθη των caches είναι τα ίδια. Πίνακας 4 Το Σχήμα 4 δείχνει την ανάλυση του IPC για έναν επεξεργαστής της CMP αρχιτεκτονικής. Επιπροσθέτως της πραγματικής IPC που επιτυγχάνεται, δείχνεται η απώλεια σε IPC εξαιτίας των cache stalls των δεδομένων των εντολών και της pipeline. Σχήμα 4 Βλέπουμε ότι ένα μεγάλο ποσοστό της απώλειας IPC είναι εξαιτίας των data cache stalls. Αυτό προκαλείται από το μικρό μέγεθος της πρωταρχικής cache δεδομένων. Οι Mk88ksim, MPsim και pmake έχουν σημαντικό cache stall χρόνο εντολών πράγμα 23

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP που οφείλεται στο γεγονός ότι αυτές οι εφαρμογές έχουν μεγάλο working set εντολών. Η pmake επίσης έχει πολλές διεργασίες και σημαντικό χρόνο εκτέλεσης πυρήνα που μεγαλώνει ακόμα περισσότερο τα cache miss rates των εντολών. Στο Σχήμα 5 φαίνεται η ανάλυση του IPC για την SS αρχιτεκτονική. Βλέπουμε ότι ένα σημαντικό ποσό IPC σπαταλιέται εξαιτίας των pipeline stalls. Η αύξηση των pipeline stalls σχετικά με τον 2-issue επεξεργαστή οφείλεται στην περιορισμένη ILP των εφαρμογών και στo 2-κύκλων hit time της L1 cache δεδομένων. Η μεγαλύτερη cache εντολών στη superscalar μικρο-αρχιτεκτονική εξαλείφει τα περισσότερα από τα stall εξαιτίας των instruction misses για όλες τις εφαρμογές εκτός των MPsim και pmake. Παρόλο που οι εφαρμογές κινητής υποδιαστολής του SPEC95 έχουν σημαντικό ποσοστό ILP, η απόδοσή τους είναι περιορισμένη στην SS αρχιτεκτονική εξαιτίας των data cache stalls που καταναλώνουν περισσότερο από το ½ του διαθέσιμου IPC. Σχήμα 5 O Πίνακας 5 δείχνει τα ποσοστά των cache misses για τη CMP αρχιτεκτονική δοσμένα σε μορφή MPCI. Για τη μείωση των miss-rate φαινομένων που προκαλούνται από το idle loop και το spinning εξαιτίας του synchronization, ο αριθμός των ολοκληρωμένων εντολών είναι εκείνες του 2-issue επεξεργαστή. Συγκρίνοντας τους Πίνακες 3 και 5 βλέπουμε ότι για τις εφαρμογές eqntott, m88ksim και apsi η CMP αρχιτεκτονική έχει σημαντικά υψηλότερα ποσοστά misses της cache δεδομένων από ένα 2-issue επεξεργαστή. Αυτό οφείλεται κυρίως στο μεγάλο βαθμό της επικοινωνίας που εμφανίζουν αυτές οι εφαρμογές. Παρόλο που η pmake επίσης παρουσιάζει μια αύξηση στο miss ποσοστό της data cache αυτό προκαλείται από τη μετανάστευση διεργασιών από επεξεργαστή σε επεξεργαστή της CMP αρχιτεκτονικής. Στο Σχήμα 6 φαίνεται η απόδοση ανάμεσα στη superscalar και τη CMP αρχιτεκτονική. Η απόδοση μετράται ως η επιτάχυνση της κάθε μικρο-αρχιτεκτονικής 24

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP σχετικά με το 2-issue επεξεργαστή. Στον compress, μια εφαρμογή με μικρό παραλληλισμό, η CMP είναι ικανή να επιτύχει 75% της απόδοσης του SS παρόλο που οι τρεις από τους τέσσερις επεξεργαστές είναι idle. Ωστόσο καμία από τις δύο αρχιτεκτονικές δε δείχνει σημαντική βελτίωση από το 2-issue επεξεργαστή. Πίνακας 5 Για εφαρμογές με λεπτό παραλληλισμό και υψηλή επικοινωνία όπως είναι ο eqntott, ο m88ksim και ο apsi η CMP και η SS είναι παρόμοιες. Και οι δύο αρχιτεκτονικές είναι ικανές να εκμεταλλευτούν τον παραλληλισμό παρόλο που δεν Σχήμα 6 25

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP χρησιμοποιούν τους ίδιους τρόπους για να το κάνουν αυτό. Η SS αρχιτεκτονική βασίζεται στη δυναμική εξαγωγή του ILP από ένα thread ελέγχου ενώ η CMP μπορεί να εκμεταλλευτεί μετριοπαθή επίπεδα ILP και μπορεί επίσης να εκμεταλλευτεί παραλληλισμό επιπέδου thread. Τόσο η SS όσο και η CMP προσέγγιση παρέχει μια 30% έως 100% αύξηση της απόδοσης σε σχέση με τον 2-issue επεξεργαστή. Εφαρμογές με μεγάλο βαθμό παραλληλισμού επιτρέπουν στη CMP αρχιτεκτονική να εκμεταλλευτεί αδρό μέγεθος παραλληλισμού επιπροσθέτως του λεπτού και του ILP. Για αυτές τις εφαρμογές η CMP είναι ικανή να παρουσιάσει σημαντικά καλύτερη απόδοση από την SS αρχιτεκτονική της οποίας η ικανότητα για δυναμική εξαγωγή παραλληλισμού περιορίζεται από το 128 παράθυρο εντολών. 1.3.4 Σύγκριση 2 η CMP vs. SMT vs. SS Σε αυτήν την ενότητα θα προσπαθήσουμε να συγκρίνουμε τρεις αρχιτεκτονικές μια CMP, μια SMT και μια SS ώστε να μπορέσουμε να δούμε ποια έχει τις καλύτερες προοπτικές όσον αφορά τα ολοκληρωμένα του ενός δισεκατομμυρίου τρανζίστορ. Μια στάνταρ περιοχή τσιπ έχει καθοριστεί καθώς και η πυκνότητα ολοκλήρωσης βασισμένη στο DRAM του ενός δισεκατομμυρίου τρανζίστορ. Με βάση αυτό έχουν καθοριστεί και οι παράμετροι για κάθε μια αρχιτεκτονική όπως φαίνεται στον Πίνακας 6. Πίνακας 6 Ο superscalar επεξεργαστής παρουσιάζεται στο Σχήμα 7 και μπορεί δυναμικά να εκδώσει μέχρι και 12 εντολές σε κάθε κύκλο. Ο SMT επεξεργαστής φαίνεται στο Σχήμα 8 και είναι πανομοιότυπος με το superscalar μόνο που έχει οκτώ ξεχωριστούς program counters και εκτελεί εντολές μέχρι και από οκτώ διαφορετικά thread ελέγχου ταυτόχρονα. Ο πυρήνας του επεξεργαστή δυναμικά κατανέμει του πόρους προσκόμισης και εκτέλεσης ανάμεσα στα διάφορα threads σε κάθε κύκλο ώστε να βρεθεί ο περισσότερος δυνατός παραλληλισμός επιπέδου thread και επιπέδου 26

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP εντολών. Ο CMP φαίνεται στο Σχήμα 9 και αποτελείται από οκτώ μικρούς 2-issue superscalar επεξεργαστές. Αυτή η αρχιτεκτονική βασίζεται σε παραλληλισμό επιπέδου thread καθώς η ικανότητά του για παραλληλισμό επιπέδου εντολών περιορίζεται από το μικρό μέγεθος κάθε επεξεργαστή. Σχήμα 7 Για να κρατήσουμε τα execution units σε λειτουργία οι εξομοιωμένες SS και SMT αρχιτεκτονικές έχουν προηγμένες μεθόδους πρόβλεψης διακλαδώσεων, μετονομασίας καταχωρητών, out-of-order έκδοσης εντολών και non-blocking caches δεδομένων. Ως αποτέλεσμα οι επεξεργαστές έχουν πολυάριθμους multiported rename buffers, ουρές έκδοσης και αρχεία καταχωρητών. Σχήμα 8 Η έμφυτη πολυπλοκότητα αυτών των αρχιτεκτονικών έχεις ως αποτέλεσμα τρία μεγάλα προβλήματα στο σχεδιασμό του υλικού τα οποία λύνει η CMP αρχιτεκτονική διατηρώντας το υλικό απλό. Τα προβλήματα αυτά έχουν αναλυθεί σε προηγούμενες ενότητες οπότε εδώ θα τα αναφέρουμε περιληπτικά. Η περιοχή αυτών των αρχιτεκτονικών αυξάνεται τετραγωνικά ανάλογα με την πολυπλοκότητα του πυρήνα. Ο αριθμός των καταχωρητών σε κάθε δομή πρέπει να αυξάνεται αναλογικά με το μέγεθος του παραθύρου εντολών. Επίσης ο αριθμός των ports σε κάθε καταχωρητή αυξάνεται 27

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP αναλογικά με το εύρος έκδοσης του επεξεργαστή. Η CMP δεν αντιμετωπίζει αυτά τα προβλήματα γιατί προσπαθεί να επιτύχει υψηλότερο βαθμό παραλληλισμού χρησιμοποιώντας περισσότερους επεξεργαστές και όχι μεγάλο εύρος έκδοσης μέσα σε έναν επεξεργαστή. Μπορεί να απαιτούν μεγαλύτερους κύκλους ρολογιού. Τα μακριά, μεγάλης χωρητικότητας καλώδια εισόδου εξόδου εκτείνονται κατά μήκος των buffer, των ουρών και των αρχείων των καταχωρητών. Εκτεταμένη χρήση πολυπλεκτών και crossbar για τη διασύνδεση αυτών των μονάδων προσθέτει περισσότερη χωρητικότητα. Η καθυστέρηση που σχετίζεται με αυτά τα καλώδια πιθανότατα θα κυριαρχεί στην καθυστέρηση του κρίσιμου μονοπατιού της CPU. Η CMP προσέγγιση επιτρέπει ένα σχετικά μικρό κύκλο ρολογιού με μικρή σχεδιαστική προσπάθεια καθώς κάθε μια από τις CPU είναι ένα μικρό cluster διαφόρων συστατικών μερών. Τα CPU cores είναι πολύπλοκα και αποτελούνται από πολλά τμήματα πολύ κοντά συνδεδεμένα μεταξύ τους. Ως αποτέλεσμα το σχεδιαστικό και το ελεγκτικό κόστος θα αυξηθεί καθώς πρέπει να σχεδιάζονται και να ελέγχονται ως αυτόνομες ολοκληρωμένες μονάδες. Η CMP χρησιμοποιεί ένα μικρό γκρουπ από πανομοιότυπους επεξεργαστές. Αυτό επιτρέπει στο σχεδιαστικό και στο ελεγκτικό κόστος για κάθε ένα CPU core να είναι μικρό και να κατανέμεται στον αριθμό των cores. Σχήμα 9 Στη συνέχεια θα περιγράψουμε την ιεραρχία μνήμης στα συστήματα που είδαμε και ποια προβλήματα καλείται αυτή να αντιμετωπίσει όπως έγινε και με τη σύγκριση της προηγούμενης ενότητας. Ένας 12-issue superscalar ή SMT επεξεργαστής μπορεί να έχει υψηλές απαιτήσεις από το σύστημα μνήμης. Για παράδειγμα για να μπορεί να διαχειρίζεται load/store εντολές γρήγορα οι επεξεργαστές απαιτούν μια μεγάλη cache πρώτου επιπέδου με τέσσερα έως έξι ανεξάρτητα ports. Ο SMT επεξεργαστής χρειάζεται περισσότερο εύρος ζώνης από 28

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP την cache πρώτου επιπέδου απ ότι ο SS γιατί τα πολλά ανεξάρτητα threads τυπικά επιτρέπουν στον πυρήνα να εκδίδει περισσότερα load και stores σε κάθε κύκλο, μερικά από το κάθε thread. Για να ικανοποιήσουν αυτές τις απαιτήσεις η SS και η SMT αρχιτεκτονικές έχουν 128 KB multibanked cache πρώτου επιπέδου με καθυστέρηση δύο κύκλων εξαιτίας του μεγέθους των caches και της πολυπλοκότητας διασύνδεσης των banks. Η CMP αρχιτεκτονική έχει δεκάξι 16 KB caches. Τα οκτώ cores είναι τελείως ανεξάρτητα και στενά συνδεδεμένα με τα αποκλειστικά ζευγάρια caches για το καθένα από αυτά. Το μικρό μέγεθος cache και η στενή διασύνδεση επιτρέπουν προσπέλαση σε έναν μόνο κύκλο. Το υπόλοιπο σύστημα μνήμης παραμένει ουσιαστικά το ίδιο εκτός από το ότι ο ελεγκτής της cache δεύτερου επιπέδου πρέπει να προσθέσει δύο έξτρα κύκλους καθυστέρησης ώστε να διαχειρίζεται τα αιτήματα από τους πολλούς επεξεργαστές. Για να διαμοιραστεί μια μνήμη ανάμεσα σε πολλούς επεξεργαστές οι data caches θα μπορούσαν να γίνουν write-through ή ένα MESI πρωτόκολλο συνέπειας των caches θα μπορούσε να τοποθετηθεί στις caches πρώτου επιπέδου. Επειδή το εύρος ζώνης σε μια on-chip cache μπορεί εύκολα να γίνει αρκετά μεγάλο για να διαχειρίζεται τη write-through κίνηση επιλέχθηκε αυτό το σχήμα συνέπειας για τη CMP. Με αυτόν τον τρόπο οι σχεδιαστές μπορούν να υλοποιήσουν μικρής κλίμακας πολυ-επεξεργαστές με πολύ μικρή καθυστέρηση επικοινωνίας μεταξύ των επεξεργαστών. Για την παροχή αρκετής off-chip μνήμης για τους επεξεργαστές υψηλής απόδοσης όλες οι εξομοιώσεις έγιναν με κύρια μνήμη multibanked Rambus DRAM (RDRAM) συνδεδεμένη με πολλά Rambus κανάλια σε κάθε επεξεργαστή. Ας δούμε τώρα τι γίνεται με την απόδοση των συστημάτων και τα αποτελέσματα που έχουν αυτά για διάφορες εφαρμογές. Η απόδοση των αρχιτεκτονικών έγινε με τη χρήση τεσσάρων αντιπροσωπευτικών εφαρμογών που έτρεχαν σε ένα ρεαλιστικό περιβάλλον εξομοίωσης το οποίο εμπεριείχε και λειτουργικό σύστημα. Για κάθε αρχιτεκτονική υποθέτουμε ότι υπάρχει ένα functional unit κάθε τύπου (ακεραίου, κινητής υποδιαστολή και load/store) για κάθε issue slot πράγμα που σημαίνει ότι μόνο εξαρτήσεις δεδομένων και το εύρος έκδοσης μπορούν να αποτρέψουν την έκδοση μιας εντολής. Οι καθυστερήσεις των functional units που χρησιμοποιήθηκαν στην εξομοίωση είναι εκείνες του MIPS R10000. Επίσης ο εξομοιωτής μοντελοποιεί την επίλυση διαφορών στις caches πρώτου επιπέδου, δεύτερου επιπέδου και στην κύρια μνήμη. Τα τέσσερα benchmarks που χρησιμοποιήθηκαν παρουσιάζονται παρακάτω : Compress, από το SPEC95 όπως είδαμε και στην προηγούμενη σύγκριση είναι εφαρμογή ακεραίων και παρουσιάζει πολύ λίγο ILP και καθόλου παραλληλισμό επιπέδου thread. Mpeg-2 αποκωδικοποιητής, αντιπροσωπεύει τον αυξανόμενο αριθμό πολυμεσικών εφαρμογών που βρίσκονται είτε σε desktop μηχανήματα είτε σε server. Όπως οι περισσότερες από αυτές τις εφαρμογές έχει σημαντικό έμφυτο παραλληλισμό επιπέδου εντολών και επιπέδου thread αλλά μετριοπαθείς απαιτήσεις σε μνήμη εξαιτίας της υπολογιστικά έντονης φύσης του αλγορίθμου. Εύκολα μπορούμε να παραλληλοποιήσουμε χειρωνακτικά αυτήν την εφαρμογή. Tomcatv επίσης από το SPEC95, αντιπροσωπεύει τις επιστημονικές εφαρμογές κινητής υποδιαστολής με μεγάλο βαθμό παραλληλισμού 29

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP επιπέδου βρόγχων και σημαντικές απαιτήσεις σε μνήμη. Η superscalar αρχιτεκτονική εκμεταλλεύεται το ILP που εμφανίζεται σε αυτήν την εφαρμογή ενώ οι SMT και CMP εκμεταλλεύονται τον παραλληλισμό επιπέδου thread που βρίσκεται αυτόματα με τη χρήση ενός μεταφραστή. Multiprogram είναι ένας ακέραιος πολυ-προγραμματιστικός φόρτος εργασίας που αποτελείται από διάφορες εξομοιώσεις συστημάτων οι οποίες εμφανίζουν όλες έντονους υπολογισμούς. Αυτές τις τρέχουμε ως ξεχωριστές διεργασίες. Στο Σχήμα 10 φαίνεται η απόδοση της SS, της SMT και της CMP αρχιτεκτονικής στα τέσσερα προγράμματα σε συνάρτηση με μια βασική αρχιτεκτονική που είναι ένας 2-issue επεξεργαστής συνδεδεμένος με το σύστημα μνήμης των SS/SMT. Σχήμα 10 Τα πρώτα δύο benchmarks παρουσιάζουν απόδοση σε εφαρμογές με σχετική απαίτηση σε μνήμη και καθόλου παραλληλισμό επιπέδου thread (compress) ή μεγάλο αριθμό παραλληλισμού επιπέδου thread (mpeg). Στον compress η ευρείας έκδοσης SS και η SMT αρχιτεκτονικές πέτυχαν μια αύξηση της απόδοσης της τάξης του 43% έναντι του συστήματος αναφοράς ενώ ο μοναδικός ενεργός επεξεργαστής της CMP ήταν προσεγγιστικά ίσος με αυτόν του συστήματος αναφοράς. Παρόλο που βελτιωμένη τεχνολογία στο μεταφραστή μπορεί να παρέχει καλύτερο χρονοπρογραμματισμό των εντολών στο μέλλον είναι δύσκολο να επιτευχθεί σημαντική βελτίωση στην απόδοση εφαρμογών όπως ο compress οι οποίες περιορίζονται από την έλλειψη ILP. Η SS είχε σχετικά καλά αποτελέσματα στον mpeg μολονότι περιορίστηκε από την έλλειψη ILP που μπορούσε να αποκαλυφθεί σε ένα παράθυρο εντολών. Οι SMT και CMP ήταν ικανές να εκμεταλλευτούν τον παραλληλισμό επιπέδου thread για να λειτουργούν πιο αποδοτικά. Η SMT χρησιμοποίησε τους πόρους του πυρήνα της αποδοτικότερα όμως η CMP πέτυχε 30

Κεφάλαιο 1 Chip Multiprocessing CMP 1.3 Ανάλυση του CMP καλύτερα αποτελέσματα επειδή είχε συνολικά 16 issue slots αντί για 12. Ο Tomcatv έχει τόσο ILP όσο και TLP έχει όμως και τεράστιες απαιτήσεις σε μνήμη. Η ικανότητα για ανταπόκριση σε αυτές τις απαιτήσεις ήταν κρίσιμης σημασίας ώστε να επιτευχθεί καλή απόδοση. Η SS πέτυχε μόνο 40% αύξηση της απόδοσης σε σχέση με τον επεξεργαστή αναφοράς. Με μόνο ένα thread ελέγχου κάθε cache miss προκαλούσε καθυστέρηση στην pipeline και σπαταλούσε μεγάλο αριθμό από issue slots. Ένας καλύτερος μεταφραστής πιθανότατα θα μπορούσε να προγραμματίσει καλύτερα τις εντολές όμως πολλά threads ελέγχου ούτως ή άλλως θα ήταν τελικά καλύτερα και πιο αποδοτικά στο να κρύβουν τη καθυστέρηση των cache misses επειδή η εκτέλεση μερικών thread επικαλυπτόταν με τις καθυστερήσεις άλλων. Η CMP παρουσίασε σχεδόν οκτώ φορές αύξηση της απόδοσης απέναντι στον 2-issue επεξεργαστή. Οι ξεχωριστές caches πρώτου επιπέδου είναι πρωταρχικής σημασίας επειδή μπορούσαν να προσπελαστούν από όλους τους επεξεργαστές παράλληλα. Σε ένα ξεχωριστό τεστ με οκτώ επεξεργαστές να μοιράζονται μια cache, οι συγκρούσεις στην προσπάθεια προσπέλασης των banks των διαφόρων επεξεργαστών υποβάθμιζε σημαντικά την απόδοση. Ο μέσος χρόνος προσπέλασης της cache πρώτου επιπέδου μόνο, ανέβηκε από 1.1 σε 5.7 κύκλους κυρίως εξαιτίας καθυστερήσεων στις ουρές των banks και η συνολική απόδοση έπεσε κατά 24%. Σε αντίθεση η διαμοιραζόμενη cache δευτέρου επιπέδου δεν ήταν σημείο καθυστέρησης στη CMP επειδή λάμβανε μια τάξη μικρότερη προσπελάσεις. Τα αποτελέσματα της SMT έδειξαν παρόμοια τάση. Οι βελτιώσεις ακολουθούσαν από κοντά εκείνες της CMP όταν μοντελοποιούσαν παρόμοιο βαθμό από συγκρούσεις στην cache δεδομένων. Η ονομαστική απόδοση ήταν παρόμοια με της CMP με μια cache πρώτου επιπέδου και η απόδοση βελτιώθηκε κατά 17% όταν προσωρινά απενεργοποιήθηκε το πρωτόκολλο συνέπειας της cache. Τα πολλά threads ελέγχου της SMT επέτρεψαν να γίνει εκμεταλλεύσιμος ο TLP. Επιπλέον η δυναμική ανάθεση πόρων στην SMT της επέτρεψε να γίνει ανταγωνίσιμη με τη CMP παρόλο που είχε συνολικά λιγότερα issue slots. Παρόλ αυτά η συμπεριφορά της μνήμης του tomcatv επεσήμανε ένα βασικό πρόβλημα στην SMT αρχιτεκτονική : η ενοποιημένη αρχιτεκτονικής της cache δεδομένων ήταν περιοριστικός παράγοντας του εύρους ζώνης. Η κατασκευή μιας cache δεδομένων με αρκετά banks ή ports, για να μπορεί να αντεπεξέρχεται στις απαιτήσεις της μνήμης οκτώ threads, χρειάζεται ένα εξεζητημένο crossbar δίκτυο που θα προσθέσει περισσότερη καθυστέρηση στις caches και δε θα βοηθήσει αν υπάρχει ένα συγκεκριμένο bank το οποίο προσπελαύνεται συχνά. Οι ανεξάρτητες cashes δεδομένων της CMP αποφεύγουν αυτό το πρόβλημα αλλά δεν είναι εφικτές σε μια SMT αρχιτεκτονική. Όπως και ο compress η πολυ-προγραμματιστική εφαρμογή έχει λίγο ILP έτσι η αύξηση της απόδοσης της superscalar αρχιτεκτονικής ήταν μόνο 35% καλύτερη από εκείνη του συστήματος αναφοράς. Αντίθετα με τον compress όμως η πολυ-προγραμματιστική εφαρμογή έχει μεγάλο αριθμό παραλληλισμού επιπέδου διεργασιών τον οποίο εκμεταλλεύθηκαν αποτελεσματικά τόσο η SMT όσο και η CMP. Αυτό είχε ως αποτέλεσμα σε μια γραμμική οκταπλάσια αύξηση για τη CMP. Η SMT πέτυχε σχεδόν επταπλάσια αύξηση από τον 2-issue επεξεργαστή, κάτι που είναι παραπάνω απ ότι θα μπορούσε κάποιος να υπολογίσει βασιζόμενος στη διαφορά του αριθμού των issue slots, επειδή χρησιμοποίησε αποτελεσματικά τον επεξεργαστή παρεμβάλλοντας τα threads κύκλο ανά κύκλο. 31