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

Σχετικά έγγραφα
Processor-Memory (DRAM) ιαφορά επίδοσης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cach O p i timisati tions

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

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

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ

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

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

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

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

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

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

Εικονικι Μνιμθ (virtual memory)

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

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

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

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

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

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

Ασκήσεις Caches

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

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

Ειςαγωγή ςτην πληροφορική

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

CMOS Technology for Computer Architects

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

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

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

HY225 Οργϊνωςη Υπολογιςτών

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β

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

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

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

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

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

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

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

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

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

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

Τέτοιες λειτουργίες γίνονται διαμέσου του

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

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

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

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

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

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

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ

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

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

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

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

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

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β

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

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Τμήματα Μνήμησ Υπολογιςμόσ Φυςικών διευθύνςεων. Εκπαιδεφτρια: Μαρία Πολίτθ

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

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

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

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

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 8 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Α

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

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

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

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

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

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

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

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

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;

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

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

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

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

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

Transcript:

Performance Processor-Memory (DRAM) Διαφορά επίδοςθσ 98 98 982 983 984 985 986 987 988 989 99 99 992 993 994 995 996 997 998 999 2 2 22 23 24 25 µproc 6%/yr Processor-Memory Performance Gap: (grows 5% / year) DRAM 7%/yr. cslab@ntua 22-23

Ιεραρχία μνιμθσ One or more levels (Static RAM): Level : On-chip 6-64K Level 2: On or Off-chip 28-52K Level 3: Off-chip 28K-8M Dynamic RAM (DRAM) 6M-6G Part of The On-chip CPU Datapath 6-256 Registers Registers Cache Main Memory Όςο απομακρυνόμαςτε από τθ CPU : Μικρότερο κόςτοσ/bit Μεγαλφτερθ χωρθτικότθτα Μεγαλφτεροσ χρόνοσ πρόςβαςθσ-κακυςτζρθςθ Χαμθλότεροσ ρυκμόσ εξόδου Interface: SCSI, RAID, IDE, 394 4G-G Magnetic Disc Optical Disk or Magnetic Tape cslab@ntua 22-23 2

Παράδειγμα Ιεραρχίασ Μνιμθσ (με 2 επίπεδα cache) Processor Μεγαλφτερθ Ταχφτθτα Μεγαλφτερθ Χωρθτικότθτα Datapath Control Registers On-Chip Level One Cache L Second Level Cache (SRAM) L 2 Main Memory (DRAM) Virtual Memory, Secondary Storage (Disk) Tertiary Storage (Tape) Ταχφτθτα : -5ns ns 3ns 5ns Μζγεκοσ : <KB <256KB <8MB <4GB Bandwidth : 5GB/s 5GB/s 25GB/s 4GB/s ms >GB MB/s sec TB cslab@ntua 22-23 3

Το μοντζλο τθσ Ιεραρχίασ Μνιμθσ Disk memory μζγεκοσ : 5bytes 64KB 52MB GB ταχφτθτα :,25ns ns ns 5ms cslab@ntua 22-23 4

Παράδειγμα Ιεραρχίασ μνιμθσ Digital PWS 6 au - Alpha 264 CPU 6MHz CPU Level Capacity Throughput Latency 32 registers W L cache 2W L2 cache.5mw ext.l3 cache 64MW main memory Register 52B 24GB/sec 2ns L cache 8KB 6GB/sec 2ns L2 cache 96KB 8GB/sec 6ns L3 cache 4MB 888MB/sec 24ns Main Mem 52MB GB/sec 2ns GW Disk space cslab@ntua 22-23 5

Τυπικζσ Αρχιτεκτονικζσ IBM Power 3: L = 64 KB, 28-way set associative L2 = 4 MB, direct mapped, line size = 28, write back Compaq EV6 (Alpha 2264): L = 64 KB, 2-way associative, line size= 32 L2 = 4 MB (or larger), direct mapped, line size = 64 HP PA: no L2 PA85, PA86: L =.5 MB PA87: L = 2.25 MB AMD Athlon: L = 64 KB, L2 = 256 KB Intel Pentium 4: L = 8 KB, L2 = 256 KB Intel Itanium: L = 6 KB, 4-way associative L2 = 96 KB, 6-way associative L3 = off chip, size varies cslab@ntua 22-23 6

Γιατί είναι ωφζλιμθ θ Ιεραρχία Μνιμθσ; Κατά κανόνα τα προγράμματα προςπελαφνουν ζνα μικρό μόνο μζροσ του ςυνόλου των διευκφνςεων (εντολζσ/δεδομζνα) κατά τθν εκτζλεςθ ενόσ ςυγκεκριμζνου τμιματόσ τουσ Δφο είδθ τοπικότθτασ δεδομζνων: Temporal Locality: Στοιχεία που ζχουν πρόςφατα προςπελαςτεί τείνουν να προςπελαφνονται ξανά ςτο άμεςο μζλλον Spatial locality: Γειτονικά ςτοιχεία όςων ζχουν ιδθ προςπελαςτεί, ζχουν αυξθμζνθ πικανότθτα να προςπελαςτοφν ςτο άμεςο μζλλον Η φπαρξθ τοπικότθτασ ςτισ αναφορζσ ενόσ προγράμματοσ, κακιςτά εφικτι τθ δυνατότθτα να ικανοποιοφνται θ αίτθςθ για δεδομζνα από επίπεδα μνήμησ που βρίςκονται ιεραρχικά ανώτερα cslab@ntua 22-23 7

Ορολογία block line - page : θ μικρότερθ μονάδα μεταφοράσ δεδομζνων μεταξφ των επιπζδων μνιμθσ To Processor From Processor Upper Level Memory Blk X Lower Level Memory Blk Y cslab@ntua 22-23 8

Ορολογία hit : το block βρίςκεται ςε κάποια κζςθ του εξεταηόμενου επιπζδου μνιμθσ hit rate : hits/ςυνολικζσ προςπελάςεισ μνιμθσ hit time : χρόνοσ προςπζλαςθσ των δεδομζνων miss : το block δεν υπάρχει ςτο εξεταηόμενο επίπεδο μνιμθσ miss rate : (hit rate) miss penalty : (χρόνοσ μεταφοράσ των δεδομζνων ενόσ block ςτο ςυγκεκριμζνο επίπεδο μνιμθσ) + (χρόνοσ απόκτθςθσ των δεδομζνων από τθν CPU) access time : χρόνοσ απόκτθςθσ τθσ θσ λζξθσ transfer time : χρόνοσ απόκτθςθσ των υπόλοιπων λζξεων cslab@ntua 22-23 9

H Βάςθ τθσ Ιεραρχίασ Μνιμθσ Οι δίςκοι περιζχουν όλα τα δεδομζνα Όταν ο επεξεργαςτισ χρειάηεται κάποιο ςτοιχείο, αυτό ανεβαίνει ςε ανϊτερα επίπεδα μνιμθσ Η cache περιζχει αντίγραφα των ςτοιχείων τθσ μνιμθσ που ζχουν χρθςιμοποιθκεί Η μνιμθ περιζχει αντίγραφα των ςτοιχείων του δίςκου που ζχουν χρθςιμοποιθκεί cslab@ntua 22-23

4 Ερωτιςεισ για τισ caches Ποφ μπορεί να τοποκετθκεί ζνα block ςε ζνα ψθλότερο επίπεδο ςτθν ιεραρχία μνιμθσ; Τοποκζτθςθ block : direct-mapped, fully associative, set-associative Πϊσ βρίςκουμε ζνα block ςτα διάφορα επίπεδα μνιμθσ; Αναγνϊριςθ ενόσ block : Tag / Block Ποιο από τα ιδθ υπάρχοντα block τθσ cache πρζπει να αντικαταςτακεί ςε περίπτωςθ ενόσ miss; Μθχανιςμόσ αντικατάςταςθσ block : Random, Least Recently Used (LRU), FIFO Τι ςυμβαίνει όταν μεταβάλλουμε το περιεχόμενο ενόσ block; μθχανιςμοί εγγραφισ : write-through ή write-back write-allocate ή no-write-allocate cslab@ntua 22-23

Οργάνωςθ τθσ Cache Τοποκζτθςθ ενόσ block μνιμθσ ςτθν cache Direct mapped : (διεφκυνςθ block) mod (αρ. block ςτθν cache) Set associative : (διεφκυνςθ block) mod (αρ. sets ςτθν cache) Fully associative : οπουδιποτε! cslab@ntua 22-23 2

Οργάνωςθ τθσ Cache Αρ. Block To block 2 μπαίνει οπουδιποτε To block 2 μπαίνει μόνο ςτο block 4 (=2 mod 8) Αρ. Block Αρ. Block To block 2 μπαίνει οπουδιποτε μζςα ςτο set (=2 mod 4) Cache Αρ. Block διεφκυνςθ του block frame Μνιμθ Cache με 8 blocks και μνιμθ με 32 blocks cslab@ntua 22-23 3

Τα πεδία διεφκυνςθσ Φυςικι Διεφκυνςθ ( CPU ) Tag Διεφκυνςθ του Block Index Block Offset Επιλογι Set Επιλογι Δεδομζνων cslab@ntua 22-23 4

Τα πεδία διεφκυνςθσ Φυςικι Διεφκυνςθ ( CPU ) Tag Διεφκυνςθ του Block Index Block Offset Μζγεκοσ block offset = log2(μζγεκοσ block) Μζγεκοσ Index = log2( Συνολικόσ αρικμόσ blocks/associativity) Μζγεκοσ tag = μζγεκοσ address - μζγεκοσ index - μζγεκοσ offset cslab@ntua 22-23 5

Οργάνωςθ τθσ Cache : Direct Mapped Cache Κάκε block μπορεί να αποκθκευκεί μόνο ςε μία κζςθ : (διεφκυνςθ block) MOD (Αρ. blocks ςτθν cache) ςτο παράδειγμά μασ: (διεφκυνςθ block address) MOD (8) cache 8 cache block frames 32 memory blocks cacheable () MOD () = Μνιμθ cslab@ntua 22-23 6

Παράδειγμα : Direct Mapped Cache Tag field Διεφκυνςθ (κζςθ των bit) 3 3 3 2 2 Index field 2 byte offset tag index index valid tag data 2 24 Blocks Κάκε block = λζξθ Μπορεί να αποκθκεφςει 2 32 bytes μνιμθσ 2 2 2 2 3 2 3 2 data Hlt cslab@ntua 22-23 7

Παράδειγμα : Direct Mapped Cache 4K blocks Κάκε block = 4 words v 6 2 6 b its 2 8 b its tag Tag field tag Διεφκυνςθ (κζςθ των bit) 3 6 5 4 3 2 Index field index 2 data byte offset Επιλογι λζξθσ block offset data 4K είςοδοι 6 3 2 3 2 3 2 3 2 Mux 3 2 Καλφτερθ αξιοποίθςθ τθσ spatial locality cslab@ntua 22-23 8

4-Way Set Associative Cache: (MIPS) Tag Field Διεφκυνςθ 3 3 2 9 8 3 2 2 2 8 Index Field In d e x V T a g D a ta V T a g D a ta V T a g D a ta V T a g D a ta 2 2 5 3 2 5 4 2 5 5 2 2 3 2 256 sets 24 block frames Hlt 4 to multiplexer data cslab@ntua 22-23 9

Οργάνωςθ τθσ Cache : Set Associative Cache -way set associative (direct mapped) block Tag Data Χωρθτικότθτα cache : 8 words 2 3 4 5 6 7 2-way set associative Set Tag Data Tag Data 2 3 Set 4-way set associative Tag Data Tag Data Tag Data Tag Data 8-way set associative (fully associative) Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data cslab@ntua 22-23 2

Παράδειγμα οργάνωςθσ cache-διευκυνςιοδότθςθ L cache με 28 cache block frames Κάκε block frame περιζχει 4 λζξεισ (6 bytes) 6-bit διευκφνςεισ μνιμθσ ςτθν cache (64Kbytes κφρια μνιμθ ι 496 blocks μνιμθσ) Δείξτε τθν οργάνωςθ τθσ cache (mapping) και τα πεδία διευκφνςεων τθσ cache για: Fully Associative cache. Direct mapped cache. 2-way set-associative cache. cslab@ntua 22-23 2

Fully Associative Case Valid bit V V Oι 28 tags ελζγχονται παράλλθλα από το hardware κατά τθν τοποκζτθςθ ενόσ data block ςτθν cache V Διεφκυνςθ του Block = 2bits Tag = 2bits Block Offset = 4bits cslab@ntua 22-23 22

Direct Mapped Cache Valid bit V V V Μόνο ζνα tag ελζγχεται παράλλθλα από το hardware κατά τθν τοποκζτθςθ ενόσ data block ςτθν cache V Διεφκυνςθ του Block = 2bits Tag = 5bits Index = 7bits Block Offset = 4bits cslab@ntua 22-23 Κφρια Μνιμθ 23

2-Way Set-Associative Cache Δφο tags ςε ζνα set ελζγχονται παράλλθλα από το hardware κατά τθν τοποκζτθςθ ενόσ data block ςτθν cache Διεφκυνςθ του Block = 2bits Tag = 6bits Index = 6bits Block Offset = 4bits cslab@ntua 22-23 Κφρια Μνιμθ 24

Προςπζλαςθ δεδομζνων ςε Direct Mapped Cache Η CPU καλεί προσ ανάγνωςθ τισ εξισ διευκφνςεισ: x4 x48 xc x44 διεφκυνςθ 4 8 C 4 44 48 4C 4 44 48 4C Κφρια μνιμθ τιμι τθσ λζξθσ a b c d e f g h i j k l cslab@ntua 22-23 25

8ΚΒ Direct-mapped cache 4W blocks Αρχικά όλεσ οι κζςεισ invalid index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 5 5 cslab@ntua 22-23 26

8ΚΒ Direct-mapped cache 4W blocks Read (x4) index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 5 5 Read block : invalid data ςτο block! cslab@ntua 22-23 27

8ΚΒ Direct-mapped cache 4W blocks Read index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 5 5 a b c d Φόρτωςε τα ηθτοφμενα δεδομζνα ςτθν cache! cslab@ntua 22-23 28

8ΚΒ Direct-mapped cache 4W blocks Read index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 5 5 a b c d Επζςτρεψε το b (κζςθ ) ςτθν CPU cslab@ntua 22-23 29

8ΚΒ Direct-mapped cache 4W blocks Read (x48) index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 5 5 a b c d Read block 4 : invalid data ςτο block 4! cslab@ntua 22-23 3

8ΚΒ Direct-mapped cache 4W blocks Read index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 a b c d e f g h 5 5 Φόρτωςε τα ηθτοφμενα δεδομζνα ςτθν cache και κάνε το block valid! cslab@ntua 22-23 3

8ΚΒ Direct-mapped cache 4W blocks Read index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 5 5 a b c d e f g h Επζςτρεψε ςτθν CPU τθν τιμι g! cslab@ntua 22-23 32

8ΚΒ Direct-mapped cache 4W blocks Read (xc) index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 5 5 a b c d e f g h Read block! cslab@ntua 22-23 33

8ΚΒ Direct-mapped cache 4W blocks Read index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 5 5 a b c d e f g h To πεδίο tag ζχει τθ ςωςτι τιμι! Άρα επιςτρζφεται θ τιμι d cslab@ntua 22-23 34

8ΚΒ Direct-mapped cache 4W blocks Read (x44) index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 5 5 a b c d e f g h Read block! cslab@ntua 22-23 35

8ΚΒ Direct-mapped cache 4W blocks Read index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 a b c d e f g h 5 5 Valid data αλλά το πεδίο tag δεν είναι το ςωςτό 2!= Miss : πρζπει να αντικαταςτακεί το block με νζα δεδομζνα cslab@ntua 22-23 36

8ΚΒ Direct-mapped cache 4W blocks Read index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 5 5 2 i j k l e f g h Φόρτωςε το ςωςτό περιεχόμενο και ςτείλε το j ςτθν CPU cslab@ntua 22-23 37

Υπολογιςμόσ του αρικμοφ των bits που χρειάηονται Πόςα bits ςυνολικά χρειάηονται ςε μία direct-mapped cache με 64 KBytes data και blocks τθσ λζξθσ, για 32-bit διευκφνςεισ; 64 Kbytes = 6 Kwords = 2 4 words = 2 4 blocks Block size = 4 bytes => offset size = 2 bits, #sets = #blocks = 2 4 => index size = 4 bits Tag size = address size - index size - offset size = 32-4 - 2 =6 bits Bits/block = data bits + tag bits + valid bit = 32 + 6 + = 49 Bits τθσ cache = #blocks x bits/block = 2 4 x 49 = 98 Kbytes Πόςα bits ςυνολικά χρειάηονται ςε μία 4-way set associative cache για τθν αποκικευςθ των ίδιων δεδομζνων; Block size και #blocks δεν αλλάηει. #sets = #blocks/4 = (2 4 )/4 = 2 2 => index size = 2 bits Tag size = address size - index size - offset = 32-2 - 2 = 8 bits Bits/block = data bits + tag bits + valid bit = 32 + 8 + = 5 Bits τθσ cache = #blocks x bits/block = 2 4 x 5 = 2 Kbytes Αφξθςθ του associativity => Αφξθςθ των bits τθσ cache cslab@ntua 22-23 38

Υπολογιςμόσ του αρικμοφ των bits που χρειάηονται Πόςα bits ςυνολικά χρειάηονται ςε μία direct- mapped cache με 64KBytes data και blocks των 8 λζξεων, για 32-bit διευκφνςεισ (2 32 bytes μποροφν να αποκθκευκοφν ςτθ μνιμθ); 64 Kbytes = 2 4 words = (2 4 )/8 = 2 blocks block size = 32 bytes => offset size = block offset + byte offset = 5 bits #sets = #blocks = 2 => index size = bits tag size = address size - index size - offset size = 32 - - 5 = 6 bits bits/block = data bits + tag bits + valid bit = 8 x 32 + 6 + = 273 bits bits in cache = #blocks x bits/block = 2 x 273 = 68.25 Kbytes Αφξθςθ του μεγζκουσ του block => Μείωςθ των bits τθσ cache. cslab@ntua 22-23 39

Μθχανιςμοί αντικατάςταςθσ ενόσ block τθσ cache Random (τυχαία) επιλογι ενόσ τυχαίου block με βάςθ κάποια ψευδοτυχαία ακολουκία απλι υλοποίθςθ ςτο hardware είναι θ τεχνικι που χρθςιμοποιείται ςυνικωσ LRU (least recently used) αντικακιςτάται το block που δεν ζχει χρθςιμοποιθκεί για περιςςότερθ ϊρα ακριβι υλοποίθςθ ςτο hardware FIFO (first in - first out) - αντικακιςτάται το block που ζχει ειςαχκεί πρϊτο ςτθν cache cslab@ntua 22-23 4

Μθχανιςμοί εγγραφισ ςε block (ςε περίπτωςθ write hit/miss) Σε περίπτωςθ write-hit, γνωςτοποιείται θ αλλαγι ςτθν κφρια μνιμθ ; ναι : write-through όχι : write-back Σε περίπτωςθ write-miss, τοποκετείται το block ςτθν cache; ναι : write-allocate (ςυνικωσ με write-back) όχι : write-no-allocate (ςυνικωσ με write-through) cslab@ntua 22-23 4

Write Policies: Write-Back & Write-Through write-back: ενθμζρωςθ τθσ μνιμθσ μόνο κατά τθν απομάκρυνςθ του block από τθν cache οι εγγραφζσ πραγματοποιοφνται με τθν ταχφτθτα τθσ cache dirty bit κατά τθν τροποποίθςθ αντικατάςταςθ των clean block χωρίσ ενθμζρωςθ τθσ μνιμθσ Χαμθλό ποςοςτό misses Πολλζσ εγγραφζσ ενόσ block ςε μία ενθμζρωςθ write-through: ενθμζρωςθ τθσ μνιμθσ ςε κάκε εγγραφι το κατϊτερο ιεραρχικά επίπεδο περιζχει τα εγκυρότερα δεδομζνα εφκολθ υλοποίθςθ (εξαςφάλιςθ data coherency) αυξθμζνθ μετακίνθςθ δεδομζνων προσ τθ μνιμθ ςυχνά χρθςιμοποιείται ζνασ write buffer για αποφυγι κακυςτεριςεων όςο ενθμερϊνεται θ μνιμθ cslab@ntua 22-23 42

Write Through vs Write Back Write Through - the information is written to both the block in the cache and to the block in the lower-level memory. Pros - read miss never results in writes to main memory - easy to implement - main memory always has the most current copy of the data (consistent) Cons - write is slower - every write needs a main memory access - as a result uses more memory bandwidth Write Back - the information is written only to the block in the cache. The modified cache block is written to main memory only when it is replaced. To reduce the frequency of writing back blocks on replacement, a dirty bit is commonly used. This status bit indicates whether the block is dirty (modified while in the cache) or clean (not modified). A clean block is not written on a miss. Pros - writes occur at the speed of the cache memory - multiple writes within a block require only one write to main memory - as a result uses less memory bandwidth Cons -harder to implement - main memory is not always consistent with cache - reads that result in replacement may cause writes of dirty blocks to main memory cslab@ntua 22-23 43

Write-Allocate & Write-no-allocate (ςτθ περίπτωςθ write-miss) Write-allocate: το block ενθμερϊνεται ςτθ μνιμθ και μετά μεταφζρεται από τθ μνιμθ ςτθ cache Write-no-allocate: το block ενθμερϊνεται ςτθ μνιμθ και δεν μεταφζρεται ςτθ cache Allocate a cache line to store the memory block! cslab@ntua 22-23 44

Read hit / miss read hit : ανάγνωςθ των δεδομζνων από τθν cache read miss : μεταφορά ολόκλθρου του block που περιζχει τα δεδομζνα που αναηθτάμε ςτθν cache και ςτθ ςυνζχεια όπωσ ςτο read hit cslab@ntua 22-23 45

Write hit / miss Write-back & Write-allocate write hit: Εγγραφι των δεδομζνων ςτθν cache (μόνο). Το block είναι dirty Η κφρια μνιμθ ενθμερϊνεται μόνο όταν απομακρυνκεί το block από τθν cache write miss: Το block: Ενθμερϊνεται ςτθ μνιμθ μεταφζρεται ςτθν cache Στθ ςυνζχεια όπωσ ςτο write hit cslab@ntua 22-23 46

Write hit / miss Write-through & write-no-allocate write hit: Εγγραφι των νζων δεδομζνων ςτθν cache Ενθμζρωςθ τθσ κφρια μνιμθσ write miss: Εγγραφι μόνο ςτθν κφρια μνιμθ Δεν εμπλζκεται κακόλου θ cache cslab@ntua 22-23 47

Write Back with Write Allocate: on hits it writes to cache setting dirty bit for the block, main memory is not updated; on misses it updates the block in main memory and brings the block to the cache; Subsequent writes to the same block, if the block originally caused a miss, will hit in the cache next time, setting dirty bit for the block. That will eliminate extra memory accesses and result in very efficient execution compared with Write Through with Write Allocate combination. Write Back with No Write Allocate: on hits it writes to cache setting dirty bit for the block, main memory is not updated; on misses it updates the block in main memory not bringing that block to the cache; Subsequent writes to the same block, if the block originally caused a miss, will generate misses all the way and result in very inefficient execution. cslab@ntua 22-23 48

Write Through with Write Allocate: on hits it writes to cache and main memory on misses it updates the block in main memory and brings the block to the cache Bringing the block to cache on a miss does not make a lot of sense in this combination because the next hit to this block will generate a write to main memory anyway (according to Write Through policy) Write Through with No Write Allocate: on hits it writes to cache and main memory; on misses it updates the block in main memory not bringing that block to the cache; Subsequent writes to the block will update main memory because Write Through policy is employed. So, some time is saved not bringing the block in the cache on a miss because it appears useless anyway. cslab@ntua 22-23 49

8ΚΒ Direct-mapped cache - 4W blocks write through Write (x44), m index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 5 5 2 i j k l e f g h Read block 4! cslab@ntua 22-23 5

8ΚΒ Direct-mapped cache - 4W blocks write through Write index valid tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 2 i j k l e m g h 5 5 Valid data - ςωςτό tag εγγραφι ςτο πεδίο τθσ cache και ενθμζρωςθ τθσ κφριασ μνιμθσ! cslab@ntua 22-23 5

8ΚΒ Direct-mapped cache - 4W blocks write back Write (x44), m Ind. V dirty tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 2 i j k l e f g h 5 5 Read block 4! cslab@ntua 22-23 52

8ΚΒ Direct-mapped cache - 4W blocks write back Write Ind. V dirty tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 2 i j k l e m g h 5 5 Valid data - ςωςτό tag εγγραφι ςτο πεδίο τθσ cache dirty bit! και ενθμζρωςθ του cslab@ntua 22-23 53

8ΚΒ Direct-mapped cache - 4W blocks write back Read (x84c) Ind. V dirty tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 2 i j k l e m g h 5 5 Read block 4! cslab@ntua 22-23 54

8ΚΒ Direct-mapped cache - 4W blocks write back Read Ind. V dirty tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 2 i j k l e m g h 5 5 Valid data το πεδίο tag όμωσ δεν ταιριάηει :!=4 Το dirty bit είναι : Ενθμερϊνεται θ μνιμθ (x4-x4f) και ςτθ ςυνζχεια φορτϊνεται θ ςωςτι διεφκυνςθ cslab@ntua 22-23 55

8ΚΒ Direct-mapped cache - 4W blocks write back Read Ind. V dirty tag x-3 x4-7 x8-b xc-f 2 3 4 5 6 7 2 i j k l 4 p q r s 5 5 Φορτϊνεται θ ςωςτι διεφκυνςθ - ενθμερϊνονται τα πεδία tag - dirty Επιςτρζφεται θ τιμι r ςτθ CPU cslab@ntua 22-23 56

Επίδοςθ των επιπζδων μνιμθσ (performance) μζςοσ χρόνοσ προςπζλαςθσ των δεδομζνων (access time) t avg t hit miss rate t miss penalty cslab@ntua 22-23 57

Cache : ενοποιθμζνθ ι όχι; Ενοποιθμζνθ για εντολζσ και δεδομζνα (unified) Μικρότερο καταςκευαςτικό κόςτοσ Καλφτερο ιςοηφγιςμα του χϊρου που καταλαμβάνεται από εντολζσ/δεδομζνα Επιπλζον misses λόγω διεκδίκθςθσ κοινϊν κζςεων ςτθν cache (conflict misses) Δφο διαφορετικζσ caches για εντολζσ και δεδομζνα (data cache & instruction cache) 2-πλάςιο εφροσ ηϊνθσ όχι conflict misses cslab@ntua 22-23 58

Παράδειγμα Σε ποια περίπτωςθ ζχουμε καλφτερθ επίδοςθ; Σε ςφςτθμα με 6ΚΒ instruction cache και 6ΚΒ data cache ι ςε ςφςτθμα με 32ΚΒ unified cache; Υποκζτουμε ότι το 36% των εντολϊν είναι εντολζσ αναφοράσ ςτθ μνιμθ (load/store). hit time = clock cycle miss penalty = clock cycles ςτθ unified cache είναι: hit time = 2 clock cycles Χρθςιμοποιείςτε τα δεδομζνα του ακόλουκου πίνακα (αναφζρονται ςε εντολζσ): Instr.cache data cache unified cache 6KB 3.82 4.9 5. 32KB.36 38.4 43.3 cslab@ntua 22-23 59

Παράδειγμα (ςυνζχεια) Λφςθ misses miss rate mem accesses miss miss miss rate 6 KB instr cache rate rate 6 KB data cache 32 KB unif cache 3.82 4 36.9 43.38.3 36.4.38 74%.38 + 26%.4 =.324 miss rate (unified cache) < miss rate (instr + data cache) cslab@ntua 22-23 6

Παράδειγμα (ςυνζχεια) Λφςθ t avg t instr t data 74 %.4 26 %.4 4.26 t avg 2.38 5.8 μζςοσ χρόνοσ/access (instr+data cache) < μζςοσ χρόνοσ/access (unified cache) cslab@ntua 22-23 6

Cache Associativity Παρατιρθςθ : Μια 4-way cache ζχει ςχεδόν το ίδιο hit rate με μια direct-mapped cache διπλάςιου μεγζκουσ cslab@ntua 22-23 62

Μζγεκοσ των Cache Blocks tag data (χϊροσ για μεγάλο block) Σε μεγάλα cache blocks επωφελοφμαςτε από τθν spatial locality. Λιγότεροσ χϊροσ απαιτείται για tag (με δεδομζνθ χωρθτικότθτα τθσ cache) Υπερβολικά μεγάλο μζγεκοσ block ςπαταλάει το χϊρο τθσ cache Τα μεγάλα blocks απαιτοφν μεγαλφτερο χρόνο μεταφοράσ (transfer time). Ζνασ καλόσ ςχεδιαςμόσ απαιτεί ςυμβιβαςμοφσ! cslab@ntua 22-23 63

Μζγεκοσ Block και Miss Rate Κανόνασ : το μζγεκοσ του block πρζπει να είναι μικρότερο από τθν τετραγωνικι ρίηα του μεγζκουσ τθσ cache. cslab@ntua 22-23 64

Miss Rates Caches διαφορετικοφ μεγζκουσ, Associativity & αλγορίκμουσ αντικατάςταςθσ block Associativity: 2-way 4-way 8-way Μζγεκοσ LRU Random LRU Random LRU Random 6 KB 5.8% 5.69% 4.67% 5.29% 4.39% 4.96% 64 KB.88% 2.%.54%.66%.39%.53% 256 KB.5%.7%.3%.3%.2%.2% cslab@ntua 22-23 65

Επίδοςθ των caches Για CPU με ζνα μόνο επίπεδο (L) cache και κακόλου κακυςτζρθςθ όταν ζχουμε cache hit: Με ιδανικι μνιμθ Χρόνοσ CPU = (κφκλοι ρολογιοφ κατά τθ λειτουργία τθσ CPU + κφκλοι ρολογιοφ λόγω κακυςτζρθςθσ από προςπζλαςθ τθσ μνιμθσ(mem stalls)) x χρόνοσ κφκλου ρολογιοφ Mem stalls = (Αναγνϊςεισ x miss rate αναγνϊςεων x miss penalty αναγνϊςεων) + (Εγγραφζσ x miss rate εγγραφϊν x miss penalty εγγραφϊν) Αν τα miss penalties των αναγνϊςεων και των εγγραφϊν είναι ίδια: Mem stalls = Προςπελάςεισ μνιμθσ x Miss rate x Miss penalty cslab@ntua 22-23 66

Χρόνοσ εκτζλεςθσ χρόνοσ αρικμόσ κφκλοι χρόνοσ = x x εκτζλεςθσ εντολϊν εντολι κφκλου αρικμόσ κφκλοι CPU + κφκλοι μνιμθσ χρόνοσ εντολϊν εντολι εντολι κφκλου = x x αρικμόσ κφκλοι CPU + αναφορζσ x κφκλοι μνιμθσ χρόνοσ εντολϊν εντολι εντολι αναφορά κφκλου = x x Αρχιτεκτονικι του Instruction Set Τεχνολογία του Compiler Υλοποίθςθ τθσ CPU Ιεραρχία Μνιμθσ και Cache cslab@ntua 22-23 67

Επίδοςθ των caches CPUtime = Instruction count x CPI x Χρόνοσ κφκλου ρολογιοφ CPI execution = CPI με ιδανικι μνιμθ CPI = CPI execution + Mem stalls/εντολι CPUtime = Instruction Count x (CPI execution + Mem stalls/εντολι) x χρόνοσ κφκλου ρολογιοφ Mem stalls/εντολι = Προςπελάςεισ μνιμθσ/εντολι x Miss rate x Miss penalty CPUtime = IC x (CPI execution + Προςπελάςεισ μνιμθσ ανά εντολι x Miss rate x Miss penalty) x Χρόνοσ κφκλου ρολογιοφ Misses/εντολι = Προςπελάςεισ μνιμθσ ανά εντολι x Miss rate CPUtime = IC x (CPI execution + Misses/εντολι x Miss penalty) x Χρόνοσ κφκλου ρολογιοφ(c) cslab@ntua 22-23 68

Παράδειγμα Ζςτω μία CPU λειτουργεί με ρολόι 2 MHz (5 ns/cycle) και cache ενόσ επιπζδου. CPI execution =. Εντολζσ: 5% arith/logic, 3% load/store, 2% control Υποκζτουμε cache miss rate =.5% και miss penalty = 5 cycles. CPI = CPI execution + Mem stalls/εντολι Mem Stalls/εντολι = Mem accesses /εντολι x Miss rate x Miss penalty Mem accesses /εντολι = +.3 =.3 Instruction fetch Mem Stalls /εντολι =.3 x.5 x 5 =.975 CPI =. +.975 = 2.75 Load/store Η ιδανικι CPU χωρίσ misses είναι 2.75/. =.88 φορζσ γρθγορότερθ cslab@ntua 22-23 69

Παράδειγμα Στο προθγοφμενο παράδειγμα υποκζτουμε ότι διπλαςιάηουμε τθ ςυχνότθτα του ρολογιοφ ςτα 4 MHZ. Πόςο γρθγορότερο είναι το μθχάνθμα για ίδιο miss rate και αναλογία εντολϊν; Δεδομζνου ότι θ ταχφτθτα τθσ μνιμθσ δεν αλλάηει, το miss penalty καταναλϊνει περιςςότερουσ κφκλουσ CPU: Miss penalty = 5 x 2 = cycles. CPI =. +.3 x.5 x =. +.95 = 3.5 Speedup = (CPI old x C old )/ (CPI new x C new ) = 2.75 x 2 / 3.5 =.36 Το νζο μθχάνθμα είναι μόνο.36 φορζσ ταχφτερο και όχι 2 φορζσ γρθγορότερο λόγω τθσ επιπλζον επιβάρυνςθσ των cache misses. CPUs με μεγαλφτερη ςυχνότητα ρολογιοφ, ζχουν περιςςότερουσ κφκλουσ/cache miss και μεγαλφτερη επιβάρυνςη τησ μνήμησ ςτο CPI. cslab@ntua 22-23 7

2 επίπεδα Cache: L, L 2 CPU L Cache Hit Rate = H, Hit time = κφκλοσ (κακόλου Stall) L 2 Cache Hit Rate = H 2, Hit time = T 2 κφκλοι Main Memory Penalty λόγω προςπζλαςθσ μνιμθσ, M cslab@ntua 22-23 7

Cache 2 επιπζδων CPUtime = IC x (CPI execution + Mem Stalls/εντολι) x C Mem Stalls/εντολι = Mem accesses/εντολι x Stalls/access Για ζνα ςφςτθμα με 2 επίπεδα cache, χωρίσ penalty όταν τα δεδομζνα βρεκοφν ςτθν L cache: Stalls/memory access = [miss rate L ] x [ Hit rate L 2 x Hit time L 2 + Miss rate L 2 x Memory access penalty) ] = (-H) x H2 x T2 + (-H)(-H2) x M L Miss, L2 Hit L Miss, L2 Miss: Προςπζλαςθ τθσ Main Memory cslab@ntua 22-23 72

Επίδοςθ τθσ L2 Cache Memory Access Tree (CPU Stalls/Memory Access) CPU Memory Access L L Hit: Stalls = H x = (No Stall) L Miss: % = (-H) L 2 L2 Hit: (-H) x H2 x T2 L2 Miss: Stalls = (-H)(-H2) x M Stall cycles per memory access = (-H) x H2 x T2 + (-H)(-H2) x M cslab@ntua 22-23 73

Παράδειγμα L2 Cache CPU με CPI execution =. και ςυχνότθτα 5 MHZ.3 memory accesses/εντολι. L cache : ςτα 5 MHZ με miss rate 5% L 2 cache : ςτα 25 MHZ με miss rate 3%, (T 2 = 2 κφκλοι) M (Memory access penalty) = κφκλοι. Να βρεκεί το CPI. CPI = CPI execution + Mem Stalls/εντολι Χωρίσ Cache, CPI =. +.3 x = 3. Με L Cache, CPI =. +.3 x.5 x = 7.6 Mem Stalls/εντολι = Mem accesses/εντολι x Stalls/access Stalls/memory access = (-H) x H2 x T2 + (-H)(-H2) x M =.5 x.97 x 2 +.5 x.3 x =.97 +.5 =.247 Mem Stalls/εντολι = Mem accesses/εντολι x Stalls/access =.247 x.3 =.32 CPI =. +.32 =.42 Speedup = 7.6/.42 = 5.35 cslab@ntua 22-23 74

3 επίπεδα Cache CPU L Cache L2 Cache Hit Rate = H, Hit time = κφκλοσ (κακόλου Stall) Hit Rate = H 2, Hit time = T 2 κφκλοι L3 Cache Hit Rate = H 3, Hit time = T 3 Main Memory Memory access penalty, M cslab@ntua 22-23 75

Επίδοςθ τθσ L3 Cache CPUtime = IC x (CPI execution + Mem Stalls/εντολι) x C Mem Stalls/εντολι = Mem accesses /εντολι x Stalls/access Για ζνα ςφςτθμα με 3 επίπεδα cache, χωρίσ penalty όταν τα δεδομζνα βρεκοφν ςτθν L cache: Stalls/memory access = [miss rate L ] x [ Hit rate L 2 x Hit time L 2 + Miss rate L 2 x (Hit rate L3 x Hit time L 3 + Miss rate L 3 x Memory access penalty) ] = (-H) x H2 x T2 + (-H) x (-H2) x H3 x T3 + (-H)(-H2) (-H3)x M cslab@ntua 22-23 76

Επίδοςθ τθσ L3 Cache Memory Access Tree (CPU Stalls/Memory Access) CPU Memory Access L L Hit: Stalls = H x = (κακόλου Stall) L Miss: % = (-H) L 2 L2 Hit: (-H) x H2 x T2 L2 Miss: % = (-H)(-H2) L 3 L3 Hit: (-H) x (-H2) x H3 x T3 L3 Miss: (-H)(-H2)(-H3) x M Stalls/memory access = (-H) x H2 x T2 + (-H) x (-H2) x H3 x T3 + (-H)(-H2) (-H3) x M cslab@ntua 22-23 77

Παράδειγμα L3 Cache CPU με CPI execution =. και ςυχνότθτα 5 MHZ.3 memory accesses/εντολι. L cache : ςτα 5 MHZ με miss rate 5% L 2 cache : ςτα 25 MHZ με miss rate 3%, (T 2 = 2 κφκλοι) L 3 cache : ςτα MHZ με miss rate.5%, (T 3 = 5 κφκλοι) Memory access penalty, M= cycles. Να βρείτε το CPI. χωρίσ Cache, CPI =. +.3 x = 3. Με L Cache, CPI =. +.3 x.5 x = 7.6 Με L 2 Cache, CPI =. +.3 x (.5 x.97 x 2 +.5 x.3 x ) =.42 CPI = CPI execution + Mem Stalls/εντολι Mem Stalls/εντολι = Mem accesses/εντολι x Stall cycles/access Stalls/memory access = (-H) x H2 x T2 + (-H) x (-H2) x H3 x T3 + (-H)(-H2) (-H3) x M =.5 x.97 x 2 +.5 x.3 x.985 x 5 +.5 x.3 x.5 x =.97 +.75 +.225 =.7 CPI =. +.3 x.7 =.24 Speedup ςε ςχζςθ με L μόνο = 7.6/.24 = 6.2 Speedup ςε ςχζςθ με L, L2 =.42/.24 =.5 cslab@ntua 22-23 78