Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

Σχετικά έγγραφα
Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 9: Εισαγωγή στην Ομοχειρία (Pipelining - Διοχέτευση) Μανόλης Γ.Η.

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η.

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Οργάνωση Υπολογιστών

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 8: Μία Απλή Υλοποίηση του MIPS σε Έναν Κύκλο Ρολογιού ανά Εντολή

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

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εισαγωγή στην Επιστήμη και Τεχνολογία των Υπηρεσιών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

ΔΙΟΙΚΗΤΙΚΗ ΕΠΙΣΤΗΜΗ. Ενότητα #10: ΔΙΟΙΚΗΣΗ ΟΛΙΚΗΣ ΠΟΙΟΤΗΤΑΣ ΚΑΙ ΑΝΑΣΧΕΔΙΑΣΜΟΣ ΔΙΑΔΙΚΑΣΙΑΣ

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

Λογική. Δημήτρης Πλεξουσάκης. Ασκήσεις 2ου Φροντιστηρίου: Προτασιακός Λογισμός: Κανονικές Μορφές, Απλός Αλγόριθμος Μετατροπής σε CNF/DNF, Άρνηση

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών

ΟΙΚΟΝΟΜΙΚΗ ΑΝΑΛΥΣΗ Ενότητα #4: ΙΣΟΡΡΟΠΙΑ ΑΓΟΡΩΝ

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

τατιςτική ςτην Εκπαίδευςη II

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

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Φροντιστήριο 4: Μορφολογική Παραγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

ΔΙΟΙΚΗΤΙΚΗ ΕΠΙΣΤΗΜΗ ΚΕΦΑΛΑΙΟ 2#: ΕΙΣΑΓΩΓΗ ΣTΗ ΔΙΟΙΚΗΤΙΚΗ ΕΠΙΣΤΗΜΗ

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

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

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

Μακροοικονομική Θεωρία Ι

Τελική Εξέταση, Απαντήσεις/Λύσεις

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Διαλέξεις 6: Κάλεσμα Διαδικασιών, Χρήση και Σώσιμο Καταχωρητών. Μανόλης Γ.Η.

Λογική Δημήτρης Πλεξουσάκης Ασκήσεις στον Κατηγορηματικό Λογισμό Τμήμα Επιστήμης Υπολογιστών

ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΕΠΙΔΟΣΗΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΕΦΑΛΑΙΟ 8: Επεξεργασία και ερμηνεία αξιολογικών δεδομένων του μαθητή

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις

Μαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

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

Μακροοικονομική Θεωρία Ι

ΨΥΧΟΠΑΙΔΑΓΩΓΙΚΗ ΤΗΣ ΠΡΟΣΧΟΛΙΚΗΣ ΗΛΙΚΙΑΣ

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Διδακτική Φυσικών Επιστημών στην Προσχολική Εκπαίδευση

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

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

ΟΙΚΟΝΟΜΙΚΗ ΑΝΑΛΥΣΗ 2 Ενότητα #9: Η μέτρηση του κόστους ζωής

ΜΑΚΡΟΟΙΚΟΝΟΜΙΚΗ ΘΕΩΡΙΑ ΙΙ

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΟΙΚΟΝΟΜΙΚΗ ΑΝΑΛΥΣΗ Ενότητα #3: ΟΙ ΑΓΟΡΑΙΕΣ ΔΥΝΑΜΕΙΣ ΤΗΣ ΠΡΟΣΦΟΡΑΣ ΚΑΙ ΖΗΤΗΣΗΣ

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

Μακροοικονομική Θεωρία Ι

ΔΗΜΟΣΙΑ ΟΙΚΟΝΟΜΙΚΗ Ι

Γνωστική Ψυχολογία 3

ΟΙΚΟΝΟΜΙΚΗ ΑΝΑΛΥΣΗ 2

ΕΚΠΑΙΔΕΥΤΙΚΗ ΑΞΙΟΛΟΓΗΣΗ

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

τατιςτική ςτην Εκπαίδευςη II

Λογιστικές Εφαρμογές Εργαστήριο

9 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

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

MIPS functions and procedures

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

Γνωστική Ψυχολογία 3

ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΕΠΙΔΟΣΗΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΕΦΑΛΑΙΟ 4: Παιδαγωγική και κοινωνική υπόσταση της αξιολόγησης

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

Οργάνωση Υπολογιστών

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1

ΟΙΚΟΝΟΜΙΚΗ ΑΝΑΛΥΣΗ 2 Ενότητα #3: Το κόστος παραγωγής

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

Η ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΙΣΤΟΡΙΑΣ ΣΤΗΝ ΕΛΛΗΝΙΚΗ ΔΙΑΣΠΟΡΑ (A06 11)

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ

ΜΑΚΡΟΟΙΚΟΝΟΜΙΚΗ ΘΕΩΡΙΑ ΙΙ

Γνωστική Ψυχολογία 3

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 1. Αφηρηµένες έννοιες και τεχνολογία υπολογιστών

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης. Multicycle datapath

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Διάλεξη 12 Καθυστερήσεις (Stalls)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Υπολογιστικά & Διακριτά Μαθηματικά

ΑΞΙΟΛΟΓΗΣΗ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΕΡΓΟΥ ΚΑΙ ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ ΣΧΟΛΕΙΟΥ ΚΕΦΑΛΑΙΟ 5: Κριτήρια (εσωτερικά - εξωτερικά) αξιολόγησης των σχολικών μονάδων

ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΕΠΙΔΟΣΗΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΕΦΑΛΑΙΟ 11: Κριτική αποτίμηση των διαδικασιών αξιολόγησης στο ελληνικό δημοτικό σχολείο

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

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης Υπολογιστών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια χρήσης Creative Commons και ειδικότερα Αναφορά Μη εμπορική Χρήση Όχι Παράγωγο Έργο 3.0 Ελλάδα (Attribution Non Commercial Non-derivatives 3.0 Greece). CC BY-NC-ND 3.0 GR Εξαιρείται από την ως άνω άδεια υλικό που περιλαμβάνεται στις διαφάνειες του μαθήματος, και υπόκειται σε άλλου τύπου άδεια χρήσης. Η άδεια χρήσης στην οποία υπόκειται το υλικό αυτό αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σειρά Ασκήσεων 10: Επίδοση Επεξεργαστών, CPI Βιβλίο: Διαβάστε την 1.4, σελίδες 61-74. Άσκηση 10.1: Επίδοση Επεξεργαστών Η επίδοση (performance) ενός υπολογιστή, κατά την εκτέλεση δοθέντος προγράμματος, είναι αντίστροφα ανάλογη προς τον χρόνο εκτέλεσης αυτού του προγράμματος σε αυτόν τον υπολογιστή. Η επίδοση ενός υπολογιστή, γενικά και αόριστα, ανεξαρτήτως εκτελουμένου προγράμματος, δεν μπορεί να οριστεί επακριβώς και επιστημονικά, μπορεί δε να ποικίλλει ευρέως ανάλογα με τα χαρακτηριστικά των διαφόρων προγραμμάτων. Εάν ο υπολογιστής A εκτελεί ένα δοθέν πρόγραμμα σε χρόνο ta, ο δε υπολογιστής B το εκτελεί σε χρόνο tb, όπου tb > ta και (tb / ta) = 1.xy, τότε λέμε ότι "ο υπολογιστής A είναι ταχύτερος του B κατά xy % γιά το δοθέν πρόγραμμα". Παραδείγματος χάριν, αν ta = 4s και tb = 5s, τότε (tb/ta) = 1.25, και ο A είναι ταχύτερος του Β κατά 25 % γιά το δοθέν πρόγραμμα. Ο χρόνος t exec εκτέλεσης ενός προγράμματος σ' έναν υπολογιστή μπορεί συχνά να εκφραστεί σαν: t exec = N instructions * CPI average * T clock όπου N instructions είναι το πλήθος (ο αριθμός) των εντολών που ο υπολογιστής εκτελεί προκειμένου να ολοκληρωθεί η εκτέλεση του δοθέντος προγράμματος, CPI average είναι το μέσο πλήθος (μέσος αριθμός) των κύκλων ρολογιού που απαιτούνται γιά την εκτέλεση μιάς εντολής (Cycles Per Instruction --CPI), και T clock είναι ο χρόνος που διαρκεί ένας κύκλος ρολογιού, δηλαδή η περίοδος του ρολογιού, δηλαδή το αντίστροφο της συχνότητας ρολογιού. Ερώτηση: Θεωρήστε έναν υπολογιστή A (τύπου RISC), που γιά να τελειώσει ένα δοθέν πρόγραμμα πρέπει να εκτελέσει 2,500,000 εντολές, με μέσο CPI = 3.2 κύκλους ρολογιού ανά εντολή, και με ρολόϊ 1.25 GHz. Ενας άλλος υπολογιστής B (τύπου CISC --complex instruction set computer) έχει πιό "πλούσιο" ρεπερτόριο εντολών, κι έτσι του αρκεί να εκτελέσει μόνο 1,800,000 εντολές γιά να τελειώσει το ίδιο πρόγραμμα. Ομως, λόγω της αυξημένης πολυπλοκότητάς του, έχει μέσο CPI = 4.0 κύκλους ρολογιού ανά εντολή, και ρολόϊ 1.0 GHz. Πόσους κύκλους ρολογιού και πόσα δευτερόλεπτα χρειάζεται ο κάθε υπολογιστής γιά να εκτελέσει το δοθέν πρόγραμμα; Ποιός από τους δύο υπολογιστές είναι ταχύτερος από τον άλλον γιά το δοθέν πρόγραμμα, και πόσο ταχύτερος; Άσκηση 10.2: Μέσο CPI του Επεξεργαστή πολλαπλών κύκλων ανά εντολή Ας πούμε ότι κάποιος υπολογιστής έχει δύο ειδών εντολές: (i) εντολές τύπου Α, που καθεμιά τους χρειάζεται CPI A κύκλους ρολογιού γιά να εκτελεστεί, και (ii) εντολές τύπου B, που καθεμιά τους χρειάζεται CPI Β κύκλους ρολογιού γιά να εκτελεστεί. Το πρόγραμμά μας, γιά να ολοκληρωθεί η εκτέλεσή του, χρειάζεται να εκτελεστούν: N A το πλήθος εντολές τύπου A, και N B το πλήθος εντολές τύπου B (Προφανώς, γιά ολόκληρο το πρόγραμμα: N instructions = N A + N B ). Τότε, ο συνολικός χρόνος εκτέλεσης του προγράμματος θα είναι: t exec = ( N A * CPI A + N B * CPI B ) * T clock = N instructions * CPI average * T clock Το αριστερό μέρος της εξίσωσης αυτής προέρχεται από το πόσο χρόνο χρειάζονται γιά να εκτελεστούν όλες οι εντολές --και οι τύπου Α και οι τύπου Β. Το δεξιό μέρος της εξίσωσης είναι η "απλοποιητική" σχέση της παραπάνω 10.1, η οποία χρησιμεύει και σαν ορισμός του μέσου CPI.

Από τη δεξιά ισότητα, λοιπόν, απλοποιώντας το T clock και διαιρώντας διά N instructions προκύπτει ότι το μέσο CPI είναι ο σταθμισμένος μέσος όρος των κύκλων ρολογιού ανά εντολή, όπου οι συντελεστές στάθμισης είναι τα ποσοστά (συχνότητα) εκτέλεσης του κάθε τύπου εντολών: CPI average = ( N A / N instructions ) * CPI A + ( N B / N instructions ) * CPI B Ας εξετάσουμε λοιπόν μια συγκεκριμένη περίπτωση: Στα προγράμματα ακεραίων (όχι κινητής υποδιαστολής) μεταξύ των SPEC benchmarks, όταν αυτά εκτελούνται στον MIPS, η συχνότητα εκτέλεσης των διαφόρων εντολών είναι περίπου η εξής: 26 % load (lw, κλπ), 11 % store (sw, κλπ), 40 % ALU (add, addi, sub, and, or, slt, slti, κλπ), 3 % load upper immediate (lui), 16 % conditional branches (beq, bne, κλπ), 4 % unconditional jumps (j, jr, jal, κλπ). (α) Στην υλοποίηση του επεξεργαστή μας σε πολλαπλούς "σύντομους" κύκλους ρολογιού (αλλά όχι ακόμα pipelined) που είδαμε στην 8.9, έστω ότι οι κύκλοι ρολογιού που χρειάζονται γιά την εκτέλεση του κάθε τύπου εντολής είναι: πέντε (5) κύκλοι γιά κάθε εντολή load τέσσερεις (4) κύκλοι γιά κάθε εντολή store ή ALU και τρείς (3) κύκλοι γιά κάθε εντολή lui, branch, ή jump. Βασει της διάρκειας αυτής εκτέλεσης του κάθε τύπου εντολής, και βάσει των παραπάνω ποσοστών εκτέλεσης των διαφόρων τύπων εντολών, πόσο θα είναι το μέσο CPI αυτού του επεξεργαστή γιά αυτά τα προγράμματα; (β) Έστω τώρα ότι κάνουμε βελτιστοποιήσεις: έστω ότι κάνουμε όλες τις εντολές άλματος (j, jr, jal, κλπ) καθώς και την εντολή load upper immediate (lui) να εκτελούνται σε δύο (2) αντί τριών κύκλων ρολογιού καθεμία. Πόσο θα είναι τότε το νέο μέσο CPI του επεξεργαστή γιά αυτά τα προγράμματα; (γ) Αν η βελτιστοποίηση (β) έχει σαν αρνητική παρενέργεια να αυξήσει τον κύκλο ρολογιού από 0.80 ns σε 0.85 ns, ποιός από τους δύο επεξεργαστές (α) και (β) θα είναι ταχύτερος, και κατά πόσο; (Υπόδειξη: προφανώς, το πλήθος των εκτελούμενων εντολών N instructions δεν αλλάζει από τον (α) στον (β)). Άσκηση 10.3: Μέσο CPI Επεξεργαστή με Ομοχειρία (Pipelining) Στο κεφάλαιο (άσκηση) 9 περί ομοχειρίας (pipelining), είδαμε ότι, όσο ο επεξεργαστής βρίσκει ανεξάρτητες μεταξύ τους εντολές, τις εκτελεί με ρυθμό μία εντολή ανά κύκλο ρολογιού. Έτσι, παρά ο γεγονός ότι η εκτέλεση της κάθε εντολής διαρκεί περισσότερους του ενός κύκλους ρολογιού, το συνολικό πλήθος κύκλων ρολογιού γιά την εκτέλεση ενός ολόκληρου προγράμματος --που είναι και αυτό που μας ενδιαφέρει-- είναι περίπου τόσο όσες και οι εκτελούμενες εντολές (υπό τις παραπάνω προϋποθέσεις ανεξαρτησίας). Αρα, το μέσο CPI υπό τις συνθήκες αυτές θα είναι 1, δηλαδή η κάθε εντολή μας "κοστίζει" 1 κύκλο ρολογιού, όσο δηλαδή μας "καθυστερεί" μέχρι να ξεκινήσουμε και την επόμενή της. Ομως, όπως είπαμε, δυστυχώς, υπάρχουν και αλληλεξαρτήσεις εντολών, οι οποίες προκαλούν απώλεια κύκλου ή κύκλων ρολογιού επιπλέον του παραπάνω ενός "βασικού" κύκλου ανά εντολή. Ας θεωρήσουμε, σε σχέση και με τα ποσοστά εντολών που αναφέρθηκαν στην παραπάνω άσκηση 10.2, ότι: Το 33 % των εκτελουμένων load (άρα το 33% του 26% ίσον 8.6% του συνόλου των εκτελουμένων εντολών) ακολουθείται αμέσως από εξαρτημένη εντολή (εντολή που χρειάζεται τα loaded data στην 3η βαθμίδα της pipeline της), και άρα προκαλούν (αυτές οι 33% των load ίσον 8.6% του συνόλου των εντολών) την απώλεια ενός κύκλου ρολογιού

επιπλέον του ενός βασικού. Το 25 % των εκτελουμένων διακλαδώσεων υπό συνθήκη (branch) (άρα το 25% του 16% ίσον 4% του συνόλου των εκτελουμένων εντολών) δεν καθίσταται εφικτό να περιέχει μία από τις πολλές βελτιστοποιήσεις που υπάρχουν, και κατά συνέπεια προκαλούν (και αυτές οι 4% του συνόλου των εντολών) την απώλεια ενός κύκλου ρολογιού επιπλέον του ενός βασικού. Με αυτά τα δεδομένα, πόσο θα είναι το μέσο CPI (γιά τα παραπάνω προγράμματα της άσκησης 10.2) ενός επεξεργαστή MIPS που χρησιμοποιεί αυτή τη μορφή ομοχειρίας; Θεωρώντας ότι αυτός ο επεξεργαστής έχει το ίδιο ρολόϊ με εκείνον της άσκησης 10.2(α), και αφού, φυσικά, εκτελεί τις ίδιες εντολές ανά πρόγραμμα, πόσο ταχύτερος θα είναι αυτός ο επεξεργαστής από εκείνον της άσκησης 10.2(α); Άσκηση 10.4: Μέσο CPI Επεξεργαστή Superscalar με Ομοχειρία Οι σημερινοί (μικρο-) επεξεργαστές του εμπορίου χρησιμοποιούν τόσο την τεχνική της ομοχειρίας (pipelining) που είδαμε παραπάνω, όσο και τεχνικές εκτέλεσης πολλαπλών εντολών ταυτόχρονα --συνήθως με τη μορφή που αποκαλείται "superscalar". Θεωρήστε ένα τέτοιον επεξεργαστή που σε κάθε κύκλο ρολογιού διαβάζει (fetch) από τη μνήμη τις τέσσερεις (4) επόμενες εντολές, και εκτελεί ταυτόχρονα (εν παραλλήλω) όσες από αυτές είναι ανεξάρτητες μεταξύ τους. Το μέσο CPI ενός τέτοιου επεξεργαστή είναι όσο θα ήταν με χρήση ομοχειρίας μόνο (χωρίς superscalarity), διηρημένο διά το μέσο πλήθος ταυτόχρονα εκτελούμενων εντολών, δεδομένου ότι τώρα ο κάθε κύκλος ρολογιού που περνάει "χρεώνεται" σε όλες τις ταυτόχρονα εκτελούμενες εντολές, άρα στην κάθε εντολή χρεώνονται αντίστοιχα λιγότεροι κύκλοι ρολογιού (λιγοστεύουν οι cycles per instruction --CPI). Θεωρήστε ότι κάνουμε τον επεξεργαστή της άσκησης 10.3 superscalar, και ας πούμε γιά απλότητα ότι αυτό γίνεται χωρίς να αλλάξουμε την δομή της pipeline του και χωρίς να αλλάξει το ρολόϊ (στην πράξη δεν είναι έτσι). Εάν το μέσο πλήθος ταυτόχρονα εκτελούμενων ανεξάρτητων εντολών είναι 1.6 εντολή, τότε ποιό θα είναι το μέσο CPI του νέου επεξεργαστή; Πόσο γρηγορότερος θα είναι αυτός από εκείνον της άσκησης 10.2(α), και πόσο από εκείνον της άσκησης 10.3;