Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

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

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

Ασκήσεις Caches

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

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

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

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

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

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

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις:

Κρυφή Μνήµη. Λειτουργικά Συστήµατα ΙΙ UNIX. Μάθηµα: Aναπλ. Καθ. Κ. Λαµπρινουδάκης ιδάσκων: &καιτοπλήθοςτωνπλαισίωντηςκρυφήςµνήµης

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

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

Κατακερματισμός (Hashing)

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

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

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

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

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

Επαρκή χωρητικότητα αποθήκευσης Αποδεκτό επίπεδο μέσης απόδοσης Χαμηλό μέσο κόστος ανά δυαδικό δ ψηφίο

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

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

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

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

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

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

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

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

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

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

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

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

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

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

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

Αρχιτεκτονική Μνήμης

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

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

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

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

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

Πανεπιστήµιο Θεσσαλίας

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

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

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

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

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

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

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

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

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

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

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

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

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

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Θέματα Μεταγλωττιστών

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

Μάθημα 7: Μικροϋπολογιστικό Σύστημα και Μνήμες

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

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

Κωνσταντίνος Κυριακουλάκος Α.Μ.:

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

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ:ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΣΧΕΔΙΑΣΜΟΥ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΚΥΚΛΩΜΑΤΩΝ ΜΕΓΑΛΗΣ ΚΛΙΜΑΚΑΣ (VLSI-DESIGN) Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Σιουρούνη Κωνσταντίνου του Αναστασίου Αριθμός Μητρώου: 6087 Θέμα «Τεχνικές Μεταγλωττιστών για Βελτιστοποίηση Ειδικών Πυρήνων Λογισμικού» Επιβλέπων Επίκουρος Καθηγητής Γεώργιος Θεοδωρίδης Αριθμός Διπλωματικής Εργασίας: Πάτρα, Μάρτιος 011-1-

--

ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «Τεχνικές Μεταγλωττιστών για Βελτιστοποίηση Ειδικών Πυρήνων Λογισμικού» Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σιουρούνη Κωνσταντίνου του Αναστασίου Αριθμός Μητρώου: 6087 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις.../../ Ο Επιβλέπων Ο Διευθυντής του Τομέα Επίκουρος Καθηγητής Γεώργιος Θεοδωρίδης Καθηγητής Ευθύμιος Χούσος -3-

-4-

Αριθμός Διπλωματικής Εργασίας: Θέμα: «Τεχνικές Μεταγλωττιστών για Βελτιστοποίηση Ειδικών Πυρήνων Λογισμικού» Φοιτητής: Κωνσταντίνος Σιουρούνης Επιβλέπων: Γεώργιος Θεοδωρίδης Περίληψη Με την ολοένα και αυξανόμενη τάση για ενσωματωμένα (embedded) και φορητά υπολογιστικά συστήματα της σύγχρονης εποχής, έχει δημιουργηθεί ένας ολόκληρος επιστημονικός κλάδος γύρω από τεχνικές βελτιστοποίησης μεταγλωττιστών για ειδικούς πυρήνες λογισμικού που εκτελούνται στα συστήματα αυτά. Κάνοντας χρήση τεχνικών βελτιστοποίησης τα κέρδη είναι πολλαπλά. Καταρχήν οι πυρήνες μπορούν να ολοκληρώσουν το χρόνο που απαιτείται για να ολοκληρωθεί η εκτέλεση τους σε πολύ μικρότερο διάστημα, έχοντας πολύ μικρότερες απαιτήσεις μνήμης. Επίσης μειώνονται οι ανάγκες τους σε επεξεργαστική ισχύ κάτι το οποίο άμεσα οδηγεί στη μείωση κατανάλωσης ενέργειας, στην αύξηση αυτονομίας τους σε περίπτωση που μιλάμε για φορητά συστήματα και στις ανάγκες για ψύξη των συστημάτων αυτών καθώς εκλύονται πολύ μικρότερα ποσά ενέργειας. Έτσι λοιπόν επιτυγχάνονται κέρδη σε πολλούς τομείς (χρόνος εκτέλεσης, ανάγκες μνήμης, αυτονομία, έκλυση θερμότητας) καθιστώντας τον κλάδο των βελτιστοποιήσεων ένα από τους πιο ταχέως αναπτυσσόμενους κλάδους. Εκτός όμως από την σκοπιά της αύξησης επιδόσεων, στην περίπτωση των ενσωματωμένων συστημάτων πραγματικού χρόνου (real time operations) που όταν ξεπερνιούνται οι διορίες χρόνου εκτέλεσης οδηγούνται σε υποβαθμισμένες επιδόσεις (soft real time) και ειδικότερα στην περίπτωση αυτών που οδηγούνται σε αποτυχία όταν ξεπερνιούνται οι διορίες αυτές (hard real time operations), οι τεχνικές αυτές αποτελούν ουσιαστικά μονόδρομο για την υλοποίηση των συστημάτων αυτών σε λογικά επίπεδα κόστους. Η διαδικασία όμως της ανάπτυξης βελτιστοποιήσεων δεν είναι αρκετή καθώς είναι εξίσου σημαντικό το κατά πόσο οι βελτιστοποιήσεις αυτές -5-

ταιριάζουν στην εκάστοτε αρχιτεκτονική του συστήματος. Εάν δε ληφθεί υπόψη η αρχιτεκτονική του συστήματος που θα εφαρμοστούν, τότε οι βελτιστοποιήσεις μπορούν να οδηγήσουν σε αντίθετα αποτελέσματα υποβαθμίζοντας την απόδοση του συστήματος. Στην παρούσα διπλωματική εργασία βελτιστοποιείται η διαδικασία πολλαπλασιασμού διανύσματος με πίνακα toeplitz. Κατά την εκπόνηση της αναπτύχθηκε πληθώρα χρονοπρογραμματισμών που στοχεύουν στην βελτιστοποίηση της διαδικασίας αυτής. Μετά από μια εις βάθους μελέτη της ιεραρχίας μνήμης και των τεχνικών βελτιστοποίησης που προσφέρονται για αποδοτικότερη εκμετάλλευσή της, αλλά και των κυριότερων τεχνικών βελτιστοποίησης μεταγλωττιστών, παρουσιάζονται οι κυριότεροι χρονοπρογραμματισμοί, από όσους αναπτύχθηκαν, με τον κάθε ένα να προσφέρει κέρδος σε διαφορετικές αρχιτεκτονικές συστημάτων. Κατά αυτό τον τρόπο αναπτύσσεται ένα εργαλείο που δέχεται σαν είσοδο την αρχιτεκτονική του συστήματος πάνω στο οποίο πρόκειται να γίνει βελτιστοποίηση του εν λόγω πυρήνα, αποκλείονται αρχικά οι χρονοπρογραμματισμοί που δεν είναι κατάλληλοι για την συγκεκριμένη αρχιτεκτονική, ενώ για τους υποψήφιους πιο αποδοτικούς γίνεται εξερεύνηση ούτως ώστε να επιλεγεί ο αποδοτικότερος. -6-

Πρόλογος Θα ήθελα να ευχαριστήσω τον Επίκουρο Καθηγητή κ. Γεώργιο Θεοδωρίδη για την πολύτιμη καθοδήγησή του κατά την εκπόνηση της διπλωματικής εργασίας. Επίσης θα ήθελα να ευχαριστήσω τον Kαθηγητή κ. Κωνσταντίνο Γκούτη του οποίου τα μαθήματα μου γέννησαν ουσιαστικά το ενδιαφέρον για τον κλάδο του Σχεδιασμού Ολοκληρωμένων Κυκλωμάτων. Τέλος τον κ. Βασίλειο Κελεφούρα υποψήφιο Διδάκτορα για τη συνεχή βοήθεια και καθοδήγησή του σε κάθε δυσκολία που αντιμετώπισα. Πάτρα, Μάρτιος 011-7-

-8-

Περιεχόμενα 1 Εισαγωγή...13 Ιεραρχία Μνήμης...15.1 Εισαγωγή... 15. Κρυφή Μνήμη... 17..1 Περιγραφή... 17.. Πολιτική Τοποθέτησης... 18...1 Κρυφές Μνήμες Άμεσης Αντικατάστασης... 18... Κρυφές Μνήμες Πλήρους Συσχέτισης... 19...3 Κρυφές Μνήμες Συνολοσυσχέτισης Κ-δρόμων... 0..3 Πολιτική Αντικατάστασης.....4 Τακτική Ενημέρωσης Επόμενου Επιπέδου Ιεραρχίας Μνήμης... 3.3 Απόδοση Κρυφών Μνημών... 4.3.1 Βελτίωση της Απόδοσης Κρυφών Μνημών... 6.3.1.1 Μείωση της Ποινής Αστοχίας... 6.3.1. Μείωση του Ρυθμού Αστοχίας... 7.3.1..1 Μεγαλύτερο Μέγεθος Μπλοκ... 8.3.1.. Υψηλότερος Βαθμός Συνολοσυσχέτισης... 8.4 Κύρια Μνήμη... 9.5 Τεχνολογίες Μνημών... 30.5.1 Στατικές Μνήμες... 31.5. Δυναμικές Μνήμες... 3.5.3 Τεχνολογίες Μνήμης Ενσωματωμένων Συστημάτων... 3 3 Τεχνικές Μεταγλωττιστών για Βελτιστοποίηση Προγραμμάτων... 33 3.1 Εισαγωγή... 33 3.1.1 Μεταγλωττιστές... 33 3.1. Εξαρτήσεις... 36 3.1..1 Δεδομένων... 36 3.1.. Control... 37 3.1..3 Structural... 37 3.1.3 Παραλληλισμός Επιπέδου Εντολής... 38 3. Μετασχηματισμοί... 38 3..1 Μετασχηματισμοί Βρόγχων... 38-9-

3..1.1 Εναλλαγή Βρόγχων (Loop permutation interchange)... 39 3..1. Συγχώνευση Βρόγχων (Loop merge, fusion)... 39 3..1.3 Αλλαγή Βάσης Βοηθητικών Μεταβλητών Βρόγχου (Loop bump)... 40 3..1.4 Επέκταση Βρόγχων (Loop extend)... 40 3..1.5 Συρρίκνωση Βρόγχων (Loop peeling)... 41 3..1.6 Διαχωρισμός Βρόγχων (Loop fission, distribution)... 41 3..1.7 Αντιστροφή Βρόγχων (Loop reversal)...4 3..1.8 Κατάτμηση σε Μπλοκ (Τiling, blocking)...4 3..1.8.1 Ενός Επιπέδου Tiling (1 level of blocks)... 43 3..1.8. Πολλαπλών Επιπέδων Tiling (multiple level of blocks)... 44 3..1.9 Ξεδιπλώνοντας Διαδοχικές Επαναλήψεις Βρόγχων (loop unrolling)... 45 3..1.10 Αφαίρεση Μεταβλητών μη Εξαρτώμενων από το Βρόγχο (invariant code motion)... 45 3..1.11 Ξεδιπλώνοντας Δίκλαδες Συναρτήσεις (loop unswitching)... 46 3..1.1 Βαθμωτή Επέκταση Μεταβλητών (scalar replacement)... 46 3..1.13 Αφαίρεση τμήματος κώδικα που δεν χρησιμοποιείται κατά την εκτέλεση (unreachable, dead code elimination)... 46 3..1.14 Μείωση Απαιτητικών Πράξεων... 46 4 Βελτιστοποίηση Αλγορίθμου Πολλαπλασιασμού Διανύσματος με Πίνακα Toeplitz. 49 4.1 Πολλαπλασιασμός Πίνακα Με Διάνυσμα... 49 4.1.1 Ειδική Περίπτωση Πολλαπλασιασμός Διανύσματος με Πίνακα Toeplitz... 50 4. Βελτιστοποίηση Πολλαπλασιασμού Διανύσματος με Πίνακα Toeplitz... 5 4..1 Χρονοπρογραμματισμός Μείωσης Μεγέθους του Πίνακα... 53 4.. Χρονοπρογραμματισμός για Μείωση των Πράξεων... 55 4...1 Εισαγωγή... 55 4... Μαθηματικό Μοντέλο... 56 4...1 Μέγεθος Πίνακα Ίσο με Περιττό Αριθμό... 57 4... Μέγεθος Πίνακα Ίσο με Άρτιο Αριθμό... 58 4...3 Σύγκριση των Περιπτώσεων... 59 4...3 Βελτιστοποίηση Πράξεων... 60 4...3.1 Δισδιάστατος Πίνακας Α Μεγέθους ΝxN... 60 4...3. Μονοδιάστατος Πίνακας Α Μεγέθους Ν... 63 4..3 Χρονοπρογραμματισμός για Μείωση Μετακινήσεων στη Μνήμη... 64 4..3.1 Εισαγωγή... 64 4..3. Περιγραφή Υλοποίησης ανά Μια Διαγώνιο... 65 4..3.3 Περιγραφή Υλοποίησης ανά 3 Διαγωνίους... 67 4..4 Χρονοπρογραμματισμός για τη Μείωση των Μετακινήσεων καθώς και των Πράξεων Ταυτόχρονα... 71 4..5 Χρονοπρογραμματισμός για τη Μείωση των Μετακινήσεων στην Γενική Περίπτωση Πίνακα... 75 4.3 Εφαρμογή Κατάτμησης στους Χρονοπρογραμματισμούς... 77 4.4 Σύγκριση Βελτιστοποιήσεων... 79 5 Πειραματικά Αποτελέσματα Χρονοπρογραμματισμών... 85 5.1 Εισαγωγή... 85 5. Ο εξομοιωτής Simplescalar... 85-10-

5.3 Πειραματικά Αποτελέσματα... 87 5.3.1 Σύγκριση Χρονοπρογραμματισμών των οποίων το Μέγεθος των Δεδομένων τους είναι Μικρότερο από το Μέγεθος του Πρώτου Επιπέδου Κρυφής Μνήμης... 87 5.3. Σύγκριση Χρονοπρογραμματισμών των οποίων το Μέγεθος των Δεδομένων τους είναι Μικρότερο από το Μέγεθος του Δεύτερου Επιπέδου Κρυφής Μνήμης... 91 5.3.3 Επίπτωση της Κατάτμησης στην Απόδοση των Χρονοπρογραμματισμών των οποίων το Μέγεθος των Δεδομένων τους είναι Μεγαλύτερο Οποιοδήποτε Επίπεδο Κρυφής Μνήμης... 95 5.3.3.1 Σύγκριση των Χρονοπρογραμματισμών Χρήση Ενός Επιπέδου Tiling... 95 5.3.3. Απόδοση των Χρονοπρογραμματισμών Χρήση Πολλαπλών Επιπέδων Tiling... 98 5.3.4 Επίπτωση του Μεγέθους της Κρυφής Μνήμης Δεδομένων στην Απόδοση των Χρονοπρογραμματισμών... 99 5.3.5 Επίπτωση του Μεγέθους Κρυφής Μνήμης Εντολών στην Απόδοση των Χρονοπρογραμματισμών...105 6 Παράρτημα...107 Κώδικας Χρονοπρογραμματισμού Opt-1...108 Κώδικας Χρονοπρογραμματισμού Opt-...109 Κώδικας Χρονοπρογραμματισμού Opt-3...110 Κώδικας Χρονοπρογραμματισμού Opt-4...11 Κώδικας Χρονοπρογραμματισμού Opt-5...115 Παραλλαγή του Opt-4 για 4 Στοιχεία ανά Διαγώνιο...116 7 Βιβλιογραφία...11-11-

-1-

Κεφάλαιο 1 Εισαγωγή Καθώς η τάση των τελευταίων χρόνων στρέφεται όλο και περισσότερο σε τεχνολογίες φορητών συσκευών και αφοσιωμένων σε συγκεκριμένους σκοπούς συστημάτων τόσο πιο πολύ αυξάνεται η ανάγκη για βελτιστοποίηση των διαδικασιών που τρέχουν ούτως ώστε να απαιτούν λιγότερη μνήμη, επεξεργαστική ισχύ και ενέργεια. Κατά αυτό τον τρόπο δεν αυξάνεται μόνο, η αυτονομία των συσκευών αυτών, αλλά ταυτόχρονα μειώνεται και η παραγωγή θερμότητας τους, επομένως μειώνονται οι ανάγκες ψύξης αυτών. Έτσι λοιπόν η εφαρμογή βελτιστοποιήσεων για τα ενσωματωμένα συστήματα (embedded systems) είναι ένα πεδίο πολλά υποσχόμενο για ανάπτυξη βελτιστοποιήσεων. Στην περίπτωση των ενσωματωμένων συστημάτων πραγματικού χρόνου (real time operations) όπου όταν ξεπεραστούν οι διορίες χρόνου οδηγούνται σε υποβαθμισμένες επιδόσεις (soft real time) αλλά ειδικά στην περίπτωση αυτών που οδηγούν σε αποτυχία αν ξεπεράσουν τις διορίες εκτέλεσης (hard real time operations) η βελτιστοποίηση αποτελεί μονόδρομο για την υλοποίησή τους σε λογικά επίπεδα κόστους. Όμως οι βελτιστοποιήσεις είναι εξίσου σημαντικές, όχι μόνο για τα συστήματα ειδικού σκοπού, αλλά και γενικού σκοπού. Ειδικά με την αγορά των φορητών υπολογιστών να αποτελεί μια από τις πιο ταχέως αναπτυσσόμενες αγορές, η εφαρμογή βελτιστοποιήσεων σε αυτούς έχει μεγάλο πεδίο εφαρμογής. Παρότι η τεχνολογία των επεξεργαστών έχει φτάσει σε πάρα πολύ υψηλό επίπεδο, ακολουθώντας πιστά τον νόμο του Moore και διπλασιάζοντας την ικανότητα ολοκλήρωσης τρανζίστορ σε τσιπ κάθε περίπου δύο χρόνια δεν ισχύει το ίδιο για τις τεχνολογίες μνήμης. Έτσι με την πάροδο των χρόνων έχει δημιουργηθεί ένα χάσμα μεταξύ των επεξεργαστών και των μνημών γνωστό και ως memory wall. Ακόμη δηλαδή και στην περίπτωση των επιτραπέζιων υπολογιστικών συστημάτων αλλά και εξυπηρετητών που χαρακτηρίζονται από πολύ μεγάλη ικανότητα σε υπολογιστική ισχύ υπάρχει, ανάγκη για εφαρμογή βελτιστοποιήσεων. Καθώς είναι οικονομικά ανέφικτο να χρησιμοποιηθεί γλώσσα χαμηλού επιπέδου, η συντριπτική πλειοψηφία των προγραμμάτων γράφεται σε γλώσσες υψηλού επιπέδου και οι μεταγλωττιστές αναλαμβάνουν την μετατροπή του κώδικα τους σε γλώσσα μηχανής. Αυτό είναι και ένα από τα πιο κρίσιμα βήματα για την απόδοση αυτών των συστημάτων, καθώς σε αυτό ακριβώς το σημείο αποφασίζεται πόσο γρήγορα μπορεί να τρέξει ο εκάστοτε κώδικας. Εμφανίζεται λοιπόν επιτακτική η ανάγκη για συγγραφή κώδικα τέτοιου ώστε να μπορεί να επιτευχθεί πηγαίος κώδικας όσο πιο αποδοτικός γίνεται, και με όπου είναι αυτό δυνατό μείωση απαιτήσεων σε μέγεθος, μνήμη, αριθμό μετακινήσεων, αριθμό πράξεων και εξαρτήσεων ούτως ώστε να επιτρέπεται η παράλληλη εκτέλεση πράξεων. Με τη βοήθεια τεχνικών βελτιστοποίησης μεταφραστών μπορεί να επιτευχθεί κάτι τέτοιο σε πολύ μεγάλο βαθμό. -13-

Στην παρούσα διπλωματική αναπτύχθηκε ένα εργαλείο για βελτιστοποίηση πυρήνων πολλαπλασιασμού διανυσμάτων με πίνακες toeplitz. Είναι ευρέως γνωστό πως αυτή η διεργασία αποτελεί μια από τις πιο χρονοβόρες και απαιτητικές διαδικασίες που μπορεί να συναντηθούν στα υπολογιστικά συστήματα. Υπάρχει λοιπόν μεγάλη ανάγκη για ένα εργαλείο που θα βελτιώνει αυτή τη διαδικασία τόσο σε ανάγκες μνήμης όσο και σε χρόνο εκτέλεσης. Κατά τη εκπόνηση της διπλωματικής εργασίας υλοποιήθηκε πληθώρα χρονοπρογραμματισμών που επιτυγχάνουν βελτιώσεις, εκ των οποίων 5 ήταν οι πιο σημαντικοί και τελικώς παρουσιάζονται. Το κείμενο οργανώνεται με τον εξής τρόπο: στα πρώτα κεφάλαια δίνεται το θεωρητικό υπόβαθρο για την υλοποίηση του εργαλείου ενώ στα υπόλοιπα παρουσιάζονται οι χρονοπρογραμματισμοί και τελικώς πληθώρα μετρήσεων με τα αντίστοιχα συμπεράσματα. Στο δεύτερο κεφάλαιο παρουσιάζεται η ιεραρχία της μνήμης με όλες τις λειτουργίες της αναλυτικώς αλλά και τρόποι βελτιστοποίησης της απόδοσης της. Στο τρίτο κεφάλαιο συνοψίζεται η θεωρία γύρω από τους μεταγλωττιστές και τη θεωρία τεχνικών βελτιστοποίησης μεταγλωττιστών καθώς και οι πιο σημαντικές εφαρμογές τους. Έχοντας πλέον καλυφθεί το απαραίτητο πεδίο γνώσεων, στο τέταρτο κεφάλαιο παρουσιάζονται αρχικώς οι διαδικασίες πολλαπλασιασμού διανυσμάτων με πίνακες και οι πίνακες toeplitz συγκεκριμένα. Ύστερα ακολουθεί αναλυτική περιγραφή των χρονοπρογραμματισμών που προτείνονται και τέλος συγκρίνονται μεταξύ τους. Στο πέμπτο κεφάλαιο ακολουθούν μετρήσεις για χαρακτηριστικές αρχιτεκτονικές υλικού με σύγκριση της απόδοσης των χρονοπρογραμματισμών, ούτως ώστε να υλοποιηθεί ένα εργαλείο το οποίο δέχεται σαν είσοδο την αρχιτεκτονική του συστήματος που θα εφαρμοστεί ο πυρήνας, θα αποκλείονται οι χρονοπρογραμματισμοί που δεν ταιριάζουν με την εκάστοτε αρχιτεκτονική και τέλος για τους υποψήφιους πιο αποδοτικούς θα γίνεται εξερεύνηση ούτως ώστε να επιλεγεί ο πιο αποδοτικός. Τέλος ακολουθεί παράρτημα με εκδοχές των χρονοπρογραμματισμών και η βιβλιογραφία. -14-

Κεφάλαιο Ιεραρχία Μνήμης.1 Εισαγωγή Ιδανικά κάποιος θα επιθυμούσε μια απεριόριστα μεγάλης χωρητικότητας μνήμη τέτοια που οποιαδήποτε συγκεκριμένη λέξη θα μπορούσε να είναι άμεσα διαθέσιμη. Ο κύριος σκοπός στο σχεδιασμό ενός συστήματος μνήμης είναι να προσφέρει επαρκή χωρητικότητα αποθήκευσης, διατηρώντας ένα αποδεκτό επίπεδο μέσης απόδοσης και επίσης χαμηλό μέσο κόστος ανά δυαδικό ψηφίο. Αναγνωρίζεται λοιπόν η ανάγκη κατασκευής μιας ιεραρχίας μνημών, καθεμία από τις οποίες θα έχει μεγαλύτερη χωρητικότητα από την προηγούμενη, αλλά είναι λιγότερο γρήγορα προσπελάσιμη. Ο σκοπός αυτός μπορεί να επιτευχθεί με τη χρησιμοποίηση ενός συνδυασμού από τις ακόλουθες τεχνικές. Κατ' αρχήν μπορεί να χρησιμοποιηθεί ένας αριθμό από διαφορετικές μονάδες μνήμης με διαφορετικούς λόγους κόστους/απόδοσης, που οργανώνονται κατά τέτοιο τρόπο ώστε να προσφέρουν υψηλή μέση απόδοση με χαμηλό μέσο κόστος. Οι μονάδες μνήμης σ αυτή την περίπτωση σχηματίζουν μια ιεραρχία, που ονομάζεται ιεραρχία μνήμης. Ακόμα μπορεί να πραγματοποιηθεί με την ανάπτυξη αυτόματων μεθόδων κατανομής του χώρου αποθήκευσης για να γίνει πιο αποδοτική χρήση του διαθέσιμου χώρου και η ανάπτυξη ιδεατής μνήμης (virtual memory) για να απελευθερωθεί ο χρήστης από τη διαχείριση της μνήμης και να γίνουν τα προγράμματα ανεξάρτητα από τη διαμόρφωση της φυσικής μνήμης. Και τέλος η παρέχονται προστατευτικοί μηχανισμοί για να εμποδισθεί κάποιο πρόγραμμα, που δεν έχει το δικαίωμα, να προσπελάσει ή να τροποποιήσει αποθηκευμένες πληροφορίες που ανήκουν σ άλλο πρόγραμμα. Η αρχή της τοπικότητας υπαινίσσεται πως τα προγράμματα δεν προσπελαύνουν όλο τον κώδικα και τα δεδομένα τους ομοιόμορφα (έχει παρατηρηθεί μάλιστα πως η πλειονότητα τους αφιερώνει το 90% του χρόνου μόλις στο 10% αυτών ). Αυτή η αρχή σε συνδυασμό με την οδηγία ότι το μικρότερο υλικό είναι γρηγορότερο οδήγησαν σε ιεραρχίες βασισμένες σε μνήμες διαφορετικών ταχυτήτων και μεγεθών. Παρακάτω (Σχ..1) αποτυπώνεται μια πολυεπίπεδη ιεραρχία μνήμης, συμπεριλαμβανομένων τυπικών μεγεθών και ταχυτήτων προσπέλασης. Εφόσον λοιπόν τίθεται πάντα το θέμα της οικονομικής βιωσιμότητας των συστημάτων που σχεδιάζονται και εφόσον οι γρήγορες μνήμες έχουν και το μεγαλύτερο κόστος, η ιεραρχία των μνήμων οργανώνεται σε πολλαπλά επίπεδα όπου το κάθε ένα είναι μικρότερο γρηγορότερο και ακριβότερο ανά byte από το προηγούμενό του. Έτσι λοιπόν επιτυγχάνεται ένα σύστημα μνήμης με κόστος αντίστοιχο του φθηνότερου επιπέδου μνήμης -15-

και ταχύτητα αντίστοιχη του ταχύτερου επιπέδου. Η σημασία της ιεραρχίας μνήμης έχει αυξηθεί με την πάροδο του χρόνου καθώς αυξάνεται όλο και περισσότερο η απόδοση των επεξεργαστών. Το χάσμα στις επιδόσεις μεταξύ επεξεργαστών και μνημών ξεκινάει μετά την δεκαετία '90 όπου οι επεξεργαστές και οι μνήμες των υπολογιστών χρονίζονταν σε παραπλήσιες ή έστω συγκρίσιμες συχνότητες λειτουργίας. Ωστόσο από το 1990 και μετά άρχισε η σημαντική αύξηση στις επιδόσεις των επεξεργαστών η οποία ακολουθεί πιστά από τότε το νόμο του Moore (ο αριθμός των τρανζίστορς σε ένα μικροεπεξεργαστή διπλασιάζεται κάθε περίπου δύο χρόνια). Παράλληλα με την αύξηση των τρανζίστορ τους λοιπόν ήρθε και η ραγδαία αύξηση της συχνότητας λειτουργίας των επεξεργαστών. Σχ.1- Χάσμα επιδόσεων μεταξύ επεξεργαστών και μνήμης Ως αποτέλεσμα οι επιδόσεις των επεξεργαστών αυξάνονταν με ρυθμό 60% ετησίως, ενώ οι επιδόσεις των Μνημών με μόλις 7%. Το σχήμα. παρουσιάζει τις εκτιμήσεις απόδοσης KME έναντι της βελτίωσης της απόδοσης σε λειτουργία στο χρόνο προσπέλασης της κύριας μνήμης. Αυτό λοιπόν οδήγησε στο χάσμα μεταξύ μνημών και επεξεργαστών όπου οι επεξεργαστές είναι πολύ πιο γρήγοροι από τις μνήμες με αποτέλεσμα να περνούν την περισσότερη ώρα τους σε αδράνεια εν αναμονή των δεδομένων από την μνήμη. Συνεπώς η ταχύτητα υπολογισμών του επεξεργαστή ήταν καταδικασμένη να μην αξιοποιείται (καθυστέρηση latency) και οι μνήμες επέβαλαν την δική τους ταχύτητα σε ολόκληρο το υπολογιστικό σύστημα. Η λύση ήρθε με την αλλαγή της ιεραρχίας της μνήμης στους υπολογιστές, και την προσθήκη των Κρυφών Μνημών, ή όπως είναι ευρύτερα γνωστές, μνήμες Cache. -16-

Σχ. Ιεραρχία Μνήμης. Κρυφή Μνήμη Η κρυφή μνήμη Cache αποτελεί το πιο κοντινό επίπεδο μνήμης, μετά το αρχείο καταχωρητών, βρίσκεται μέσα στο ολοκληρωμένο κύκλωμα του επεξεργαστή και βασίζεται σε ένα γενικό χαρακτηριστικό όλων των Προγραμμάτων, την τοπικότητα της αναφοράς (Locality of Reference). Δηλαδή, τα Προγράμματα τείνουν να χρησιμοποιούν, μόνο ένα μικρό τμήμα του χώρου διευθύνσεων της Μνήμης, σε οποιαδήποτε δεδομένη στιγμή της εκτέλεσης τους. Αυτό το μικρό τμήμα διευθύνσεων και τα περιεχόμενά του, είτε πρόκειται για εντολές που εκτελεί το Πρόγραμμα ή για τα δεδομένα που απαιτεί για τους υπολογισμούς του, οφείλει να βρίσκεται ιεραρχικά κοντά στον Επεξεργαστή ανά πάσα στιγμή. Από την τοπικότητα της Αναφοράς, προκύπτουν 3 παράγωγες έννοιες, που παίζουν καθοριστικό ρόλο στην διαμόρφωση της λογικής λειτουργίας της Cache : έχει το ρόλο της εκμετάλλευσης της μνήμης για επαναχρησιμοποίηση στοιχείων που συναντώνται συχνά, βάση και της αρχής της τοπικότητας. Η πρώτη είναι η έννοια της χρονικής τοπικότητας (Temporal Locality), κατα την οποία μια διεύθυνση Μνήμης, στην οποία υπήρξε πρόσβαση, είναι πολύ πιθανό να ξαναχρησιμοποιηθεί στο άμεσο μέλλον. Η δεύτερη είναι η έννοια της χωρικής τοπικότητας (Spatial Locality), σύμφωνα με την οποία, αν χρησιμοποιηθεί μια διεύθυνση μνήμης, τότε είναι πολύ πιθανό να χρησιμοποιηθούν και οι γειτονικές της διευθύνσεις, στο άμεσο μέλλον. Τέλος η έννοια της διαδοχικότητας (Sequential Locality), όπου είναι πολύ πιθανό ότι η αμέσως επόμενη πρόσβαση μνήμης θα γίνει σε διαδοχική διεύθυνση της θέσης μνήμης που χρησιμοποιείται στην παρούσα πρόσβαση...1 Περιγραφή Η κρυφή μνήμη αποτελείται από γραμμές (Cache Lines). Κάθε γραμμή περιέχει ένα μπλοκ (block). Όταν ο επεξεργαστής ζητήσει να διαβάσει μια λέξη (word) που βρίσκεται στην μνήμη, τότε το μπλοκ της μνήμης που την περιέχει μεταφέρεται ολόκληρο σε μια γραμμή. Οι κρυφές μνήμες έχουν μια ετικέτα διεύθυνσης σε κάθε πλαίσιο μπλόκ η οποία δίνει τη διεύθυνση του μπλοκ. Η ετικέτα κάθε γραμμής κρυφής μνήμης που θα μπορούσε να περιέχει την επιθυμητή πληροφορία ελέγχεται αν ταιριάζει με τη διεύθυνση του μπλοκ από την ΚΜΕ. Ως κανόνας, όλες οι πιθανές ετικέτες ελέγχονται παράλληλα γιατί η ταχύτητα είναι κρίσιμη υπόθεση. Η διεύθυνση της γραμμής λοιπόν χωρίζεται σε 3 πεδία, την ετικέτα η οποία ελέγχεται με την επιθυμητή διεύθυνση, το δείκτη ο οποίος υποδεικνύει -17-

το σύνολο και την μετατόπιση του μπλοκ που δείχνει ποιο ακριβώς είναι το επιθυμητό δεδομένο μέσα στο μπλοκ. Κάθε γραμμή της κρυφής μνήμης αποτελείται από την ετικέτα (Tag), το οποίο αποτελεί μοναδικό αναγνωριστικό για το ποιο μπλόκ καταλαμβάνει τον χώρο δεδομένων της γραμμής, και η τιμή της προκύπτει από ένα τμήμα της διεύθυνσης του μπλοκ στην μνήμη, τα δεδομένα (Data Block) που αντιγράφονται από την κύρια μνήμη και τα bit ελέγχου (Control Bits). Τα bit ελέγχου αφορούν την κατάσταση των δεδομένων της γραμμής. Τα τρία πιο βασικά από αυτά είναι το βρώμικο bit (Dirty Bit), το οποίο δείχνει αν η γραμμή έχει έγκυρα δεδομένα, το έγκυρο bit (Valid Bit), το οποίο δείχνει αν τα δεδομένα της γραμμής έχουν τροποποιηθεί, από την στιγμή που μεταφέρθηκαν, και το bit διαμοιρασμού (Shared Bit), το οπίο δείχνει αν υπάρχουν αντίγραφα αυτής της γραμμής σε κάποιο άλλο επίπεδο κρυφής μνήμης... Πολιτική Τοποθέτησης (placement policy) Ο τρόπος τοποθέτησης των μπλοκ της κύριας μνήμης στην κρυφή μνήμη (placement policy) καθορίζει την οργάνωση της κρυφής μνήμης. Υπάρχουν τρεις διαφορετικοί τρόποι οργάνωσης της κρυφής μνήμης, η άμεσης αντιστοίχισης (direct mapped), η συνολοσυσχετιστική κ-δρόμων (k way set associative) και η πλήρως συσχετιστική (fully associative). Στη συνέχεια θα παρουσιαστεί κάθε μία οργάνωση, τα πλεονεκτήματα και τα μειονεκτήματά τους. Πριν όμως, θα πρέπει να τονιστεί ότι σε κάθε οργάνωση το πλήθος των λέξεων ανά πλαίσιο, όπως και το πλήθος των πλαισίων της κρυφής μνήμης και το πλήθος των μπλοκ της κύριας μνήμης είναι συνήθως δυνάμεις του δύο, διότι σε αυτή την περίπτωση η υλοποίηση του συστήματος μνήμης είναι πιο απλή. Επίσης πρέπει να σημειωθεί ότι το πλαίσιο της κρυφής μνήμης και το μπλοκ της κύριας μνήμης αποτελείται από ίσο αριθμό λέξεων....1 Κρυφές Μνήμες Άμεσης Αντιστοίχισης Στην περίπτωση αυτή κάθε μπλοκ της κύριας μνήμης μπορεί να τοποθετηθεί σε ένα συγκεκριμένο πλαίσιο της κρυφής μνήμης. Η διεύθυνση του πλαισίου της κρυφής μνήμης, στο οποίο θα τοποθετηθεί το μπλοκ της κύριας μνήμης με διεύθυνση Μ, δίνεται από το υπόλοιπο της διαίρεσης του Μ δια του πλήθους των πλαισίων της κρυφής μνήμης (ουσιαστικά είναι μια συνάρτηση κατατεμαχισμού {Hash Function). Στο Σχ.4.11 δίνεται μία κρυφή μνήμη των τεσσάρων πλαισίων και μία κύρια μνήμη των δεκαέξι μπλοκ. Προφανώς το πλήθος των πλαισίων της κρυφής μνήμης και των μπλοκ της κύριας μνήμης σε ένα πραγματικό σύστημα είναι πάρα πολύ μεγαλύτερο. Φαίνεται ότι στο πλαίσιο της κρυφής μνήμης με διεύθυνση 1 μπορεί να βρίσκεται, κάθε χρονική στιγμή, μόνο ένα από τα μπλοκ της κύριας μνήμης που το υπόλοιπο της διαίρεσης της διεύθυνσής του δια του τέσσερα ισούται με ένα, δηλαδή ένα από τα μπλοκ με διευθύνσεις 1, 5, 9 και 13. Στο παράδειγμά αυτό δεν λαμβάνεται υπ' όψιν το πλήθος των λέξεων ανά πλαίσιο, διότι αυτό δεν είναι απαραίτητο για να περιγραφεί η οργάνωση της κρυφής μνήμης. Επίσης φαίνεται στο συγκεκριμένο παράδειγμα, ότι η διεύθυνση ενός πλαισίου της κρυφής μνήμης ισούται με τα δύο λιγότερο σημαντικά δυαδικά ψηφία της διεύθυνσης των μπλοκ της κύριας μνήμης που μπορούν να τοποθετηθούν σ αυτό το πλαίσιο. Συγκεκριμένα, τα δύο λιγότερο σημαντικά δυαδικά ψηφία των διευθύνσεων 1, 5, 9 και 13 που μπορούν να τοποθετηθούν στο πλαίσιο της κρυφής μνήμης με διεύθυνση 01, στο δυαδικό, είναι το 01. Εάν τώρα υποτεθεί ότι η κύρια μνήμη αποτελείται από ν μπλοκ, όπου το μέγεθος κάθε μπλοκ είναι μ λέξεις. Τότε το μέγεθος της κύριας μνήμης είναι ν+μ λέξεις. Επίσης γίνεται η υπόθεση ότι η κρυφή μνήμη αποτελείται από κ πλαίσια, προφανώς κ<ν, όπου το μέγεθος κάθε πλαισίου είναι μ λέξεις. Τότε το μέγεθος της κρυφής μνήμης είναι κ+μ λέξεις. Στην περίπτωση αυτή -18-

κάθε διεύθυνση που παράγει ο επεξεργαστής αποτελείται από τρία πεδία που το μήκος και η σημασία τους δίνεται στο σχήμα 4.1. Διεύθυνση Μπλοκ {ν Ετικέτα {ν-κ Δείκτης {κ Απόκλιση Μπλοκ {μ Σχ..4 Μνήμη Άμεσης Τοποθέτησης... Κρυφές Μνήμες Πλήρους Συσχέτισης Στην περίπτωση αυτή κάθε μπλοκ της κύριας μνήμης μπορεί να τοποθετηθεί σε οποιοδήποτε πλαίσιο της κρυφής μνήμης. Για παράδειγμα, στο σχήμα.5 το μπλοκ της κύριας μνήμης με διεύθυνση 5 μπορεί να τοποθετηθεί σε οποιοδήποτε πλαίσιο της κρυφής μνήμης. Εάν τώρα η κύρια μνήμη αποτελείται από ν μπλοκ, όπου το μέγεθος κάθε μπλοκ είναι μ λέξεις. Τότε το μέγεθος της κύριας μνήμης είναι ν+μ λέξεις. Εάν επίσης η κρυφή μνήμη αποτελείται από κ πλαίσια, όπου προφανώς κ<ν, και όπου το μέγεθος κάθε πλαισίου είναι μ λέξεις, τότε το μέγεθος της κρυφής μνήμης είναι κ+μ λέξεις. Στην περίπτωση αυτή κάθε διεύθυνση που παράγει ο επεξεργαστής αποτελείται από δύο πεδία, που το μήκος και η σημασία τους δίνεται στο σχήμα.5. Σε κάθε θέση της πλήρως συσχετιστικής μνήμης αποθηκεύονται ένα δυαδικό ψηφίο εγκυρότητας, τα δυαδικά ψηφία της ετικέτας και τα δυαδικά ψηφία της πληροφορίας ενός μπλοκ. Κάθε θέση αυτής της μνήμης αποτελείται από δύο πεδία. Το ένα πεδίο περιέχει την πληροφορία, βάσει της οποίας θα γίνει η προσπέλαση, και το άλλο πεδίο περιέχει την πληροφορία που θέλουμε να διαβάσουμε. Στη συγκεκριμένη περίπτωση του σχήματος.5 το πεδίο της ετικέτας περιέχει την πληροφορία, βάσει της οποίας θα γίνει η προσπέλαση, και το υπόλοιπο της ίδιας θέσης της κρυφής μνήμης, δηλαδή το πεδίο του πλαισίου, περιέχει την πληροφορία που πρόκειται να προσπελαστεί. Όταν ο επεξεργαστής παράγει μία διεύθυνση για να διαβάσει την πληροφορία που είναι αποθηκευμένη στη διεύθυνση αυτή, τότε η διεύθυνση αυτή χρησιμοποιείται για να διευθυνσιοδοτηθεί η κύρια μνήμη. Την ίδια χρονική στιγμή τα δυαδικά ψηφία του πεδίου ετικέτα οδηγούνται στη συσχετιστική μνήμη και συγκρίνονται ταυτόχρονα με όλες τις ετικέτες που είναι αποθηκευμένες στη συσχετιστική μνήμη. Εάν το πεδίο της ετικέτα της διεύθυνσης που είναι ίδιο με κάποια από τις αποθηκευμένες ετικέτες και το αντίστοιχο -19-

δυαδικό ψηφίο εγκυρότητας έχει τη λογική τιμή ένα, τότε έγινε επιτυχής προσπέλαση του επιθυμητού δεδομένου. Διεύθυνση Μπλοκ {κ Απόκλιση Μπλοκ {μ Ετικέτα Σχ..5 Μνήμη Πλήρους Συσχέτισης...3 Κρυφές Μνήμες Συνολοσυσχέτισης Κ-δρόμων Στην περίπτωση αυτή η κρυφή μνήμη θεωρείται ότι αποτελείται από ομάδες των τ πλαισίων, που καλούνται σύνολα, και κάθε μπλοκ της κύριας μνήμης μπορεί να τοποθετηθεί σε οποιοδήποτε πλαίσιο ενός συγκεκριμένου συνόλου. Σε κάθε σύνολο αντιστοιχεί μία διεύθυνση. Η διεύθυνση του συνόλου της κρυφής μνήμης στο οποίο θα τοποθετηθεί το μπλοκ της κύριας μνήμης με διεύθυνση Μ, δίνεται και πάλι από το υπόλοιπο της διαίρεσης του Μ δια του πλήθους των συνόλων της κρυφής μνήμης. Σαν παράδειγμα στο σχήμα 4.1 δίνεται μία κρυφή μνήμη τεσσάρων συνόλων, όπου κάθε σύνολο αποτελείται από δύο μπλοκ, και μία κύρια μνήμη των δεκαέξι μπλοκ. Στο σύνολο με διεύθυνση ένα μπορούν να βρίσκονται το πολύ δύο από τα μπλοκ της κύριας μνήμης, που το υπόλοιπο της διαίρεσης της διεύθυνσής τους δια του τέσσερα ισούται με ένα, δηλαδή δύο από τα μπλοκ με διευθύνσεις 1, 5, 9 και 13. Στο σχήμα. παρατηρούμε ότι η διεύθυνση κάθε συνόλου της κρυφής μνήμης ισούται με τα δύο λιγότερο σημαντικά δυαδικά ψηφία της διεύθυνσης κάθε μπλοκ της κύριας μνήμης που μπορεί να τοποθετηθεί σ αυτό το πλαίσιο. Για παράδειγμα, τα δύο λιγότερο σημαντικά δυαδικά ψηφία των διευθύνσεων 1, 5, 9 και 13, που μπορούν να τοποθετηθούν στο σύνολο με διεύθυνση στο δυαδικό 01, είναι το 01. Θα διαπιστώσουμε στη συνέχεια ότι αυτό είναι πολύ σημαντικό για την υλοποίηση της κρυφής μνήμης με οργάνωση τ δρόμων συνόλου συσχέτισης. Υποθέστε ότι η κύρια μνήμη αποτελείται από ν μπλοκ, όπου το μέγεθος κάθε μπλοκ είναι μ λέξεις. Τότε το μέγεθος της κύριας μνήμης είναι ν+μ λέξεις. Υποθέστε επίσης ότι η κρυφή μνήμη αποτελείται από λ σύνολα, κάθε σύνολο περιέχει τ πλαίσια, προφανώς λ+τ<ν, και το μέγεθος κάθε -0-

πλαισίου είναι μ λέξεις. Τότε το μέγεθος της κρυφής μνήμης είναι λ + τ + μ λέξεις. Σ αυτή την περίπτωση κάθε διεύθυνση που παράγει ο επεξεργαστής θεωρούμε ότι αποτελείται από τρία πεδία, που το μήκος και η σημασία τους δίνεται στο σχήμα.6. Όταν ένα μπλοκ της κύριας μνήμης υπάρχει σε ένα πλαίσιο της κρυφής μνήμης, η ετικέτα που συνδέεται με αυτό το πλαίσιο περιέχει τα ν λ περισσότερο σημαντικά δυαδικά ψηφία της διεύθυνσης του μπλοκ στην κύρια μνήμη. Αν υποτεθεί ότι ο επεξεργαστής παράγει μία διεύθυνση για να πάρει την πληροφορία που είναι αποθηκευμένη στη διεύθυνση αυτή, τότε η διεύθυνση χρησιμοποιείται για να διευθυνσιοδοτηθεί η κύρια μνήμη. Ταυτόχρονα τα δυαδικά ψηφία του πεδίου «διεύθυνση του συνόλου στην κρυφή μνήμη» της διεύθυνσης χρησιμοποιούνται για να διευθυνσιοδοτηθούν και οι μνήμες RAM της κρυφής μνήμης. Τα δυαδικά ψηφία του πεδίου «ετικέτα» της διεύθυνσης συγκρίνονται με τις δύο ετικέτες που είναι αποθηκευμένες στη θέση καθεμίας από τις μνήμες RAM της κρυφής μνήμης που προσπελάστηκε. Εάν κάποια από τις δύο συγκρίσεις είχε θετικό αποτέλεσμα και το αντίστοιχο δυαδικό ψηφίο εγκυρότητας έχει την τιμή ένα, τότε η προσπέλαση είναι επιτυχής και τα δεδομένα μπορούν πλέον να μεταφερθούν από την μνήμη στην ΚΜΕ. Εάν δεν είναι επιτυχής δηλαδή κανένα, κανένα μπλοκ δεν περιέχει την ζητούμενη πληροφορία, προσκομίζεται από την κύρια μνήμη στην κρυφή μνήμη. Τόσο ο χρόνος προσπέλασης όσο και ο ρυθμός αποτυχιών και το κόστος υλοποίησης μίας κρυφής μνήμης με οργάνωση τ δρόμων συνόλου συσχέτισης είναι μεταξύ των αντίστοιχων μεγεθών της κρυφής μνήμης άμεσης οργάνωσης και της κρυφής μνήμης με οργάνωση πλήρους συσχέτισης, πάντα υπό την προϋπόθεση ότι τα υπόλοιπα χαρακτηριστικά είναι τα ίδια. Μπλοκ Διεύθυνσης Ετικέτα {ν-λ Δείκτης {κ Απόκλιση Μπλοκ {μ Σχ..6 Μνήμη Συνολοσυσχέτισης -δρόμων Αξίζει να σημειωθεί πως μία κρυφή μνήμη με οργάνωση τ δρόμων συνολοσυσχέτισης, όπου τ=1, έχει ένα πλαίσιο ανά σύνολο, επομένως είναι άμεσης οργάνωσης. Επίσης σε μία κρυφή μνήμη με οργάνωση τ δρόμων συνόλου συσχέτισης, διατηρώντας τη χωρητικότητά της και το μέγεθος του πλαισίου σταθερά, κάθε φορά που διπλασιάζεται η τιμή του τ, υποδιπλασιάζεται ο αριθμός των συνόλων της κρυφής μνήμης. -1-

Επομένως ελαττώνεται κατά ένα δυαδικό ψηφίο το πεδίο διεύθυνση του συνόλου στην κρυφή μνήμη της διεύθυνσης. Όταν ο αριθμός των πλαισίων ανά σύνολο γίνει ίσος με τον αριθμό των μπλοκ στην κρυφή μνήμη τότε η κρυφή μνήμη έχει οργάνωση πλήρους συσχέτισης...3 Πολιτική Αντικατάστασης (Replacement Policy) Όταν η ΚΜΕ ζητήσει κάποια πληροφορία, είτε πρόκειται για κάποιο δεδομένο ή εντολή, από την κρυφή μνήμη τότε η πρώτη ενέργεια είναι να γίνει αναζήτηση αυτού μέσα στην κρυφή μνήμη. Σε περίπτωση που αυτό δεν υπάρχει στην κρυφή μνήμη θα συμβεί μία αποτυχία (miss), και τότε το ζητούμενο δεδομένο θα πρέπει να μεταφερθεί σε αυτή, δηλαδή ένα μπλοκ της κύριας μνήμης, που περιέχει τα απαιτούμενα δεδομένα, να προσκομιστεί στην κρυφή μνήμη. Εάν η θέση της κρυφής μνήμης που πρέπει να τοποθετηθεί αυτό το μπλοκ (όπως παρουσιάστηκε στις ενότητες...1,... και...3) στην κρυφή μνήμη είναι γεμάτη, τότε το μπλοκ που βρίσκεται σε αυτή τη θέση πρέπει να αντικατασταθεί από το μπλοκ του ζητούμενου δεδομένου-εντολής. Η στρατηγική απελευθέρωσης (replacement policy) πλαισίων της κρυφής μνήμης για την προσκόμιση μπλοκ της κύριας μνήμης είναι αυτή που καθορίζει το πλαίσιο που θα αντικατασταθεί. Στην περίπτωση κρυφής μνήμης άμεσης οργάνωσης ένα μπλοκ της κύριας μνήμης μπορεί να τοποθετηθεί μόνο σε ένα πλαίσιο της κρυφής μνήμης, επομένως η στρατηγική απελευθέρωσης πλαισίων της κρυφής μνήμης για την προσκόμιση μπλοκ της κύριας μνήμης είναι άμεση και φυσικά απαιτεί το ελάχιστο υλικό για την υλοποίησή της. Στην περίπτωση κρυφής μνήμης πλήρους συσχέτισης ή συνολοσυσχέτισης κ-δρόμων, η διαδικασία περιπλέκεται επομένως και ο χρόνος εκτέλεσης της στο υλικό. Ενα μπλοκ της κύριας μνήμης μπορεί να τοποθετηθεί σε περισσότερα από ένα πλαίσια της κρυφής μνήμης, επομένως πρέπει να επιλεγεί ένα από αυτά. Υπάρχουν τρεις κύριες στρατηγικές που μπορούν να χρησιμοποιηθούν για τον προσδιορισμό του πλαισίου που πρέπει να αντικατασταθεί: Τυχαία επιλογή (Random policy). Στην περίπτωση αυτή το προς αντικατάσταση πλαίσιο επιλέγεται τυχαία. Επιλογή του μη χρησιμοποιηθέντος πρόσφατα (Least Recently Used). Η στρατηγική αυτή βασίζει την επιτυχία της στην χρονική τοπικότητα των αναφορών. Εάν τα πρόσφατα χρησιμοποιηθέντα πλαίσια είναι περισσότερο πιθανόν να χρησιμοποιηθούν στο άμεσο μέλλον, τότε λιγότερο πιθανόν είναι να χρησιμοποιηθούν αυτά που έχουν μεγάλο χρονικό διάστημα να χρησιμοποιηθούν. Για να ελαττωθεί λοιπόν η πιθανότητα να απομακρύνουμε κάποια πληροφορία που θα χρειαστεί στο άμεσο μέλλον, η εφαρμογή αυτής της στρατηγικής έχει σαν συνέπεια την αντικατάσταση εκείνου του πλαισίου που έχει να χρησιμοποιηθεί το μεγαλύτερο χρονικό διάστημα. Για να μπορεί να υλοποιηθεί αυτή η στρατηγική, ο ελεγκτής της κρυφής μνήμης κρατάει πληροφορία για τις προσπελάσεις που γίνονται σε κάθε πλαίσιο. Επιλογή του πλαισίου που προσκομίστηκε πρώτο στην κρυφή μνήμη (First In First Out). Βάσει αυτής της στρατηγικής απομακρύνεται το πλαίσιο που προσκομίστηκε πρώτο στην κρυφή μνήμη. Το πλεονέκτημα της τυχαίας επιλογής είναι η ευκολία υλοποίησής της σε υλικό. Καθώς το πλήθος των πλαισίων της κρυφής μνήμης αυξάνεται, το κόστος υλοποίησης της επιλογής του μη πρόσφατα χρησιμοποιηθέντος πλαισίου αυξάνεται. Για το λόγο αυτό υλοποιούνται συνήθως προσεγγίσεις αυτής της στρατηγικής. Ο λόγος αποτυχίας αυξάνεται όταν αντί της στρατηγικής του μη πρόσφατα χρησιμοποιηθέντος πλαισίου, χρησιμοποιηθεί η στρατηγική της τυχαίας επιλογής και ακόμη --

περισσότερο όταν χρησιμοποιηθεί η στρατηγική της επιλογής πλαισίου που προσκομίστηκε πρώτο στην κρυφή μνήμη. Οι διαφορές μικραίνουν σημαντικά καθώς η χωρητικότητα της κρυφής μνήμης αυξάνεται. Παρατίθεται πίνακας με αστοχίες της κρυφής μνήμης ανα 1000 εντολές ούτως ώστε να συγκριθούν θεωρητικά οι τρεις διαδικασίες. Μέγεθος Μνήμης -δρόμων 4-δρόμων 8-δρόμων Π.1.1 Αστοχίες Κρυφής Μνήμης ανα 1000 εντολές..4 Tακτική ενημέρωσης επόμενου επιπέδου της ιεραρχίας μνήμης Το ποσοστό των λειτουργιών εγγραφής στη μνήμη που λαμβάνουν χώρα κατά την εκτέλεση ενός προγράμματος είναι πάρα πολύ μικρότερο από το ποσοστό των λειτουργιών ανάγνωσης από τη μνήμη. Γενικά σε κάθε τέσσερις, τουλάχιστον, αναγνώσεις από τη μνήμη αντιστοιχεί μία εγγραφή. Αυτό οφείλεται, αφενός στο γεγονός ότι όλες οι προσπελάσεις εντολών είναι λειτουργίες ανάγνωσης από την μνήμη, και αφετέρου στο ότι οι περισσότερες προσπελάσεις δεδομένων είναι προσπελάσεις ανάγνωσης. Αυτό είναι κάτι που οφείλεται στο γεγονός ότι όλα τα δεδομένα διαβάζονται από τη μνήμη, ενώ τα ενδιάμεσα αποτελέσματα δεν αποθηκεύονται πάντα στη μνήμη, αλλά κρατούνται στους καταχωρητές μέχρι να υπολογιστεί το τελικό τους αποτέλεσμα, οπότε και να γίνει η εγγραφή τους στην μνήμη. Στην περίπτωση μιας ανάγνωσης από την κρυφή μνήμης, η ανάγνωση του μπλοκ της πληροφορίας μπορεί να ξεκινήσει την ίδια χρονική στιγμή που ξεκινάει και ο έλεγχος της ετικέτας, οπότε αν είναι επιτυχής η ζητούμενη πληροφορία πηγαίνει στην ΚΜΕ. Αν είναι αποτυχής δεν υπάρχει κάποιο όφελος, αλλά ούτε και ζημιά, αφού η πληροφορία που διαβάστηκε απλά αγνοείται. Στην περίπτωση μιας εγγραφής στην κρυφή μνήμη τα πράγματα είναι κάπως διαφορετικά. Η τροποποίηση ενός μπλοκ δεν μπορεί να ξεκινήσει έως ότου ελεγχθεί πλήρως η ετικέτα με επιτυχία και διαπιστωθεί ότι πράγματι το μπλοκ είναι το ζητούμενο. Επομένως, η εγγραφή πληροφορίας από την ΚΜΕ στην κρυφή μνήμη είναι πιο χρονοβόρα διαδικασία από ότι η ανάγνωση. Για την περίπτωση που το μπλοκ στο οποίο ανήκει η πληροφορία που θα γραφεί από την ΚΜΕ στη μνήμη βρίσκεται στην κρυφή μνήμη, πρέπει να επιλεγεί μεταξύ των επόμενων δύο τακτικών ενημέρωσης (updade policy): Η τακτική της διεγγραφής (write through). Η πληροφορία γράφεται ταυτόχρονα τόσο στο πλαίσιο της κρυφής μνήμης όσο και στο μπλοκ του επόμενου επιπέδου της ιεραρχικής μνήμης. Η τακτική της ετεροχρονισμένης εγγραφής (write back). Σε κάθε λέξη της κρυφής μνήμης αντιστοιχεί ένα δυαδικό ψηφίο που καλείται σημαία αλλαγής (dirty bit) και τίθεται όταν η συγκεκριμένη λέξη τροποποιηθεί. Η αντίστοιχη λέξη της κύριας μνήμης ενημερώνεται μόνο όταν το μπλοκ που περιέχει την τροποποιημένη λέξη πρόκειται να αντικατασταθεί στην κρυφή μνήμη από ένα άλλο μπλοκ της κύριας μνήμης. Για να μειωθεί η συχνότητα των ετεροχρονισμένα εγγεγραμμένων μπλοκ στην αντικατάσταση χρησιμοποιείται το bit αλλοίωσης. Αυτό το bit κατάστασης υποδεικνύει αν το μπλοκ είναι αλλοιωμένο -δηλαδή αλλαγμένο ενώ αυτό βρίσκεται μέσα στην κρυφή -3-

μνήμη- η καθαρό (μη αλλαγμένο). Αν είναι καθαρό το μπλοκ δεν εγγράφεται ετεροχρονισμένα στην περίπτωση αστοχίας αφού η ίδια η πληροφορία με αυτή της κρυφής μνήμης βρίσκεται σε χαμηλότερα επίπεδα. Τόσο η ετεροχρονισμένη εγγραφή όσο και η διεγγραφή έχουν τα δικά τους πλεονεκτήματα η καθεμία. Με την ετεροχρονισμένη εγγραφή οι εγγραφές συμβαίνουν με την ταχύτητα της κρυφής μνήμης και πολλαπλές εγγραφές μέσα σε ένα μπλοκ απαιτούν μόνο μια εγγραφή στην μνήμη χαμηλότερου επιπέδου. Αφού κάποιες εγγραφές δεν πηγαίνουν στην μνήμη η ετεροχρονισμένη εγγραφή χρησιμοποιεί λιγότερο εύρος ζώνης μνήμης κάνοντας την ετεροχρονισμένη εγγραφή ελκυστική στους πολυεπεξεργαστές οι οποίοι είναι συναντώνται συχνά στους εξυπηρετητές. Αφού η ετεροχρονισμένη εγγραφή χρησιμοποιεί το υπόλοιπο της ιεραρχίας μνήμης και τους διαύλους μνήμης λιγότερο από την διεγγραφή επίσης εξοικονομεί ισχύ όντας πιο ελκυστική για ενσωματωμένες εφαρμογές. Η διεγγραφή είναι ευκολότερη να υλοποιηθεί από ότι η ετεροχρονισμένη εγγραφή. Η κρυφή μνήμη είναι πάντα καθαρή οπότε αντίθετα με τις αστοχίες ανάγνωσης στην περίπτωση της ετεροχρονισμένης εγγραφής ποτέ δεν έχουν ως αποτέλεσμα εγγραφές στο χαμηλότερο επίπεδο. Η διεγγραφή έχει επίσης το πλεονέκτημα ότι το αμέσως επόμενο χαμηλότερο επίπεδο έχει το πιο πρόσφατο αντίγραφο των δεδομένων το οποίο απλοποιεί την συμβατότητα των δεδομένων. Η συμβατότητα των δεδομένων είναι σημαντική για τους πολυεπεξεργαστές. Οι πολυεπεξεργαστές είναι ασταθείς και χρειάζονται ετεροχρονισμένη εγγραφή για κρυφές μνήμες επεξεργαστών για να μειώσουν την κυκλοφορία μνήμης και διεγγραφή για να κρατήσουν συμβατή την κρυφή μνήμη με χαμηλότερα επίπεδα της ιεραρχίας μνήμης. Όταν η ΚΜΕ πρέπει να περιμένει να ολοκληρωθούν οι εγγραφές στη διάρκεια της διεγγραφής, η ΚΜΕ λέγεται ότι είναι σε καθυστέρηση εγγραφής. Μια συνηθισμένη βελτιστοποίηση για να μειωθούν οι καθυστερήσεις εγγραφών είναι μια μνήμη εγγραφών, η οποία επιτρέπει στον επεξεργαστή να συνεχίσει μόλις τα δεδομένα έχουν γραφεί στην μνήμη, επιτυγχάνοντας έτσι να επιτύχει παραλληλισμό στην εκτέλεση του επεξεργαστή με την ενημέρωση της μνήμης. Στην περίπτωση που τα δεδομένα δεν υπάρχουν στην κρυφή μνήμη και χρειάζονται σε μια εγγραφή υπάρχουν δύο επιλογές σε αστοχία εγγραφής: Τακτική προσκόμισης κατά την εγγραφή (write allocate ή fetch on write). Το μπλοκ προσκομίζεται από την κύρια μνήμη στην κρυφή και ακολουθείται η τακτική της άμεσης ενημέρωσης ή η τακτική της τελικής ενημέρωσης ανάλογα με το ποια από τις δύο έχει υλοποιηθεί. Τακτική μη προσκόμισης κατά την εγγραφή (no write allocate ή write around). Η πληροφορία αποθηκεύεται κατευθείαν στην κύρια μνήμη στο μπλοκ που αντιστοιχεί. Αν και οποιαδήποτε από τις τακτικές προσκόμισης ή μη προσκόμισης κατά την εγγραφή μπορεί να συνδυαστεί με οποιαδήποτε από τις τακτικές άμεσης ή τελικής ενημέρωσης, συνήθως η τακτική τελικής ενημέρωσης συνδυάζεται με την τακτική προσκόμισης κατά την εγγραφή, ελπίζοντας ότι επόμενες εγγραφές σ αυτό το μπλοκ θα γίνουν στην κρυφή μνήμη. Οι κρυφές μνήμες που υλοποιούν την τακτική της άμεσης ενημέρωσης συνήθως υλοποιούν την τακτική μη προσκόμισης κατά την εγγραφή, επειδή οι επόμενες εγγραφές σε αυτό το μπλοκ ούτως ή άλλως θα πρέπει να γίνουν και στη μνήμη..3 Απόδοση Κρυφών Μνημών Η ιεραρχία μνήμης όπως αναλύθηκε παραπάνω συνεισφέρει στην αύξηση απόδοσης της μνήμης ούτως ώστε να καλυφθεί το χάσμα επιδόσεων σε σχέση με τις ΚΜΕ. Μια μέθοδος αξιολόγησης της απόδοσης της κρυφής μνήμης είναι ο υπολογισμός του αριθμού -4-

των κύκλων, στη διάρκεια των οποίων η ΚΜΕ σταματάει περιμένοντας για μια προσπέλαση μνήμης, και οι οποίοι ονομάζονται κύκλοι καθυστέρησης μνήμης. Η απόδοση τότε είναι το γινόμενο του χρόνου κύκλου ρολογιού και του αθροίσματος των κύκλων ΚΜΕ και των κύκλων καθυστέρησης μνήμης. Ο αριθμός των κύκλων καθυστέρησης μνήμης εξαρτάται και από τον αριθμό των αστοχιών και από το κόστος ανά αστοχία, το οποίο ονομάζεται ποινή αστοχίας: Κύκλοι Ανάσχεσης Μνήμης= Αριθμός Αστοχιών Ποινή Αστοχίας επομένως Κύκλοι Ανάσχεσης Μνήμης =Αριθμός Εντολών Αριθμός Εντολών Αστοχίες Ποινή Αστοχίας = Εντολή Προσπελάσεις Μνήμης Ρυθμός Αστοχίας Ποινή Αστοχίας Εντολή Το πλεονέκτημα του τελευταίου τύπου είναι ότι τα συστατικά στοιχεία μπορούν εύκολα να μετρηθούν. Το μέτρημα του αριθμού αναφορών μνήμης ανά εντολή μπορεί να γίνει ως εξής. Κάθε εντολή απαιτεί μια προσπέλαση εντολής και είναι εύκολο να αποφασιστεί αν απαιτεί επίσης και προσπέλαση δεδομένων. Αν και η ποινή αστοχίας έχει υπολογιστεί ως μέσος όρος παρακάτω χρησιμοποιείται σαν να ήταν σταθερή. Η μνήμη πίσω από την κρυφή μνήμη μπορεί να είναι απασχολημένη τη στιγμή της αστοχίας εξαιτίας απαιτήσεων της μνήμης που έγιναν νωρίτερα ή λόγω ανανέωσης της μνήμης. Ο αριθμός των κύκλων ρολογιού επίσης ποικίλλει στις διεπαφές ανάμεσα στα διαφορετικά ρολόγια του επεξεργαστή, διαύλου και μνήμης. Γι' αυτό μόνο ένας αριθμός για ποινή αστοχίας είναι απλούστευση. Ο ρυθμός αστοχίας είναι ο λόγος του αριθμού προσπελάσεων που αστοχούν προς τον αριθμό των συνολικών προσπελάσεων. Οι ρυθμοί αστοχίας μπορούν να μετρηθούν με προσομοιωτές κρυφής μνήμης οι οποίοι παίρνουν ένα ίχνος διευθύνσεων και των αναφορών σε εντολές και δεδομένα, προσομοιώνουν τη συμπεριφορά των κρυφών μνημών για να εντοπίσουν ποιες αναφορές ευστοχούν και ποιες αστοχούν και μετά αναφέρουν τα αθροίσματα των ευστοχιών και αστοχιών. Κάποιοι μικροεπεξεργαστές παρέχουν υλικό για να μετρούν τον αριθμό των αστοχιών και των αναφορών μνήμης, γεγονός το οποίο αποτελεί έναν πολύ γρηγορότερο και ευκολότερο τρόπο για τη μέτρηση του ρυθμού αστοχίας. Ο τύπος που αναφέρθηκε πιο πάνω αποτελεί μια προσέγγιση από την στιγμή που οι ρυθμοί αστοχίας και οι ποινές αστοχίας συχνά διαφέρουν από τις αναγνώσεις και τις εγγραφές. Για αυτόν τον λόγο οι χρόνοι ρολογιού καθυστέρησης μνήμης μπορούν να οριστούν με δικούς τους όρους: τον αριθμό προσπελάσεων μνήμης ανά εντολή, την ποινή αστοχίας (σε κύκλους ρολογιού) για εγγραφές και αναγνώσεις και τον ρυθμό αστοχίας για εγγραφές και αναγνώσεις. Ο αριθμός των κύκλων ανάσχεσης μνήμης λοιπόν μπορει να προκύψει από: Κύκλοι Ανάσχεσης Μνήμης = Αριθμ.Εντολ. Αναγνώσεις Ρυθμ.Αστοχ.Αναγνώσεων Ποινή Αστοχ. Αναγνώσεων Εντολή Αριθ.Εντολ. Εγγραφές Ρυθμ.Αστοχ. Εγγραφών Ποινή Αστοχ. Εγγραφών Εντολή -5-

Είναι συνηθισμένη η απλούστευση του παραπάνω τύπου συνδυάζοντας εγγραφές και αναγνώσεις και βρίσκοντας το μέσο όρο ρυθμού αστοχίας και ποινής αστοχίας για αναγνώσεις και εγγραφές. Ο ρυθμός αστοχίας είναι μια από τις πιο σημαντικές παραμέτρους των κρυφών μνημών. Μια διαφορετική έκφραση του ρυθμού αστοχίας πέρα από τις αστοχίες ανά αναφορά μνήμης είναι η αστοχία ανά εντολή: Αστοχίες Ρυθμός Αστοχίας Προσπελάσεις Μνήμης = Εντολή Αριθμός Εντολών Το πλεονέκτημα των αστοχιών ανά εντολή είναι ότι είναι ανεξάρτητες από την υλοποίηση σε υλικό. Λόγο του διαφορετικού μεγέθους του συνόλου εντολών που χρησιμοποιεί ο κάθε επεξεργαστής, η διαφορά στο ποσοστό του πλήθους των εντολών που πραγματικά χρησιμοποιούνται μπορεί τεχνητά να μειώσει το ρυθμό αστοχίας αν μετρηθεί ως αστοχίες ανά αναφορά μνήμης παρά ανά εντολή. Το μειονέκτημα είναι ότι οι αστοχίες ανά εντολή είναι αρχιτεκτονικά εξαρτώμενες επειδή για παράδειγμα ο μέσος αριθμός των προσπελάσεων μνήμης ανά εντολή μπορεί να είναι πολύ διαφορετική ανά επεξεργαστή..3.1 Βελτίωση της απόδοσης των κρυφών μνημών Για να γίνει εκτίμηση της απόδοσης της ιεραρχίας μνήμης πρέπει λοιπόν να προσδιοριστεί ο αριθμός των αστοχιών μίας και είναι ανεξάρτητος από την ταχύτητα του υλικού. Έτσι σαν μέτρο της απόδοσης μπορεί να προσδιοριστεί ο μέσος χρόνος προσπέλασης της μνήμης. Μέσος Χρόνος Προσπέλασης= Χρόνος Ευστοχίας Ρυθμός Αστοχίας Ποινή Αστοχίας όπου ως χρόνος ευστοχίας ορίζεται ο χρόνος προσπέλασης με ευστοχία στην κρυφή μνήμης, ως ρυθμός αστοχίας το κλάσμα των προσπελάσεων κρυφής μνήμης που καταλήγουν σε αστοχία και ως ποινή αστοχίας το κόστος των αστοχιών σε κύλους..3.1.1 Μείωση Ποινής Αστοχίας Η μείωση της ποινής αστοχίας αποτελεί ένα απο τους βασικότερους τρόπους για την βελτίωση της απόδοσης των κρυφών μνημών ούτως ώστε να καλυφθεί το κενό μεταξύ της ταχύτητας των επεξεργαστών και των κύριων μνημών το οποίο όσο περνάει ο καιρός και και αυξάνεται. Ένας τρόπος για την αντιμετώπιση της ποινής αστοχίας είναι η χρήση της ιεραρχίας μνήμης σύμφωνα με την οποία μεταξύ της κύριας μνήμης και του επεξεργαστή παρεμβάλλεται μια κρυφή μνήμη. Ο λόγος είναι ότι η κρυφή μνήμη ως μικρότερη της κύριας είναι πιο γρήγορη αλλά ως μεγαλύτερη από το συνολικό άθροισμα του μεγέθους των καταχωρητών είναι πιο αργή από αυτούς. Στους σημερινούς επεξεργαστές είναι κοινή αρχή να χρησιμοποιούνται τουλάχιστον δύο επίπεδα κρυφής μνήμης μεταξύ κύριας μνήμης. Ο λόγος για αυτό είναι ότι με αυτό τον τρόπο μειώνεται η ποινή αστοχίας της κρυφής μνήμης που είναι σημαντικός παράγοντας για την απόδοση της και κατ' επέκταση και του επεξεργαστή. Αυτή η τεχνική ουσιαστικά αγνοεί την ΚΜΕ εστιάζοντας στην διεπαφή ανάμεσα στην κύρια και την κρυφή μνήμη. Ένα δίλημμα λοιπόν που δημιουργείται είναι το κατά πόσο πρέπει να γίνει η κρυφή μνήμη γρηγορότερη για να συμβαδίζει με την ταχύτητα του επεξεργαστή η να γίνει μεγαλύτερη για να ξεπεραστεί το κενό μεταξύ της ΚΜΕ και της κύριας μνήμης. Με τα επίπεδα κρυφών μνημών δίνεται λύση σε αυτό ακριβώς το ερώτημα αφού επιτυγχάνονται και τα δύο. Η κρυφή μνήμη πρώτου επιπέδου μπορεί να είναι αρκετά μικρή ώστε να ισοδυναμεί με τον χρόνο κύκλου ρολογιού της γρήγορης ΚΜΕ. -6-

Αντίθετα η κρυφή μνήμη δευτέρου επιπέδου πρέπει να είναι αρκετά μεγάλη για να συλλάβει πολλές προσπελάσεις που θα μπορούσαν να πάνε στην κύρια μνήμη μειώνοντας έτσι την αποτελεσματική ποινή αστοχίας. Αν και η ιδέα να προστεθεί άλλο ένα επίπεδο στην ιεραρχία είναι προφανής, περιπλέκει ωστόσο την ανάλυση της απόδοσης της. Η απόδοση της κρυφής μνήμης υπολογίζεται μέσω του μέσου χρόνου προσπέλασης μνήμης. Για ένα επίπεδο κρυφής μνήμης ισχύει: Μέσ.Χρόν.Προσπ.Μνήμης = Χρόν.Ευστοχ.L1 Ρυθμ.Ευστοχ.L1 Ποινή Ευστοχ.L1 Για δυο επίπεδα κρυφής μνήμης μετασχιματίζεται: Μ.Χ.Π.Μ = Χρόν.Ευστ.L1 Ρυθμ.Ευστ.L1 Xρόν.Eυστ.L Ρυθμ.Aστ.L Ποιν.Aστοχ.L Σε αυτόν τον τύπο ο ρυθμός αστοχίας του δευτέρου επιπέδου μετριέται στα εναπομείναντα από την κρυφή μνήμη πρώτου επιπέδου. Ο τοπικός ρυθμός αστοχίας είναι ο ρυθμός αστοχιών σε μια κρυφή μνήμη διαιρεμένη δια του συνολικού αριθμού των προσπελάσεων μνήμης σε αυτήν την κρυφή μνήμη. Όπως είναι λογικό για την κρυφή μνήμη πρώτου επιπέδου αυτή είναι ίση με τον ρυθμό αστοχίας L1 και για το δεύτερο επίπεδο κρυφής μνήμης είναι ο ρυθμός αστοχίας L. Ο συνολικός ρυθμός αστοχίας είναι ο αριθμός των αστοχιών στην κρυφή μνήμη διαιρεμένος με το συνολικό αριθμό των προσπελάσεων μνήμης που παράχθηκαν από την ΚΜΕ. Χρησιμοποιώντας τους πιο πάνω όρους ο συνολικός ρυθμός αστοχίας για το πρώτο επίπεδο της κρυφής μνήμης είναι ακόμα απλά μόνο ρυθμός αστοχίας L1 αλλά για την κρυφή μνήμη δευτέρου επιπέδου είναι ρυθμός αστοχίας L1*ρυθμός αστοχίας L. Αυτός ο τοπικός ρυθμός αστοχίας είναι μεγάλος για κρυφές μνήμες δευτέρου επιπέδου διότι η κρυφή μνήμη του πρώτου επιπέδου παίρνει την πιο αποδοτική από τις προσπελάσεις μνήμης. Αυτός είναι και ο λόγος που ο συνολικός ρυθμός αστοχίας είναι το πιο χρήσιμο μέτρο, δείχνει πιο ποσοστό των προσπελάσεων μνήμης που φεύγουν από την KME φτάνουν μέχρι την μνήμη..3.1. Μείωση Ρυθμού Αστοχίας Ένας άλλος τρόπος για την βελτίωση της συμπεριφοράς της κρυφής μνήμης πέρα από την μείωση της ποινής αστοχίας είναι η μείωση του ρυθμού αστοχίας. Για να προσδιοριστεί ο τρόπος που μπορεί να συμβεί κάτι τέτοιο πρέπει πρώτα να γίνει μια διερεύνηση ως προς τα είδη τον αστοχιών που μπορούν να συμβούν. Οι αστοχίες που μπορούν να συμβούν αποτελούντα λοιπόν από τρία είδη: Αναγκαστική Αστοχία ( Compulsory Miss) : Όταν ένα μπλοκ αναζητηθεί για πρώτη φορά στην Cache, αυτό αναγκαστικά δεν θα υπάρχει και έτσι γίνεται Miss. Αστοχία -Χωρητικότητας (Capacity Miss) : Προκαλούνται εξαιτίας του μεγέθους της κρυφής μνήμης. Αν η κρυφή μνήμη δεν μπορεί να χωρέσει όλα τα μπλοκ που χρειάζονται κατά την εκτέλεση του Προγράμματος, τότε κάποια μπλοκ αναγκαστικά θα αντικατασταθούν, αλλά στο μέλλον ίσως χρειαστεί να επαναφερθούν στην κρυφή μνήμη. Αστοχία Σύγκρουσης (Conflict Miss) : Προκαλούνται εξαιτίας της λογικής για αντιστοίχιση των θέσεων της κρυφής μνήμης με τις θέσεις Κύριας Μνήμης. Αν περισσότερα από 1 μπλοκ αντιστοιχούν στην ίδια θέση της κρυφής μνήμης, τότε η ζήτηση του ενός προκαλεί την αντικατάσταση του άλλου. Εφόσον έχουν αναλυθεί τα είδη των αστοχιών που μπορούν να προκύψουν γίνονται πλέον πιο εμφανή τα μέτρα που πρέπει να παρθούν ούτως ώστε να προκύψει μείωση του -7-

ρυθμού αστοχίας. Κατ' αρχήν ο απλούστερος και συνάμα αντι-οικονομικότερος τρόπος για να επιτευχθεί μείωση των αστοχιών χωρητικότητας είναι εξ' ορισμού η αύξηση της χωρητικότητας της κρυφής μνήμης. Δυστυχώς όμως κάτι τέτοιο αυξάνει τον χρόνο ευστοχίας..3.1..1 Μεγαλύτερο Μέγεθος Μπλοκ Ο απλούστερος τρόπος για να μειωθεί ο ρυθμός αστοχίας είναι να αυξηθεί το μέγεθος του μπλοκ, αφού θα μειωθούν οι υποχρεωτικές αστοχίες. Αυτή η μείωση συμβαίνει εξαιτίας των αρχών της χρονικής τοπικότητας και της χωρικής τοπικότητας. Την τελευταία εκμεταλλεύονται ιδιαιτέρως τα μεγαλύτερα μπλοκ. Παρόλα αυτά όμως αυξάνουν και την ποινή αστοχίας καθώς μειώνεται ο αριθμός των μπλοκ στην κρυφή μνήμη οπότε και αυξάνονται οι αστοχίες σύγκρουσης και χωρητικότητας. Η επιλογή του μεγέθους του μπλοκ εξαρτάται και από την καθυστέρηση και από το εύρος ζώνης της μνήμης χαμηλού επιπέδου, αφού υψηλή καθυστέρηση και εύρος ενθαρρύνουν μεγάλα μεγέθη μπλοκ εφόσον η κρυφή μνήμη παίρνει πολύ περισσότερα bytes ανά αστοχία για μικρή αύξηση στην ποινή αστοχίας. Αντιθέτως χαμηλή καθυστέρηση και εύρος ζώνης ενθαρρύνουν μικρότερα μπλοκ. Ενδεικτικά παρουσιάζεται ο πίνακας με το ρυθμό αστοχίας για διάφορα μεγέθη μπλοκ και για διάφορα μεγέθοι κτυφών μνημών. Μέγεθος Κρυφής Μνήμης Μέγεθος Μπλοκ Π.1. Ρυθμός Αστοχίας Έναντι Μεγέθους Μπλοκ.3.1.. Υψηλότερος Βαθμός Συνολοσυχέτισης Η αύξηση στο επίπεδο της συσχετιστικότητας μεταφράζεται σε πολλαπλότητα των θέσεων που μπορεί να τοποθετηθεί κάθε μπλοκ από την κύρια μνήμη στην κρυφή. Κατ' αυτό τον τρόπο τα μπλοκ όπως έχει ήδη περιγραφεί διεξοδικά δεν αντικαθίστανται βάση της διευθύνσεώς τους αλλά βάση της επαναχρησιμοποίησής τους. Δηλαδή δεδομένα που έχουν μεγάλο βαθμό επαναχρησιμοποίησης έχουν περισσότερες πιθανότητες να μην αντικατασταθούν από νέα μπλοκ. Βάση αυτής της αρχής υπάρχουν περισσότερα χρήσιμα δεδομένα στην κρυφή μνήμη όσο αυξάνεται η συνολοσυσχέτιση. Έτσι αυξάνεται η πιθανότητα αυτά τα δεδομένα τα οποία καλούνται πολλές φορές να βρεθούν ξανά στην κρυφή μνήμη και μειώνεται η αστοχία αυτών επομένως μειώνεται γενικότερα ο ρυθμός αστοχίας. Κατά την αύξηση του βαθμού συνολοσυσχέτισης ακολουθούνται κανόνες. Ο πρώτος είναι ότι η συνολοσυσχέτιση 8 δρόμων είναι για πρακτικούς σκοπούς τόσο αποτελεσματική στη μείωση των αστοχιών για μεγέθη 3-56Kbytes όσο και η πλήρους συσχέτιση, και ο δεύτερος που ονομάζεται :1, είναι ο πρακτικός κανόνας κρυφής μνήμης και υπαγορεύει ότι η μια άμεσα αντιστοιχισμένη κρυφή μνήμη μεγέθους Ν έχει περίπου τον -8-