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

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δυναμική Δρομολόγηση Εντολών (Dynamic Scheduling)

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

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

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

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

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

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

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

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

CS425 Computer Systems Architecture

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

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

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

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

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

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

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

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

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

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

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

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

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

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

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

Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών

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

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

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

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

Περιορισμοί των βαθμωτών αρχιτεκτονικών

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

Εντολές του MIPS (2)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.1 ΑΣΚΗΣΗ ΛΥΣΗ 2.1 ΑΣΚΗΣΗ ΛΥΣΗ 3.1 ΑΣΚΗΣΗ

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

-Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)

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

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

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

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

Transcript:

Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή 1. Πλυντήριο 2. Στεγνωτήριο 3. Δίπλωμα 4. αποθήκευση Σειριακή προσέγγιση για 4 φορτία = 8h 30 min κάθε «φάση» Pipelined προσέγγιση για 4 φορτία = 3.5h Το κάθε «φορτίο» συνεχίζει να θέλει 2h, όμως περισσότερα «φορτία» ολοκληρώνονται ανά ώρα cslab@ntua 2015-2016 1

Εντολές MIPS Πέντε στάδια : 1. Φέρε την εντολή από τη μνήμη (-Instruction Fetch) 2. Διάβασε τους καταχωρητές, ενώ αποκωδικοποιείς την εντολή (+RegisterFile Read) (στο εξής θα λέμε: ) 3. Εκτέλεση της εντολής ή υπολογισμός διεύθυνσης (μέσω ALU) (EX-execute) 4. Προσπέλαση μνήμης (MEM) 5. Εγγραφή αποτελέσματος στο RegisterFile (-write back) cslab@ntua 2015-2016 2

Single-cycle vs pipelined performance: Single cycle: όλες οι εντολές διαρκούν ένα κύκλο ρολογιού, ίσο με το μήκος της πιο χρονοβόρου εντολής Έστω: 2 ns για ALU, MEM ανάγνωση ή εγγραφή και 1 ns για register file ανάγνωση ή εγγραφή Instruction class Instruct. fetch Register read ALU operation Data access Register Write Total Time Load word (lw) 2ns 1ns 2ns 2ns 1ns 8ns Store word (sw) 2ns 1ns 2ns 2ns 7ns R-Type (add,,and, or, slt) 2ns 1ns 2ns 1ns 6ns Branch(beq) 2ns 1ns 2ns 5ns cslab@ntua 2015-2016 3

Έστω οι παρακάτω εντολές lw: lw $1, 100($0) lw $2, 200($0) lw $3, 300($0) 3x8=24ns Κάθε 2ns τελειώνει και μια εντολή! Εδώ οι βαθμίδες δεν είναι απόλυτα ίσες. Στην ιδανική περίπτωση: time pipelined =time non_pipelined / number of pipe stages cslab@ntua 2015-2016 4

Στη single cycle υλοποίηση, η εντολή διαρκεί ένα κύκλο ίσο με την πιο χρονοβόρα (εδω: 8 ns) Στη pipeline υλοποίηση, το ρολόι κάθε φάσης (στάδιο-pipeline stage) διαρκεί (2 ns), ακόμα και αν υπάρχουν στάδια του 1ns Στο προηγούμενο παράδειγμα 14 ns για pipeline, 24ns για single cycle, άρα 1,71 επιτάχυνση. Άν είχαμε 1000 εντολές ακόμα: pipeline 1000x2ns + 14 ns = 2014 ns Single cycle 1000x8ns + 24 ns = 8024 ns Άρα επιτάχυνση: 8024/2014=3,98 ~4 (8ns/2ns ratio μεταξύ εντολών) cslab@ntua 2015-2016 5

Στάδια διόδου δεδομένων ενός κύκλου (single cycle datapath): EX (ALU result) MEM (DM result) Ροή εκτέλεσης εντολών-δεδομένων: από αριστερά προς τα δεξιά Εξαίρεση? Write-back και επιλογή νέου PC κίνδυνος δεδομένων (data hazard) κίνδυνος ελέγχου (control hazard) cslab@ntua 2015-2016 6

Εκτέλεση αγωγού (pipelined execution) Τι θα γίνει αν χρησιμοποιούμε την ίδια λειτουργική μονάδα (Functional Unit), π.χ. IM, RegFile, ALU, DM σε διαφορετικούς κύκλους για διαφορετικές εντολές? cslab@ntua 2015-2016 7

Mόνο για RegFile: Μπορούμε να διαβάσουμε και να γράψουμε το RegFile στον ίδιο κύκλο: (θα μας βοηθήσει σε αποφυγή κινδύνων» hazards) Στο πρώτο μισό του κύκλου γράφουμε (σκιασμένο αριστερά) και στο δεύτερο μισό διαβάζουμε (σκιασμένο δεξιά) κύκλος: γράφουμε-διαβάζουμε Γενικά για Functional Units: Όταν ένα functional unit ή ένας pipeline register είναι σκιασμένο σημαίνει ότι χρησιμοποιείται για ανάγνωση (σκιασμένο δεξιά) ή εγγραφή (σκιασμένο αριστερά) cslab@ntua 2015-2016 8

Στην υλοποίηση του multicycle datapath, είχαμε την ίδια μονάδα να χρησιμοποιείται από την ίδια εντολή σε διαφορετικούς κύκλους, π.χ. ALU ή ΜΕΜ Στην pipelined υλοποίηση του datapath, έχουμε την ίδια μονάδα να χρησιμοποιείται από διαφορετικές (διαδοχικές) εντολές σε διαφορετικούς (διαδοχικούς) κύκλους Πώς διασφαλίζεται ορθότητα εκτέλεσης κάθε εντολής; Καταχωρητές κατάλληλου;;; μεγέθους ανάμεσα σε διαδοχικά στάδια (pipeline stages) cslab@ntua 2015-2016 9

Pipelined εκδοχή του single cycle datapath (προσθέσαμε τους καταχωρητές-pipeline registers ανάμεσα σε διαδοχικά στάδια) cslab@ntua 2015-2016 10

Ι-Type: R-Type: (register type) Read_Register_1 op 6 bits op 6 bits rs 5 bits rt 5 bits address_offset 16 bits lw $rt, address_offset($rs) rs 5bits rt 5bits add $rd, $rs, $rt Read_Register_2 rd 5bits shamt 5bits Op: opcode rs,rt: register source operands Rd: register destination operand Shamt: shift amount Funct: op specific (function code) funct 6bits Write_Register cslab@ntua 2015-2016 11

cslab@ntua 2015-2016 12

cslab@ntua 2015-2016 13

cslab@ntua 2015-2016 14

cslab@ntua 2015-2016 15

cslab@ntua 2015-2016 16

To διορθωμένο pipeline για την lw: O αριθμός του write register έρχεται και αυτός μέσα από το pipeline τη σωστή στιγμή cslab@ntua 2015-2016 17

Τα τμήματα του datapath που χρησιμοποιήθηκαν κατά την εκτέλεση της lw: cslab@ntua 2015-2016 18

cslab@ntua 2015-2016 19

cslab@ntua 2015-2016 20

cslab@ntua 2015-2016 21

cslab@ntua 2015-2016 22

Κίνδυνοι Σωλήνωσης (Pipeline Hazards) Δομικοί Κίνδυνοι (structural hazards) Το υλικό δεν μπορεί να υποστηρίξει το συνδυασμό των εντολών που θέλουμε να εκτελέσουμε στον ίδιο κύκλο μηχανής. (π.χ. ενιαία L1 $ για I & D) Κίνδυνοι Ελέγχου (control hazards) Το υλικό δεν μπορεί να προχωρήσει την εκτέλεση επόμενων εντολών καθώς αναμένεται η ολοκλήρωση της εκτέλεσης μιας εντολής (π.χ. Branches) Κίνδυνοι Δεδομένων (data hazards) cslab@ntua 2015-2016 23

Κίνδυνοι Δεδομένων (Data Hazards) / Το σχήμα προώθησης (forwarding) $2, $1, $3 # καταχωρητής $2 γράφεται από τη and $12, $2, $5 # 1 ος τελεστέος ($2) εξαρτάται από or $13, $6, $2 # 2 ος τελεστέος ($2) εξαρτάται από add $14, $2, $2 # 1 ος &2 ος τελεστέος $2) -//- από sw $15, 100($2) # offset ($2) -//- από cslab@ntua 2015-2016 24

Εξαρτήσεις Δεδομένων RAW WAR X Y+K Y X+S Y Z+K WAW RAW (Read-After-Write) (true-dependence) Η ανάγνωση ενός καταχωρητή πρέπει να ακολουθεί την εγγραφή στον ίδιο καταχωρητή από προηγούμενη εντολή WAR: (Write-After-Read) (anti-dependence) Η εγγραφή σε ένα καταχωρητή πρέπει να ακολουθεί την ανάγνωσή του από προηγούμενη εντολή WAW: (Write-After-Write) (output-dependence) Η εγγραφή σε ένα καταχωρητή πρέπει να ακολουθεί όλες τις εγγραφές στον ίδιο καταχωρητή από προηγούμενες εντολές cslab@ntua 2015-2016 25

RAW add $t0, $s0, $s1 $t2, $t0, $s3 or $s3, $t7, $s2 mult $t2, $t7, $s0 True dependence cslab@ntua 2015-2016 26

WAR add $t0, $s0, $s1 $t2, $t0, $s3 or $s3, $t7, $s2 mult $t2, $t7, $s0 Name dependence - antidependence cslab@ntua 2015-2016 27

WAW add $t0, $s0, $s1 $t2, $t0, $s3 or $s3, $t7, $s2 mult $t2, $t7, $s0 name dependence - output dependence cslab@ntua 2015-2016 28

Identify all the dependencies RAW WAR WAW add $t0, $s0, $s1 MEM $t2, $t0, $s3 MEM or $s3, $t7, $s2 MEM mul $t2, $t7, $s0 MEM 1 2 3 4 5 6 7 8 cslab@ntua 2015-2016 29

Which dependencies cause hazards? (stalls) RAW WAR WAW add $t0, $s0, $s1 MEM $t2, $t0, $s3 MEM or $s3, $t7, $s2 MEM mul $t2, $t7, $s0 MEM 1 2 3 4 5 6 7 8 cslab@ntua 2015-2016 30

Let s reorder the or RAW WAR WAW add $t0, $s0, $s1 MEM $t2, $t0, $s3 MEM or $s3, $t7, $s2 MEM mul $t2, $t7, $s0 MEM 1 2 3 4 5 6 7 8 cslab@ntua 2015-2016 31

Let s reorder the or RAW WAR WAW add $t0, $s0, $s1 MEM or $s3, $t7, $s2 RAW $t2, $t0, $s3 MEM MEM mul $t2, $t7, $s0 MEM 1 2 3 4 5 6 7 8 cslab@ntua 2015-2016 32

Let s reorder the mul RAW WAR WAW add $t0, $s0, $s1 MEM $t2, $t0, $s3 MEM or $s3, $t7, $s2 MEM mul $t2, $t7, $s0 MEM 1 2 3 4 5 6 7 8 cslab@ntua 2015-2016 33

Let s reorder the mul RAW WAR WAW add $t0, $s0, $s1 MEM mul $t2, $t7, $s0 MEM $t2, $t0, $s3 MEM or $s3, $t7, $s2 MEM 1 2 3 4 5 6 7 8 cslab@ntua 2015-2016 34

How to alleviate name dependencies? add $t0, $s0, $s1 MEM $t2, $t0, $s3 MEM or $s3, $t7, $s2 MEM mul $t2, $t7, $s0 MEM 1 2 3 4 5 6 7 8 cslab@ntua 2015-2016 35

Data Hazards: Οι εντολές ανταλλάσσουν μεταξύ τους δεδομένα μέσω του Register File και της μνήμης. Όταν η επόμενη εντολή-ες χρειάζεται για όρισμα (ανάγνωση) κάτι που δεν έχει προλάβει να γράψει η προηγούμενη 1 2 3 4 5 6 7 8 9 $2,$1,$3 EX MEM and $12,$2,$5 EX MEM or $13,$6, $2 EX MEM add $14, $2,$2 EX MEM sw $15, 100($2) EX MEM cslab@ntua 2015-2016 36

Μία λύση είναι η καθυστέρηση(stall) του αγωγού (pipeline): Προσθέτω δύο εντολές NOP: $2,$1,$3 nop nop and $12,$2,$5 or $13,$6, $2 add $14, $2,$2 sw $15, 100($2) 1 2 3 EX $2, $1, $3 nop nop and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15, 100($2) 4 MEM 5 6 EX 7 MEM EX 8 MEM EX 9 MEM EX STALL (κύκλοι αναμονής) 10 MEM 11 cslab@ntua 2015-2016 37

Πιο κομψή λύση είναι η προώθηση (forwarding): Έχουμε εξάρτηση δεδομένων RAW. Τα αποτελέσματα γράφονται είτε στην μνήμη είτε στο register file. Στην περίπτωση R-TYPE: Αποθηκεύονται στο RegFile, παράγονται όμως μετά την ALU, άρα είναι διαθέσιμα στον EX/MEM Πώς θα βρούν η επόμενη και η μεθεπόμενη εντολή στη φάση EX τα σωστά ορίσματα: 1. Προωθούμε το EX/MEM αποτέλεσμα ως είσοδο για την ALU πράξη της επόμενης εντολής 2. Το ίδιο κάνουμε για τη μέθεπόμενη εντολή, προωθούμε το MEM/ αποτέλεσμα, ως είσοδο για την ALU πράξη της μεθεπόμενης εντολή Είσοδο στην ALU όχι μόνο από /EX καταχωρητή!! cslab@ntua 2015-2016 38

1a. EX/MEM.RegisterRd = /EX.RegisterRs 1b. EX/MEM.RegisterRd = /EX.RegisterRt 2a. MEM/.RegisterRd = /EX.RegisterRs 2b. MEM/.RegisterRd = /EX.RegisterRt Δύο περιπτώσεις (αιτίες) για hazard: Από φάση ΕΧ και από φάση ΜΕΜ -and hazard: EX/MEM.RegisterRd = /EX.RegisterRs = $2 -or hazard: MEM/.RegisterRd = /EX.RegisterRt = $2 cslab@ntua 2015-2016 39

Forwarding: Πρώτα ανιχνεύουμε την πιθανή αιτία κινδύνου Μετά κάνουμε προώθηση της κατάλληλης τιμής Forwarding για αποφυγή EX hazard Forwarding για αποφυγή MEM hazard NO hazard!! cslab@ntua 2015-2016 40

Συνθήκες ελέγχου των κινδύνων: 1. EX hazard: if (EX/MEM.RegWrite and (EX/MEM.RegisterRd 0) and (EX/MEM.RegisterRd = /EX.RegisterRs)) ForwardA = 10 if (EX/MEM.RegWrite and (EX/MEM.RegisterRd 0) and (EX/MEM.RegisterRd = /EX.RegisterRt)) ForwardB=10 cslab@ntua 2015-2016 41

2. MEM hazard: if (MEM/.RegWrite and (ΜΕΜ/WΒ.RegisterRd 0) and (EX/MEM.RegisterRd = /EX.RegisterRs)) ForwardA = 01 if (MEM/ RegWrite and (MEM/.RegisterRd 0) and (MEM/.RegisterRd = /EX.RegisterRt)) ForwardB = 01 cslab@ntua 2015-2016 42

Pipelining χωρίς forwarding Forwarding paths: Από: a) ΕΧ/ΜΕΜ register και από: b) MEM/ register προς τις εισόδους της ALU cslab@ntua 2015-2016 43

Datapath to resolve hazards via forwarding: cslab@ntua 2015-2016 44

Σχεδιασμός Control Είσοδοι Πεδία του instruction Έξοδοι Σήματα ελέγχου ALU Σήματα ελέγχου μνήμης Πολυπλέκτες Finite State Machine cslab@ntua 2015-2016 45

Σχεδιασμός Control FSM (Multicycle datapath) cslab@ntua 2015-2016 46

Multicycle datapath cslab@ntua 2015-2016 47

Datapath to resolve hazards via forwarding: cslab@ntua 2015-2016 48

cslab@ntua 2015-2016 49

cslab@ntua 2015-2016 50

cslab@ntua 2015-2016 51

Kίνδυνοι δεδομένων (data hazards) και αναπόφευκτες καθυστερήσεις (stalls) εξ αιτίας τους Όταν η εντολή που κάνει write είναι R-TYPE, τότε το αποτέλεσμα είναι έτοιμο στην φάση EX (έξοδος ALU) και αποθηκέυεται, στο τέλος του κύκλου, στον EX/MEM καταχωρητή. Οι επόμενες χρειάζονται τα ορίσματα στην φάση ΕΧ οπότε το forwarding δουλεύει. (αφού η εντολή που κάνει write θα βρίσκεται στις ΜΕΜ και ) Το forwarding δεν δίνει όμως πάντα λύση!! cslab@ntua 2015-2016 52

αναπόφευκτες καθυστερήσεις (stalls): Όταν η προηγούμενη εντολή (που κάνει write) είναι load ή store, τότε το αποτέλεσμα είναι έτοιμο στο τέλος της φάσης MEM ή και (ακόμα χειρότερα) cslab@ntua 2015-2016 53

Λύση: αναπόφευκτες καθυστερήσεις (stalls) στο pipeline Επαναλαμβάνουμε τις ίδιες φάσεις: για την and και για την or. cslab@ntua 2015-2016 54

Πως ανιχνεύουμε τις αναπόφευκτες καθυστερήσεις: Hazard detection unit Λειτουργεί στη φάση ώστε να βάλει καθυστέρηση μεταξύ του load και της χρησιμοποίησης των αποτελεσμάτων του. If (/EX.MemRead and ((/EX.RegisterRt = / RegisterRs) or (/EX.RegisterRt = /.RegisterRt))) Stall the pipeline Τι σημαίνει stall: Εμποδίζουμε το PC και τον / να αλλάξουνάρα διαβάζεται σε δύο διαδοχικούς κύκλους η ίδια εντολή και αποκωδικοποιείται η ίδια επόμενή της δύο φορές συνεχόμενα cslab@ntua 2015-2016 55

Final Pipeline: cslab@ntua 2015-2016 56

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

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

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

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

Απάντηση Rep: lw $2,100($3) $2,$2,$5 sw $2,100($3) $3,$3,$6 $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 επαναλήψεις. cslab@ntua 2015-2016 61

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

Ή πιο συμπιεσμένο για να χωράει σε μια σελίδα CC lw sw bne lw 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 EX M cslab@ntua 2015-2016 63

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

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

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

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

Υπολογισμός χρόνου CC lw sw bne lw 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 EX M 15 κύκλοι ρολογιού Για τα πρώτα 99 loops έχουμε 99 15cc= 1485cc. Για την 100 η επανάληψη έχουμε 16cc. Συνολικά απαιτούνται 1485cc + 16cc = 1501cc για την εκτέλεση του βρόχου. cslab@ntua 2015-2016 68

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

Με / Χωρίς προώθηση CC lw sw bne lw 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 EX M CC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lw EX M EX M sw EX M bne lw cslab@ntua 2015-2016 70

Hazards Rep: lw $2,100($3) $2,$2,$5 sw $2,100($3) $3,$3,$6 $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 EX MEM EX MEM sw EX MEM EX MEM EX MEM bne EX MEM lw EX MEM cslab@ntua 2015-2016 71

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

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

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

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