Σχεδιασμός της Ιεραρχίας Μνήμης (1) Pedro Trancoso Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Προβολή SPmC TURBOHALER ΑΣθΜΑ ΧΑΠ Subordinated pages Animation step Structure of the pages is clear No animation Simple animation.
Advertisements

Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 Πολυεπεξεργαστές.
Εικονική Μνήμη (virtual memory)
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Handling Local Variables General Purpose Registers
Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
Cache Optimisations.
Processor-Memory (DRAM) Διαφορά επίδοσης
Εικονική Μνήμη (virtual memory) Πολλά προγράμματα εκτελούνται ταυτόχρονα σε ένα υπολογιστή Η συνολική μνήμη που απαιτείται είναι μεγαλύτερη.
Είδη των Cache Misses: 3C’s 1 Compulsory: 1 Compulsory: Συμβαίνουν κατά την πρώτη πρόσβαση σε ένα block. Το block πρέπει να κληθεί από χαμηλότερα επίπεδα.
Ασκήσεις Caches
Κ. Διαμαντάρας Α. Βαφειάδης Τμήμα Πληροφορικής ΑΤΕΙ Θεσσαλονίικης 2011 Συστήματα Μνήμης – Βασικές Αρχές Cache.
1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Pipelining –
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
© Θέματα Φεβρουαρίου © Θέμα 1ο (30%): Έστω η παρακάτω ακολουθία εντολών που χρησιμοποιείται για την αντιγραφή.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Άσκηση Διεύθυνσης Μνήμης με cache Νεκτάριος Κοζύρης Άρης Σωτηρόπουλος Νίκος Αναστόπουλος.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
© Processor-Memory (DRAM) Διαφορά επίδοσης Performance
Processor-Memory (DRAM) Διαφορά επίδοσης Performance
6/15/2015HY220: Ιάκωβος Μαυροειδής1 HY220 Static Random Access Memory.
ΗΥ Παπαευσταθίου Γιάννης1 Clock generation.
ΗΥ Καλοκαιρινός Γιώργος1 PCI Bus Pin List. ΗΥ Καλοκαιρινός Γιώργος2 Initiator Target.
ΗΥ Καλοκαιρινός Γιώργος1 Bus. ΗΥ Καλοκαιρινός Γιώργος2 MCS51.
6/26/2015HY220: Ιάκωβος Μαυροειδής1 HY220 Asynchronous Circuits.
Translation Lookaside Buffers Φροντιστήριο του μαθήματος “Προηγμένοι Μικροεπεξεργαστές”
© Είδη των Cache Misses: 3C’s 1 Compulsory: 1 Compulsory: Συμβαίνουν κατά την πρώτη πρόσβαση σε ένα block. Το block πρέπει να κληθεί.
1 Αρχιτεκτονική υπολογιστών Ενότητα 4 : Ενδιάμεση Μνήμη (Cache Memory) Φώτης Βαρζιώτης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Προσομοίωση Δικτύων 4η Άσκηση Σύνθετες τοπολογίες, διακοπή συνδέσεων, δυναμική δρομολόγηση.
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κ.ΑΛΑΦΟΔΗΜΟΣ καθηγητής Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -- Δ. Σερπάνος 1 Κεφάλαιο 5.
Αρχιτεκτονική Υπολογιστών ΙΕΡΑΡΧΙΕΣ ΜΝΗΜΗΣ. Αρχιτεκτονική Υπολογιστών ΤΟΠΙΚΟΤΗΤΑ Χρονική Τοπικότητα (Temporal Locality) –μια λέξη μνήμης που χρησιμοποιήθηκε.
1 Διαχείριση Μνήμης Γενικά Εναλλαγή (Swapping) Συμπαγής Εκχώρηση (Contiguous Allocation) Σελιδοποίηση (Paging) Κατάτμηση (Segmentation) Κατάτμηση με Σελιδοποίηση.
Αρχιτεκτονική Υπολογιστών Ενότητα # 3: Ιεραρχία Μνήμης Διδάσκων: Γεώργιος Κ. Πολύζος Τμήμα: Πληροφορικής.
Αριθμητική Επίλυση Διαφορικών Εξισώσεων 1. Συνήθης Δ.Ε. 1 ανεξάρτητη μεταβλητή x 1 εξαρτημένη μεταβλητή y Καθώς και παράγωγοι της y μέχρι n τάξης, στη.
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ Αρχιτεκτονική Υπολογιστών.
Διαφάνειες διδασκαλίας του πρωτότυπου βιβλίου μεταφρασμένες στα ελληνικά (μετάφραση, επιμέλεια: Δημήτρης Γκιζόπουλος, Πανεπιστήμιο Αθηνών) Οργάνωση και.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αρχιτεκτονική Η/Υ ΙΙ Ενότητα #2: Θέματα που αφορούν την Κρυφή Μνήμη (Cache) Νικόλαος Χ. Πετρέλλης Σχολή Τεχνολογικών.
Διαχείριση Διαδικτυακής Φήμης! Do the Online Reputation Check! «Ημέρα Ασφαλούς Διαδικτύου 2015» Ε. Κοντοπίδη, ΠΕ19.
OFDM system characteristics. Effect of wireless channel Intersymbol interference in single carrier systems due to multipath propagation with channel delay.
Guide to Business Planning The Value Chain © Guide to Business Planning A principal use of value chain analysis is to identify a strategy mismatch between.
Εικονική Μνήμη (virtual memory)
Καθηγητής Σταύρος Α. Κουμπιάς
Ενότητα 5 : Οργάνωση Υλικού Υπολογιστών Δρ. Γκόγκος Χρήστος
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Είδη των Cache Misses: 3C’s
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΛΩΣΣΑ C
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Morgan Kaufmann Publishers
Θέματα Φεβρουαρίου
Ασκήσεις Caches
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Ι
Είδη των Cache Misses: 3C’s
Find: φ σ3 = 400 [lb/ft2] CD test Δσ = 1,000 [lb/ft2] Sand 34˚ 36˚ 38˚
Είδη των Cache Misses: 3C’s
Είδη των Cache Misses: 3C’s
Advanced Computer Architectures Cache Memories
GLY 326 Structural Geology
ΕΝΣΤΑΣΕΙΣ ΠΟΙΟΣ? Όμως ναι.... Ένα σκάφος
Find: ρc [in] from load γT=110 [lb/ft3] γT=100 [lb/ft3]
Είδη των Cache Misses: 3C’s
Lower Bound for Partial Sums
Είδη των Cache Misses: 3C’s
Διδάσκοντας: Κ. Χαλάτσης
Find: ρc [in] from load (4 layers)
CPSC-608 Database Systems
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΛΩΣΣΑ C
Μεταγράφημα παρουσίασης:

Σχεδιασμός της Ιεραρχίας Μνήμης (1) Pedro Trancoso Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου

Η Αρχή... “Ideally one would desire an indefinitely large memory capacity such that any particular…word would be immediately available…We are…forced to recognize the possibility of constructing a hierarchy of memories, each of which has greater capacity than the preceding but which is less quickly accessible” A.W.Burks, H.H.Goldstein, and J. von Neumann (1946)

Το Κίνητρο... Διαφορά μεταξύ της επίδοσης του επεξεργαστή και της μνήμης: Παράδειγμα: Alpha 200MHz340ns/5.0ns = 136 clk Alpha 300MHz266ns/3.3ns = 320 clk Alpha 566MHz180ns/1.7ns = 648 clk

Τυπική Ιεραρχία Μνήμης

Ορολογία για Κρυφή Μνήμη... Cache, fully associative, write allocate, virtual memory, dirty bit, unified cache, memory stall cycles, block offset, misses per instruction, direct mapped, write back, block, valid bit, data cache, locality, block address, hit time, address trace, write through, cache miss, set, instruction cache, page fault, random replacement, average memory access time, miss rate, index field, cache hit, n-way set associative, no-write allocate, page, least- recently used, write buffer, miss penalty, tag field, write stall,...

Βασικές Έννοιες Πρόσβαση στην Κρυφή Μνήμη Λόγος Επιτυχίας (Cache Hit / Hit Rate), Χρόνος Επιτυχίας (Hit Time) Λόγος Αποτυχίας (Cache Miss / Miss Rate), Ποινή Αποτυχίας (Miss Penalty) Τοπικότητα Χρονική Τοπικότητα (Temporal Locality) If an item is referenced, it will tend to be referenced again soon (e.g. loops, reuse) Χωρική Τοπικότητα (Spatial Locality) If an item is referenced, items whose addresses are close by tend to be referenced soon (e.g. straight line code, array accesses)

Επίδοση της Κρυφής Μνήμης Παράδειγμα: CPI=1, load/store=50% instr, miss penalty=25clk, miss rate=2%, speedup=? CPU execution time = (CPU clock cycles + Memory stall cycles) x Clock cycle time Memory Stall Cycles = Number of misses x Miss penalty = IC x (Misses / Instruction) x Miss penalty = IC x (Memory Accesses / Instruction) x Miss rate x Miss penalty Memory stall Cycles = IC x Reads per instruction x Read miss rate x Read miss penalty + IC x Writes per instruction x Write miss rate x Write miss penalty (Misses / Instruction) = (Miss rate x Memory accesses) / Instruction count = Miss rate x (Memory accesses / Instruction)

Κρυφή Μνήμη BLOCK SET WORD

Τέσσερις Ερωτήσεις 1.Που μπορούμε να βάλουμε ένα μπλοκ; (block placement) 2.Πως βρίσκουμε αν ένα μπλοκ είναι στην Κρυφή Μνήμη; (block identification) 3.Ποιο μπλοκ να αντικαταστήσω μετά από αποτυχία; (block replacement) 4.Τι γίνεται όταν γράφουμε; (write strategy)

Που μπορούμε να βάλουμε ένα μπλοκ; Οργάνωση της Κρυφής Μνήμης: Direct Mapped: each block has only one place it can appear Mapping = (Block address) MOD (Number of blocks in cache) Fully Associative: a block can be placed anywhere Set Associative: a block can be placed on a restricted set of places Mapping = (Block address) MOD (Number of sets in cache)

Πως βρίσκουμε αν ένα μπλοκ είναι στην Κρυφή Μνήμη; Διεύθυνση: Block Offset Block Address: Index + Tag Λειτουργία: Index για να βρει που μπορεί να είναι, Tag για να βρει αν είναι το συγκεκριμένο μπλοκ (κάνουμε Tag Check για όλα τα πιθανά Tags), Offset για να βρει τα δεδομένα μέσα στο μπλοκ

Ποίο μπλοκ να αντικαταστήσω μετά από αποτυχία; Direct Mapped: Μόνο ένα μπλοκ μπορεί να αντικατασταθεί Set Associative: Random (απλό) Least-recently used (LRU) First in, first out (FIFO)

Τι γίνεται όταν γράφουμε; Οι περισσότερες προσβάσεις είναι διαβάσματα (π.χ. 10% st και 37% ld για 5 SPECint2000) Για το read μπορούμε να διαβάζουμε το Tag και το μπλοκ ταυτόχρονα όμως για το write... Δυο επιλογές για να γράψουμε: Write through: write to both block in cache and in main memory Write back: write only to block in cache. Modified block written to main memory upon replacement (use dirty bit)

Τι γίνεται όταν γράφουμε; Δυο επιλογές όταν έχουμε write miss (write miss policy): Write allocate: block is allocated (read miss + write) No-write allocate: does not affect the cache, modifies only lower-level memory Βελτίωση... Write buffer: processor continues execution as data is written to buffer

Παράδειγμα: Alpha Data Cache

Επίδοση της Κρυφής Μνήμης Άσκηση: Ποια οργάνωση έχει χαμηλότερο λόγο αποτυχίας: 16KB instruction cache + 16KB data cache 32 KB unified cache Assume: 36% of instr are data transfers, hit=1clk, miss penalty=100clk, unified with single port means 1 extra clk if 2 requests, write-through with write buffer (ignore stalls to write buffer) Average memory access time = ΑΜΑΤ = Hit time + Miss rate x Miss penalty

Επίδοση της Κρυφής Μνήμης Άσκηση: cache penalty=100clk, all instr take 1clk, average miss rate=2%, average memory refs per instr=1.5, average cache misses per 1000 instr=30. Performance with and without cache=? CPU time = (CPU execution clock cycles + Memory stall clock cycles) x Clock cycle time

Μείωση Ποινής Λόγω Αποτυχιών Κρυφή Μνήμη Πολύ-επιπέδου Πιο γρήγορη ή πιο μεγάλη ΚΜ; ΚΜ Δεύτερο επίπεδο (L2) Λόγοι αποτυχίας της L2: Local miss rate = miss L2 / access L2 Global miss rate = miss L2 / memory access Multilevel inclusion / exclusion AMAT = Hit time L1 + Miss rate L1 x Miss penalty L1 Miss penalty L1 = Hit time L2 + Miss rate L2 x Miss penalty L2 AMAT = Hit time L1 + Miss rate L1 x (Hit time L2 + Miss rate L2 x Miss penalty L2) AMAT = Misses per instruction L1 x Hit time L2 + Misses per instruction L2 x Miss penalty L2

Μείωση του Λόγου Αποτυχίας Types of Misses (“three C’s”) Compulsory: first access. Also called cold- start misses or first-reference misses Capacity: cache can not contain all blocks Conflict: many blocks map to the same set. Also called collision misses or interference misses (fourth C: Coherence…)

Μείωση του Λόγου Αποτυχίας Μεγαλύτερο μέγεθος του μπλοκ Reduces compulsory misses (spatial locality) Increases miss penalty May increase conflict and capacity misses

Μεγαλύτερο μέγεθος του μπλοκ Άσκηση: Cache Size Block Size4K16K64K256K %3.94%2.04%1.09% %2.87%1.35%0.70% %2.64%1.06%0.51% %2.77%1.02%0.49% %3.29%1.15%0.49% Assume memory system takes 80 clk overhead and then delivers 16 bytes every 2 clk (16 bytes in 82clk, 32 bytes in 84clk,…). Which block size has the smallest average memory access time for each cache size?

Μείωση του Λόγου Αποτυχίας Μεγαλύτερη Κρυφή Μνήμη Προφανώς! Higher Associativity Μείωση των Conflict Misses Way Prediction and Pseudoassociative Caches

Μείωση του Λόγου Αποτυχίας Βελτιώσεις από το Μεταγλωττιστή Loop Interchange for (j=0; j<100; j++) for (i=0; i<5000; i++) x[i][j] = 2*x[i][j] for (i=0; i<5000; i++) for (j=0; j<100; j++) x[i][j] = 2*x[i][j] i=0 j=0 i=0 j=100 … i=1 j=0 i=0 j=0 i=0 j=100 … i=1 j=0

Μείωση του Λόγου Αποτυχίας Blocking X=X=