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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cach O p i timisati tions

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

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

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

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

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

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

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

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

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

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

Μάθημα 8: Διαχείριση Μνήμης

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

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

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

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

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

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

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

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

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

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;

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

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

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

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

Διαχείριση Κύριας Μνήμης

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα

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

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Πρόβλεψη διακλάδωσης

Transcript:

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

Το σημερινό μάθημα Κρυφές μνήμες (cache memory) Βασική οργάνωση, παράμετροι: γραμμές, συσχετιστικότητα, συνολική χωρητικότητα Επίδοση: hit/miss rate, average memory access Tme Είδη αστοχιών Πολλαπλά επίπεδα $ Εικονική μνήμη εισαγωγή βοηθήματα υλικού για γρήγορη μετάφραση διευθύνσεων 2

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

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

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

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

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

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

Οι 4 ερωτήσεις Ερώτηση 0: πότε φέρνουμε μια γραμμή στη κρυφή μνήμη; Block placement: Πού θα τοποθετηθεί η γραμμή; Block identficaton: Πώς θα βρούμε μια γραμμή; Block replacement: Ποιά γραμμή θα αντικατασταθεί; Write strategy: Τί γίνεται με τις εγγραφές; 9

Τοποθέτηση γραμμών 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) 10

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

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

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

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

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

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

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

Περιγραφή κρυφής μνήμης Συνολική χωρητικότητα δεδομένων ή συνολικός αριθμός γραμμών, C δεν μετράμε τα tags στη χωρητικότητα Μέγεθος γραμμής (line/block size) L = 2 l, δύναμη του 2 Συσχετιστικότητα (associatvity), Α δεν είναι απαραίτητα δύναμη του 2 C/A γραμμές ανά bank, πρέπει να είναι δύναμη του 2 Διευθυνσιοδοτείται από το index Αν το A δεν είναι δύναμη του 2, ορίζουμε A τη μικρότερη δύναμη του 2 > Α Οι γραμμές ανά bank είναι C/A 18

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

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

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

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

Παράδειγμα 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 φορές πιο αργό από το ιδανικό 23

Μέσος χρόνος προσπέλασης Περιλαμβάνει και το χρόνο ευστοχίας κατάλληλο μέτρο για όλο το σύστημα μνήμης Average Memory Access Time (AMAT) AMAT = Hit Tme + Miss rate Miss penalty %InstrucTons * (Hit Tme + Instr miss rate * Miss penalty) + %Data * (Hit Tme + Data miss rate * Miss penalty) Δεν είναι πάντα ακέραιος αριθμός κύκλων, γιατί είναι μέσος όρος 24

Απόδοση επεξεργαστή και ΑΜΑΤ Υπάρχουν και άλλοι λόγοι που προκαλούν memory stalls π.χ. ένα περιφερειακό προσπελαύνει τη μνήμη Εξαρτάται και από το είδος επεξεργαστή εκτέλεση εκτός σειράς κρύβει μέρος των memory stalls 25

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

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

Τα τρία C 28

Τα τρία C 29

Μεγάλες γραμμές Εκμετάλευση της spatal locality Μείωση των compulsory misses Αύξηση του Miss penalty περισσότερος χρόνος μεταφοράς: T mem = T access + L/w * T bus Αύξηση conflict misses περισσότερες γραμμές αντιστοιχούν στα, λιγότερα πλέον, set 30

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

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

Μεγαλύτερη associatvity Rules of thumb: 8- way has as good a miss rate as fully associatve 2:1 cache rule of thumb direct mapped μεγέθους Ν έχει ίδιο miss rate με 2- way set- associatve μεγέθους Ν/2 Γενικά αυξάνοντας την associatvity αυξάνει ο κύκλος ρολογιού Σε ένα γρήγορο επεξεργαστή η παραπάνω πολυπλοκότητα μειώνει το ρυθμό ρολογιού αλλά το αυξημένο miss penalty (σε αριθμό κύκλων) ευνοεί το καλύτερο miss rate της μεγαλύτερης associatvity 33

Πολλαπλά επίπεδα cache Η τεχνολογία DRAM δεν βελτιώνει τη ταχύτητα προσπέλασης με τόσο γρήγορο ρυθμό όσο η τεχνολογία επεξεργαστών το miss penalty σε αριθμό κύκλων ρολογιού μεγαλώνει Πολλαπλά επίπεδα cache βελτιώνουν το miss penalty Level 2, level 3 κρυφές μνήμες τοποθετούνται στο ολοκληρωμένο του επεξεργαστή/πυρήνα AMAT = Hit Tme L1 + Miss rate L1 * Miss penalty L1 Miss penalty L1 = Hit Tme L2 + Miss rate L2 * Miss penalty L2 34

Global, local misses Πώς ορίζονται τα miss rate για κάθε επίπεδο? Local miss rate ο αριθμός αστοχιών μιας cache διαιρεμένος με τον αριθμό προσπελάσεων της ίδιας cache Ο προηγούμενος τύπος χρησιμοποιεί local miss rates Global miss rate - ο αριθμός αστοχιών μιας cache διαιρεμένος με τον αριθμό προσπελάσεων που προκαλεί ο επεξεργαστής Το local miss rate είναι σχετικά μικρό για το 2ο επίπεδο το 1 ο επίπεδο εκμεταλεύτηκε το μεγαλύτερο μέρος της τοπικότητας αναφορών μνήμης 35

Παράδειγμα Σε 1000 προσπελάσεις, 40 αστοχίες στο 1 ο επίπεδο, 20 στο 2 ο επίπεδο 1.5 προσπελάσεις μνήμης ανά εντολή Hit Tme L1 είναι 1 κύκλος Hit Tme L2 είναι 10 κύκλοι Miss penalty από L2 είναι 200 κύκλοι Υπολογίστε τα Miss rates και AMAT 36

Λύση Miss rate L1 (ίδιο για global, local) = 40/1000 = 0.04 (4%) Global miss rate L2 = 20/1000 = 2% Local miss rate L2 = 20/40 = 50% ΑΜΑΤ = HitL1 + MissL1 * (HitL2 + local Miss L2 * Penalty L2) = 1+0.04*(10+0.5*200)=5.4 κύκλοι 37

Πολλαπλά επίπεδα cache Miss rate 100% 90% 80% 70% 60% 50% 40% 30% 99% 99% 98% 96% 88% 67% 55% 51% Local miss rate Global miss rate Single cache miss rate 46% 39% 34% 20% 10% 0% 6% 5% 4% 4% 4% 3% 2% 2% 2% 1% 1% 4% 4% 3% 3% 4 8 16 32 64 128 256 512 1024 2048 4096 Cache size (KB) L1: 2 ξεχωριστές caches 64KB 38

Πολλαπλά επίπεδα cache Η ταχύτητα του 1 ου επιπέδου επηρεάζει το ρυθμό ρολογιού του επεξεργαστή Η ταχύτητα του 2 ου επιπέδου επηρεάζει το miss penalty του 1 ου επιπέδου Υπάρχει μεγαλύτερη ευελιξία επιλογής οργάνωσης στο 2 ο επίπεδο Μεγάλη σημασία έχει το κόστος και πόσο μειώνει το μέσο χρόνο προσπέλασης (ΑΜΑΤ) 39

Cache inclusion Πρέπει όλες οι γραμμές της L1 να βρίσκονται και στην L2; inclusion property Χρήσιμο σε πολυεπεξεργαστές: είναι εύκολο να ξέρει το κατώτερο επίπεδο κρυφής μνήμης αν υπάρχει αντίγραφο μιας γραμμής στην ιεραρχία μνήμης ενός πυρήνα αλλά ξοδεύουν χώρο στην L2, αυξάνοντας το miss rate Οταν εκδιώχνεται μια γραμμή από την L1, θα πρέπει να γράφεται στην L2, ενώ αλλιώς θα ήταν ήδη εκεί 40

Εικονική μνήμη Τεχνική που λύνει πολλά προβλήματα Code relocaton Προστασία διαφορετικών προγραμμάτων (πολυπρογραμματισμός) Δυναμική διάθεση επιπλέον μνήμης για προγράμματα... Στηρίζεται στη μετάφραση (εικονικών) διευθύνσεων που παράγει το πρόγραμμα σε φυσικές/πραγματικές διευθύνσεις 41

Εικονική μνήμη ως cache Η κύρια μνήμη (DRAM) μπορεί να θεωρηθεί ως «κρυφή μνήμη» της δευτερεύουσας μνήμης (δίσκος) ο χειρισμός γίνεται και με υλικό και με λογισμικό (Λ.Σ.) Τα προγράμματα μοιράζονται τη κύρια μνήμη κάθε διεργασία έχει ξεχωριστό ένα χώρο διευθύνσεων μνήμης, εικονική μνήμη (virtual memory) προστατεύεται από άλλες διεργασίες που τρέχουν ταυτόχρονα Το Λ.Σ. και ο επεξεργαστής μεταφράζουν τις εικονικές διευθύνσεις σε φυσικές (physical) μια «γραμμή» εικονικής μνήμης λέγεται σελίδα (page) αστοχία στη κύρια μνήμη λέγεται σφάλμα σελίδας (page fault) 42

Μετάφραση διευθύνσεων Σελίδες σταθερού μεγέθους (π.χ. 4ΚΒ) λιγότερα bits για αριθμό σελίδας (οικονομία στην αποθήκευση) εκμετάλευση του σχετικά μεγάλου ρυθμού μεταφοράς από το δίσκο σε σχέση με τον αργό χρόνο προσπέλασης Δεν χρειάζεται οι σελίδες να είναι σε συνεχόμενο χώρο στη (φυσική) μνήμη 43

Πίνακας (μετάφρασης) σελίδων Αποθηκεύει πληροφορίες για τη μετάφραση πίνακας καταχωρήσεων σελίδων (page table entry PTE), διευθυνσιοδοτημένoς με τον εικονικό αριθμό σελίδας Αν μια σελίδα είναι στην μνήμη η καταχώριση περιλαμβάνει τον αριθμό φυσικής σελίδας και διάφορα bit κατάστασης, χρήσιμα για αλγόριθμο αντικατάστασης, χειρισμό εγγραφών Αν η σελίδα δεν είναι στη μνήμη η καταχώριση δείχνει τη θέση της σελίδας στο δίσκο Ταυτόχρονα μπορεί να ελεγχθεί αν επιτρέπεται πρόσβαση στη σελίδα από τη διεργασία π.χ. πρόσβαση σε διεύθυνση που δεν έχει κατανεμηθεί στη διεργασία 44

Ξεχωριστοί πίνακες ανά διεργασία Ο χώρος που απαιτείται είναι μεγάλος μόνο η κύρια μνήμη μπορεί να αποθηκεύσει τον πίνακα σελίδων Οργάνωση σε 2 (ή περισσότερα) επίπεδα για οικονομία χώρου 45

Πίνακες στη μνήμη Κάθε προσπέλαση στην εικονική μνήμη από το πρόγραμμα στην πραγματικότητα προκαλεί 2 προσπελάσεις μνήμης 46

Γρήγορη μετάφραση Οι προσπελάσεις στο πίνακα σελίδων έχουν μεγάλη τοπικότητα αναφορών Μπορει να εκμεταλευτεί από μια κρυφή μνήμη για καταχωρήσεις πίνακα μετάφρασης (PTE) ευστοχία: άμεση μετάφραση σε ένα κύκλο (ή και μισό) αστοχία: page table walk από υλικό ή λογισμικό Ονομάζεται TranslaTon Look- aside Buffer (TLB) Περιέχει 16-512 PTEs, 0.5 1 cycle for hit, 10 100 cycles for miss, 0.01% 1% miss rate Πρόσφατοι επεξεργαστές έχουν 2 επίπεδα TLB ακριβώς όπως οι κρυφές μνήμες: μειώνουν τη ποινή αστοχίας 47

Μετάφραση διεύθυνσης 48