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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 3 ο ΜΕΔ απλού κύκλου

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Μια Ανασκόπηση στην Οργάνωση Η/Υ. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 9 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 4 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 4 ο ΜΕΔ πολλαπλών κύκλων

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο Σύντομη Επανάληψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Αρχιτεκτονική Η/Υ. Γιώργος ηµητρίου. Μια Ανασκόπηση στην Οργάνωση Η/Υ. Πανεπιστήµιο Θεσσαλίας - Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

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

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο Σύντοµη Επανάληψη

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

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

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις

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

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

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

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

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 11 ο και 12 ο

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 3 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

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

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

Σχεδίαση μονάδας ελέγχου επεξεργαστή

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

5.1 Εισαγωγή. Μια προεπισκόπηση της υλοποίησης

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

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 6 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

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

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

Εντολές του MIPS (2)

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

ξργ Μονάδα επεξεργασίας ξργ δδ δεδομένων Μονάδα ελέγχου

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα

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

ΠΑΡΟΡΑΜΑΤΑ (ενημέρωση )

Διάλεξη 11 Προώθηση (Forwarding)

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

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

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 1 ο

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Σχεδίαση της Μονάδας Ελέγχου

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

Στο σχήμα 3.1 δίνεται μια μονάδα επεξεργασίας δεδομένων σταθερής υποδιαστολής που εκτελεί οποιαδήποτε από τις κάτωθι εντολές σε ένα κύκλο ρολογιού.

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;

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

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

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

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

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Τρόποι Διευθυνσιοδότησης

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Διακλαδώσεις. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

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

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

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

3. Πρόσθεση Πολλαπλασιασμός 4. Πρόσθεση στο πρότυπο ΙΕΕΕ Πολλαπλασιασμός στο πρότυπο ΙΕΕΕ

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

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

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Transcript:

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΜΣ Εφαρμοσμένη Πληροφορική Οργάνωση και Σχεδίαση Η/Υ Άσκηση 1: Δεύτερη Σειρά Ασκήσεων 12 Μαΐου 2017 ενδεικτική υποβολή: 2 Ιουνίου 2017 Θέλουμε να κατασκευάσουμε έναν μη επαναληπτικό αθροιστή 20 αριθμών των 64 bits, αγνοώντας κρατούμενα εξόδου ή σήματα υπερχείλισης. Α. Σχεδιάστε δύο τέτοιους αθροιστές με τις ακόλουθες μεθόδους: (i) Χρησιμοποιήστε επιμέρους αθροιστές διάδοσης κρατουμένου των 64 bits για να προσθέτετε τους αριθμούς ανά δύο στον ελάχιστο δυνατό αριθμό επιπέδων διαδοχικής πρόσθεσης. (ii) Χρησιμοποιήστε επιμέρους αθροιστές διατήρησης κρατουμένου (carry-save) των 64 bits και έναν αθροιστή παράκαμψης κρατουμένου των 64 bits (με τους τμηματικούς αθροιστές να αντιστοιχούν σε 5, 7, 9, 11, 11, 9, 7, 5 bits) για να προσθέσετε τα τελικά επιμέρους κρατούμενα με τα τελικά επιμέρους αθροίσματα. Ελαχιστοποιήστε τον αριθμό επιπέδων διαδοχικής πρόσθεσης διατήρησης κρατουμένου. Β (προαιρετικά). Για καθεμία από τις δύο περιπτώσεις, να υπολογίσετε το συνολικό χρόνο καθυστέρησης για τον υπολογισμό του αθροίσματος, σα συνάρτηση του χρόνου καθυστέρησης μιας στοιχειώδους λογικής πύλης, θεωρώντας ότι όλες οι στοιχειώδεις λογικές πύλες (AND, NAND, OR, NOR, XOR, XNOR και πολυπλέκτες), οσωνδήποτε εισόδων, έχουν τον ίδιο χρόνο καθυστέρησης Τ. Άσκηση 2: Α. Θεωρήστε τον επαναληπτικό αλγόριθμο του Booth για πολλαπλασιασμό προσημασμένων αριθμών σταθερής υποδιαστολής, τόσο με βήμα 1 (ελέγχου ζεύγους ψηφίων), όσο και με βήμα 2 (ελέγχου τριάδας ψηφίων). Εφαρμόστε τον αλγόριθμο και για τις δύο περιπτώσεις βήματος στους αριθμούς Χ = 010011100110 και Υ = 100111100101, για μια επαναληπτική μονάδα πολλαπλασιασμού με διαδοχικές προσθέσεις και ολισθήσεις που εκτελεί την πράξη Χ Υ, όπου Χ ο πολλαπλασιαστέος και Υ ο πολλαπλασιαστής, κατασκευάζοντας από έναν πίνακα για κάθε περίπτωση με τις τιμές των καταχωρητών της μονάδας σε κάθε φάση εκτέλεσης της πράξης. Η μονάδα βασίζεται στο υλικό με τον ενιαίο καταχωρητή Γινόμενο/Πολλαπλασιαστής, και με ΑΛΜ του ελάχιστου δυνατού εύρους. Β (προαιρετικά). Ο επαναληπτικός αλγόριθμος του Booth μπορεί να γενικευτεί για κάποια σταθερά βήματος Ν, με έλεγχο Ν+1 bits του πολλαπλασιαστή σε κάθε επανάληψη, οπότε το γινόμενο υπολογίζεται με ρυθμό Ν bits ανά επανάληψη. Βρείτε τη μορφή των αλγεβρικών σχέσεων από τις οποίες προκύπτει ο γενικευμένος αλγόριθμος Booth για τυχαίο Ν, και δώστε τις δύο περιπτώσεις του αλγόριθμου Booth για Ν = 3 και Ν = 4. Πιο συγκεκριμένα, εφαρμόστε τις αλγεβρικές σχέσεις και βρείτε για καθεμία από τις δύο περιπτώσεις τι πράξεις πρέπει να γίνονται σε κάθε επανάληψη, με βάση τις δυνατές τιμές των ψηφίων του πολλαπλασιαστή που ελέγχονται. Εφαρμόστε τον αλγόριθμο και για τις δύο περιπτώσεις βήματος 3 και 4 στους ί- διους αριθμούς Χ και Υ, σε παρόμοιο υλικό, και με παρόμοιο τρόπο όπως προηγουμένως.

2 Άσκηση 3: Α. Θεωρήστε μια ΜΕΔ MIPS απλού κύκλου μηχανής ανά κύκλο εντολής, στην οποία ο ΦΚ διαθέτει μόνο μία θύρα ανάγνωσης. Με βάση τις εντολές MIPS που μελετήσαμε στο μάθημα για τη ΜΕΔ MIPS απλού κύκλου μηχανής, να εξηγήσετε ποιες από αυτές μπορούν και ποιες από αυτές δεν μπορούν να υποστηριχθούν σε μια τέτοια ΜΕΔ. Β. Για να μπορέσουμε να υποστηρίξουμε R-type εντολές στη ΜΕΔ MIPS απλού κύκλου μηχανής ανά κύκλο εντολής με ΦΚ μιας θύρας ανάγνωσης, εισάγουμε έναν καταχωρητή ειδικού σκοπού, έστω Α, έτσι ώστε οι εντολές αυτές να αναφέρονται στον Α ως υπονοούμενο δεύτερο τελούμενο. Έτσι, μια εντολή πρόσθεσης, για παράδειγμα, διαμορφώνεται ως: add $rd,$rs και εκτελεί την πράξη: $rd = $rs + A Η χρήση του Α στην παραπάνω ΜΕΔ υποστηρίζεται με τις δύο νέες εντολές μεταφοράς δεδομένων μεταξύ του ΦΚ και του Α: mta $rs mfa $rd από τις οποίες η πρώτη μεταφέρει μια λέξη δεδομένων από τον $rs στον Α, και η δεύτερη μεταφέρει μια λέξη δεδομένων από τον Α στον $rd. Να προτείνετε ανάλογες τροποποιήσεις για την υποστήριξη και των υπόλοιπων εντολών MIPS που δείξατε ότι δεν υποστηρίζονται από την αρχική ΜΕΔ. Στη συνέχεια, να δώσετε το διάγραμμα της ΜΕΔ που προκύπτει με την προσθήκη του καταχωρητή Α, προσθέτοντας πολυπλέκτες και σήματα ελέγχου, όπου θεωρείτε απαραίτητο, για την πλήρη υποστήριξη όλων των εντολών MIPS που μελετήσαμε στο μάθημα. Εξηγήστε αναλυτικά όλες τις τροποποιήσεις που κάνετε στη ΜΕΔ. Γ (προαιρετικά). Θεωρήστε τώρα μια ΜΕΔ MIPS καλωδιωμένης λογικής πολλαπλών κύκλων μηχανής ανά κύκλο εντολής, στην οποία ο ΦΚ διαθέτει μόνο μία θύρα ανάγνωσης. Υιοθετώντας τη λύση του ερωτήματος Β με την εισαγωγή ενός καταχωρητή ειδικού σκοπού, εξηγήστε πώς θα υποστηρίξετε τις εντολές MIPS που μελετήσαμε στο μάθημα. Μπορείτε πάλι να προσθέσετε πολυπλέκτες και σήματα ελέγχου, ή να τροποποιήσετε υπάρχοντες πολυπλέκτες και σήματα ελέγχου. Να δώσετε το διάγραμμα της ΜΕΔ που προκύπτει με την τροποποίηση που προτείνετε, για την πλήρη υποστήριξη όλων των εντολών MIPS που μελετήσαμε. Στη συνέχεια να δώσετε τη μηχανή καταστάσεων της νέας ΜΕΔ MIPS για τις εντολές αυτές, καθώς και τις λογικές συναρτήσεις όλων των σημάτων ελέγχου της ΜΕΔ. Δ (προαιρετικά). Να επαναλάβετε το προηγούμενο ερώτημα, βρίσκοντας όμως άλλη λύση για το πρόβλημα της έλλειψης δεύτερης θύρας ανάγνωσης του ΦΚ, χωρίς προσθήκη καταχωρητή ειδικού σκοπού. Ειδικότερα, χρησιμοποιήστε επιπλέον κύκλους μηχανής για δεύτερη ανάγνωση του ΦΚ, αλλά προσπαθήστε ώστε η αναμενόμενη αύξηση του αριθμού κύκλων μηχανής ανά εντολή να είναι η ελάχιστη δυνατή. Άσκηση 4 (προαιρετική): Θεωρήστε τη ΜΕΔ της αρχιτεκτονικής MIPS καλωδιωμένης λογικής για κύκλο εντολής τόσο απλού, όσο και πολλαπλών κύκλων μηχανής. Στην απλουστευμένη υλοποίηση που μελετήσαμε στο μάθημα, δεν υπήρχαν εντολής ολίσθησης. Αν θέλουμε όμως να υποστηρίξουμε εντολές ολίσθησης, είναι απαραίτητο να προσθέσουμε στη ΜΕΔ μια μονάδα ολίσθησης (ΜΟΛ) με δύο εισόδους δεδομένων, οι οποίες να παρέχουν το δεδομένο που θα ολισθηθεί και τον αριθμό ψηφίων ολίσθησης, μία είσοδο ελέγχου, που να καθορίζει τη λειτουργία που θα εκτελεστεί, και μία έξοδο, η οποία να παράγει το ολισθημένο δεδομένο.

3 Α. Έστω ότι θέλουμε να υποστηρίξουμε τέσσερις τύπους εντολών ολίσθησης, σύμφωνα με τον παρακάτω πίνακα: Εντολή Συμβολισμός Περιγραφή Ολίσθησης με σταθερό αριθμό ψηφίων OP $rd,$rt,sh $rd = $rt ολ. κατά sh Ολίσθησης με μεταβλητό α- ριθμό ψηφίων OPv $rd,$rt,$rs $rd = $rt ολ. κατά $rs Ολίσθησης με σταθερό αριθμό ψηφίων και πρόσθεσης OPadd $rd,$rt,$rs,sh $rd = $rt + ($rs ολ. κατά sh) Ολίσθησης με σταθερό αριθμό ψηφίων και αφαίρεσης OPsub $rd,$rt,$rs,sh $rd = $rt - ($rs ολ. κατά sh) όπου OP μπορεί να είναι sll, srl, sra ή ror, για αριστερή, δεξιά λογική, δεξιά αριθμητική και δεξιά κυκλική ολίσθηση, αντίστοιχα. Εισάγετε τη ΜΟΛ χωρίς να δείξετε λεπτομέρειες του εσωτερικού της στην άσκηση αυτή δεν μας απασχολεί η υλοποίησή της και δείξτε τη νέα ΜΕΔ που προκύπτει και για τις δύο περιπτώσεις ελέγχου. Προσθέστε ή τροποποιήστε πολυπλέκτες και όποια σήματα ελέγχου κρίνετε απαραίτητο, και δείξτε τις τιμές που αυτά λαμβάνουν κατά τη διάρκεια του κύκλου εντολής των παραπάνω τύπων εντολών. Για την περίπτωση πολλαπλών κύκλων μηχανής ανά κύκλο εντολής, δείξτε τις προσθήκες στη μηχανή καταστάσεων της αρχιτεκτονικής. Προσπαθήστε να ελαχιστοποιήσετε τη διάρκεια εκτέλεσης των εντολών και για τις δύο περιπτώσεις, χωρίς όμως να μεταβάλλετε τη διάρκεια του κύκλου μηχανής στη δεύτερη περίπτωση. Θεωρήστε ότι η διάρκεια εκτέλεσης μιας ολίσθησης στη ΜΟΛ είναι περίπου ίση με τη διάρκεια εκτέλεσης μιας πράξης στην ΑΛΜ. Β. Χρησιμοποιήστε την παραπάνω μονάδα ολίσθησης, ώστε να επεκτείνετε τις εντολές διακλάδωσης της αρχιτεκτονικής MIPS με μια εντολή μείωσης υπό κλίμακα και διακλάδωσης: bxc $rt, x, off η οποία μειώνει κατά 2 x το μοναδικό κατ ευθείαν τελούμενο της εντολής $rt, και εκτελεί άλμα όταν προκύπτει μη μηδενική τιμή. Το μη προσημασμένο άμεσο τελούμενο x πρέπει να χωράει σε 5 bits, κι επομένως καλύπτει τις τιμές 0-31. Η διεύθυνση προορισμού άλματος υπολογίζεται με πρόσθεση της μετατόπισης off στην αυξημένη κατά μία θέση εντολής προηγούμενη τιμή του μετρητή προγράμματος. Χωρίς να εισάγετε άλλες υπομονάδες στη ΜΕΔ, εξηγήστε εάν και πώς μπορείτε να υποστηρίξετε την εντολή bxc, τόσο στην περίπτωση απλού, όσο και στην περίπτωση πολλαπλών κύκλων μηχανής για κάθε κύκλο εντολής. Τι προσθήκες χρειάζεστε στη ΜΕΔ για την υποστήριξη της νέας εντολής; Χρειάζεστε κάποιο νέο δρόμο μεταφοράς πληροφορίας ή κάποια νέα σήματα ελέγχου; Στην περίπτωση των πολλαπλών κύκλων μηχανής, να δώσετε την απαραίτητη προσθήκη στη μηχανή καταστάσεων που να περιγράφει την εκτέλεση της εντολής bxc, χρησιμοποιώντας όποια νέα σήματα ελέγχου χρειάζεστε. Άσκηση 5: Έστω η ΜΕΔ MIPS μερικά επικαλυπτόμενων εντολών που μελετήσαμε στο μάθημα, χωρίς παροχέτευση ή πρόβλεψη διακλαδώσεων, η οποία υποστηρίζει τις εντολές add, sub, addi, lw, sw, bne, beq, j και jr. Η ΜΕΔ αυτή ξαναδίνεται πιο κάτω, με μερικές συμπληρωματικές λεπτομέρειες όσο αφορά τη μεταφορά πληροφορίας μεταξύ των υπομονάδων της καθώς και μεταξύ των καταχωρητών επικάλυψης F, D, E και M. Η πληροφορία εξόδου για κάθε έναν από τους καταχωρητές επικάλυψης είναι η πληροφορία που αποθηκεύτηκε σε αυτόν στον προηγούμενο κύκλο μηχανής, και αποτελεί ενδιάμεση είσοδο για την εντολή στη φάση που περιορίζεται μεταξύ αυτού και του επόμενου καταχωρητή επικάλυψης. Για παράδειγμα, η τιμή 240 που είναι η τιμή εξόδου του πεδίου D.a αφορά την εντολή στη φάση εκτέλεσης. Αντίστοιχα, η πληροφορία εισόδου για καθέναν από τους καταχωρητές επικάλυψης αποθηκεύεται στο τέλος

4 του παρόντος κύκλου, και αποτελεί ενδιάμεση έξοδο της εντολής στη φάση που περιορίζεται μεταξύ αυτού και του προηγούμενου καταχωρητή επικάλυψης. Για παράδειγμα, η τιμή 124 που είναι η τιμή εισόδου του πεδίου D.a αφορά την εντολή στη φάση αποκωδικοποίησης. Οι δρόμοι πληροφορίας από δεξιά προς τα αριστερά μεταφέρουν τιμές τις οποίες παράγει η εντολή που βρίσκεται στο δεξί άκρο τους. Διακοπή Μ1 pcsel = 0 ΑΘΡ Μ1 = D.a PC wrdis c1 memread = 1 memread = 0 Μονάδα c2 memwrite = 0 c2 memwrite = 0 M3 = M.dr Ελέγχου regwrite = 1 regwrite = 0 100 F D rg = 8 E M ΑΥΞ ΜΔΜ & Αποθηκευμένο Πρόγραμμα pc ir pc a rs=3 Φάκελος 124 240 Καταχωρητών Γενικού rt=0 Σκοπού Μ2 b ir -16 ALUop = add Ζ ΑΛΜ c b 420 regwrite = 1 129 rg = 4 ΜΔΜ & Αποθηκευμένα Δεδομένα dr c -4 0 Μ3 Επιπλέον των γραμμών δεδομένων, οι γραμμές σημάτων ελέγχου που φεύγουν από τη ΜΕ και απεικονίζονται ως μία γραμμή για κάθε φάση επικάλυψης θεωρούνται ότι μεταφέρουν όσα ψηφία είναι απαραίτητα για κάθε φάση. Έτσι, η γραμμή c1 περιέχει ψηφία που απευθύνονται στη φάση εκτέλεσης, η γραμμή c2 περιέχει ψηφία που απευθύνονται στη φάση προσπέλασης μνήμης και η γραμμή περιέχει ψηφία που απευθύνονται στη φάση αποθήκευσης α- ποτελέσματος. Τα ψηφία ελέγχου δίνονται συμβολικά ως πεδία των c1, c2 και στον πίνακα που ακολουθεί. Γραμμή Πεδίο Ελέγχου Λειτουργία Μ1 (PCSrc) Επιλογή διεύθυνσης από D.ir (προορισμός άμεσου άλματος), D.a (προορισμός έμμεσου άλματος) και ΑΘΡ (προορισμός άλματος διακλάδωσης). c1 branch Αν έχουμε διακλάδωση, τότε: αν 0, έλεγχος beq, αν 1, έλεγχος bne. Το σήμα είναι αδιάφορο αν δεν έχουμε διακλάδωση. Μ2 (ALUSrc) Επιλογή εισόδου ALU2 μεταξύ D.b (τιμή από ΦΚ) και D.ir (άμεσο τελούμενο ή μετατόπιση). Επιλογή πράξης ΑΛΜ μεταξύ funct (πράξη από κωδικό τελεστή), ALUop add (πρόσθεση από κωδικό λειτουργίας) και sub (αφαί- ρεση από κωδικό λειτουργίας). c2 memread Αν 1, τότε ανάγνωση μνήμης δεδομένων. memwrite Αν 1, τότε εγγραφή μνήμης δεδομένων. M3 (MemtoReg) Επιλογή δεδομένου προς αποθήκευση στο ΦΚ μεταξύ M.dr (από τη μνήμη) και M.c (από την ΑΛΜ). regwrite Αν 1, τότε εγγραφή ΦΚ. rg Αριθμός καταχωρητή εγγραφής (ένας από τους rt και rd της αντίστοιχης εντολής).

5 Εκτός των σημάτων που περιλαμβάνονται στις γραμμές c1, c2 και, το σήμα pcsel που ελέγχει τον πολυπλέκτη εισόδου του PC λαμβάνει τιμή από τη ΜΕ σε κάθε κύκλο. Αν αυτή είναι 1, ο PC δέχεται τη διεύθυνση που καθορίζει ο πολυπλέκτης Μ1, διαφορετικά τη διεύθυνση ΑΥΞ (επόμενης εντολής). Το σήμα pcsel μηδενίζεται, αν Μ1 = ΑΘΡ και branch ^ Z = 0. Για απλούστευση, οι γραμμές που μεταφέρουν τα σήματα επιλογής pcsel, Μ1 (PCSrc), Μ2 (ALUSrc) και Μ3 (MemtoReg) στους αντίστοιχους πολυπλέκτες δε φαίνονται στο διάγραμμα. Η πιο πάνω ΜΕΔ δεν διαθέτει μηχανισμούς παροχέτευσης και πρόβλεψης διακλαδώσεων. Έ- τσι, η μονάδα ελέγχου πρέπει να παγώνει το μηχανισμό επικάλυψης, όταν εμφανίζεται κίνδυνος εξάρτησης από δεδομένα, με μηδενισμό όλων των σημάτων ελέγχου που παράγει, καθώς και με μη επίτρεψη εγγραφής του PC και του καταχωρητή επικάλυψης F, για όσους κύκλους είναι απαραίτητο, με ενεργοποίηση του σήματος wrdis. Ακόμα, σε κάθε εντολή διακλάδωσης, οι δύο επόμενες εντολές εισέρχονται κανονικά στη ΜΕΔ, και αν το άλμα εκτελείται, γεγονός που αναδεικνύεται με τιμή 1 στο αποκλειστικό Η των σημάτων branch και Z, ακυρώνονται οι εντολές αυτές, με μηδενισμό των σημάτων ελέγχου για δύο κύκλους μηχανής. Παρόμοια γίνεται ο χειρισμός των άμεσων και έμμεσων αλμάτων, όπου βέβαια το άλμα πάντα εκτελείται. Όσο αφορά το ΦΚ, θεωρήστε ότι οι εγγραφές συμβαίνουν στο πρώτο μισό και οι αναγνώσεις στο δεύτερο μισό του κύκλου μηχανής. Στο παραπάνω διάγραμμα δίνονται για κάποιον κύκλο μηχανής οι τιμές πληροφορίας σε διάφορα σημεία της ΜΕΔ. Για παράδειγμα, το άμεσο τελούμενο ή η μετατόπιση που διαβάζεται από το πεδίο ir του D είναι -16. Επίσης, η επιλογή εισόδου του PC γίνεται από την έξοδο της μονάδας ΑΥΞ, ενώ η επιλογή στον πολυπλέκτη Μ1 στον επόμενο κύκλο θα γίνει από το πεδίο a του D. Με βάση τις τιμές και επιλογές που δίνονται στο διάγραμμα, μπορούμε να εξάγουμε στοιχεία για τις εντολές που βρίσκονται σε καθεμία από τις 5 επικαλυπτόμενες φάσεις της ΜΕΔ. Τέτοια στοιχεία είναι οι διευθύνσεις τους στη μνήμη, πεδία από τις αντίστοιχες λέξεις εντολής, αλλά και οι τιμές των τελούμενων εισόδου και εξόδου τους, ή οι διευθύνσεις μνήμης στις οποίες πιθανά αναφέρονται. Έτσι: Α. Βρείτε όσα περισσότερα στοιχεία μπορείτε για τις εντολές που βρίσκονται στη ΜΕΔ. Εξηγήστε για κάθε πεδίο λέξης εντολής που δε γνωρίζετε, γιατί δεν μπορείτε να βρείτε την τιμή του, και εάν είναι εφικτό, βρείτε τιμές τις οποίες αυτό δε μπορεί να έχει. Β. Με βάση την απάντησή σας στο προηγούμενο ερώτημα, βρείτε τι τιμές θα αποθηκευτούν στους καταχωρητές επικάλυψης F, D, E και Μ στο τέλος του κύκλου μηχανής. Αναφέρετε Χ για τις τιμές που δε μπορείτε να γνωρίζετε. Γ. Αν στη φάση εκτέλεσης το σήμα memread ήταν 0, ενώ τα υπόλοιπα σήματα παρέμεναν όπως δείχνονται, τι εντολή θα είχαμε στη φάση αυτή; Ποιο θα ήταν το σήμα επιλογής στον πολυπλέκτη Μ2; Τι τιμές θα λάμβανε ο καταχωρητής επικάλυψης Ε στο τέλος του κύκλου; Αν όμως το σήμα επιλογής πράξης ΑΛΜ ήταν fcode, τι εντολή θα είχαμε στην ίδια φάση; Ποιο θα ήταν τότε το σήμα επιλογής στον πολυπλέκτη Μ2 και τι τιμές θα λάμβανε ο καταχωρητής επικάλυψης Ε στο τέλος του κύκλου; Ποια άλλη πληροφορία πρέπει να γνωρίζετε για τον α- κριβή προσδιορισμό της εντολής; Δ. Αν στη φάση εκτέλεσης τα σήματα memread και regwrite ήταν 0, το σήμα pcsel ήταν 1 και η επιλογή του πολυπλέκτη Μ1 ήταν ΑΘΡ, τι εντολή θα είχαμε στη φάση αυτή; Ποιο θα ήταν το σήμα επιλογής στον πολυπλέκτη Μ2 και ποιο το σήμα επιλογής πράξης ΑΛΜ ALUop; Ποια θα ήταν η τιμή που θα λάμβανε ο PC στο τέλος του κύκλου μηχανής και τι τιμές θα λάμβαναν τότε οι καταχωρητές επικάλυψης F και D; Ποια άλλη πληροφορία πρέπει να γνωρίζετε για τον ακριβή προσδιορισμό της εντολής; Ε. Εξηγήστε τι θα συνέβαινε αν στη φάση εκτέλεσης ο καταχωρητής εγγραφής ήταν ο 3 (rg = 3). Πόσες φορές η εντολή στη φάση αποκωδικοποίησης θα διάβαζε τότε τον ΦΚ; Ποια τιμή θα αποθηκευόταν στο πεδίο a του καταχωρητή επικάλυψης D στο τέλος του κύκλου μηχανής που ολοκληρώνει τις απαιτούμενες αναγνώσεις του ΦΚ; Να επαναλάβετε, αν ο καταχωρητής εγγραφής της εντολής στη φάση αποθήκευσης αποτελέσματος ήταν ο 3, αντί της φάσης εκτέλεσης.

6 ΣΤ. Πώς θα έπρεπε να τροποποιήσουμε την παραπάνω ΜΕΔ, ώστε να επιτύχουμε μείωση στην απώλεια κύκλων μηχανής για εντολές άμεσου και έμμεσου άλματος; Άσκηση 6: Έστω η ΜΕΔ MIPS της προηγούμενης άσκησης με την προσθήκη μηχανισμών παροχέτευσης και πρόβλεψης διακλαδώσεων. Η προσθήκη αυτή γίνεται μέσα από τρεις νέες υπομονάδες που φαίνονται στο διάγραμμα της επόμενης σελίδας, και λειτουργούν όπως περιγράφεται στη συνέχεια. Για απλούστευση, στο διάγραμμα δε φαίνονται οι γραμμές των σημάτων επιλογής. Η υπομονάδα «Παροχέτευση» εξετάζει τη ΜΕΔ για κινδύνους δεδομένων που αντιμετωπίζονται με παροχέτευση. Σε κάθε κύκλο μηχανής δέχεται τον κωδικό λειτουργίας της εντολής στη φάση αποκωδικοποίησης και τους αριθμούς καταχωρητών που διαβάζονται από το ΦΚ, καθώς και τα σήματα regwrite και rg των δύο προηγούμενων εντολών που βρίσκονται στις δύο επόμενες φάσεις της ΜΕΔ. Για κάθε ταύτιση καταχωρητή που διαβάζεται και είναι απαραίτητος για την εντολή που τον διαβάζει με καταχωρητή που γράφεται, ενεργοποιείται το κατάλληλο σήμα παροχέτευσης, το οποίο αποθηκεύεται στο πεδίο fwd του καταχωρητή D, για να χρησιμοποιηθεί στον αμέσως επόμενο κύκλο μηχανής για επιλογή σε έναν από τους πολυπλέκτες Μ4 και Μ5 που έχουν προστεθεί στη ΜΕΔ για την παροχέτευση. Η υπομονάδα «Ανίχνευση Κινδύνων» εξετάζει τη ΜΕΔ για κινδύνους δεδομένων που δημιουργούνται μετά από εντολές φόρτωσης. Σε κάθε κύκλο μηχανής δέχεται τον κωδικό λειτουργίας της εντολής στη φάση αποκωδικοποίησης και τους αριθμούς καταχωρητών που διαβάζονται από το ΦΚ, καθώς και τα σήματα memread και rg της προηγούμενης εντολής που βρίσκεται στην επόμενη φάση της ΜΕΔ. Αν το σήμα memread έχει τιμή 1 και υπάρχει ταύτιση του καταχωρητή που γράφεται με έναν καταχωρητή που διαβάζεται και είναι απαραίτητος για την εντολή που τον διαβάζει, η ΜΕΔ παγώνει για έναν κύκλο μηχανής, με μη επίτρεψη εγγραφής του PC και του καταχωρητή επικάλυψης F, καθώς και με μηδενισμό των σημάτων ελέγχου που παράγονται στον ίδιο κύκλο. Αυτό επιτυγχάνεται με ενεργοποίηση των σημάτων wrdis και CZ. Η υπομονάδα «Πρόβλεψη Διακλαδώσεων» υλοποιεί δυναμική πρόβλεψη με δύο ψηφία ιστορίας ανά διακλάδωση, με τη βοήθεια μιας τοπικής μνήμης που αποθηκεύει την ιστορία και τη διεύθυνση προορισμού για κάθε διακλάδωση που απαντάται, και με βάση τον αλγόριθμο δυναμική πρόβλεψης που μελετήσαμε στο μάθημα. Σε κάθε κύκλο μηχανής δέχεται την τιμή του PC, και αν η τιμή αυτή αντιστοιχεί σε διεύθυνση διακλάδωσης που έχει συναντηθεί στο παρελθόν και έχει πρόβλεψη εκτέλεσης άλματος, παρέχει μια διεύθυνση προορισμού, που αποθηκεύεται πίσω στον PC μέσω του πολυπλέκτη pcsel, ο οποίος έχει διευρυνθεί κατάλληλα για την πρόβλεψη διακλαδώσεων, αλλιώς αφήνει τη ΜΕΔ να συνεχίσει με τις εντολές που ακολουθούν. Η φάση εκτέλεσης ενημερώνει την υπομονάδα για την έκβαση κάθε διακλάδωσης, και σε περίπτωση άλματος παρέχει σε αυτήν τη διεύθυνση προορισμού για να αποθηκευτεί στη μνήμη διευθύνσεων προορισμού. Σε κάθε λανθασμένη πρόβλεψη, ή για εκτέλεση αλμάτων χωρίς πρόβλεψη (διακλαδώσεων που δεν έχουν ξανασυναντηθεί, καθώς και άμεσων ή έμμεσων αλμάτων), ενεργοποιείται το σήμα flush, που μηδενίζει τις τιμές στις εισόδους των καταχωρητών επικάλυψης F και D, συμπεριλαμβανομένων των σημάτων που παράγει η μονάδα ελέγχου, ενώ ο PC λαμβάνει τη σωστή διεύθυνση από τον πολυπλέκτη Μ1, μέσω του διευρυμένου pcsel. Ειδικότερα, για τη σωστή λειτουργία της υπομονάδας, ο πολυπλέκτης Μ1 μπορεί να επιλέξει και τη διεύθυνση της εντολής που ακολουθεί τη διακλάδωση. Εκτός από όσα σήματα ελέγχου αναφέρονται παραπάνω, τα υπόλοιπα σήματα έχουν τη λειτουργία που περιγράφει ο πίνακας της προηγούμενης άσκησης. Όλα τα σήματα που παράγει η μονάδα ελέγχου εκτός του pcsel ομαδοποιούνται στις λέξεις ελέγχου c1, c2 και.

7 Πρόβλεψη Διακλαδώσεων PC ΑΥΞ ΜΔΜ & Αποθηκευμένο Πρόγραμμα wrdis F pc ir Ανίχνευση Κινδύνων Μονάδα Φάκελος Καταχωρητών Γενικού Σκοπού CZ M1 c1 c2 D pc a b ΑΘΡ M4 M5 M2 ΑΛΜ Z c2 E c ΜΔΜ & Αποθηκευμένα Δεδομένα M dr c M3 ir b flush fwd Διακοπή Παροχέτευση Θεωρήστε τον πιο κάτω βρόχο κώδικα MIPS: addi $2,$0,0 L1: lw $3,0($8) B1: beq $3,$16,L2 lw $4,0($9) sw $4,4($8) sub $5,$3,$4 addi $3,$5,-1 sw $3,0($8) addi $2,$2,1 L2: lw $9,4($9) B2: beq $9,$0,L3 lw $6,8($9) sub $16,$6,$16 addi $8,$8,8 B3: j L1 L3: sub $16,$16,$2 sw $16,0($10) Α. Βρείτε όλες τις εξαρτήσεις από δεδομένα στον κώδικα, ως εξής: Να σχηματίσετε έναν πίνακα με γραμμές που αντιστοιχούν στις εντολές του κώδικα και στήλες που αντιστοιχούν στους καταχωρητές που μπορούν να συμμετέχουν σε εξαρτήσεις, και να σημειώσετε σ αυτόν τις λειτουργίες ανάγνωσης και εγγραφής του κάθε καταχωρητή για κάθε εντολή. Στη συνέχεια να εντοπίσετε και να δώσετε όλες τις εξαρτήσεις τύπου ΑΜΕ, ΕΜΑ και ΕΜΕ που βλέπετε, συμπεριλαμβανομένων αυτών που δρουν μεταξύ επαναλήψεων του βρόχου. Β. Ποιες από τις εξαρτήσεις που βρήκατε αποτελούν κίνδυνο στο μηχανισμό επικάλυψης της παραπάνω ΜΕΔ; Πώς θα μπορούσατε να αντιμετωπίσετε τους κινδύνους αυτούς, χωρίς να παγώσετε το μηχανισμό επικάλυψης; Είναι δυνατό να εξαλειφτούν όλοι οι κίνδυνοι; Δείξτε πώς θα μπορούσατε να το επιτύχετε!

8 Γ. Υποθέστε ότι ο πιο πάνω κώδικας φορτώνεται στη μνήμη, με την πρώτη εντολή στη θέση 0x40031bf8, με σκοπό να εκτελεστεί στη ΜΕΔ. Πριν την εκτέλεση του κώδικα, υποθέστε ότι οι καταχωρητές του ΦΚ που μας ενδιαφέρουν περιέχουν τις ακόλουθες τιμές: $2: 0x1 $3: 0x40038030 $4: 0xfffffff2 $5: 0x0 $6: 0x40038038 $8: 0x20b41c00 $9: 0x100a8200 $10: 0x1020ca74 $16: 0xffffffff και οι θέσεις μνήμης που μας ενδιαφέρουν περιέχουν: mem[0x100a8200]: 0x32 mem[0x100a8204]: 0x100b1c7c mem[0x100a8208]: 0x5 mem[0x100b1c7c]: 0x103 mem[0x100b1c80]: 0x10101c20 mem[0x100b1c84]: 0x2 mem[0x10101c20]: 0xfffff6a7 mem[0x10101c24]: 0x0 mem[0x10101c28]: 0x7 mem[0x1020ca74]: 0x11 mem[0x20b41c00]: 0xfffffffe mem[0x20b41c04]: 0x0 mem[0x20b41c08]: 0x3 mem[0x20b41c0c]: 0x1 mem[0x20b41c10]: 0xfffffffa mem[0x20b41c14]: 0x0 Επίσης, η ΜΕΔ είναι άδεια και τα σήματα ελέγχου, όπως και όλα τα ψηφία ιστορίας της υπομονάδας πρόβλεψης διακλαδώσεων, είναι μηδενισμένα. Υποθέστε ότι οι διευθύνσεις των εντολών διακλάδωσης δεν εμφανίζουν σύγκρουση στην προσπέλαση της μνήμης ιστορίας και διευθύνσεων προορισμού. Να δώσετε το ενιαίο διάγραμμα χρονισμού που προκύπτει από την ε- κτέλεση, με βάση τις πιο πάνω αρχικές τιμές. Υπολογίστε το CPI της εκτέλεσης αυτής. Δ (προαιρετικά). Να δώσετε όλες τις τιμές που παράγονται μέσα στη ΜΕΔ, είτε ως δεδομένα είτε ως σήματα ελέγχου, ξεχωριστά για κάθε κύκλο μηχανής, για τους πρώτους 20 κύκλους που ξεκινάνε με τη φάση ανάκλησης της πρώτης εντολής. Για το σκοπό αυτό, μπορείτε αν θέλετε να χρησιμοποιήσετε το επισυναπτόμενο αρχείο «datapath.pdf», αντιγράφοντάς το όσες φορές χρειαστεί, δημιουργώντας σε κάθε κενή ΜΕΔ ένα στιγμιότυπο ενός κύκλου μηχανής, τοποθετώντας πάνω στη καθεμία τις ζητούμενες τιμές σημάτων και δεδομένων. Άσκηση 7 (προαιρετική): Υποθέστε ότι κατά την εκτέλεση ενός κώδικα παράγονται οι ακόλουθες διαδοχικές διευθύνσεις μνήμης (στο δεκαδικό σύστημα), οι οποίες απευθύνονται σε μια κοινή κρυφή μνήμη εντολών και δεδομένων μεγέθους 64 bytes: 68, 12, 196, 76, 88, 32, 20, 172, 252, 16, 20, 220, 24, 68, 128, 20, 156, 248, 92, 16 Οι διευθύνσεις αυτές είναι διευθύνσεις ψηφιολέξεων (bytes) που προσπελαύνονται είτε κατά τη φάση ανάκλησης, είτε κατά τη φάση προσπέλασης μνήμης. Θεωρήστε για απλούστευση ότι στην τελευταία περίπτωση όλες οι διευθύνσεις παράγονται από εντολές προσπέλασης μιας λέξης (lw ή sw). Υποθέτοντας ότι η κρυφή μνήμη είναι αρχικά άδεια (μ άλλα λόγια όλα τα πλαίσια είναι αρχικά άκυρα), και ότι τα δεδομένα προσκομίζονται με τακτική «όταν απαιτείται», βρείτε πόσες είναι

9 οι επιτυχίες και πόσες οι αποτυχίες από τις παραπάνω προσπελάσεις, καθώς και τι τιμές υπάρχουν μετά την τελευταία από τις παραπάνω προσπελάσεις (α) στο ψηφίο εγκυρότητας κάθε πλαισίου και (β) στο πεδίο ετικέτας κάθε πλαισίου, όταν: Α. Η κρυφή μνήμη είναι άμεσης απεικόνισης με μέγεθος πλαισίου 4 bytes. Β. Η κρυφή μνήμη είναι άμεσης απεικόνισης με μέγεθος πλαισίου 16 bytes. Γ. Η κρυφή μνήμη είναι 2-τρόπων συνόλου συσχέτισης με μέγεθος πλαισίου 4 bytes και LRU Δ. Η κρυφή μνήμη είναι 2-τρόπων συνόλου συσχέτισης με μέγεθος πλαισίου 4 bytes και FIFO Ε. Η κρυφή μνήμη είναι 2-τρόπων συνόλου συσχέτισης με μέγεθος πλαισίου 16 bytes και LRU ΣΤ. Η κρυφή μνήμη είναι 2-τρόπων συνόλου συσχέτισης με μέγεθος πλαισίου 16 bytes και FIFO Ζ. Η κρυφή μνήμη είναι 4-τρόπων συνόλου συσχέτισης με μέγεθος πλαισίου 4 bytes και LRU Η. Η κρυφή μνήμη είναι 4-τρόπων συνόλου συσχέτισης με μέγεθος πλαισίου 4 bytes και FIFO Θ. Η κρυφή μνήμη είναι πλήρους συσχέτισης με μέγεθος πλαισίου 4 bytes και LRU στρατηγική απελευθέρωσης. Ι. Η κρυφή μνήμη είναι πλήρους συσχέτισης με μέγεθος πλαισίου 16 bytes και LRU στρατηγική απελευθέρωσης. Άσκηση 8 (προαιρετική): Θεωρήστε ένα σύστημα ιεραρχίας μνήμης με κρυφή (ενός επιπέδου), κύρια, και εικονική μνήμη. Η κρυφή μνήμη δέχεται λογικές διευθύνσεις, και σε περίπτωση αποτυχίας απαιτείται η φυσική διεύθυνση για την προσπέλαση του επόμενου επιπέδου της ιεραρχίας. Η φυσική διεύθυνση βρίσκεται με τη βοήθεια (α) μιας συσχετιστικής μνήμης TLB, η οποία διατηρεί τις πιο πρόσφατες απεικονίσεις από λογικές σε φυσικές διευθύνσεις, και (β) ενός πίνακα σελίδων που χρησιμοποιεί απεικόνιση δύο επιπέδων για την εύρεση των φυσικών διευθύνσεων από τις λογικές. Επειδή η κρυφή μνήμη της ιεραρχίας μνήμης δέχεται λογικές διευθύνσεις, μπορεί να αναζητήσει κάποιο δεδομένο την ίδια στιγμή που η TLB αναζητάει τη φυσική διεύθυνση. Έστω ότι κατά την εκτέλεση ενός προγράμματος ο λόγος επιτυχίας της κρυφής μνήμης είναι 80%. Έστω ακόμη ότι το 98% των περιπτώσεων προσπέλασης μνήμης βρίσκει την απεικόνιση από λογική σε φυσική διεύθυνση μνήμης στην TLB. Στις υπόλοιπες περιπτώσεις δημιουργείται ειδική περίπτωση στον επεξεργαστή, ώστε να εξεταστεί ο πίνακας σελίδων και να αναζητηθεί σε αυτόν η απεικόνιση σε φυσική διεύθυνση. Έστω ότι σε ένα 0,003% των τελευταίων περιπτώσεων έχουμε σφάλμα σελίδας, οπότε παρεμβάλλεται το λειτουργικό σύστημα, ώστε να φέρει τη ζητούμενη σελίδα από το δίσκο. Τότε, και αν χρειαστεί η σελίδα αυτή να αντικαταστήσει κάποια άλλη, η απεικόνιση της τελευταίας στην TLB ακυρώνεται. Υποθέστε ότι ο χρόνος προσπέλασης της TLB είναι 1ns και της κρυφής μνήμης είναι 3ns. Ο χρόνος προσπέλασης της κύριας μνήμης είναι 60ns. Ο πίνακας σελίδων δε μεταφέρεται ποτέ στην κρυφή μνήμη. Το πρώτο επίπεδο απεικόνισης του πίνακα σελίδων βρίσκεται μόνιμα στην κύρια μνήμη, αλλά το δεύτερο όχι, κι έτσι μπορεί να οδηγήσει σε σφάλμα σελίδας, με την πιθανότητα που αναγράφτηκε παραπάνω. Κάθε περίπτωση σφάλματος σελίδας έχει κόστος 1ms μέχρι η σελίδα να φορτωθεί από το δίσκο στην κύρια μνήμη. Με βάση τα παραπάνω, να υπολογίσετε το μέσο χρόνο προσπέλασης μνήμης για το συγκεκριμένο πρόγραμμα.