Cache Optimisations

Σχετικά έγγραφα
Cach O p i timisati tions

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

Ασκήσεις Caches

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

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

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

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

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

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

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

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

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: /27 Υπνδίθηπν Β:

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

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

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

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

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

Ενδεικτικά Θέματα Στατιστικής ΙΙ

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

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

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

Κινητός και Διάχυτος Υπολογισμός (Mobile & Pervasive Computing)

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

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

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

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

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

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

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

Αζθήζεηο Caches

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Κάζε functional unit ρξεζηκνπνηείηαη κηα θνξά ζε θάζε θύθιν: αλάγθε γηα πνιιαπιό hardware = θόζηνο πινπνίεζεο!

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

Οργάνωση και Δομή Παρουσιάσεων

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

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

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

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

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

Η αξρή ζύλδεζεο Client-Server

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

Κεθάιαην 20. Ελαχιστοποίηση του κόστους

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

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

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

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

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

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

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

ΗΥ-150 Πξνγξακκατησκόο Ταμηλόκεσε θαη Αλαδήτεσε

ΔΠΙΣΡΟΠΗ ΓΙΑΓΩΝΙΜΩΝ 74 ος ΠΑΝΔΛΛΗΝΙΟ ΜΑΘΗΣΙΚΟ ΓΙΑΓΩΝΙΜΟ ΣΑ ΜΑΘΗΜΑΣΙΚΑ Ο ΘΑΛΗ 19 Οκηωβρίοσ Δνδεικηικές λύζεις

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

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

ΑΡΥΔ ΟΙΚΟΝΟΜΙΚΗ ΘΔΩΡΙΑ ΛΤΔΙ ΓΙΑΓΩΝΙΜΑΣΟ ΚΔΦΑΛΑΙΟΤ 2

ΠΑΝΕΠΙΣΗΜΙΟ ΠΑΣΡΩΝ. Διπλωματική Εργαςία. Θέμα

Κινητός και Διάχυτος Υπολογισμός (Mobile & Pervasive Computing)

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

Άσκηση 1 - Μοπυοποίηση Κειμένου

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

Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ

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

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

Transcript:

Cache Optimisations 1

Γηαθνξά Δπίδνζεο Processor-Memory Performance Gap: (grows 50% / year) 2

SRAM vs DRAM 1-transistor DRAM cell 6-transistor SRAM cell 3

Intel 45nm 6T SRAM cell 4

Ιεξαξρία Μλήκεο Πξέπεη λα κεηώζνπκε ην processor-memory performance gap Η πξνζπέιαζε δεδνκέλσλ (code & data) δελ είλαη νκνηόκνξθε ( principle of locality ). Σρεδηαζκόο ηεξαξρίαο κλήκεο κε βάζε 2 αξρέο : Τνπηθόηεηα Τα κηθξόηεξα components είλαη πην γξήγνξα ( smaller hardware is faster) 5

Παξάδεηγκα Ιεξαξρίαο Μλήκεο Μηθξόηεξν θόζηνο/bit Μεγαιύηεξε ρσξεηηθόηεηα Μηθξόηεξνο ρξόλνο πξόζβαζεο 6

Βαζηθέο Έλλνηεο (Δπαλάιεςε) block line page: ε κηθξόηεξε κνλάδα κεηαθνξάο δεδνκέλσλ κεηαμύ ησλ επηπέδσλ κλήκεο To Processor From Processor Upper Level Memory Blk X Lower Level Memory Blk Y 7

Βαζηθέο Έλλνηεο (Δπαλάιεςε) hit : ην block βρίζκεηαι ζε θάπνηα ζέζε ηνπ εμεηαδόκελνπ επηπέδνπ κλήκεο hit rate: hits/ζπλνιηθέο πξνζπειάζεηο κλήκεο hit time: ρξόλνο πξνζπέιαζεο ησλ δεδνκέλσλ miss: ην block δεν υπάρχει ζην εμεηαδόκελν επίπεδν κλήκεο miss rate: 1 (hit rate) miss penalty: (ρξόλνο κεηαθνξάο ησλ δεδνκέλσλ ελόο block ζην ζπγθεθξηκέλν επίπεδν κλήκεο) + (ρξόλνο απόθηεζεο ησλ δεδνκέλσλ από ηελ CPU) access time: ρξόλνο απόθηεζεο ηεο 1εο ιέμεο transfer time: ρξόλνο απόθηεζεο ησλ ππόινηπσλ ιέμεσλ 8

Βαζηθέο Έλλνηεο (Δπαλάιεςε) Πνύ ηνπνζεηνύκε έλα block ζε θάπνην επίπεδν ηεο ηεξαξρίαο κλήκεο (block placement) ; Direct mapped Μηθξόηεξνο ρξόλνο πξόζβαζεο Μεγαιύηεξν miss rate Fully associative Μηθξόηεξν miss rate Μεγαιύηεξνο ρξόλνο πξόζβαζεο Set associative Σπλδπαζκόο ησλ 2 πξνεγνπκέλσλ Η πην ζπλεζηζκέλε επηινγή 9

Βαζηθέο Έλλνηεο (Δπαλάιεςε) Αξ. Block To block 12 κπαίλεη νπνπδήπνηε Αξ. Block To block 12 κπαίλεη κόλν ζην block 4 (=12 mod 8) Αξ. Block To block 12 κπαίλεη νπνπδήπνηε κέζα ζην set 0 (=12 mod 4) Cache Αξ. Block δηεύζπλζε ηνπ block frame Μλήκε 10

Βαζηθέο Έλλνηεο (Δπαλάιεςε) Πώο βξίζθνπκε έλα block ζε θάπνην επίπεδν ηεο ηεξαξρίαο κλήκεο (block identification) ; Φσσική Διεύθσνση ( CPU ) Tag Διεύθυνση του Block Index Block Offset Μέγεθος block offset = log2(μέγεθος block) Μέγεθος Index = log2( Σσνολικός αριθμός blocks/associativity) Μέγεθος tag = μέγεθος address - μέγεθος index - μέγεθος offset 11

Βαζηθέο Έλλνηεο (Δπαλάιεςε) Πνηό block αληηθαζηζηνύκε ζε πεξίπησζε ελόο miss (block replacement) ; Random, LRU, FIFO Τί πνιηηηθή αθνινπζνύκε όηαλ ην πεξηερόκελν ελόο block κεηαβιεζεί; write hit : write-through vs. write-back write miss : write-allocate vs. no-write-allocate 12

Cache Misses : 3C's Compulsory: Σπκβαίλνπλ θαηά ηελ πξώηε πξόζβαζε ζε έλα block. Τν block πξέπεη λα θιεζεί από ρακειόηεξα επίπεδα κλήκεο θαη λα ηνπνζεηεζεί ζηελ cache (απνθαινύληαη θαη cold start misses ή first reference misses). Θα ζπλέβαηλαλ αθόκα θαη ζε κηα άπεηξε cache. Capacity: Όηαλ ε cache δε ρσξά όια ηα δεδνκέλα θάπνηα blocks απνκαθξύλνληαη. Όηαλ δεηεζνύλ μαλά ζην κέιινλ έρνπκε capacity miss. Δίλαη ηα misses κηαο Fully Associative Cache (αθνύ αθαηξέζνπκε ηα compulsory misses). Conflict: Σε κηα set-associative ή direct-mapped cache, πνιιά blocks απεηθνλίδνληαη ζην ίδην set. Έηζη ελώ κπνξεί λα ππάξρνπλ άδεηα sets ζηελ ππόινηπε cache, θάπνηα blocks απνκαθξύλνληαη. Όηαλ δεηεζνύλ μαλά ζην κέιινλ έρνπκε conflict miss. 13

Miss Rate / ηύπν Cache Misses : 3C's Απόιπην Miss Rate (SPEC92) 1 2 4 8 16 32 64 128 0.14 0.12 0.1 0.08 0.06 0.04 0.02 0 1-way 2-way 4-way 8-way Capacity Μέγεζνο Cache (KB) Compulsory 14

Miss Rate / είδνο 1 Cache Misses : 3C's Σρεηηθό Miss Rate (SPEC92) 2 4 8 16 32 64 128 100% 80% 60% 1-way 2-way 4-way 8-way 40% Capacity 20% 0% Cache Size (KB) Compulsory 15

Βειηηζηνπνίεζε Απόδνζεο ηεο Cache Μείσζε ηνπ cache miss penalty Multilevel caches, Critical word first, victim caches,... Μείσζε ηνπ miss rate Block/Cache size, Associativity, Pseudoassociative Caches,... Μείσζε ηνπ miss penalty θαη ηνπ miss rate κέζσ παξαιιειηζκνύ Non-blocking caches, prefetching,... Μείσζε ηνπ hit time Μηθξέο caches, trace caches,... 16

Σρεδηαζηηθό δίιεκκα (1) Μείσζε ηνπ miss penalty Multilevel Caches Μηθξή cache θαη άξα ηόζν γξήγνξε όζν θαη ν επεμεξγαζηήο; Μεγάιε cache πνπ λα ρσξά πνιιά δεδνκέλα αιιά πνιύ πην αξγή; Λύζε : Ιεξαξρία κλήκεο πνιιώλ επηπέδσλ. L1 : Μηθξή θαη γξήγνξε ώζηε ν επεμεξγαζηήο λα κπνξεί λα ηελ πξνζπειάζεη ζε 1-2 θύθινπο (hit time). L2 : Μεγαιύηεξε από ηελ L1. Πην αξγή, αιιά κπνξεί λα ηθαλνπνηεί ηα πεξηζζόηεξα από ηα L1 misses κεηώλνληαο απηά πνπ πξέπεη λα πξνζπειάζνπλ ηελ θύξηα κλήκε. L3... Main memory 17

(1) Μείσζε ηνπ miss penalty Critical Word First θαη Early Restart Γελ ρξεηάδεηαη λα πεξηκέλνπκε λα κεηαθεξζεί νιόθιεξν ην block πξηλ εηδνπνηήζνπκε ηνλ επεμεξγαζηή λα ζπλερίζεη ηελ εθηέιεζε ηνπ πξνγξάκκαηνο. Critical word first: Φόξησλεηαη πρώτη ε ιέμε πνπ δήηεζε ν επεμεξγαζηήο. Οη ππόινηπεο ιέμεηο ηνπ block κεηαθέξνληαη ζηελ cache ελώ ν επεμεξγαζηήο ζπλερίδεη ηελ επεμεξγαζία. Early restart: Οη ιέμεηο ηνπ block θνξηώλνληαη ζηελ cache με την σειρά. Όηαλ θνξησζεί ε δεηνύκελε ιέμε, ν επεμεξγαζηήο ζπλερίδεη ηελ ιεηηνπξγία ηνπ, ελώ ηαπηόρξνλα θνξηώλνληαη ζηελ cache θαη νη ππόινηπεο ιέμεηο ηνπ block πνπ αθνινπζνύλ. Φξήζηκεο γηα caches κε κεγάιν κέγεζνο cache block. Πξνζθέξνπλ κηθξή βειηίσζε γηα πξνγξάκκαηα κε πςειή ρσξηθή ηνπηθόηεηα, αθνύ παξνπζηάδνπλ κεγάιε πηζαλόηεηα λα δεηνύλ δεδνκέλα πνπ βξίζθνληαη ζε γεηηνληθέο ζέζεηο κλήκεο. 18

(1) Μείσζε ηνπ miss penalty Πξνηεξαηόηεηα ησλ Read Misses Processor Cache DRAM Write Buffer Δμππεξέηεζε ησλ Read Misses πξηλ νινθιεξσζνύλ ηα write misses. Ο write-buffer (FIFO δνκή) απνζεθεύεη ηα writes (ηξνπνηεκέλα δεδνκέλα) πνπ πξέπεη λα απνζεθεπηνύλ ζηα επόκελα επίπεδα ηεο ηεξαξρίαο κλήκεο. Πηζαλόηεηα RAW hazards! 19

(1) Μείσζε ηνπ miss penalty Πξνηεξαηόηεηα ησλ Read Misses RAW hazards ζε write-through caches κε write-buffers: O write-buffer θξαηά ηα πην πξόζθαηα ηξνπνηεκέλα δεδνκέλα Μία ιύζε λα πεξηκέλνπκε λα αδεηάζεη ν write-buffer. Έηζη όκσο απμάλεηαη ην miss penalty Γεύηεξε ιύζε είλαη ν έιεγρνο ησλ πεξηερνκέλσλ ηνπ buffer ζε θάζε read miss. Αλ ηα δεδνκέλα πνπ ζέινπκε λα δηαβάζνπκε δελ ππάξρνπλ ζηνλ buffer, δίλνπκε πξνηεξαηόηεηα ζην read miss θαη ην πξνσζνύκε ζην επόκελν επίπεδν ηεο ηεξαξρίαο κλήκεο. Η ηερληθή απηή βνεζά θαη ζε write-back caches. Έζησ όηη έλα read miss ζα αληηθαηαζηήζεη έλα dirty block ηεο cache. Πξηλ : Δγγξαθή ηνπ dirty block ζην επόκελν επίπεδν κλήκεο Δμππεξέηεζε ηνπ miss, αλάγλσζε θαη επαλεθθίλεζε ηνπ επεμεξγαζηή Τώξα : Μεηαθνξά ηνπ dirty block ζηνλ write-buffer Δμππεξέηεζε ηνπ miss, αλάγλσζε θαη επαλεθθίλεζε ηνπ επεμεξγαζηή-> Δγγξαθή ηνπ dirty block ζην επόκελν επίπεδν κλήκεο 20

Διεύθσνση εγγραφής (1) Μείσζε ηνπ miss penalty Δλνπνίεζε (merging) ησλ write buffers Σπλδπαζκόο πνιιαπιώλ writes ζε έλα entry ηνπ write buffer. Απνδνηηθόηεξε ρξήζε ηνπ cache badwidth (multiwrites πην γξήγνξα από εγγξαθέο κνλαδηθώλ ιέμεσλ κε ηε ζεηξά) Μείσζε ησλ stalls πνπ νθείινληαη ζε full write-buffers. 100 108 116 124 Διεύθσνση εγγραφής 100 Mem[100] Mem[108] Mem[116] Mem[124] Mem[100] Mem[108] Mem[116] Mem[124] θάζε buffer ρσξάεη 4 ιέμεηο ησλ 64-bit. Μόλν ζην 2ν ζρήκα αμηνπνηνύληαη 21

(1) Μείσζε ηνπ miss penalty Victim Caches Πξνζζήθε ελόο κηθξνύ buffer γηα απνζήθεπζε ησλ blocks πνπ απνκαθξύλνληαη από ηελ cache. Σε θάζε miss ειέγρνπκε ηα πεξηερόκελα ηεο victim cache πξηλ ζπλερίζνπκε ηελ αλαδήηεζε ζην επόκελν επίπεδν ηεο ηεξαξρίαο κλήκεο. TAGS DATA Jouppi [1990]: Μηά victim cache 4 ζέζεσλ απνηξέπεη ην 20%-95% ησλ conflict misses γηα κηα 4ΚΒ direct mapped cache. Tag and Comparator Tag and Comparator Tag and Comparator Tag and Comparator One Cache line of Data One Cache line of Data One Cache line of Data One Cache line of Data To Next Lower Level In Hierarchy 22

Address =? CPU Address In Out Tag =? Data Cache Victim Cache Write Buffer Lower Level Memory 23

Βειηηζηνπνίεζε Απόδνζεο ηεο Cache Μείσζε ηνπ cache miss penalty Multilevel caches, Critical word first, victim caches,... Μείσζε ηνπ miss rate Block/Cache size, Associativity, Pseudoassociative Caches,... Μείσζε ηνπ miss penalty θαη ηνπ miss rate κέζσ παξαιιειηζκνύ Non-blocking caches, prefetching,... Μείσζε ηνπ hit time Μηθξέο caches, trace caches,... 24

(2) Μείσζε ηνπ miss rate Αύμεζε ηνπ block size Αμηνπνίεζε ηεο ηνπηθήο ρσξηθόηεηαο (spatial locality). Μείσζε ησλ compulsory misses Ταπηόρξνλα : Αύμεζε ηνπ miss penalty Πηζαλή αύμεζε ησλ capacity θαη conflict misses Πξνζεθηηθή επηινγή ηνπ block size! 25

(2) Μείσζε ηνπ miss rate Αύμεζε ηνπ cache size Μείσζε ησλ capacity misses Μείσζε ηνπ miss rate Μεηνλεθηήκαηα Αύμεζε ηνπ hit time Αύμεζε ηνπ θαηαζθεπαζηηθνύ θόζηνπο Αμηνπνίεζε ηνπ κεγάινπ αξηζκνύ transistors πνπ ππάξρεη πιένλ ζηα chips. 26

(2) Μείσζε ηνπ miss rate Αύμεζε ηνπ βαζκνύ Associativity Αύμεζε ηνπ βαζκνύ associativity ζπλεπάγεηαη κείσζε ηνπ miss rate. Πξαθηηθά : Γηα single processor systems, κηα 8-way set associative cache έρεη πξαθηηθά ην ίδην miss rate κε κηα fully associative cache. Μηα direct-mapped cache κε size N έρεη ην ίδην miss rate κε κηα 2-way set associative cache κε size N/2. Μεηνλεθηήκαηα : Αύμεζε ηνπ hit time Αύμεζε ηνπ θόζηνπο 27

Σπλδπαζκόο ησλ : (2) Μείσζε ηνπ miss rate Pseudoassociative Caches Direct-mapped caches Μηθξό hit time 2-way set associative caches Μείσζε ησλ conflict misses Όηαλ έρνπκε miss, πξηλ πξνρσξήζνπκε ζηα επόκελα επίπεδα ηεο ηεξαξρίαο κλήκεο, ειέγρνπκε αλ ππάξρεη ε δηεύζπλζε πνπ ςάρλνπκε ζε κηα δεύηεξε ζέζε ηεο cache (pseudo-hit). Υινπνίεζε : Αλαζηξνθή ηνπ MSB ηνπ index γηα λα πξνζπειάζνπκε ην pseudo-set. Έρνπλ έλα γξήγνξν (hit) θαη έλα πην αξγό (pseudo-hit) ρξόλν αλαδήηεζεο (hit time). 28

(2) Μείσζε ηνπ miss rate Compiler Optimizations Οη πξνεγνύκελεο ηερληθέο απαηηνύλ αιιαγέο/πξνζζήθεο ζην hardware ηνπ ζπζηήκαηνο. Δλαιιαθηηθά : Βειηηζηνπνίεζε ηνπ software! Compiler Optimizations Instructions Data Αλαδηνξγάλσζε ησλ procedures ζηε κλήκε γηα ηε κείσζε ησλ conflict misses Merging arrays Loop interchange Loop fusion Blocking 29

(2) Μείσζε ηνπ miss rate Merging Arrays /* Before: 2 sequential arrays */ int val[size]; int key[size]; /* After: 1 array of stuctures */ struct merge { int val; int key; }; struct merge merged_array[size]; Μεηώλνληαη ηα conflicts κεηαμύ ησλ ζηνηρείσλ ησλ val θαη key Βειηίσζε ηεο ρσξηθήο ηνπηθόηεηαο (spatial locality) 30

/* Before */ for (j = 0; j < 100; j = j+1) (2) Μείσζε ηνπ miss rate Loop interchange for (i = 0; i < 5000; i = i+1) /* After */ x[i][j] = 2 * x[i][j]; for (i = 0; i < 5000; i = i+1) for (j = 0; j < 100; j = j+1) x[i][j] = 2 * x[i][j]; Αξρηθά, ε θάζε ιέμε πνπ δηαβάδεηαη απέρεη 100 ζέζεηο από ηελ πξνεγνύκελε. Μεηά ηελ αιιαγή, ε πξνζπέιαζε γίλεηαη ζε δηαδνρηθέο ζέζεηο κλήκεο. Γηαβάδνληαη κε ηε ζεηξά όιεο νη ιέμεηο ηνπ cache block Βειηίσζε ηεο ρσξηθήο ηνπηθόηεηαο 31

(2) Μείσζε ηνπ miss rate Blocking Γηάβαζκα ησλ NxN ζηνηρείσλ ηνπ z θαη ησλ Ν ζηνηρείσλ κηαο γξακκήο ηνπ y θαη εγγξαθή ησλ N ζηνηρείσλ κηαο γξακκήο ηνπ x. Τα capacity misses εμαξηώληαη από ην N θαη ην κέγεζνο ηεο cache. size = 3xNxNxsizeof(array_elem) 0 capacity misses Σπλνιηθόο αξηζκόο accesses : 2N 3 + N 2 Ιδέα : Δπεμεξγαζία ελόο BxB ππνπίλαθα πνπ λα ρσξάεη ζηελ cache /* Before */ for (i = 0; i < N; i = i+1) for (j = 0; j < N; j = j+1) {r = 0; for (k = 0; k < N; k = k+1){ r = r + y[i][k]*z[k][j];}; x[i][j] = r; }; Παλιότερες προσπελάσεις Δεν έτοσν προσπελαστεί ακόμα Νεότερες προσπελάσεις 32

(2) Μείσζε ηνπ miss rate Blocking /* After */ for (jj = 0; jj < N; jj = jj+b) for (kk = 0; kk < N; kk = kk+b) for (i = 0; i < N; i = i+1) for (j = jj; j < min(jj+b-1,n); j = j+1) {r = 0; for (k = kk; k < min(kk+b-1,n); k = k+1) r = r + y[i][k]*z[k][j]; x[i][j] = x[i][j] + r; }; B : Blocking factor Μείσζε ησλ capacity misses : 2N 3 /B +N 2 Βειηίσζε θαη ηεο ρξνληθήο θαη ηεο ρσξηθήο ηνπηθόηεηαο Παλιότερες προσπελάσεις Δεν έτοσν προσπελαστεί ακόμα Νεότερες προσπελάσεις 33

Βειηηζηνπνίεζε Απόδνζεο ηεο Cache Μείσζε ηνπ cache miss penalty Multilevel caches, Critical word first, victim caches,... Μείσζε ηνπ miss rate Block/Cache size, Associativity, Pseudoassociative Caches,... Μείσζε ηνπ miss penalty θαη ηνπ miss rate κέζσ παξαιιειηζκνύ Non-blocking caches, prefetching,... Μείσζε ηνπ hit time Μηθξέο caches, trace caches,... 34

(3) Μείσζε miss rate/miss penalty κέζσ παξαιιειηζκνύ Multiple Banks Αληί λα ζεσξνύκε ηελ cache ζαλ έλα κνλαδηθό block, ηελ δηαηξνύκε ζε πνιιαπιά αλεμάξηεηα banks. πρ. Niagara L2 : 4 banks Γπλαηόηεηα ηαπηόρξνλσλ πξνζπειάζεσλ (1 ζε θάζε bank) Υςειή απόδνζε όηαλ νη πξνζπειάζεηο κνηξάδνληαη αλάκεζα ζηα banks. Δπνκέλσο, ην mapping ησλ δηεπζύλζεσλ ζε banks επεξεάδεη άκεζα ηελ απόδνζε ηνπ ζπζηήκαηνο. Έλα απιό θαη απνδνηηθό mapping είλαη ην sequential interleaving Οη δηεπζύλζεηο αληηζηνηρίδνληαη κε ηε ζεηξά ζε θάζε bank Αλ έρνπκε 8 banks, ηόηε ηα blocks γηα ηα νπνία block address mod 8 = 0 απνζεθεύνληαη ζην bank 0, απηά γηα ηα νπνία ηζρύεη block address mod 8 = 1 ζην bank 1,... 35

(3) Μείσζε miss rate/miss penalty κέζσ παξαιιειηζκνύ Nonblocking caches Οη nonblocking caches επηηξέπνπλ ζηηο data caches λα απνζηέιινπλ δεδνκέλα (εμππεξέηεζε cache hits) όζν δηεθπεξαηώλεηαη έλα cache miss. Φξήζε ζε out-of-order ζπζηήκαηα Απαηηνύληαη πνιιαπιά memory banks γηα ηελ παξάιιειε εμππεξέηεζε πξνζπειάζεσλ hit under miss : Μείσζε ηνπ effective miss penalty θαζώο δελ αγλννύληαη θαηλνύξηεο πξνζπειάζεηο hit under multiple miss / miss under miss : Δπηπιένλ κείσζε ηνπ effective miss penalty επηθαιύπηνληαο πνιιαπιά misses Αύμεζε ηεο πνιππινθόηεηαο ηνπ cache controller θαζώο κπνξεί λα ππάξρνπλ πνιιαπιέο πξνζπειάζεηο πνπ πεξηκέλνπλ λα ηθαλνπνηεζνύλ 36

(3) Μείσζε miss rate/miss penalty κέζσ παξαιιειηζκνύ Nonblocking caches 37

(3) Μείσζε miss rate/miss penalty κέζσ παξαιιειηζκνύ Hardware Prefetching Ιδέα : Φέξλσ ζηελ cache απηά πνπ ζα δεηήζεη ζηε ζπλέρεηα ν επεμεξγαζηήο! Instructions Data Σε θάζε miss θέξλνπκε 2 block. Απηό πνπ δήηεζε ν επεμεξγαζηήο (απνζήθεπζε ζηελ cache) θαη ην ακέζσο επόκελν (γεηηνληθό). Τν 2ν block απνζεθεύεηαη ζε ελα instruction stream buffer. Jouppi [1990] : Instruction stream buffer κε 16 blocks βειηηώλεη ην hit rate κηαο 4KB direct-mapped instruction cache θαηα 72%. Ίδηα ινγηθή θαη γηα ηηο data cache. Δπέθηαζε κε πνιιαπινύο stream buffers, όπνπ ν θαζέλαο θάλεη prefetch κηα δηαθνξεηηθή δηεύζπλζε. Palacharla [1994]: 8 stream buffers κπνξνύλ λα κεηώζνπλ θαηά 50-70% ηα misses ελόο ζπζηήκαηνο κε 64ΚΒ 4-way assoc. caches (Instr. & Data) 38

(3) Μείσζε miss rate/miss penalty κέζσ παξαιιειηζκνύ Software Prefetching O compiler εηζάγεη θαηάιιειεο εληνιέο ( prefetch instructions ), νη νπνίεο πξνθαινύλ ηε κεηαθνξά δεδνκέλσλ (data) πξηλ απηά ρξεηαζηνύλ από ην πξόγξακκα. Γύν εηδώλ : Register prefetch : Φόξησζε δεδνκέλσλ ζε θαηαρσξεηέο (π.ρ. loads ηνπ HP PA-RISC) Cache prefetch : Φόξησζε δεδνκέλσλ ζηελ cache (π.ρ. MIPS IV, PowerPC, SPARC v9) Nonfaulting/Nonbinding : Γελ επηηξέπεηαη λα πξνθαιέζνπλ exceptions (π.ρ. virtual address faults) Όπσο θαη ζηελ πεξίπησζε ηνπ hardware prefetching, ηα ζύζηεκαηα απηά πξνϋπνζέηνπλ ηε ρξήζε nonblocking caches. 39

Βειηηζηνπνίεζε Απόδνζεο ηεο Cache Μείσζε ηνπ cache miss penalty Multilevel caches, Critical word first, victim caches,... Μείσζε ηνπ miss rate Block/Cache size, Associativity, Pseudoassociative Caches,... Μείσζε ηνπ miss penalty θαη ηνπ miss rate κέζσ παξαιιειηζκνύ Non-blocking caches, prefetching,... Μείσζε ηνπ hit time Μηθξέο caches, trace caches,... 40

(4) Μείσζε hit time Μηθξέο θη απιέο caches Πνιύ ζεκαληηθό ηδηαίηεξα γηα ηηο first-level caches Μεγάιν θνκκάηη ηνπ hit time απνηειεί ε πξνζπέιαζε ηνπ tag array θαη ε ζύγθξηζε κε ην θαηάιειν θνκκάηη ηεο δεηνύκελεο δηεύζπλζεο. Μηθξέο κλήκεο Γξήγνξν indexing Τνπνζέηεζε θνληά ζηνλ επεμεξγαζηή Απιέο κλήκεο π.ρ. Directmapped Δπηθάιπςε ηεο ζύγθξηζεο ησλ tag κε ηελ απνζηνιή ησλ δεδνκέλσλ 41

(4) Μείσζε hit time Απνθπγή Address Translation Virtual Caches ή Virtually Addressed Caches Απνζηνιή ηεο virtual address ζηελ cache. Σε θάζε αιιαγή δηεξγαζίαο πξέπεη λα θαζαξίδνπκε (flush) ηελ cache Κόζηνο : ρξόλνο flush + compulsory misses Aliases ή Synonyms : Γηαθνξεηηθέο virtual address (π.ρ. OS θαη user program) αληηζηνηρίδνληαη ζηελ ίδηα θπζηθή δηεύζπλζε Πνιιαπιά αληίγξαθα ηνπ ίδηνπ block Virtual addresses γηα ηελ επηθνηλσλία Ι/Ο κνλάδσλ κε ηηο caches Λύζεηο Φξήζε ελόο process-identifier tag (PID). Απαηηείηαη flush κόλν όηαλ έλα παιηό PID μαλαρξεζηκνπνηείηαη γηα κηα θαηλνύξηα δηεξγαζία. Aliases :» Ηardware : Καηάιιεινη κεραληζκνί θαη έιεγρνη εγγπώληαη κηα κνλαδηθή θπζηθή δηεύζπλζε γηα θάζε block ηεο cache» Software : Page coloring Καηάιιειε επηινγή ησλ virtual pages/addresses γηα ηελ απνθπγή δεκηνπξγίαο aliases. 42

(4) Μείσζε hit time Virtually Addressed Caches CPU CPU CPU VA TB $ PA PA MEM Σπκβαηηθή Οξγάλσζε VA Tags $ VA VA TB PA MEM Virtually Addressed Cache Μεηάθξαζε κόλν ζε miss Synonym πξνβιήκαηα PA Tags VA $ TB L2 $ MEM PA Δπηθάιπςε ηεο $ πξνζπέιαζεο κε VA κεηάθξαζε: Απαηηείηαη δείθηεο ζηελ $ index γηα λα παξακέλεη ζηαζεξό θαηά ηε κεηάθξαζε 43

(4) Μείσζε hit time Trace Caches Μέρξη ηώξα ην cache block κηαο Instruction cache πεξηέρεη κηα ζεηξά εληνιώλ όπσο απηέο νξίδνληαη (απνζεθεύνληαη) ζηελ κλήκε. Πην απνδνηηθό ην block λα πεξηέρεη κηα δπλακηθή ζεηξά εληνιώλ όπσο απηέο εθηεινύληαη ζηνλ επεμεξγαζηή! Τrace Cache Μεηνλεθηήκαηα : Πνιύπινθν address mapping Κάπνηεο εληνιέο κπνξεί λα απνζεθεύνληαη πνιιαπιέο θνξέο θαζώο εκθαλίδνληαη ζε πνιιαπιά traces εμαηηίαο δηαθνξεηηθώλ branches. Με απνδνηηθή ρξήζε ηνπ δηαζέζηκνπ ρώξνπ. 44

Miss rate Miss penalty Parallelism Hit time Cache Optimizations Τεχνική MP MR HT Complexity Multilevel caches + 2 Critical Word First & Early Restart + 2 Πξνηεξαηόηεηα ζηα Read Misses + 1 Merging write buffers + 1 Victim Caches + 1 Μεγαιύηεξν block size - + 0 Υςειόηεξν βαζκό Associativity + - 1 Pseudo-associative caches + 2 Compiler Optimizations + 0 Multiple Banks + 1 Nonblocking caches + 3 Hardware Prefetching + + 2 Compiler Controlled Prefetching + + 3 Small & simple caches - + 0 Avoid Address Translation + 2 Trace Cache + 3 45