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

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

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

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

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

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

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

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

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

Κάζε functional unit ρξεζηκνπνηείηαη κηα θνξά ζε θάζε θύθιν: αλάγθε γηα πνιιαπιό hardware = θόζηνο πινπνίεζεο!

CS425 Computer Systems Architecture

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

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

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

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

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

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

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

Διασωλήνωση - Pipelining

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

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

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

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

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Static Scheduling. Ιάκωβος Μαυροειδής

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

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

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Static Scheduling. Βασίλης Παπαευσταθίου Ιάκωβος Μαυροειδής

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

Ενδεικτικά Θέματα Στατιστικής ΙΙ

Βιοµηχανία Αυτοκινήτων

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

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

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

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

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

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

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

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

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

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

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

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

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

Υποθετική Εκτέλεση Εντολών

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

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

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

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

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

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

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

Instruction-Level Parallelism and its Dynamic Exploitation. Μάθηµα 3ο Computer Architecture-A Quantitative Approach

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

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

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

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

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

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Εισαγωγή στη Φωτογραυία. Χριζηάκης Σαζεΐδης - EFIAP

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

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

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

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

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

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

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

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

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

Μέθοδοι Πρόβλεψης Διακλαδώσεων (Branch Prediction Mechanisms)

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

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

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

CS-425 Mid-term exam

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

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

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

Εντολές Διακλάδωσης. #bubbles ~= pipeline depth X loop length. Next fetch started. Fetch. I-cache. Fetch Buffer. Decode. Issue Buffer.

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

Transcript:

Ειζαγφγή Σύνουη βαζικών εννοιών, 5-stage pipeline, επεκηάζεις για λειηοσργίες πολλαπλών κύκλφν 1

Παξάγνληεο πνπ επεξεάδνπλ ηελ επίδνζε ηεο CPU CPU time = Seconds = Instructions Cycles Seconds -------------- ------------------ x ------------------ x -------------- Program Program Instruction Cycle Instr. count CPI Clock rate Program Υ Compiler Υ Υ Instruction Set X Υ Υ Architecture (ISA) Οργάνφζη X Υ Τετνολογία Υ 2

WB Data 5-Stage Pipelined Datapath Instruction Fetch Instr. Decode. Fetch Execute Addr. Calc Memory Access Write Back Next PC Next SEQ PC Next SEQ PC MUX 4 Adder RS1 Zero? Address Memory IF/ID RS2 File ID/EX MUX MUX EX/MEM Data Memory MEM/WB MUX Imm Sign Extend IR Mem[PC] PC PC + 4 RD RD RD A [IR rs ] rslt Mem[rslt] B [IR rt ] A op IRop B [IR rd ] WB 3

Δηάγξακκα ρξνληζκνύ Time (clock cycles) I n s t r. Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 O r d e r 4

I n s t r u c t i o n Παξάδεηγκα γηα ηελ εληνιή lw: Instruction Fetch (IF) Instruction fetch 0 M u x 1 I F / I D I D / E X E X / M E M M E M / W B A d d 4 S h i f t l e f t 2 A d d A d d r e s u l t P C A d d r e s s I n s t r u c t i o n m e m o r y R e a d r e g i s t e r 1 R e a d d a t a 1 R e a d r e g i s t e r 2 R e g i s t e r s R e a d W r i t e d a t a 2 r e g i s t e r W r i t e d a t a 0 M u x 1 Z e r o A L U A L U r e s u l t A d d r e s W r i t e d a t a D a t a m e m o r y R e a d d a t a 1 M u x 0 1 6 S i g n e x t e n d 3 2 5

I n s t r u c t i o n Παξάδεηγκα γηα ηελ εληνιή lw: Instruction Decode (ID) Instruction decode 0 M u x 1 I F / I D I D / E X E X / M E M M E M / W B A d d 4 S h i f t l e f t 2 A d d A d d r e s u l t P C A d d r e s s I n s t r u c t i o n m e m o r y R e a d r e g i s t e r 1 R e a d d a t a 1 R e a d r e g i s t e r 2 R e g i s t e r s R e a d W r i t e d a t a 2 r e g i s t e r W r i t e d a t a 0 M u x 1 Z e r o A L U A L U r e s u l t A d d r e s W r i t e d a t a D a t a m e m o r y R e a d d a t a 1 M u x 0 1 6 S i g n e x t e n d 3 2 6

I n s t r u c t i o n Παξάδεηγκα γηα ηελ εληνιή lw: Execution (EX) Execution 0 M u x 1 I F / I D I D / E X E X / M E M M E M / W B A d d 4 S h i f t l e f t 2 A d d A d d r e s u l t P C A d d r e s s I n s t r u c t i o n m e m o r y R e a d r e g i s t e r 1 R e a d d a t a 1 R e a d r e g i s t e r 2 R e g i s t e r s R e a d W r i t e d a t a 2 r e g i s t e r W r i t e d a t a 0 M u x 1 Z e r o A L U A L U r e s u l t A d d r e s W r i t e d a t a D a t a m e m o r y R e a d d a t a 1 M u x 0 1 6 S i g n e x t e n d 3 2 7

I n s t r u c t i o n Παξάδεηγκα γηα ηελ εληνιή lw: Memory (MEM) Memory 0 M u x 1 I F / I D I D / E X E X / M E M M E M / W B A d d 4 S h i f t l e f t 2 A d d A d d r e s u l t P C A d d r e s s I n s t r u c t i o n m e m o r y R e a d r e g i s t e r 1 R e a d d a t a 1 R e a d r e g i s t e r 2 R e g i s t e r s R e a d W r i t e d a t a 2 r e g i s t e r W r i t e d a t a 0 M u x 1 Z e r o A L U A L U r e s u l t A d d r e s W r i t e d a t a D a t a m e m o r y R e a d d a t a 1 M u x 0 1 6 S i g n e x t e n d 3 2 8

I n s t r u c t i o n Παξάδεηγκα γηα ηελ εληνιή lw: Writeback (WB) Writeback 0 M u x 1 I F / I D I D / E X E X / M E M M E M / W B A d d 4 S h i f t l e f t 2 A d d A d d r e s u l t P C A d d r e s s I n s t r u c t i o n m e m o r y R e a d r e g i s t e r 1 R e a d d a t a 1 R e a d r e g i s t e r 2 R e g i s t e r s R e a d W r i t e d a t a 2 r e g i s t e r W r i t e d a t a 0 M u x 1 Z e r o A L U A L U r e s u l t A d d r e s W r i t e d a t a D a t a m e m o r y R e a d d a t a 1 M u x 0 1 6 S i g n e x t e n d 3 2 9

Πεξηνξηζκνί pipeline Οη θίλδπλνη (hazards) απνηξέπνπλ ηελ επόκελε εληνιή από ην λα εθηειεζηεί ζηνλ θύθιν πνπ πξέπεη Δνκηθνί θίλδπλνη (structural): όηαλ ην πιηθό δελ κπνξεί λα ππνζηεξίμεη ηαπηόρξνλε εθηέιεζε ζπγθεθξηκέλσλ εληνιώλ Κίλδπλνη δεδνκέλσλ (data): όηαλ κηα εληνιή ρξεηάδεηαη ην απνηέιεζκα κηαο πξνεγνύκελεο, ε νπνία βξίζθεηαη αθόκε ζην pipeline Κίλδπλνη ειέγρνπ (control): όηαλ εηζάγεηαη θαζπζηέξεζε κεηαμύ ηνπ θνξηώκαηνο εληνιώλ θαη ηεο ιήςεο απνθάζεσλ ζρεηηθά κε ηελ αιιαγή ηεο ξνήο ηνπ πξνγξάκκαηνο (branches,jumps) 10

Παξάδεηγκα structural hazard: έλα δηαζέζηκν memory port Time (clock cycles) Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 I n s t r. O r d e r Load Instr 1 Instr 2 Instr 3 Instr 4 11

Παξάδεηγκα structural hazard: επίιπζε κε stall Time (clock cycles) Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 I n s t r. O r d e r Load Instr 1 Instr 2 Stall Instr 3 Bubble Bubble Bubble Bubble Bubble 12

Παξάδεηγκα data hazard ζηνλ r1 Time (clock cycles) IF ID/RF EX MEM WB I n s t r. add r1,r2,r3 sub r4,r1,r3 O r d e r and r6,r1,r7 or r8,r1,r9 xor r10,r1,r11 13

Εμαξηήζεηο θαη θίλδπλνη δεδνκέλσλ Η J είλαη data dependent από ηελ I: H J πξνζπαζεί λα δηαβάζεη ηνλ source operand πξηλ ηνλ γξάςεη ε I I: add r1,r2,r3 J: sub r4,r1,r3 ή, ε J είλαη data dependent από ηελ Κ, ε νπνία είλαη data dependent από ηελ I (αιπζίδα εμαξηήζεσλ) Πξαγκαηηθέο εμαξηήζεηο (True Dependences) Πξνθαινύλ Read After Write (RAW) hazards ζην pipeline 14

Εμαξηήζεηο θαη θίλδπλνη δεδνκέλσλ Οη εμαξηήζεηο είλαη ηδηόηεηα ησλ πξνγξακκάησλ Η παξνπζία κηαο εμάξηεζεο ππνδειώλεη ηελ πηζαλόηεηα εκθάληζεο hazard, αιιά ην αλ ζα ζπκβεί πξαγκαηηθά ην hazard, θαη ην πόζε θαζπζηέξεζε ζα εηζάγεη, είλαη ηδηόηεηα ηνπ pipeline Η ζεκαζία ησλ εμαξηήζεσλ δεδνκέλσλ: 1) ππνδειώλνπλ ηελ πηζαλόηεηα γηα hazards 2) θαζνξίδνπλ ηε ζεηξά ζύκθσλα κε ηελ νπνία πξέπεη λα ππνινγηζηνύλ ηα δεδνκέλα 3) ζέηνπλ έλα άλσ όξην ζην πνζό ηνπ παξαιιειηζκνύ πνπ κπνξνύκε λα εθκεηαιιεπηνύκε 15

Name Dependences (1): Anti-dependences Name dependence, όηαλ 2 εληνιέο ρξεζηκνπνηνύλ ηνλ ίδην θαηαρσξεηή ή ζέζε κλήκεο ( name ), ρσξίο όκσο λα ππάξρεη πξαγκαηηθή ξνή δεδνκέλσλ κεηαμύ ηνπο 1. Anti-dependence: ε J γξάθεη ηνλ r1 πξηλ ηνλ δηαβάζεη ε I I: sub r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7 Πξνθαιεί Write After Read (WAR) data hazards ζην pipeline Δε κπνξεί λα ζπκβεί ζην θιαζηθό 5-stage pipeline δηόηη:» όιεο νη εληνιέο ρξεηάδνληαη 5 θύθινπο γηα λα εθηειεζηνύλ, θαη» νη αλαγλώζεηο ζπκβαίλνπλ πάληα ζην ζηάδην 2, θαη» νη εγγξαθέο ζην ζηάδην 5 16

Name Dependences (2): Output dependences 2. Output dependence: ε J γξάθεη ηνλ r1 πξηλ ηνλ γξάςεη ε I I: sub r1,r4,r3 J: add r1,r2,r3 K: mul r6,r1,r7 Πξνθαιεί Write After Write (WAW) data hazards ζην pipeline Δε κπνξεί λα ζπκβεί ζην θιαζηθό 5-stage pipeline δηόηη:» όιεο νη εληνιέο ρξεηάδνληαη 5 θύθινπο γηα λα εθηειεζηνύλ, θαη» νη εγγξαθέο ζπκβαίλνπλ πάληα ζην ζηάδην 5 Σόζν νη WAW όζν θαη νη WAR θίλδπλνη ζπλαληώληαη ζε πην πεξίπινθα pipelines (π.ρ. multi-cycle pipeline, out-of-order execution) 17

Πξνώζεζε Time (clock cycles) I n s t r. add r1,r2,r3 sub r4,r1,r3 O r d e r and r6,r1,r7 or r8,r1,r9 xor r10,r1,r11 κεηώλνληαη ηα RAW hazards 18

Αιιαγέο ζην hardware γηα ηελ ππνζηήξημε πξνώζεζεο NextPC isters ID/EX mux mux EX/MEM Data Memory MEM/WR Immediate mux Πξνώζεζε ΕΥ->ΕΥ, ΜΕΜ->ΕΥ 19

Πξνώζεζε ΜΕΜ->ΜΕΜ Time (clock cycles) I n s t r. add r1,r2,r3 lw r4, 0(r1) O r d e r sw r4,12(r1) or r8,r6,r9 xor r10,r9,r11 20

Σα data hazards δελ εμαθαλίδνληαη πιήξσο κε ηελ πξνώζεζε Time (clock cycles) I n s t r. lw r1, 0(r2) sub r4,r1,r6 O r d e r and r6,r1,r7 or r8,r1,r9 21

Σα data hazards δελ εμαθαλίδνληαη πιήξσο κε ηελ πξνώζεζε Time (clock cycles) I n s t r. lw r1, 0(r2) sub r4,r1,r6 Bubble O r d e r and r6,r1,r7 or r8,r1,r9 Bubble Bubble 22

Αλαδηάηαμε εληνιώλ γηα ηελ απνθπγή RAW hazards Πώο κπνξνύκε λα παξάγνπκε γξεγνξόηεξν θώδηθα assembly γηα ηηο αθόινπζεο πξάμεηο? a = b + c; d = e f; Slow code: LW LW ADD SW LW LW SUB SW Rb,b Rc,c Ra,Rb,Rc a,ra Re,e Rf,f Rd,Re,Rf d,rd Fast code: LW LW LW ADD LW SW SUB SW Rb,b Rc,c Re,e Ra,Rb,Rc Rf,f a,ra Rd,Re,Rf d,rd 23

Κίλδπλνη ειέγρνπ ζηηο εληνιέο δηαθιάδσζεο: stalls 2 ζηαδίσλ 10: beq r1,r3,36 14: and r2,r3,r5 18: or r6,r1,r7 36: xor r10,r1,r11 24

Επίπησζε ησλ branch stalls Αλ CPI = 1, ε ζπρλόηεηα ησλ branches 30%, θαη ηα branch stalls δηαξθνύλ 2 θύθινπο => λέν CPI = 1.6! Μηα ιύζε: θαζόξηζε ην απνηέιεζκα ηνπ branch λσξίηεξα, ΚΑΙ ππνιόγηζε ηε δηεύζπλζε-ζηόρν ηνπ branch λσξίηεξα κεηαθίλεζε ηνπ ειέγρνπ ηζόηεηαο ελόο θαηαρσξεηή κε ην 0 ζην ζηάδην ID/RF πξνζζήθε αζξνηζηή ζην ζηάδην ID/RF γηα ηνλ ππνινγηζκό ηνπ PC ηεο δηεύζπλζεο-ζηόρνπ 1 θύθινο branch penalty έλαληη 2 25

WB Data Σξνπνπνηήζεηο ζην pipeline Instruction Fetch Instr. Decode. Fetch Execute Addr. Calc Memory Access Write Back Next PC 4 Adder Next SEQ PC RS1 Adder MUX Zero? Address Memory IF/ID RS2 File ID/EX MUX EX/MEM Data Memory MEM/WB MUX Imm Sign Extend RD RD RD 26

4 ελαιιαθηηθέο πξνζεγγίζεηο γηα ηελ αληηκεηώπηζε ησλ control hazards #1: Πάγσκα ηνπ pipeline κέρξη ν ζηόρνο ηνπ branch λα γίλεη γλσζηόο #2: Πξόβιεςε Not Taken γηα θάζε branch ζπλερίδνπκε λα θνξηώλνπκε ηηο επόκελεο εληνιέο, ζα λα ήηαλ ε εληνιή branch κηα «θαλνληθή» εληνιή απνξξίπηνπκε από ην pipeline απηέο ηηο εληνιέο, αλ ηειηθά ην branch είλαη Taken ην PC+4 είλαη ήδε ππνινγηζκέλν, ην ρξεζηκνπνηνύκε γηα λα πάξνπκε ηελ επόκελε εληνιή #3: Πξόβιεςε Taken γηα θάζε branch θνξηώλνπκε εληνιέο αξρίδνληαο από ηε δηεύζπλζε-ζηόρν ηνπ branch ηνλ MIPS ε δηεύζπλζε-ζηόρνο δε γίλεηαη γλσζηή πξηλ ην απνηέιεζκα ηνπ branch» θαλέλα επηπιένλ πιενλέθηεκα ζηνλ MIPS (1 cycle branch penalty)» ζα είρε λόεκα ζε άιια pipelines, όπνπ ε δηεύζπλζε-ζηόρνο γίλεηαη γλσζηή πξηλ ην απνηέιεζκα ηνπ branch 27

4 ελαιιαθηηθέο πξνζεγγίζεηο γηα ηελ αληηκεηώπηζε ησλ control hazards #4: Delayed Branches branch instruction sequential successor 1 sequential successor 2... sequential successor n branch target if taken Branch delay κήθνπο n: νη εληνιέο εθηεινύληαη είηε ην branch είλαη Taken είηε όρη delay ελόο slot: επηηξέπεη απόθαζε θαη ππνινγηζκό δηεύζπλζεο-ζηόρνπ ζην 5-stage pipeline ρσξίο stalls 28

«Δξνκνιόγεζε» ελόο branch delay slot ην (α) είλαη ε θαιύηεξε επηινγή: γεκίδεη ην delay slot θαη κεηώλεη ηνλ αξηζκό εληνιώλ 29

Πεξηνξηζκνί ησλ βαζκσηώλ αξρηηεθηνληθώλ Μέγηζην throughput: 1 εληνιή/θύθιν ξνινγηνύ (IPC 1) Τπνρξεσηηθή ξνή όισλ ησλ (δηαθνξεηηθώλ) ηύπσλ εληνιώλ κέζα από θνηλή ζσιήλσζε Εηζαγσγή θαζπζηεξήζεσλ ζε νιόθιεξε ηελ αθνινπζία εθηέιεζεο ιόγσ stalls κίαο εληνιήο (νη απόιπηα βαζκσηέο αξρηηεθηνληθέο πξαγκαηνπνηνύλ ελ ζεηξά (in-order) εθηέιεζε ησλ εληνιώλ) 30

Πώο κπνξνύλ λα μεπεξαζηνύλ νη πεξηνξηζκνί; Εθηέιεζε πνιιαπιώλ εληνιώλ αλά θύθιν κεραλήο (παξάιιειε εθηέιεζε) ππεξβαζκσηέο αξρηηεθηνληθέο Ελζσκάησζε δηαθνξεηηθώλ αγσγώλ ξνήο δεδνκέλσλ, ν θαζέλαο κε όκνηεο (πνιιαπιή εκθάληζε ηνπ ίδηνπ ηύπνπ) ή θαη εηεξνγελείο ιεηηνπξγηθέο κνλάδεο multicycle operations Δπλαηόηεηα εθηέιεζεο εθηόο ζεηξάο (out-of-order) ησλ εληνιώλ δπλακηθέο αξρηηεθηνληθέο 31

Ελαιιαθηηθά... Pipeline CPI = Ideal pipeline CPI + Structural Stalls + Data Hazard Stalls + Control Stalls μέηρο ηης μέγιζηης απόδοζης ποσ μπορούμε να έτοσμε με ηην εκάζηοηε σλοποίηζη ηοσ pipeline 32

Ελαιιαθηηθά... register renaming δσναμική εκηέλεζη Pipeline CPI = Ideal pipeline CPI + Structural Stalls + Data Hazard Stalls + σπερβαθμφηή εκηέλεζη προώθηζη loop unrolling static scheduling, software pipelining Control Stalls πρόβλευη διακλαδώζεφν σποθεηική εκηέλεζη delayed branches, branch scheduling 33

Λεηηνπξγίεο πνιιαπιώλ θύθισλ ην θιαζηθό 5-stage pipeline όιεο νη ιεηηνπξγίεο ρξεηάδνληαη 1 θύθιν Σν λα έρνπκε όιεο ηηο εληνιέο λα ηειεηώλνπλ ζε έλαλ θύθιν ζεκαίλεη: κείσζε ηεο ζπρλόηεηαο γηα λα πξνζαξκνζηεί ην pipeline ζηε δηάξθεηα ηεο πην ρξνλνβόξαο ιεηηνπξγίαο, ή ρξεζηκνπνίεζε εμαηξεηηθά πνιύπινθσλ θπθισκάησλ γηα ηελ πινπνίεζε ηεο πην ρξνλνβόξαο ιεηηνπξγίαο ζε 1 θύθιν Ρεαιηζηηθή αληηκεηώπηζε: επέθηαζε ηνπ pipeline γηα λα ππνζηεξίδεη ιεηηνπξγίεο δηαθνξεηηθήο δηάξθεηαο Παξαδείγκαηα από πξαγκαηηθνύο επεμεξγαζηέο: FP add, Int/FP mult: ~2-6 θύθινπο Int/FP div, sqrt: ~20-50 θύθινπο Πξνζπέιαζε ζηε κλήκε: ~2-200 θύθινπο... 34

Multi-cycle execution: επέθηαζε ηνπ 5-stage pipeline κε non-pipelined FP units 4 δηαθνξεηηθέο s: Integer FP/Integer multiply FP adder FP/Integer divide θαληαδόκαζηε ην ΕΥ γηα ηηο FP εληνιέο ζαλ λα επαλαιακβάλεηαη γηα πνιινύο ζπλερόκελνπο θύθινπο θάζε ηέηνηα κνλάδα είλαη non-pipelined: δε κπνξεί λα ζηαιεί ( issue ) πξνο εθηέιεζε ζε κηα κνλάδα κηα εληνιή, αλ θάπνηα πξνεγνύκελε ρξεζηκνπνηεί αθόκα ηε κνλάδα απηή (structural hazard) ε εληνιή πνπ stall-άξεη θαζπζηεξεί θαη όιεο ηηο επόκελεο 35

Μεηξηθέο γηα ηελ πεξηγξαθή ελόο multicycle pipeline Initiation interval: #θύθισλ πνπ κεζνιαβνύλ αλάκεζα ζηελ απνζηνιή ζηηο κνλάδεο εθηέιεζεο δύν εληνιώλ ίδηνπ ηύπνπ ελδεηθηηθό ηνπ throughput κηαο κνλάδαο εθηέιεζεο Latency: #θύθισλ πνπ κεζνιαβνύλ κεηαμύ κηαο εληνιή παράγει έλα απνηέιεζκα θαη απηήο πνπ ζα ην καταναλώσει Unit Latency Initiation interval Integer 0 1 Data memory 1 1 FP add 3 1 FP multiply 6 1 FP divide 24 25 Οη πεξηζζόηεξεο εληνιέο καταναλώνουν ηνπο ηειεζηένπο ηνπο ζηελ αξρή ηνπ ΕΥ Latency = #ζηαδίσλ κεηά ην ΕΥ όπνπ κηα εληνιή παξάγεη ην απνηέιεζκά ηεο 36

Multi-cycle execution: επέθηαζε ηνπ 5-stage pipeline κε pipelined FP units επηηξέπεη λα βξίζθνληαη ελ εθηειέζεη κέρξη 4 FP-adds, 7 FP-muls, 1 FPdivide (non-pipelined) ηα επηκέξνπο ζηάδηα είλαη αλεμάξηεηα θαη ρσξίδνληαη κε ελδηάκεζνπο θαηαρσξεηέο δηάζπαζε κηαο ιεηηνπξγίαο ζε πνιιά επηκέξνπο ζηάδηα: ζπρλόηεηα ξνινγηνύ latency ιεηηνπξγηώλ + ζπρλόηεηα RAW hazards + stalls 37

Παξάδεηγκα Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 MUL.D ADD.D L.D S.D IF ID M1 M2 M3 M4 M5 M6 M7 M WB IF ID A1 A2 A3 A4 M WB IF ID EX M WB IF ID EX M WB 38

Hazards Νέα δεηήκαηα πνπ πξνθύπηνπλ: ε κνλάδα divide είλαη non-pipelined κπνξεί λα πξνθύςνπλ structural hazards εληνιέο δηαθνξεηηθνύ latency #εγγξαθώλ ζην register file ζε έλαλ θύθιν κπνξεί λα είλαη >1 (structural hazards) νη εληνιέο κπνξεί λα θηάζνπλ ζην WB εθηόο ζεηξάο πξνγξάκκαηνο κπνξνύλ λα ζπκβνύλ WAW hazards (WAR?) νη εληνιέο κπνξεί λα νινθιεξσζνύλ εθηόο ζεηξάο πξνγξάκκαηνο πξόβιεκα κε ηηο εμαηξέζεηο κεγαιύηεξν latency ζηηο εληνιέο ζπρλόηεξα ηα stalls εμαηηίαο RAW hazards 39

RAW hazards θαη αύμεζε ησλ stalls Clock Cycles L.D F4,0(R2) MUL.D F0,F4,F6 ADD.D F2,F0,F8 S.D F2,0(R2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 IF ID EX M WB IF ID S M1 M2 M3 M4 M5 M6 M7 M WB IF S ID S S S S S S A1 A2 A3 A4 M WB IF S S S S S S ID EX S S S M WB full bypassing/forwarding ε S.D πξέπεη λα θαζπζηεξήζεη έλαλ θύθιν παξαπάλσ γηα λα απνθύγνπκε ην conflict ζην ΜΕΜ ηεο ADD.D 40

Structural Hazards Clock Cycles MUL.D F0,F4,F6 ADD.D F2,F4,F6 L.D F2,0(R2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 IF ID M1 M2 M3 M4 M5 M6 M7 M WB IF ID EX M WB IF ID EX M WB IF ID A1 A2 A3 A4 M WB IF ID EX M WB IF ID EX M WB IF ID EX M WB Mε κόλν έλα write port ζην register file structural hazard multiple write ports ( όκσο δελ είλαη ε ζπλήζεο πεξίπησζε ζηα πξνγξάκκαηα) interlocks: - ειέγρνπκε ζην ID ην ελδερόκελν ε ηξέρνπζα εληνιή λα έρεη conflict ζην WB κε κία πξνεγνύκελε εληνιή, θαη αλ ηζρύεη απηό ηελ stall-άξνπκε ζην ID (πξνηνύ γίλεη issue) - ειέγρνπκε ην ελδερόκελν ε εληνιή λα έρεη conflict ζην WB όηαλ απηή πάεη λα κπεη ζην ΜΕΜ ή ζην WB, θαη αλ ηζρύεη απηό ηε stall-άξνπκε εθεί 41

WAW Hazards Clock Cycles ADD.D F2,F4,F6 inst L.D F2,0(R2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 IF ID EX M WB IF ID EX M WB IF ID A1 A2 A3 A4 M WB IF ID EX M WB IF ID EX M WB Mπνξεί λα πξνθύςεη κόλν αλ ε inst δε ρξεζηκνπνηεί ηνλ F2 - πνηνο ν ιόγνο λα έρνπκε δύν producers ηνπ ίδηνπ πξάγκαηνο ρσξίο ελδηάκεζν consumer??? - ζπάληα πεξίπησζε, αθνύ έλαο «ινγηθόο» compiler ζα έθαλε eliminate ηνλ πξώην producer - κπνξεί όκσο λα ζπκβεί!! π.ρ. όηαλ ε ζεηξά εθηέιεζεο ησλ εληνιώλ δελ είλαη ε αλακελόκελε ( branch delay slots, εληνιέο ζε trap handlers, θ.ιπ.) Σν hazard αληρλεύεηαη ζην ID, όηαλ ε L.D είλαη έηνηκε λα γίλεη issue Αληηκεηώπηζε: - θαζπζηεξνύκε ην issue ηεο L.D κέρξη ε ADD.D λα κπεη ζην ΜΕΜ - απνξξίπηνπκε ηελ εγγξαθή ηεο ADD.D ε L.D κπνξεί λα γίλεη issue άκεζα Η δπζθνιία δελ έγθεηηαη ηόζν ζηελ αληηκεηώπηζε ηνπ hazard, όζν ζην λα βξνύκε όηη ε L.D κπνξεί λα νινθιεξσζεί πην γξήγνξα από ηελ ADD.D 42

πλνςίδνληαο Σξεηο επηπιένλ έιεγρνη γηα hazards ζην ID πξνηνύ κηα εληνιή γίλεη issue: structural:» εμαζθάιηζε όηη ε (non-pipelined) κνλάδα δελ είλαη απαζρνιεκέλε» εμαζθάιηζε όηη ην write port ηνπ register file ζα είλαη δηαζέζηκν όηαλ ζα δεηεζεί RAW:» πεξίκελε κέρξη νη source registers ηεο issuing εληνιήο λα κελ ππάξρνπλ πιένλ ζαλ destinations ζηνπο ελδηάκεζνπο pipeline registers ησλ pipelined κνλάδσλ εθηέιεζεο» π.ρ. γηα ηε κνλάδα FP-add: αλ ε εληνιή ζην ID έρεη ζαλ source ηνλ F2, ηόηε γηα λα κπνξεί λα γίλεη issue, o F2 δε ζα πξέπεη λα ζπγθαηαιιέγεηαη ζηα destinations ησλ ID/A1, A1/A2, A2/A3. WAW:» έιεγμε αλ θάπνηα εληνιή ζηα ζηάδηα Α1,,Α4,D,M1,,M7 έρεη ηνλ ίδην destination register κε απηή ζην ID, θαη αλ λαη, stall-αξε ηελ ηειεπηαία ζην ID Πξνώζεζε: έιεγμε αλ ην destination θάπνηνπ από ηνπο EX/MEM, A4/MEM, M7/MEM, D/MEM, MEM/WB ηαπηίδεηαη κε ηνλ source register θάπνηαο FP εληνιήο, θαη αλ λαη, ελεξγνπνίεζε ηνλ θαηάιιειν πνιππιέθηε 43

Απόδνζε ηνπ multi-cycle FP pipeline stall cycles αλά FP-εληνιή ηα RAW hazard stalls «αθνινπζνύλ» ην latency ηεο αληίζηνηρεο κνλάδαο, π.ρ.: κέζνο #stalls πνπ νθείιεηαη ζηελ MUL.D=2.8 (46% ηνπ latency ηεο FP-Mult) κέζνο #stalls πνπ νθείινληαη ζηελ DIV.D=14.2 (59% ηνπ latency ηεο FP-Div) ηα structural hazards είλαη ζπάληα, επεηδή ηα divides δελ είλαη ζπρλά 44

stalls αλά εληνιή + breakdown Απόδνζε ηνπ multi-cycle FP pipeline από 0.65 κέρξη 1.21 stalls αλά εληνιή θπξηαξρνύλ ηα RAW hazard stalls («FP result stalls») 45

Case-study: MIPS R4000 Pipeline IF IS RF EX DF DS TC WB Instruction Memory Data Memory Branch target and condition eval. Deeper Pipeline (superpipelining): επηηξέπεη πςειόηεξα clock rates Fully pipelined memory accesses (2 cycle delays γηα loads) Predicted-Not-Taken πνιηηηθή Not-taken (fall-through) branch : 1 delay slot Taken branch: 1 delay slot + 2 idle cycles 46

Case-study: MIPS R4000 Pipeline PC selection, initiation of ICache access decode, register read, hazard checking, ICache hit detection 1 st half of DCache access Dcache hit detection IF IS RF EX DF DS TC WB Instruction Memory Data Memory complete ICache access effective address calculation, operation, branchtarget computation, condition evaluation complete DCache access register write-back 47

Load delay (2 cycles) ζηελ πξαγκαηηθόηεηα, ην pipeline κπνξεί λα πξνσζήζεη ηα δεδνκέλα από ηελ cache πξηλ δηαπηζηώζεη αλ είλαη hit ή miss! 48

Branch delay (3 cycles) 49