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

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

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

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

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

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

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

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

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

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

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές

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

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

Ασκήσεις Caches

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

Ασκήσεις Caches

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Ιεραρχία μνήμης: προχωρημένα θέματα

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

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

Εικονική Μνήμη (virtual memory)

Εικονική Μνήμη (Virtual Μemory)

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

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

Κεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση

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

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

Εικονική Μνήμη (Virtual Μemory)

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών

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

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

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

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

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

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

ΔΙΑΛΕΞΕΙΣ 6-7: ΚΡΥΦΗ ΜΝΗΜΗ (Cache)

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

Cach O p i timisati tions

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

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

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

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

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

ΔΙΑΛΕΞΕΙΣ 6-7: ΚΡΥΦΗ ΜΝΗΜΗ (Cache)

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

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

Κρυφή Μνήµη. Λειτουργικά Συστήµατα ΙΙ UNIX. Μάθηµα: Aναπλ. Καθ. Κ. Λαµπρινουδάκης ιδάσκων: &καιτοπλήθοςτωνπλαισίωντηςκρυφήςµνήµης

Σειρά Ασκήσεων 11: Κρυφές Μνήμες και η Επίδοσή τους

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Ενότητα 7(α) - Ιεραρχία Μνήμης

Με τον όρο μνήμη αναφερόμαστε στα μέσα που χρησιμοποιούνται για την αποθήκευση προγραμμάτων και δεδομένων σε έναν υπολογιστή ή άλλη ψηφιακή

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

(advanced_ca, ακ. έτος Cache Optimisations

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

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφάλαιο 5: Ιεραρχία Μνήμης Memory Hierarchy

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

Η ιεραρχία της μνήμης

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

Επανάληψη Ιεραρχία Μνήμης Memory Hierarchy. Κεφάλαιο 5- Ιεραρχία Μνήμης

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

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

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

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

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

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

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;

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Επανάληψη Ιεραρχία Μνήμης Memory Hierarchy. Κεφάλαιο 5- Ιεραρχία Μνήμης

Σχεδιασµός της Ιεραρχίας Μνήµης. Pedro Trancoso

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

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

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

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

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

3. Η ιεραρχία της μνήμης

Εικονική Μνήμη (virtual memory)

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

Λειτουργικά Συστήματα Η/Υ

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Ενότητα 7 Ιεραρχία Μνήμης

Υλοποίηση DMA για υπολογιστικό σύστημα με Scratch pad μνήμη και βελτιστοποιημένη υλοποίηση εφαρμογών

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

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

Transcript:

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 7ο μάθημα: Κρυφές μνήμες (cache) - εισαγωγή Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου

Σύστημα μνήμης! Η μνήμη είναι σημαντικό κομμάτι ενός υπολογιστή! Επηρεάζει κόστος, ταχύτητα, κατανάλωση ισχύος! Διάφορες τεχνολογίες μνήμης Παλιά: π.χ. μαγνητική μνήμη πυρήνα Σκληροί δίσκοι (μαγνητικοί) Δίσκοι CD, DVD, Blue- Ray (οπτικοί) Δυναμική RAM (ηλεκτρονική) Στατική RAM (ηλεκτρονική) Μνήμη Flash (ηλεκτρονική)! Μόνιμη ή προσωρινή (vola_le); 2

Ταχύτητα μνήμης! Καθυστέρηση (latency) για μία προσπέλαση σε πόση ώρα θα έρθει η τιμή μιας μεταβλητής λέγεται και χρόνος προσπέλασης! Ρυθμός μεταφοράς (bandwidth) Αριθμός bytes ανα δευτερόλεπτο! Προσπέλαση γίνεται πάνω από μία φορά ανά εντολή μία για την προσκόμιση της εντολής άλλη μία αν η εντολή είναι load, store! Η καθυστέρηση δεν μπορεί να «κρύβεται» από μεγάλο ρυθμό μεταφοράς για πολύ εντολές: ποινή διακλάδωσης δεδομένα: εξαρτήσεις 3

Ιεραρχία μνήμης! Σε όλες τις τεχνολογίες μνήμης, η χωρητικότητα (και το χαμηλό κόστος) «συναγωνίζονται» την ταχύτητα όσο πιο μεγάλη (και φτηνή ανά bit), τόσο πιο αργή! Αλλά, ιδανικά, θέλουμε και τα δύο!! Λύση: ιεραρχία μνήμης! Γρήγορη μνήμη κοντά στον επεξεργαστή και μικρή γιατί το κόστος είναι μεγάλο! Μεγάλη μνήμη πιο μακριά και αργή για να μην είναι απαγορευτικά ακριβή 4

Αρχή της τοπικότητας αναφορών! Τα προγράμματα προσπελαύνουν μόνο μικρά τμήματα της μνήμης κάθε στιγμή Διευθύνσεις επαναλήψεις Εντολές Στοίβα κλήση υπορουτίνας παράμετροι επιστροφή υπορουτίνας Δεδομένα μεταβλητές Χρόνος 5

Είδη τοπικότητας αναφορών! Στο χρόνο: μια διεύθυνση που προσπελαύνεται τη χρονική στιγμή t έχει μεγάλη πιθανότητα να ξαναπροσπελαστεί σε χρόνο t+δ temporal locality! Στο χώρο: όταν μια διεύθυνση α προσπελαστεί τη χρονική στιγμή t, με μεγάλη πιθανότητα, μια διεύθυνση α±θ θα προσπελαστεί σε χρόνο t+δ spa_al locality 6

Εκμετάλευση της ιδιότητας! Οταν μια διεύθυνση μνήμης προσπελαύνεται! Το υλικό τοποθετεί σε υψηλότερες (κοντά στον πυρήνα) θέσεις της ιεραρχίας μνήμης τα δεδομένα,εντολές που αντιστοιχούν στη διεύθυνση! και άλλα/άλλες που αντιστοιχούν σε γειτονικές διευθύνσεις το σύνολο των δεδομένων που μεταφέρεται λέγεται γραμμή κρυφής μνήμης (line ή block) Address Address Core Data CACHE Data Main Memory 7

Οι 4 ερωτήσεις! Block placement: Πού θα τοποθετηθεί η γραμμή;! Block iden_fica_on: Πώς θα βρούμε μια γραμμή;! Block replacement: Ποιά γραμμή θα αντικατασταθεί;! Write strategy: Τί γίνεται με τις εγγραφές; 8

Τοποθέτηση γραμμών Block Number Memory 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 2 2 2 2 2 2 2 2 2 2 0 1 2 3 4 5 6 7 8 9 3 3 0 1 Set Number 0 1 2 3 0 1 2 3 4 5 6 7 Cache τοποθέτηση γραµµής 12 Fully (2-way) Set Direct Associative Associative Mapped οπουδήποτε οπουδήποτε µόνο στη στο set 0 θέση 4 (12 mod 4) (12 mod 8) 9

Πώς βρίσκουμε μια γραμμή;! Πολλές γραμμές της μνήμης μπορούν να τοποθετηθούν σε κάθε θέση της κρυφής μνήμης! Για να τις ξεχωρίσουμε χρειάζεται μια ετικέτα διεύθυνσης (address tag) ώστε να μπορούμε να ελέγξουμε αν τα δεδομένα που ζητάει ο πυρήνας βρίσκονται στην κρυφή μνήμη (ευστοχία hit) ή όχι (αστοχία miss) αποθηκεύεται μαζί με τα δεδομένα Η διεύθυνση της πρώτης λέξης είναι η ετικέτα όλης της γραμμής! Χρειάζεται 1 valid bit για να ξεχωρίζουν οι «άδειες» γραμμές! Αν χρησιμοποιήσουμε μέρος της διεύθυνσης για να βρούμε τη θέση της γραμμής, τότε το tag είναι μικρότερο! direct mapped, k- way associa_ve 10

Τμήματα διεύθυνσης Block address Tag Index Block offset! Block offset διεύθυνση byte μέσα στη γραμμή! Index διεύθυνση του set! Tag τμήμα της διεύθυνσης που δεν χρησιμοποιείται, άρα αποθηκεύεται και συγκρίνεται 11

Αντικατάσταση γραμμής! Γενικά η κρυφή μνήμη είναι πάντα «γεμάτη» Κάθε αστοχία πρέπει να αντικαταστήσει μια υπάρχουσα γραμμή! Ιδανικά θα πρέπει να αντικαταστήσουμε τη γραμμή που θα χρειαστούμε πιο μακριά στο μέλλον χρειάζεται πρόβλεψη! Συνηθισμένες στρατηγικές αντικατάστασης: τυχαία (random) Least Recently Used (LRU): καλές επιδόσεις, δύσκολη υλοποίηση για μεγάλα set First in, first out (FIFO): μοιάζει με LRU, ευκολότερη υλοποίηση 12

Οργάνωση direct mapped Tag Index Block Offset byte offset t V Tag k Data Block b 2 k lines = t HIT Data Word 13

Εγγραφές! Η προσπέλαση και σύγκριση των tags δεν μπορεί να γίνει παράλληλα με τη πρόσβαση στα δεδομένα! Οι εγγραφές αφορούν μέρος της γραμμής Πολιτικές εγγραφής:! Write- through εγγραφή και στη κρυφή μνήμη και στο επόμενο επίπεδο! Write- back εγγραφή μόνο στη κρυφή μνήμη. Εγγραφές στο επόμενο επίπεδο μόνο όταν αντικατασταθεί η γραμμή 14

Write- back! Μία αστοχία ανάγνωσης μπορεί να προκαλέσει μια εγγραφή σε κατώτερο επίπεδο! Dirty- bit περιορίζει τις εγγραφές στο επόμενο επίπεδο μόνο στις απαραίτητες! Δυσκολίες συνοχής μνήμης: διαφορετικές τιμές σε διαφορετικά επίπεδα μνήμης! Λιγότερη «κίνηση» στην έξοδο της κρυφής μνήμης! Write- buffer: (συνήθως για write- though) προσωρινή αποθήκευση για εγγραφές μέχρι να αποθηκευθούν στο επόμενο επίπεδο διαφορετικοί από store- buffer 15

Write alloca_on! Συχνά τα δεδομένα που γράφονται δεν χρειάζονται άμμεσα π.χ. αρχικοποίηση πινάκων! Δύο επιλογές:! Write- allocate η γραμμή τοποθετείται στη κρυφή μνήμη όπως στις αναγνώσεις χρήσιμο αν αργότερα γίνει και ανάγνωση! no- write allocate η εγγραφή προσπερνάει τη κρυφή μνήμη 16

Ξεχωριστές κρυφές μνήμες! Οι κρυφές μνήμες μπορεί να είναι κοινές για εντολές και δεδομένα ή ξεχωριστές! Κοινές κρυφές μνήμες αποτελούν δομικό κίνδυνο σε κάθε κύκλο προσκομίζεται 1 εντολή και πολλές φορές χρειάζεται και προσπέλαση δεδομένων! Στο πρώτο επίπεδο κρυφή μνήμης είναι ξεχωριστές για εντολές και δεδομένα! Το πλεονέκτημα των κοινών κρυφών μνημών είναι ότι μοιράζεται η χωρητικότητα δυναμικά 17

The Opteron data cache! Χωρητικότητα: 64Κ! Μέγεθος γραμμής: 64- byte! 2- way associa_ve, LRU, write- back, write- allocate! Διευθύνσεις 48- bit (virtual) 40- bit physical! Block offset:?! Index:? 18

The Opteron $ schema_c 19

Αστοχίες στον Opteron! Μετά τη σύγκριση, αν δεν βρεθεί η γραμμή, 64 bytes προσκομίζονται από το επόμενο επίπεδο! Καθυστέρηση: 7 κύκλοι για τα πρώτα 8 bytes και μετά 2 κύκλοι για κάθε 8 bytes ο δίαυλος (bus) μεταφέρει 8 bytes παράλληλα! Αντικατάσταση: LRU κάθε προσπέλαση ανανεώνει κάποια bit πληροφορίας 20

Write- back στον Opteron! Η κρυφή μνήμη του Opteron είναι write- back! Κρατάει ένα dirty bit ανά γραμμή για να μπορεί να αγνοεί καθαρές γραμμές όταν αντικαθιστούνται! Οταν χρειάζεται αντικατάσταση η «γραμμή θύμα» κρατιέται στο Vic_m Buffer μέχρι 4 γραμμές αδειάζει όποτε βρεθεί ευκαιρία 21

Αλγόριθμοι LRU! Κάθε θέση γραμμής κρατάει πληροφορίες για το χρόνο τελευταίας προσπέλασης επιπλέον του tag, dirty, valid πρέπει να ανανεώνεται (ανάγνωση, εγγραφή) σε κάθε προσπέλαση χωρίς να επηρεάσει το κύκλο ρολογιού! Προσεγγιστικές μέθοδοι για μεγάλη associa_vity 0 1 2 3 0 1 2 3 22

Μέτρα επίδοσης! Hit rate: κλάσμα των προσπελάσεων που ευστοχούν στη κρυφή μνήμη! Miss rate: 1 Hit rate! Miss penalty: χρόνος τοποθέτησης μιας γραμμής από κατώτερο επίπεδο ιεραρχίας μνήμης στη κρυφή μνήμη! Hit _me: χρόνος προσπέλασης κρυφής μνήμης (περιλαμβάνει τη σύγκριση tag) 23

Επίδοση επεξεργαστή! CPU _me = IC CPI CC! Το CPI, όπως το ξέραμε μέχρι τώρα περιλαμβάνει το hit _me στη κρυφή μνήμη! θεωρούσαμε ότι hit _me = 1! Οι αστοχίες μνήμης προκαλούν αύξηση στο ιδανικό CPI! CPU _me = IC (CPI core + memory stall cycles) CC Memory stall cycles = Memory accesses Program = Instructions Program Misses Instruction Miss rate Miss penalty Miss penalty 24

Μέτρα επίδοσης (2) Ισοδύναμο μέτρο: misses/instruc_on Memory accesses Program Miss rate = Instructions Program Misses Instruction Misses Instruction = Miss rate Memory accesses Instruction 25

Παράδειγμα! I- cache miss rate = 2%! D- cache miss rate = 4%! Miss penalty = 100 cycles! Base CPI (ideal cache) = 2! Load & stores αποτελούν το 36% των εντολών Miss cycles ανά εντολή: miss rate miss penalty! I- cache: 1 0.02 100 = 2! D- cache: 0.36 0.04 100 = 1.44! Πραγματικό CPI = 2 + 2 + 1.44 = 5.44! Ιδανικό CPI=2 άρα στη πραγματικότητα το σύστημα είναι 5.44/2 =2.72 φορές πιο αργό από το ιδανικό 26

Μέσος χρόνος προσπέλασης! Περιλαμβάνει και το χρόνο ευστοχίας κατάλληλο μέτρο για όλο το σύστημα μνήμης! Average Memory Access Time (AMAT) AMAT = Hit _me + Miss rate Miss penalty %Instruc_ons * (Hit _me + Instr miss rate * Miss penalty) + %Data * (Hit _me + Data miss rate * Miss penalty)! Παράδειγμα κύκλος ρολογιού CPU: 1ns, hit _me = 1 κύκλος, miss penalty = 20 κύκλοι, I- cache miss rate = 5% AMAT = 1 + 0.05 20 = 2 κύκλοι = 2ns Δεν είναι πάντα ακέραιος αριθμός κύκλων, γιατί είναι μέσος όρος 27

Παράδειγμα! Σύγκριση: Ξεχωριστές κρυφές μνήμες 16ΚΒ I$, 16KB D$ Κοινή κρυφή μνήμη 32ΚΒ! Misses ανά 1000 εντολές: I$ (16ΚΒ) - 3.82, D$ (16ΚΒ) 40.9, Unified (32ΚΒ) 43.3! 36% εντολών προσπελαύνουν δεδομένα! 74% των προσπελάσεων μνήμης είναι για προσκόμιση εντολών! Hit _me = 1 κύκλος! Miss penalty = 100 κύκλοι! Load/store χρειάζεται 1 επιπλέον κύκλο για κοινή κρυφή μνήμη! Ποιό σύστημα έχει μικρότερο συνολικό miss rate?! Ποιό σύστημα έχει μικρότερο ΑΜΑΤ? 28

Λύση! Miss rate (I$) = (3.82/1000)/1.0 = 0.004! Miss rate (D$) = (40.9/1000)/0.36 = 0.114! Miss rate (Unified) = 43.3/1000/(1.0+0.36) = 0.0318! Split caches rate = 0.74*0.004 + 0.26*0.114 = 0.0326! Η κοινή είναι κάπως καλύτερη! ΑΜΑΤsplit = 0.74*(1+0.004*100) + 0.26*(1+0.114*100)=3.76! AMATunified = 0.74*(1+0.0318*100)+0.26*(1+1+0.0318*100) = 3.81 29

Παράδειγμα! Εξετάζουμε 2 διαφορετικές οργανώσεις cache: direct- mapped, 2- way set associa_ve 128KB, block/line size 64 bytes 65ns miss penalty 1.4 memory references / instruc_on CPIexe = 1.6 hit _me = 1 cycle! Direct mapped: clock cycle = 0.35ns miss rate = 2.1%! 2- way assoc: clock cycle = 1.35*0.35ns=0.4725ns miss rate = 1.9% 30

Λύση! ΑΜΑΤ = Hit _me + miss rate * Miss penalty! AMAT dm = 0.35+0.021*65 = 1.72ns! AMAT 2w = 1.35*0.35+0.019*65=1.71ns! CPU _me = IC (CPI exe + Misses/Instruc_on * miss penalty) * clock cycle _me! CPU dm = IC*(1.6*0.35 + 0.021*1.4*65)=2.47*IC! CPU 2w = IC*(1.6*0.35*1.35+0.019*1.4*65)=2.49*IC! CPU 2w = 1.01*CPU dm 31

Επίδοση επεξεργαστή και ΑΜΑΤ! Ποιά είναι η σχέση ΑΜΑΤ και απόδοσης επεξεργαστή?! Υπάρχουν και άλλοι λόγοι που προκαλούν memory stalls π.χ. ένα περιφερειακό προσπελαύνει τη μνήμη! Εξαρτάται και από το είδος επεξεργαστή εκτέλεση εκτός σειράς κρύβει μέρος των memory stalls! Για OOO επεξεργαστές Memory stall cycles = Instruction Misses (Total miss latency - Overlapped miss latency) Instruction 32

Παράδειγμα! Direct- mapped caches, όπως το προηγούμενο παράδειγμα! Ο ένας επεξεργαστής είναι OOO: 30% των 65ns miss penalty επικαλύπτεται ο κύκλος ρολογιού μεγαλώνει * 1.35 33

Λύση! AMAT OOO = 0.35*1.35+0.021*0.7*65) = 1.43ns! AMAT inorder = 0.35+0.021*65 = 1.72ns! CPU OOO = IC * (1.6*0.35*1.35 + 0.021*1.4*0.7*65)=2.09*IC! CPU dm = IC*(1.6*0.35 + 0.021*1.4*65)=2.47*IC! CPU dm = 1.18 * CPU OOO 34

Βελτιστοποίηση κρυφής μνήμης! AMAT = Hit _me + Miss rate * Miss penalty! Μείωση του miss rate μεγαλύτερο μέγεθος γραμμής μεγαλύτερη χωρητικότητα κρυφής μνήμης μεγαλύτερη associa_vity! Μείωση του miss penalty πολλαπλά επίπεδα κρυφών μνημών προτεραιότητα στις αναγνώσεις! Μείωση του hit _me αποσύνδεση μετάφρασης διεύθυνσης από την προσπέλαση της κρυφής μνήμης 35

Είδη αστοχιών τα τρία C! Compulsory (cold start) η πρώτη προσπέλαση σε μια γραμμή! Capacity Δεν χωράει ολόκληρο το working set ενός προγράμματος Κάποιες γραμμές αντικαθίστανται και επαναπροσκομίζονται! Conflict (collision) Για όλες τις οργανώσεις εκτός fully- associa_ve Αντικαταστάσεις εξαιτίας της μεθόδου τοποθέτησης: πολλές γραμμές αντιστοιχούν στο ίδιο set 36

Τα τρία C 37

Τα τρία C 38

Μεγάλες γραμμές! Εκμετάλευση της spa_al locality! Μείωση των compulsory misses! Αύξηση του Miss penalty περισσότερος χρόνος μεταφοράς! Αύξηση conflict misses περισσότερες γραμμές αντιστοιχούν στα, λιγότερα πλέον, set 39

Μεγάλες γραμμές 10% 4K Miss rate 5% 16K 64K 0% 256K 16 32 64 128 256 Block size 40

Μεγάλες γραμμές! Δεν υπάρχει λόγος αύξησης μεγέθους γραμμής όταν αυξάνει το miss rate ή το ΑΜΑΤ! Το βέλτιστο μέγεθος γραμμής είναι συχνά συνάρτηση της χωρητικότητας της κρυφής μνήμης, της καθυστέρησης και του ρυθμού μεταφοράς του υπόλοιπου συστήματος μνήμης! Μεγάλη καθυστέρηση και μεγάλος ρυθμός μεταφοράς ευνοούν μεγάλες γραμμές για μικρή αύξηση miss penalty η cache παίρνει πιο πολλά bytes 41