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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονική-ΙI Ενότητα 4 :

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

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

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

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

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

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

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

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

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

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

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

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

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

Ασκήσεις Caches

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

Cach O p i timisati tions

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

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

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

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

Ασκήσεις Caches

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

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

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 5 ο Οργάνωση Υπολογιστών. Δρ.

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

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

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

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

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

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

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

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

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

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

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

ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

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

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

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

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

Δομή Ηλεκτρονικού υπολογιστή

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

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

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

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

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

Εισαγωγή στην επιστήµη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Κύρια & Περιφερειακή Μνήµη

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

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

ΚΕΦΑΛΑΙΟ 1 ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ

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

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

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

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

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

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

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

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

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

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 Map 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 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