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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

Ασκήσεις Caches

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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;

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

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

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

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

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

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

Cach O p i timisati tions

Αρχιτεκτονική-ΙI Ενότητα 4 :

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κωνσταντίνος Κυριακουλάκος Α.Μ.:

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

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

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

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

Transcript:

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

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

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

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

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

Είδη τοπικότητας αναφορών Στο χρόνο: μια διεύθυνση που προσπελαύνεται τη χρονική στιγμή t έχει μεγάλη πιθανότητα να ξαναπροσπελαστεί σε χρόνο t+δ temporal locality Στο χώρο: όταν μια διεύθυνση α προσπελαστεί τη χρονική στιγμή t, με μεγάλη πιθανότητα, μια διεύθυνση α±θ θα προσπελαστεί σε χρόνο t+δ spa\al locality ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 6

Εκμετάλευση της ιδιότητας Οταν μια διεύθυνση μνήμης προσπελαύνεται Το υλικό τοποθετεί σε υψηλότερες (κοντά στον πυρήνα) θέσεις της ιεραρχίας μνήμης τα δεδομένα,εντολές που αντιστοιχούν στη διεύθυνση και άλλα/άλλες που αντιστοιχούν σε γειτονικές διευθύνσεις Διώχνοντας τα λιγότερο χρήσιμα δεδομένα/εντολές για να ανοίξει χώρος πώς ξέρουμε τι είναι λιγότερο χρήσιμο; ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 7

Κρυφή μνήμη - cache Address Address Core Data CACHE Data Main Memory Παρεμβάλεται μεταξύ πυρήνα και κύριας μνήμης και κρατάει αντίγραφα των δεδομένων της κύριας μνήμης ξεχωριστές για εντολές, δεδομένα (τουλάχιστον στο 1 ο επίπεδο) Πρέπει να κρατάει μια ετικέτα διεύθυνσης (address tag) ώστε να μπορεί να ελέγξει αν τα δεδομένα που ζητάει ο πυρήνας βρίσκονται στην κρυφή μνήμη (ευστοχία hit) ή όχι (αστοχία miss) Χρειάζονται 32- bit tag, όσο είναι η διεύθυνση, για κάθε 32- bit δεδομένων η μισή κρυφή μνήμη δαπανάται για tags ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 8

Γραμμή κρυφής μνήμης Βελτιστοποίηση: μία ετικέτα για 4 συνεχόμενες λέξεις όπως μια λέξη έχει μία διεύθυνση για 4 bytes η διεύθυνση της πρώτης λέξης είναι η ετικέτα όλης της γραμμής Το συνολικό κόστος των tags γίνεται το 20% της cache Μπορεί επίσης να μικραίνει το tag κάθε γραμμής κατά 2 bit τώρα που οι γραμμές είναι 4 φορές μεγαλύτερες Ευθυγράμιση, κάθε γραμμή έχει διεύθυνση πολ/σιο του 4 Κάθε μεταφορά από/προς τη κύρια μνήμη πρέπει να προσπελαύνει ολόκληρη τη γραμμή Οι γραμμές εκμεταλεύονται την τοπική χωρικότητα Η γραμμή (line) ονομάζεται (πολύ συχνά) και block ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 9

Ομάδες γραμμών (set) Ο ελεγκτής κρυφής μνήμης για κάθε προσπέλαση από τον πυρήνα πρέπει να εξετάσει τα tags όλων των (θέσεων) γραμμών χρειάζεται παράλληλη σύγκριση όλων των tags Βελτιστοποίηση: χωρίζουμε τις γραμμές σε Χ=2 x ομάδες (sets) χρειάζονται 1/Χ συγκριτές κάθε γραμμή μπορεί να τοποθετηθεί μόνο σε μία από τις θέσεις που έχει ένα set Χρησιμοποιούνται x bit της διεύθυνσης για επιλογή του set... άρα ακόμα λιγότερα bits για το tag ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 10

Τμήματα διεύθυνσης Tag Index Block offset Block offset διεύθυνση byte μέσα στη γραμμή Index διεύθυνση του set Tag τμήμα της διεύθυνσης που δεν χρησιμοποιείται, άρα αποθηκεύεται και συγκρίνεται Index Tag Block offset Γιατί πρώτα tag και μετά index; τα πιο σημαντικά bit διεύθυνσης δεν αλλάζουν πολύ λίγα set θα έχουν πολλή ζήτηση και τα υπόλοιπα θα είναι άδεια ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 11

Αριθμός set: όρια παραμέτρου μέγιστο ίσος με τον αριθμό των θέσεων γραμμών της κρυφής μνημης Ονομάζεται direct mapped Ελαχιστοποιεί το υλικό: 1 συγκριτής, μικρότερο κόστος για tags Μια γραμμή μνήμης μπορεί να τοποθετηθεί σε μία μόνο θέση ελάχιστο ένα για όλη τη κρυφή μνήμη Ονομάζεται fully- associate Μεγιστοποιεί την ευελιξία: κάθε γραμμή μπορεί να τοποθετηθεί σε οποιαδήποτε θέση Ακριβό υλικό: Ν συγκριτές, και δεν υπάρχει index, άρα το tag μεγαλώνει Ενδιάμεσες τιμές k- way set associa\ve αριθμός set Χ = N/k, πρέπει να είναι δύναμη του 2 ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 12

Τοποθέτηση γραμμών 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 3 3 0 1 2 3 4 5 6 7 8 9 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) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 13

Οργάνωση direct mapped Tag Index Block Offset byte offset t V Tag k Data Block b 2 k lines t = HIT Data Word Πως ξεχωρίζουμε μια άδεια θέση; Δεν υπάρχει ειδική τιμή tag που δεν αντιστοιχεί σε πραγματική διεύθυνση Επιπλέον valid bit ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 14

Οργάνωση set- associa\ve (2- way) Tag Index Block Offset b t V Tag k Data Block V Tag Data Block t = = Data Word or Byte HIT ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 15

Οργάνωση fully- associa\ve V Tag Data Block t = Tag t = HIT Block Offset b = Data Word or Byte ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 16

Μέτρα απόδοσης Hit rate: κλάσμα των προσπελάσεων που ευστοχούν στη κρυφή μνήμη Miss rate: 1 Hit rate Miss penalty: χρόνος τοποθέτησης μιας γραμμής από κατώτερο επίπεδο ιεραρχίας μνήμης στη κρυφή μνήμη Hit \me: χρόνος προσπέλασης κρυφής μνήμης (περιλαμβάνει τη σύγκριση tag) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 17

Απόδοση επεξεργαστή CPU \me = IC CPI CC Το CPI, όπως το ξέραμε μέχρι τώρα περιλαμβάνει το hit \me στη κρυφή μνήμη θεωρούσαμε ότι hit \me = 1 Οι αστοχίες μνήμης προκαλούν αύξηση στο ιδανικό CPI CPU \me = IC (CPI ideal + memory stall cycles) CC ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 18

Παράδειγμα 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 φορές πιο αργό από το ιδανικό ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 19

Μέσος χρόνος προσπέλασης Περιλαμβάνει και το χρόνο ευστοχίας κατάλληλο μέτρο για όλο το σύστημα μνήμης Average Memory Access Time (AMAT) AMAT = Hit \me + Miss rate Miss penalty Παράδειγμα κύκλος ρολογιού CPU: 1ns, hit \me = 1 κύκλος, miss penalty = 20 κύκλοι, I- cache miss rate = 5% AMAT = 1 + 0.05 20 = 2 κύκλοι = 2ns Δεν είναι πάντα ακέραιος αριθμός κύκλων, γιατί είναι μέσος όρος ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 20

Σχεδίαση κρυφής μνήμης Θέλουμε το ελάχιστο δυνατό ΑΜΑΤ AMAT = Hit \me + Miss rate Miss penalty Ελαχιστοποίηση miss rate, αγνοώντας τα υπόλοιπα μέτρα δεν δίνει πάντα τα καλύτερα αποτελέσματα Για μικρό hit \me χρειάζεται μικρή κρυφή μνήμη Για μικρό miss rate χρειάζεται μεγάλη κρυφή μνήμη ή/και διάφορα «κόλπα» Για μικρό miss penalty δεύτερο (τρίτο,...) επίπεδο κρυφής μνήμης μεταφορά της λέξης που χρειάζεται πρίν την υπόλοιπη γραμμή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 21

Κρυφές μνήμες πολλαπλών επιπέδων Μειώνουν το miss penalty Προϋποθέτουν τοπικότητα αναφορών στις διευθύνσεις που αστοχούν στο προηγούμενο επίπεδο γενικά ισχύει AMAT = L1$ hit \me + (local) Miss rate L1$ x (L2$ hit \me + (local) Miss rate L2$ x L2$ Miss penalty) Local Miss rate L2$ = $L2 Misses / L1$ Misses όχι $L2 Misses / αριθμό προσπελάσεων του επεξεργαστή L1$ Misses = αριθμός προσπελάσεων στην L2 Παρόμοια για memory stall cycles για υπολογισμό CPI ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 22

Παράδειγμα Το προηγούμενο παράδειγμα με προσθήκη L2 $. CPI ideal = 2, 100 cycle miss penalty (to main memory), 25 cycle miss penalty (to L2$), 36% load/stores, 2% (4%) L1 I$ (D$) miss rate, 0.5% L2$ miss rate CPI = 2 +.02 (25 +.005 100) +.36.04 (25 +.005 100) = 2.87 ήταν 5.44 χωρίς L2$ ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 23

Παρατηρήσεις Υποθέση: ο χρόνος που χρειάζεται για να μάθουμε αν η προσπέλαση είναι εύστοχη επικαλύπτεται με το χρόνο της πραγματικής προσπέλασης δηλαδή όταν ξέρουμε ότι έχουμε ευστοχίσει, έχουμε ολοκληρώσει και την προσπέλαση δεν ισχύει πάντα... (ειδικά για L2) Το miss penalty σε περίπτωση αστοχίας και της L2 είναι μεγαλύτερο από το miss penalty που θα είχαμε αν δεν υπήρχε καθόλου L2 γιατί ξοδεύουμε επιπλέον χρόνο ψάχνοντας στην L2 ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 24

Σχεδιαστικοί στόχοι Κύριος στόχος σχεδίασης κρυφής μνήμης 1 ου επιπέδου είναι το hit \me να είναι ίσο με 1 κύκλο και η περίοδος ρολογιού να είναι μικρή Σε σύγχρονους πυρήνες (ILP) μπορεί να είναι μεγαλύτερο Στόχος σχεδίασης κρυφής μνήμης 2 ου επιπέδου είναι το miss rate Το miss penalty της L1 μειώνεται δραστικά από την ύπαρξη της L2, άρα η L1 μπορεί να είναι μικρότερη για μικρό hit \me σε βάρος του miss rate Το hit \me της L2 είναι δευτερεύον γιατί είναι πολύ μικρότερο από το χρόνο προσπέλασης κύριας μνήμης που μειώνεται κατά μ.ο. με ένα μικρό miss rate ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 25

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

Εγγραφές - πολυπλοκότητα Η προσπέλαση (εγγραφή) δεν μπορεί να γίνεται ταυτόχρονα με τον έλεγχο του tag πρέπει να είναι εύστοχη πρίν γίνει! Οι εγγραφές πρέπει να ενημερώνουν το επόμενο επίπεδο (write- through) ή όχι (write- back); write- through απλοποιούν την έξωση γραμμών γίνεται «σιωπηλά» πραγματοποιούν προσπελάσεις σε κατώτερα επίπεδα που θα μπορούσαν να αποφευχθούν write- back περιπλοκότερη έξωση έχει η γραμμή αλαχθεί; dirty- bit μειώνουν προσπελάσεις σε κατώτερα επίπεδα τα αντίγραφα δεδομένων δεν είναι «συγχρονισμένα» ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 27

Εγγραφές - συνέχεια Οταν γίνει μια εγγραφή σε γραμμή που δεν υπάρχει στη κρυφή μνήμη, να φέρουμε τη γραμμή (write- allocate) ή όχι; Γενικά οι write- back είναι και write- allocate ενώ οι write through είναι no write- allocate ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 28

Αντικατάσταση γραμμών Οι θέσεις γραμμών σε ένα set είναι περιορισμένες ίσες με τον αριθμό των ways (x- way set associa\ve cache) Αφού περάσει κάποιος χρόνος, όλες οι θέσεις είναι πιασμένες και η προσκόμιση μιας καινούριας γραμμής για μια αστοχία απαιτεί την έξωση μιας άλλης Σε direct mapped δεν υπάρχουν επιλογές: 1 θέση στο set Ποιά πρέπει να φύγει; η γραμμή (του set) που δεν θα χρησιμοποιηθεί ξανά ή τουλάχιστον θα χρησιμοποιηθεί αργότερα από τις υπόλοιπες που βρίσκονται στο set της κρυφής μνήμης Είναι αδύνατο να γνωρίζουμε τη καλύτερη γραμμή για έξωση από πριν! Ο αλγόριθμος αντικατάστασης (replacement policy) επιλέγει ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 29

Λιγότερο πρόσφατες γραμμές Αρχή (χρονικής) τοπικότητας: μια γραμμή που χρησιμοποιείται τώρα θα προσπελαστεί στο κοντινό μέλλον Αρα μια γραμμή που έχει αρκετό καιρό να χρησιμοποιηθεί μπορεί να μη προσπελαστεί ξανά και είναι κατάλληλη για έξωση αν υπάρχει άκυρη (ένδειξη valid = 0) γραμμή προτιμάται Αλγόριθμος Least Recently Used (LRU) εφικτή η υλοποίηση για πολύ μικρά set (<=4), δύσκολη για μεγαλύτερα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 30

LRU Κάθε θέση γραμμής κρατάει πληροφορίες για το χρόνο τελευταίας προσπέλασης επιπλέον του tag, dirty, valid πρέπει να ανανεώνεται (ανάγνωση, εγγραφή) σε κάθε προσπέλαση χωρίς να επηρεάσει το κύκλο ρολογιού Προσεγγιστικές μέθοδοι για μεγάλη associa\vity 0 1 2 3 0 1 2 3 ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 31

Αντικαταστάσεις - παρατηρήσεις Παλιές γραμμές αντικαθίστανται μόνο αν μια καινούρια γραμμή χρειάζεται τη θέση στο set Αν το working- set είναι μικρό ή τυχαίνει οι προσπελάσεις να είναι σε σχετικά λίγα set Παλιές γραμμές, «ξεμένουν» στη κρυφή μνήμη Προβλήματα: κατανάλωση στατικής ενέργειας χρειάζεται προσοχή όταν αλλάζει η διεργασία που τρέχει σε ένα πυρήνα (για virtually addressed caches) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 32

Πράξεις κρυφής μνήμης Αναζήτηση/σύγκριση tag το αποτέλεσμα δείχνει αν έχουμε ευστοχία ή αστοχία στη κρυφή μνήμη Προσπέλαση δεδομένων ανάγνωση ή εγραφή από τον πυρήνα σε περίπτωση ευστοχίας Επιλογή γραμμής θύματος (vic\m) για αντικατάσταση από το set στο οποίο ανήκει η γραμμή της λέξης που προσπελαύνει ο πυρήνας Εξωση (evic\on), λόγω αντικατάστασης (replacement) μιας «παλιάς» γραμμής από μια καινούρια επανεγγραφή (writeback) για αλλαγμένες γραμμές Γέμισμα (fill, refill) εγγραφή μιας (καινούριας) γραμμής από το επόμενο επίπεδο και απάντηση στο πυρήνα (ή αλλαγή της κατάλληλης λέξης πριν την εγγραφή στη κρυφή μνήμη) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 33

Μέγεθος γραμμής Μεγάλες γραμμές βελτιώνουν το hit rate λόγω χωρικής τοπικότητας μειώνουν τον αριθμό bits για tags εκμεταλεύονται το μεγαλύτερο ρυθμό μεταφοράς δεδομένων από την μνήμη για δεδομένα σε συνεχόμενες διευθύνσεις Αλλά σε σταθερού μεγέθους κρυφή μνήμη, μεγαλύτερες γραμμές σημαίνει λιγότερες θέσεις γραμμών άρα περισσότερος ανταγωνισμός για μια θέση, άρα χειρότερο hit rate, μεγαλύτερο miss penalty χρήση μεγαλύτερου μέρους του bandwidth του δίαυλου Γραμμή συνήθως 32-64 bytes ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 34