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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

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

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

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;

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

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

Cach O p i timisati tions

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Υ- 07 Παράλληλα Συστήματα Συνοχή κρυφής μνήμης με σύστημα καταλόγων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές, 2ο μέρος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

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

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

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

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Transcript:

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

Το σημερινό μάθημα Εικονική μνήμη και κρυφές μνήμες Physical/Virtual indexing Σκοπός: μείωση hit Ome Τεχνικές σχετικές με associaovity pseudo- associaovity, way- predicoon, vicom cache Αλγόριθμοι αντικατάστασης Lockup- free caches 2

Εικονική μνήμη και cache Απαραίτητη σε ένα σύγχρονο σύστημα Απαιτείται υποστήριξη από υλικό TLB για γρήγορη μετάφραση Πώς συνδιάζεται η μετάφραση με προσπέλαση κρυφής μνήμης; Physically Indexed, Physically Tagged πρώτα μετάφραση, μετά προσπέλαση κρυφής μνήμης Virtually Indexed, Virtually Tagged μετάφραση μόνο για αστοχίες κρυφής μνήμης Virtually Indexed, Physically Tagged ταυτόχρονη μετάφραση, προσπέλαση κρυφής μνήμης Physically Indexed, Virtually Tagged 3

Virtually Indexed, Virtually Tagged Μετάφραση μόνο για αστοχίες κρυφής μνήμης Το TLB δε θα είναι ενημερωμένο για εγγραφές, πληροφορία LRU Ομώνυμες διευθύνσεις (homonyms) Ιδιες εικονικές διευθύνσεις (διαφορετικών διεργασιών) αντιστοιχούν σε διαφορετικές φυσικές διευθύνσεις Λύση: προσθήκη του Process ID (PID) στην εικονική διεύθυνση, ή άδειασμα (flush) της κρυφής μνήμης σε κάθε αλλαγή διεργασίας (context switch) Συνώνυμες διευθύνσεις (synonyms) Διαφορετικές εικονικές διευθύνσεις (διαφορετικών διεργασιών) αντιστοιχούν στην ίδια φυσική διεύθυνση 4

Virtually Indexed, Physically Tagged TLB PA Processor Core VA VIPT Cache miss Main Memory cache line return hit Παράλληλη προσπέλαση TLB, cache η σύγκριση των tag της cache θα γίνει μετά τη μετάφραση διευθ. Δεν υπάρχουν ομώνυμες διευθύνσεις το TLB πρέπει να περιέχει PID ή να αδειάζει σε αλλαγή διεργασίας Συνώνυμες διευθύνσεις μπορούν να υπάρχουν 5

Αποφυγή συνωνύμων εικονική διεύθυνση VPN a Page Offset Cache Tag Set Index Line Offset Αν το a είναι 0 bits, ή το Set index βρίσκεται δεξιότερα του page offset, δεν μπορούν να υπάρχουν συνώνυμα τυχόν συνώνυμες γραμμές θα είναι στο ίδιο set Το μέγεθος page καθορίζει τη μέγιστη χωρητικότητα της κρυφής μνήμης (για direct mapped) ή τον μέγιστο αριθμό των set Max number of sets = page size / cache line size 6

Ανίχνευση συνωνύμων, a > 0 Μεταβολή του συστήματος μετάφρασης ώστε οι μοιραζόμενες σελίδες να έχουν ίδια τα a bits διευθύνσεων ονομάζεται page colouring Κάθε cache miss εξετάζει όλες τις πιθανές θέσεις/set για συνώνυμα π.χ. για a=2, τα συνώνυμα μπορούν να βρισκονται σε 4 μόνο set Ελεγχος συνωνύμων στη L2 cache L2 direct mapped, δυσκολότερο αν είναι associaove L2 physically indexed, physically tagged L2 inclusive 7

Συνώνυμα στο MIPS R10000 (L2) VPN 12 bit 10 bit 4- bit Αποθήκευση του VPN[1:0] (που αντιστοιχεί στο a) στα tags της L2, επιπλέον του κανονικού tag Εστω 2 συνώνυμες διευθύνσεις VA1, VA2 που διαφέρουν στο VPN[1:0], αλλά απεικονίζονται στην ίδια φυσική διεύθυνση PA Υποθ. VA1, υπάρχει ήδη στις L1, L2 Προσπέλαση VA2 αστοχεί στην L1 Στην L2 θα υπάρχει ήδη η γραμμή, με το επιπλέον PPN (VA1)[1:0], που θα πρέπει να αντικατασταθεί 8

Way- associaove caches Βελτιώνουν το miss rate, μειώνουν conflict misses law of diminishing returns Αυξάνουν το hit Ome και την κατανάλωση ενέργειας προσπέλαση πολλαπλών ways και επιλογή του way που ευστοχεί τα δεδομένα όλων των υπόλοιπων δεν χρησιμοποιούνται Ενδιαφέρουσες τεχνικές: Way- predicoon πρόβλεψη του way που θα ευστοχήσει Faking- associaovity Μικρές αλλαγές σε direct- mapped ώστε να έχει όφελος παρόμοιο με way associaove VicOm cache μειώνει conflict misses χωρίς associaovity 9

Column- associaove cache Βασική ιδέα: Κοινή direct- mapped cache Δεύτερη ευκαιρία αν υπάρχει αστοχία: re- hash τη διεύθυνση (αντιστοίχιση σε άλλη γραμμή της cache) Το hashing πρέπει να είναι απλό, π.χ. αντιστροφή του msb του index το tag πρέπει να επεκταθεί ώστε να περιέχει το επιπλέον bit Η διαπίστωση αστοχίας παίρνει λίγο παραπάνω χρόνο 10

Column- associaove cache Δύο είδη ευστοχίας (hit): με διαφορετικούς χρόνους Η MRU γραμμή θα πρέπει να έχει γρήγορο hit Ανταλλαγή των 2 γραμμών του ψεύτο- set Προσπέλαση: a,b,c,b,c,b,c, a, b έχουν ίδιο index, c διαφέρει στο msb του index από τις a,b Σε μία κανονική 2- way με LRU οι πρώτες, a,b,c είναι miss, μετά πάντα hit Στη Column AssociaOve Cache: a b a b a c a 11

Skewed associaove cache Η χρήση απλής αντιστοίχισης διεύθυνσης σε cache index προκαλεί συχνά συγκρούσεις ακόμη και σε set- associaove caches Μια λύση είναι η χρήση διαφορετικής αντιστοίχισης (hash) σε κάθε way Η χρήση αλγόριθμου αντικατάστασης LRU είναι δύσκολη 12

Way predicoon Πρόβλεψη του way που έχει τη γραμμή δεν γίνεται προσπέλαση στα άλλα ways Χρησιμοποιείται για περιορισμό κατανάλωσης ενέργειας Αν η πρόβλεψη αποτύχει: προσπέλαση σε άλλα ways Μεταβλητός χρόνος hit Διάφορες τεχνικές πρόβλεψης: Most recently used way (στον R10K μαζί με pseudo- associaove) Σε συνδιασμό με τον branch predictor στον Alpha 21264 Εχει μεγαλύτερα ποσοστά επιτυχούς πρόβλεψης σε I$ 13

VicOm cache Μικρός buffer με μεγάλη associaovity 4 64 γραμμές «Πίσω» από την κρυφή μνήμη Περιέχει γραμμές που πρόσφατα εκδιώχθηκαν (evicted) από τη L1 Κάθε miss της L1 εξετάζει τη vicom cache πρίν προσπελάσει το επόμενο επίπεδο ιεραρχίας αν hit, ξαναφέρνει τη γραμμή στη L1 Μειώνει τα conflict misses αυξάνει λίγο το miss penalty 14

Αλγόριθμοι αντικατάστασης Σε associaove caches υπάρχουν αρκετές επιλογές για κάθε αντικατάσταση η επιλεγόμενη γραμμή λέγεται θύμα (vicom) Ο πιο γνωστός αλγόριθμος αντικατάστασης είναι ο least recently used (LRU) στηρίζεται στην αρχή τοπικότητας αναφορών Ακριβή υλοποίηση σε υλικό για associaovity >= 8 για m- ways, υπάρχουν m! δυνατές κατατάξεις άρα απαιτούνται τουλάχιστον log 2 (m!) bits Προσεγγιστικοί αλγόριθμοι LRU Αλγόριθμος NMRU (not most recently used) 15

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

Tree PLRU Η σειρά των προσπελάσεων καταγράφεται σε ένα δυαδικό δέντρο τα φύλλα αντιστοιχούν στα ways και δεν αποθηκεύουν τίποτα Χρειάζονται m- 1 bit για m ways (για m δύναμη του 2) Το θύμα επιλέγεται ακολουθώντας το δέντρο Αν ο κόμβος είναι 0, πήγαινε αριστερά, αν 1, δεξιά Κάθε προσπέλαση αλλάζει τις τιμές των κόμβων που διάσχισε έτσι ώστε να δείχνουν προς την αντίθετη μεριά από το φύλλο που αντιστοιχεί στο MRU 17

Tree PLRU operaoon Path shows the vicom 18

Tree PLRU operaoon Previous allocaoon changes tree nodes to point away from last way (0) Path for next vicom 19

Tree PLRU operaoon 20

Tree PLRU operaoon Now we have a hit in way 4. Not a new allocaoon as in previous steps 21

Tree PLRU operaoon Nodes 202, 205 were poinong away from way 4 already, so they don t change! 22

Αλγόριθμος NMRU 1 bit για κάθε way Σε κάθε hit, το bit παίρνει τη τιμή 1 Περιοδικά, όλα τα bits μηδενίζονται ή/και όταν όλα γίνουν 1 Για αντικατάσταση επιλέγεται η «πρώτη» way που έχει τιμή 0 η θέση που ξεκινάμε την αναζήτηση αλλάζει με round- robin 23

Sector cache Τα tags μιας κρυφής μνήμης καταλαμβάνουν σημαντικό ποσοστό του συνολικού χώρου της Χρησιμοποιώντας (πολύ) μεγάλες γραμμές, μειώνεται ο αριθμός των απαιτούμενων bit για tags αλλά αυξάνεται ο χρόνος μεταφοράς ολόκληρων γραμμών μεταξύ cache, κύριας μνήμης επιπλέον, σε πολυεπεξεργαστές, αυξάνεται η πιθανότητα false sharing Sector cache: χωρίζει γραμμές σε υπο- τμήματα (sector) και μεταφέρει μόνο sectors μεταξύ επιπέδων της ιεραρχίας μνήμης καθε sector χρειάζεται ξεχωριστό valid bit

Lockup- free (non- blocking) caches Επιτρέπουν προσπελάσεις μετά από 1 ή περισσότερες αστοχίες hit- under- miss hit under mulople miss, miss under miss Δεν έχουν νόημα χωρίς εκτέλεση εκτός σειράς ιεραρχία μνήμης που δεν επιτρέπει πολλαπλές προσπελάσεις σε εξέλιξη Εξετάζουμε μόνο αναγνώσεις Εγγραφές: βλ. write- buffer 25

Miss Status Holding Registers MSHR αποθηκεύει πληροφορία σχετική με την αστοχία: αν η καταχώρηση είναι έγγυρη διεύθυνση της γραμμής που αστόχησε με δυνατότητα παράλληλης (associaove) αναζήτησης για κάθε load/store σχετική με τη γραμμή: είδος, μέγεθος προσπέλασης block offset ο αριθμός φυσικού καταχωρητή που θα φορτώσει την τιμή ή store buffer 26

MSHR λειτουργία Κάθε νέο miss ελέγχει όλους τους MSHRs αν η γραμμή υπάρχει, προσθέτει πληροφορία αλλιώς, χρησιμοποίησε ελεύθερο MHSR αλλιώς, stall Κάθε cache refill ή μέρος του, ελέγχει όλους τους MSHRs αν η γραμμή υπάρχει, ψάχνει αν μια load/store περιμένει τη λέξη και τη γράφει στον αντίστοιχο καταχωρητή γράφει στην κρυφή μνήμη Οταν το refill ολοκληρωθεί ο αντίστοιχος MSHR ενημερώνεται ως μη έγγυρος 27

Non- uniform cache access Μεγάλες μνήμες δεν υλοποιούνται ως ένα ενιαίο ορθογώνιο από κελιά μνήμης οργανώνονται ως μικρότερα arrays (mats) κάποια bit της διεύθυνσης επιλέγουν ένα από τα arrays Σε αρκετά μεγάλες μνήμες (μερικά Mbytes) η διαφορά καθυστέρησης δεν είναι ομοιομορφη κοντινά arrays έχουν μικρότερη καθυστέρηση από μακρινά Οι NUCAs δεν κρύβουν τις διαφορές καθυστέρησης Θέματα τοποθέτησης δεδομένων στατική ή δυναμική