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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

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;

Ασκήσεις Caches

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

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

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

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

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

ΘΕΜΑ 2. (2,5 µονάδες) Θεωρήστε τρεις κρυφές µνήµες των 512 πλαισίων µε 8 λέξεις ανά πλαίσιο και οργανώσεις αντίστοιχα:

Τεχνολογίες Κύριας Μνήμης

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

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

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

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

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

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

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

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

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

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

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

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

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

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

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

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

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

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

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

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Οργάνωση Υπολογιστών (ΙI)

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

Θέματα Μεταγλωττιστών

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

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

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

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

Ζητήµατα Απόδοσης. Ιεραρχία Μνήµης. Αναγκαιότητα για Ιεραρχία Μνήµης. Processor-DRAM Gap (latency) Ε-85: Ειδικά Θέµατα Λογισµικού

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

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

Συνάφεια Κρυφής Μνήµης σε Επεκτάσιµα Μηχανήµατα

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

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

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

Είδη των Cache Misses: 3C s

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

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

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

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

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

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

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

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

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

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

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

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

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

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

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

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

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

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

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

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

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

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ ΟΡΓΑΝΩΣΗΣ ΥΠΟΛΟΓΙΣΤΩΝ 2η Σειρά Ασκήσεων και η Λύση Ιουλίου 2005 Οι κρυφές µνήµες χωρίς κλειδώµατα (lockup-free caches) σχεδιάστηκαν για να επιταχύνουν το ρυθµό εκτέλεσης των εντολών στον επεξεργαστή, επικαλύπτοντας το χειρισµό των αστοχιών κρυφής µνήµης (cache misses) µε την επεξεργασία άλλων εντολών ή άλλων αστοχιών κρυφής µνήµης. Στο πρόβληµα αυτό υποθέστε ότι η ιεραρχία µνήµης διαθέτει κρυφή µνήµη ενός επιπέδου, µε µέγεθος cache line 64bytes και διάδροµο επικοινωνίας κύριας µνήµης µε την κρυφή µνήµη (memory bus) 6bytes. Υποθέστε, επίσης, ότι ο χρόνος εύρεσης των ζητούµενων δεδοµένων στη µνήµη είναι t miss = 5, και ο χρόνος µεταφοράς δεδοµένων στη κρυφή µνήµη είναι cycle/6 bytes, δηλαδή για την µεταφορά ολόκληρης της cache line: t transfer = 4. Τέλος, δίνεται ότι στο σύστηµα word = 4 bytes. α) Εξετάζουµε την εκτέλεση του εξής κώδικα: for (i = 0; i < 000; i++) { a += A[i] + B[i]; Θεωρούµε ότι οι τιµές των µεταβλητών 4 i, a βρίσκονται στους καταχωρητές $s4, $t0 και οι διευθύνσεις των πινάκων A και B στους $s και $s2. Το περιεχόµενο του καταχωρητή $s4 είναι αρχικά 0. Ο αντίστοιχος κώδικας σε assembly είναι ο εξής: Loop: add $t, $s, $s4 add $t2, $s2, $s4 lw $t3, 0($t) lw $t4, 0($t2) add $t0, $t0, $t3 add $t0, $t0, $t4 addi $s4, $s4, 4 bne $s4, $s5, Loop Exit: Στον πίνακα που ακολουθεί φαίνεται η ροή εκτέλεσης του παραπάνω βρόχου, υποθέτοντας ότι κανένα από τα στοιχεία των πινάκων A και B δεν βρίσκονται ήδη στην κρυφή µνήµη (m = miss latency, t = transfer latency, A = lw from A, B = lw from B, a = add/addi, b = branch). Επιπλέον, διαθέτουµε απλή κρυφή µνήµη.

0 4 5 6 7 8 9 0 4 5 6 7 8 9 array B m m m m m t t Execute a a A B 0 4 5 6 7 8 9 0 4 5 6 7 8 9 array B t t Execute a a a b a a A B a a a b a a A B a Πόσοι κύκλοι απαιτούνται για την εκτέλεση των 000 επαναλήψεων του for loop; β) Θεωρείστε ότι ο σχεδιασµός της κρυφή µνήµης επιτρέπει την προώθηση στον επεξεργαστή της ζητούµενης λέξης αµέσως µόλις αφιχθεί στην κρυφή µνήµη, χωρίς να χρειάζεται να ολοκληρωθεί η µεταφορά ολόκληρης της cache line. Ωστόσο, µόνο µία αστοχία µπορεί να βρίσκεται σε εκκρεµότητα. Εξετάστε δύο ενδεχόµενα: i) Πρέπει να ολοκληρωθεί η µεταφορά ολόκληρης της cache line στην κρυφή µνήµη. Μόνο τότε µπορεί να αποσταλεί η επόµενη αίτηση αστοχίας στη µνήµη. ii) Αρκεί να αφιχθεί η ζητούµενη από τον επεξεργαστή λέξη, για να υπάρχει η δυνατότητα αποστολής της επόµενης αίτησης αστοχίας στη µνήµη. Φτιάξτε από ένα διάγραµµα χρονισµού για κάθε µία από τις περιπτώσεις (βi) και (βii), όπως αυτό του παραπάνω πίνακα. Πόσοι κύκλοι απαιτούνται για την εκτέλεση των 000 επαναλήψεων του for loop; Στην περίπτωση (βi) υπάρχει τρόπος να µειώσουµε τον αριθµό των κύκλων που απαιτούνται για την εκτέλεση του βρόχου µε βελτιστοποίηση του κώδικα; γ) Θεωρείστε ότι ο σχεδιασµός της κρυφή µνήµης επιτρέπει την προώθηση στον επεξεργαστή της ζητούµενης λέξης αµέσως µόλις αφιχθεί στην κρυφή µνήµη, χωρίς να χρειάζεται να ολοκληρωθεί η µεταφορά ολόκληρης της cache line, και επιπλέον την εκκρεµότητα πολλών αστοχιών. Φτιάξτε ένα διάγραµµα χρονισµού για αυτόν τον σχεδιασµό της κρυφής µνήµης, όπως αυτό του παραπάνω πίνακα. Πόσοι κύκλοι απαιτούνται για την εκτέλεση των 000 επαναλήψεων του for loop; Λύση α) Υποθέτοντας ότι κανένα από τα στοιχεία των πινάκων A και B δεν βρίσκονται ήδη στην κρυφή µνήµη, συνεπάγεται ότι κατά την πρώτη αναφορά σε ένα από τα στοιχεία µίας cache line θα πραγµατοποιείται cache miss. Οπότε, θα φορτώνεται µία ολόκληρη cache line στην cache. Όπως φαίνεται από το τµήµα του κώδικα που εξετάζουµε, γίνεται σειριακή προσπέλαση σε στοιχεία µονοδιάστατων πινάκων (τα οποία προφανώς είναι αποθηκευµένα σε γειτονικές θέσεις µνήµης). Άρα, κατά την σειριακή προσπέλαση καθενός από τους πίνακες πραγµατοποιείται miss, και στη συνέχεια (κ-) hits, όπου κ ο αριθµός των λέξεων που χωρούν σε µία cache line. µ έγεθος cache line 64bytes κ = = = 6words µ έγεθος λέξης 4bytes / word ηλαδή πραγµατοποιείται miss, 5 hits, miss, 5 hits miss, 7 hits. Υποθέτουµε δηλαδή, ότι το πρώτο στοιχείο του πίνακα A είναι αποθηκευµένο στην πρώτη θέση µίας cache line. Οµοίως για τον πίνακα B. Επιπλέον, οι δύο cache lines που περιέχουν τα στοιχεία των δύο διαφορετικών πινάκων και προσπελαύνονται εναλλακτικά, δεν συγκρούονται στην cache. 2

000 Εποµένως στις 000 επαναλήψεις του βρόχου θα έχουµε = 63 6 misses και (000 63) = 937 hits. Σε περίπτωση που το πρώτο στοιχείο καθενός από τους δύο πίνακες δεν είναι ευθυγραµµισµένο στην αρχή µίας cache line, στην χειρότερη περίπτωση θα είχαµε 64 misses και 936 hits. Για παράδειγµα, µία από αυτές τις περιπτώσεις είναι: miss, 6 hits, miss, 5 hits miss, 5 hits, miss. Όπως φαίνεται στον πίνακα της εκφώνησης, στην περίπτωση µίας επανάληψης του βρόχου όπου οι αναφορές στη µνήµη είναι misses, η διάρκεια εκτέλεσης είναι 26 κύκλοι. Στην περίπτωση που οι αναφορές στη µνήµη είναι hits, η διάρκεια εκτέλεσης είναι 8 κύκλοι. Συνολικά: 26 63+8 937=934 κύκλοι εκτέλεσης 26 64+8 936=952 κύκλοι εκτέλεσης. βi) Αν η ζητούµενη λέξη προωθείται στον επεξεργαστή αµέσως µόλις αφιχθεί στην κρυφή µνήµη, αλλά πρέπει να ολοκληρωθεί η µεταφορά ολόκληρης της cache line στην κρυφή µνήµη για να επιλυθεί η εκκρεµότητα, το σχήµα εκτέλεσης φαίνεται στον παρακάτω πίνακα. ηλαδή, µετά την µεταφορά της ζητούµενης λέξης στον επεξεργαστή (µετά τον πρώτο κύκλο t), µπορεί να συνεχιστεί κανονικά η εκτέλεση των εντολών που ακολουθούν ενώ ταυτόχρονα µεταφέρονται οι υπόλοιπες λέξεις της cache line στην cache (βλ. επικάλυψη κύκλων t µε τους κύκλους aab). Όταν όµως διαγνωσθεί µία εντολή προσπέλασης της µνήµης, η οποία είναι miss, θα πρέπει να περιµένουµε να επιλυθεί η προηγούµενη αστοχία (να ολοκληρωθεί η µεταφορά της cache line στην cache: να ολοκληρωθούν και οι 4 κύκλοι t) για να προωθηθεί η επόµενη αστοχία στην µνήµη (βλ. τι συµβαίνει µε την εντολή ανάγνωσης B). 0 4 5 6 7 8 9 0 4 5 6 7 8 9 array B m m m m m t t t Execute a a A B a a 0 4 5 6 7 8 9 0 4 5 6 7 8 9 array B t Execute a b a a A B a a a b a a A B a a a b a εκτέλεσης είναι 22 κύκλοι. Στην περίπτωση που οι αναφορές στη µνήµη είναι hits, οµοίως µε το Συνολικά: 22 63+8 937=8882 κύκλοι εκτέλεσης 22 64+8 936=8896 κύκλοι εκτέλεσης. Μπορούµε όµως να πραγµατοποιήσουµε την εξής αναδιάταξη κώδικα: Loop: add $t, $s, $s4 lw $t3, 4($t) add $t2, $s2, $s4 add $t0, $t0, $t3 lw $t4, 0($t2) addi $s4, $s4, 4 add $t0, $t0, $t4 bne $s4, $s5, Loop 3

Κατά αυτόν τον τρόπο γλιτώνουµε τους δύο κύκλους καθυστέρησης µετά από κάθε εντολή lwa η οποία καταλήγει σε αστοχία. Εποµένως, στην περίπτωση µίας επανάληψης του βρόχου όπου οι αναφορές στη µνήµη είναι misses, η διάρκεια εκτέλεσης είναι 20 κύκλοι. Και οι συνολικοί χρόνοι εκτέλεσης είναι: 20 63+8 937=8756 κύκλοι εκτέλεσης 20 64+8 936=8768 κύκλοι εκτέλεσης. βii) Αν η ζητούµενη λέξη προωθείται στον επεξεργαστή αµέσως µόλις αφιχθεί στην κρυφή µνήµη, και αρκεί να αφιχθεί η ζητούµενη από τον επεξεργαστή λέξη για να επιλυθεί η εκκρεµότητα, το σχήµα εκτέλεσης φαίνεται στον παρακάτω πίνακα: 0 4 5 6 7 8 9 0 4 5 6 7 8 9 array B m m m m m t t t t Execute a a A B a a a b 0 4 5 6 7 8 9 0 4 5 6 7 8 9 array B Execute a a A B a a a b a a A B a a a b a a A εκτέλεσης είναι 22 κύκλοι. Στην περίπτωση που οι αναφορές στη µνήµη είναι hits, οµοίως µε το Συνολικά: 20 63+8 937=8756 κύκλοι εκτέλεσης 20 64+8 936=8768 κύκλοι εκτέλεσης. γ) Αν η ζητούµενη λέξη προωθείται στον επεξεργαστή αµέσως µόλις αφιχθεί στην κρυφή µνήµη, και επιπλέον επιτρέπεται η εκκρεµότητα πολλών αστοχιών, το σχήµα εκτέλεσης είναι το εξής: ηλαδή, µπορούν πλέον να επικαλύπτονται οι χρόνοι ανάγνωσης από τη µνήµη, όχι όµως οι χρόνοι µεταφοράς των δεδοµένων στην cache µέσω του memory bus. Κάτι τέτοιο εξάλλου θα ήταν αδύνατο, εκτός και αν διπλασιαζόταν το εύρος του memory bus. Στην περίπτωσή µας (όπου το memory bus έχει σταθερό εύρος), θεωρούµε τη βέλτιστη τεχνική µεταφοράς των δεδοµένων: τα δεδοµένα όλων των αστοχιών που εκκρεµούν µεταφέρονται εναλλακτικά (interleaved way), έτσι ώστε τα ζητούµενα δεδοµένα να φτάνουν στον επεξεργαστή όσο το δυνατόν γρηγορότερα. Με τον επιλεγµένο τρόπο οι εξαρτήσεις δεδοµένων καθυστερούν την εκτέλεση του προγράµµατος κατά τον ελάχιστο δυνατό χρόνο. 0 4 5 6 7 8 9 0 4 5 6 7 8 9 array B m m m m m t t t t Execute a a A B a a a b a a A B a a a 0 4 5 6 7 8 9 0 4 5 6 7 8 9 array B Execute b a a A B a a a b a a A B a a a b a 4

εκτέλεσης είναι 3 κύκλοι. Στην περίπτωση που οι αναφορές στη µνήµη είναι hits, οµοίως µε το Συνολικά: 3 63+8 937=835 κύκλοι εκτέλεσης 3 64+8 936=8320 κύκλοι εκτέλεσης. 5