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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

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

2 Διασωλήνωση (Pipelining) Διασωληνώση: επικαλυπτόμενη εκτέλεση πολλαπλών εντολών σε ένα κύκλο του ρολογιού, όπως σε μια γραμμή συναρμολόγησης Μέθοδος χωρίς διασωλήνωση για πλύσιμο ρούχων. Το κάθε φορτίο απαιτεί 2 ώρες, άρα για 4 φορτία ο συνολικός χρόνος εκτέλεσης είναι 4 x 2 = 8 ώρες Διασωλήνωση 4 ων σταδίων Στάδιο διασωλήνωσης = 1 βήμα της εργασίας Μέθοδος με διασωλήνωση. Το κάθε φορτίο εξακολουθεί να απαιτεί 2 ώρες, αλλά ο συνολικός χρόνος εκτέλεσης μειώνεται σε: Συνολικός χρόνος = χρόνος για 1 φορτίο + (Αρ. φορτίων 1) xχρόνο σταδίου = 2 + 3x0.5 = 3.5 ώρες 2

3 Διασωλήνωση (συν.) Μια εργασία (εντολή) χωρίζεται σε βήματα, τα οποία ονομάζονται στάδια της διασωλήνωσης Το κάθε στάδιο απαιτεί τον ίδιο χρόνο εκτέλεσης Τα διάφορα στάδια μπορούν να διασωλήνωθούν εάν τα στάδια που εκτελούνται ταυτόχρονα δεν χρειάζονται τις ίδιες λειτουργικές μονάδες του μικροεπεξεργαστή Η χρήση διασωλήνωσης βελτιώνει την ικανότητα διεκπεραίωσης (throughput), όχι τον χρόνο εκτέλεσης για μια εργασία Όταν εκτελείται ένας μεγάλος αριθμός εργασιών, δημιουργείται επιτάχυνση (speedup) λόγω της διασωλήνωσης (η επιτάχυνση δεν μπορεί να είναι μεγαλύτερη από τα στάδια της διασωλήνωσης) Για το προηγούμενο παράδειγμα, speedup = (4x2) / (2+3x0.5) = 2.29 Θεωρήστε ένα φορτίο με 100 εργασίες, speedup = (100x2) / (2+99x0.5) =

4 Διασωλήνωση για τον MIPS Ισχύουν οι ίδιοι γενικοί κανόνες. Υπάρχουν 5 βασικά βήματα: 1. Προσκόμιση Εντολής από Μνήμη (Instruction Fetch) 2. Ανάγνωση Καταχωρητών και Αποκωδικοποίηση Εντολής () 3. Εκτέλεση Αριθμητικής Εντολής ή Υπολογισμός Διεύθυνσης (ALU) 4. Προσπέλαση Μνήμης για Δεδομένα (Data access) 5. Ενημέρωση Καταχωρητή Γραφής () Επομένως, η διασωλήνωση έχει 5 στάδια Δεδομένου ενός μεγάλου φορτίου εργασίας (workload) ο επεξεργαστής με διασωλήνωση θα είναι περίπου 5 φορές γρηγορότερος από αυτόν χωρίς διασωλήνωση 4

5 Παράδειγμα Διασωλήνωσης μικροεπεξεργαστή ΜΙPS ενός κύκλου Θυμηθείτε τον επεξεργαστή ενός κύκλου και τις 8 εντολές που εκτελεί: lw,sw,add,sub,and,or,slt,beq Θεωρήστε τις πιο κάτω καθυστερήσεις ανά μονάδα PC 4 Add Write Instruction [25:21] Read Read register 1 address Read Instruction [20:16] data 1 Read 100ps ALUSrc register 2 Zero Instruction 0 [31:0] ALU M Read ALU Write 0 data 2 result Instruction ux Instruction [15:11] register M memory ux 1 Write 1 data isters Dst 200ps Instruction [15:0] 16 Sign 32 extend Shift left 2 ALU control Add ALU result 200ps PCSrc 0 M ux 1 MemWrite Address Write data Data memory MemRead Read data 200ps Memto 1 M ux 0 Συγκρίνετε τον μέσο χρόνο εκτέλεσης ανά εντολή για ένα επεξεργαστή με και χωρίς διασωλήνωση Instruction [5:0] ALUOp 5

6 PCSrc 0 Add M ux 4 Add ALU result 1 Write Shift left 2 PC Read address Instruction [31:0] Instruction memory Instruction [25:21] Instruction [20:16] 0 M ux Instruction [15:11] 1 Dst Read register 1 Read register 2 Write register Write data Read data 1 Read data 2 isters ALUSrc 0 M ux 1 ALU Zero ALU result MemWrite Address Write data Read data Data memory Memto 1 M ux 0 Instruction [15:0] 16 Sign 32 extend ALU control MemRead Instruction [5:0] ALUOp 6

7 Παράδειγμα Διασωλήνωσης μικροεπεξεργαστή ΜΙPS ενός κύκλου (συν.) Η περίοδος του ρολογιού για την υλοποίηση ενός κύκλου ορίζεται από την πιο χρονοβόρα εντολή (800 ps) Κατηγορία Εντολής Instruction Fetch ister read ALU operation Data access ister write Συνολικός Χρόνος Load word (lw) 200ps 100ps 200ps 200ps 100ps 800ps Store word (sw) 200ps 100ps 200ps 200ps ps R-format (add, sub, or, and, slt) 200ps 100ps 200ps ps 600ps Branch (beq) 200ps 100ps 200ps ps Ποιοςείναιοχρόνοςεκτέλεσηςγιατοκάθεστάδιοτης διασωλήνωσης; Ο χρόνος εκτέλεσης για 1 εντολή στον επεξεργαστή με διασωλήνωση; Θεωρήστε ένα φορτίο με 3 εντολές lw 7

8 Παράδειγμα Διασωλήνωσης μικροεπεξεργαστή ΜΙPS ενός κύκλου (συν.) Program execution Time order (in instructions) lw $1, 100($0) lw $2, 200($0) Instruction fetch ALU 800 ps Data access Instruction fetch ALU Data access Συνολικός χρόνος εκτέλεσης = 800ps x3=2400ps lw $3, 300($0) 800 ps Instruction fetch 800 ps Program execution Time order (in instructions) lw $1, 100($0) lw $2, 200($0) Instruction fetch 200 ps Instruction fetch ALU Data access ALU Data access Συνολικός χρόνος εκτέλεσης = 1000ps + (200 x 2ps) = 1400ps lw $3, 300($0) 200 ps Instruction fetch ALU Data access 200 ps 200 ps 200 ps 200 ps 200 ps 8

9 Παράδειγμα διασωλήνωσης μικροεπεξεργαστή ΜΙPS ενός κύκλου (συν.) Χρόνος μεταξύ εντολών pipelined = Χρόνος μεταξύ εντολών nonpipelined # σταδίων διασωλήνωσης Χρόνος μεταξύ εντολών pipelined = 800/5 = 160, άρα δίνει πενταπλή επιτάχυνση Στην πράξη, η διασωλήνωση επιφέρει επιβάρυνση Ο χρόνος ανά εντολή στον επεξεργαστή με διασωλήνωση είναι (i) πάντα μεγαλύτερος από τον μικρότερο δυνατό χρόνο για ένα κύκλο και (ii) η επιτάχυνση είναι πάντα λιγότερη από τον αριθμό των σταδίων της διασωλήνωσης Γιααυτότοπαράδειγμα, speedup = 2400/1400 = 1.7 < 5 Για ένα φορτίο με 1,000,003 εντολές, speedup = 800,002,400/200,001,400 ~ 4 < 5 9

10 Κίνδυνοι Διασωλήνωσης Υπάρχουν 3 κατηγορίες κινδύνων: Δομικοί (Structural): μια εντολή δεν μπορεί να εκτελεστεί στον προγραμματιζόμενο κύκλο διότι ο επεξεργαστής δεν υποστηρίζει το συνδυασμό των εντολών που πρέπει να εκτελεστούν στον ίδιο κύκλο (Τι θα συμβεί αν ο MIPS ενός κύκλου έχει μόνο 1 μονάδα μνήμης αντί για 2;). Εύκολη η λύση για τον MIPS Δεδομένων (Data): μια εντολή δεν μπορεί να εκτελεστεί στον προγραμματιζόμενο κύκλο διότι τα απαιτούμενα δεδομένα δεν είναι ακόμη διαθέσιμα Ελέγχου (Control): μια εντολή δεν μπορεί να εκτελεστεί στον προγραμματιζόμενο κύκλο διότι η εντολή που προσκομίστηκε και μπήκε στο σωλήνα δεν είναι αυτή που θα έπρεπε να είχε προσκομιστεί (δηλ., η ροή των εντολών δεν είναι αυτή που αναμένεται) 10

11 Κίνδυνοι Δεδομένων (Data Hazards) Απορρέουν από την εξάρτηση μιας εντολής στα αποτελέσματα προηγούμενων εντολών, οι οποίες είναι ακόμη μέσα στο σωλήνα Θεωρήστε το πιο κάτω παράδειγμα: add $s0, $t0, $t1 sub $t2, $s0, $t3 Διακρίνετε κάποιο κίνδυνο δεδομένων, δεδομένου ότι η εντολή sub αρχίζει ένα κύκλο μετά την εντολή add; Αναπαράσταση διασωλήνωσης 5 σταδίων: Memory ister ALU Memory ister (Ανάγνωση) (Ανάγνωση) (Τίποτα) (Γραφή) 11

12 Κίνδυνοι Δεδομένων (συν.) Κίνδυνος Δεδομένων! Stall σωλήνα (ή bubble): χρησιμοποιείται για αποφυγή του κινδύνου Θεωρεί ότι κατά τη διάρκεια ενός κύκλου μπορεί να γράψει και να διαβάσει από το ΑΚ 12

13 Κίνδυνοι Δεδομένων (συν.) Υπάρχει εναλλακτικός τρόπος επίλυσης του προηγούμενου κινδύνου, ονομάζεται forwarding ή bypassing. Forwarding (Bypassing): αντί να περιμένουμε για τα απαραίτητα δεδομένα να φτάσουν από τους κανονικούς καταχωρητές (προσβάσιμους από τον προγραμματιστή, μέσω της καθυστέρησης του stall), τα ανακτούμε από εσωτερικούς buffers (καταχωρητές) Επιτρεπτόμόνοαντοστάδιοπροορισμούσυμβαίνεισεμεταγενέστερο χρόνο από το στάδιο προέλευσης. Απαιτεί τροποποιήσεις στο σχεδιασμό Forwarding path 13

14 Κίνδυνοι Δεδομένων (συν.) Για μερικές περιπτώσεις, απαιτείται stall και forward: 14

15 Κίνδυνοι Ελέγχου (Control Hazards) Απορρέουν από εντολές branch, αφού δεν είναι δυνατόν να γνωρίζει ο μικροεπεξεργαστής πια θα είναι η επόμενη εντολή μέχρι τον υπολογισμό της συνθήκης της διακλάδωσης 2 τρόποι επίλυσης: Stall μέχρι τον υπολογισμό της συνθήκης της διακλάδωσης Πρόβλεψη (predict) της επόμενης εντολής και εκτέλεσης της Stall (θεωρεί ότι μπορούν να ελεγχτούν οι καταχωρητές στο 2 ο στάδιο, μαζί με τον υπολογισμό της διεύθυνσης διακλάδωσης και την ενημέρωσης του PC) 15

16 Κίνδυνοι Ελέγχου (συν.) Πρόβλεψη: συνθήκη διακλάδωσης δεν ισχύει Πρόβλεψη: συνθήκη διακλάδωσης ισχύει Υπάρχουν πολλοί και πολύπλοκοι τρόποι πρόβλεψης διακλάδωσης. Σύγχρονες τεχνικές μπορούν να προβλέψουν σωστά γύρω στο 90% 16

17 Διασωλήνωση Διευκολύνεται όταν: Όλες οι εντολές έχουν το ίδιο μήκος Υπάρχουν λίγες διατάξεις εντολών Οι τελεστές μνήμης εμφανίζονται μόνο στις εντολές load και store Είναι πιο δύσκολη όταν υπάρχουν: Δομικοί κίνδυνοι: όταν υπάρχει μόνο μια μονάδα μνήμης Κίνδυνοι Ελέγχου: εντολές διακλαδώσεως Κίνδυνοι Δεδομένων: μια εντολή εξαρτάται από προηγούμενες εντολές Θα υλοποιήσουμε ένα απλό τρόπο διασωλήνωσης και θα εξετάσουμε τα πιο πάνω θέματα Θα αναφερθούμε επίσης σε σύγχρονους μικροεπεξεργαστές και τις δυσκολίες που παρουσιάζουν: Χειρισμό εξαιρέσεων (exceptions) Βελτίωση απόδοσης με εκτέλεση out-of-order, κτλ. 17

18 Βασική Ιδέα Υλοποίησης Διασωλήνωσης IF: Instruction fetch ID: Instruction decode/ register file read EX: Execute/ address calculation MEM: Memory access WB: Write back 4 Ad Shift left 2 ADD Add result PC Address Instruction Instruction memory Read register 1 Read register 2 Write register Write data isters Read data1 Read data2 Zero ALU ALU result Address Read data Data Memory Write data 16 Sign 32 extend 18

19 Πόσες εντολές μπορούν να εκτελούνται ταυτόχρονα; Γεμάτος σωλήνας Δεν μπορούν να εκτελεστούν περισσότερες από 5 εντολές ταυτόχρονα (κατά τη διάρκεια 1 κύκλου) με διασωλήνωση 5 σταδίων 19

20 Βασική Ιδέα Υλοποίησης Διασωλήνωσης (συν.) IF: Instruction fetch ID: Instruction decode/ register file read EX: Execute/ address calculation MEM: Memory access WB: Write back PC 4 Address Ad Instruction Instruction memory Read register 1 Read register 2 Write register Write data isters Read data1 Read data2 Shift left 2 Μπορεί να οδηγήσει σε κίνδυνο ελέγχου ADD Add result Zero ALU ALU result Address Read data Data Memory Write data Ροή εντολών από αριστερά σε δεξιά, εκτός από: 1. Στάδιο γραφής 2. Ενημέρωση PC 16 Sign 32 extend Αφού θέλουμε διασωλήνωση 5-σταδίων διάσπαση διαδρόμου δεδομένων σε 5 στάδια/μέρη Τι πρέπει να προσθέσουμε για να διασπάσουμε τον διάδρομο δεδομένων σε στάδια; Μπορεί να οδηγήσει σε κίνδυνο δεδομένων 20

21 Διαχωρισμός του Διαδρόμου Δεδομένων σε Στάδια Εισαγωγή καινούριων καταχωρητών (δεν είναι προσβάσιμοι από τον προγραμματιστή) για να κρατούν τα δεδομένα, έτσι ώστε κομμάτια του διαδρόμου δεδομένων μπορούν να μοιραστούν κατά τη διάρκεια της εκτέλεσης των εντολών IF/ID ID/EX EX/MEM MEM/WB Καινούριοι καταχωρητές 21

22 Παράδειγμα εντολής Load (lw) 1. Προσκόμιση Εντολής: Ανάγνωση εντολής από μνήμη με τη διεύθυνση του PC και αποθήκευσή της στον καταχωρητή IF/ID. Αύξηση του PC κατά 4 και αποθήκευση στον PC και στον IF/ID (για beq) 2. Αποκωδικοποίηση Εντολής και ανάγνωση αρχείου καταχωρητών (ΑΚ): Ανάγνωση του ΑΚ με τα κατάλληλα πεδία εντολής από τον IF/ID για Read register 1/2 και αποθήκευση του στον ID/EX. Sing-extent και αποθήκευση του offset στον ID/EX, μαζί με το PC+4 22

23 Παράδειγμα εντολής Load (lw) (συν.) 3. Υπολογισμός διεύθυνσης: Η ALU παίρνει τις απαραίτητες τιμές από τον ID/EX (Read register 1 και 32-bit sign-extended offset) και αποθηκεύει το αποτέλεσμα στον EX/MEM 4. Προσπέλαση Μνήμης: Ανάγνωση από την μνήμη με την διεύθυνση που είναι το αποτέλεσμα που υπολογίστηκε από την ALU στο προηγούμενο στάδιο, και αποθήκευση των δεδομένων στον MEM/WB 23

24 Παράδειγμα εντολής Load (lw) (συν.) 5. Γραφή στο ΑΚ: Τα δεδομένα από την μνήμη που αποθηκεύτηκαν στον MEM/WB στο προηγούμενο στάδιο γράφονται στο ΑΚ 24

25 1η ΒασικήΙδέα Κάθε φορά που προχωρεί από ένα στάδιο του σωλήνα στο επόμενο, αποθηκεύεται στον αντίστοιχο εσωτερικό καταχωρητή οποιαδήποτε πληροφορία μπορεί να χρειαστεί από οποιοδήποτε μεταγενέστερο στάδιο 25

26 Παράδειγμα εντολής Store (sw) Στάδια 1, 2 ίδια με lw 1. Προσκόμιση Εντολής: Ανάγνωση εντολής από μνήμη με τη διεύθυνση του PC και αποθήκευσή της στον καταχωρητή IF/ID. Αύξηση του PC κατά 4 και αποθήκευση στον PC και στον IF/ID (για beq) 2. Αποκωδικοποίηση Εντολής και ανάγνωση αρχείου καταχωρητών (ΑΚ): Ανάγνωση του ΑΚ με τα κατάλληλα πεδία εντολής από τον IF/ID για Read register 1/2 και αποθήκευση του στον ID/EX. Sing-extent και αποθήκευση του offset στον ID/EX, μαζί με το PC+4 26

27 Παράδειγμα εντολής Store (sw) (συν.) 3. Υπολογισμός διεύθυνσης: Η ALU παίρνει τις απαραίτητες τιμές από τον ID/EX (Read register 1 και 32-bit signextended offset) και αποθηκεύει το αποτέλεσμα στον EX/MEM. ΗτιμήτουRead register 2 μεταφέρεται από τον ID/EX στον EX/MEM 4. Προσπέλαση Μνήμης: Πρόσβαση στη μνήμη με την διεύθυνση που είναι το αποτέλεσμα που υπολογίστηκε από την ALU στο προηγούμενο στάδιο και αποθήκευση δεδομένων Πουθαβρούμεταδεδομέναπου θα αποθηκευτούν στη μνήμη; 27

28 Παράδειγμα εντολής Store (sw) (συν.) 5. Γραφή στο ΑΚ: Καμία απαραίτητη ενέργεια (παρόλα αυτά η εκτέλεση του είναι απαραίτητη!) 28

29 2η ΒασικήΙδέα Κάθε λογικό στοιχείο (λειτουργική μονάδα) στον διάδρομο δεδομένων (Μνήμες Εντολών και Δεδομένων, ALU, θήρες ανάγνωσης ΑΚ και θήρες γραφής ΑΚ) μπορούν να χρησιμοποιηθούν μόνο σε ένα στάδιο της διασωλήνωσης. Διαφορετικά, μπορεί να δημιουργηθούν δομικοί κίνδυνοι. 29

30 Πρόβλημα Μπορείτε να διακρίνεται κάποιο πρόβλημα, ακόμα και στην απουσία εξαρτώμενων δεδομένων; Ποιες εντολές μπορούν να δημιουργήσουν το πρόβλημα; IF/ID ID/EX EX/MEM MEM/WB 30

31 Διόρθωση Διαδρόμου Δεδομένων Για την εντολή lw, πρέπει ο αριθμός του καταχωρητή γραφής να μεταφέρεται μέσω των καινούριων καταχωρητών στο τελευταίο στάδιο της εντολής (5 ο ) 31

32 Γραφική Αναπαράσταση Διασωλήνωσης Υπάρχουν 2 βασικές γραφικές αναπαραστάσεις: Διάγραμμα Πολλαπλών κύκλων: δίνει τα στάδια της διασωλήνωσης που εκτελούνται για πολλαπλούς κύκλους του ρολογιού (για ένα σύνολο εντολών) Διάγραμμα Ενός κύκλου: δίνει τις λεπτομέρειες στον διάδρομο δεδομένων κατά την διάρκεια ενός κύκλου το ρολογιού Τα διαγράμματα πολλαπλών κύκλων μπορούν να βοηθήσουν για διευκρίνιση των πιο κάτω: Πόσοι κύκλοι απαιτούνται για να εκτελεστεί ένα σύνολο εντολών Τι κάνει η ALU κατά τη διάρκεια κάποιου κύκλου Πως θα σχεδιαστεί ο διάδρομος δεδομένων 32

33 Διάγραμμα Πολλαπλών Κύκλων Θεωρήστε: lw $10, 20($1) sub $11, $2, $3 add $12, $3, $4 lw $12, 24($1) add $14, $5, $6 Παρατηρήστε την προσθήκη των εσωτερικών καταχωρητών μεταξύ των διαφόρων σταδίων 33

34 Η παραδοσιακή αναπαράσταση Το προηγούμενο διάγραμμα περιείχε περισσότερη πληροφορία 34

35 Διάγραμμα Ενός Κύκλου Δείχνει την κατάσταση ολόκληρου του διαδρόμου δεδομένων κατά τη διάρκεια ενός κύκλου του ρολογιού, για όλες τις εντολές που εκτελούνται στο δεδομένο κύκλο Βασικά, αυτό είναι μια κάθετη φέτα του διαγράμματος πολλαπλών κύκλων, με περισσότερη λεπτομέρεια 35

36 Μονάδα Ελέγχου με Διασωλήνωση Πρώτα εξετάζουμε την απλή, «ιδανική», κατάσταση Ξεχωρίζουμε τα σήματα ελέγχου στο διάδρομο δεδομένων (πολλά είναι παρόμοια με αυτά της υλοποίησης χωρίς διασωλήνωση) PC, IF/ID, ID/EX, EX/MEM, MEM/WB πρέπει να μπορούν να ενημερωθούν σε κάθε κύκλο (στάδιο διασωλήνωσης), έτσι δεν χρειάζονται σήματα ελέγχου για γραφή 36

37 Μονάδα Ελέγχου με Διασωλήνωση (συν.) Υπάρχουν 5 στάδια. Τι πρέπει να ελεγχτεί σε κάθε στάδιο; Προσκόμιση Εντολής και Αύξηση PC (PCSrc) Αποκωδικοποίηση Εντολής / Ανάγνωση Καταχωρητών Εκτέλεση (ALUOp, ALUSrc, Zero, Dst) Στάδιο Μνήμης (Branch, MemRead, MemWrite) Γραφή στο ΑΚ (Memto, Write) Πως θα χειριζόμαστε το θέμα του ελέγχου σε ένα εργοστάσιο κατασκευής αυτοκινήτων; Με ένα πολυδάπανο κέντρο ελέγχου που θα λέει στον καθένα τι πρέπει να κάνει και πότε; Ή ένα αυτοματοποιημένο σύστημα που έχει στη βάση του ένα διάγραμμα πεπερασμένων καταστάσεων; 37

38 Μονάδα Ελέγχου με Διασωλήνωση (συν.) Σήματα Ελέγχου για Εκτέλεση/Υπολογισμό Διέυθυνσης (Στάδιο 3) ALU ALU ALU Σήματα Ελέγχου για Προσπέλαση Μνήμης (Στάδιο 4) Mem Mem Σήματα Ελέγχου για Ενημερωση ΑΚ (Στάδιο 5) Κατηγορία Εντολής Dst Op1 Op0 Src Branch Read Write write R-format lw sw X X beq X X Τα σήματα ελέγχου μεταφέρονται από στάδιο σε στάδιο, όπως τα υπόλοιπα απαραίτητα δεδομένα WB Mem to Instruction Control M WB EX M WB IF/ID ID/EX EX/MEM MEM/WB 38

39 Διάδρομος Δεδομένων με Μονάδα Ελέγχου 39

40 Εξάρτηση (Dependency) Κίνδυνοι Δεδομένων Μπορεί να δημιουργηθεί πρόβλημα όταν μια εντολή ξεκινήσει να εκτελείται πριν την εκπλήρωση κάποιας άλλης Οι εξαρτήσεις που «προχωρούν πίσω στο χρόνο» είναι βασικά κίνδυνοι δεδομένων Οι 4 τελευταίες εντολές εξαρτώνται από το αποτέλεσμα του καταχωρητή $2 από την 1 η εντολή Time (in clock cycles) Value of CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9 register $2: / Program execution order (in instructions) sub $2, $1, $3 IM DM Θεωρήστε ότι ο $2 είχε την τιμή 10 πριν την εντολή sub και -20 μετά την sub and $12, $2, $5 or $13, $6, $2 IM IM DM DM Data hazard Data hazard Ηεξάρτησημεταξύτων sub και add μπορεί να αφαιρεθεί αν το ΑΚ σχεδιαστεί ώστε να επιτρέπει ανάγνωση και γραφή σε 1 κύκλο add $14, $2, $2 sw $15, 100($2) IM IM DM DM Data hazard 40

41 Λύση βάση Λογισμικού (Software Solution) Ο μεταγλωττιστής αποτρέπει τη δημιουργία κινδύνων Που εισάγουμε nops (μια εντολή που δεν κάνει καμία πράξη που να αλλάζει την κατάσταση του επεξεργαστή); sub $2, $1, $3 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15, 100($2) 41

42 Λύση βάση Λογισμικού (Software Solution) Ο μεταγλωττιστής αποτρέπει τη δημιουργία κινδύνων Που εισάγουμε nops (μια εντολή που δεν κάνει καμία πράξη που να αλλάζει την κατάσταση του επεξεργαστή); sub $2, $1, $3 nops nops and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15, 100($2) Πρόβλημα: Αυξάνει τον χρόνο εκτέλεσης κατά 2 κύκλους! 42

43 Προώθηση (Forwarding) Χρήση προσωρινών αποτελεσμάτων, χωρίς να περιμένει να γραφτούν στοαρχείοκαταχωρητών(ακ): Προώθηση στην ALU (ALU forwarding) Προώθηση στο ΑΚ για χειρισμό read/write στον ίδιο καταχωρητή (ister File forwarding) Time (in clock cycles) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9 Value of register $2: / Value of EX/MEM: X X X 20 X X X X X Value of MEM/W B: X X X X 20 X X X X Program execution order (in instructions) sub $2, $1, $3 IM DM and $12, $2, $5 IM DM Προώθηση στην ALU από EX/MEM or $13, $6, $2 IM DM Προώθηση στην ALU από MEM/WB add $14,$2, $2 IM DM Προώθηση στο ΑΚ sw $15, 100($2) IM DM Τιθαγινόταναναντίγια$2 είχαμε $13; 43

44 Υλοποίηση Προώθησης Pipeline_ister.Instruction_ister υποδηλώνει την τιμή ενός καταχωρητή που ορίζεται σε μια εντολή (rs, rt, ή rd) και που είναι αποθηκεμένη σε ένα από τους καινούριους καταχωρητές (IF/ID, ID/EX, EX/MEM, MEM/WB). Π.χ., EX/MEM.isterRd (= rd στον EX/MEM) ID/EX.isterRs (= rs στον ID/EX) ID/EX.isterRt (= rt στον ID/EX) Για την υλοποίηση προώθησης στην ALU: 1. ID/EX.isterRs = EX/MEM.isterRd υποδηλώνει ένα κίνδυνο δεδομένων στο στάδιο EX, όπου ο 1 ος τελεστής της ALU βρίσκεται στον EX/MEM.isterRd, και όχι στον ID/EX.isterRs 2. ID/EX.isterRt = MEM/WB.isterRd υποδηλώνει ένα κίνδυνο δεδομένων στο στάδιο MEM, όπου ο 2 ος τελεστής βρίσκεται στον MEM/WB.isterRd, και όχι στον ID/EX.isterRs 3. 44

45 Υλοποίηση Προώθησης (συν.) Είναι πάντα απαραίτητη η προώθηση; Χρειάζεται μόνο όταν το σήμα Write είναι ενεργοποιημένο. Γιατί; Επίσης, για τον MIPS, όταν ένας από τους τελεστές είναι ο καταχωρητής $0 η αντίστοιχη τιμή που χρησιμοποιείται είναι πάντα το μηδέν (δεν είναι ανάγκη να προωθηθεί ο $0) Οι είσοδοι της ALU πρέπει να έρθουν από πολυπλέκτες οι οποίοι επιλέγουνναπροωθήσουνότανείναιαπαραίτητο Συνθήκη Ανίχνευσης Κινδύνων στο στάδιο EX και σήματα ελέγχου που πρέπει να ενεργοποιηθούν: Ανίχνευση Κινδύνων EX και Προώθηση if (EX/MEM.Write) and (EX/MEM.isterRd 0) and (EX/MEM.isterRd = ID/EX.isterRs)) ForwardA = 10 if (EX/MEM.Write) and (EX/MEM.isterRd 0) and (EX/MEM.isterRd = ID/EX.isterRt)) ForwardB = 10 45

46 Υλοποίηση Προώθησης (συν.) Συνθήκη Ανίχνευσης Κινδύνων στο στάδιο ΜΕΜ και σήματα ελέγχου που πρέπει να ενεργοποιηθούν: Ανίχνευση Κινδύνων MEM και Προώθηση if (MEM/WB.Write) and (MEM/WB.isterRd 0) and (MEM/WB.isterRd = ID/EX.isterRs)) ForwardA = 01 if (MEM/WB.Write) and (MEM/WB.isterRd 0) and (MEM/WB.isterRd = ID/EX.isterRt)) ForwardB = 01 46

47 Υλοποίηση Προώθησης (συν.) Θεωρήστε μόνο τις εντολές add, sub, or, and για προώθηση Σήμα Επιλογής MUX ForwardA=00 ForwardA=10 ForwardA=01 ForwardB=00 ForwardB=10 ForwardB=01 Τι λείπει; Πηγή ID/EX EX/MEM MEM/WB ID/EX EX/MEM MEM/WB Μονάδα Προώθησης 47

48 Υλοποίηση Προώθησης (συν.) Τι θα συμβεί αν έχουμε την πιο κάτω ακολουθία εντολών; add $s1, $s1, $s2 add $s1, $s1, $s3 add $s1, $s1, $s4 # $s1=$s1+$s2+$s3+$s4 Θα δουλέψει αυτό; Αυτό; 48

49 Υλοποίηση Προώθησης (συν.) Η συνθήκη ανίχνευσης κινδύνων στο στάδιο MEM πρέπει να περιλαμβάνει και την πιο κάτω προϋπόθεση: Ανίχνευση Κινδύνων MEM και Προώθηση if (MEM/WB.Write) and (MEM/WB.isterRd 0) and (EX/MEM.isterRd ID/EX.isterRs) and (MEM/WB.isterRd = ID/EX.isterRs)) ForwardA = 01 if (MEM/WB.Write) and (MEM/WB.isterRd 0) and (EX/MEM.isterRd ID/EX.isterRt) and (MEM/WB.isterRd = ID/EX.isterRt)) ForwardB = 01 49

50 Υλοποίηση Προώθησης (συν.) ID/EX WB EX/MEM Control M WB MEM/WB IF/ID EX M WB M ux PC Instruction memory Instruction isters M ux ALU Data memory M ux IF/ID.isterRs IF/ID.isterRt IF/ID.isterRt IF/ID.isterRd Rs Rt Rt Rd M ux EX/MEM.isterRd Forwarding unit MEM/WB.isterRd 50

51 Η προώθηση δεν είναι πάντα δυνατή Ηεντολήlw μπορεί ακόμη να προκαλέσει κίνδυνο: Μια εντολή προσπαθεί να διαβάσει ένα καταχωρητή. Στο προηγούμενο στάδιο υπάρχει μια εντολή lw που γράφει στον ίδιο καταχωρητή. Εξαρτήσεις/κίνδυνοι Λύση με Προώθηση Εξακολουθεί να παρουσιάζει κίνδυνο Επομένως, χρειάζεται μια μονάδα ανίχνευσης κινδύνων που να καθυστερεί (με stall ) την εντολή lw 51

52 Υλοποίηση για Stall Απαιτεί μια μονάδα ανίχνευσης κινδύνων (hazard detection unit) (επιπρόσθετα της μονάδας προώθησης) που λειτουργεί κατά τη διάρκεια του σταδίου ID (2 ο στάδιο) και εισάγει stall όπου χρειάζεται Ανίχνευση Κινδύνων και Stalling if (ID/EX.MemRead and ( (ID/EX.isterRt = IF/ID.isterRs) or (ID/EX.isterRt = IF/ID.isterRt) ) ) stall the pipeline Για πιο εντολή θα ισχύει η πιο πάνω συνθήκη; 52

53 Παράδειγμα με Stall Μπορούμε να εισάγουμε καθυστέρηση (stall) με το να «κρατήσουμε» μια εντολή στο ίδιο στάδιο Time (in clock cycles) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9 CC 10 Program execution order (in instructions) Κρατάμε όλες τις πληροφορίες πριν το stall Από-ενεργοποίηση όλων των σημάτων ελέγχου lw $2, 20($1) and becomes nop and add $4, $2, $5 IM IM IM DM DM bubble DM Δημιουργείται κανένα πρόβλημα με τον PC ήτονif/id λόγω του stall? or $8, $2, $6 IM DM add $9, $4, $2 IM DM Πόσοι κύκλοι χρειάζονται για την κάθε εντολή; 53

54 Υλοποίηση για Stall (συν.) Stall: αφήνει μια εντολή που δεν γράφει πουθενά να προχωρήσει 54

55 Κίνδυνοι Διακλαδώσεως ή Ελέγχου (Branch or Control Hazards) Μέχρι να υπολογιστεί η συνθήκη της διακλάδωσης, κάποιες εντολές έχουν ήδη αρχίσει να εκτελούνται! Η συνθήκη της διακλάδωσης δεν υπολογίζεται μέχρι το στάδιο MEM οι επόμενες 3 εντολές φορτώνονται ανεξάρτητα της συνθήκης! Time (in clock cycles) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9 Program execution order (in instructions) 40 beq $1, $3, 28 IM DM 44 and $12, $2, $5 IM DM 48 or $13, $6, $2 IM DM 52 add $14, $2, $2 IM DM lw $4, 50($7) IM DM Προβλέπουμε ότι η συνθήκη της διακλάδωσης δεν ισχύει ( branch not taken ) Πρέπει να προσθέσουμε υλικό για να ξεφορτωθούν (flush) οι 3 εντολές, αν η πρόβλεψη είναι λανθασμένη 55

56 Κίνδυνοι Διακλαδώσεως (συν.) Μπορούμε να μειώσουμε τον αριθμό των εντολών που πρέπει να ξεφορτωθούν λόγω λανθασμένης πρόβλεψης Η εκτέλεση λειτουργιών για branch (υπολογισμός διεύθυνσης και συνθήκης διακλάδωσης) μετακινείται σε προηγούμενα στάδια (πριν το στάδιο MEM) Μπορούμε να μετακινήσουμε τον υπολογισμό της συνθήκης διακλάδωσης στο στάδιο ID; Ο υπολογισμός της συνθήκης διακλάδωσης κατά τη διάρκεια του σταδίου ID μπορεί να δημιουργήσει κινδύνους: Απαιτείται προώθηση σε καινούρια λογική που θα υπολογίζει τη συνθήκη (μέχρι στιγμής, η προώθηση γινόταν στον ALU) Πιθανόν να συνεχίσει να χρειάζεται stall (πχ. ALU εντολή αμέσως πριν την εντολή διακλάδωσης) 56

57 Γρηγορότερη απόφαση διακλαδώσεως 57

58 Απόρριψη Εντολών (Flushing) IF.Flush Hazard detection unit ID/EX WB EX/MEM Control 0 M u x M WB EX/MEM IF/ID + EX M WB + M u x PC 4 Instruction memory Shift left 2 isters = M u x M u x ALU Data memory M u x Αν IF.Flush ενεργό τότε IF/ID=0 (= sll $0,$0,0) Επομένως, η εντολή μετά τη διακλάδωση απορρίπτεται λόγω λανθασμένης πρόβλεψης Sign extend M u x Fowarding unit 58

59 Πρόβλεψη Διακλάδωσης (Branch Prediction) Αν η συνθήκη διακλάδωσης ισχύει (δηλ. έχουμε λανθασμένη πρόβλεψη), έχουμε ποινή ενός κύκλου Για τον απλό σχεδιασμό που έχουμε δει, αυτή η ποινή θεωρείται λογική Για πιο βαθιές διασωληνώσεις (με μεγαλύτερο αρ. σταδίων), η ποινή αυξάνεται και αυτή η μέθοδος στατικής πρόβλεψης μπορεί να επιφέρει δραστική επιβάρυνση στην απόδοση Λύση: Δυναμική Πρόβλεψη Διακλάδωσης (Dynamic Branch Prediction) Εξετάζει την διεύθυνση της εντολής για να δει αν η συνθήκη διακλάδωσης ίσχυε ή όχι, την προηγούμενη φορά που εκτελέστηκε ηεντολή. Αν ναι, τότε προβλέπει ότι η συνθήκη θα έχει το ίδιο αποτέλεσμα όπως την προηγούμενη(ες) φορά(ες). 59

60 Δυναμική Πρόβλεψη Διακλάδωσης Απομονωτής Πρόβλεψης Διακλάδωσης (Branch prediction buffer ή branch history table): μνήμη (απλά μερικά bits) που υποδεικνύουν αν η συνθήκη διακλάδωσης ίσχυε πρόσφατα. Ισχύει Πρόβλεψη: Συνθήκη Ισχύει Δεν Ισχύει Δεν Ισχύει Πρόβλεψη: Ισχύει Συνθήκη Δεν Ισχύει Μέθοδος Πρόβλεψης με 1 bit Θεωρήστε μια εντολή διακλάδωσης σε βρόγχο. Όταν αρχίζει ο βρόγχος, η συνθήκη διακλάδωσης ισχύει 9 φορές (συνεχόμενες), μετά δεν ισχύει (βγαίνει από το βρόγχο) για μια φορά. Ο βρόγχο επαναλαμβάνεται Ποιο είναι το ποσοστό (%) όπου ισχύει η συνθήκη διακλάδωσης; Ποιο είναι το ποσοστό (%) ορθής πρόβλεψης της διακλάδωσης; 60

61 Δυναμική Πρόβλεψη Διακλάδωσης (συν.) Η μέθοδος πρόβλεψης διακλάδωσης με 2 bits έχει μεγαλύτερη ακρίβεια: μια πρόβλεψη πρέπει να είναι λανθασμένη δύο συνεχόμενες φορές προτού να αλλάξει Ισχύει Δεν Ισχύει Πρόβλεψη: Συνθήκη Ισχύει Ισχύει Πρόβλεψη: Συνθήκη Ισχύει Ισχύει Πρόβλεψη: Συνθήκη Δεν Ισχύει Θεωρήστε μια εντολή διακλάδωσης σε βρόγχο. Όταν αρχίζει ο βρόγχος, η συνθήκη διακλάδωσης ισχύει 9 φορές (συνεχόμενες), μετά δεν ισχύει (βγαίνει από το βρόγχο) για μια φορά. Ο βρόγχο επαναλαμβάνεται Ποιο είναι το ποσοστό (%) όπου ισχύει η συνθήκη διακλάδωσης; Ποιο είναι το ποσοστό (%) ορθής πρόβλεψης της διακλάδωσης; Δεν Ισχύει Ισχύει Δεν Ισχύει Πρόβλεψη: Συνθήκη Δεν Ισχύει Δεν Ισχύει Μέθοδος Πρόβλεψης Διακλάδωσης με 2 bits 61

62 Πρόβλεψη Διακλάδωσης (συν.) Υπάρχουν πολύπλοκες τεχνικές: Branch target buffer Correlating predictors Tournament predictors Branch delay Οι τεχνικές πρόβλεψης διακλάδωσης είναι πολύ σημαντικές, ειδικά αφού επιτρέπουν σε άλλες, πιο προχωρημένες, μεθόδους διασωλήνωσης να αυξήσουν την απόδοσή τους! Οι σύγχρονοι επεξεργαστές προβλέπουν ορθά γύρω στο 95% των περιπτώσεων! 62

63 Εξαιρέσεις (Exceptions) Θυμηθείτε ότι οι εξαιρέσεις δεν είναι τίποτα άλλο από ένα άλλο είδος κινδύνων ελέγχου (control hazards) Θεωρείστε ότι η πιο κάτω εντολή προκαλεί εξαίρεση για αριθμητική υπερχείλιση: add $s1, $s2, $s1 Η ροή του προγράμματος ΠΡΕΠΕΙ να μεταφερθεί στην ρουτίνα εξαιρέσεων αμέσως μετά την εντολή add Απόρριψη (flush) εντολών που έχουν ξεκινήσει να εκτελούνται μετά την add Προσκόμιση εντολών από την ρουτίνα εξαιρέσεων Στη περίπτωση των κινδύνων διακλάδωσης, η απόρριψη συμβαίνει μόνο στο στάδιο IF (IF.Flush asserted), επομένως μόνο 1 εντολή χρειάζεται να απορριφθεί. Για αριθμητική υπερχείλιση, 3 εντολές πρέπει να απορριφθούν, από τα στάδια IF, ID, και EX 63

64 Απόρριψη εντολών λόγω εξαίρεσης εντολή i: add εντολή i+1: εντολή i+2: Η add προκαλεί αριθμητική υπερχείλιση η οποία ανιχνεύεται κατά τη διάρκεια του σταδίου EX. Οι εντολές i i+2 πρέπει να απορριφθούν και οι εντολές της ρουτίνας εξαιρέσεων πρέπει να εκτελεστούν εντολή i: εντολή i+1 εντολή i+2 add Flush, όχι Stall 1 η εντολή από ρουτίνα εξαιρέσεων 64

65 Θυμηθείτε τις απαραίτητες αλλαγές για χειρισμό εξαιρέσεων Για το χειρισμό των εξαιρέσεων χρειαζόμαστε 2 καινούριους καταχωρητές: EPC: κρατά τη διεύθυνση της επηρεαζόμενης εντολής Cause: το λιγότερο σημαντικό bit κωδικοποιεί τις 2 δυνατές εξαιρέσεις (0=ανύπαρκτη εντολή, 1=αριθμητική υπερχείλιση) Επίσης, 3 καινούρια σήματα ελέγχου EPCWrite: για να γραφτεί η διεύθυνση της τρέχουσας εντολής στον EPC CauseWrite: γράφει τον τύπο της εξαίρεσης (0 ή 1) στον Cause IntCause: επιλέγει τον τύπο της εξαίρεσης που πρέπει να γραφτεί στον Cause (σήμα επιλογής ενός καινούριου 2-επί-1 πολυπλέκτη) Δράση που ακολουθείται στην ανίχνευση εξαιρέσεως: 1. Θέτει την τιμή του καταχωρητή Cause (0 ή1) 2. Φύλαξη του αρχικού PC στον EPC 3. Γραφή της διεύθυνσης της εξαίρεσης ( hex in MIPS, hex για τον SPIM) στον PC 65

66 Μετατροπή Διαδρόμου Δεδομένων για Εξαιρέσεις IF.Flush ID.Flush EX.Flush Hazard detection unit M u x PC 4 + Instruction memory IF/ID Control Shift left isters M u x = ID/EX WB M EX Cause EPC M u x M u x 0 M ux EX/MEM M WB u x 0 0 M ALU Data memory MEM/WB WB M u x Sign extend Ποια είναι η τιμή του EPC; 0 M u x Forwarding unit 66

67 Παράδειγμα Θεωρήστε την πιο κάτω ακολουθία εντολών: 40 hex sub $11, $2, $4 44 hex and $12, $2, $5 48 hex or $13, $2, $6 4C hex add $1, $2, $1 # υπερχείλιση 50 hex slt $15, $6, $7 54 hex lw $16, 50($7) Εντολές που καλούνται λόγω της υπερχείλισης: hex sw $25, 1000($s0) hex sw $26, 1004($s0) Δείξετε τι συμβαίνει χρησιμοποιώντας διαγράμματα ενός κύκλου 67

68 Παράδειγμα (συν.) Η υπερχείλιση ενεργοποιεί όλα τα σήματα Flush, προς στο τέλος του κύκλου ΕΧ ανιχνεύει την υπερχείλιση, γράφει στον EPC (PC+4) και στον PC ( ) 68

69 Παράδειγμα (συν.) η εντολή ρουτίνας εξαίρεση lw flushed slt flushed add flushed or τελειώνει 69

70 Βελτίωση Απόδοσης Αποφυγή των stalls! Π.χ., αλλάξετε τη σειρά των πιο κάτω εντολών, έτσι ώστε να μειωθεί ο αριθμός των stall, χωρίς να αλλάξει το αποτέλεσμα του προγράμματος: lw $t0, 0($t1) lw $t2, 4($t1) sw $t2, 0($t1) sw $t0, 4($t1) Δυναμικός Χρονοπρογραμματισμός Διασωλήνωσης (Dynamic Pipeline Scheduling) Το υλικό ορίζει την εντολή που θα ξεκινήσει στον επόμενο κύκλο Εκτελεί εντολές εκτός σειράς (out of order execution), π.χ., δεν περιμένει να επιλυθεί και προχωρά με άλλες εντολές Κερδοσκοπεί στις διακλαδώσεις και κρατά το σωλήνα γεμάτο (πιθανόν να χρειαστεί να ακυρώσει εντολές αν η πρόβλεψη είναι λανθασμένη) Αξιοποίηση παράλληλης εκτέλεσης εντολών (Instruction-Level Parallelism - ILP) 70

71 Προχωρημένες έννοιες διασωλήνωσης Αύξηση των σταδίων (depth) Περισσότερες από 1 εντολές αρχίζουν να εκτελούνται σε κάθε κύκλο (multiple issue) Ξετύλιγμα Βρόγχων (Loop unrolling) για περισσότερο ILP (καλύτερος χρονοπρογραμματισμός) Επεξεργαστές Superscalar DEC Alpha 21264: διασωλήνωσης 9 σταδίων, 6 σωλήνες (pipes) Όλοι οι σύγχρονοι επεξεργαστές είναι superscalar και έχουν πολλαπλούς σωλήνες (issue multiple instructions) VLIW (Very Long Instruction Word): στατικό multiple issue (βασίζεται περισσότερο στην τεχνολογία του μεταγλωττιστή) Αυτό το μάθημα σας παρέχει το βασικό υπόβαθρο, γιαναμπορείτε να μάθετε περισσότερα! 71

72 Σύγκριση Απόδοσης Η διασωλήνωση δεν βελτιώνει το χρόνο εκτέλεσης, αλλά την ικανότητα διεκπεραίωσης (throughput) Deeply pipelined Multiple issue with deep pipeline (Section 6.10) Multicycle (Section 5.5) Pipelined Multiple-issue pipelined (Section 6.9) Single-cycle (Section 5.4) Slower Instructions per clock (IPC = 1/CPI) Faster 72

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Διάλεξη 11 Προώθηση (Forwarding) ΗΥ 3 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη Προώθηση (Forwarding) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων (HY3) Η μέχρι τώρα μικρο-αρχιτεκτονική του MIPS ID/EX PCSrc Control WB

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 1. Πλυντήριο. 2. Στεγνωτήριο. 3. ίπλωµα. 4. αποθήκευση. προσέγγιση για 4. Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή Time 6 PM 7 8 9 10 11 12 1 2 AM 1. Πλυντήριο 2. Στεγνωτήριο 3. ίπλωµα 4. αποθήκευση Task order A B C D Σειριακή προσέγγιση για 4 φορτία =8h 30 min κάθε «φάση»

Διαβάστε περισσότερα

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

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath O επεξεργαστής: Η δίοδος δεδοµένων (path) και η µονάδα ελέγχου (control) Σχεδίαση path 4 κατηγορίες εντολών: Αριθµητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη µνήµη (lw, sw) I

Διαβάστε περισσότερα

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

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline) Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών

Διαβάστε περισσότερα

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

Σχεδίαση μονάδας ελέγχου επεξεργαστή Σχεδίαση μονάδας ελέγχου επεξεργαστή Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 29-2 Νεκτάριος Κοζύρης nkoziris@cslab.ece.ntua.gr http://www.cslab.ece.ntua.gr/courses/comparch/ Datapath ενός

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) Δευτέρα, 3 Νοεμβρίου 25 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 3 ΛΕΠΤΑ Για πλήρη

Διαβάστε περισσότερα

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

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMMY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις Άσκηση 1: Διασωλήνωση

Διαβάστε περισσότερα

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

Τέτοιες λειτουργίες γίνονται διαμέσου του Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: Προσκόμιση της εντολής (fetch) από τη θέση που δείχνει ο PC Ανάγνωση των περιεχομένων ενός ή δύο καταχωρητών Τέτοιες λειτουργίες γίνονται διαμέσου

Διαβάστε περισσότερα

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

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

Επανάληψη Σύστημα Διασωλήνωσης (Pipelining) Κεφάλαιο 4 - Σύστημα ιασωλήνωσης Επανάληψη Σύστημα Διασωλήνωσης (Pipelining) 1 ιασωλήνωση 2 Pipelining Παραλληλισμός + Pipelining 3 Χρόνος Εκτέλεσης = I x CPI x Cycle Time Με ή χωρις pipeline το Ι είναι το ίδιο όπως και τo CPI = 1. Το

Διαβάστε περισσότερα

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

Κεντρική Μονάδα Επεξεργασίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

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

Παραλληλισμός σε επίπεδο εντολών Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

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

Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή 1. Πλυντήριο 2. Στεγνωτήριο 3. ίπλωµα 4. αποθήκευση Time Task order A B C D 6 PM 7 8 9 10 11 12 1 2 AM Σειριακή προσέγγιση για 4 φορτία =8h 30 min κάθε «φάση»

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Single Cycle Datapath http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Pipelined Datapath, Hazards and Forwarding

Pipelined Datapath, Hazards and Forwarding Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης Pipelined Datapath, Hazards and Forwarding Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κεφάλαιο 4. Ο επεξεργαστής Κεφάλαιο 4 Ο επεξεργαστής Εισαγωγή Παράγοντες απόδοσης της CPU Πλήθος εντολών Καθορίζεται από την αρχιτεκτονική συνόλου εντολών και το μεταγλωττιστή CPI και Χρόνος κύκλου Καθορίζεται από το υλικό της CPU

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Συστήματα σε Ολοκληρωμένα Κυκλώματα Συστήματα σε Ολοκληρωμένα Κυκλώματα Κεφάλαιο 4: Αρχιτεκτονική των Embedded Μικροεπεξεργαστών Διδάσκων: Καθηγητής Οδυσσέας Κουφοπαύλου Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών ΕΙΣΑΓΩΓΗ Παρουσιάζεται

Διαβάστε περισσότερα

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Διοχέτευση Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Διοχέτευση Αρης Ευθυμίου Το σημερινό μάθημα Υπόβαθρο: Διοχέτευση (Pipelining) Βασική οργάνωση Δομικοί κίνδυνοι Κίνδυνοι δεδομένων (hazards): RAW, WAR, WAW Stall

Διαβάστε περισσότερα

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

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

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

Διοχέτευση (Pipeline) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη Διοχέτευση (ipeline) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Θέματα Απόδοσης Αν και απλή, η υλοποίηση ενός κύκλου ρολογιού είναι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Η υπολογιστική

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) Σάββατο, 26 Νοεμβρίου 2016 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 120 ΛΕΠΤΑ 1) Υλοποίηση

Διαβάστε περισσότερα

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Multi Cycle Datapath http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό

Διαβάστε περισσότερα

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

Διαβάστε περισσότερα

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

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη. Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης! Single-cyle υλοποίηση: Διάρκεια κύκλου ίση με τη μεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαμηλή απόδοση! Αντιβαίνει με αρχή: Κάνε την πιο απλή περίπτωση γρήγορη (ίσως και εις βάρος των πιο «σύνθετων»

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

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

Υλοποίηση Mικροεπεξεργαστή MIPS -16 Υλοποίηση Mικροεπεξεργαστή MIPS -16 Διάδρομος Δεδομένων και Μονάδα Ελέγχου 1 Περίληψη Μνήμη RAM Εκτέλεση εντολών με πολλαπλούς κύκλους Σχεδιασμός Διαδρόμου Δεδομένων (Data Path) Καταχωρητής Εντολών (Instruction

Διαβάστε περισσότερα

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

Τελική Εξέταση, Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 Τελική Εξέταση, Απαντήσεις/Λύσεις Άσκηση 1: Assembly για

Διαβάστε περισσότερα

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

Κάθε functional unit χρησιµοποιείται µια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης! Single-cyle υλοποίηση: ιάρκεια κύκλου ίση µε τη µεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαµηλή απόδοση! Αντιβαίνει µε αρχή: Κάνε την πιο απλή περίπτωση γρήγορη (ίσως και εις βάρος των πιο «σύνθετων»

Διαβάστε περισσότερα

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

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ: ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ονοματεπώνυμο: ΑΜ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (τμήμα Μ - Ω) Κανονική εξεταστική Φεβρουαρίου

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ Γιώργος Δημητρίου Μάθημα 5 ο ΠΜΣ Εφαρμοσμένη Πληροφορική ΣΥΝΟΛΙΚΗ ΔΟΜΗ ΚΜΕ Μία ή περισσότερες μονάδες αριθμητικών και λογικών πράξεων Μονάδα ολίσθησης Φάκελος καταχωρητών γενικού

Διαβάστε περισσότερα

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

Θέµατα Φεβρουαρίου Θέµατα Φεβρουαρίου 2-2 cslab@ntua 2- Θέµα ο (3%): Έστω η παρακάτω ακολουθία εντολών που χρησιµοποιείται για την αντιγραφ από µια θέση µνµης σε µια άλλη (memory-to-memory copy): lw $2, ($) sw $2, 2($) i)

Διαβάστε περισσότερα

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

Application Operating System. Datapath & Control/Memory. Digital Design Circuit Design. Layout Application Operating System Λογισμικό Oργάνωση Μικρο- Αρχιτεκτονική Compiler Firmware Instr. Set Proc. I/O system Datapath & Control/Memory Digital Design Circuit Design Layout Instruction Set Architecture

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική

Διαβάστε περισσότερα

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

Εισαγωγή. Σύνοψη βασικών εννοιών, 5-stage pipeline, επεκτάσεις για λειτουργίες πολλαπλών κύκλων Εισαγωγή Σύνοψη βασικών εννοιών, 5-stage pipeline, επεκτάσεις για λειτουργίες πολλαπλών κύκλων 1 Παράγοντες που επηρεάζουν την επίδοση της CPU CPU time = Seconds = Instructions Cycles Seconds --------------

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Άσκηση IF ID EX MEM WB α. 300ps 400ps 350ps 500ps 100ps β. 200ps 150ps 120ps 190ps 140ps Άσκηση 4.12 Στην άσκηση αυτή, εξετάζουµε την επίδραση της διοχέτευσης στο χρόνο κύκλου ρολογιού του επεξεργαστή. Τα προβλήµατα αυτής της άσκησης θεωρούν ότι τα µεµονωµένα στάδια της διαδροµής δεδοµένων

Διαβάστε περισσότερα

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

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι Γ. Τσιατούχας 2 ο Κεφάλαιο ιάρθρωση 1. Οργάνωση της 2. εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) Δείγμα Τελικής Εξέτασης στο ΗΜΥ213 Διδάσκοντας: Γιώργος Ζάγγουλος Οδηγίες Διαβάστε Προσεκτικά! Αυτή η εξέταση γίνεται με

Διαβάστε περισσότερα

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ Γιώργος Δημητρίου Μάθημα 7 ο ΠΜΣ Εφαρμοσμένη Πληροφορική ΔΙΑΔΟΧΙΚΕΣ ΔΙΑΔΙΚΑΣΙΕΣ Σειριακή εκτέλεση, χωρίς καμία επικάλυψη: 50ns 100ns Δ1 Χρόνος Δ2 Δ3 Συνολικός χρόνος ολοκλήρωσης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 6-7 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

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

ΠΛΕ- 027 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου ΠΛΕ- 27 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου Αρης Ευθυμίου Δομή σύγχρονων υπολογιστών Κώδικας μηχανής Αρχιτεκτονικό συνόλο εντολών (InstrucDon Set Architecture ISA)

Διαβάστε περισσότερα

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 6ο μάθημα: χρονοπρογραμματισμός, αλγόριθμος Tomasulo, εικασία Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου InstrucDon- Level

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 4ο μάθημα: Διοχέτευση (Pipelining), μέρος 2 ο κίνδυνοι ελέγχου, υλοποίηση, διακοπές, εργασίες πολλών κύκλων Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Γιώργος Δημητρίου Ενότητα 3 η : Μερική Επικάλυψη Μερική Επικάλυψη Μηχανισμός μερικής επικάλυψης εντολών Εξαρτήσεις Κίνδυνοι (hazards) Παροχέτευση Πρόβλεψη διακλαδώσεων Μερική επικάλυψη σε μονάδες εκτέλεσης

Διαβάστε περισσότερα

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

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Προχωρημένες Τεχνικές Pipelining. Ιάκωβος Μαυροειδής ΗΥ425 Αρχιτεκτονική Υπολογιστών Προχωρημένες Τεχνικές Pipelining. Ιάκωβος Μαυροειδής WB Data Imm Επεξεργαστής DLX Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc Memory Access Write Back

Διαβάστε περισσότερα

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

Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών 1 Περιορισμοί των βαθμωτών αρχιτεκτονικών Μέγιστο throughput: 1 εντολή/κύκλο ρολογιού (IPC 1) Υποχρεωτική ροή όλων των (διαφορετικών) τύπων εντολών μέσα από

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ ΑΣ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ ΙΚΩΝ Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.ece.ntua.gr

Διαβάστε περισσότερα

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

Διαβάστε περισσότερα

(Branch Prediction Mechanisms)

(Branch Prediction Mechanisms) Μέθοδοι Πρόβλεψης Διακλαδώσεων (Branch Prediction Mechanisms) 1 Εντολές Διακλάδωσης Περίπου 20% των εντολών είναι εντολές διακλάδωσης Πολλά στάδια μεταξύ υπολογισμού του επόμενου PC και εκτέλεσης του branch

Διαβάστε περισσότερα

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

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

Διαβάστε περισσότερα

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

Κεφάλαιο 4: Pipelining 75 Κεφάλαιο 4: Pipelining 75 4. Pipelining Το pipelining (στα ελληνικά ορισμένες φορές καλείται σωλήνωση αλλά θα αποφύγουμε τη χρήση αυτού του όρου εδώ) είναι η λειτουργία κατά την οποία η εκτέλεση μιας διαδικασίας

Διαβάστε περισσότερα

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός

Διαβάστε περισσότερα

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

Απλός επεξεργαστής (Επανάληψη) Απλός επεξεργαστής (Επανάληψη) Διάδρομος δεδομένων και μονάδα ελέγχου 4 ο κεφάλαιο Ο επεξεργαστής : Διάδρομος Δεδομένων και Έλεγχος Σε αυτό το κεφάλαιο θα μελετήσουμε την υλοποίηση του διαδρόμου δεδομένων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ Γιώργος Δημητρίου Μάθημα 6 ο ΠΜΣ Εφαρμοσμένη Πληροφορική ΕΝΤΟΛΗ ΑΠΛΟΥ ΚΥΚΛΟΥ ΜΗΧΑΝΗΣ Όλες οι φάσεις του κύκλου εντολής στον ίδιο κύκλο μηχανής: Ο χρόνος από την ανάκληση μέχρι

Διαβάστε περισσότερα

Παραλληλισµός Εντολών (Pipelining)

Παραλληλισµός Εντολών (Pipelining) ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Παραλληλισµός Εντολών (Pipelining) Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapter 3: Section 3.4,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

CS425 Computer Systems Architecture

CS425 Computer Systems Architecture CS425 Computer Systems Architecture Fall 2017 Dynamic Instruction Scheduling: Scoreboard CS425 - Vassilis Papaefstathiou 1 DLX Processor Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc Memory

Διαβάστε περισσότερα

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης Αρης Ευθυμίου Το σημερινό μάθημα Execu9on scheduling wake- up and select specula9ve wake- up Εκτέλεση εντολών

Διαβάστε περισσότερα

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

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

Διαβάστε περισσότερα

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy) Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy) 1 Συστήματα Μνήμης Η οργάνωση του συστήματος μνήμης επηρεάζει τη λειτουργία και απόδοση ενός μικροεπεξεργαστή: Διαχείριση μνήμης και περιφερειακών (Ι/Ο) απότολειτουργικόσύστημα

Διαβάστε περισσότερα

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών 9 ο Μάθημα Γλώσσα Μηχανής Δυαδική Απεικόνιση Μέχρι στιγμής χρησιμοποιούμε την assembly: Δίνουμε ονόματα σε πράξεις (όπως add) και σε συντελεστές

Διαβάστε περισσότερα

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

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw. ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΡ ΙΟ ΥΠΟΛΟΟ ΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua. gr ΑΡΧΙΤΕΚΤΟΝΙΚΗ

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Γιώργος Δημητρίου Ενότητα 7 η : Στατική Δρομολόγηση Εντολών (Επεξεργαστές VLIW) Εκμετάλλευση ILP Περιορισμοί στη δυναμική δρομολόγηση εντολών: Μέγεθος παραθύρου εντολών Αριθμός φυσικών καταχωρητών Αποτυχία

Διαβάστε περισσότερα

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

Διαβάστε περισσότερα

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

Εντολές Διακλάδωσης. #bubbles ~= pipeline depth X loop length. Next fetch started. Fetch. I-cache. Fetch Buffer. Decode. Issue Buffer. Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Εντολές

Διαβάστε περισσότερα