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

Σχετικά έγγραφα
Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

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

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

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

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

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

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

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Πρόβλεψη διακλάδωσης

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

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

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

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

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

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

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

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

Μικροβιολογία & Υγιεινή Τροφίμων

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

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

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

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

Ιστορία της μετάφρασης

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

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

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Ηλεκτρονικοί Υπολογιστές I

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Πιθανότητες. Συνδυαστική Ανάλυση Διδάσκων: Επίκουρος Καθηγητής Κωνσταντίνος Μπλέκας

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Πιθανότητες. Συνεχείς τυχαίες μεταβλητές Διδάσκων: Επίκουρος Καθηγητής Κωνσταντίνος Μπλέκας

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Ηλεκτρονικοί Υπολογιστές II

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

Εφαρμοσμένη Στατιστική

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

Ηλεκτρονικοί Υπολογιστές I

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

Εισαγωγή στα Λειτουργικά

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Θέματα Μεταγλωττιστών

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

Υπολογιστές Ι. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Διακλαδώσεις. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

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

Ηλεκτρονικοί Υπολογιστές IV

Συστήματα Αναμονής. Ενότητα 1: Εισαγωγή. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

(Branch Prediction Mechanisms)

Τίτλος Μαθήματος: Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Ενότητα: Εισαγωγή στους Επεξεργαστές Κειμένου-Μέρος 2

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Εκκλησιαστικό Δίκαιο

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 6 : Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Δρ.

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Ιστορία της μετάφρασης

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

Εφαρμοσμένη Στατιστική

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Σύγχρονοι υπολογιστές Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Οργάνωση ενός σύγχρονου πυρήνα Αρης Ευθυμίου

Το σημερινό μάθημα!!!! Ταχύτερη εκτέλεση σειριακών προγραμμάτων Παραλληλία επιπέδου εντολής Πρόβλεψη διακλάδωσης Πολλαπλή εκκίνηση εντολών Στατική εκτενές παράδειγμα με 2- issue MIPS Δυναμική εκτέλεση εκτός σειράς! Ορια επίδοσης με εκμετάλευση ILP 2

επιπέδου εντολής! Αγγλικός όρος: Instruc^on- Level Parallelism (ILP)! ILP: ανακάλυψη και εκμετάλευση παραλληλίας μεταξύ εντολών ενός σειριακού προγράμματος επικαλυπτόμενη εκτέλεση (pipelining) παράλληλη εκτέλεση εντολών αλλαγή σειράς εκτέλεσης...! Αρκεί: να μην αλλάζει το «νόημα» του (σειριακού) προγράμματος αποτελέσματα σειρά εμφάνισης excep^ons 3

Πρόβλεψη διακλαδώσεων! Οι διακλαδώσεις προκαλούν προβλήματα: μεγάλες ποινές: χάσιμο ευκαιριών για εκτέλεση εντολών περιορίζουν το ILP: μόνο μέσα σε ένα basic block! συνεχόμενες εντολές στο πρόγραμμα χωρίς άλμα, διακλάδωση! Στατική πρόβλεψη π.χ. predict not taken: συνέχιση της διοχέτευση μέχρι την εκτέλεση της διακλαδωσης! αν ακολουθηθεί, ακυρώνουμε τις επόμενες εντολές! κέρδος αν η διακλάδωση γενικά δεν ακολουθείται μικρή πιθανότητα επιτυχίας 4

Δυναμική πρόβλεψη διακλαδώσεων! Πρόβλεψη με βάση προηγούμενη συμπεριφορά! Πίνακας διακλαδώσεων και πρηγούμενης κατεύθυνσης branch history table (ΒΗΤ)! Μέγεθος πίνακα δεν μπορεί να έχει όλες τις εντολές ή, έστω, τις διακλαδώσεις χρησιμοποιούνται τα λιγότερο σημαντικά bit της διεύθυνσης! Σε κάθε προσκόμιση εντολής: ανάγνωση γραμμής πίνακα ακολούθηση προηγούμενης κατεύθυνσης! Οταν η διακλάδωση εκτελεστεί ενημερώνεται το bit του πίνακα 5

ΒΗΤ 2- bit! Εντολή διακλάδωσης στο τέλος ενός (εσωτερικού) βρόγχου πάντα ακολουθείται εκτός από την τελευταία επανάληψη! Το ΒΗΤ με 1 bit κάνει 2 λάθος προβλέψεις στην τελευταία επανάληψη και στην πρώτη επανάληψη της επόμενης φοράς! Λύση: 2- bit μεταβολή σύμφωνα με ένα «αυτόματο» 6

Πρόβλεψη διακλάδωσης! Τεράστιος χώρος επιστημονικής έρευνας! Αποφυγή διακλαδώσεων predicate execu^on: π.χ. ARM: ADDEQ R3, R3, #1 εκτέλεση υπό συνθήκη! Delay slots η εντολή μετά τη διακλάδωση εκτελείται έτσι κι αλλιώς! Δυναμική πρόβλεψη αλλαγή του BHT με πιο πολύπλοκα αλλά πιο ακριβή συστήματα 7

Διοχέτευση (pipelining)! Eπικάλυψη εκτέλεσης εντολών μερικώς παράλληλη επεξεργασία εντολών τεχνική ILP! Οικονομική σε υλικό επιπλέον καταχωρητές διοχέτευσης, λογική για προώθηση (forwarding) δεδομένων και αναβολή (stall)! Προβλήματα: κίνδυνοι δεδομένων, ελέγχου, δομικοί ισοκατανομή χρόνου σε στάδια CPU Time = Instruction Count CPI Clock Cycle Time 8

Πολλαπλή εκκίνηση εντολών! Αγγλικός όρος: mul^ple issue! Πραγματικός παραλληλισμός μεταξύ εντολών π.χ. εκτέλεση 2 εντολών κάθε κύκλο! Μείωση του CPI συχνά χρησιμοποιείται το αντίστροφο: Instruc^ons Per Cycle (IPC)! Σύγχρονοι επεξεργαστές εκκίνηση 3 6 εντολών ανά κύκλο CPU Time = Instruction Count CPI Clock Cycle Time 9

Στατική Δυναμική εκκίνηση! Διαχωρισμός δουλειάς μεταξύ μεταγλωτιστή (compiler) στατική εκκίνηση επεξεργαστή δυναμική εκκίνηση οι περισσότερες πραγματικές υλοποιήσεις είναι υβριδικές Δύο κύρια προβλήματα/θέματα: 1. Τοποθέτηση εντολών σε θέσεις εκκίνησης (issue slots) 2. Χειρισμός κινδύνων δεδομένων και ελέγχου 10

Εκτέλεση με εικασία! Αγγλικός όρος: specula^on! Πρόβλεψη σχετικά με τις ιδιότητες μιας εντολής... από compiler ή επεξεργαστή! ώστε επόμενες, πιθανά εξαρτημένες εντολές να μπορέσουν να εκτελεστούν νωρίτερα! Χρήση: πρόβλεψη «αποτελέσματος» εντολής διακλάδωσης πρόβλεψη αν μία προηγούμενη store δεν αφορά την ίδια διεύθυνση με μια επόμενη load! ώστε να αλλάξω τη σειρά 11

Μηχανισμός εικασίας! Πρόβλεψη και λήψη απόφασης! Ελεγχος αν η πρόβλεψη ήταν σωστή μέχρι τότε οι εντολές θεωρούνται ότι εκτελούνται υπο εικασία! Σε περίπτωση λάθους, ακύρωση των αποτελεσμάτων εντολών που εκτελέστηκαν νωρίτερα (αποκατάσταση) εδώ εντοπίζονται οι περισσότερες δυσκολίες! Αν η πρόβλεψη είναι συνήθως σωστή, κέρδος χρόνου! αλλά αν είναι συχνά λάθος, 12

Μηχανισμοί αποκατάστασης! Εικασία με λογισμικό επιπλέον εντολές προγράμματος ανιχνεύουν τη λάθος πρόβλεψη διορθώνουν το λάθος (fix- up rou^ne)! Εικασία με υλικό προσωρινή αποθήκευση αποτελεσμάτων όσο είναι υπό εικασία! Διακοπές/excep^ons από εντολές υπο εικασία π.χ. μία load με λάθος διεύθυνση πριν την εντολή που ελέγχει την διεύθυνση λογισμικό: ειδική υποστήριξη υλικό: καθυστέρηση όσο η αντίστοιχη εντολή είναι υπο εικασία 13

Στατική πολλαπλή εκκίνηση! Αγγλικός όρος: sta^c mul^ple issue! Ο compiler αναλαμβάνει το περισσότερο βάρος! Η ομάδα εντολών που εκκινούν ταυτόχρονα (issue packet) μπορεί να θεωρηθεί ώς μία σύνθετη εντολή Very Large Instruc^on Word (VLIW)! Περιορισμοί στο είδος των εντολών του issue packet 14

Sta^c 2- issue MIPS!!!! Μία εντολή αριθμητική ή διακλάδωση Μία εντολή προσπέλασης μνήμης (load/store) Προσκόμιση, αποκωδικοποίηση 2 εντολών ανα κύκλο nop, αν ο compiler δεν βρεί χρησιμη εντολή 15

Κίνδυνοι διοχέτευσης! Επιλογή 1: ο compiler τοποθετεί τις εντολές ώστε να μην υπάρχει ποτέ κίνδυνος (δεδομένων)! Επιλογή2: ο compiler δεν τοποθετεί εντολές με, μεταξύ τους, εξάρτηση στο ίδιο issue packet το υλικό ανιχνεύει κινδύνους δεδομένων και αναβάλει την εκτέλεση κάποιων issue packet! Οι κινδυνοι συνήθως καθυστερούν όλες τις εντολές του issue packet 16

Υλοποίηση! 2 επιπλέον θύρες ανάγνωσης (συνολικά 4)! 1 αθροιστής (υπολογισμός διεύθυνσης) αριθμ. εντολή και store! 1 επιπλέον θύρα εγγραφής (συνολικά 2)! Μεγαλύτεροι καταχωρητές! Μνήμη εντολών με 2x πλάτος (64 bit) 17

Επίδοση! Θεωρητικά 2x εντολές εκτελούνται ανά κύκλο τα nop δεν μετράνε!! Αλλά και απώλεια επίδοσης σε κάθε αναβολή (stall) λόγω κινδύνων! Παράδειγμα: χρονοπρογραμματισμός (schedule) του παρακάτω κώδικα 18

Επίδοση - παράδειγμα! 4 κύκλοι για 5 εντολές! CPI=0.8 αντί για θεωρητικό CPI=0.5! Τεχνική ξεδιπλώματος βρόγχου! Loop unrolling: αντιγραφή του κώδικα x φορές περισσότερες ευκαιρίες για ILP 19

Ξεδίπλωμα βρόγχου lw $t0, 0($s1) addu $t0, $t0,$s2 sw $t0, 0($s1) addi $s1, $s1, 4 bne $s1, $zero,loop lw $t0, 0($s1) addu $t0, $t0,$s2 sw $t0, 0($s1) addi $s1, $s1, 4 bne $s1, $zero,loop lw $t0, 0($s1) addu $t0, $t0,$s2 sw $t0, 0($s1) addi $s1, $s1, 4 bne $s1, $zero,loop lw $t0, 0($s1) addu $t0, $t0,$s2 sw $t0, 0($s1) addi $s1, $s1, 4 bne $s1, $zero,loop lw $t0, 0($s1) addu $t0, $t0,$s2 sw $t0, 0($s1) lw $t0, 4($s1) addu $t0, $t0,$s2 sw $t0, 4($s1) lw $t0, 8($s1) addu $t0, $t0,$s2 sw $t0, 8($s1) lw $t0, 12($s1) addu $t0, $t0,$s2 sw $t0, 12($s1) addi $s1, $s1, 16 bne $s1, $zero,loop Αφαίρεση bne Αφαίρεση addi και μετατροπή των offset στις lw, sw 20

Scheduled, unrolled code! Αλλαγή ονομάτων καταχωρητών (register renaming)! Εξαφανίζει εξαρτήσεις που δεν μεταφέρουν δεδομένα ονομάζονται an^- dependence ή name dependence επιβάλουν σειρά εκτέλεσης εντολών λόγω επαναχρησιμοποίησης ονόματος! CPI = 8/14=0.57 21

Dynamic mul^ple- issue! Γνωστοί και ως superscalar επεξεργαστές! Στην απλούστερη περίπτωση: εκκινηση με τη σειρά (in- order issue) δυνατότητα προσκόμισης, αποκωδικοποίησης x εντολών ταυτόχρονα εξέταση των επόμενων εντολών και, αν γίνεται, εκκίνηση μέχρι x από αυτές! εξετάζονται δομικοί κίνδυνοι, εξαρτήσεις δεδομένων και ελέγχου! Πλεονεκτήματα σε σχέση με τους στατικούς εγγύηση ότι τα προγράμματα θα τρέξουν σωστά παλιά προγράμματα δεν χρειάζονται μεταγλώτιση ξανά 22

Out- of- order issue! Ονομάζεται και dynamic pipeline scheduling! Ενα στάδιο του επεξεργαστή (schedule) καθορίζει ποιές εντολές θα εκκινηθούν για εκτέλεση όχι απαραίτητα με τη σειρά προγράμματος αρκεί να μην έχουν εξαρτήσεις 23

OOO επεξεργαστής! Προσκόμιση, αποκωδικοποίηση πολλών εντολών ταυτόχρονα! Πολλαπλές μονάδες επεξεργασίας (func^onal units)! Μονάδα- στάδιο commit! ξαναβάζει στη σειρά τις εντολές 24

Λειτουργία OOO! Reserva^on sta^ons: αποθηκεύουν τις εντολές μέχρι όλες οι «είσοδοί» τους να είναι έτοιμες! Ετοιμες εντολές εκτελούνται στην func^onal unit! Τα αποτελέσματα αποστέλονται σε όσα reserva^on sta^ons περιμένουν το συγκεκριμένο αποτέλεσμα! και στο commit unit που τα κρατάει μέχρι να είναι σίγουρο ότι η εντολή εκτελέστηκε σωστά μετά γράφονται στο αρχείο καταχωρητών ή τη μνήμη! To commit δίνει τιμές που δεν έχουν ακόμη γραφτεί στο αρχείο καταχωρητών κρατούνται στον reorder buffer 25

Μετονομασία καταχωρητών! Οι reserva^on sta^ons και ο reorder buffer παρέχουν μια μορφή μετονομασίας καταχωρητών αυτόματη, δεν αλλάζει ο κώδικας! Εντολή τοποθετείται σε reserva^on sta^on! ό,τι έτοιμες τιμές χρειάζεται αντιγράφονται και αποθηκεύονται είτε από το αρχείο καταχωρητών, είτε από τον reorder buffer! τιμές/τελεσταίοι που δεν ήταν έτοιμοι γνωρίζουν ποια func^onal unit θα υπολογίσει το αποτέλεσμα που περιμένουν και το παίρνουν απευθείας, όταν υπολογιστεί! Και στις δύο περιπτώσεις: αν αλλαχθεί ο αντίστοιχος καταχωρητής, η εντολή δεν επηρεάζεται 26

Ολοκλήρωση εκτέλεσης 1/2! Πρέπει να δίνεται η «εντύπωση» σειριακής εκτέλεσης! Προσκόμιση/αποκωδικοποίηση με τη σειρά προγράμματος η σειρά καθορίζει τις εξαρτήσεις δεδομένων! Στάδιο commit: ολοκλήρωση εκτέλεσης με τη σειρά προγράμματος ονομάζεται in- order commit! Reorder buffer: ουρά FIFO κάθε εντολή παίρνει θέση με τη σειρά προγράμματος οι θέσεις «γεμίζουν» με αποτελέσματα με οποιαδήποτε σειρά! και τα αποτελέσματα προωθούνται σε επόμενες εντολές εντολές που φτάνουν στο τέλος της ουράς έχουν ολοκληρωθεί! αντιγραφή αποτελέσματος στο αρχείο καταχωρητή ή τη μνήμη για store! διαγράφονται από τον reorder buffer 27

Ολοκλήρωση εκτέλεσης 2/2! Αν μια εντολή προκαλέσει excep^on π.χ. load με διεύθυνση που προκαλεί page fault! Μέχρι να φτάσει στο τέλος του reorder buffer, το excep^on σημειώνεται αλλά δεν ενεργοποιείται γιατί μέχρι τότε η εντολή μπορεί να ακυρωθεί! Στο τέλος του reorder buffer το excep^on προκαλεί διακοπή οι εντολές υπό εκτέλεση και τα αποτελέσματα του reorder buffer διαγράφονται η διεργασία θα ξεκινήσει πάλι από την εντολή του προκάλεσε excep^on οι καταχωρητές έχουν τις «σωστές» τιμές! Παρόμοια χειρίζονται οι διακλαδώσεις που προβλέφθηκαν λάθος 28

Σύνοψη λειτουργίας ΟΟΟ! Προσκόμιση, αποκωδικοποίηση με τη σειρά προγράμματος! Τοποθέτηση σε reserva^on sta^on ανάλογα με το είδος της εντολής και δέσμευση θέσης στον reorder buffer διαβάζοντας έτοιμους τελεσταίους από καταχωρητές ή reorder buffer σημείωση μονάδων που θα παράγουν τις υπόλοιπες τιμές! Παράλληλη εκτέλεση «έτοιμων» εντολών αποτελέσματα στη θέση της εντολής στον reorder buffer και προώθηση σε reserva^on sta^ons που το περιμένουν! «Αδειασμα» reorder buffer με τη σειρά αν τελευταία εντολή και έχει αποτέλεσμα, εγγραφή στο αρχείο καταχωρητών ή μνήμη για store 29

Πλεονεκτήματα dyn. schedulling! Αναβολές (stalls) δεν είναι προβλέψιμες ειδικά αυτές που σχετίζονται με αστοχίες κρυφής μνήμης εκτέλεση ΟΟΟ μπορεί να καλύψει χρόνο αναβολών με χρήσιμες εντολές! Δυναμική πρόβλεψη διακλάδωσης δεν είναι γνωστή η σειρά εντολών κατά την μεταγλώτιση δυναμική πρόβλεψη διακλάδωσης απαραίτητη σε ΟΟΟ επεξεργαστές γιατί παρέχει επιπλέον εντολές για ILP! Νέες υλοποιήσεις επεξεργαστών αλλάζουν τις καθυστερήσεις λόγω αναβολών, κ.α. τα ήδη παραδομένα προγράμματα οφελούνται από το νέο επεξεργαστή 30

Οριο ILP! Πολλές εφαρμογές δεν έχουν αρκετή παραλληλία επιπέδου εντολών πραγματικές εξαρτήσεις δεδομένων δεν είναι σίγουρο ότι υπάρχουν εξαρτήσεις: π.χ. προγράμματα που χρησιμοποιούν δείκτες! Αστοχίες κρυφής μνήμης παίρνουν πολύ χρόνο τελικά προκαλούν αναβολές (stalls) στη διοχέτευση! Προβλήματα κατανάλωσης ενέργειας απλούστεροι επεξεργαστές είναι πιο αργοί αλλά πιο αποδοτικοί ως προς την ενέργεια (εντολές ανά Joule) 31

Επόμενο μάθημα! Παράλληλοι υπολογιστές: εισαγωγή - επισκόπηση 32

Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σημειώματα

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. Έχουν προηγηθεί οι κάτωθι εκδόσεις: Έκδοση 1.0 διαθέσιμη εδώ. http://ecourse.uoi.gr/course/view.php?id=1307.

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Ιωαννίνων, Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου. «Αρχιτεκτονική Υπολογιστών. Σύγχρονοι υπολογιστές». Έκδοση: 1.0. Ιωάννινα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://ecourse.uoi.gr/course/view.php?id=1307.

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή, Διεθνής Έκδοση 4.0 [1] ή μεταγενέστερη. [1] https://creativecommons.org/licenses/by-sa/4.0/.