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

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

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

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

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;

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

Άσκηση 1η. Θεωρήστε ένα σύστημα μνήμης με μία cache: 4 way set associative μεγέθους 256ΚΒ,

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

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

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

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Processor-Memory (DRAM) ιαφορά επίδοσης

Ενότητα 2: Η κρυφή µνήµη και η λειτουργία της

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

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

Spim Cache. Εισαγωγή στη χρήση του προσοµοιωτή. Αρχιτεκτονική Υπολογιστών ΙΙ. Σπύρος Ξεργιάς, ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών

Διάλεξη 15 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης

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

ΕΠΛ 605: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2018 ΕΡΓΑΣΙΑ 3 (13/10/2018) Ηµεροµηνία Παράδοσης δεύτερου µέρους: 18/10/2018

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

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

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

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

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

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

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

Processor-Memory (DRAM) ιαφορά επίδοσης

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

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

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

Αρχιτεκτονική Υπολογιστών II Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

Pipelined Datapath, Hazards and Forwarding

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

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

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

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

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

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

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

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

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

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

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

Προγραμματισμός συστημάτων UNIX/POSIX. Θέμα επιλεγμένο από τους φοιτητές: Προγραμματιστικές τεχνικές που στοχεύουν σε επιδόσεις

Οργάνωση Ιεραρχίας Μνήμης - Caches

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

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

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

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

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

Processor-Memory (DRAM) Διαφορά επίδοσης

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

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

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

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

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

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

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

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

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

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ ΟΡΓΑΝΩΣΗΣ ΥΠΟΛΟΓΙΣΤΩΝ Εκφωνήσεις και Λύσεις Θεµάτων Φεβρουαρίου 003 Έστω το τµήµα του C κώδικα: while (save[i] == k) i = i + j; Θέµα 1 ο (0%): 19 Φεβρουαρίου 003 Θεωρούµε ότι οι τιµές των µεταβλητών i, j, k βρίσκονται στους καταχωρητές $s3, $s, $s5 και η διεύθυνση του πίνακα save στον $s6 Ο αντίστοιχος κώδικας σε assembly είναι ο εξής: Loop: add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit add $s3, $s3, $s j Loop Exit: Κάθε φορά που διατρέχει το loop χρησιµοποιούνται εντολές άλµατος (µία υπό συνθήκη και µία χωρίς συνθήκη). Ωστόσο µόνο µη βελτιστοποιηµένοι compilers θα παρήγαγαν κώδικα µε τέτοιο κόστος. Ξαναγράψτε το τµήµα αυτό του κώδικα έτσι ώστε να εκτελείται το πολύ µία εντολή άλµατος (χωρίς ή µε συνθήκη) εντός του βρόχου. Πόσες εντολές εκτελούνται πριν και µετά τη βελτιστοποίηση αν ο αριθµός των επαναλήψεων του βρόχου είναι 10. (Θεωρείστε ότι save[i+10*j] k και save[i],, save[i+9*j] = k). Λύση Στον αρχικό κώδικα ο αριθµός των εντολών που εκτελούνται είναι: (αρ. επαναλήψεων) (αρ. εντολών όταν array[i]=k) + (αρ. εντολών κατά την τελευταία εκτέλεση όπου array[i] k) = 10 7 + 5 = 75 Ο βελτιστοποιηµένος κώδικας είναι: Loop: add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s6 lw $t0, 0($t1) add $s3, $s3, $s beq $t0, $s5, Loop sub $s3, $s3, $s Exit:

Εξέταση Φεβρουαρίου 003 η λύση : Στο βελτιστοποιηµένο κώδικα ο αριθµός των εντολών που εκτελούνται είναι: (αρ. επαναλήψεων) (αρ. εντολών όταν array[i] = k) + (αρ. εντολών κατά την τελευταία εκτέλεση όπου array[i] k) = 10 6 + 7 = 67 add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit Loop: add $s3, $s3, $s add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s6 lw $t0, 0($t1) beq $t0, $s5, Loop Exit: Στο βελτιστοποιηµένο κώδικα ο αριθµός των εντολών που εκτελούνται είναι: (πρώτη εκτέλεση) + (αρ.υπολ.επαναλήψεων) (αρ.εντολών όταν array[i] = k) + (αρ.εντολών κατά την τελευταία εκτέλεση όπου array[i] k) = 5 + 9 6 + 6 = 65 Θέµα ο (35%): Η τεχνική loop unrolling (ξεδίπλωµα βρόχου) είναι µια από τις πιο διαδεδοµένες τεχνικές βελτιστοποίησης κώδικα. Στην τεχνική αυτή, διαδοχικές επαναλήψεις του αρχικού βρόχου γράφονται σαν ξεχωριστές εντολές (π.χ. διαδοχικές επαναλήψεις, οπότε ο unrolled βρόχος έχει πλέον βήµα ). for (i=0;i<1;i++) a(i) = a(i) + 8; γίνεται: for (i=0;i<1;i+=) { a(i) = a(i) + 8; a(i+1) = a(i+1) + 8; } Προηγµένα Θέµατα Οργάνωσης Υπολογιστών-9 ο εξ. Εργαστήριο Υπολογιστικών Συστηµάτων, ΕΜΠ - cslab@ntua, 00

Εξέταση Φεβρουαρίου 003 Εδώ, θέλουµε να αξιολογήσουµε τα πλεονεκτήµατα υλοποίησης της τεχνικής ξεδιπλώµατος βρόχων σε κώδικα που εκτελείται σε αρχιτεκτονική MIPS µε χρήση αγωγού (pipeline datapath) και ύπαρξη σχήµατος προώθησης (forwarding). Ο αρχικός µας κώδικας σε MIPS assembly είναι ο ακόλουθος ( o $s1 έχει αρχικά την τιµή 8): Loop: lw $t0, 0($s1) add $t0, $t0, $s sw $t0, 0($s1) addi $s1, $s1, - bne $s1, $zero, Loop Α α) είξτε το διάγραµµα εκτέλεσης των επιµέρους φάσεων για κάθε εντολή, µέσα στην αρχιτεκτονική αγωγού, υποθέτοντας την ύπαρξη σχήµατος προώθησης (διάγραµµα εκτέλεσης όπως στις διαφάνειες του µαθήµατος: IF - ID - κλπ). Μπορείτε να το βελτιστοποιήσετε (αποφυγή τυχόν stalls)? β) Παρακάτω είναι το τµήµα του αρχικού κώδικα, όπου ο βρόχος είναι ξεδιπλωµένος µία φορά: Loop: lw $t0, 0($s1) add $t0, $t0, $s sw $t0, 0($s1) lw $t1, -($s1) add $t1, $t1, $s sw $t1, -($s1) addi $s1, $s1, -8 bne $s1, $zero, Loop Β Σχεδιάστε ξανά τον κώδικα ώστε να αποφύγετε τα υποχρεωτικά memory stalls. Λαµβάνοντας υπόψη τα αναγκαία memory stalls συγκρίνετε τη διαφορά επίδοσης µεταξύ του αρχικού µη-ξεδιπλωµένου κώδικα (Α) και του δικού σας (µετά το ξεδίπλωµα και τη βελτιστοποίηση του κώδικα Β). Λύση α) Χωρίς βελτιστοποίηση η εκτέλεση θα γίνει ως εξής: Loop: lw $t0, 0($s1) IF-ΙD EX MEM-WB add $t0, $t0, $s IF s - ID EX MEM - WB sw $t0, 0($s1) IF - ID EX MEM-WB addi $s1, $s1, - IF ΙD EX MEM-WB bne $s1, $zero, Loop IF - ID - EX MEM-WB Για να αποφύγουµε το αναγκαίο memory stall αναδιατάσσουµε τη σειρά εκτέλεσης των εντολών: Loop: lw $t0, 0($s1) addi $s1, $s1, - add $t0, $t0, $s sw $t0, ($s1) bne $s1, $zero, Loop Αναλυτικότερα : 8 cycles Προηγµένα Θέµατα Οργάνωσης Υπολογιστών-9 ο εξ. Εργαστήριο Υπολογιστικών Συστηµάτων, ΕΜΠ - cslab@ntua, 00 3

Εξέταση Φεβρουαρίου 003 Loop: lw $t0, 0($s1) IF-ΙD EX MEM-WB addi $s1, $s1, - IF - ΙD - EX - MEM-WB add $t0, $t0, $s IF - ID EX - MEM - WB sw $t0, 0($s1) IF - ID - EX - MEM-WB bne $s1, $zero, Loop IF - ID - EX - MEM-WB 7 cycles β) Loop: lw $t0, 0($s1) lw $t1, -($s1) add $t0, $t0, $s add $t1, $t1, $s sw $t0, 0($s1) sw $t1, -($s1) addi $s1, $s1, -8 bne $s1, $zero, Loop Οπότε : Loop: lw $t0, 0($s1) IF-ΙD EX MEM-WB lw $t1, -($s1) IF ΙD EX MEM -WB add $t0, $t0, $s IF - ID EX MEM - WB add $t1, $t1, $s IF - ID EX - MEM - WB sw $t0, 0($s1) IF - ID - EX - MEM-WB sw $t1, -($s1) IF - ID EX - MEM-WB addi $s1, $s1, -8 IF ΙD - EX MEM-WB bne $s1, $zero, Loop IF - ID - EX - MEM-WB 10 cycles Σε κάθε περίπτωση, ο αριθµός των κύκλων που εκτελούνται µέχρι την έξοδο από το loop είναι: (αρ.επαναλήψεων) (αρ.κύκλων βρόχου)+ κύκλοι (το τελείωµα του τελευταίου bne) Στον µη βελτιστοποιηµένο αρχικό κώδικα : 1 8+=98cycles (Α1) Στο βελτιστοποιηµένο αρχικό κώδικα : 1 7+=86cycles (Α) Στον τελικό βελτιστοποιηµένο κώδικα : 6 10+=6cycles (Β) Εποµένως η βελτιστοποίηση είναι : Α1 Β : 98 86 = 1, 58 ή Α Β : = 1, 38 6 6 Προηγµένα Θέµατα Οργάνωσης Υπολογιστών-9 ο εξ. Εργαστήριο Υπολογιστικών Συστηµάτων, ΕΜΠ - cslab@ntua, 00

Εξέταση Φεβρουαρίου 003 Θέµα 3 ο (5%): Το ακόλουθο πρόγραµµα εκτελείται σε µηχάνηµα µε κρυφή µνήµη οργανωµένη σε blocks µε λέξεις (words, µε µήκος word = bytes) χωρητικότητας 56 bytes δεδοµένων: int i, j, c, stride, array[56]; for (i=0; i<10000; i++) for (j=0; j<56; j+=stride) array[j] = c + 5; Εξετάζουµε τη δραστηριότητα της κρυφής µνήµης που αφορά µόνο τις αναφορές στα στοιχεία του πίνακα array. Αν θεωρήσετε επιπλέον ότι κάθε ακέραιος καταλαµβάνει χώρο ίσο µε 1 λέξη, ποιος είναι ο αναµενόµενος αριθµός αναφορών στη κρυφή µνήµη που είναι επιτυχείς (hits), όταν stride=33; Τι συµβαίνει όταν stride=30; Ποιες αλλαγές θα προκύψουν αν η κρυφή µνήµη είναι συσχέτισης -δρόµων (-way set associative); Θεωρούµε ότι το στοιχείο array[0]αποθηκεύεται στο block 0 της κρυφής µνήµης. Λύση Θεωρούµε ότι η µνήµη µας είναι write allocate και ότι αρχικά είναι άδεια. 56 A) ιαθέτουµε 56 bytes µνήµη δεδοµένων, δηλαδή µνήµη µε = 6 words. 6 Εποµένως για οργάνωση direct mapped, µε λέξεις ανά block : = 16 blocks i) Για stride = 33 γράφονται οι εξής διευθύνσεις µνήµης : 0, 33, 66, 99, 13, 165, 198, 31 Αρχικά η κρυφή µνήµη είναι άδεια. Εποµένως στην πρώτη επανάληψη όλες οι αναφορές στη µνήµη είναι miss (δηλαδή 8 misses). 0 (0-1--3) (6-65-66-67) 1 (13-133-13-135) (196-197-198-199) 3 5 6 7 8 (3-33-3-35) (96-97-98-99) 9 (16-165-166-167) (8-9-30-31) 10 11 1 13 1 15 Μετά το τέλος της πρώτης επανάληψης η κρυφή µνήµη θα έχει την παραπάνω µορφή. Εποµένως και σε όλες τις επόµενες επαναλήψεις θα έχουµε από 8 misses Συνολικά: Προηγµένα Θέµατα Οργάνωσης Υπολογιστών-9 ο εξ. Εργαστήριο Υπολογιστικών Συστηµάτων, ΕΜΠ - cslab@ntua, 00 5

Εξέταση Φεβρουαρίου 003 8 10.000 = 80.000 misses ii) Για stride = 30 γράφονται οι εξής διευθύνσεις µνήµης : 0, 30, 60, 90, 10, 150, 180, 10, 0 Αρχικά η κρυφή µνήµη είναι άδεια. Εποµένως στην πρώτη επανάληψη όλες οι αναφορές στη µνήµη είναι miss (δηλαδή 9 misses). 0 (0-1--3) 1 3 (08-09-10-11) 5 (18-19-150-151) 6 (88-89-90-91) 7 (8-9-30-31) 8 9 10 11 1 (0-1--3) 13 (180-181-18-183) 1 (10-11-1-13) 15 (60-61-6-63) Μετά το τέλος της πρώτης επανάληψης η κρυφή µνήµη θα έχει την παραπάνω µορφή. Εποµένως και σε όλες τις επόµενες επαναλήψεις θα έχουµε από 9 hits Συνολικά : 9 9.999 = 89.991 hits και 9 misses 6 B) Για οργάνωση -way set associative, µε λέξεις ανά block: = 16 blocks 16 και = 8 sets i) Για stride = 33 γράφονται οι εξής διευθύνσεις µνήµης : 0, 33, 66, 99, 13, 165, 198, 31 0 (0-1--3) (6-65-66-67) (3-33-3-35) (96-97-98-99) 1 (13-133-13-135) (196-197-198-199) (16-165-166-167) (8-9-30-31) 7 Μετά το τέλος της πρώτης επανάληψης η κρυφή µνήµη θα έχει την παραπάνω µορφή. Εποµένως και σε όλες τις επόµενες επαναλήψεις θα έχουµε από 8 misses Προηγµένα Θέµατα Οργάνωσης Υπολογιστών-9 ο εξ. Εργαστήριο Υπολογιστικών Συστηµάτων, ΕΜΠ - cslab@ntua, 00 6

Εξέταση Φεβρουαρίου 003 Συνολικά και πάλι: 8 10.000 = 80.000 misses ii) Για stride = 30 γράφονται οι εξής διευθύνσεις µνήµης: 0, 30, 60, 90, 10, 150, 180, 10, 0 0 (0-1--3) 1 3 (08-09-10-11) (0-1--3) 5 (18-19-150-151) (180-181-18-183) 6 (88-89-90-91) (10-11-1-13) 7 (8-9-30-31) (60-61-6-63) Μετά το τέλος της πρώτης επανάληψης η κρυφή µνήµη θα έχει την παραπάνω µορφή. Εποµένως και σε όλες τις επόµενες επαναλήψεις (εκτός από την πρώτη) θα έχουµε από 9 hits. Συνολικά και πάλι: 9 9.999 = 89.991 hits και 9 misses Θέµα ο (0%): ίνεται µια σειρά αναφορών σε διευθύνσεις λέξεων στη µνήµη ενός υπολογιστή:, 7, 11, 5, 5, 3, 15, 9, 11, 10, 1,, 13, 7, 8, 3. Υποθέτουµε ότι έχουµε κρυφή µνήµη µε οργάνωση: i) απευθείας απεικόνισης (direct mapped) µε 8 blocks, όπου κάθε block έχει µέγεθος µια λέξη (word), ii) απευθείας απεικόνισης (direct mapped), µε 8 λέξεις (words) συνολικό µέγεθος cache, όπου κάθε block έχει µέγεθος δύο () λέξεις. iii) συνόλου συσχέτισης -δρόµων (-way set associative) µε συνολικό µέγεθος 8 λέξεις (words) όπου κάθε block έχει µέγεθος µια λέξη (Υποθέστε LRU αλγόριθµο αντικατάστασης). είξτε για τις παραπάνω περιπτώσεις οργάνωσης της κρυφής µνήµης, για κάθε αναφορά, αν είναι επιτυχής (hit) ή όχι (miss) καθώς και την τελικά περιεχόµενα της κρυφής µνήµης. Προηγµένα Θέµατα Οργάνωσης Υπολογιστών-9 ο εξ. Εργαστήριο Υπολογιστικών Συστηµάτων, ΕΜΠ - cslab@ntua, 00 7

Εξέταση Φεβρουαρίου 003 Λύση i) ιαθέτουµε µνήµη µε 8 blocks: 0 3 8 1 5 9 10 3 11 3 1 5 5 13 6 7 7 15 7 miss 11 miss 5 miss 5 miss 3 miss 15 miss 9 miss 11 hit 10 miss 1 miss miss 13 miss 8 miss 3 miss 8 ii) Η µνήµη διαθέτει 8 words. Αφού περιέχει words / block, περιέχει = blocks 0 (-5) (3-33) (8-9) 1 (-3) (10-11) (-3) (-5) (1-13) 3 (6-7) (1-15) (6-7) miss 11 miss 5 miss 5 miss 3 miss 15 miss 9 miss 11 hit 10 hit 1 miss miss 13 hit 8 hit 3 hit Προηγµένα Θέµατα Οργάνωσης Υπολογιστών-9 ο εξ. Εργαστήριο Υπολογιστικών Συστηµάτων, ΕΜΠ - cslab@ntua, 00 8

Εξέταση Φεβρουαρίου 003 8 iii) Η µνήµη διαθέτει 8 words. Αφού είναι -way set associative, περιέχει = sets 0 3 1 1 8 1 5 5 9 5 9 13 10 10 3 7 11 15 11 7 11 15 11 7 3 miss 11 miss 5 miss 5 miss 3 miss 15 miss 9 miss 11 hit 10 miss 1 miss hit 13 miss 8 miss 3 miss Προηγµένα Θέµατα Οργάνωσης Υπολογιστών-9 ο εξ. Εργαστήριο Υπολογιστικών Συστηµάτων, ΕΜΠ - cslab@ntua, 00 9