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

Σχετικά έγγραφα
Είδη των Cache Misses: 3C s

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

Cach O p i timisati tions

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

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

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Υποσύστημα Μνήμης

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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;

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

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

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

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

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

HY425 Αρχιτεκτονική Υπολογιστών, Χειµερινό Εξάµηνο

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

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

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

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

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

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

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

(Branch Prediction Mechanisms)

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

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

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

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

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

Transcript:

Προχωρηµένα Θέµατα Αρχιτεκτονικής Memory Hierarchy Design. Λιούπης

Ιεραρχία Μνήµης Τα προγράµµατα απαιτούν όλο και περισσότερη και πιο γρήγορη µνήµη Γρήγορη και µεγάλη µνήµη -> ακριβή Αυτό οδηγεί σε ιεραρχία µνήµης: Ηιεραρχία αυτή βασίζεται στο temporal και spatial locality

Επίπεδα Ιεραρχίας Μνήµης

Συνηθισµένα ερωτήµατα σχετικά µε την ιεραρχία µνήµης ΕΡ. 1: Πού µπορεί να τοποθετηθεί ένα block σε µια cache (block placement); Direct mapped: κάθε block έχει ένα µόνο µέρος όπου µπορεί να εµφανιστεί στην cache Mapping: (Block address) MOD (Number of blocks in cache) Fully associative: κάθε block µπορεί να εµφανιστεί οπουδήποτε στην cache Set associative: κάθε block µπορεί να τοποθετηθεί σε ένα αυστηρά καθορισµένο set από blocks στην cache Set selection: (Block address) MOD (Number of sets in cache)

Παράδειγµα block placement

Direct-mapped Set-associative Συνηθισµένα ερωτήµατα σχετικά µε την ιεραρχία µνήµης ΕΡ. 2: Πώς βρίσκεται ότι ένα block είναι στην cache (block identification); Address tag σε κάθε block frame δίνει το block address Όλα τα πιθανά tags ελέγχονται παράλληλα από τη CPU για να διαπιστωθεί αν ταιριάζει µε το block address Valid bit: δείχνει εάν η πληροφορία είναι έγκυρη Το offset δε θα πρέπει να χρησιµοποιείται κατά τη σύγκριση, αφού ολόκληρο το block θα βρίσκεται στη cache ή όχι Έλεγχος του index είναι πλεοναστικός, αφού χρησιµοποιήθηκε για το διάλεγµα του set που θα ελέγχεται

Συνηθισµένα ερωτήµατα σχετικά µε την ιεραρχία µνήµης ΕΡ. 3: Ποιο block πρέπει να αντικατασταθεί σε ενδεχόµενο Cache Miss (block replacement); Random το block διαλέγεται τυχαία Least-recently used (LRU) το block που έχει µείνει αχρησιµοποίητο για περισσότερη ώρα First in, first out (FIFO) το πιο «παλιό» block

ιαφορές στα miss rates µεταξύ LRU, random και FIFO replacement

Συνηθισµένα ερωτήµατα σχετικά µε την ιεραρχία µνήµης ΕΡ. 4: Τι συµβαίνει σε ενδεχόµενο Write (write strategy); Write through η πληροφορία γράφεται τόσο στο block της cache, όσο και στο block του χαµηλότερου επιπέδου µνήµης Write back - η πληροφορία γράφεται µόνο στο block της cache. Το τροποποιηµένο block γράφεται στη κύρια µνήµη µόνο όταν αντικαθίσταται. Το dirty bit δείχνει ότι τροποποιήθηκε Κατά τη write through strategy όταν η CPU πρέπει να περιµένει για writes έχουµε write stall. Για να βελτιστοποίηση της απόδοσης χρησιµοποιείται ένας write buffer. ύο επιλογές σε ένα write miss: Write allocate το block προσδιορίζεται No-write allocate τα write misses δεν επηρεάζουν την cache. Το block τροποποιείται µόνο στην χαµηλότερου επιπέδου µνήµη

Ένα παράδειγµα: The Alpha 21264 Data Cache 64 KB cache Two-way set associative with 64-byte blocks 9-bit index διαλέγει µεταξύ 512 sets 3 bits του block offset ενώνονται µε το index για να οδηγήσει τη διεύθυνση της RAM ώστε να διαλέξει τα κατάλληλα 8 bytes ύο groups από 4096 64-bit words, µε το κάθε group να περιέχει τα µισά από τα 512 sets

Cache performance equations

Cache optimizations Μείωση του miss penalty Μείωση του miss rate Μείωση του miss penalty ή miss rate µέσω παραλληλισµού Μείωση του χρόνου για την επίτευξη hit (hit time) στην cache

Μείωση του miss penalty: Multilevel L2 Equations Caches AMAT = HitTimeL1 + MissRateL1 MissPenaltyL1 MissPenalt yl1 = HitTime L 2 + MissRate L 2 MissPenaltyL 2 AMAT = HitTimeL1 + MissRateL1 ( HitTimeL 2 + MissRateL 2 MissPenaltyL 2) Ορισµοί: - Local miss rate misses στην cache δια του συνολικού αριθµού των memory accesses στην cache αυτή (MissRateL2) - Global miss rate misses στην cache δια του συνολικού αριθµού των memory accesses που εκτέλεσε η CPU (MissRateL1 x MissRateL2) - Global miss rate έχει σηµασία

Μείωση του miss penalty: Multilevel Caches Miss rates versus cache size for multilevel caches Relative execution time by secondlevel cache size

Μείωση του miss penalty: Early Restart & Critical Word First εν χρειάζεται όλο το block για να ξεκινήσει η CPU - Early Restart µόλις φτάσει το word που ζητήθηκε από το block, στέλνεται στη CPU - Critical Word First ζητείται από τη µνήµη πρώτα το word που απαιτείται, και µόλις φτάσει στέλνεται στη CPU - ενώ συνεχίζεται η φόρτωση των υπόλοιπων words του block. (wrapped fetch ή requested word first) Χρήσιµο για µεγάλα blocks

Μείωση του miss penalty: Giving Priority to Read Misses over Writes Write through µε χρήση write buffers προκαλεί RAW conflicts µε main memory reads σε cache misses Αν περιµένουµε να αδειάσει το write buffer ίσως αυξηθεί το read miss penalty Έλεγχος περιεχοµένων write buffer πριν το read - αν δεν υπάρχουν conflicts, memory access συνεχίζεται Write Back? - Μεταφορά dirty block σε write block, εκτέλεση του read, και µετά εκτέλεση του write

Μείωση του miss penalty: Merging Εάν ο buffer περιέχει κάποια τροποποιηµένα blocks, ελέγχεται η διεύθυνση των νέων δεδοµένων αν συµπίπτει µε αυτή των έγκυρων περιεχοµένων του buffer. Εάν συµπίπτουν, τα νέα δεδοµένα συγχωνεύονται µε τα υπάρχοντα Write Buffer

Μείωση του miss penalty: Victim Πώς να έχουµε γρήγορο hit time όπως σε direct mapped αλλά να αποφύγουµε τα conflict misses; Προσθήκη buffer όπου τοποθετούνται data που αντικαθίστανται από την cache Cache

Μείωση του Miss Rate Κατηγορίες misses: - Compulsory Στην πρώτη προσπέλαση ένα block δεν είναι ποτέ στην cache. (cold start misses ή first reference misses) (ακόµα και σε άπειρη σε µέγεθος Cache) - Capacity Κατά την εκτέλεση όλα τα blocks δεν χωρούν στην cache. Κάποια από αυτά αντικαθίστανται ενώ θα χρειαστούν και αργότερα. (σε Fully Associative Size X Cache) - Conflict Σε set associative ή direct mapped caches, συµβαίνουν misses επειδή αντικαθίστανται blocks όταν άλλα διαφορετικά αποθηκεύονται στον ίδιο χώρο. (collision misses ή interference misses) (σε N-way Associative Size X Cache)

Συνολικό Miss Rate σύµφωνα µε τα three C s

2:1 Cache Rule Miss Rate 1-way associative cache size X Miss Rate 2-way associative cache size X/2

Μείωση του miss rate: Larger Block Size Trade-off µεταξύ block size και miss rate Μεγαλύτερα block µεγέθη µειώνουν compulsory misses Τα µεγαλύτερα block εκµεταλλεύονται spatial locality Μεγαλύτερα block µεγέθη αυξάνουν miss penalty

Μείωση του miss rate: Larger Block Size Οσχεδιαστής της cache προσπαθεί να µειώσει τόσο το miss rate όσο και το miss penalty Η επιλογή του block size εξαρτάται τόσο από το latency όσο και από το bandwidth της χαµηλότερου επιπέδου µνήµης Παρακάτω φαίνεται η επιλογή του block size µε σκοπό τη µείωση του AMAT

Μείωση του miss rate: Larger Caches Ητεχνική αυτή είναι δηµοφιλής κυρίως σε off-chip caches Μειονεκτήµατα: - Μεγαλύτερο hit time - Υψηλότερο κόστος

Μείωση του miss rate: Higher Associativity 2:1 Cache Rule: - Miss Rate DM cache size N = Miss Rate 2-way cache size N/2 - Μήπως αυξάνεται το hit time; - Hill [1988] : hit time για 2-way vs. 1-way external cache +10%, internal + 2%

Μείωση του miss rate:way prediction & Pseudo-Associativity Way prediction: extra bits φυλάγονται στην cache για να προβλέπουν το set (way) ή το block του επόµενου cache access Πώς να έχουµε γρήγορο hit time όπως σε DM µε χαµηλά conflict misses όπως σε 2-way SA cache? ιαίρεση cache: σε κάθε miss, έλεγχος του άλλου µισού της cache αν είναι εκεί, αν ναι: pseudo-hit (slow hit) Καλύτερο για L2 caches

Μείωση του miss rate: Compiler Optimizations Εντολές - Αναδιάταξη procedures στη µνήµη για µείωση conflict misses - Profiling έλεγχος για conflicts εδοµένα - Merging Arrays: βελτίωση spatial locality µε µονό array συµπαγών στοιχείων αντί για 2 arrays - Loop Interchange: αλλαγή nesting στα loops για data access στη σειρά που είναι αποθηκευµένα - Loop Fusion: συνδυασµός 2 ανεξάρτητων loops µε ίδιο looping και µερικό variable overlap - Blocking: βελτίωση temporal locality προσπελαύνοντας data blocks κατ επανάληψη αντί για σάρωση γραµµών η στηλών

Μείωση µέσω παραλληλισµού: Nonblocking Caches για µείωση stalls σε misses Non-blocking cache ή lockup-free cache επιτρέπει στην cache να προµηθεύει τα hits κατά τη διάρκεια ενός miss - out-of-order execution CPU hit under miss µειώνει miss penalty δουλεύοντας κατά τη διάρκεια του miss αντί να αγνοεί τα CPU requests hit under multiple miss ή miss under miss επικάλυψη πολλαπλών misses - Αυξηµένη πολυπλοκότητα του cache controller - Απαιτεί multiple memory banks

Μείωση µέσω παραλληλισµού: HW prefetching για instructions & data Instruction Prefetching - Ο επεξεργαστής φέρνει 2 blocks on a miss - Extra block τοποθετείται σε stream buffer - Σε κάθε miss ελέγχεται το stream buffer ουλεύει και µε data blocks επίσης: - Jouppi [1990] 1 data stream buffer: 25% misses από 4KB cache; Για 4 streams 43% - Palacharla & Kessler [1994] για scientific programs µε 8 streams: 50% ως 70% των misses από 2 64ΚΒ, 4-way set associative caches - To Prefetching στηρίζεται στην ύπαρξη επιπλέον memory bandwidth που µπορεί να χρησιµοποιηθεί χωρίς penalty

Μείωση µέσω παραλληλισµού: Compiler-Controlled prefetching Data prefetch - Register prefetch: Load data into register - Cache prefetch: Load into cache - Special prefetching instructions δεν προκαλούν faults (non-faulting) µια µορφή speculative execution Issuing Prefetch Instructions απαιτεί χρόνο: - Είναι το κόστος των prefetch issues < κέρδος σε µείωση των misses; - Higher superscalar: µπορεί να αυξηθεί το issue bandwidth:

Μείωση hit time: Μικρές & Απλές caches Λιγότερο hardware -> γρηγορότερο Μικρή cache ώστε να χωράει στο ίδιο chip µε επεξεργαστή -> αποφυγή time penalty για off-chip access Απλή cache σα να χρησιµοποιούµε direct mapping - Κέρδος: Overlap µεταξύ tag check και data transmission Για L2 caches προτείνεται να κρατούνται τα tags on-chip για γρήγορο έλεγχο και τα data off-chip Επίδραση στο hit time για διάφορα cache sizes και associativity

Μείωση hit time: αποφυγή address translation κατά το indexing της cache Virtual caches: χρησιµοποιούν virtual addresses για την cache (hits πιο πιθανά από misses) 2 tasks: indexing the cache & comparing addresses Γιατί δε χρησιµοποιούνται µόνο virtual caches; - για προστασία - virtual addresses αναφέρονται σε πολλές physical addresses, απαιτώντας από τη cache να κατακλύζεται (λύση: αύξηση του cache address tag width µε ένα process-identifier tag (PID) - δύο διαφορετικές virtual addresses για την ίδια physical address (synonyms ή aliases), µε αποτέλεσµα δύο πανοµοιότυπα στην cache - Το I/O χρησιµοποιεί physical addresses, οπότε θα απαιτούσε mapping της virtual address σε physical address

Μείωση hit time: Pipelined Cache Access Πετυχαίνει το latency ενός first-level cache hit να είναι πολλαπλοί κύκλοι ρολογιού, δίνοντας fast cycle time και slow hits. Για παράδειγµα, ο Pentium χρειάζεται 1 clock cycle για προσπέλαση της instruction cache, ο Pentium Pro ως τον Pentium III 2 clocks και Pentium IV 4 clocks - αύξηση pipeline stages -µεγαλύτερο penalty σε mispredicted branches - πιο πολλούς clock cycles µεταξύ το load των data και της χρησιµοποίησης τους

Μείωση hit time: Trace Caches Μια trace cache βρίσκει µια δυναµική ακολουθία εντολών, συµπεριλαµβανοµένων και αυτών σε περίπτωση που γίνει branch, για να φορτώσει σε ένα cache block Το branch prediction αναδιπλώνεται µέσα στην cache και πρέπει να εξασφαλίζεται όλες οι διευθύνσεις να έχουν έγκυρο fetch - απαιτεί πιο πολύπλοκους µηχανισµούς address mapping

Σύνοψη cache optimization

Main Memory Organizations - Σκοπός: η επίτευξη µεγαλύτερου memory bandwidth (o αριθµός των bytes που διαβάζονται ή γράφονται ανά χρονική µονάδα)

Τεχνικές για µεγαλύτερο bandwidth Wider Main Memory - όσο µεγαλώνουµε το µέγεθος του bus τόσο µειώνεται το miss penalty Simple Interleaved Memory - προσφέρει παραλληλισµό: Independent Memory Banks - πολλαπλοί memory controllers επιτρέπουν σε banks να λειτουργούν ανεξάρτητα

Τι κερδίζουµε από το interleaving και wider memory bus? Παράδειγµα: Block size = 1 word Memory bus width = 1 word Miss rate = 3% Memory access per instruction = 1.2 Cache miss penalty = 64 cycles(4(send address)+56(access time)+4(send data)) Average cycles per instruction (ignoring cache misses) = 2 CPI = 2 (hit time) + (1.2 x 3% x 64) = 4.30 Για block size = 2 words => miss rate = 2% 64-bit bus and memory, no interleaving = 2 + (1.2 x 2% x 2 x 64) = 5.07 64-bit bus and memory, interleaving = 2 + (1.2 x 2% x (4+56+8)) = 3.63 128-bit bus and memory, no interleaving = 2 + (1.2 x 2% x 1 x 64) = 3.54

Memory technology DRAM Technology Internal organization of a 64m bit DRAM

Memory technology SRAM Static RAM - Τα δεδοµένα δεν χρειάζεται να ξαναγραφτούν µετά από ένα διάβασµα Βελτιώσεις για DRAM - fast page mode, επιτρέπει συνεχόµενες προσπελάσεις στον row buffer στον ίδιο row access time - synchronous DRAM (SDRAM), ένα σήµα clock προστίθεται στο DRAM interface - double data rate (DDR), µεταφορά data τόσο κατά τη θετική όσο και την αρνητική ακµή ρολογιού - RAMBUS, ένα νέο DRAM Interface

Virtual Memory ιαιρεί τη physical memory σε blocks και τα κατανέµει σε διαφορετικές processes Mapping της virtual memory σε physical memory για ένα πρόγραµµα µε 4 pages

Paging vs. Segmentation

Τα 4 ερωτήµατα σχετικά µε την ιεραρχία µνήµης Ερ.1: Που µπορεί ένα block να τοποθετηθεί στην main memory; - Fully associative strategy Ερ.2: Πως µπορεί ένα block να βρεθεί αν είναι στη main memory; Ερ.3: Ποιο block πρέπει να αντικατασταθεί σε ενδεχόµενο virtual memory miss; -LRU strategy Ερ.4: Τι γίνεται σε ένα write; - Write back strategy

Fast Address Translation Address translations φυλάσσονται σε ειδική cache, γνωστή ως translation lookaside buffer (TLB) - Λειτουργία Alpha 21264 data TLB κατά το translation:

The overall picture of a hypothetical memory hierarchy going from virtual address to L2 cache

Protection of Virtual Memory Μια address είναι έγκυρη αν: Base Address Bound αν όµως η address θεωρείται ένας µη προσηµασµένος αριθµός που προστίθεται στο Base, τότε πρέπει: (Base + Address) Bound Παροχή δύο modes για processes - user process - kernel process (του λειτουργικού συστήµατος) Παροχή ενός τµήµατος της CPU state όπου η user process να µπορεί να χρησιµοποιήσει άλλα όχι να γράψει δεδοµένα του kernel Παροχή µηχανισµών ώστε η CPU να µπορεί να µεταβεί από το user mode στο supervisor mode και αντίστροφα

Ένα παράδειγµα paged virtual memory Alpha Η οργάνωση των seg0 και seg1 στον Alpha Το mapping µιας virtual address του Alpha

Ένα παράδειγµα segmented virtual memory Intel Pentium Παραδείγµατα από IA-32 segment descriptors:

The cache coherency problem

Βάζοντας τα όλα µαζί: Alpha 21264 Memory Hierarchy

Σφάλµατα και Παγίδες Σφάλµα: προβλέποντας την απόδοση της cache για ένα πρόγραµµα, βασισµένοι στα αποτελέσµατα µε άλλο Παγίδα: εξοµοιώνοντας πολλές εντολές για να πάρεις ακριβή µέτρα απόδοσης της ιεραρχίας µνήµης

Σφάλµατα και Παγίδες Παγίδα: δίνοντας έµφαση στο memory bandwidth της DRAM έναντι του memory latency

Σφάλµατα και Παγίδες Παγίδα: παροχή υψηλού memory bandwidth σε ένα cache-based σύστηµα Παγίδα: αγνοώντας την επίδραση του λειτουργικού συστήµατος στην απόδοση της ιεραρχίας µνήµης

Σύνοψη ιεραρχία µνήµης διάφορων µικροεπεξεργαστών το 2001

Σύνοψη 4 γενιές µικροεπεξεργαστών Alpha και συστηµάτων