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

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

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

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

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

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

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

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

Pipelined Datapath, Hazards and Forwarding

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

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

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

Συναρτήσεις-Διαδικασίες

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

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

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

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

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

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

Παραδείγματα Assembly (Μέρος

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

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

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

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

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

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

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

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

Διαδικασίες ΙI. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 5

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ. A. Μετατροπή αριθμών 1. Μετατροπή αριθμών από δεκαδικό σε δυαδικό σύστημα αρίθμησης

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

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) Σάββατο, 26 Νοεμβρίου 2016 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 120 ΛΕΠΤΑ 1) Υλοποίηση εντολών του επεξεργαστή MIPS (15+10+15 = 40 μονάδες) Η εντολή ΜΙPS jalr rs χρησιμοποιείται μερικές φορές αντί της jal για την κλήση συναρτήσεων. Η εντολή αυτή ακολουθεί το R-format και ο καταχωρητής rs κωδικοποιείται στα bits [25-21] της εντολής. Το Χ σημαίνει Do t Care. 6 5 5 5 5 6 Op= 000000 rs X X 00000 Fuc=001001 Η άσκηση αυτή σας ζητάει να υλοποιήσετε την εντολή αυτή ξεκινώντας από την βασική αρχιτεκτονική διοχέτευσης του MIPS που σας δίδεται στην επόμενη σελίδα του εντύπου. Όλες οι αλλαγές θα πρέπει να γίνουν πάνω στο σχήμα που σας δίδεται και θα πρέπει να είναι καθαρογραμμένες! Πιο συγκεκριμένα θα πρέπει: α) να υλοποιήσετε όλες τις αλλαγές στο τμήμα δεδομένων. Μπορείτε να προσθέσετε καινούργια modules (πχ πολυπλέκτες, ALUs, κοκ), αλλά δεν επιτρέπεται να αλλάξετε την λειτουργικότητα ή το μέγεθος κανενός ήδη υπάρχοντος module. Επίσης μπορείτε να προσθέσετε καινούργια σήματα και συνδέσεις. Αγνοείστε τυχόν θέματα προώθησης (forwardig) της jalr σε σχέση με προηγούμενες εντολές. β) όλες τις αλλαγές στο τμήμα ελέγχου. Αυτό συμπεριλαμβάνει τις τιμές τυχόν νέων σημάτων ελέγχου που θα δημιουργηθούν για τις ανάγκες της εντολής αυτής και για τις παλιές εντολές, καθώς και τις τιμές των ήδη υπαρχόντων σημάτων ελέγχου που φαίνονται στο σχήμα για την jalr. Στον παρακάτω πίνακα σας δίνονται οι τιμές των σημάτων ελέγχου για μερικές εντολές που εκτελεί ο επεξεργαστής και εσείς θα πρέπει να συμπληρώσετε τα λευκά κενά. γ) Μπορείτε να επισημάνετε προβλήματα που θα υπάρξουν με την εντολή jalr rs σε σχέση με εντολές διακλάδωσης υπό συνθήκη που μπορούν να βρίσκονται αμέσως μετά από την jalr στον κώδικα και οι οποίες εκτελούνται στο ID στάδιο; Αφού επισημάνετε το πρόβλημα, μπορείτε να δώσετε κάποια λύση για το πώς μπορεί να επιλυθεί;

A PCSrc_jalr rs PC+4 Α=rs PC+4 31 RegDst_jalr MemToReg_jalr Εντολή RegWrit e RegDst ALUS rc Brac h MemWrite MemToReg ALUOp [1:0] PCSr c PCSrc_jal r RegDst_jalr MemToReg _jalr R-format 1 1 0 0 0 0 10 0 0 0 0 lw 1 1 1 0 0 1 00 0 0 0 0 (add) sw 0 X 1 0 1 X 00 0 0 Χ Χ (add) beq 0 X 0 1 0 X 01 (sub) 1 0 Χ Χ jalr 1 X X X 0 X X X 1 1 1

Λύση a) H εντολή jalr rs εκτελεί την παρακάτω ακολουθία εντολών: $ra = PC+4, PC = rs (με αυτήν την σειρά). Στο παραπάνω σχήμα φαίνεται μία από τις πιθανές λύσεις του προβλήματος. Εδω το άλμα στην νέα τιμή του PC (PC = $ra) γίνεται στο στάδιο WB, ταυτόχρονα με την εγγραφή του καταχωρητή $ra (=$31) στο στάδιο WB. Οι επιπλέον προσθήκες φαίνονται σε πράσινο χρώμα. Δεκτή θα γίνει και λύση όπου το άλμα γίνεται σε νωρίτερα στάδια (ID, EX, MEM). Η εγγραφή όμως του καταχωρήτη $ra (όπως και κάθε καταχωρητή) θα πρέπει να γίνεται πάντα στο στάδιο WB. β) Για την συγκεκριμένη λύση, χρειάζονται τρία επιπλέον σήματα επιλογής εισόδου των τριών πολυπλεκτών που φαίνονται στον πίνακα. γ) Η απάντηση που δίνω στο ερώτημα (γ) αναφέρεται στο σχήμα της ερώτησης (α) με την jalr να εκτελείται στο στάδιο WB. Έστω ότι έχουμε τον παρακάτω κώδικα:.. jalr $t0 L: add. beqz $t1, $t2, L Κάθε εντολή brach (ή και jump) που βρίσκεται μετά την jalr και εκτελείται χρονικά πριν την jalr θα έχει σαν αποτέλεσμα να αλλάξει τον PC. Αυτό, φυσικά, θα είναι λάθος. Θα πρέπει λοιπόν η εκτέλεση της jalr στο WB να προκαλέσει flush όλων των εντολών που είναι στο pipelie (γιατί οι εντολές αυτές είναι από λάθος μονοπάτι).

2) Εκτέλεση κώδικα σε μικροαρχιτεκτονική διοχέτευσης (30+10 = 40 μονάδες) Η παρακάτω συνάρτηση it max(it *array, it ) επιστρέφει τον μεγαλύτερο αριθμό ενός πίνακα θετικών ακέραιων array[]. Θεωρείστε επίσης ότι 8 και ότι το είναι πολλαπλάσιο του 4. Ο κώδικας εκτελείται σε έναν επεξεργαστή MIPS 5 σταδίων με πλήρεις μηχανισμούς προώθησης, καθυστέρησης και εκκένωσης. Οι εντολές διακλάδωσης εκτελούνται στο στάδιο ΜΕΜ και χρησιμοποιούν μηχανισμό πρόβλεψης των 2 bits ο οποίος αρχικοποιείται στην κατάσταση Strogly Not Take (SNT) για κάθε εντολή διακλάδωσης. Οι εντολές Jump εκτελούνται στο στάδιο ID και δεν έχουν μηχανισμό πρόβλεψης. Έστω ότι η συνάρτηση max παίρνει σαν είσοδο έναν πίνακα που έχει γενική μορφή: k, k+1, k+2, k+3, k+2, k+3, k+4, k+5, k+4, k+5, k+6, k+7, όπου k είναι ένας θετικός ακέραιος. Για παράδειγμα, μία ενδεικτική είσοδος θα ήταν η παρακάτω: 8, 9, 10, 11, 10, 11, 12, 13, 12, 13, 14, 15, (δηλ. k = 8). # $a0 = &array[0], $a1 = max: li $t1, 0 li $v0, -1 loop: beq $t1, $a1, Exit lw $t2, 0($a0) slt $t3, $v0, $t2 beq $t3, $0, L1 addu $v0, $t2, $0 L1: addi $a0, $a0, 4 addi $t1, $t1, 1 j loop Exit: jr $ra Θα πρέπει να απαντήσετε τις παρακάτω ερωτήσεις: a) Ως συνάρτηση του μεγέθους του πίνακα, να υπολογίσετε τον συνολικό αριθμό των εκτελούμενων εντολών N, τον αριθμό των καθυστερήσεων S (stalls), τον αριθμό των εκκενώσεων F (flushes), και τον αριθμό των κύκλων (C) που απαιτεί η εκτέλεση του προγράμματος. O αριθμός των κύκλων C μπορεί να υπολογισθεί προσεγγιστικά. b) Περιγράψτε έναν τρόπο για να μειωθεί ο αριθμός των καθυστερήσεων S.

a) Ο παρακάτω πίνακας δείχνει πόσες φορές εκτελέσθηκε κάθε εντολή της συνάρτησης max για την συγκεκριμένη είσοδο που αναφέρει η εκφώνηση. Όλες οι εντολές μέσα στο loop εκτελούνται φορές εκτός από την beq στην αρχή που εκτελείται +1 φορές, και την εντολή addu $v0, $t2, $0 που εκτελείται όσες φορές βρίσκουμε καινούργιο max. Για την συγκεκριμένη είσοδο η εντολή αυτή θα εκτελεσθεί 4 + 2 + 2.. +2 4 + 4 = + 2 φορές. Υπενθυμίζουμε ότι 8. Η διαίρεση είναι ακέραια. 2 2 # $a0 = &array[0], $a1 = max: li $t1, 0 li $v0, -1 loop: Β1: beq $t1, $a1, Exit lw $t2, 0($a0) slt $t3, $v0, $t2 B2: beq $t3, $0, L1 addu $v0, $t2, $0 L1: addi $a0, $a0, 4 addi $t1, $t1, 1 J1: j loop Exit: jr $ra # times executed 1 1 +1 ~ 2 + /2 1 Όσον αφορά τις εντολές διακλάδωσης (B1, B2, J1) που δημιουργούν flushes, θα πρέπει να εξετάσουμε το ποσοστό επιτυχίας των προβλέψεων τους από το 2-bit predictor (για τις B1, B2). Θυμηθείτε ότι η αρχική κατάσταση της FSM για τις προβλέψεις είναι Strogly Not Take.Έχουμε τις εξής περιπτώσεις όπως φαίνονται στον παρακάτω πίνακα: Εντολή διακλάδωσης Αλληλουχία Εκτελέσεων Τ:take, N:ot take Αλληλουχία Προβλέψεων Τ:take, N:ot take Σωστές προβλέψεις Λάθος προβλέψεις Κύκλοι ποινής λόγω flush Β1: beq NNNN.NNT NNNN.NNN 1 3 B2: beq NNNN TTNN TTNN.. TTNN NNNN NNTN NNTN NNTN 4+ (1/4)*(-4) M= (3/4)*(- 4) 3*M = (9/4)*(- 4) J1: j TTTT.TTT NNN NNN 0 ΣΥΝΟΛΟ (13/4)* 6 Συνεπώς: N 1+1++1+6+1+2+/2 = 15 + 6 εντολές εκτελούνται S =. 2 Η μόνη περίπτωση stall είναι μεταξύ της εντολής lw και της επόμενης εντολής slt. Δημιουργείται ένας κύκλος stall για κάθε μία από τις εκτελέσεις των εντολών αυτών: S =. F = 13 6 (από τον πίνακα) 4 Συνεπώς C = N+S+F+4, όπου 4 είναι οι αρχικοί κύκλοι για να γεμίσει το pipelie.

C = 15 13 + 6 + + 6 + 4 = 47 + 4 2 4 4 b) Για να απαλείψουμε το stall μεταξύ της εντολής lw και της εντολής slt μπορούμε να βάλουμε μεταξύ τους την εντολή addi $a0, $a0, 4, ώστε να μην χρειαστεί να περιμένουμε έναν κύκλο. 3) Ερώτηση κρίσης (20 μονάδες) Οι εντολές διακλάδωσης μπορούν να αυξήσουν το CPI όταν ο επεξεργαστής διαβάζει εντολές από ένα μονοπάτι το οποίο δεν πρόκειται να εκτελεσθεί. Η αύξηση του CPI εξαρτάται (ι) από την πιθανότητα να διαβάσουμε από ένα λάθος μονοπάτι, και (ιι) από τον αριθμό των εντολών που έχουν διαβαστεί από το λάθος μονοπάτι μέχρι να εκτελεσθεί η εντολή. Η ερώτηση αυτή συγκρίνει τις εντολές διακλάδωσης υπο συνθήκη beq/be rs, rt, L με την εντολή Jump Register jr rs όσον αφορά την δυνατότητα τους να κρατήσουν το CPI χαμηλό όταν εκτελεσθούν σέ έναν επεξεργαστή με πολλά στάδια (super-pipelied). Να αναφέρετε, κάνοντας μιά λίστα, σε τι πλεονεκτεί κάθε τύπος εντολής όσον αφορά την δυνατότητα να κρατήσει το CPI χαμηλά. Εντολές beq/be - Εκτελούνται πιό αργά στο pipelie επειδή χρειάζονται την ALU. Αυτό έχει ως αποτέλεσμα να διαβάζονται πιο πολλές εντολές από ενα λανθασμένο μονοπάτι. - Η πρόβλεψη μπορεί να δώσει δύο αποτελέσματα (Take/Not Take). Και πολλές φορές οι προβλέψεις μπορεί να είναι λανθασμένες. + Οι εντολές beq/be κάνουν άλμα πάντα στην ίδια διεύθυνση (η διεύθυνση L είναι η ίδια). Αυτό κάνει την πρόβλεψη πιό εύκολη. Εντολή Jump Register + Εκτελούνται πιό νωρίς στο pipelie (στο στάδιο ID) επειδή δεν χρειάζονται την ALU για κάποια πράξη. Συνεπώς, ο αριθμός των εντολών από το λάθος μονοπάτι είναι μικρότερος. + Η εντολή είναι πάντα Take. Συνεπώς η πρόβλεψη της κατεύθυνσης είναι πάντα σωστή. - Το μειονέκτημα της jr rs είναι ότι το άλμα δεν γίνεται πάντα στην ίδια διεύθυνση. Αυτό κάνει την πρόβλεψη δύσκολη γιατί είναι πιθανόν να έχουμε καλέσει την jr με διαφορετικές τιμές του καταχωρητή rs.