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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cach O p i timisati tions

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

Ασκήσεις Caches

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

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

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

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

CMOS Technology for Computer Architects

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Modbus basic setup notes for IO-Link AL1xxx Master Block

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

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

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

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

Instruction Execution Times

Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

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

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Κεφάλαιο 1 Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών

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

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

The Simply Typed Lambda Calculus

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

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

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;

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

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

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

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

Transcript:

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

Συστήματα Μνήμης Η οργάνωση του συστήματος μνήμης επηρεάζει τη λειτουργία και απόδοση ενός μικροεπεξεργαστή: Διαχείριση μνήμης και περιφερειακών (Ι/Ο) απότολειτουργικόσύστημα Παραγωγή κώδικα από μεταγλωττιστές Χρήσημνήμηςαπόεφαρμογές ΣΗΜΑΝΤΙΚΟΣ παράγοντας στον καθορισμότηςαπόδοσης Πρόσφατα, υπάρχει μετάβαση στον τρόπο οργάνωσης της μνήμης από επίπεδη μνήμη τυχαίας προσπέλαση σε ιεραρχίες μνήμης, για βελτίωση της απόδοσης Ιεραρχία Μνήμης (Memory hierarchy): χρήση πολλαπλών επιπέδων μνήμης. Το μέγεθος και ο χρόνος προσπέλασης της μνήμης που είναι «κοντινότερα» στον επεξεργαστή (CPU) είναι μικρότερο και μεγαλώνουν όσο η μνήμη απομακρύνεται από το CPU. Δημιουργεί την ψευδαίσθηση ότι υπάρχει απεριόριστο μέγεθος γρήγορης μνήμης 2

Θεμελιώδης αρχές Αρχή Τοπικότητας (Principle of locality) Σε τυπικά προγράμματα, ένα μικρό μέρος της μνήμης χρειάζεται να προσπελαστεί σε μια δεδομένη στιγμή Χρονική Τοπικότητα (Temporal locality) Εάν μια θέση μνήμης έχει προσπελαστεί πρόσφατα, τότε τείνει να προσπελαστεί ξανά σε σύντομο χρονικό διάστημα Χωρική Τοπικότητα (Spatial locality) Εάν μια θέση μνήμης έχει προσπελαστεί πρόσφατα, τότε κοντινές θέσεις μνήμης (οι γείτονες), τείνουν να προσπελαστούν ξανά σε σύντομο χρονικό διάστημα Θεωρήστε ένα βρόγχο σε ένα πρόγραμμα. Οι εντολές μέσα στο βρόγχο θα επιδεικνύουν την αρχή της χρονικής τοπικότητας; Τι γίνεται με την αρχή της χωρικής τοπικότητας; 3

Τεχνολογίες Μνήμης: Επανάληψη SRAM (Static Random Access Memory): Η τιμή φυλάγεται στατικά, με ένα ζεύγος αντιστροφέων (μοντελοποιείται με μανδαλωτές -- latches) Πολύ γρήγορη αλλά απαιτεί πολύ περισσότερο χώρο από την DRAM (4 με 6 τρανζίστορ) R S Q Q DRAM (Dynamic Random Access Memory): Η τιμή φυλάγεται ως φορτίο σε πυκνωτές (χρειάζεται be ανανέωση) Απαιτεί μικρότερο χώρο αλλά είναι πιο αργή από την SRAM (περίπου κατά 5 με 10 φορές) Word line Pass transistor Capacitor Μαγνητικός Δίσκος Απαιτεί το μικρότερο χώρο, και άρα έχει το μικρότερο κόστος, αλλά έχει και τη μικρότερη ταχύτητα Bit line 4

Αξιοποίηση Ιεραρχίας Οι χρήστες ζητούν διαρκών μεγαλύτερες (σε χωρητικότητα) και γρηγορότερες μνήμες! Χρόνος προσπέλασης SRAM μεταξύ 0.5 5ns στις $4000 μέχρι $10,000 για κάθε GB Χρόνος προσπέλασης DRAM μεταξύ 50 70ns στις $100 μέχρι $200 για κάθε GB Χρόνος προσπέλασης Δίσκου μεταξύ 5 20,000,000 ns στις $0.50 μέχρι $2 για κάθε GB (2004) Η βιομηχανία προσπαθεί να ανταπεξέλθει στις απαιτήσεις Κατασκευή μνήμης βάση ιεραρχίας CPU 1 ο Επίπεδο 2 ο Επίπεδο... n ο Επίπεδο Απόσταση Μνήμης από το CPU, σε χρόνο προσπέλασης Μέγεθος Μνήμης σε κάθε Επίπεδο 5

Η βασική δομή ιεραρχίας μνήμης Κρυφή Μνήμη (cache) Κυρίως Μνήμη (main memory) Δευτερεύουσα Μνήμη (secondary memory) Ιεραρχία 3 ων επιπέδων. Μπορούμε να έχουμε επιπρόσθετα επίπεδα (ειδικά για κρυφή μνήμη) 6

Η βασική δομή ιεραρχίας μνήμης (συν.) Το επίπεδο που είναι πιο κοντά στο μικροεπεξεργαστή είναι υποσύνολο οποιουδήποτε μεταγενέστερου επιπέδου Τα δεδομένα αντιγράφονται μεταξύ δυο γειτονικών επιπέδων Μπλοκ: μικρότερη μονάδα πληροφορίας που μπορεί να υπάρχειήόχιμεταξύδύο γειτονικών επιπέδων 2 ο επίπεδο Μνήμης Επεξεργαστής 1 ο επίπεδο Μνήμης Μεταφορά δεδομένων (μπλοκ) Μπλοκ 7

Βασική Ορολογία Ηit! Επιτυχής Προσπέλαση (Hit): τα δεδομένα που απαιτούνται από τον CPU υπάρχουν στο υψηλότερο επίπεδο της ιεραρχίας της μνήμης Ρυθμός Επιτυχούς Προσπέλασης (Hit rate): ποσοστό προσπελάσεων όπου τα απαιτούμενα δεδομένα βρίσκονται στο υψηλότερο επίπεδο (μετρά την απόδοση της ιεραρχίας) Χρόνος Επιτυχούς Προσπέλασης (Hit time): χρόνος που απαιτείται για την προσπέλαση ενός μπλοκ στο υψηλότερο επίπεδο της ιεραρχίας συν ο χρόνος που απαιτείται για τον καθορισμό επιτυχούς ή όχι προσπέλασης 8

Βασική Ορολογία Miss! Ανεπιτυχής Προσπέλαση (Miss): τα δεδομένα που απαιτούνται από τον CPU ΔΕΝ υπάρχουν στο υψηλότερο επίπεδο μνήμης Ρυθμός Ανεπιτυχούς Προσπέλασης (Miss rate): ποσοστό προσπελάσεων όπου τα απαιτούμενα δεδομένα ΔΕΝ βρίσκονται στο υψηλότερο επίπεδο (= 1 hit rate) Ποινή Ανεπιτυχούς Προσπέλασης (Miss penalty): χρόνος που απαιτείται για την μεταφορά ενός μπλοκ από χαμηλότερο σε ψηλότερο επίπεδο της ιεραρχίας, συν ο χρόνος που απαιτείται για τον καθορισμό επιτυχούς ή όχι προσπέλασης 9

Κρυφή Μνήμη (Cache memory) Cache (κρύπτη, κρυψώνα): ασφαλές χώρος για απόκρυψη ή αποθήκευση -- Webster s New World Dictionary Σε σχέση με το θέμα μας: μνήμη που εκμεταλλεύεται την αρχή της τοπικότητας (συνήθως, το(α) επίπεδο(α) μνήμης μεταξύ του επεξεργαστή και της κυρίως μνήμη) Παράδειγμα απλής κρυφής μνήμης: Θεωρήστε ότι έχουμε αίτημαγιαταδεδομέναx n (a) πριν (b) μετά 10

Κρυφή Μνήμη (συν.) Δύο θέματα: Πως μπορούμε να γνωρίζουμε αν τα δεδομένα που χρειαζόμαστε είναι μέσα στην κρυφή μνήμη; Εάν είναι, πως τα βρίσκουμε (σε πια διεύθυνση); Πρώτο παράδειγμα: Το μέγεθος του μπλοκ είναι μια λέξη (single word block) Τρόπος οργάνωσης: «direct mapped» (άμεση απεικόνιση) Κάθε μπλοκ σε ένα χαμηλότερο επίπεδο της ιεραρχίας αντιστοιχεί ακριβώς σε μια τοποθεσία στην κρυφή μνήμη, δηλ. πολλά μπλοκ σε χαμηλότερα επίπεδα μοιράζονται μια τοποθεσία στο ψηλότερο επίπεδο μνήμης 11

Κρυφή Μνήμη Άμεσης Απεικόνισης (Direct Mapped Cache) Μέγεθος μπλοκ = 1 word Θεωρήστε μια κρυφή μνήμη με 8 μπλοκ (000,, 111) και μια κυρίως μνήμη με 32 μπλοκ (00000,, 11111) Η διεύθυνση της κρυφή μνήμη που αντιστοιχεί σε μια διεύθυνση στην κυρίως μνήμη: (διεύθυνση στην κυρίως μνήμη) mod ( # μπλοκ στη κρυφή μνήμη) Αν ο αρ. των μπλοκ στην κρυφή μνήμη είναι δύναμη του 2, τότε: log 2 (μέγεθος κρυφής μνήμης σε μπλοκ) = log 2 (8) = 3 3 LSBs της διεύθυνσης τηςκυρίωςμνήμηςδίνουν την αντίστοιχη διεύθυνση στην κρυφή μνήμη Κυρίως Μνήμη 000 Cache 001 010 011 100 101 110 111 0 1 2 3 4 5 6 7 Κρυφή Μνήμη 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 00001 00101 01001 01101 10001 10101 11001 11101 Πως γνωρίζουμε αν τα δεδομένα στην κρυφή μνήμη αντιστοιχούν στην λέξη που ζητείται; Για παράδειγμα, αν ζητώ την λέξη 10001, πως ξέρω αν η κρυφή μνήμη έχει την 10001 και όχι την 00001 ήτην01001, ήτην11001; Memory 12

Κρυφή Μνήμη Άμεσης Απεικόνισης (συν.) Προσθέτουμε ένα σύνολο ετικετών (tags) στην κρυφή μνήμη Κάθε μπλοκ στην κρυφή μνήμη έχει ένα επιπρόσθετο πεδίο για την ετικέτα, που χρησιμοποιείται για να καθορίζει ΕΝΑ μπλοκ στην κυρίως μνήμη Τέλος, πρέπει να γνωρίζουμε αντομπλοκστηνκρυφή μνήμη περιέχει κάποια δεδομένα ή όχι προσθέτουμε ένα bit εγκυρότητας (valid bit) ανά μπλοκ 000 Cache 001 010 011 100 101 110 111 0 1 2 3 4 5 6 7 Θεωρήστε n = # bits διεύθυνσης κυρίως μνήμης Τότε, n - log 2 (μέγεθος κρυφής μνήμης σε μπλοκ) = 5 - log 2 (8) = 2 δίνει τον αρ. των bits για το πεδίο ετικέτας, το οποίο είναι τα 2 MSBs της διεύθυνσης στην κυρίως μνήμη Επομένως, η ετικέτα μπορεί να έχει μία από τις πιο κάτω τιμές {00, 01, 10, 11} 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Tag = 00 Tag = 01 Tag = 10 Tag = 11 00001 00101 01001 01101 10001 10101 11001 11101 Memory 13

Παράδειγμα Δείξετε τα περιεχόμενα μιας κρυφής μνήμης με 8 μπλοκ της 1 λέξης και με οργάνωση άμεσης απεικόνισης (8 single-word blocks, direct mapped cache) για την πιο κάτω ακολουθία αιτημάτων από τον επεξεργαστή: Αιτούμενη Διευθ. (Δεκαδικό) Αιτούμενη Διευθ. (Δυαδικό) Hit ή Miss στη Cache Αντίστοιχο μπλοκ στη cache 22 10110 Miss 10110 mod 8 = 110 26 11010 Miss 11010 mod 8 = 010 22 10110 Hit 10110 mod 8 = 110 26 11010 Hit 11010 mod 8 = 010 16 10000 Miss 10000 mod 8 = 000 3 00011 Miss 00011 mod 8 = 011 16 10000 Hit 10000 mod 8 = 000 18 10010 miss 10010 mod 8 = 010 Ξεκινήστε με άδεια κρυφή μνήμη 14

Κρυφή Μνήμη Άμεσης Απεικόνισης (συν.) Για MIPS: Hit Index 0 1 2 Tag Address (showing bit positions) 31 30 13 12 11 2 1 0 Byte offset 20 10 Valid Tag Index Data Καθορίζει ποιο byte της λέξης είναι, αγνοείται Data Θυμηθείτε ότι ο MIPS χρησιμοποιεί διευθυνσιοδότηση ανά byte (όχι word ή block) Έγκυρες διευθ.: 0, 4, 8, 12, 16, (πολλαπλάσια του 4) log 2 (1024) = 10 1021 1022 1023 20 32 = 15

Μέγεθος Κρυφής Μνήμης Για μπλοκ 1 λέξης: Θεωρήστε ότι 2 n είναι ο αρ. των διευθύνσεων της cache και k οαρ. των bits σε 1 λέξη # bits στη cache = k x 2 n + (bits για δεδομένα) 1 x 2 n + (bits για εγκυρότητα) (k - n - 2) x 2 n (bits για ετικέτες) Από το προηγούμενο παράδειγμα, k=32 και n=10 1024 x (32+1+20) = 53KBytes Το μέγεθος της κυρίως μνήμης είναι 4 GB. Γιατί; Για μπλοκ πολλαπλών λέξεων: Θεωρήστε ότι 2 n είναι ο αρ. των διευθύνσεων της cache, k οαρ. των bits σε 1 λέξη και 2 m οαρ. των λέξεων ανά μπλοκ # bits στη cache = 2 m k x 2 n + (bits για δεδομένα) 1 x 2 n + (bits για εγκυρότητα) (k - n - m - 2) x 2 n (bits για ετικέτες) Αν k=32, m=2 και n=10 1024 x (128+1+18) = 147KBytes Ποιο είναι το μέγεθος της κυρίως μνήμης; 16

Μέγεθος Κρυφής Μνήμης (συν.) Ας αναλύσουμε τα προηγούμενα παραδείγματα: Μπλοκ 1 λέξης, 1024 διευθύνσεις στη cache, 4GB κυρίως μνήμη: απαιτεί 53KB για την cache Μπλοκ 4 ων λέξεων, 1024 διευθύνσεις στη cache, 4GB κυρίως μνήμη: απαιτεί 147KB για την cache Ποια cache είναι η καλύτερη (με τη χαμηλότερη επιβάρυνση); Μπλοκ 1 λέξης : 32KB από τα 53KB είναι για δεδομένα 60.4% δεδομένα και 39.6% επιβάρυνση Μπλοκ 4 ων λέξεων: 128KB από τα147kb είναι για δεδομένα 87% δεδομένα και 13% επιβάρυνση Άλλο σημαντικό προτέρημα για μπλοκ πολλαπλών λέξεων: Μεγαλύτερη χωρική τοπικότητα μειώνει τον αρ. των ανεπιτυχών προσπελάσεων ( miss rate) Μειονεκτήματα: Μπλοκ με πολύ μεγάλο μέγεθος αυξάνουν το miss rate Μπλοκ με πολύ μεγάλο μέγεθος αυξάνουν το miss penalty (απαιτεί περισσότερο χρόνο να μεταφερθούν νέα δεδομένα στη cache) 17

Miss rate vs Block size 10% 4K Miss rate 5% 16K 0% 16 32 64 128 256 Block size 64K 256K Μεγαλύτερες cache έχουν μικρότερο miss rate (το αναμενόμενο!) Υπάρχει κορεσμός στον αρ. των μπλοκ, όταν το μέγεθος του μπλοκ αποτελεί σημαντικό μέρος της cache 18

Ανεπιτυχής ανάγνωση/γραφή κρυφής μνήμης (cache miss) Cache Miss (read/write): Ανεπιτυχής προσπέλαση στη cache αφού τα αιτούμενα δεδομένα δεν είναι στη cache Η μονάδα ελέγχου ανιχνεύει miss ή hit (για ανάγνωση ή γραφή): Όταν υπάρχει hit, το CPU συνεχίζει χωρίς καθυστέρηση Όταν υπάρχει miss, η μονάδα ελέγχου καθυστερεί το CPU (με stalls), προσκομίζει το απαραίτητο μπλοκ από την κυρίως μνήμη και το φορτώνει στη cache, και τέλος επιστρέφει στο CPU H γραφή απαιτεί επιπρόσθετο κόπο: Write-through: πάντα ενημερώνει την μνήμη όταν υπάρχει αλλαγή στα περιεχόμενα της cache, για να υπάρχει συνέπεια δεδομένων (απαιτεί πολύ χρόνο) Χρήση απομονωτή γραφής (write buffer): τα δεδομένα της cache που πρέπει να γραφτούν στη μνήμη διατηρούνται σε μια ουρά Write-back: ανανεώνει μόνο τα δεδομένα στη cache και ενημερώνει τη χαμηλότερη μνήμη στην ιεραρχία μόνο όταν τα δεδομένα στη cache πρέπει να αντικαταστηθούν 19

Μικροεπεξεργαστής FastMATH Γρήγορος ενσωματωμένος μικροεπεξεργαστής Χρησιμοποιεί την αρχιτεκτονική του MIPS με διασωλήνωση 12 σταδίων Μπορεί να διαβάσει δεδομένα και εντολές στον ίδιο κύκλο του ρολογιού Χρησιμοποιεί διαφορετικές κρυφές μνήμες για εντολές και δεδομένα Υλοποίηση Κρυφής Μνήμης 16KB (δεδομένα) 16 λέξεις ανά μπλοκ (= 32x16 = 512 bits) (m=4) 256 μπλοκ (256 x 512 = 16KB) (n=8) Μέγεθος ετικέτας = 32 (n + m + 2) = 18 20

Μικροεπεξεργαστής FastMATH 16 KB cache για 256 μπλοκ των 16 λέξεων Address (showing bit positions) 31 14 13 6 5 2 1 0 Hit Tag Index 18 8 4 Byte offset Block offset Data 18 bits 512 bits V Tag Data 256 entries 18 16 32 32 32 = Mux 32 21

Σχεδιασμός Συστήματος Μνήμης Το miss penalty εξαρτάται από το bandwidth (μέγεθος δίαυλου) από την κυρίως μνήμη στην κρυφή μνήμη Μεγαλύτερο bandwidth δίνει μικρότερο miss penalty (επιτρέπει για μεγαλύτερα μπλοκ στην κρυφή μνήμη) Το ρολόι του δίαυλου (bus clock) είναι συνήθως γύρω στις 10 φορές πιο αργό από το ρολόι του CPU 22

Σχεδιασμός Συστήματος Μνήμης CPU CPU CPU Cache Multiplexor Cache Cache Bus Bus Bus Memory Memory bank 0 Memory bank 1 Memory bank 2 Memo bank Memory a. O ne-word-wide memory organization b. Wide memory organization Εύρος Δίαυλου (Bus bandwidth) = μέγεθος λέξης Αύξηση στο εύρος δίαυλου. Επιτρέπει παράλληλη πρόσβαση σε όλες τις λέξεις του μπλοκ. Επίσης, παράλληλη μεταφορά. c. Interleaved memory organization Αύξηση στο εύρος μνήμης. Η μεταφορά εξακολουθεί να γίνεται ανά λέξη, αλλά η πρόσβαση είναι παράλληλη για όλες τις λέξεις σε ένα μπλοκ. 23

Απόδοση Κρυφής Μνήμης Αυξάνοντας το μέγεθος του μπλοκ μειώνουμε το miss rate, μέχρι ενός σημείου: 40% 35% 30% Miss rate 25% 20% 15% 10% 5% 0% 4 16 Block size (bytes) 64 1 KB 8 KB 16 KB 64 KB 256 KB Διάσπαση σε 2 κρυφές μνήμες (για εντολές και δεδομένα), αφού υπάρχει μεγαλύτερη χωρική τοπικότητα σε κώδικα: 256 Πρόγραμμα Μέγεδος Μπλοκ σε λέξεις Miss rate για Εντολές Miss rate για Δεδομένα Επίδραση συνδιασμένου miss rate gcc 1 6.1% 2.1% 5.4% 4 2.0% 1.7% 1.9% spice 1 1.2% 1.3% 1.2% 4 0.3% 0.6% 0.4% 24

Απόδοση Μικροεπεξεργαστή Simplified model (assume write-through organization with negligible write buffer stalls): execution time = (execution cycles + stall cycles) cycle time memory stall cycles = # of memory accesses x miss ratio x miss penalty # of memory accesses = # reads + # writes Two ways of improving performance: decreasing the miss ratio decreasing the miss penalty 25

Παράδειγμα: Assume a CPU with the following characteristics: Instruction cache miss rate = 2% Data cache miss rate = 4% Miss penalty (for all misses) = 100 cycles CPI = 2 (does not include memory stall cycles) # instructions = I Memory (lw, sw) instructions frequency = 36% Determine the speedup of the above processor when it uses a perfect cache with miss rate = 0% Solution: Instruction miss cycles = I x (2% x 100) = 2I Data miss cycles = I x 36% x (4% x 100) = 1.44I Total memory-stall cycles = 3.44I CPI stall = 5.44 speedup = (CPU time with stalls) / (CPU time with perfect cache) = (I x CPI stall x clock cycles) / (I x CPI perfect x clock cycles) = (CPI stall ) / (CPI perfect ) = (5.44 / 2) = 2.77 26

Απόδοση Μικροεπεξεργαστή (συν.) What if we try to increase the performance of the previous system by decreasing CPI to 1 and maintain the same memory system? CPI stall = 1 + 3.44 = 4.44 speed up = 4.44 / 1 = 4.44 i.e., amount of execution time spent in memory stalls increases from 3.44 / 5.44 = 63% to 3.44 / 4.44 = 77%!! Does this remind you of something from Chapter 4? Amdahl s Law: improvement of just one part of the system doesn t necessarily give overall performance increase 27

Απόδοση κρυφής μνήμης (συν.) In general, cache penalties increase as a processor becomes faster and the memory system remains the same: The lower the CPI the greater the amount of time spent in memory stall cycles. Higher processor clock rate leads to larger miss penalties (DRAM access time does not improve as much as CPU clock rates) Thus, cache performance in today s processor of low CPI and high clock rates is crucial Flexible placement of blocks (reduces cache miss ratio) Multilevel caches (reduces miss penalty) 28

Μείωση ανεπιτυχής ανάγνωσης (cache miss) Direct mapped cache a block goes in exactly one place in the cache Fully associative cache a block can be placed in any location in the cache to find a block, all cache entries need to be searched (can be implemented with parallel comparators, increases hardware) Set associative cache a block can be place in a fixed number (at least two) of locations in the cache For n fixed locations per block, we have an n-way set associative cache 29

Οργάνωση Κρυφής Μνήμης Direct-mapped 2-way set associative fully associative Block 0 1 2 3 4 5 6 7 Set 0 1 2 3 0 1 2 3 4 5 6 7 0 2 4 8 12... 0 2 4 8 12... 0 2 4 8 12... Memory Memory Memory 12 mod 8 = 4 # searches = 1 12 mod 4 = 0 # searches = 2 # searches = 8 30

N-way set associative cache Cache consists of a number of sets, each set contains n blocks A memory block is associated with exactly 1 set A block can be placed/found in any of the n blocks of its associated set all tags/elements in a set need to be searched Combines direct-mapped and fully associative: Directly mapped to a set Fully associative within a single set In general, every block placement strategy is a variation of the set associativity scheme (see the next slide) 31

Κρυφή Μνήμη με 8 μπλοκς One-way set associative (direct mapped) Block 0 1 2 3 4 5 6 7 Tag Data Set 0 1 2 3 Two-way set associative Tag Data Tag Data Four-way set associative Set 0 1 Tag Data Tag Data Tag Data Tag Data Eight-way set associative (fully associative) Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Increasing degree of association: decreases miss rate but increases hit rate 32

Υλοποίηση: 4-way set association 31 30 12 11 10 9 8 3 2 1 0 22 8 Index V Tag Data V Tag Data V Tag Data V Tag Data 0 1 2 253 254 255 22 32 4 -to -1 m ultiplexor Hit Data 33

Απόδοση 15% 12% 9% 6% 3% 0 One-way 1 KB 2 KB 4 KB 8 KB 16 KB 32 KB Two-way Associativity 64 KB 128 KB Four-way Eight-way 34

Μείωση κόστους ανεπιτυχής ανάγνωσης (miss penalty) με πολύ-επίπεδη κρυφή μνήμη Add a second level cache: often primary cache is on the same chip as the processor use SRAMs to add another cache above primary memory (DRAM) miss penalty goes down if data is in 2nd level cache Example: CPI of 1.0 on a 5 Ghz machine with a 5% miss rate, 100ns DRAM access Adding 2nd level cache with 5ns access time decreases miss rate to.5% Using multilevel caches: try and optimize the hit time on the 1st level cache try and optimize the miss rate on the 2nd level cache 35

Πολυπλοκότητα Κρυφής Μνήμης Not always easy to understand implications of caches: 1200 2000 1000 Radix sort 1600 Radix sort 800 1200 600 400 800 200 Quicksort 400 Quicksort 0 4 8 16 32 64 128 256 512 1024 2048 4096 0 4 8 16 32 64 128 256 512 1024 2048 4096 Size (K items to sort) Size (K items to sort) Theoretical behavior of Radix sort vs. Quicksort Observed behavior of Radix sort vs. Quicksort 36

Πολυπλοκότητα Κρυφής Μνήμης (συν.) Here is why: 5 4 Radix sort 3 2 1 0 Quicksort 4 8 16 32 64 128 256 512 1024 2048 4096 Size (K items to sort) Memory system performance is often critical factor multilevel caches, pipelined processors, make it harder to predict outcomes Compiler optimizations to increase locality sometimes hurt ILP Difficult to predict best algorithm: need experimental data 37

Ιδεατή Μνήμη (Virtual Memory) Main memory can act as a cache for the secondary storage (disk) Page: virtual memory block Page fault: memory miss Virtual address: location in virtual space Address translation: mapping of virtual address to physical address (main memory) Virtual addresses Address translation Physical addresses Advantages: illusion of having more physical memory (for multiple or single programs) program relocation (plus page relocation) protection Disk addresses 38

Σελίδες (pages): Τεμάχια Ιδεατής Μνήμης Page faults: the data is not in memory, retrieve it from disk huge miss penalty, thus pages should be fairly large ( 4-16KB) reducing page faults is important (LRU is worth the price) can handle the faults in software instead of hardware (O/S) using write-through is too expensive so we use write-back Virtual address 31 30 29 28 27 15 14 13 12 11 10 9 8 3 2 1 0 Virtual page number Page offset Determines the page size Translation 29 28 27 15 14 13 12 11 10 9 8 3 2 1 0 Physical page number Page offset Physical address 39

Πίνακες Σελίδων (Page Tables) Placing a page (h/w) Replacing a page after page fault (s/w OS) Virtual page number Valid Page table Physical page or disk address Physical memory 1 1 1 1 0 1 1 0 1 1 0 1 Resides in main memory, one per program Disk storage 40

Πίνακες Σελίδων (συν.) Page table register Indicates page table location in memory 31 30 29 28 27 15 14 13 12 11 10 9 8 3 2 1 0 Valid Virtual page number Virtual address Page offset 20 12 Physical page number What s the size of the virtual memory? Page table 18 What s the size of the main memory? If 0 then page is not present in memory 29 28 27 15 14 13 12 11 10 9 8 3 2 1 0 Physical page number Page offset Physical address 41

Page Faults OS takes control if a page fault occurs (valid bit=0) using the exception mechanism Find page in the next level of memory hierarchy (disk) Decide where to place it in main memory Finding the page requires extra info, besides the virtual address Keep track on the location on disk for each page in the virtual address space OS creates a space on disk with information of all pages of a process/program when the process is created swap space OS uses sophisticated page replacement algorithms (e.g. LRU) to decide which page to replace if main memory is full 42

Σύγχρονα Συστήματα Processor speeds continue to increase very fast much faster than either DRAM or disk access times 100,000 10,000 Performance 1,000 CPU 100 10 Memory 1 Design challenge: dealing with this growing disparity Year Prefetching? 3 rd level caches and more? Memory design? 43