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

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

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

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

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

Κεφάλαιο 6 Βελτίωση Απόδοσης με Διασωλήνωση (Enhancing Performance with Pipelining)

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

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

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

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

Σχεδίαση μονάδας ελέγχου επεξεργαστή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Άσκηση IF ID EX MEM WB α. 300ps 400ps 350ps 500ps 100ps β. 200ps 150ps 120ps 190ps 140ps

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

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

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

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

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

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος

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

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

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

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

Pipelined Datapath, Hazards and Forwarding

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

Διάλεξη 14 Εισαγωγή στην Ιεραρχία Μνήμης

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Προχωρημένες Τεχνικές Pipelining. Ιάκωβος Μαυροειδής

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

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

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

Πανεπιστήµιο Θεσσαλίας

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

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

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

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

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

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

CS425 Computer Systems Architecture

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

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

Υλοποίηση Mικροεπεξεργαστή MIPS -16

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

AΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (5 ο εξάμηνο) ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ (ΦΘΙΝΟΠΩΡΟ 2007) ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ 30 ΛΕΠΤΑ

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

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

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

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

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

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

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

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

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

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

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

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Εξαιρέσεις και Διακοπές (Exceptions and Interrupts)

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Ενότητα 6 - Σύστημα Διασωλήνωσης. Π. Ευριπίδου (2007)

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

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

Απλός επεξεργαστής (Επανάληψη)

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

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

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

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

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

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

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

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

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

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

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

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

O επεξεπγαζηήρ: Η δίοδορ δεδομένων (datapath) θαη ε μονάδα ελέγσος (control)

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

3 η ΑΣΚΗΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΥΠΟΛΟΓΙΣΤΩΝ

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

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

Μικροαρχιτεκτονική του LC3

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

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

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

Transcript:

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 12 Καθυστερήσεις (Stalls) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ 1

Καθυστερήσεις και Εκκενώσεις Εντολών Οι κίνδυνοι δεδομένων (data hazards), όπως είδαμε, συμβαίνουν όταν εντολές εξαρτώνται από άλλες εντολές που βρίσκονται ακόμα προς εκτέλεση στο pipeline. Πολλοί τέτοιοι κίνδυνοι μπορούν να επιλυθούν μέσω της προώθησης δεδομένων από τους καταχωρητές διοχέτευσης στην ALU; Αντί να περιμένουμε τα δεδομένα αυτά να γραφούν πρώτα στους καταχωρητές. Το πλεονέκτημα είναι ότι η προώθηση επιτρέπει ο επεξεργαστής να τρέχει με πλήρη ταχύτητα. Σήμερα θα δούμε κάποια πραγματικά προβλήματα στην μικρο-αρχιτεκτονική διοχέτευσης που επηρεάζουν την ταχύτητα του επεξεργαστή. Η προώθηση από εντολές load δεν είναι πάντα αποδοτικές. Οι εντολές διακλάδωσης επηρεάζουν την εκτέλεση των επόμενων εντολών. Σε αυτές τις δύο περιπτώσεις θα πρέπει ίσως να καθυστερήσουμε την εκτέλεση του προγράμματος ή να εκκενώσουμε μέρος του pipeline από εκτελούμενες εντολές 2

Κίνδυνος Δεδομένων (Data Hazard) Κίνδυνος δεδομένων συμβαίνει εάν μια εντολή χρειάζεται δεδομένα που δεν είναι ακόμα έτοιμα στους καταχωρητές. Οι εντολές and και or χρειάζονται τον καταχωρητή $2 στον 3 ο και 4 ο κύκλο, αντίστοιχα. Όμως ο $2 γράφεται μόλις στον 5 ο κύκλο από την εντολή sub. Κύκλος μηχανής 1 2 3 4 5 6 7 sub $2, $1, $3 or $13, $6, $2 3

Προώθηση Δεδομένων Η τελική τιμή του καταχωρητή $2 ($1 - $3) έχει ήδη υπολογιστεί από τον κύκλο 3 (στάδιο EX), απλά δεν έχει γραφεί ακόμα στον $2. Η προώθηση δεδομένων επιτρέπει δεδομένα να τροφοδοτούνται μέσω των καταχωρητών διοχέτευσης κατευθείαν στην ALU χωρίς την ανάγκη να διαβαστεί ο καταχωρητής. Κύκλος μηχανής 1 2 3 4 5 6 7 sub $2, $1, $3 or $13, $6, $2 4

Εντολές load? Τι θα συνέβαινε εάν η πρώτη εντολή ήταν lw; Η εντολή lw παράγει δεδομένα στο τέλος του κύκλου 4 στο στάδιο MEM Αλλά η and χρειάζεται αυτά τα δεδομένα στην αρχή του ίδιου κύκλου! Αυτό είναι ένας πραγματικός κίνδυνος δεδομένων. Δεν μπορούμε να προωθήσουμε τα δεδομένα μέσω των καταχωρητών διοχέτευσης, όπως πριν. Κύκλος Μηχανής 1 2 3 4 5 6 lw $2, 20($3) 5

Καθυστέρηση (Stall) H λύση είναι να καθυστερήσουμε το pipeline για έναν κύκλο Μπορούμε να καθυστερήσουμε την εντολή and με το να τοποθετήσουμε μία φυσαλίδα (bubble) ενός κύκλου. Αυτό θα καθυστερήσει την and και όλες τις εντολές μετά από αυτήν κατά ένα κύκλο. Κύκλος μηχανής 1 2 3 4 5 6 7 lw $2, 20($3) Μετά από αυτό, χρησιμοποιούμε τον καταχωρητή διοχέτευσης MEM/WB για να στείλουμε τα δεδομένα που διαβάζει η lw από την μνήμη στην ALU. 6

Καθυστέρηση και Προώθηση Κύκλος μηχανής 1 2 3 4 5 6 7 8 lw $2, 20($3) Η προώθηση μειώνει τον χρόνο καθυστέρησης από 2 σε 1 κύκλο μηχανής 7

Η καθυστέρηση αφορά όλο το pipeline Η καθυστέρηση της εντολής and σημαίνει και την καθυστέρηση και της or. Καθώς και όλων των άλλων εντολών που ακολουθούν. Δεν μπορούμε να έχουμε δύο εντολές στο ίδιο στάδιο τoυ pipeline. Δεν μπορεί επίσης η or να ξεπεράσει την and και να τελειώσει πριν από αυτήν Κύκλος μηχανής 1 2 3 4 5 6 7 8 lw $2, 20($3) or $13, $12, $2 8

Υλοποίηση καθυστερήσεων Υλοποιούμε την καθυστέρηση (stall) με το να μπλοκάρουμε τις εντολές που είναι στα σταδία ID και ΙF. Clock cycle 1 2 3 4 5 6 7 8 lw $2, 20($3) or $13, $12, $2 Αυτό υλοποιείται με το να: αφήσουμε την τιμή του PC την ίδια, ώστε να μην διαβαστεί άλλη εντολή. να μην αλλάξουμε την τιμή του καταχωρητή IF/ID, ώστε να μην αλλάξει η εντολή στο στάδιο ID. 9

Στάδια EX, MEM, WB Μένει μόνο να δούμε πως θα υλοποιηθεί η φυσαλίδα. Δηλαδή το στάδιο EX στον κύκλο 4, το στάδιο ΜΕΜ στον κύκλο 5, και το στάδιο WB στον κύκλο 6. Κύκλος Μηχανής 1 2 3 4 5 6 7 8 lw $2, 20($3) or $13, $12, $2 H φυσαλίδα (bubble) υλοποιείται με το να θέσουμε σε αυτό το στάδιο την εντολή να είναι nop. Με άλλα λόγια να θέσουμε τα σήματα ελέγχου στο 0, για να αποκλείσουμε να γίνει κάποια εγγραφή σε καταχωρητή ή μνήμη κατά λάθος. 10

if/id if/id id/ex ex/mem mem\wb Ανίχνευση Καθυστερήσεων lw $2, 20($3) H ανίχνευση της καθυστέρησης γίνεται όταν η εντολή lw είναι στο EX στάδιο και η επόμενη εξαρτώμενη εντολή (and)είναι στο ID στάδιο. Καθυστέρηση υπάρχει όταν η εντολή στο EX στάδιο είναι LOAD ID/EX.MemRead = 1 και ο προορισμός του LOAD είναι ένας από τους καταχωρητές εισόδου της επόμενης εντολής (στο ID στάδιο). ID/EX.isterRt = IF/ID.isterRs or ID/EX.isterRt = IF/ID.isterRt Συνοπτικά: if (ID/EX.MemRead = 1 and (ID/EX.isterRt = IF/ID.isterRs or ID/EX.isterRt = IF/ID.isterRt)) then stall 12

PC Write IF/ID Write PC Addr Instr Instruction memory H μονάδα ελέγχου κινδύνων (Hazard Unit) IF/ID Hazard Unit Rs Instr [15-0] Rt Rd Rs Rt Read register 1 Read register 2 Write register Write data ID/EX.MemRead Control 0 είναι στο στάδιο ID 0 1 Read data 1 Read data 2 isters Extend ID/EX WB M EX ID/EX.isterRt 0 1 2 0 1 2 ALUSrc 0 1 ALU Zero Dst 0 1 Result EX/MEM WB M Address Data memory Write data Read data EX/MEM.isterRd MEM/WB WB 1 0 Forwarding Unit MEM/WB.isterRd 13

Μονάδα ελέγχου κινδύνων (Hazard Unit) To stall της προηγούμενης εξίσωσης είναι η δημιουργία τριών επιπλέον σημάτων. Δύο νέα σήματα ελέγχου PCWrite και IF/ID Write που ουσιαστικά είναι Write Enable σήματα του PC και του καταχωρητή IF/ID, αντίστοιχα. Ένα mux select σήμα σε έναν νέο καταχωρητή ο οποίος θέτει όλα τα σήματα ελέγχου του ID/EX στο 0, όταν γίνει ανίχνευση καθυστέρησης. Εδώ ουσιαστικά γίνεται η δημιουργία της εντολής nop. 14

Να μια καλή ερώτηση Έστω ότι η προσπέλαση της μνήμης είναι πολύ αργή και χρειάζεται 2 κύκλους μηχανής. Κύκλος μηχανής 1 2 3 4 5 6 Ποιες από τις παρακάτω εντολές χρειάζονται προώθηση ή/και καθυστέρηση; Πόσες εισόδους θα έχουν οι πολυπλέκτες στο στάδιο EX; lw r13, 0(r11) add r7, r8, r9 add r15, r7, r13 IF ID EX M1 M2 WB IF ID EX M1 M2 WB IF ID ID EX M1 M2 WB 15

Τι μπορεί να κάνει ο Compiler ή ο προγραμματιστής assembly Χώρισε τις εντολές LOAD από τις εντολές που εξαρτώνται από αυτές με αρκετές ανεξάρτητες εντολές ώστε να μην υπάρχει πρόβλημα καθυστέρησης Σημαντική βελτιστοποίηση του compiler είναι να προγραμματίσει όλες τις εντολές LOAD στην αρχή του κώδικα. stall stall lw $t1, 0($t0) lw $t2, 4($t0) add $t3, $t1, $t2 sw $t3, 12($t0) lw $t4, 8($t0) add $t5, $t1, $t4 sw $t5, 16($t0) 13 κύκλοι lw $t1, 0($t0) lw $t2, 4($t0) lw $t4, 8($t0) add $t3, $t1, $t2 sw $t3, 12($t0) add $t5, $t1, $t4 sw $t5, 16($t0) 11 κύκλοι 16