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

Σχετικά έγγραφα
ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 4 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

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

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

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

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

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

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

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

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

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

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

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

5.1 Εισαγωγή. Μια προεπισκόπηση της υλοποίησης

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

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

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 4 ο ΜΕΔ πολλαπλών κύκλων

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

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

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

Τρόποι Διευθυνσιοδότησης

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 8: Μία Απλή Υλοποίηση του MIPS σε Έναν Κύκλο Ρολογιού ανά Εντολή

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

Σχεδίαση της Μονάδας Ελέγχου

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

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

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

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 9 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

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

Κεφάλαιο 5. Ο Μικροεπεξεργαστής: Διάδρομος Δεδομένων και Μονάδα Ελέγχου. (The Processor: Datapath and Control)

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

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

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

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

Αρχιτεκτονική Η/Υ. Γιώργος ηµητρίου. Μια Ανασκόπηση στην Οργάνωση Η/Υ. Πανεπιστήµιο Θεσσαλίας - Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

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

Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής. Αρχιτεκτονική Υπολογιστών. 3ο Μάθημα

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

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

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

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

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMMY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις Άσκηση 1: Διασωλήνωση 5 σταδίων Επεξεργαστής με πρόβλημα! (15 μονάδες) I. Χ1: Δεν μπορεί να γράψει στο αρχείο καταχωρητών. Έτσι οι εντολές τύπου R-type (registertype) που χρησιμοποιούν αποκλειστικά καταχωρητές θα αποτύχουν. Παράδειγμα κώδικα που θα αποτύχει: add $s1, $s2, $s3 Δεν μπορεί να γράψει στον $s1 Παράδειγμα κώδικα που θα δουλέψει χωρίς πρόβλημα: sw $s1, 0($s2) Διαβάζει τους $s1 και $s2 II. Χ2: Δεν μπορεί να προωθηθεί (forwarding) ο πρώτος τελεστής (operand) δεδομένων. Έτσι θα έχουμε πρόβλημα σε περίπτωση κινδύνου δεδομένων (data hazard) λόγω εξάρτησης δεδομένων από την προηγούμενη εντολή που γράφει το αποτέλεσμα σε καταχωρητή στο τέλος του τρίτου σταδίου διασωλήνωσης που χρειάζεται να διαβαστεί στην αρχή του τρίτου σταδίου διασωλήνωσης κατά τον επόμενο κύκλο εκτέλεσης (επόμενη εξαρτημένη εντολή). Κίνδυνος τύπου RAW hazard. Παράδειγμα κώδικα που θα αποτύχει: add $s1, $s2, $s3 add $s3, $s1, $s5 Εξάρτηση στον $s1 Παράδειγμα κώδικα που θα δουλέψει χωρίς πρόβλημα: add $s1, $s2, $s3 add $s3, $s5, $s2 Δεν υπάρχει εξάρτηση στον $s1 γιατί είναι ο δεύτερος και όχι ο πρώτος τελεστής. III. Χ3: Μεταπήδηση σε διεύθυνση μνήμης που καθορίζει εντολή διακλάδωσης τύπου branch εφόσον ισχύει (taken) δεν θα δουλέψει. Παράδειγμα κώδικα που θα αποτύχει: addi $s1, $zero, 4 addi $s2, $zero, 4 beq $s1, $s2, Label1 Το branch iσχύει. B Σελίδα 1 από 7

Παράδειγμα κώδικα που θα δουλέψει χωρίς πρόβλημα: addi $s1, $zero, 4 addi $s2, $zero, 10 beq $s1, $s2, Label1 Το branch δεν iισχύει, συνεχίζει το πρόγραμμα να εκτελείται στο PC+4, επόμενη εντολή. Άσκηση 2: Απόδοση διασωλήνωσης (15 μονάδες) I. Όταν γεμίσουν τα στάδια διασωλήνωσης: (1-f)Ν εντολές παίρνουν ένα κύκλο ρολογιού fn εντολές παίρνουν δύο κύκλους ρολογιού, ένα επιπλέον κύκλο καθυστέρησης (stall) μεταξύ του load και της εξαρτημένης εντολής. Ολικός αριθμός κύκλων = (1-f)N + 2fN + 4 (τέσσερα για την αρχική καθυστέρηση μέχρι να γεμίσουν όλα τα στάδια διασωλήνωσης) = Ν(1+f) + 4 Ολικός χρόνος εκτέλεσης = 10ns (Ν(1+f) + 4) II. Ας αγνοήσουμε τους πρώτους τέσσερις κύκλους για την αρχική καθυστέρηση μέχρι να γεμίσουν όλα τα στάδια διασωλήνωσης Επιλογή (α) : Χρόνος εκτέλεσης = 10ns ((1-f)N + 3fN) = (1+2f) 10ns N Ο αριθμός 3 είναι για το επιπλέον στάδιο ΜΕΜ2 που εισάγει καθυστέρηση Επιλογή (β) : 12ns ((1-f)N + 2fN) = (1+f) 12ns N Η επιλογή (α) είναι καλύτερη όταν (1+2f) 10ns N < (1+f) 12ns N 10 + 20f < 12 + 12f 8f < 2 ή f < ¼ Άσκηση 3: Διασωλήνωση προώθηση και κίνδυνοι (10 μονάδες) I. Ερώτηση 1: Λάθος, η μνήμη είναι χωρισμένη σε μνήμη εντολών και μνήμη δεδομένων για να μην υπάρξει περίπτωση δομικού κινδύνου. Ερώτηση 2 : Λάθος, μπορεί να συμβεί σε περίπτωση εξαιρέσεων (exceptions) Ερώτηση 3 : Λάθος, μπορεί να συμβούν περιπτώσεις stalls Ερώτηση 4 : Σωστό Ερώτηση 5 : Σωστό II. Τέσσερις περιπτώσεις: Καταχωρητής $s4: από sub φάση EX προς load φάση EX Καταχωρητής $s4: από sub φάση MEM προς add φάση EX Καταχωρητής $s8: από load φάση MEM προς add φάση EX Καταχωρητής $s7: από add φάση MEM προς store φάση MEM Σελίδα 2 από 7

Άσκηση 4: Διασωλήνωση προώθηση και απόδοση (20 + 10 Bonus μονάδες) I. Ο πίνακας έχει ως εξής: Εντολή Πηγή τελεστή 1 (source operand 1) Πηγή τελεστή 2 (source operand 2) 1 REG REG 2 BYPASS N/A 3 BYPASS N/A 4 REG REG 5 BYPASS N/A 6 BYPASS N/A 7 BYPASS REG II. Αριθμός κύκλων = 7 (εντολές) + 2 (καθυστερήσεις load-add) + 4 (αρχικά μέχρι να γεμίσει η διασωλήνωση) = 13 κύκλοι III. 2 κύκλοι, ένα περισσότερος από πριν IV. Αριθμός κύκλων = 7 (εντολές) + 4 (καθυστερήσεις load-add) + 4 (αρχικά μέχρι να γεμίσει η διασωλήνωση) = 15 κύκλοι V. Αρχικά: Με αλλαγές: 1 add $t2, $s1, $s3 2 lw $t1, 0($t2) 3 addi $t2, $t1, 7 4 add $t1, $s2, $s3 5 lw $t1, 0($t1) 6 addi $t1, $t1, 9 7 sub $t1, $t1, $t2 1 add $t2, $s1, $s3 2 lw $t1, 0($t2) 4 add $t11, $s2, $s3 5 lw $t11, 0($t11) 3 addi $t2, $t1, 7 6 addi $t11, $t11, 9 7 sub $t1, $t1, $t2 Μεταξύ εντολών 2 και 4 και 3 περιορίζουμε την καθυστέρηση λόγω αρχικού load-addi. Αριθμός κύκλων = 7 (εντολές) + 1 (καθυστερήσεις μεταξύ εντολών 5 και 6) + 4 (αρχικά μέχρι να γεμίσει η διασωλήνωση) = 12 κύκλοι Σελίδα 3 από 7

Άσκηση 5: Δυναμική πρόβλεψη διακλάδωσης (15 μονάδες) I. Πίνακας: Βρόγχος bne $s1,$zero,loop1 (taken (Τ)/not taken (NT)) Ισχύει (T)/δεν Βρόγχος bne $s3,$zero,loop0 (taken (T)/not taken (NT) Ισχύει (T)/δεν 1 ΝΤ Τ 1 ΝΤ Τ 2 Τ ΝΤ 2 Τ Τ 3 ΝΤ Τ 3 Τ ΝΤ 4 Τ ΝΤ 5 ΝΤ Τ 6 Τ ΝΤ Ποσοστό επιτυχίας bne $s1,$zero,loop1 = 0% Ποσοστό επιτυχίας bne $s3,$zero,loop0 = 33.3% II. Πίνακας: Βρόγχος bne $s1,$zero,loop1 (taken (Τ)/not taken (NT)) Ισχύει (T)/δεν Βρόγχος bne $s3,$zero,loop0 (taken (T)/not taken (NT) Ισχύει (T)/δεν 1 ΝΤ T 1 ΝΤ Τ 2 ΝΤ T 2 ΝΤ Τ 3 Τ NT 3 Τ ΝΤ 4 T T 5 T T 6 T NT 7 T T 8 T T 9 T NT Ποσοστό επιτυχίας bne $s1,$zero,loop1 = 44.4% (4/9) Ποσοστό επιτυχίας bne $s3,$zero,loop0 = 0% Σελίδα 4 από 7

Άσκηση 6: Μικροεπεξεργαστής ενός κύκλου (15 μονάδες) Η υλοποίηση του lui δεν χρειάζεται αλλαγή στον διάδρομο δεδομένων. Μπορούμε να χρησιμοποιήσουμε την αριθμητική μονάδα για να υλοποιήσουμε την ολίσθηση. Η ολίσθηση είναι σταθερή στα 16 ψηφία προς τα αριστερά. Πρέπει να προσθέσουμε ακόμα μία γραμμή στον πίνακα αληθείας για να καθορίσουμε την ολίσθηση 16 ψηφίων στην αριθμητική μονάδα του επεξεργαστή. Πρέπει να προσέξουμε 2 πράγματα: (1) ότι δεν υπάρχει πεδίο συνάρτησης στην εντολή (functional field in the command), και (2) η διαδικασία ολίσθησης εκτελείται στο πεδίο ακέραιου αριθμού (immediate field), και όχι στην είσοδο του καταχωρητή. Εντολή RegDst ALUSrc Memto Reg Mem Mem Branch Jump ALUOp1 ALUOp2 Reg Write Read Write R (αριθ.) 1 0 0 1 0 0 0 0 1 0 Lw 0 1 1 1 1 0 0 0 0 0 sw X 1 X 0 0 1 0 0 0 0 beq X 0 X 0 0 0 1 0 0 1 J Χ Χ Χ 0 0 0 0 1 Χ Χ lui 1 1 0 1 0 0 0 0 1 1 RegDst = 1: Για να γράψουμε το αποτέλεσμα του ALU πίσω στον τελικό καταχωρητή ($rt) ALUSrc = 1: Φόρτωση πεδίου immediate στο ALU MemtoReg = 0: Πηγή δεδομένων είναι το ALU RegWrite = 1: Γράψε αποτέλεσμα πίσω στο αρχείο καταχωρητών MemRead = 0: δεν χρειάζεται να διαβάσουμε από τη μνήμη δεδομένων MemWrite = 0: δεν χρειάζεται να γράψουμε στη μνήμη δεδομένων Branch = jump = 0: δεν είναι εντολή branch h jump ALUOp 1= ALUOp 2 = 1: προσθέτουμε 11 (που δεν χρησιμοποιείται έως τώρα) για να δηλώσουμε/υλοποιήσουμε την ολίσθηση 16 ψηφίων μέσα στο ALU. Δεν χρειάζονται οποιεσδήποτε αλλαγές στον διάδρομο δεδομένων αφού η ολίς0ηση μπορεί να υλοποιηθεί μέσα στο ΑLU. Σελίδα 5 από 7

Άσκηση 7: Μικροεπεξεργαστής πολλαπλών κύκλων (15 μονάδες) I. Από την κατάσταση 3 μεταπηδούμε στο στάδιο 10 που έχουμε προσθέσει και μετά προχωρούμε στην κατάσταση 5. Κύκλος 1 = αποδικωποίηση εντολής Κύκλος 2 = φόρτωση καταχωρητή $s3 και αναγραφή του στον ενδιάμεσο καταχωρητή Α. Επέκταση πρόσημου για το offset. Κύκλος 3 = πρόσθεση περιεχομένου Α ($s3) και offset, καταγραφή αποτελέσματος διεύθυνσης στον καταχωρητή ALOUut. Το Α περνά από τον πολυπλέκτη (multiplexer) που έχουμε προσθέσει μεταξύ του αρχείου καταχωρητών και ενδιάμεσου καταχωρητή Α. Κύκλος 4 = Διάβασμα περιεχομένων κυρίας μνήμης χρησιμοποιώντας την διεύθυνση που περιέχει το ALUOut και αποθήκευση δεδομένων στον καταχωρητή MDR. Κύκλος 5 = Διάβασμα δεδομένων από τον MDR, από το κάτω μέρος του multiplexer που έχουμε προσθέσει, αποφεύγουμε αναφορά στο αρχείο καταχωρητών όπως θα έκανε μια εντολή load. Κύκλος 6 = Πρόσθεση περιεχομένων καταχωρητών MDR και Β. Κύκλος 7 = Γραφή αποτελέσματος στον καταχωρητή $s1 που βρίσκεται στο αρχείο καταχωρητών. Σελίδα 6 από 7

II. Συνολικά χρειάζονται 7 κύκλοι. Σελίδα 7 από 7