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

Σχετικά έγγραφα
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

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

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

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

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

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

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

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;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μέρος Β (Οργάνωση Υπολογιστών)

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

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

Εισαγωγή στην πληροφορική

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

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i

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

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

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

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

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

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

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

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης

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

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

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

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

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

Αρχιτεκτονικη υπολογιστων

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

Σχήµα 3.1: Εισαγωγή shift register σε βρόγχο for-loop.

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

ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων. Βιβλιογραφία Ενότητας

Προτεινόμενες Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 & Αποτελέσματα

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

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

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

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

Εισαγωγή στην πληροφορική

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

(Branch Prediction Mechanisms)

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

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

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

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

Μεταγλωττιστές Βελτιστοποίηση

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

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

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

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

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

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

Άσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1.

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ ΟΡΓΑΝΩΣΗΣ ΥΠΟΛΟΓΙΣΤΩΝ 1η Σειρά Ασκήσεων και η Λύση 1 Ιουλίου 2005 Θέλουµε να διερευνήσουµε την αποδοτικότητα διαφορετικών µεθόδων πρόβλεψης διακλάδωσης, σχετικά µε την επίδοση προγραµµάτων που εκτελούνται σε µία αρχιτεκτονική αγωγού. Στο εξής θεωρούµε ότι διαθέτουµε µία σωλήνωση 5 σταδίων, στην οποία η απόφαση διακλάδωσης πραγµατοποιείται στον 2 ο κύκλο του αγωγού (ID) όταν πρόκειται για εντολή διακλάδωσης χωρίς συνθήκη (j, κλπ) και στον 3 ο κύκλο του αγωγού (ΕΧ) όταν πρόκειται για εντολή διακλάδωσης υπό συνθήκη (beq, bne, κλπ). Θεωρούµε, επίσης ότι υπάρχουν όλα τα δυνατά σχήµατα προώθησης. α) Υποθέτουµε ότι δεν υπάρχει κανενός είδους πρόβλεψη διακλάδωσης (πρέπει να επιλυθεί πρώτα το άλµα πριν συνεχίσει η εκτέλεση της επόµενης εντολής). Πόση καθυστέρηση (σε κύκλους ρολογιού) εισάγουν οι εντολές διακλάδωσης χωρίς συνθήκη και πόση οι εντολές διακλάδωσης υπό συνθήκη; β) Έστω το παρακάτω τµήµα του κώδικα (ρουτίνα bubblesort): Θεωρούµε ότι η διεύθυνση του προς ταξινόµηση πίνακα array είναι η 100 και το µήκος του πίνακα είναι Length. Η τιµή της µεταβλητής 4 i είναι αρχικά ίση µε Length και βρίσκεται στον καταχωρητή $r3. ΑΟ--Label Assembly Σχόλια 1-1 loop1: slt $t1, $zero, $r3 #while (i > 0) { 2 beq $t1, $zero, end 2-3 addi $r5, $zero, 0 # j = 0; 3-4 loop2: slt $t2, $r5, $r3 # while (j < i) { 5 beq $t2, $zero, cont 4-6 lw $r6, 100($r5) # temp = array[j]; 7 lw $r7, 104($r5) # temp2 = array[j+1]; 8 slt $t3, $r7, $r6 # if (temp > temp2) { 9 beq $t3, $zero, skip 5-10 sw $r7, 100($r5) # array[j] = temp2; 11 sw $r6, 104($r5) # array[j+1] = temp; } 6-12 skip: addi $r5, $r5, 4 # j++; 13 j loop2 # } 7-14 cont: addi $r3, $r3, -4 # i--; 15 j loop1 #} 8-16 end: hlt Οµαδοποιούµε τις εντολές σύµφωνα µε την αρίθµηση της στήλης ΑΟ (αριθµός οµάδας). Για κάποιον συγκεκριµένο πίνακα array, η σειρά εκτέλεσης των οµάδων εντολών είναι η ακόλουθη: 1 2 3 4 5 6 3 4 6 3 4 6 3 7 1 2 3 4 5 6 3 4 6 3 7 1 2 3 4 5 6 3 7 1 2 3 7 1 8

Συµπληρώστε τον ακόλουθο πίνακα µε N όταν δεν πραγµατοποιείται άλµα (branch Not taken) και µε Τ στην περίπτωση που πραγµατοποιείται άλµα (branch Taken). ιαδοχικές εκτελέσεις εντολών άλµατος 1η 2η 3η 4η 5η 6η 7η 8η 9η 10η 2 N 5 9 13 15 Με βάση τον προηγούµενο πίνακα, συµπληρώστε τον πίνακα που ακολουθεί: 2 5 9 13 15 Αρ.επαναληπτικών Εκτελέσεων Πραγµατοποίηση Άλµατος (Taken) Όχι Άλµα (Not taken) % Taken % Not taken γ) είξτε το διάγραµµα εκτέλεσης των επιµέρους φάσεων για κάθε εντολή (κατά την πρώτη σειρά επαναλήψεων: 1 2 3 4 5 6 και 3 7 1 2). Υποθέστε ότι υπάρχουν όλα τα δυνατά σχήµατα προώθησης (εκτός από τις περιπτώσεις εντολών άλµατος), και σχεδιάστε τις θέσεις όπου χρειάζεται να πραγµατοποιηθεί προώθηση δεδοµένων µεταξύ εντολών. Πόσους κύκλους χρειάζεται για να ολοκληρωθεί η εκτέλεση της ρουτίνας; Πόσοι από τους κύκλους αυτούς σπαταλούνται λόγω εξαρτήσεων δεδοµένων και πόσοι λόγω εντολών άλµατος (µε και χωρίς συνθήκη); δ) Θεωρείστε µία στατική τεχνική πρόβλεψης διακλάδωσης κατά την οποία ο µεταγλωττιστής υποθέτει πάντοτε ότι οι εντολές άλµατος είναι not taken. Ακολουθώντας την ίδια σειρά εκτέλεσης µε το ερώτηµα (β), πόσους κύκλους καθυστέρησης γλιτώνουµε; ε) Θεωρείστε εναλλακτικά τη στατική τεχνική πρόβλεψης διακλάδωσης κατά την οποία ο µεταγλωττιστής υποθέτει πάντοτε ότι οι εντολές άλµατος είναι taken. Ακολουθώντας την ίδια σειρά εκτέλεσης µε το ερώτηµα (β), πόσους κύκλους καθυστέρησης γλιτώνουµε; στ) Θεωρείστε µία τεχνική πρόβλεψης διακλάδωσης κατά την οποία ο µεταγλωττιστής «σηµαδεύει» κάθε εντολή άλµατος ως taken ή not taken βάσει µίας υποθετικής εκτέλεσης της ρουτίνας, και σύµφωνα µε τις στατιστικές που προκύπτουν από αυτήν. Αν, για παράδειγµα, κατά την θεωρητική εκτέλεση η εντολή #2 βρεθεί ότι στο 65% των περιπτώσεων είναι not taken, θεωρείται καθ όλη τη διάρκεια της πραγµατικής εκτέλεσης ότι µετά την εντολή δεν θα πραγµατοποιηθεί άλµα, οπότε συνεχίζει η εκτέλεση των εντολών που την ακολουθούν, πριν ακόµα ολοκληρωθεί η εκτέλεση της εντολή άλµατος. Σύµφωνα µε τις στατιστικές του ερωτήµατος (β) «σηµαδέψτε» κάθε µία από τις 5 εντολές άλµατος ως taken ή not taken. Ακολουθώντας την ίδια σειρά εκτέλεσης µε το ερώτηµα (β), πόσους κύκλους καθυστέρησης γλιτώνουµε; 2

Λύση α) Με βάση την υπόθεση ότι δεν υπάρχει κανενός είδους πρόβλεψη διακλάδωσης, µία ακολουθία 2 εντολών εκ των οποίων η πρώτη είναι εντολή άλµατος θα εκτελείται ως εξής: jump επόµενη εντολή IF-ΙD-EX-MEM-WB s - IF - ID - EX-MEM-WB Στο στάδιο ID αποφασίζεται ποια είναι η επόµενη εντολή που πρέπει να εκτελεστεί. Από τον επόµενο κύκλο ρολογιού µπορεί να αρχίσει η εκτέλεση της εντολής αυτής. Εποµένως, εισάγεται 1 κύκλος καθυστέρησης. branch επόµενη εντολή IF-ΙD-EX-MEM-WB s - s - IF - ID - EX-MEM-WB Οµοίως, εισάγονται 2 κύκλοι καθυστέρησης. β) Για τη συµπλήρωση της πρώτης γραµµής του πίνακα 1, αναζητούµε τις εµφανίσεις της οµάδας ΑΟ- 1 (όπου εµπεριέχεται η εντολή άλµατος 2) και ελέγχουµε αν πραγµατοποιείται άλµα στη διεύθυνση end ή όχι. ηλαδή ουσιαστικά ελέγχουµε αν µετά την οµάδα εντολών 1 εκτελείται η ΑΟ-2 (branch Not Taken - N) ή γίνεται άλµα στην ΑΟ-8 (branch Taken - Τ). Οµοίως για τις υπόλοιπες εντολές άλµατος. ιαδοχικές εκτελέσεις εντολών άλµατος 1η 2η 3η 4η 5η 6η 7η 8η 9η 10η 2 N N N N T 5 N N N T N N T N T T 10 N T T N T N 14 T T T T T T 16 T T T T Με βάση τον προηγούµενο πίνακα, προκύπτουν τα αριθµητικά αποτελέσµατα που ακολουθούν: Αρ.επαναληπτικών Πραγµατοποίηση Όχι Άλµα Εκτελέσεων Άλµατος (Taken) (Not taken) % Taken % Not taken 2 5 1 4 20% 80% 5 10 4 6 40% 60% 10 6 3 3 50% 50% 14 6 6 0 100% 0% 16 4 4 0 100% 0% γ) Παρακάτω φαίνεται το διάγραµµα εκτέλεσης κατά την πρώτη σειρά επαναλήψεων των εντολών, δηλαδή για την ακολουθία 1 2 3 4 5 6 και την 3 7 1 2. Οι ακολουθίες αυτές εµπεριέχουν όλες τις οµάδες εντολών. Έτσι, βασιζόµενοι στο διάγραµµα εκτέλεσής τους γίνεται σαφής η καταµέτρηση των κύκλων ρολογιού ολόκληρης της ρουτίνας. 3

ΑΟ - 1-1 IF-ΙD-EX-MEM-WB 2 IF -ID - EX - MEM-WB 2-3 s - s - IF - ID - EX-MEM-WB 3-4 IF - ΙD - EX -MEM-WB 5 IF ID - EX - MEM-WB 4-6 s - s - IF ID -EX-MEM-WB 7 IF - ΙD - EX -MEM-WB 8 IF ID - s - EX -MEM-WB 9 IF - s - ID - EX -MEM-WB 5-10 s - s - IF - ΙD - EX -MEM-WB 11 IF ID - EX - MEM-WB 6-12 IF ID - EX -MEM-WB 13 IF - ΙD - EX -MEM-WB s - IF ID - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 3-4 IF-ΙD-EX-MEM-WB 5 IF ID - EX - MEM-WB 7-14 s - s - IF ID - EX -MEM-WB 15 IF ID EX -MEM-WB 1-1 s - IF - ΙD- EX-MEM-WB 2 IF -ID - EX - MEM-WB 2-3 s - s - IF - ID - EX-MEM-WB Όπως φαίνεται και στο αναλυτικό διάγραµµα, δεδοµένου ότι δεν υπάρχει κανενός είδους πρόβλεψη διακλάδωσης, ύστερα από κάθε εντολή άλµατος υπό συνθήκη ( 2, 5 και 10), εισάγεται καθυστέρηση δύο κύκλων (επεξηγήθηκε στο ερώτηµα α). Ύστερα από κάθε εντολή άλµατος χωρίς συνθήκη ( 14 και 16), εισάγεται καθυστέρηση ενός κύκλου. Τέλος, θεωρούµε ότι υπάρχουν όλα τα δυνατά σχήµατα προώθησης, οπότε σηµειώνονται τα σηµεία όπου υπάρχει ανάγκη να γίνει χρήση της δυνατότητας αυτής. Όλες οι εξαρτήσεις δεδοµένων επιλύονται χωρίς εισαγωγή καθυστέρησης, εκτός από την εξάρτηση µεταξύ των εντολών 7 8.

AO Αριθµός επαναληπτικών εκτελέσεων Αριθµός εντολών που εκτελούνται Αριθµ. stalls λόγω εντολών άλµατος Αριθµ. stalls λόγω εξάρτησης δεδοµένων Συνολικός αριθµ. κύκλων 1 5 2 2-5 (2+2) = 20 2 4 1 - - 4 1 = 4 3 10 2 2-10 (2+2) = 40 4 6 4 2 1 6 (4+2+1) = 42 5 3 2 - - 3 2 = 6 6 6 2 1-6 (2+1) = 18 7 4 2 1-4 (2+1) = 12 Σύνολο (5+10+6) 2+(6+4) 1 = 42 + 10 = 52 6 1 = 6 142 Όπως προκύπτει από τον παραπάνω πίνακα, η ρουτίνα για να ολοκληρωθεί χρειάζεται: 142 + 4 = 146 κύκλους ρολογιού. Προσθέτουµε στο σύνολο των εντολών που εκτελούνται µαζί µε τις αντίστοιχες καθυστερήσεις που εισάγονται, επιπλέον 4 κύκλους για την αρχικοποίηση του pipeline. Τέλος, παραλείψαµε στην καταµέτρηση την εντολή 17, επειδή πρόκειται για ψευδοεντολή που δηλώνει ουσιαστικά το τέλος της ρουτίνας. Από το σύνολο των κύκλων που χρειάζονται για την ολοκλήρωση της ρουτίνας, δαπανώνται 52 κύκλοι λόγω stalls µετά από εντολές άλµατος και 6 κύκλοι λόγω εξαρτήσεων δεδοµένων. δ)υποθέτοντας ότι όλες οι εντολές διακλάδωσης υπό συνθήκη θεωρούνται εξ ορισµού not taken, προαποφασίζουµε ότι µετά από κάθε εντολή διακλάδωσης υπό συνθήκη θα εισαχθεί στο pipeline η αµέσως επόµενη εντολή της ακολουθίας, πριν ακόµα γίνει επίλυση του άλµατος στο στάδιο EX. (Οι εντολές διακλάδωσης χωρίς συνθήκη δεν θα µπορούσαν να θεωρηθούν not taken, αφού πάντοτε πραγµατοποιούν άλµα). Οι κύκλοι που γλιτώνουµε από κάθε εντολή είναι: (ποσοστό επιτυχίας απόφασης Not Taken) (αρ. επαναλήψεων εντολής) (αρ. stalls που ακολουθούν) 2 Not Taken 80% 80% 5 2 = 8 κύκλοι 5 Not Taken 60% 60% 10 2 = 12 κύκλοι 10 Not Taken 50% 50% 6 2 = 6 κύκλοι Σύνολο: 8+12+6 = 26 κύκλοι ε)υποθέτοντας ότι όλες οι εντολές διακλάδωσης υπό συνθήκη θεωρούνται εξ ορισµού taken, προαποφασίζουµε ότι µετά από κάθε εντολή διακλάδωσης υπό συνθήκη θα εισαχθεί στο pipeline η εντολή-στόχος του άλµατος, πριν ακόµα γίνει επίλυση του άλµατος στο στάδιο ID (εντολές άλµατος χωρίς συνθήκη) ή στο στάδιο EX (εντολές άλµατος µε συνθήκη). Η διεύθυνση της εντολής-στόχου του άλµατος είναι γνωστή εκ των προτέρων στον µεταγλωττιστή και εποµένως µπορεί να επιτύχει κατάλληλη αναδιάταξη των εντολών. Εναλλακτικά, το υλικό µπορεί να διαθέτει κατάλληλα σχήµατα προώθησης σε προ-σηµαδεµένα τµήµατα του κώδικα. Οι κύκλοι που γλιτώνουµε από κάθε εντολή είναι: (ποσοστό επιτυχίας απόφασης Taken) (αρ. επαναλήψεων εντολής) (αρ. stalls που ακολουθούν) 2 Taken 20% 20% 5 2 = 2 κύκλοι 5 Taken 40% 40% 10 2 = 8 κύκλοι

1 η σειρά Ασκήσεων 2004-05 10 Taken 50% 50% 6 2 = 6 κύκλοι 14 Taken 100% 100% 6 1 = 6 κύκλοι 16 Taken 100% 100% 4 1 =4 κύκλοι Σύνολο: 2+8+6+6+4 = 26 κύκλοι στ) Με βάση τα ποσοστά του πίνακα 2 στο ερώτηµα (β), αποφασίζουµε ότι θα έχουµε τα εξής «σηµάδια» για κάθε εντολή: 2 Not Taken 5 Not Taken 10 Not Taken 14 Taken 16 Taken Εποµένως κάθε φορά που εκτελείται κάθε µία από τις παραπάνω εντολές θα έχει προαποφασιστεί ποια εντολή θα εισαχθεί στο pipeline, πριν ακόµα γίνει η επίλυση του άλµατος στο στάδιο ID (εντολές άλµατος χωρίς συνθήκη) ή στο στάδιο EX (εντολές άλµατος µε συνθήκη). Αν το «σηµάδι» δηλώνει ότι πρόκειται για εντολή Not Taken, εισάγεται στο pipeline κανονικά, χωρίς καθυστέρηση, η αµέσως επόµενη εντολή. Αν το «σηµάδι» δηλώνει ότι πρόκειται για εντολή Taken, εισάγεται στο pipeline χωρίς καθυστέρηση η επόµενη εντολή που έχει προδιαγραφεί από τον compiler κατά το «σηµάδεµα» των εντολών. Τα ποσοστά επιτυχίας της πρωθύστερης απόφασης φαίνονται στον πίνακα 2 του ερωτήµατος (β). Οι κύκλοι που γλιτώνουµε από κάθε εντολή είναι: (ποσοστό επιτυχίας απόφασης) (αρ. επαναλήψεων εντολής) (αρ. stalls που ακολουθούν) 2 Not Taken 80% 80% 5 2 = 8 κύκλοι 5 Not Taken 60% 60% 10 2 = 12 κύκλοι 10 Not Taken 50% 50% 6 2 = 6 κύκλοι 14 Taken 100% 100% 6 1 = 6 κύκλοι 16 Taken 100% 100% 4 1 =4 κύκλοι Σύνολο: 8+12+6+6+4 = 36 κύκλοι 6