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

Σχετικά έγγραφα
Αρχιτεκτονική Υπολογιστών

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

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

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

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

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

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

30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 1. Πλυντήριο. 2. Στεγνωτήριο. 3. ίπλωµα. 4. αποθήκευση. προσέγγιση για 4.

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Διοχέτευση

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

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

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

Διοχέτευση (Pipeline)

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

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

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

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

Διάλεξη 11 Προώθηση (Forwarding)

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

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

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

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

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

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

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

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

Τέτοιες λειτουργίες γίνονται διαμέσου του

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Επανάληψη Σύστημα Διασωλήνωσης (Pipelining) Κεφάλαιο 4 - Σύστημα ιασωλήνωσης

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

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 4: O επεξεργαστής Σύστημα Διασωλήνωσης (Pipelining)

Θέµατα Φεβρουαρίου

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

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

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

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

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

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

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

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

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

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

Κεφάλαιο 4. Ο επεξεργαστής

Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή. 30 min κάθε «φάση»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

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

Εισαγωγή. Σύνοψη βασικών εννοιών, 5-stage pipeline, επεκτάσεις για λειτουργίες πολλαπλών κύκλων

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2.

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

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

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

Application Operating System. Datapath & Control/Memory. Digital Design Circuit Design. Layout

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

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

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

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

Κεφάλαιο 4: Pipelining 75

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

Προσομοιώσεις και οπτικοποιήσεις στη μαθησιακή διαδικασία

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

Ηλεκτρισμός & Μαγνητισμός

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

Αποκωδικοποίηση. Εισαγωγή στη διδακτική των γλωσσών. Γεώργιος Υψηλάντης, αναπληρωτής καθηγητής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

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

Εισαγωγή στους Αλγορίθμους

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

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

Transcript:

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Επίδοση επεξεργαστή, διοχέτευση Αρης Ευθυμίου

Το σημερινό μάθημα! Επίδοση επεξεργαστή (1.4 σύγγραμμα) latency, throughput χρόνος εκτέλεσης κύκλοι ανα εντολή CPI! Αξιολόγηση υλοποίησης επεξεργαστή 1ος κύκλου! Διοχέτευση! Κίνδυνοι διοχέτευσης δομικοί δεδομένων ελέγχου 2

Επίδοση (performance) υπολογιστή! Χρόνος απόκρισης ή λανθάνον χρόνος (response dme, latency) Ο χρόνος που χρειάζεται για να γίνει μια «δουλειά»! Ρυθμός εκτέλεσης (Throughput, Bandwidth) Δουλειές ανά μονάδα χρόνου! e.g., tasks/transacdons/ per hour! Αλλα μέτρα επίδοσης Κατανάλωση ενέργειας Αξιοπιστία 3

Η ferrari και το αστικό! Ferrari: 2 επιβάτες, 100km/h (στην πόλη)! Αστικό: 70 επιβάτες, 10km/h (με τις στάσεις)! Σπίτι/στάση- Πανεπιστήμιο 10km! Με ποιό μέσο ένας επιβάτης θα πάει πιο γρήγορα στο Πανεπιστήμιο?! Ποιό μέσο μεταφέρει περισσότερους επιβάτες ανα ώρα?! Επικεντρώνουμε στο χρόνο απόκρισης 4

Παράδειγμα throughput v latency Ποιό από τα παρακάτω βελτιώνει το ρυθμό εκτέλεσης και ποιό το χρόνο απόκρισης; 1. Αντικατάσταση (μονο)επεξεργαστή με έναν ταχύτερο 2. Προσθήκη επιπλέον (ίδιων) επεξεργαστών για ξεχωριστές δουλειές δεν έχουμε παράλληλα προγράμματα! Περ. 1 : βελτιώνει και τα δύο! Περ. 2: βελτιώνει μόνο το ρυθμό εκτέλεσης! Αλλά, αν το σύστημα έχει πολλές δουλειές να κάνει, το 2 μειώνει το χρόνο αναμονής μέχρι η δουλειά να ξεκινήσει, άρα και το χρόνο απόκρισης 5

Μέτρηση χρόνου εκτέλεσης! Πραγματικός χρόνος που πέρασε (Elapsed dme) Πλήρης χρόνος απόκρισης, περιλαμβάνει! επεξεργασία, είσοδο- έξοδο, χρόνο Λ.Σ., άλλες διεργασίες,... Καθορίζει την επίδοση του συστήματος από την σκοπιά του τελικού χρήστη Αλλάζει ανάλογα με τις συνθήκες! Χρόνος CPU Χρόνος επεξεργασίας μιας δουλειάς! Αγνοεί χρόνο εισόδου- εξόδου, άλλες διεργασίες Αποτελείται από το χρόνο CPU χρήστη και συστήματος (user, system CPU dme) Unix: πρόθεμα dme, πριν την εντολή εκτέλεσης 6

Παράγοντες επίδοσης! Αλγόριθμος Καθορίζει αριθμό πράξεων! Γλώσσα, μεταφραστής, αρχιτεκτονική Καθορίζουν αριθμό εντολών μηχανής ανά πράξη (γλώσσας)! Επεξεργαστής και σύστημα μνήμης Καθορίζουν ταχύτητα εκτέλεσης εντολών! Σύστημα εισόδου- εξόδου (και Λ.Σ.) Καθορίζει ταχύτητα I/O 7

CPU Time! Η επίδοση βελτιώνεται: μειώνοντας τον αριθμό κύκλων ρολογιού αυξάνοντας το ρυθμό (συχνότητα) ρολογιού! Δυστυχώς συχνά ο σχεδιαστής πρέπει να «ζυγίσει» το ρυθμό ρολογιού με τον αριθμό κύκλων λίγοι κύκλοι = πολύπλοκες πράξεις = πολλή δουλειά σε κάθε κύκλο = αργός ρυθμός ρολογιού 8

Αριθμός εντολών, CPI Clock Cycles = Instruction Count Cycles per Instruction CPU Time = Instruction Count CPI Clock Cycle Time Instruction Count CPI = Clock Rate! Αριθμός (δυναμικών) εντολών προγράμματος Καθορίζονται από το πρόγραμμα, ISA, μεταφραστή! Μέσος όρος κύκλων ανά εντολή (CPI) Καθορίζεται από το υλικό Αν το CPI είναι διαφορετικό για κάθε εντολή! Το μέσο CPI επηρεάζεται από το «μίγμα εντολών» του προγράμματος 9

Επίδοση επεξεργαστή 1 κύκλου! Καλό CPI = 1! Πολύ αργός ρυθμός ρολογιού μεγάλη περίοδος ρολογιού! Πώς μπορεί να βελτιωθεί: καλύτερη σχεδίαση κυκλωμάτων καλύτερη «τεχνολογία»! Το πρόβλημα: πολύ δουλειά σε ένα κύκλο 10

Σχεδίαση 1 κύκλου 1/2! Κανένας επεξεργαστής δεν ακολουθεί πλέον την υλοποίηση με ένα κύκλο ρολογιού! Ο κύκλος θα πρέπει να είναι αρκετα μεγάλος ώστε να εξυπηρετείται η χειρότερη περίπτωση Σε ό,τι είδαμε η load σχετικά μικρή διαφορά από τις υπόλοιπες εντολές, αλλά όχι αμελητέα Instr Instr fetch ister read op Memory access ister write Total time lw 200ps 100 ps 200ps 200ps 100 ps 800ps sw 200ps 100 ps 200ps 200ps R-format 200ps 100 ps 200ps beq 200ps 100 ps 200ps 700ps 100 ps 600ps 500ps 11

Σχεδίαση 1 κύκλου 2/2! Πράξεις κινητής υποδιαστολής οι πιο αργές εντολές (διαιρέσεις, τετραγωνικές ρίζες) χρειάζονται πολύ περισσότερο χρόνο από τις απλές εντολές που εξετάσαμε! Παρόμοια για επεξεργαστές με πιο πολύπλοκο σετ εντολών! Δεν μπορει κανείς να εκμεταλευτεί ότι οι χρονοβόρες πράξεις είναι σπάνιες ώστε να μειώσει το χρόνο εκτέλεσης των συχνών αλλά απλών εντολών. 12

Σχεδίαση πολλαπλών κύκλων! Κάθε στάδιο αντιστοιχεί σε ένα κύκλο fetch, decode reg- read,, mem, reg- write beq 3 κύκλοι Εντολές R, sw 4 κύκλοι lw 5 κύκλοι! Μπορούμε να ξαναχρησιμοποιούμε μονάδες όπως η σε πολλά στάδια: π.χ. για υπολογισμό PC+4, στόχου διακλάδωσης (στο στάδιο decode, reg- read) και για την «κανονική» πράξη (στάδιο )! Δεν θα επεκταθούμε περισσότερο γιατί υπάρχει δυνατότητα και CPI=1 και κάθε στάδιο = 1 κύκλος τεχνική διοχέτευσης, ομοχειρίας (pipelining) 13

Το παράδειγμα πλυντηρίου (!)! Πολλά ρούχα για πλύσιμο A B C D και στέγνωμα, δίπλωμα, τοποθέτηση! Πλυντήριο: 30 λεπτά! Στεγωτήριο: 30 λεπτά! Δίπλωμα: 30 λεπτά! Τοποθέτηση σε ντουλαπια: 30 λεπτά 14

Σειριακό πλύσιμο 6 PM 7 8 9 10 11 12 1 2 AM 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 T Time a A s k B C O r D d e r 8 ωρες για 4 «δουλειές» 15

Διοχετευμένο πλύσιμο 6 PM 7 8 9 10 30 30 30 30 30 30 30 T a A s k B C O D r d 3.5 ώρες για 4 e «δουλειές» r 11 12 1 2 AM Time 16

Συμπεράσματα 1/2 6 PM 7 8 9 10 12 1 2 AM Time 30 30 30 30 30 30 30 T a A s k B C O D r d 3.5 ώρες για 4 e «δουλειές» r 11 Ο χρόνος (latency) μιας δουλειάς δεν βελτιώνεται π.χ. η Α χρειάζεται 2 ώρες Ο ρυθμός διεκπαιρέωσης (throughput) δουλειών του «έργου» βελτιώνεται Πολλά στάδια εκτελούνται ταυτόχρονα Οι δουλειές επικαλύπτονται 17

Συμπεράσματα 2/2! Κάθε στάδιο πρέπει να έχει τους δικούς του πόρους! Θεωρητική επιτάχυνση = αριθμός διοχετευμένων σταδίων πόσες φορές ταχύτερα εκτελείται το συνολικό έργο! Πραγματική επιτάχυνση μικρότερη: χρόνος γεμίσματος (fill) / αδειάσματος (drain) διοχέτευσης 2.3x αντί για 4x όσες περισσότερες δουλειές έχει το έργο, τόσο καλύτερα! Αν κάποια στάδια είναι ταχύτερα, ο συνολικός χρόνος δεν επηρεάζεται ο βραδύτερος επιβάλει το ρυθμό του! πρέπει τα στάδια να είναι ισορροπημένα (balanced) 18

Στάδια διοχέτευσης, MIPS! Κάθε στάδιο εκτέλεσης του MIPS αποτελεί στάδιο διοχέτευσης IF Instrucdon Fetch ID Instrucdon decode, register read EXE Execute (address calculadon) MEM Memory access WB (register) write back! Οι εντολές του MIPS είναι σχεδιασμένες για διοχετευμένη εκτέλεση! Γενικά, τα στάδια δεν μοιράζονται μονάδες/κυκλώματα παρόμοια με εκτέλεση ενός κύκλου 19

Αναπαρ. διοχετευμένης εκτέλεσης Χρόνος IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX Σειρά εντολών MEM WB! Ολα τα είδη εντολών περνούν από όλα τα στάδια ανενεργά αν δεν χρειάζονται: π.χ. στάδιο MEM για εντολές τύπου R! Ολα τα στάδια είναι ενεργά ταυτόχρονα 20

Γραφική αναπαράσταση File: εγγραφή στο πρώτο μισό, ανάγνωση στο 2ο Time (clock cycles) I n s Load t r Add O r Sub d e Or r Store 21 21

Κίνδυνοι διοχέτευσης! Αγγλικός όρος: pipeline hazards! Σε κάποιες περιπτώσεις η επόμενη εντολή δεν μπορεί να εκτελεστεί στον επόμενο κύκλο! Τρία είδη κινδύνων:! Δομικοί (structural) κάποιος (μοιραζόμενος) πόρος δεν είναι διαθέσιμος! Δεδομένων (data hazard) κάποια δεδομένα δεν είναι έτοιμα! Ελέγχου (control hazard) η ροή εκτέλεσης αλλάζει (διακλαδώσεις, άλματα) 22

Δομικοί κίνδυνοι! Δύο στάδια χρειάζονται ταυτόχρονα τον ίδιο πόρο! Για παράδειγμα MIPS με 1 μνήμη και για εντολές και για δεδομένα μία lw/sw χρειάζεται τη μνήμη στο 4ο στάδιο ταυτόχρονα προσκομίζουμε μία εντολή (1ο στάδιο)! Δομικοί κίνδυνοι μπορούν πάντα να εξαλειφθούν «πληρώνοντας» περισσότερο υλικό Το κόστος όμως μπορεί να είναι τεράστιο σε σχέση με το όφελος 23

Παράδειγμα: 1 μνήμη Time (clock cycles) M M M M M M M M O Instr 2 r d Instr 3 e r Instr 4 M Ταυτόχρονη προσπέλαση μνήμης I n s Load t r Instr 1 M 24

Αρχείο καταχωρητών, Δομ.Κινδ? Time (clock cycles) O Instr 2 r d Instr 3 e r Instr 4 I n s Load t r Instr 1 Μπορούμε να διαβάσουμε και να γράψουμε; 25

Αρχείο καταχωρητών, Δομ.Κινδ?! Η μνήμη είναι σημαντικά μεγαλύτερη από το αρχείο καταχωρητών δεν υλοποιείται με τον ίδιο τρόπο! Το αρχείο καταχωρητών έχει μικρότερη καθυστέρηση 100ps στον πίνακα = ½ του χρόνου προσπέλασης μνήμης! Χωριστές θύρες εγγραφής (1), ανάγνωσης (2)! Εγγραφή στο 1ο μισό του κύκλου! Ανάγνωση στο 2ο μισό του κύκλου ταυτόχρονη εγγραφή ανάγνωση, επιστρέφει τα νέα δεδομένα κίνδυνος δεδομένων. περισσότερα σε λίγο! 26

Κίνδυνοι δεδομένων! Οι εντολές «περνούν» τιμές από τη μία σε άλλη! Αν ο παραγωγός και ο καταναλωτής είναι συνεχόμενες εντολές (ή πολύ κοντά),... δεν προλαβαίνει ο παραγωγός να γράψει την τιμή στο αρχείο καταχωρητών (στάδιο 5) πριν ο καταναλωτής το διαβάσει (στάδιο 2)! Παράδειγμα: add $t0, $t1, $t2 sub $t4, $t0, $t3 and $t5, $t0, $t6 or $t7, $t0, $t8 xor $t9, $t0, $t10 27

Κίνδυνος δεδομένων Time (clock cycles) IF or $t7,$t0,$t8 and $t5,$t0,$t6 WB sub $t4,$t0,$t3 EX MEM add $t0,$t1,$t2 ID xor $t9,$t0,$t10! Χρειάζονται μεταφορές τιμών ανάποδα στο χρόνο! 28

Αντιμετώπιση κινδ. δεδομένων Προώθηση (forwarding/bypassing) αποτελεσμάτων από την μονάδα παραγωγής στην μονάδα κατανάλωσης and $t5,$t0,$t6 or $t7,$t0,$t8 sub $t4,$t0,$t3 WB add $t0,$t1,$t2 EX MEM ID/RF IF xor $t9,$t0,$t10 29

Κίνδυνος φόρτωσης - χρήσης! Δεν είναι πάντα δυνατή η προώθηση αποτελεσμάτων! Συνηθισμένο πρόβλημα εντολή lw που ακολουθείται από εντολή που διαβάζει τον καταχωρητή που φορτώνεται load- use sub $t3,$t0,$t2 EX MEM WB ID/RF lw $t0,0($t1) IF! Πρέπει να καθυστερήσει/αναβληθεί (stall) η εντολή καταναλωτής και μετά να προωθηθεί το αποτέλεσμα 30

Αναβολή εκτέλεσης! Υλοποιημένη σε υλικό ονομάζεται: hardware interlock sub $t3,$t0,$t2 bub ble bub ble bub ble or $t7,$t0,$t6 and $t5,$t0,$t4 ID/RF lw $t0, 0($t1) EX MEM WB IF Στην πράξη γίνεται «οριζόντια» Δημιουργούνται κενά, ονομάζονται bubbles 31

Αναβολή η αναβαλλόμενη εντολή ακυρώνεται (γίνεται no- op) sub $t3,$t0,$t2 sub $t3,$t0,$t2 and $t5,$t0,$t4 bub ble bub ble bub ble or $t7,$t0,$t6 and $t5,$t0,$t4 lw $t0, 0($t1) 32

Αναβολή, διαφορετική όψη Χρόνος (κύκλοι) 1 επανάληψη, «πάγωμα» 2 3 4 5 6 7 8 9 Στάδια IF lw sub and and or ID EX MEM WB lw sub sub and or lw sub and or lw sub and or sub and or lw 33

Θέση καθυστέρησης φόρτωσης! Μετά από μια εντολή φόρτωσης υπάρχει μία ειδική θέση για εντολή: load delay slot! Εντολές που χρειάζονται την τιμή φόρτωσης, πρέπει να αποφεύγονται στη θέση αυτή γιατί θα καθυστερήσουν για ένα κύκλο! Η θέση μπορεί να εκμεταλευθεί αποδοτικά αν ο μεταφραστής τοποθετήσει μια χρήσιμη, ανεξάρτητη εντολή code scheduling 34

Code scheduling! Αλλαγή σειράς εντολών ώστε να εκτελούνται γρηγορότερα αποφεύγονται stalls Stall! Stall! # Method lw $t1, lw $t2, add $t3, sw $t3, lw $t4, add $t5, sw $t5, 1: 0($t0) 4($t0) $t1, $t2 12($t0) 8($t0) $t1, $t4 16($t0) 13 cycles # Method lw $t1, lw $t2, lw $t4, add $t3, sw $t3, add $t5, sw $t5, 2: 0($t0) 4($t0) 8($t0) $t1, $t2 12($t0) $t1, $t4 16($t0) 11 cycles 35

Κίνδυνοι ελέγχου! Προκαλούνται από διακλαδώσεις και άλματα! Δεν γνωρίζουμε καν ότι η εντολή είναι διακλάδωση ή άλμα πριν το 2ο στάδιο (αποκωδικοποίηση) άρα ήδη προσκομίζεται η επόμενη εντολή! Για διακλάδωση υπό συνθήκη, η συνθήκη υπολογίζεται/ ελέγχεται στο 3ο στάδιο αν ακολουθηθεί η διακλάδωση, μέχρι 2 επόμενες εντολές «χάνονται»! Γιατί είναι πρόβλημα άδειασμα/γέμισμα της διοχέτευσης χαμένη επίδοση 36

j: Διάγραμμα διοχέτευσης Time (clock cycles) I2 I3 bub ble bub ble bub ble bub ble Ακύρωση εντολής Target: I1 A+4: Ix A: j 37

Διακλαδώσεις! Η συνθήκη υπολογίζεται στο 3ο στάδιο! Για να μην εκτελεστούν λάθος εντολές, στους 2 επόμενους κύκλους δεν εκτελούνται εντολές A+4: Ix I2 bub ble bub ble bub ble bub ble bub ble bub ble Ακύρωση εντολής bub ble bub ble Α+4 ή Target: I1? A: j 38

Πρόβλεψη διακλάδωσης! Μπορούμε να κερδίσουμε μερικούς κύκλους προβλέποντας την κατεύθυνση της διακλάδωσης συνεχίζουμε την προσκόμιση, αποκωδικοποίηση εντολών όταν η συνθήκη υπολογιστεί (3ο στάδιο): αν η συνθήκη αληθεύει, ακυρώνουμε τις εντολές και προσκομίζουμε από τη διεύθυνση στόχο! 2 χαμένοι κύκλοι αν η συνθήκη δεν αληθεύει, κανένας χαμένος κύκλος! συνεχίζει η εκτέλεση των εντολών! Πρόβλεψη μή ακολούθησης (predict not taken) 39

Παράδειγμα! Οι διακλαδώσεις είναι 20% εντολών ενός προγράμματος! Δύο υλοποιήσεις κάθε διακλάδωση περιμένει 2 κύκλους ώστε να γνωρίζει από ποια διεύθυνση θα συνεχιστεί η εκτέλεση πρόβλεψη not taken και ποσοστό not taken = 40% των διακλαδώσεων! Υπολογισμός CPI 1 + 0.20*2 = 1.4 1 + 0.2 * (1-0.4) * 2 = 1.24 40

Lab06 MIPS σε quartus! Ο απλός MIPS που εξετάσαμε έχει υλοποιηθεί στο Quartus! Στο Lab06, θα τρέξετε προγράμματα με προσομοίωση παρόμοιο με το MIPS Χ- ray, αλλά με waveforms! Θα προσθέσετε μερικές εντολές και βέβαια, θα επιβεβαιώσετε ότι δουλεύουν σωστά!! Μπορούμε να τον βάλουμε να δουλέψει πραγματικά στις πλακέτες του εργαστηρίου (DE2); Δυστυχώς όχι. Οι μνήμες που χρησιμοποιούμε δεν μπορούν να υλοποιηθούν! 41

Επόμενο μάθημα Σχεδίαση διοχετευμένου επεξεργαστή 42

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

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

Σημειώματα

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 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/.