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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

Ασκήσεις Caches

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cach O p i timisati tions

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διαχείριση Κύριας Μνήμης

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

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

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

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

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

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

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

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

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

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

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

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

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;

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

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

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

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

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

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

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

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

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

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

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

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

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

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

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

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

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

Transcript:

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 9ο μάθημα: Κρυφές μνήμες εικονική μνήμη Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου

Μεγαλύτερη associadvity! Rules of thumb: 8- way has as good a miss rate as fully associadve 2:1 cache rule of thumb direct mapped μεγέθους Ν έχει ίδιο miss rate με 2- way set- associadve μεγέθους Ν/2! Γενικά αυξάνοντας την associadvity αυξάνει ο κύκλος ρολογιού! Σε ένα γρήγορο επεξεργαστή η παραπάνω πολυπλοκότητα μειώνει το ρυθμό ρολογιού αλλά το αυξημένο miss penalty (σε αριθμό κύκλων) ευνοεί το καλύτερο miss rate της μεγαλύτερης associadvity 2

Πολλαπλά επίπεδα cache! Η τεχνολογία DRAM δεν βελτιώνει τη ταχύτητα προσπέλασης με τόσο γρήγορο ρυθμό όσο η τεχνολογία επεξεργαστών το miss penalty σε αριθμό κύκλων ρολογιού μεγαλώνει! Πολλαπλά επίπεδα cache βελτιώνουν το miss penalty Level 2, level 3 κρυφές μνήμες τοποθετούνται στο ολοκληρωμένο του επεξεργαστή/πυρήνα! AMAT = Hit Dme L1 + Miss rate L1 * Miss penalty L1! Miss penalty L1 = Hit Dme L2 + Miss rate L2 * Miss penalty L2 3

Global, local misses! Πώς ορίζονται τα miss rate για κάθε επίπεδο?! Local miss rate ο αριθμός αστοχιών μιας cache διαιρεμένος με τον αριθμό προσπελάσεων της ίδιας cache Ο προηγούμενος τύπος χρησιμοποιεί local miss rates! Global miss rate - ο αριθμός αστοχιών μιας cache διαιρεμένος με τον αριθμό προσπελάσεων που προκαλεί ο επεξεργαστής! Το local miss rate είναι σχετικά μεγάλο για το 2ο επίπεδο το 1 ο επίπεδο εκμεταλεύτηκε το μεγαλύτερο μέρος της τοπικότητας αναφορών μνήμης 4

Παράδειγμα! Σε 1000 προσπελάσεις, 40 αστοχίες στο 1 ο επίπεδο, 20 στο 2 ο επίπεδο! 1.5 προσπελάσεις μνήμης ανά εντολή! Hit Dme L1 είναι 1 κύκλος! Hit Dme L2 είναι 10 κύκλοι! Miss penalty από L2 είναι 200 κύκλοι! Υπολογίστε τα Miss rates και AMAT 5

Λύση! Miss rate L1 (ίδιο για global, local) = 40/1000 = 0.04 (4%)! Global miss rate L2 = 20/1000 = 2%! Local miss rate L2 = 20/40 = 50%! ΑΜΑΤ = HitL1 + MissL1 * (HitL2 + local Miss L2 * Penalty L2) = 1+0.04*(10+0.5*200)=5.4 κύκλοι 6

Πολλαπλά επίπεδα cache! Η ταχύτητα του 1 ου επιπέδου επηρεάζει το ρυθμό ρολογιού του επεξεργαστή! Η ταχύτητα του 2 ου επιπέδου επηρεάζει το miss penalty του 1 ου επιπέδου! Υπάρχει μεγαλύτερη ευελιξία επιλογής οργάνωσης στο 2 ο επίπεδο! Μεγάλη σημασία έχει το κόστος και πόσο μειώνει το μέσο χρόνο προσπέλασης (ΑΜΑΤ) 7

Παράδειγμα! Hit Dme L2 = 10 clock cycles! 2- way associadvity αυξάνει το hit Dme σε 10.1 υποθέτουμε σχετικά αργό ρολόι για το 2 ο επίπεδο! Local miss rate direct mapped = 25%! Local miss rate 2- way = 20%! Miss penalty = 200 κύκλοι! Ποιά οργάνωση είναι καλύτερη? 8

Λύση! Υπολογίζουμε τα miss penaldes που θα «έβλεπε» η cache 1 ου επιπέδου! Miss penalty direct mapped = 10+0.25*200 = 60! Miss penalty 2- way = 10.1+0.2*200 = 50.1! Αν το 0.1 μας αναγκάζει να αυξήσουμε το L2 hit Dme σε 11 κύκλους, Miss penalty 2- way = 51 πάλι το κέρδος είναι μεγάλο 9

Cache inclusion Πρέπει όλες οι γραμμές της L1 να βρίσκονται και στην L2; inclusion property! Χρήσιμο σε πολυεπεξεργαστές: είναι εύκολο να ξέρει το κατώτερο επίπεδο κρυφής μνήμης αν υπάρχει αντίγραφο μιας γραμμής στην ιεραρχία μνήμης ενός πυρήνα! αλλά ξοδεύουν χώρο στην L2, αυξάνοντας το miss rate 10

Προτεραιότητα σε αναγνώσεις! Οι αναγνώσεις είναι πιο χρήσιμες από τις εγγραφές κάποια κοντινή (επόμενη) εντολή χρειάζεται τη τιμή! Μπορούμε να καθυστερήσουμε τις εγγραφές τοποθετώντας τες προσωρινά σε write buffer! Προβλήματα, βλ. παρακάτω πρόγραμμα διευθύνση 512, 1024 αντιστοιχούν στην ίδια θέση στη cache 11

Προτεραιότητα σε αναγνώσεις! Οι αστοχίες πρέπει να περιμένουν το write buffer να αδειάσει! Οι αστοχίες εξετάζουν και το write buffer! Παρόμοια μια write- back cache μπορεί να μειώσει το κόστος εγγραφών η dirty γραμμή γράφεται σε ένα buffer διαβάζει τη νέα γραμμή που αστόχησε μετά γράφει το θύμα στο επόμενο επίπεδο 12

Μικρές και απλές!! Στόχος: μείωση του hit Dme! Το cridcal path στη κρυφή μνήμη (hits) ανάγνωση μνήμης tag σύγκριση με το αντίστοιχο τμήμα της διεύθυνσης επιλογή του σωστού set! Η πιο απλή υλοποίηση είναι direct mapped μία σύγκριση, δε χρειάζεται επιλογή δε χρειάζεται αλγόριθμος αντικατάστασης Ταχύτερος κύκλος ρολογιού! Σύγκριση tag μπορεί να γίνει παράλληλα με τη μεταφορά δεδομένων 13

L1 size and associadvity 14

Way predicdon! Οι γραμμές κάθε set συνήθως κρατούνται σε ξεχωριστές SRAM οι SRAMs ονομάζονται ways! Απλή οργάνωση: διάβασε ολόκληρο το set (δηλαδή όλες τις ways) και επέλεξε τη γραμμή όπου το αντίστοιχο tag ταιριάζει όλες οι προσπελάσεις εκτός από μία, «πάνε χαμένες» μεγάλη κατανάλωση/σπατάλη ενέργειας! Εναλλακτικά: πρόβλεψε ένα way, αν δεν περιέχει τη γραμμή, δοκίμασε τα υπόλοιπα ways Αν η πρόβλεψη είναι σωστή, μικρότερη κατανάλωση, μικρότερο hit Dme 15

Way predicdon! Χρησιμοποιείται ευρύτατα MIPS 10000, ARM Cortex- A8,! Ακρίβεια πρόβλεψης > 90% for two- way > 80% for four- way I- cache has be er accuracy than D- cache! Πολλαπλοί χρόνοι hit 16

Διοχετευμένες cache! Αύξηση καθυστέρησης και ρυθμού προσπελάσεων εύστοχη προσπέλαση (hit) παίρνει ένα αριθμό από κύκλους PenDum: 1 cycle PenDum Pro PenDum III: 2 cycles PenDum 4 Core i7: 4 cycles! Ευκολότερη αύξηση associadvity! Προβλήματα μεγαλύτερες ποινές: λανθασμένης πρόβλεψης διακλάδοσης φόρτωσης χρήσης (load use)! Τα προβλήματα είναι λιγότερο σημαντικά σε επεξεργαστές με δυναμικό scheduling και εκτέλεση εκτός σειράς 17

Non- blocking caches! Επεξεργαστές με εκτέλεση εκτός σειράς δε χρειάζεται να να παγώνουν τη διοχέτευση σε κάθε αστοχία κρυφής μνήμης! Οι non- blocking (ή lockup- free) caches επιτρέπουν εύστοχες προσπελάσεις όσο εξυπηρετείται η προηγούμενη αστοχία λέγεται hit- under- miss! Ετσι μειώνεται η ποινή αστοχίας μηδενίζεται για L1, πολύ δύσκολο για L2! Μπορεί ακόμη να σχεδιαστεί μια cache ώστε να επιτρέπει πολλαπλές αστοχίες λέγεται hit under muldple miss ή miss under miss 18

Non- blocking caches 19

MulD- banked caches! Διάσπαση της cache σε ανεξάρτητα κομμάτια ονομάζονται banks! Ταυτόχρονη προσπέλαση σε κάθε bank! Φτηνός τρόπος για πολλαπλές θύρες πρόσβασης αρκεί οι ταυτόχρονες προσβάσεις να αντιστοιχούν σε διαφορετικά banks sequendal interleaving - συνεχόμενες διευθύνσεις γραμμών σε διαφορετικές banks 20

Early- restart, cridcal word first! Βασική ιδέα: μετά από miss, δε χρειάζεται να περιμένουμε την εγγραφή όλης της γραμμής (cache line refill) πριν επιστρέψουμε στον επεξεργαστή τη λέξη που ζήτησε! Early- restart μόλις έρθει η λέξη, τη στέλνουμε στον επεξεργαστή! CriDcal word first Προσκόμισε τη ζητούμενη λέξη πρώτα και μετά τα υπόλοιπα στοιχεία της γραμμής! Χρήσιμες τεχνικές για μεγάλες γραμμές! Δυσκολότερος χειρισμός 2 ης προσπέλασης σε λέξη της γραμμής πριν ολοκληρωθεί το refill 21

Merging write buffer! Write buffer προσωρινή αποθήκευση για εγγραφές προς το επόμενο επίπεδο μνήμης ώστε να εξυπηρετηθούν οι αναγνώσεις κατά προτεραιότητα Παραλλαγή: vicdm buffer γραμμές προς αντικατάσταση! Ο write buffer έχει πεπερασμένη χωρητικότητα πολλαπλές εγγραφές γεμίζουν όλες τις θέσεις και μετά παγώνει η cache μέχρι να αδειάσει Λύση: merging wb 22

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

Πίνακες στη μνήμη! Ο πίνακας είναι 2 διαστάσεων αλλά στη μνήμη υπάρχει μόνο 1 διάσταση column major A(i,j) at A+i+j*n row major A(i,j) at A+i*n+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 24

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

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

Απλή υλοποίηση 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]; 27

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

Υλοποίηση 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 + a[i][k] * b[k][j]; c[i][j] = c[i][j] + r; } 29

Γραμμική άλγεβρα 30

Hardware prefetching! Προσκόμιση γραμμών πριν τις ζητήσει ο επεξεργαστής Μειώνει compulsory misses! Παράδειγμα: σε κάθε αστοχία προσκόμισε τη γραμμή που χρειάζεται και την επόμενη! Προσκόμιση μπορεί να γίνεται στην cache ή σε ειδικό χώρο αποθήκευσης (stream buffer)! Εκμεταλεύεται memory bandwidth που δεν χρησιμοποιείται μπορεί να καθυστερήσει εξυπηρέτηση αστοχιών ή να αντικαταστάσει χρήσιμες γραμμές 31

PenDum 4 L2 prefetching 32

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

Εικονική μνήμη 34

Εικονική μνήμη ως cache! Η κύρια μνήμη (DRAM) μπορεί να θεωρηθεί ως «κρυφή μνήμη» της δευτερεύουσας μνήμης (δίσκος) ο χειρισμός γίνεται και με υλικό και με λογισμικό (Λ.Σ.)! Τα προγράμματα μοιράζονται τη κύρια μνήμη κάθε διεργασία έχει ξεχωριστό ένα χώρο διευθύνσεων μνήμης, εικονική μνήμη (virtual memory) προστατεύεται από άλλες διεργασίες που τρέχουν ταυτόχρονα! Το Λ.Σ. και ο επεξεργαστής μεταφράζουν τις εικονικές διευθύνσεις σε φυσικές (physical) μια «γραμμή» εικονικής μνήμης λέγεται σελίδα (page) αστοχία στη κύρια μνήμη λέγεται σφάλμα σελίδας (page fault) 35

Αντιστοιχία με κρυφή μνήμη 36

Μετάφραση διευθύνσεων! Σελίδες σταθερού μεγέθους (π.χ. 4ΚΒ) λιγότερα bits για αριθμό σελίδας (οικονομία στην αποθήκευση) εκμετάλευση του σχετικά μεγάλου ρυθμού μεταφοράς από το δίσκο σε σχέση με τον αργό χρόνο προσπέλασης! Δεν χρειάζεται οι σελίδες να είναι σε συνεχόμενο χώρο στη (φυσική) μνήμη 37

Πίνακας (μετάφρασης)σελίδων! Αποθηκεύει πληροφορίες για τη μετάφραση πίνακας καταχωρήσεων σελίδων (page table entry PTE), διευθυνσιοδοτημένoς με τον εικονικό αριθμό σελίδας! Αν μια σελίδα είναι στην μνήμη η καταχώριση περιλαμβάνει τον αριθμό φυσικής σελίδας και διάφορα bit κατάστασης, χρήσιμα για αλγόριθμο αντικατάστασης, χειρισμό εγγραφών! Αν η σελίδα δεν είναι στη μνήμη η καταχώριση δείχνει τη θέση της σελίδας στο δίσκο! Ταυτόχρονα μπορεί να ελεγχθεί αν επιτρέπεται πρόσβαση στη σελίδα από τη διεργασία π.χ. πρόσβαση σε διεύθυνση που δεν έχει κατανεμηθεί στη διεργασία 38

Ξεχωριστοί πίνακες ανά διεργασία! Ο χώρος που απαιτείται είναι μεγάλος μόνο η κύρια μνήμη μπορεί να αποθηκεύσει τον πίνακα σελίδων! Οργάνωση σε 2 (ή περισσότερα) επίπεδα για οικονομία χώρου 39

Πίνακες στη μνήμη! Κάθε προσπέλαση στην εικονική μνήμη από το πρόγραμμα στην πραγματικότητα προκαλεί 2 προσπελάσεις μνήμης 40

Γρήγορη μετάφραση! Οι προσπελάσεις στο πίνακα σελίδων έχουν μεγάλη τοπικότητα αναφορών! Μπορει να εκμεταλευτεί από μια κρυφή μνήμη για καταχωρήσεις πίνακα μετάφρασης (PTE) ευστοχία: άμεση μετάφραση σε ένα κύκλο (ή και μισό) αστοχία: page table walk από υλικό ή λογισμικό! Ονομάζεται TranslaDon Look- aside Buffer (TLB)! Περιέχει 16-512 PTEs, 0.5 1 cycle for hit, 10 100 cycles for miss, 0.01% 1% miss rate! Πρόσφατοι επεξεργαστές έχουν 2 επίπεδα TLB ακριβώς όπως οι κρυφές μνήμες: μειώνουν τη ποινή αστοχίας 41

Μετάφραση διεύθυνσης 42

Μετάφραση και διοχέτευση Η μετάφραση διεύθυνσης προσθέτει χρόνο. Επιλογές:! αύξηση περιόδου ρολογιού όχι!! χωριστά στάδια διοχέτευσης για TLB και κρυφή μνήμη δεν είναι καταστροφικό αλλά αυξάνει χρόνο προσπέλασης! κρυφές μνήμες με εικονικές διευθύνσεις! παράλληλη προσπέλαση σε TLB και κρυφή μνήμη 43

Κρυφές μνήμες με εικονικές διευθύνσεις! Δεν χρειάζεται μετάφραση αν ευστοχεί στην κρυφή μνήμη αλλά ο έλεγχος πρόσβασης πρέπει να γίνεται! Τα tags πρέπει να επεκτείνονται με αριθμό/κωδικό διεργασίας αλλιώς σε κάθε context switch πρέπει να αδειάζει όλη η cache!! Πρόβλημα ψευδόνυμων (aliasing) αν δύο εικονικές σελίδες αντιστοιχούν στην ίδια πραγματική, δύο αντίγραφα της ίδιας γραμμής μπορεί να βρίσκονται στην κρυφή μνήμη 44

Παράλληλη προσπέλαση! Λέγεται virtually indexed, physically tagged! Το index της κρυφής μνήμης δεν χρειάζεται μετάφραση αν «πεφτει» στο τμήμα της διεύθυνσης που αντιστοιχεί στο page offset! Η σύγκριση των tags γίνεται μετά από και τις δύο προσπελάσεις 45

Ορια παράλληλης προσπέλασης! Αν L + b > k, μπορεί να έχουμε aliasing! Τίθεται όριο στον αριθμό set της κρυφής μνήμης! L = k- b! Η κρυφή μνήμη μπορεί να αυξηθεί, μόνο χρησιμοποιώντας περισσότερα ways 46