Νεκτάριος Κοζύρης Άρης Σωτηρόπουλος Νίκος Αναστόπουλος

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
Advertisements

ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Παραλληλισμός Εντολών (Pipelining) Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο.
Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή
Το υλικο του Υπολογιστη
Σχεδίαση μονάδας ελέγχου επεξεργαστή Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκτάριος Κοζύρης
Υποθετική Εκτέλεση Εντολών (Hardware-Based Speculation)‏
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) Σχεδίαση datapath 4 κατηγορίες εντολών: Αριθμητικές-λογικές.
Ανίχνευση κίνδυνου Επίλυση με προώθηση. Μπλέ: Εξαρτήσεις. Εξαρτήσεις προς προηγούμενα CC είναι κίνδυνοι δεδομένων Kόκκινο: Προώθηση IF/ID ID/EX EX/MEM.
Λύση: Multicycle υλοποίηση Single-cyle υλοποίηση: Διάρκεια κύκλου ίση με τη μεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαμηλή.
Νεκτάριος Κοζύρης Άρης Σωτηρόπουλος Νίκος Αναστόπουλος
© Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή 1.Πλυντήριο 2.Στεγνωτήριο 3.Δίπλωμα 4.αποθήκευση 30 min κάθε «φάση» Σειριακή προσέγγιση.
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Πώς βρίσκουμε το πλήθοςτων επαναλήψεων μιας Δομής Επανάληψης με βήμα διάφορο του 1
Ενότητα Η Δομή Επανάληψης
1 Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή 1.Πλυντήριο 2.Στεγνωτήριο 3.Δίπλωμα 4.αποθήκευση 30 min κάθε «φάση» Σειριακή προσέγγιση για 4 φορτία.
ΒΡΟΧΟΙ ΜΑΘΗΜΑ 5. ΒΡΟΧΟΙΒΡΟΧΟΙ Ο Βρόχος (loop) αποτελείται από προτάσεις επανάληψης. Οι προτάσεις επανάληψης είναι οι προτάσεις που επαναλαμβάνουν ένα.
ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΚΕΦΑΛΑΙΟ 1ο ΚΕΦ. 1-ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΑΕΠΠ.
© Θέματα Φεβρουαρίου © Θέμα 1ο (30%): Έστω η παρακάτω ακολουθία εντολών που χρησιμοποιείται για την αντιγραφή.
© Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών ακ. έτος Νεκτάριος Κοζύρης Νίκος Αναστόπουλος
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Αρχιτεκτονική Μνήμης Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου.
Πότε η Ηλεκτρική ενέργεια είναι ίση με την μαγνητική ; Θέλουμε : Ε ηλ = Ε μαγ Όμως : Ε ηλ + Ε μαγ = Ε ολ Άρα : Δηλαδή : Την ίδια στιγμή μπορούμε να δείξουμε.
Υπερβαθμωτή Οργάνωση Υπολογιστών. Περιορισμοί των βαθμωτών αρχιτεκτονικών Μέγιστο throughput: 1 εντολή/κύκλο ρολογιού (IPC≤1) Υποχρεωτική ροή όλων των.
Τα χαρακτηριστικά των επεξεργαστών By ΔΙΟΝΥΣΗ ΣΚΕΓΙΑ ΕΠΑ-Λ ΚΡΕΣΤΕΝΩΝ!
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Άσκηση Διεύθυνσης Μνήμης με cache Νεκτάριος Κοζύρης Άρης Σωτηρόπουλος Νίκος Αναστόπουλος.
Εισαγωγή Σύνοψη βασικών εννοιών, 5-stage pipeline, επεκτάσεις για λειτουργίες πολλαπλών κύκλων.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
© Processor-Memory (DRAM) Διαφορά επίδοσης Performance
1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Οι κίνδυνοι της.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Εντολές Επιλογής και Αποφάσεων
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
1 Αρχιτεκτονική υπολογιστών Ενότητα 12 : Δομή και Λειτουργία της CPU 2/2 Φώτης Βαρζιώτης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Δρ. Πολύκαρπος Ευριπίδου Η πρωτη βοηθεια είναι το συνολο των ενεργειων που θα παρασχεθουν σε ένα τραυματια η έναν ασθενη πριν την επεμβαση του.
Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών 10 ο Μάθημα.
Γιώργος Μαγουλάκης Εξάμηνο: Εαρινό 2015 ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Τμ. Μηχανικών Πληροφορικής.
Αρχιτεκτονική Υπολογιστών Ενότητα # 2: Datapath & Control Διδάσκων: Γεώργιος Κ. Πολύζος Τμήμα: Πληροφορικής.
Αρχιτεκτονική Υπολογιστών DATAPATH & CONTROL. Αρχιτεκτονική Υπολογιστών DATAPATH & CONTROL Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: –Προσκόμιση.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Morgan Kaufmann Publishers Ο επεξεργαστής
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Τεχνολογικό Εκπαιδευτικό
Αρχιτεκτονική Η/Υ ΙΙ Ενότητα #6: Σύγχρονοι Επεξεργαστές
Υποθετική Εκτέλεση Εντολών (Hardware-Based Speculation)‏
Single-cyle υλοποίηση:
MIPS: Σύνολο εντολών, γλώσσα μηχανής & μεθοδολογία σχεδίασης
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών
Παράγοντες που επηρεάζουν την επίδοση της CPU
Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Θέματα Φεβρουαρίου
Δομημένος Προγραμματισμός - Κεφάλαιο 4 - Ανάπτυξη αλγορίθμων
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Single-cyle υλοποίηση:
Ασκήσεις Caches
Άσκηση Pipeline 1 Δεδομένα Έχουμε ένα loop... Rep: lw $2,100($3)
Ο ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΗΣ MIPS R10000
Από τη Δομή Επανάληψης Για στην Όσο
1Εντολή Δείξε
Άσκηση Pipeline 1 Δεδομένα Έχουμε ένα loop... Rep: lw $2,100($3)
Single-cyle υλοποίηση:
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Από τη Δομή Ακολουθίας στις Δομές Επανάληψης
Single-cyle υλοποίηση:
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Άσκηση Pipeline 1 Δεδομένα Έχουμε ένα loop... Rep: lw $2,100($3)
Μεταγράφημα παρουσίασης:

Νεκτάριος Κοζύρης Άρης Σωτηρόπουλος Νίκος Αναστόπουλος Άσκηση Pipeline Νεκτάριος Κοζύρης Άρης Σωτηρόπουλος Νίκος Αναστόπουλος

Άσκηση Pipeline

Άσκηση Pipeline Δεδομένα

Άσκηση Pipeline Δεδομένα Έχουμε ένα loop... Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit:

Άσκηση Pipeline Δεδομένα και αυτή την αρχική κατάσταση στους καταχωρητές Έχουμε ένα loop... Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit: $1: 500 $7: 5 Δεν υπάρχει cache miss Cache hit σε 1cc branches γίνονται resolve στο MEM stage

Ζητούμενο Για το 1ο LOOP (μέχρι και το lw του 2ου LOOP) Να δείξετε τα διάφορα στάδια του pipeline (Διάγραμμα χρονισμού) που περνάνε οι εντολές. Υποδείξτε και εξηγείστε τα πιθανά hazards που μπορούν να προκύψουν κατά την εκτέλεση, καθώς και τον τρόπο που αντιμετωπίζονται. Κύκλος 1 2 3 4 5 6 7 Εντολή 1 IF ID EX MEM WB Εντολή 2 IF ID EX MEM WB Εντολή 3 ... ... ... ... ... ...

Ζητούμενο (2) Πόσοι κύκλοι απαιτούνται συνολικά για να ολοκληρωθεί ο βρόχος (για όλες τις επαναλήψεις του, όχι μόνο για την 1η); Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit: 1 2 3 4 5 6 7 IF ID EX MEM WB ... Κύκλος Εντολή 1 Εντολή 2 Εντολή 3

Απάντηση Ο βρόχος θα εκτελεστεί για 500 / 5 = 100 επαναλήψεις. Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit: $1: 500 $7: 5 Δεν υπάρχει cache miss cache hit σε 1cc $1 = 500, 495, 490, 485, ... Ο βρόχος θα εκτελεστεί για 500 / 5 = 100 επαναλήψεις.

Το διάγραμμα χρονισμού του pipeline για τη χρονική διάρκεια που ζητείται είναι το ακόλουθο: Κύκλος 1 2 3 4 5 6 7 8 9 10 11 12 13 lw $2,100($3) IF ID EX MEM WB sub $2,$2,$5 IF ID EX MEM WB sw $2,100($3) IF ID EX MEM WB sub $3,$3,$6 IF ID EX MEM WB sub $1,$1,$7 IF ID EX MEM WB bne $1,$0, Rep IF ID lw $2,100($3) Κύκλος 14 15 16 17 18 19 20 lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep EX MEM WB lw $2,100($3) IF ID EX MEM WB

Ή πιο συμπιεσμένο για να χωράει σε μια σελίδα  CC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lw IF ID EX M WB sub IF ID EX M WB sw IF ID EX M WB sub IF ID EX M WB sub IF ID EX M WB bne IF ID EX M WB lw IF ID EX M WB

Ας δούμε λίγο τα hazards που παρουσιάζονται

CC Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lw IF ID EX M WB sub IF ID EX M WB sw IF ID EX M WB sub IF ID EX M WB sub IF ID EX M WB bne IF ID EX M WB lw IF ID EX M WB Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit:

Ο καταχωρητής $2 για την εντολή sub $2,$2,$5 CC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lw IF ID EX M WB sub IF ID EX M WB sw IF ID EX M WB sub IF ID EX M WB sub IF ID EX M WB bne IF ID EX M WB lw IF ID EX M WB Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit: Stalls στους κύκλους 4,5: Ο καταχωρητής $2 για την εντολή sub $2,$2,$5 (η ανάγνωση του οποίου γίνεται στο στάδιο ID) γίνεται διαθέσιμος στο τέλος του κύκλου 5 (στάδιο WB) από την εντολή lw.

CC Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lw IF ID EX M WB sub IF ID EX M WB sw IF ID EX M WB sub IF ID EX M WB sub IF ID EX M WB bne IF ID EX M WB lw IF ID EX M WB Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit:

O $2 για την εντολή sw $2,100($3) CC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lw IF ID EX M WB sub IF ID EX M WB sw IF ID EX M WB sub IF ID EX M WB sub IF ID EX M WB bne IF ID EX M WB lw IF ID EX M WB Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit: Stalls στους κύκλους 7,8: O $2 για την εντολή sw $2,100($3) γίνεται διαθέσιμος στο τέλος του κύκλου 8.

CC Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lw IF ID EX M WB sub IF ID EX M WB sw IF ID EX M WB sub IF ID EX M WB sub IF ID EX M WB bne IF ID EX M WB lw IF ID EX M WB Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit:

Ο $1 για την εντολή bne $1,$0,Rep CC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lw IF ID EX M WB sub IF ID EX M WB sw IF ID EX M WB sub IF ID EX M WB sub IF ID EX M WB bne IF ID EX M WB lw IF ID EX M WB Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit: Stalls στους κύκλους 12,13: Ο $1 για την εντολή bne $1,$0,Rep γίνεται διαθέσιμος στο τέλος του κύκλου 13.

Το δεύτερο στιγμιότυπο της εντολής lw $2,100($3) CC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lw IF ID EX M WB sub IF ID EX M WB sw IF ID EX M WB sub IF ID EX M WB sub IF ID EX M WB bne IF ID EX M WB lw IF ID EX M WB Το δεύτερο στιγμιότυπο της εντολής lw $2,100($3) αρχίζει να εκτελείται από τον κύκλο 16, διότι η απόφαση για την διακλάδωση ελήφθη στον κύκλο 15.

Για τα πρώτα 99 loops έχουμε 99 × 15cc= 1485cc. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lw IF ID EX M WB sub IF ID EX M WB sw IF ID EX M WB sub IF ID EX M WB sub IF ID EX M WB bne IF ID EX M WB lw IF ID EX M WB 15 κύκλοι ρολογιού Για τα πρώτα 99 loops έχουμε 99 × 15cc= 1485cc. Για την 100η επανάληψη έχουμε 16cc. Συνολικά απαιτούνται 1485cc + 16cc = 1501cc για την εκτέλεση του βρόχου.

Pipeline 2 Για την ίδια ακολουθία εντολών,

Pipeline 2 Για την ίδια ακολουθία εντολών, Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit:

Pipeline 2 Για την ίδια ακολουθία εντολών, δείξτε και εξηγείστε Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit:

Pipeline 2 Για την ίδια ακολουθία εντολών, δείξτε και εξηγείστε υπάρχει σχήμα προώθησης. Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit:

Pipeline 2 Για την ίδια ακολουθία εντολών, δείξτε και εξηγείστε υπάρχει σχήμα προώθησης. Θεωρείστε ότι οι αποφάσεις για τις διακλαδώσεις λαμβάνονται στο στάδιο ΜΕΜ. Ερώτημα: Πόσοι κύκλοι απαιτούνται συνολικά για να ολοκληρωθεί ο βρόχος; Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0, Rep Exit:

Σύγκριση με και χωρίς προώθηση CC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lw IF ID EX M WB sub IF ID EX M WB sw IF ID EX M WB sub IF ID EX M WB sub IF ID EX M WB bne IF ID EX M WB lw IF ID EX M WB 1 IF CC lw sub sw bne 2 ID 3 EX 4 M 5 6 7 8 9 10 11 12 13 14 15 16 17 18 WB 19 20

Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0,Rep Exit: 1 IF CC lw sub sw bne 2 ID 3 EX 4 M 5 6 7 8 9 10 11 12 13 14 15 16 17 18 WB 19 20 1 IF 2 ID 3 EX 4 MEM 5 6 7 8 9 10 11 12 13 WB 14 CC lw sub sw bne 15

Στον κύκλο 4 υπάρχει stall. Γιατί; Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0,Rep Exit: Στον κύκλο 4 υπάρχει stall. Γιατί; CC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 lw IF ID EX MEM WB sub IF ID EX MEM WB sw IF ID EX MEM WB sub IF ID EX MEM WB sub IF ID EX MEM WB bne IF ID EX MEM WB lw IF ID EX MEM WB

Η τιμή της θέσης μνήμης 100($3), που θα αποθηκευτεί στον $2, δεν μπορεί να είναι διαθέσιμη πριν το στάδιο MEM. Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0,Rep Exit: CC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 lw IF ID EX MEM WB sub IF ID EX MEM WB sw IF ID EX MEM WB sub IF ID EX MEM WB sub IF ID EX MEM WB bne IF ID EX MEM WB lw IF ID EX MEM WB

Η τιμή της θέσης μνήμης 100($3), που θα αποθηκευτεί στον $2, δεν μπορεί να είναι διαθέσιμη πριν το στάδιο MEM. Όταν όμως θα γίνει διαθέσιμη στο τέλος του κύκλου αυτού θα προωθηθεί στις εισόδους της ALU, ώστε να εκτελεστεί η εντολή sub $2,$2,$5 χωρίς να περιμένουμε να γραφτεί η τιμή στον $2. Αποφεύγεται το stall που είχαμε στην προηγούμενη περίπτωση στην κύκλο 5  Rep: lw $2,100($3) sub $2,$2,$5 sw $2,100($3) sub $3,$3,$6 sub $1,$1,$7 bne $1,$0,Rep Exit: CC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 lw IF ID EX MEM WB sub IF ID EX MEM WB sw IF ID EX MEM WB sub IF ID EX MEM WB sub IF ID EX MEM WB bne IF ID EX MEM WB lw IF ID EX MEM WB

Το ίδιο ισχύει και για τα stalls που είχαμε στους κύκλους 7, 8 1 IF CC lw sub sw bne 2 ID 3 EX 4 M 5 6 7 8 9 10 11 12 13 14 15 16 17 18 WB 19 20 1 IF CC lw sub sw bne 2 ID 3 EX 4 M 5 6 7 8 9 10 11 12 13 14 15 16 17 18 WB 19 20

Το ίδιο ισχύει και για τα stalls που είχαμε στους κύκλους 12, 13. IF CC lw sub sw bne 2 ID 3 EX 4 M 5 6 7 8 9 10 11 12 13 14 15 16 17 18 WB 19 20 1 IF CC lw sub sw bne 2 ID 3 EX 4 M 5 6 7 8 9 10 11 12 13 14 15 16 17 18 WB 19 20

Πλήθος Κύκλων Ρολογιού 1 IF CC lw sub sw bne 2 ID 3 EX 4 M 5 6 7 8 9 10 11 12 13 14 15 16 17 18 WB 19 20 10 κύκλοι ρολογιού Για τα πρώτα 99 loops έχουμε 99 × 10cc = 990cc. Για την 100η επανάληψη έχουμε 11cc. Συνολικά απαιτούνται 990cc + 11cc = 1001cc για την εκτέλεση του βρόχου. Χωρίς την προώθηση χρειαστήκαμε 1501cc.

ΤΕΛΟΣ