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

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

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

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

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

Hase οδηγίες χρήσης.

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

Ασκήσεις Caches

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

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

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

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

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

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

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

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

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

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

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

Hase οδηγίες χρήσης.

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

ProcSim οδηγίες χρήσης.

Ασκήσεις Caches

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

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

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

Σειρά Ασκήσεων 11: Κρυφές Μνήμες και η Επίδοσή τους

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

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

Hase οδηγίες χρήσης.

ProcSim οδηγίες χρήσης.

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Παιχνιδάκια με τη LOGO

Spim Cache. Εισαγωγή στη χρήση του προσοµοιωτή. Αρχιτεκτονική Υπολογιστών ΙΙ. Σπύρος Ξεργιάς, ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών

1.Puzzle. ΕΠΙΜΕΛΕΙΑ: ΓΕΩΡΓΙΑ ΚΛΩΣΤΡΑΚΗ Σελίδα 1

Δημιουργώντας μια εφαρμογή ζωγραφικής. 2 ο Μάθημα

ProcSim οδηγίες χρήσης.

ΣΕΛΙ Α 1 ΚΕΦΑΛΑΙΟ 1 - ΑΡΧΙΚΑ

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

ProcSim οδηγίες χρήσης.

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

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

SIMATIC MANAGER SIMATIC MANAGER

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου

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

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

«Αβάκιο» Οδηγός χρήσης Μικρόκοσμου που αποτελείται από τις ψηφίδες Καμβάς, Χελώνα, Γλώσσα, Μεταβολέας, Χρώματα.

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

WORDPRESS. Εικόνα 1. Πατώντας στη «Σύνδεση» γράψτε το Username (όνομα χρήστη) και το Password (συνθηματικό) (εικόνα 2) που σας έδωσε ο διαχειριστής

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3

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

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

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

Με λίγα λόγια, το TCP/IP καθορίζει τον τρόπο που πακετάρονται και μεταφέρονται τα δεδομένα της σύνδεσής μας.

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

Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ ΑΠΟ EXCEL ΣΤΟ GRETL

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

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

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

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

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

Ξεκινώντας με το MIT Αρρ Inventor. 1 η Εργασία

1. Άνοιγμα Και Κλείσιμο Της Εφαρμογής Φυλλομετρητή Ιστού (Internet Explorer)

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

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

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

Ανέβασμα (upload) φωτογραφιών στο διαδίκτυο

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

PRISMA Win POS Sync Merge Replication

Η εντολή «επανέλαβε Χ»

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

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

Εργαστήριο Εφαρμοσμένης Πληροφορικής

Πώς να χρησιμοποιήσετε το Moodle

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

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

Βάσεις δεδομένων (Access)

Οδηγίες δημιουργίας αρχείου pdf

Σύντομη περιγραφή 5. Για να ξεκινήσετε 6. Οι οθόνες του προγράμματος 8. Εγκατάσταση προγράμματος 6 Δημιουργία κωδικών χρήστη 7

Ψηφιακή υπογραφή από το Πανελλήνιο Σχολικό Δίκτυο (Έκδοση, Εγκατάσταση, Χρήση, Απεγκατάσταση)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

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

ΤΟ MICROSOFT WORD XP. Ας ξεκινήσουμε λοιπόν!

Τετράδια Κιθάρας. Χρήση του PowerTab

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

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;

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

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

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

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

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

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

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

Εργαστήριο Γαλαξίες - Χάρτης του Πάλομαρ

Transcript:

SMPcache Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) 1. Βασικές ρυθμίσεις του συστήματος: δημιουργία μια δικής μας σύνθεσης συστήματος. Το SMPcache είναι ένα εργαλείο με το οποίο μπορούμε να προσομοιώσουμε τη λειτουργία μιας μνήμης cache. Μάλιστα είναι αρκετά ισχυρό, καθώς μπορεί να υποστηρίξει πολύ πιο σύνθετα συστήματα μνημών και επεξεργαστών από αυτά που μελετούμε στο παρόν μάθημα. Έχει εγκατασταθεί στα μηχανήματα του τμήματος, και επειδή μας έχει παραχωρηθεί με ειδική άδεια ειδικά για χρήση από το πανεπιστήμιο, δυστυχώς δε μπορεί να δοθεί σε κάθε φοιτητή. Ανοίγοντας το SMPcache, αρχικά βλέπουμε ένα παράθυρο όπως φαίνεται στην εικόνα: Στα αριστερά βλέπουμε τις διάφορες επιλογές, και στα δεξιά τη σύνθεση (configuration) του συστήματος που έχουμε δημιουργήσει. Τώρα που δεν έχουμε πειράξει τίποτε, έχουμε μια στάνταρ σύνθεση, την οποία και θα αλλάξουμε. Γι αυτό από την κατηγορία Configure θα επισκεφθούμε μία μία όλες τις επιλογές για να φτιάξουμε το σύστημά μας όπως το θέλουμε. Αυτά τα μενού υπάρχουν και στη γραμμή των μενού και στη γραμμή εργαλείων σαν κουμπάκια και στο αριστερό υποπαράθυρο. Για να φτιάξουμε την πρώτη δική μας σύνθεση, πάμε αρχικά στο Configure Multiprocessor: 1

Αυτό που μας ενδιαφέρει σε αυτό το σημείο είναι να βάλουμε αριθμό επεξεργαστών «1». Στη συνέχεια πάμε στο Main memory : Εδώ πρέπει να βάλουμε το πλήθος των bits ανά block (στη δική μας άσκηση είναι 4 Bytes = 32 bits), το πλήθος των λέξεων ανά block (Words by block), και το πόσα blocks θέλουμε να έχει η κεντρική μας μνήμη. (Με βάση αυτά θα προκύψουν αυτόματα και τα Block size και Main memory size). Στη συνέχεια πηγαίνουμε στο Caches : Εδώ μας ενδιαφέρει κυρίως το μέγεθος της Cache. Συγκεκριμένα βάζουμε το πόσα blocks χωράει η cache (το μέγεθος του block έχει ήδη καθοριστεί πριν, μέσω της κεντρικής μνήμης). Αν θέλουμε η κρυφή μας μνήμη να είναι προσεταιριστική (associative) επιλέγουμε Set-Associative, και από κάτω πόσα Set θέλουμε να υπάρχουν. Για τη δική μας άσκηση θα επιλέξουμε στο Mapping την επιλογή Direct γιατί θέλουμε μνήμη άμεσης απεικόνισης. (Εδώ μπορούμε επίσης να διαλέξουμε αν θέλουμε ξεχωριστή κρυφή μνήμη για εντολές και δεδομένα, καθώς και στρατηγική αντικατάστασης του block σε περίπτωση προσεταιριστικής μνήμης. Τέλος να πούμε ότι για τις πολιτικές εγγραφών, το εργαλείο μας δίνει μόνο την επιλογή Writeback ). Κάτι πολύ χρήσιμο που προφέρει το εργαλείο είναι η επιλογή να αποθηκεύσουμε τη σύνθεση που έχουμε φτιάξει. Αυτό θα μας βοηθήσει και για να μη χρειάζεται να ξανακάνουμε τις ρυθμίσεις κάθε φορά που ανοίγουμε το εργαλείο, αλλά και για να δοκιμάζουμε τις διαφορετικές συνθέσεις που μας ζητάει αυτή η άσκηση (ή πιθανόν και άλλες με τις οποίες θα θέλαμε εύκολα να πειραματιστούμε). 2

Για να το κάνουμε αυτό, αφού έχουμε τελειώσει με τις ρυθμίσεις της σύνθεσής μας, πατάμε Save configuration. Προσοχή σε ποιο φάκελο αποθηκεύονται αυτά τα αρχεία. Είναι προτιμότερο να αλλάξετε το φάκελο αυτό, να αντιστοιχεί σε κάποιο φάκελο με την άσκησή σας. Έπειτα όταν χρειαστεί μπορείτε να φορτώσετε μια σύνθεση από το Load configuration. 2. Εκτέλεση προσομοίωσης με τη χρήση αρχείων ιχνών (trace files). 2.1. Δημιουργία των αρχείων Για να πειραματιστούμε με τον τρόπο λειτουργίας του συστήματός μας, χρειαζόμαστε ένα (ή περισσότερα) αρχεία που μας δίνουν μια σειρά από προσπελάσεις στη μνήμη. Αυτά τα αρχεία συνήθως προκύπτουν από κανονικά προγράμματα, από τα οποία κρατούμε για το σκοπό μας μόνο το κομμάτι που αφορά τις προσπελάσεις του προγράμματος στη μνήμη. Ένα τέτοιο αρχείο που περιέχει τις προσπελάσεις αυτές, με κατάλληλο συντακτικό, λέγεται trace file. (Μάλιστα το εργαλείο SMPcache συνοδεύεται από μεγάλα trace files που έχουν προκύψει από γνωστά benchmarks, τόσο για απλούς (μονούς) επεξεργαστές όπως της άσκησής μας, όσο και για πολυεπεξεργαστές. Αυτά φυσικά είναι πολύ μεγάλα και πολύπλοκα για τους σκοπούς και τα μεγέθη αυτής της άσκησης.) Το εργαλείο αυτό έχει το εξής συντακτικό για ένα trace file: μια προσπέλαση μνήμης σε κάθε γραμμή. Κάθε γραμμή έχει δύο αριθμούς. Ο 1 ος αριθμός μας λέει το είδος τις προσπέλασης (0 = Instruction Fetch, 2 = Read, 3 = Write), και ο 2 ος μας λέει τη διεύθυνση μνήμης. Μιας και εμείς για να βρούμε cache misses δεν ενδιαφερόμαστε για το είδος της προσπέλασης, αρκεί σε αυτή την άσκηση να βάλουμε σε όλες τις προσπελάσεις σαν εντολή την Read. Εδώ πρέπει να προσέξουμε, γιατί το εργαλείο αυτό περιμένει διευθύνσεις word (και όχι Byte), δηλαδή το σύστημά μας δεν είναι Byteaddressable, αλλά word-addressable. Άρα για προσπελάσεις (όπως της άσκησής μας,) που δίνονται διευθύνσεις Byte για ένα σύστημα με word-size=4bytes, θα πρέπει να γίνει μετατροπή σε δ/νση Word, δηλαδή διαίρεση με το 4. Π.χ. έστω ότι έχουμε μια προσπέλαση στη μνήμη που αντιστοιχεί στο Byte 100 (όπως η πρώτη δ/νση της άσκησης 11.4). Αυτό επειδή αντιστοιχεί στο 100/4=25 ο word, θα πρέπει στο trace file να χρησιμοποιήσουμε τη διεύθυνση του word, δηλαδή (25) 10. Εδώ όμως είναι κι ένα ακόμη σημείο που θέλει προσοχή. Το εργαλείο SMPcahce περιμένει τις διευθύνσεις μνήμης στο δεκαεξαδικό, επομένως πρέπει να κάνουμε κι αυτή τη μετατροπή! Δηλαδή στο παράδειγμά μας να γράψουμε 19 (έτσι το SMPcache καταλαβαίνει 19 στο δεκαεξαδικό, αλλά πρέπει να το γράφουμε έτσι, σκέτο, ούτε 0x19 ούτε φυσικά κάτι του στυλ 19 16) Για διευκόλυνση σας δίνεται μια εντολή command line για Linux, με την οποία αν έχετε ένα αρχείο text με τις προσπελάσεις μνήμης σε Byte-addresses στο δεκαδικό, μία ανά γραμμή, σας εκτυπώνει το trace file, μετατρέποντας από δεκαδικό σε δεκαεξαδικό, και από Byte-address σε Word-address (word-size=4), ενώ βάζει και τον αριθμό 2 σε κάθε γραμμή (Read): cat myfile.txt awk '{printf "2 %x\n",$1/4}' 2.2. Εκτέλεση της προσομοίωσης Έχοντας ένα trace file, μπορούμε να ξεκινήσουμε την προσομοίωσή μας, και να πάρουμε αποτελέσματα για την τοποθέτηση των blocks, τα miss rate και hit rate κ.α. Από το Open memory traces επιλέγουμε το αρχείο με τις προσπελάσεις μνήμης που έχουμε φτιάξει. Κατά το άνοιγμα, στο δεξί-πάνω μέρος τους παραθύρου, θα δούμε την επιλογή που φαίνεται στην παρακάτω εικόνα. Εκεί θα πρέπει να επιλέξουμε το P0 (ουσιαστικά εδώ επιλέγουμε να γίνουν οι προσπελάσεις από τον επεξεργαστή P0. Θυμηθείτε ότι το εργαλείο μπορεί να υποστηρίξει προσομοίωση πολυεπεξεργαστών). 3

Στη συνέχεια για να δούμε τι θα γίνει τρέχοντας την προσομοίωση, θα πρέπει να διαλέξουμε ποιο μέρος του συστήματος θέλουμε να δούμε. Από το View evolution λοιπόν επιλέγουμε το Cache, ενώ στην αμέσως επόμενη ερώτηση στο αναδυόμενο παράθυρο επιλέγουμε Text. Αυτό που θα μας εμφανιστεί στη συνέχεια είναι το παράθυρο που βλέπετε παρακάτω: Μέσω αυτού του παραθύρου θα πάρουμε όλες τις πληροφορίες που θέλουμε. Αρχικά θα πρέπει να πατήσουμε το κουμπί Execute, με το οποίο θα ξεκινήσει η προσομοίωση, και θα γίνει και η πρώτη προσπέλαση. Στη συνέχεια για να εκτελέσουμε κι άλλες προσπελάσεις, πατάμε το κουμπί Continue. Κάθε φορά που το πατάμε, θα εκτελούνται προσπελάσεις (με βάση το trace file), τόσες όσες μας λέει η πιο κάτω επιλογή. Στη φωτογραφία έχω επιλέξει Step by Step, επομένως εκτελεί μία μία. Αν θέλω επιλέγω Complete, ώστε να τρέξει όλο το trace. Ας ασχοληθούμε τώρα με το τι άλλο βλέπουμε στο παράθυρό μας. Στο πάνω μέρος βλέπουμε το τι περιέχει η cache. Ποιο μπλοκ βρίσκεται σε ποια θέση της cache. Στο κάτω μέρος βλέπουμε μια εξήγηση της μετακίνησης του μπλοκ που έγινε. Αν από τα κουμπιά που βρίσκονται στη μέση του παραθύρου, επιλέξουμε Hits-Misses μπορούμε να δούμε 4

πόσες προσπελάσεις είναι Hits και πόσες Misses, καθώς και τα ποσοστά που αντιστοιχούν. Όπως βλέπετε υπάρχουν και πολλές άλλες επιλογές, όπως π.χ. η κατάσταση των blocks με βάση τα πρωτόκολλα MSI/MESI, η διασύνδεση των επεξεργαστών κ.α., αλλά δε θα μας χρειαστούν για τους σκοπούς αυτής της άσκησης. Στο τέλος μια προσομοίωσης, θα ερωτηθείτε αν θέλετε να ολοκληρωθούν τα Write Back. Ότι και να επιλέξετε (Ναι ή Όχι) δε μας ενδιαφέρει, γιατί και δε θα χρειαστεί να μετρήσουμε το χρόνο για κάτι τέτοιο στην παρούσα άσκηση, και εκτός αυτού, αν στο trace μας είχαμε μόνο αναγνώσεις, δεν υπάρχουν dirty blocks για να γραφτούν πίσω στην κεντρική μνήμη. 5