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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 2 η : Στοιχεία Αρχιτεκτονικής Υπολογιστών. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ

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;

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

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

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

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

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

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

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

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η.

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

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

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

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

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

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

Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής. Αρχιτεκτονική Υπολογιστών. 3ο Μάθημα

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

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

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

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

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

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

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

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

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

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

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

Ασκήσεις Caches

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

Transcript:

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 11 (εργαστηριακή): Ασκήσεις Εξαμήνου Μέρος Γ Δεκέμβριος 2016 Γράψτε ένα πρόγραμμα προσομοίωσης για την αξιολόγηση της δυναμικής δρομολόγησης εντολών με τον αλγόριθμο του Tomasulo χωρίς υποθετική εκτέλεση πάνω σε έναν επεξεργαστή MIPS, όπως αυτόν που περιγράφεται στο βιβλίο. Αγνοήστε την προσκόμιση και αποκωδικοποίηση των εντολών, θεωρώντας ότι οι εντολές βρίσκονται αρχικά όλες στο παράθυρο εντολών. Υποθέστε ότι η ΜΕΔ του επεξεργαστή διαθέτει από μία υπομονάδα εκτέλεσης για κάθε λειτουργία του παρακάτω πίνακα, ο οποίος δίνει και τον αριθμό σταθμών δέσμευσης και το χρόνο εκτέλεσης αυτής σε κύκλους μηχανής: Υπομονάδα Σταθμοί δέσμευσης Χρόνος εκτέλεσης Integer 3 2 Branch 2 4 Load-store 6 4 FP add 3 6 FP multiply 3 12 FP divide 3 24 Θεωρήστε ότι όλες οι υπομονάδες εκτέλεσης εκτός από τις Load-store, FP multiply και FP divide είναι μερικά επικαλυπτόμενες με ιδανικό ρυθμό εκτέλεσης πράξεων, ώστε κάθε ε- ντολή να μπορεί να αρχίσει την εκτέλεσή της, αμέσως μόλις τα δεδομένα που χρειάζεται γίνουν διαθέσιμα. Ειδικά για τις τρεις πιο πάνω υπομονάδες, η υλοποίησή τους επιτρέπει επικάλυψη με έναρξη εκτέλεσης μιας νέας όμοιας λειτουργίας στο δεύτερο για την πρώτη, στον τρίτο και στον έβδομο για τη δεύτερη, και στο εντέκατο κύκλο μηχανής για την τρίτη, μετά την έναρξη της προηγούμενης λειτουργίας. Οι εντολές προσπέλασης μνήμης εκτελούνται σε πρώτη φάση ως ακέραιες για τον υπολογισμό διεύθυνσης, και στη συνέχεια η εκτέλεσή τους συνεχίζεται στην υπομονάδα Load-store. Θεωρήστε ακόμα ότι οι εντολές διακλάδωσης έχουν πάντα επιτυχημένη πρόβλεψη. Για την προσομοίωση, αγνοήστε τις τιμές των δεδομένων, ώστε να επικεντρώσετε την ανάλυσή σας στη δρομολόγηση και εκτέλεση των εντολών. Όμως, για ανίχνευση εξαρτήσεων μνήμης, υποθέστε ότι η διεύθυνση λαμβάνει τυχαία τιμή από 0 μέχρι Ν-1, για κάποια τιμή του Ν, η οποία θα γράφεται στο πεδίο Α των σταθμών δέσμευσης της υπομονάδας Loadstore. Δώστε προτεραιότητα στις εντολές φόρτωσης, ώστε αυτές να πηγαίνουν πρώτες στη μνήμη όποτε τίθεται τέτοιο θέμα. Θα πρέπει όμως να ελέγχετε αν η διεύθυνση χρησιμοποιείται από προηγούμενη εντολή αποθήκευσης που δεν έχει ακόμα ξεκινήσει εγγραφή στη μνήμη. Σε τέτοια περίπτωση, η ανάγνωση θα θεωρείται ότι γίνεται με παροχέτευση από το σταθμό της εντολής αποθήκευσης και θα ολοκληρώνεται σε έναν κύκλο μηχανής από τη στιγμή που το δεδομένο αποθήκευσης γίνεται διαθέσιμο. Σε περίπτωση που μια προηγούμενη εντολή αποθήκευσης δεν έχει ακόμα εκτελέσει την πρώτη φάση εκτέλεσής της, καμία επόμενη εντολή προσπέλασης μνήμης δε μπορεί να προχωρήσει στη δεύτερη φάση εκτέλεσής της. Η επι-

2 λογή μεταξύ εντολών φόρτωσης που είναι έτοιμες για προσπέλαση μνήμης γίνεται με σειρά FIFO σε σχέση με την έκδοσή τους, το ίδιο και για εντολές αποθήκευσης. Για να κωδικοποιήσετε τον αλγόριθμο του Tomasulo, χρησιμοποιήστε το σχετικό αλγόριθμο του βιβλίου. Θεωρήστε ότι ο φάκελος καταχωρητών έχει απεριόριστο αριθμό θυρών ανάγνωσης και εγγραφής. Για την αξιολόγηση της επίδοσης του αλγόριθμου Tomasulo, το πρόγραμμά σας θα πρέπει να μπορεί να προσομοιώνει και στατική δρομολόγηση εντολών. Η είσοδος του προγράμματός σας θα είναι οι 4 μικροί βρόχοι που βρίσκονται στα αρχεία loop1.txt, loop2.txt, loop3.txt και loop4.txt. Για απλούστευση, μπορείτε αν θέλετε να τροποποιήσετε τον κώδικα με το χέρι, ώστε αντί εντολών συμβολικής γλώσσας, το πρόγραμμά σας να διαβάζει για κάθε εντολή έναν κώδικα υπομονάδας και τους αριθμούς καταχωρητών που αποτελούν τα τελούμενα της εντολής. Οι καταχωρητές κινητής υποδιαστολής μπορούν απλά να κωδικοποιηθούν με αριθμούς 32-63. Θεωρήστε ότι οι εντολές διακλάδωσης που βρίσκονται στο σώμα των βρόχων δεν εκτελούν ποτέ άλμα, ότι οι εντολές διακλάδωσης στο τέλος των βρόχων εκτελούν πάντα άλμα, και ότι κάθε βρόχος εκτελεί 1000 επαναλήψεις. Α. Εκτελέστε το πρόγραμμα που γράψατε πάνω στους 4 βρόχους, πρώτα με στατική και μετά με δυναμική δρομολόγηση. Σχολιάστε τις διαφορές στις δύο τεχνικές δρομολόγησης. Δοκιμάστε τουλάχιστον δύο τιμές για το Ν, μία πολύ μικρή και μία πολύ μεγάλη, ώστε να δείτε πώς επηρεάζεται η δρομολόγηση από τις εξαρτήσεις μνήμης. Β. Στη συνέχεια, προσπαθήστε να εφαρμόσετε με το χέρι τεχνικές μετασχηματισμού στους κώδικες των 4 βρόχων, όπως για παράδειγμα πραγματικό και συμβολικό ξεδίπλωμα, ώστε να βελτιώσετε τη συμπεριφορά της στατικής δρομολόγησης όσο μπορείτε περισσότερο, και ξαναεκτελέστε το πρόγραμμα. Σχολιάστε τις διαφορές που παρατηρείτε σε σχέση με την προηγούμενη εκτέλεση. Άσκηση 12: Στην άσκηση αυτή θα μελετήσουμε την εκτέλεση με στατική δρομολόγηση του βρόχου διανυσματικής επεξεργασίας που είδαμε και στην άσκηση 5. Υποθέστε τώρα ότι ο κώδικας αυτός εκτελείται σε έναν επεξεργαστή MIPS, όπου: Όλες οι εντολές σταθερής υποδιαστολής εκτός από τις εντολές προσπέλασης μνήμης έχουν διάρκεια εκτέλεσης 1 κύκλο μηχανής. Οι εντολές προσπέλασης μνήμης εκτελούνται σε 2 κύκλους μηχανής. Έτσι, ένα δεδομένο που φορτώνεται από τη μνήμη μπορεί να χρησιμοποιηθεί με καθυστέρηση ενός κύκλου μηχανής. Από την άλλη μεριά, κάποιο δεδομένο που αποθηκεύεται στη μνήμη μπορεί να σταλεί με το μηχανισμό παροχέτευσης απ ευθείας στη φάση προσπέλασης μνήμης της αντίστοιχης εντολής αποθήκευσης. Οι εντολές κινητής υποδιαστολής εκτελούνται σε χρόνους 4, 6 και 16 κύκλων μηχανής χωρίς επικάλυψη, για πράξεις πρόσθεσης, πολλαπλασιασμού και διαίρεσης, αντίστοιχα. Οι εντολές διακλάδωσης εκτελούνται στη φάση αποκωδικοποίησης με έναν κύκλο καθυστέρησης. Ο μηχανισμός παροχέτευσης στέλνει όποιο δεδομένο απαιτείται, απ ευθείας στη φάση αποκωδικοποίησης της αντίστοιχης εντολής διακλάδωσης. Η εντολή που ακολουθεί μια εντολή διακλάδωσης εκτελείται πάντα, γι αυτό και αν ο μεταγλωττιστής δε βρει άλλη εντολή, εισάγει εντολή nop στη θέση καθυστέρησης. Ο κώδικας της άσκησης 5 δίνεται πριν τη συμπλήρωση της θέσης καθυστέρησης των διακλαδώσεων. Α. Θεωρήστε ένα βαθμωτό επεξεργαστή MIPS. Πόσους κύκλους μηχανής χρειάζεται κάθε επανάληψη του βρόχου, (i) όταν οι εντολές του έχουν τη δρομολόγηση που προκύπτει από την παραπάνω σειρά, και (ii) όταν ο μεταγλωττιστής αναδιατάξει τις εντολές, ώστε να επιτύχει το συντομότερο χρόνο εκτέλεσης ανά επανάληψη; Στην πρώτη περίπτωση συμπληρώστε τη θέση καθυστέρησης των εντολών διακλάδωσης με εντολή nop.

3 Β. Στη συνέχεια, θεωρήστε ένα βαθμωτό επεξεργαστή MIPS, που όμως είναι βελτιωμένος σε σχέση με τον παραπάνω με προσθήκη μεγάλου αριθμού υπομονάδων εκτέλεσης πράξεων κινητής υποδιαστολής. Ξεδιπλώστε το βρόχο όσες φορές χρειάζεται και αναδιατάξτε τις ε- ντολές του νέου βρόχου, συμπληρώνοντας κατάλληλα τη θέση καθυστέρησης των εντολών διακλάδωσης, ώστε να μην υπάρχει κανένα πάγωμα ή χαμένος κύκλος μηχανής στην εκτέλεσή του. Για να επιτευχθεί ο συντομότερος χρόνος εκτέλεσης, πρέπει οι εντολές ελέγχου του βρόχου μεταβολές δεικτών και έλεγχος τερματισμού να εκτελούνται μια φορά ανά επανάληψη και να είναι κατάλληλα δρομολογημένες, ώστε να μην αυξάνουν το χρόνο εκτέλεσης του βρόχου. Όμως, επειδή δεν υπάρχει άλλη υποστήριξη υλικού, δε μπορείτε να μετακινήσετε εντολές που προκαλούν ειδική περίπτωση εδώ προσπελάσεις μνήμης και διαιρέσεις παραβιάζοντας διαδικασιακές εξαρτήσεις. Πόσες φορές πρέπει να ξεδιπλωθεί ο βρόχος ώστε να επιτευχθεί ο πιο πάνω στόχος; Δώστε το χρονισμό στην εκτέλεση των εντολών μιας επανάληψης του νέου βρόχου. Πόσους κύκλους μηχανής χρειάζεται κάθε επανάληψη του νέου βρόχου και σε πόσους κύκλους μηχανής ανά επανάληψη του αρχικού βρόχου αντιστοιχεί ο χρόνος αυτός; Υποθέστε ότι με ένα ξεδίπλωμα k φορές, ο μεταγλωττιστής δημιουργεί κατάλληλο κώδικα στις διευθύνσεις exfoo1, exfoo2,, exfook που αποτελούν τις διευθύνσεις προορισμού των αντίστοιχων διακλαδώσεων στο σώμα του βρόχου, ο οποίος συμπληρώνει προηγούμενες επαναλήψεις του αρχικού βρόχου που δεν έχουν ακόμα τελειώσει. Γ. Θεωρήστε τώρα ότι ο προηγούμενος επεξεργαστής διαθέτει επιπλέον τη δυνατότητα υποθετικής φόρτωσης μέσω των εντολών: ldc1z $FRdest, offset($rbase), $FRcond ldc1nz $FRdest, offset($rbase), $FRcond όπου η φόρτωση ολοκληρώνεται, μόνο αν το τελευταίο τελούμενο καταχωρητής κινητής υποδιαστολής έχει μηδενική ή μη μηδενική τιμή, αντίστοιχα. Να επαναλάβετε τα ζητούμενα του προηγούμενου ερωτήματος, φροντίζοντας, ώστε με την αναδιάταξη των εντολών να χρησιμοποιείτε όπου πρέπει τις παραπάνω εντολές υποθετικής φόρτωσης, αντικαθιστώντας απλές εντολές φόρτωσης. Υποθέστε και πάλι κατάλληλο κώδικα στις διευθύνσεις exfoo1, exfoo2,, exfook, ώστε να συμπληρώνονται ημιτελείς προηγούμενες επαναλήψεις του αρχικού βρόχου. Δ. Θεωρήστε τώρα έναν VLIW επεξεργαστή, ο οποίος σε κάθε λέξη εντολής κωδικοποιεί 5 απλές εντολές MIPS, από τις οποίες οι δύο είναι εντολές κινητής υποδιαστολής, οι δύο είναι εντολές προσπέλασης μνήμης, και η πέμπτη είναι εντολή σταθερής υποδιαστολής. Ο επεξεργαστής δεν αντιμετωπίζει εξαρτήσεις μεταξύ των επιμέρους εντολών MIPS της ίδιας λέξης εντολής. Υποθέστε ότι οι εντολές διακλάδωσης δεν έχουν καθυστέρηση, ενώ οι εντολές κινητής υποδιαστολής εκτελούνται σε οσεσδήποτε υπομονάδες είναι απαραίτητο. (1) Να ξεδιπλώσετε το βρόχο και να δώστε μια κωδικοποίηση των εντολών MIPS σε εντολές VLIW, των οποίων η δρομολόγηση να μην οδηγεί σε πάγωμα ή χαμένους κύκλους μηχανής. (2) Για βαθμό ξεδιπλώματος 4 φορές: Πόσους κύκλους μηχανής χρειάζεται κάθε επανάληψη του βρόχου και σε πόσους κύκλους μηχανής ανά επανάληψη του αρχικού βρόχου αντιστοιχεί ο χρόνος αυτός; Πόσο ποσοστό θέσεων επιμέρους εντολών MIPS καλύπτεται και πόσοι καταχωρητές απαιτούνται στον κώδικα VLIW που βρήκατε; (3) Τι βαθμός ξεδιπλώματος απαιτείται για μέγιστη πλήρωση θέσεων στις εντολές VLIW, και σε πόσους κύκλους μηχανής για κάθε επανάληψη του νέου και του αρχικού βρόχου αντιστοιχεί; Πόσο διαφέρει το μέγεθος του κώδικα σε αριθμό εντολών VLIW μεταξύ αυτής και της προηγούμενης περίπτωσης; Ε. Επιστρέψτε τώρα στο βαθμωτό επεξεργαστή MIPS του ερωτήματος Γ. (1) Δώστε τον κώδικα που προκύπτει με συμβολικό ξεδίπλωμα του αρχικού βρόχου για αυτόν τον επεξεργαστή, αντικαθιστώντας απλές εντολές φόρτωσης με υποθετικές, όπου αυτό είναι απαραίτητο. Πόσους κύκλους μηχανής χρειάζεται κάθε επανάληψη του βρόχου; (2) Επαναλάβετε, εφαρμόζοντας πριν το συμβολικό όσες φορές πραγματικό ξεδίπλωμα απαιτείται, ώστε να μην εμφανίζεται πάγωμα ή χαμένος κύκλος μηχανής στην εκτέλεση του βρόχου.

4 Και για τις δύο περιπτώσεις αγνοήστε τον πρόσθετο κώδικα αποκατάστασης που απαιτείται, για την περίπτωση που κάποια διακλάδωση του σώματος του αρχικού βρόχου εκτελέσει άλμα σε μια από τις διευθύνσεις exfoo1, exfoo2,, exfook. Να δώσετε όμως τόσο τον πρόλογο, όσο και τον επίλογο του συμβολικού ξεδιπλώματος. Άσκηση 13: Η υποθετική εκτέλεση εντολών σε μια κλασική αρχιτεκτονική MIPS γίνεται μέσω εντολών διακλάδωσης, οπότε οι εντολές που ακολουθούν μια διακλάδωση εκτελούνται υποθετικά μέχρι την αποτίμηση της συνθήκης της διακλάδωσης. Μια μέθοδος που χρησιμοποιείται συχνά σαν εναλλακτική των εντολών διακλάδωσης είναι η βεβαιωμένη εκτέλεση (predication). Με τη μέθοδο αυτή, δεν απαιτείται εντολή διακλάδωσης πριν την εντολή που εκτελείται υποθετικά, αλλά η συνθήκη εκτέλεσης ενσωματώνεται στην εντολή με κατάλληλη μορφή προθέματος. Για παράδειγμα, η υποθετική εκτέλεση μιας εντολής πρόσθεσης με συνθήκη εκτέλεσης τη μη μηδενική τιμή ενός καταχωρητή, έστω του $8, θα γίνει με τη βοήθεια εντολής διακλάδωσης από τον κώδικα: beq $8,$0,L add $1,$2,$3 L: <άλλη εντολή> ενώ με βεβαιωμένη εκτέλεση από τον κώδικα: ($8) add $1,$2,$3 οπότε η εντολή add εκτελείται μόνο αν ο καταχωρητής $8 δεν έχει τιμή 0, διαφορετικά η ε- ντολή συμπεριφέρεται σαν τη μηδενική εντολή nop. Για την υποστήριξη της βεβαιωμένης εκτέλεσης στην αρχιτεκτονική MIPS, εισάγουμε έναν αριθμό από καταχωρητές βεβαίωσης μεγέθους 1 bit, οι οποίοι λαμβάνουν τιμή από εντολές σύγκρισης των περιεχομένων δύο καταχωρητών που έχουν τη γενική μορφή: cmp.xx p1,p2=$rs,$rt όπου p1 και p2 καταχωρητές βεβαίωσης, από τους ο οποίους ο πρώτος λαμβάνει τιμή 1 αν το αποτέλεσμα της σύγκρισης είναι Αληθές, και 0 αν το αποτέλεσμα της σύγκρισης είναι Ψευδές, και ο δεύτερος προαιρετικά λαμβάνει τη συμπληρωματική τιμή του πρώτου. Η σύγκριση καθορίζεται από την τιμή του επιθέματος xx, και για παράδειγμα η εντολή cmp.eq εκτελεί σύγκριση για ισότητα, ενώ η εντολή cmp.ne εκτελεί σύγκριση για ανισότητα. Οι καταχωρητές που συγκρίνονται είναι οι $rs και $rt. Μια εντολή σύγκρισης δέχεται κι αυτή βεβαίωση, και αν ο καταχωρητής βεβαίωσής της έχει τιμή 0, συμπεριφέρεται σαν εντολή nop. A. Ξαναγράψτε τον πιο κάτω κώδικα MIPS 1 με τη μέθοδο της βεβαιωμένης εκτέλεσης, έτσι ώστε να μην περιέχει διακλαδώσεις, εκτός από την τελευταία που κλείνει το βρόχο: L: lw $13,0($1) subu $2,$13,$14 bne $2,$0,L1 lw $2,24($6) addiu $6,$6,4 beq $2,$0,L2 L1: ldc1 $f0,0($2) slt.d $8,$f0,$f8 beq $8,$0,L3 mul.d $f0,$f0,$f2 L3: add.d $f0,$f0,$f4 sdc1 $f0,0($2) L2: addiu $1,$1,4 1 Η εντολή slt.d δεν ανήκει στο σύνολο εντολών MIPS, και απλά επεκτείνει την ακέραια εντολή slt για αριθμούς κινητής υποδιαστολής μεγέθους d (double), με ακέραιο λογικό αποτέλεσμα.

5 bne $1,$9,L Υποθέστε ότι διαθέτετε 8 καταχωρητές βεβαίωσης p0 - p7. Ποιες είναι οι εξαρτήσεις στον αρχικό κώδικα, και ποιες στον τελικό; Πώς διαφέρουν αυτές και τι πλεονέκτημα προσφέρει η βεβαιωμένη εκτέλεση στην απόδοση του κώδικα; B. Υποθέστε ότι οι δύο κώδικες εκτελούνται σε ένα βαθμωτό επεξεργαστή MIPS, όπου: Όλες οι εντολές σταθερής υποδιαστολής εκτός από τις εντολές προσπέλασης μνήμης έχουν διάρκεια εκτέλεσης 1 κύκλο μηχανής. Οι εντολές προσπέλασης μνήμης εκτελούνται σε 2 κύκλους μηχανής. Έτσι, ένα δεδομένο που φορτώνεται από τη μνήμη μπορεί να χρησιμοποιηθεί με καθυστέρηση ενός κύκλου μηχανής. Από την άλλη μεριά, κάποιο δεδομένο που αποθηκεύεται στη μνήμη μπορεί να σταλεί με το μηχανισμό παροχέτευσης απ ευθείας στη φάση προσπέλασης μνήμης της αντίστοιχης εντολής αποθήκευσης. Οι εντολές κινητής υποδιαστολής εκτελούνται σε χρόνους 2, 4 και 10 κύκλων μηχανής χωρίς επικάλυψη, για πράξεις σύγκρισης, πρόσθεσης και πολλαπλασιασμού, αντίστοιχα. Οι εντολές διακλάδωσης εκτελούνται στη φάση εκτέλεσης χωρίς καθυστέρηση. Πόσους κύκλους μηχανής χρειάζεται κάθε επανάληψη του βρόχου για καθέναν από τους δύο κώδικες, όταν οι διακλαδώσεις χρησιμοποιούν στατική πρόβλεψη με βάση το πρόσημο της μετατόπισης και οι τρεις διακλαδώσεις στο σώμα του βρόχου του πρώτου κώδικα εκτελούν το άλμα τους σε ποσοστό 60% η πρώτη, 5% η δεύτερη και 25% η τρίτη; Γ. Εφαρμόστε την τεχνική του συμβολικού ξεδιπλώματος στον κώδικα με βεβαιωμένη εκτέλεση για τον ίδιο επεξεργαστή. Διαχωρίστε τον κώδικα στα λιγότερα δυνατά επίπεδα εξαρτήσεων, ώστε να μην έχετε κανένα πάγωμα στην εκτέλεση του κώδικα, αλλά και να χρειαστείτε τον ελάχιστο αριθμό πρόσθετων εντολών αντιγραφής. Πόσους κύκλους μηχανής χρειάζεται τώρα κάθε επανάληψη του βρόχου; Δ. Πώς θα διαμορφωνόταν ο κώδικας που βρήκατε στο ερώτημα Α, για εκτέλεση σε μια αρχιτεκτονική σαν την ΙΑ-64, η οποία δέχεται VLIW εντολές με τη μορφή που ορίζονται στην ΙΑ-64 (δέσμες με σχεδιότυπο, συλλαβές και ακινητοποιήσεις), αλλά με επιμέρους εντολές (συλλαβές) τις παραπάνω εντολές MIPS; Πριν τη μετατροπή σε κώδικα VLIW, εφαρμόστε πραγματικό ξεδίπλωμα, ώστε να λάβετε υψηλότερο βαθμό ILP. Πόσους κύκλους μηχανής χρειάζεται τώρα κάθε επανάληψη του βρόχου; Άσκηση 14: Θεωρήστε την τεχνική πρόβλεψης πλαισίου (way prediction) για κρυφές μνήμες με οργάνωση συνόλου συσχέτισης (set associative). Με την τεχνική αυτή, ο χρόνος επιτυχημένης προσπέλασης μειώνεται σε αυτόν που αντιστοιχεί στις πιο γρήγορες κρυφές μνήμες με οργάνωση άμεσης απεικόνισης (direct mapped). Η τεχνική πρόβλεψης πλαισίου μπορεί όμως να χρησιμοποιηθεί και για κάποιον δεύτερο σκοπό: τη μείωση του κόστους συσκευασίας του chip. Έστω ο επεξεργαστής MIPS R10K. Όσο αφορά το σύστημα μνήμης, το υλικό του επεξεργαστή αυτού περιλαμβάνει: κρυφή μνήμη L1, κύκλωμα σύγκρισης ετικετών για κρυφή μνήμη L2, καθώς και κύκλωμα πρόβλεψης πλαισίου για κρυφή μνήμη L2. Έτσι, ετικέτες από τα πλαίσια της μνήμης L2 φτάνουν στον επεξεργαστή για ανίχνευση επιτυχίας ή αποτυχίας στην κρυφή μνήμη L2. Το κύκλωμα πρόβλεψης πλαισίου περιλαμβάνει έναν πίνακα πρόβλεψης μεγέθους 8Κ bits, με κάθε bit να επιλέγει ένα από δύο πλαίσια. Η κρυφή μνήμη L2 υλοποιείται εξωτερικά του επεξεργαστή και πρέπει να είναι οργανωμένη σε σύνολα συσχέτισης 2 τρόπων. Α. Εξηγήστε πώς η τεχνική πρόβλεψης πλαισίου μπορεί να μειώσει το κόστος συσκευασίας του chip όσο αφορά τον αριθμό ακίδων (pins) του επεξεργαστή που απαιτούνται για την επικοινωνία με την κρυφή μνήμη L2. Β. Συγκρίνετε την απόδοση του επεξεργαστή στην επικοινωνία με τη μνήμη αυτή, σε σχέση με έναν επεξεργαστή MIPS R10K που δε χρησιμοποιεί πρόβλεψη πλαισίου, όταν ο δεύτερος

6 έχει (α) όσες ακίδες απαιτούνται για την προσπέλαση της L2 χωρίς πρόβλεψη πλαισίου, και (β) τον ίδιο αριθμό ακίδων με τον πρώτο. Γ. Έστω ότι η πρόβλεψη πλαισίου γίνεται με βάση τον αλγόριθμο του πιο πρόσφατα χρησιμοποιηθέντος (most recently used) πλαισίου. Δώστε σε μορφή γράφου τις μεταβάσεις στην κατάσταση πρόβλεψης ενός συνόλου, όπου να φαίνονται μεταβάσεις σε επιτυχία πρόβλεψης, σε αποτυχία πρόβλεψης, καθώς και σε αποτυχία στην προσπέλαση της κρυφής μνήμης L2. Δ. Αν η κρυφή μνήμη L2 έχει μέγεθος 512ΚΒ και πλαίσια των 64 bytes, πόσο μέγεθος πίνακα πρόβλεψης απαιτείται; Επαναλάβετε για μέγεθος μνήμης 4ΜΒ. Πώς θα απεικονίζατε τυχόν περισσότερα σύνολα, και πώς θα χρησιμοποιούσατε τυχόν περισσευούμενα bits στον πίνακα των 8Κ bits που διατίθεται στον επεξεργαστή; Άσκηση 15: Θεωρήστε το βασικό υποκλέπτον πρωτόκολλο (snooping protocol) συνοχής κρυφής μνήμης που περιγράφεται στην παράγραφο 4.2 του βιβλίου των Hennessy-Patterson (4 η έκδοση). Προσθέστε στο πρωτόκολλο αυτό μια «καθαρή» αποκλειστική κατάσταση, ώστε να γίνεται διαχωρισμός μεταξύ ενός αληθινά κοινόχρηστου πλαισίου από ένα πλαίσιο κρυφής μνήμης που βρίσκεται σε «καθαρή» κατάσταση σε μία μόνο κρυφή μνήμη. Εξηγήστε τη λειτουργία του νέου πρωτοκόλλου σε σχέση με το αρχικό, δίνοντας το διάγραμμα καταστάσεων σε μορφή παρόμοια με αυτή του Σχήματος 4.7 του βιβλίου.