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

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

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

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

Ασκήσεις Caches

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

Ασκήσεις Caches

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

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

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

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

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

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

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

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

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

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

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

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

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

Cach O p i timisati tions

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

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

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

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

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

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

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

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

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

.Λιούπης. Ψηφιακά Ηλεκτρονικά - Ηµιαγωγικές Μνήµες 1

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

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

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

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

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

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

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

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

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

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

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

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

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

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων. Χειμερινό Εξάμηνο

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

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

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

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

Προγραμματισμός συστημάτων UNIX/POSIX. Θέμα επιλεγμένο από τους φοιτητές: Προγραμματιστικές τεχνικές που στοχεύουν σε επιδόσεις

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

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

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

Υ- 07 Παράλληλα Συστήματα Συνοχή κρυφής μνήμης με σύστημα καταλόγων

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

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Πρόβλεψη διακλάδωσης

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

Μελλοντικές Κατευθύνσεις

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

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

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

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

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

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

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

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

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

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

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

Ποια πρόταση είναι αληθής για τον Μ/Ε 8088: Είναι Μ/Ε 16bit, LSI, 40 pins, 20 γραμμές διευθύνσεων, 8 γραμμές δεδομένων

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

DOUBLE DATA RATE (DDR) DRAM CONTROLLER

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

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

AΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (5 ο εξάμηνο) ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ (ΦΘΙΝΟΠΩΡΟ 2007) ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ 30 ΛΕΠΤΑ

Σειρά Ασκήσεων 10: Εικονική Μνήμη (Virtual Memory)

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;

Η Μνήμη RAM. Τι Είναι η Μνήμη RAM. Τα Βασικά για τη RAM

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

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

Transcript:

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

Το σημερινό μάθημα Compiler op<misa<ons για κρυφές μνήμες Prefetching Mul<- level inclusion Κύρια μνήμη 2

Compiler op<miza<ons Η καλύτερη μέθοδος για το hardware: αφήνει το soyware να κάνει τη δουλειά! Τοποθέτηση δεδομένων και προγράμματος Παράδειγμα: branch staightening: Αν ο compiler γνωρίζει ότι η πιθανότητα να ακολουθηθεί μια διακλάδοση είναι μεγάλη, αντιστρέφει τη συνθήκη ώστε να εκτελείτε το σειριακό κομμάτι κώδικα συχνότερα εκμεταλεύεται χωρική τοπικότητα αναφορών 3

Πίνακες στη μνήμη Ο πίνακας είναι 2 διαστάσεων αλλά στη μνήμη υπάρχει μόνο 1 διάσταση column major A(i,j) at A + i + j*n rows row major A(i,j) at A + i*n cols + j Column major Row major 0 5 10 15 0 1 2 3 1 6 11 16 4 5 6 7 2 7 12 17 8 9 10 11 3 8 13 18 12 13 14 15 4 9 14 19 16 17 18 19 4

Loop interchange Αλλαγή σειράς σε επαναλλήψεις ώστε τα δεδομένα να προσπελαύνονται σειριακά 5

Blocking «σμίκρυνση» του προβλήματος ώστε να χωράει στη κρυφή μνήμη και εκτέλεση περισσότερων επαναλλήψεων Παράδειγμα: πολλαπλασιασμός πινάκων c ij * = a i* b *j 6

Απλή υλοποίηση for (i=0;i<n;i++) for (j=0;j<n;j++) for (k=0;k<n;k++) c[i][j] += a[i][k] * b[k][j]; 7

Γραμμική άλγεβρα Μπορούμε να σπάσουμε τον πίνακα σε μικρότερους κάθε πολλαπλασιασμός γίνεται σε μικρούς πίνακες με μέγεθος κατάλληλο ώστε να χωράνε στη κρυφή μνήμη 8

Υλοποίηση for(jj=0; jj < N; jj=jj+b) for(kk=0; kk < N; kk=kk+b) for(i=0; i < N; i++) for(j=jj; j < min(jj+b,n); j++) { r = 0; for(k=kk; k < min(kk+b,n); k++) r = r + y[i][k] * z[k][j]; x[i][j] = x[i][j] + r; } 9

Prefetching Προσκόμιση γραμμών στη κρυφή μνήμη, πρίν ζητηθούν από τον επεξεργαστή/πρόγραμμα χρειάζεται πρόβλεψη μπορεί να μειώσει τα compulsory misses Μπορεί να γίνει σε hardware ή soyware οι περισσότεροι επεξεργαστές έχουν σχετικές εντολές 10

Μέτρα αξιολόγησης prefetch accuracy ποσοστό χρήσιμων prefetch coverage αριθμός χρήσιμων prefetch / αριθμός misses χωρίς prefetch <meliness τα δεδομένα ήρθαν στην cache την κατάλληλη στιγμή Πρόωρο prefetching μπορεί να προκαλέσει cache pollu<on: αντικατάσταση χρήσιμων γραμμών 11

Προβλήματα prefetch Εκτός από cache pollu<on, υπάρχει και bandwidth pollu<on Ανταγωνισμός με προσπελάσεις στην υπόλοιπη ιεραρχία μνήμης (και τους διαύλους) από τον ίδιο ή άλλους επεξεργαστές ή από περιφερειακά Ανταγωνισμός με προσπελάσεις στην ίδια κρυφή μνήμη έλεγχος αν η γραμμή που σκοπεύει να γίνει prefetch υπάρχει ήδη 2 η θύρα για την μνήμη των tag 12

SoYware prefetching Ειδικές εντολές prefetch τοποθετημένες από τον compiler αρκετά πριν χρειαστούν τα δεδομένα συχνά σε συνδιασμό με loop- unrolling Register prefetch φορτώνουν τιμές σε καταχωρητή αλλά οι καταχωρητές είναι λίγοι... Cache prefetch φορτώνουν τιμές στη cache μόνο Τι συμβαίνει αν μια εντολη prefetch προκαλέσει page fault? Συνήθως είναι non- faul<ng, αν θα προκαλούσαν page fault μετατρέπονται σε no- ops 13

Δυσκολίες soyware prefetching Οι επιπλέον εντολές χρειάζονται: χώρο στη μνήμη, πιθ. προκαλούν επιπλέον I$ misses χρόνο εκτέλεσης πιθ. επιπλέον καταχωρητές για διευθύνσεις Η μεγάλη δυσκολία του soyware prefetching είναι το <meliness ακόμη περισσότερο σε OOO επεξεργαστές Πόσες επαναλλήψεις νωρίτερα πρέπει να αρχίσει το prefetch; 14

Sequen<al prefetching Γνωστό και ως next- line ή one- block look- ahead (OBL) Παρόμοιες επιδόσεις με μεγάλο μέγεθος γραμμής Συνήθως ενεργοποιείται σε miss prefetch on miss φέρνει την επόμενη γραμμή από αυτή που αστόχησε στη cache Χρήσιμη κυρίως σε κρυφές μνήμες εντολών Tagged prefetch 1 bit (tag) ανά γραμμή. Τιμή 1 αν προσκομίστηκε κατά παραγγελία (on demand) ή γίνει hit, 0 αν prefetch prefetch την επόμενη γραμμή αν το tag είναι 1 15

Stream buffer Ξεχωριστή αποθήκευση για prefetched γραμμές αποφεύγεται cache pollu<on Οργανωμένος σαν FIFO (κυκλική ουρά) Σε κάθε αναφορά μνήμης του επεξεργαστή ελέγχεται ταυτόχρονα με τη κρυφή μνήμη Αν ευστοχεί ο stream buffer, η γραμμή μεταφέρεται στη κρυφή μνήμη προσκομίζεται η επόμενη γραμμή από την ιεραρχία μνήμης Μπορεί να υπάρχουν πολλαπλοί stream buffers που παρακολουθούν διαφορετικά streams 16

Access strides Μια σειρά από διευθύνσεις μνήμης (a,b,c, ) ονομάζεται stream όταν οι διευθύνσεις διαφέρουν κατά ένα σταθερό αριθμό, που ονομάζεται stride (b- a == c- b, ) Εστω πρόγραμμα με nested loops με μεταβλητές/index i 1, i m Προσπελάσεις μνήμης κατηγοριοποιούνται: scalar ανεξάρτητες απο οποιοδήποτε index Zero stride π.χ. a[i 1,i 2 ] που βρίσκεται σε ένα loop με index i 3 Constant- stride π.χ. a[i 1,i 2 ] που βρίσκεται σε ένα loop με index i 2 Irregular π.χ. μέσω pointer ή a[i 1, b[i 1 ]] 17

Reference predic<on table Δύσκολη διάκριση stream μέσα από πολλαπλά memory references Γνωρίζοντας τη διεύθυνση της εντολής που προσπελαύνει μνήμη, μπορούμε να διακρίνουμε streams Το RPT είναι μια cache που ανιχνεύει και παρακολουθεί streams Κάθε καταχώρηση έχει: tag για ανίχνευση εντολής προσπέλασης (previous) operand address προηγούμενη διεύθυνση stride, state 18

Λειτουργία RPT PC effective address -! instruction tag previous address stride state +! prefetch address 19

Mul<- level inclusion Η κύρια μνήμη (ή άλλοι επεξεργαστές) ακυρώνουν γραμμές που βρίσκονται ήδη στη κρυφή μνήμη Οταν υπάρχει ιεραρχία από κρυφές μνήμες, οι ακυρώσεις πρέπει να διατρέχουν όλη την ιεραρχία από το τελευταίο επίπεδο (last level cache LLC) μέχρι το πρώτο χρειάζεται 2 θύρες προσπελάσεων, τουλάχιστον για tags Αν κάθε επίπεδο είναι υπερσύνολο του προηγούμενου, μόνο οι απαραίτητες ακυρώσεις χρειάζεται να «απασχολούν» τις κρυφές μνήμες Η ιδιότητα ονομάζεται mul<- level inclusion (MLI) Για write- back είναι space property: Αν η γραμμή είναι dirty στην L1, υπάρχει χώρος για τη γραμμή στη L2 20

MLI: λειτουργία Υποθέτουμε 2 επίπεδα κρυφής μνήμης με ίδιο μέγεθος γραμμής write- back (write- through ελαφρώς ευκολότερο) 2- way associa<ve a, a, b γραμμές στη L1 και A, A, B αντίστοιχες γραμμές στη L2 21

MLI προϋποθέσεις Υποθέτουμε ίδιο μέγεθος γραμμής Η L2 είναι μεγαλύτερη της L1 διαφορετικά δεν έχει λόγο ύπαρξης μια inclusive L2 Πρέπει διαφορετικές γραμμές της L1 να αντιστοιχούν σε διαφορετικές γραμμές στην L2 Αν index L2 >= index L1, πρέπει η associa<vity L2 >= assoc. L1 Αν index L2 < index L1, πρέπει η associa<vity L2 >= 2 a assoc. L1 22

MLI με διαφ. μέγεθος γραμμής Εστω B 1 το μέγεθος γραμμής της L1 και B 2 αυτό της L2 Β 2 >= Β 1 Β 2 πολλαπλάσιο του Β1 Σε κάθε γραμμή της L2 αντιστοιχούν B 2 /B 1 γραμμές της L1 Χρειάζεται 1 inclusion bit ανά γραμμή L1 πρέπει η associa<vity L2 >= B 2 /B 1 x assoc. L1 πρέπει η associa<vity L2 >= 2 γ x B 2 /B 1 x assoc. L1 23

Mul<- level exclusion Αν δεν υπάρχει χώρος για μεγάλη L2, ή απαιτείται μεγαλύτερη associa<vity από ότι είναι υλοποιήσιμο π.χ. η L2 μοιράζεται από χωριστές L1 I,D κάθε μια με μεγάλη associa<vity H L2 είναι μια τεράστια vic<m cache για την L1 Η πιο σωστά non- inclusion μπορεί η L2 να περιέχει κοινές γραμμές με τη L1 π.χ. μια evicted γραμμή, ξαναπροσπελαύνεται από τον πυρήνα 24

Κύρια μνήμη Βασίζεται σε τεχνολογία DRAM Θα βρίσκεται (πάντα;) εκτός ΟΚ επεξεργαστή τουλάχιστον για laptop, desktop, servers Η DRAM θεωρείται commodity product πολύ μικρή διαφορά κόστους παραγωγής, τιμής πώλησης Προτεραιότητες κατασκευαστών (φθίνουσα σειρά): χωρητικότητα ρυθμός μεταφοράς (bandwidth) καθυστέρηση (latency access <me)

DRAM array ddm

Γραμμές και στήλες Επειδή η αποθηκευμένη μνήμη σε ένα ΟΚ DRAM είναι μεγάλη, χρειάζεται πολλά bits για διεύθυνση απαιτούνται πολλά pins στο ΟΚ Για να μειωθεί ο αριθμός των pin, η διεύθυνση χωρίζεται σε 2 τμήματα: row address, column address η column χρειάζεται λίγο αργότερα Για να ξεχωρίζει το τμήμα της διεύθυνσης, δύο σήματα/ pins στο ΟΚ RAS (row- address strobe) CAS (column- address strobe)

Εσωτερική οργάνωση Υπάρχουν πολλαπλά arrays σε ένα OK DRAM 2 βασικοί τρόποι οργάνωσης: τα array δουλεύουν από κοινού και «δίνουν» 1 bit το καθένα π.χ. x4 DRAM 4 arrays δίνουν 4 bits από την ίδια διεύθυνση προσφέρει bandwidth «δίνοντας» πολλά bit παράλληλα ή δουλεύουν ως ανεξάρτητες banks δουλεύουν ανεξάρτητα μεταξύ τους: διαφορετικές διευθύνσεις,... προσφέρει bandwidth μέσω επικαλυπτόμενης προσπέλασης Γενικά σε ένα σύγχρονο DRAM ΟΚ: περιέχονται πολλά arrays και αρκετές banks κάθε bank αποτελείται από arrays που δουλεύουν παράλληλα

Memory modules Τα ΟΚ DRAM τοποθετούνται σε μικρές πλακέτες PCB, που ονομάζονται memory modules Τα πιο συνηθισμένα λέγονται DIMM (dual in- line memory module) Ενα σύστημα μπορεί να έχει πολλά ανεξάρτητα DIMM Ενα DIMM μπορεί να έχει 1 ή περισσότερες ανεξάρτητες ranks μια ομάδα από DRAM ΟΚ που λειτουργούν από κοινού, (αλλά τα DRAM τους, εσωτερικά, μπορεί να έχουν banks)

Κύρια μνήμη, οργάνωση

Memory bus Data bus (64bit), Address bus (~15bit), Control bus αγωγοί κοινοί για όλα τα DIMM Chip- Select busses για κάθε rank επιλέγει τα OK που αφορά η «εντολή»

Memory controller Mετατρέπει διευθύνσεις της CPU σε σειρές εντολών προς τα DIMMs Γνωρίζει την οργάνωση σε ranks, banks, Γνωρίζει τη κατάσταση κάθε (ομάδας) DRAM array: αν χρειάζεται precharge, μόνο CAS,

Fast page mode, EDO DRAM Πολλαπλές προσπελάσεις στην ίδια γραμμή γίνονται απευθείας από τους sense amplifiers Πρακτικά ο controller κρατά το RAS, και μεταβάλει πολλές φορές το σήμα CAS EDO (extended data out) προσθέτει ένα καταχωρητή μετά τον πολυπλέκτη στήλης μπορεί ο πολυπλέκτης στήλης να ξεκινήσει γρηγορότερα την επιλογή της επόμενης στήλης όσο στέλνεται η προηγούμενη

Synchronous DRAM Οι παλιότερες DRAM ήταν ασύγχρονες: οι μεταβολές των σημάτων RAS, CAS προκαλούσαν εσωτερικές μεταβάσεις στα ΟΚ DRAM Ο χρονισμός συμβάντων είναι ευκολότερος αν όλα τα σήματα είναι συγχρονισμένα με ένα σήμα αναφοράς (το ρολόι)

DDR SDRAM Aνταγωνισμος μεταξύ Rambus (RDRAM) και DDR, (τέλος 90, αρχές 2000) με πολλές μάχες στα δικαστήρια Πλέον το DDR έχει επικρατήσει Π.χ. η Intel σταμάτησε να παράγει chipsets συμβατά με Rambus το 2002