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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πολλαπλασιασμός και Διαίρεση Ακεραίων

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

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

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

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

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

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

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

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

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

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

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

Chapter 3. Αριθμητική Υπολογιστών. (συνέχεια)

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

Chapter 3. Αριθμητική Υπολογιστών. Έβδομη (7 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

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

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

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

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

Στοιχεία από Assembly Γιώργος Μανής

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

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

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

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

Εντολές γλώσσας μηχανής

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

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

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

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

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

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

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

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

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

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

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

Chapter 3 Αριθμητική Υπολογιστών

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

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

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

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

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ. A. Μετατροπή αριθμών 1. Μετατροπή αριθμών από δεκαδικό σε δυαδικό σύστημα αρίθμησης

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

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

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

Transcript:

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

2 for (i = 0; i < 1000; i++) { if (b[i] >= c[i]) d[i] = a[i] + b[i] - c[i]; else d[i] = a[i] + c[i] b[i]; } όπου a, b, c, d είναι διανύσµατα 32-bit ακεραίων, και i είναι βαθµωτή 32-bit ακέραια µεταβλητή. Αν τα διανύσµατα a, b, c και d βρίσκονται τοποθετηµένα στη µνήµη µε αρχικές διευθύνσεις που περιέχονται στους καταχωρητές $s0, $s1, $s2 και $s3, αντίστοιχα, να µεταφράσετε τον παραπάνω κώδικα C σε κώδικα κλασικού συνόλου εντολών MIPS, καθώς και σε κώδικα του συνόλου εντολών MIPS των ερωτηµάτων Β και Γ. Αν η διακλάδωση στο σώµα του παραπάνω βρόχου εκτελεί άλµα στις µισές επαναλήψεις, να βρείτε τον αριθµό εντολών που εκτελούνται, καθώς και τον αντίστοιχο αριθµό κύκλων µηχανής, για εκτέλεση του κώδικα (α) στην κλασική ΜΕ MIPS τόσο απλού όσο και πολλαπλών κύκλων µηχανής, (β) στη ΜΕ MIPS του ερωτήµατος Β, (γ) στη ΜΕ MIPS του ερωτήµατος Γ και (δ) στη ΜΕ MIPS του ερωτήµατος. Σχολιάστε τα αποτελέσµατα που βρήκατε. Άσκηση 2 Θεωρήστε τη ΜΕ της αρχιτεκτονικής MIPS καλωδιωµένης λογικής για κύκλο εντολής τόσο απλού, όσο και πολλαπλών κύκλων µηχανής. Η κλασική διευθυνσιοδότηση µνήµης που υποστηρίζεται από την αρχιτεκτονική MIPS είναι η έµµεση µέσω καταχωρητή µε µετατόπιση. Υποθέστε τώρα ότι θέλουµε να εµπλουτίσουµε την αρχιτεκτονική µε τις ακόλουθες πρόσθετες µεθόδους διευθυνσιοδότησης: Α. Έµµεση µέσω καταχωρητή χωρίς µετατόπιση µε αύξηση καταχωρητή βάσης: lwi $rt,($rs) swi $rt,($rs) όπου η τελική διεύθυνση προσπέλασης προέρχεται κατ ευθείαν από τον καταχωρητή $rs, και επιπλέον ο καταχωρητής $rs αυξάνεται κατά 4. Β. ιπλά έµµεση µέσω καταχωρητή µε µετατόπιση: lwd $rt,off(($rs)) swd $rt,off(($rs)) όπου η τελική διεύθυνση προσπέλασης είναι το άθροισµα του περιεχοµένου της θέσης µνή- µης µε διεύθυνση που είναι το περιεχόµενο του καταχωρητή βάσης $rs, µε την προέκταση της µετατόπισης off. Γ. ιπλά έµµεση µέσω καταχωρητή µε µετατόπιση και ενηµέρωση: lwdp $rt,(off($rs)) swdp $rt,(off($rs)) όπου η τελική διεύθυνση προσπέλασης είναι το περιεχόµενο της θέσης µνήµης µε διεύθυνση που είναι το άθροισµα του περιεχοµένου του καταχωρητή βάσης $rs µε την προέκταση της µετατόπισης off, και επιπλέον η τελική διεύθυνση προσπέλασης αποθηκεύεται στον $rs.. Οι τρεις παραπάνω διευθυνσιοδοτήσεις για εντολές έµµεσου άλµατος µε σύνδεση: jalmi $rt,($rs) jalmd $rt,off(($rs)) jalmdp $rt,(off($rs)) όπου η τελική διεύθυνση προσπέλασης περιέχει τη διεύθυνση προορισµού του άλµατος, ενώ ο καταχωρητής $rt χρησιµοποιείται για τη σύνδεση, λαµβάνοντας την αυξηµένη τιµή του PC. Χωρίς να εισάγετε νέες υποµονάδες στη ΜΕ πλην πολυπλεκτών, εξηγήστε εάν και πώς µπορείτε να υποστηρίξετε τις παραπάνω διευθυνσιοδοτήσεις και εντολές, τόσο στην περίπτωση απλού, όσο και στην περίπτωση πολλαπλών κύκλων µηχανής για κάθε κύκλο εντολής. Πιο συγκεκριµένα, τι προσθήκες χρειάζεστε στη ΜΕ για την υποστήριξη των εντολών αυ-

3 τών; Χρειάζεστε κάποιους νέους δρόµους µεταφοράς πληροφορίας; Χρειάζεστε κάποια νέα σήµατα ελέγχου; Οι όποιες τροποποιήσεις θα πρέπει να ελαχιστοποιούν τη διάρκεια του κύκλου µηχανής στην πρώτη, και τον αριθµό κύκλων µηχανής για τις εµπλεκόµενες εντολές στη δεύτερη περίπτωση. Ειδικά για την περίπτωση πολλαπλών κύκλων, δε θα πρέπει να αυξάνεται η διάρκεια του κύκλου µηχανής. Στην περίπτωση των πολλαπλών κύκλων µηχανής, να δώσετε την απαραίτητη προσθήκη στη µηχανή καταστάσεων που να περιγράφει την εκτέλεση των εντολών. Να απαντήσετε ανεξάρτητα για καθένα από τα ερωτήµατα Α-. Άσκηση 3 Θεωρήστε τη ΜΕ της αρχιτεκτονικής MIPS καλωδιωµένης λογικής για κύκλο εντολής πολλαπλών κύκλων µηχανής. Στην απλουστευµένη υλοποίηση που µελετήσαµε στο µάθηµα, δεν υπήρχαν εντολής πολλαπλασιασµού και διαίρεσης σταθερής υποδιαστολής. Οι εντολές αυτές παραδοσιακά στην αρχιτεκτονική MIPS έχουν ως ορίσµατα δύο κατ ευθείαν τελούµενα εισόδου, ενώ ως τελούµενο εξόδου έχουν τον υπονοούµενο διπλό καταχωρητή ειδικού σκοπού hi/lo. Για τον πολλαπλασιασµό, έξοδος είναι το διπλού εύρους αποτέλεσµα της πράξης, ενώ για τη διαίρεση, έξοδοι είναι το πηλίκο (στον lo) και το υπόλοιπο (στον hi). Οι τιµές που περιέχονται σε κάθε τµήµα του καταχωρητή hi/lo λαµβάνονται µε τη βοήθεια των εντολών mfhi και mflo, οι ο- ποίες ως µοναδικό όρισµα δέχονται τον καταχωρητή όπου αντιγράφεται το περιεχόµενο του hi ή του lo, αντίστοιχα. Αν θέλουµε να υποστηρίξουµε τέτοιες εντολές στη ΜΕ της αρχιτεκτονικής MIPS, είναι απαραίτητο να προσθέσουµε στη ΜΕ µια µονάδα πολλαπλασιασµού/διαίρεσης, µε ενσωµατωµένο σε αυτή το διπλό καταχωρητή hi/lo. Θεωρήστε ότι η νέα µονάδα µε την εντολή mult υλοποιεί πολλαπλασιασµό µε εκτέλεση διάρκειας 4 κύκλων µηχανής, ενώ µε την εντολή div υλοποιεί διαίρεση µε εκτέλεση διάρκειας 33 κύκλων µηχανής. Στον πολλαπλασιασµό ο lo λαµβάνει τιµή στο τέλος του 3 ου κύκλου, ενώ στη διαίρεση ο lo λαµβάνει τιµή στο τέλος του 32 ου κύκλου. Α. ώστε το σχηµατικό διάγραµµα της ΜΕ που προκύπτει µε την ενσωµάτωση της παραπάνω µονάδας πολλαπλασιασµού/διαίρεσης, όπου να φαίνεται πώς η νέα µονάδα συνδέεται στην υπάρχουσα ΜΕ. Εξηγήστε όποιες τροποποιήσεις απαιτούνται στην υπάρχουσα ΜΕ. ώστε έναν πίνακα µε όλα τα σήµατα ελέγχου υπάρχοντα, τροποποιηµένα υπάρχοντα ή καινούργια που χρησιµοποιούνται για την υποστήριξη των τεσσάρων νέων εντολών και δείξτε τις προσθήκες στη συνολική µηχανή καταστάσεων της αρχιτεκτονικής για τις εντολές αυτές. Ελαχιστοποιήστε τη συνολική διάρκεια των εντολών. Ειδικότερα, οι mult και div πρέπει να εισέρχονται στους κύκλους εκτέλεσης της αντίστοιχης πράξης, και οι mfhi και mflo πρέπει να εισέρχονται στη φάση αποθήκευσης αποτελέσµατος, αµέσως µετά τη φάση αποκωδικοποίησης. Β. Θεωρήστε τον ακόλουθο κώδικα C: x = 0; for (i = 0; i < n; i++) x += c[i]? a[i] * b[i] / c[i] : a[i]; y = x % n; όπου a, b, c είναι διανύσµατα 32-bit ακεραίων, και i, x, y, n είναι βαθµωτές 32-bit ακέραιες µεταβλητές. Αν τα διανύσµατα a, b και c βρίσκονται τοποθετηµένα στη µνήµη µε αρχικές διευθύνσεις που περιέχονται στους καταχωρητές $s0, $s1 και $s2, αντίστοιχα, να γράψετε τον αντίστοιχο κώδικα σε συµβολική γλώσσα MIPS, χρησιµοποιώντας µόνο πραγµατικές εντολές και όχι ψευδοεντολές. Ποιος είναι ο ελάχιστος και ποιος είναι ο µέγιστος αριθµός εντολών MIPS που εκτελούνται από αυτόν τον κώδικα; Ποιος είναι ο µέσος αριθµός εντολών που εκτελούνται από τον κώδικα, εάν γνωρίζετε ότι ο πίνακας c περιέχει µηδενικές τιµές µε πιθανότητα 10%; Για κάθε περίπτωση µέγιστου, ελάχιστου και µέσου αριθµού εντολών, πόσοι κύκλοι µηχανής απαιτούνται για την εκτέλεση του κώδικα, σε τι ποσοστό αυτοί οι κύκλοι

4 καταναλώνονται σε πολλαπλασιασµό ή διαίρεση, ποιο είναι το µέσο CPI που προκύπτει, και ποιος είναι ο χρόνος εκτέλεσης, αν αυτή γίνεται σε µηχανή 2GHz; Γ. Θεωρήστε τώρα µια νέα εντολή muldiv $rs,$rt,$rd η οποία συνδυάζει τις δύο πράξεις πολλαπλασιασµού και διαίρεσης, έτσι ώστε η διαίρεση να χρησιµοποιεί ως διαιρετέο το διπλού εύρους αποτέλεσµα του πολλαπλασιασµού για επίτευξη µεγαλύτερης ακρίβειας, σε βάρος όµως του χρόνου εκτέλεσης της διαίρεσης, που τώρα απαιτεί 64 κύκλους. Ο πολλαπλασιασµός γίνεται µεταξύ των καταχωρητών $rs και $rt, ενώ ο διαιρέτης της διαίρεσης λαµβάνεται από τον καταχωρητή $rd που για να διαβαστεί απαιτείται τροποποίηση στην 1 η είσοδο ανάγνωσης του ΦΚ, ώστε µέσω κατάλληλου πολυπλέκτη να επιλέγεται το πεδίο rd της λέξης εντολής αντί του πεδίου rs. Να τροποποιήσετε κατάλληλα το διάγραµµα της ΜΕ του ερωτήµατος Α, να συµπληρώσετε τον πίνακα σηµάτων ελέγχου µε όποια σήµατα απαιτούνται, και να δείξτε τις νέες καταστάσεις της µηχανής καταστάσεων, για υποστήριξη της νέας εντολής. Στη συνέχεια να επαναλάβετε το ερώτηµα Β, χρησιµοποιώντας όµως τη νέα εντολή muldiv αντί των κλασικών mult και div, όπου αυτό έχει νόηµα. Άσκηση 4 Στην άσκηση αυτή θα µελετήσουµε µια ΜΕ αρχιτεκτονικής µνήµης-µνήµης µε έλεγχο καλωδιωµένης λογικής πολλαπλών κύκλων µηχανής ανά κύκλο εντολής. Ένα σχηµατικό διάγραµµα της ΜΕ αυτής δίνεται παρακάτω, όπου µε µαύρο σηµειώνονται οι δρόµοι γενικών δεδοµένων, µε µπλε οι δρόµοι εντολών, µε πράσινο οι δρόµοι διευθύνσεων, µε µωβ οι δρόµοι ελέγχου (συµπεριλαµβανοµένων των άµεσων τελούµενων και κατ ευθείαν διευθύνσεων) και µε πορτοκαλί ο δρόµος εξωτερικών διακοπών. PC Μ Μ & Μονάδα Μνήµης IR A Μονάδα Ελέγχου ΑΛΜ C B ιακοπή Η ΜΕ δεν περιέχει κανέναν καταχωρητή γενικού σκοπού και οι λειτουργίες των εντολών της ξεκινούν και τελειώνουν στη µνήµη. Περιέχει όµως 5 καταχωρητές ειδικού σκοπού: το µετρητή προγράµµατος PC, τον καταχωρητή IR για την αποθήκευση της τρέχουσας εντολής, τον καταχωρητή C για την προσωρινή αποθήκευση της εξόδου της ΑΛΜ πριν αυτή σταλεί στη µνήµη, και τους καταχωρητές Α και Β για την προσωρινή αποθήκευση δεδοµένων πριν αυτά σταλούν στην ΑΛΜ. Η ΜΕ υποστηρίζει άµεση, κατ ευθείαν, έµµεση, διπλά έµµεση, υπονοούµενη, καθώς και σχετική διευθυνσιοδότηση στις εντολές της. Πέρα από τις εντολές της πιο πάνω ΜΕ που θα περιγράψουµε στη συνέχεια, η λογική λειτουργίας της ΜΕ είναι παρόµοια τόσο µε τη ΜΕ MIPS που µελετήσαµε στο µάθηµα, όσο και µε τη ΜΕ συσσωρευτή που αναπτύσσεται στις λυµένες ασκήσεις. Για να επεκτείνουµε την πιο πάνω ΜΕ για υποστήριξη πιο σύνθετης διευθυνσιοδότησης, εισάγουµε δύο καταχωρητές-δείκτες Χ και Υ. Οι Χ και Υ χρησιµοποιούνται για τις δεικτοδοτούµενες αναφορές στη µνήµη. Η δεικτοδοτούµενη διευθυνσιοδότηση συνδυάζεται µε έµµεση, µε διάφορους τρόπους, όπως φαίνεται στον πίνακα που ακολουθεί, όπου δίνονται αναλυ-

5 τικά οι εντολές της αρχιτεκτονικής µε τις αποδεκτές διευθυνσιοδοτήσεις των τελούµενών τους: ιευθυνσιοδότηση Εντολή (τελούµενο) Κατ ευθείαν Άµεση Έµµεση ιπλά έµµεση εικτ. Χ εικτ. Υ εικτ. Χ / έµµεση Έµµεση / δεικτ. Υ εικτ. Χ / έµµεση / δεικτ. Υ εικτ. Χ / διπλά έµµεση Έµµεση / δεικτ. Υ / έµµεση Υπονοούµενη Σχετική ALU(dest) 1 0 1 0 1 1 1 1 0 0 0 0 0 ALU(src1) 1 0 1 1 1 0 1 0 1 1 0 0 0 ALU(src2) 1 1 1 1 0 1 0 1 0 0 1 0 0 CMP(src1) όπως ALU(src1) CMP(src2) όπως ALU(src2) BRANCH 0 0 0 0 0 0 0 0 0 0 0 0 1 LDX 1 1 1 0 0 1 0 1 0 0 0 0 0 LDY 1 1 1 0 1 0 1 0 0 0 0 0 0 STX 1 0 1 0 0 1 0 1 0 0 0 0 0 STY 1 0 1 0 1 0 1 0 0 0 0 0 0 INCX 0 0 0 0 0 0 0 0 0 0 0 1 0 INCY 0 0 0 0 0 0 0 0 0 0 0 1 0 DECX 0 0 0 0 0 0 0 0 0 0 0 1 0 DECY 0 0 0 0 0 0 0 0 0 0 0 1 0 CMPX όπως LDX CMPY όπως LDY JMP 1 0 1 1 0 0 1 0 0 0 0 0 0 JAL 1 0 1 1 0 0 1 0 0 0 0 0 0 JMPΥ 0 0 0 0 0 0 0 0 0 0 0 1 0 όπου στους συνδυασµούς διευθυνσιοδοτήσεων η επίλυση αναφοράς ακολουθεί την αναγραφόµενη σειρά. Προσέξτε ότι ALU και BRANCH είναι οµάδες εντολών που αναπτύσσονται στη συνέχεια. Επίσης, στις εντολές ALU και CMP δίνονται ξεχωριστές διευθυνσιοδοτήσεις για καθένα από τα τελούµενά τους (εισόδου: src1 και src2, εξόδου: dest). Από τις εντολές που αναγράφονται, οι εντολές της οµάδας ALU είναι οι ADD, SUB, OR και AND, οι οποίες εκτελούν πρόσθεση, αφαίρεση, λογικό άθροισµα και λογικό γινόµενο αντίστοιχα. Και οι τέσσερεις αυτές εντολές έχουν δύο τελούµενα εισόδου και ένα εξόδου, που όλα αναφέρονται στη µνήµη. Κατ εξαίρεση, το δεύτερο τελούµενο εισόδου µπορεί να είναι άµεσο τελούµενο. Οι εντολές ALU εκτελούνται στην ΑΛΜ, και µε την παραγωγή του αποτελέσµατος παράγονται και οι τιµές 3 ψηφίων κατάστασης που αποθηκεύονται σε κατάλληλο καταχωρητή της µονάδας ελέγχου: το ψηφίο Ζ παίρνει τιµή 1 όταν παράγεται µηδενικό αποτέλεσµα, το ψηφίο C παίρνει τιµή 1 όταν παράγεται κρατούµενο εξόδου, και το ψηφίο Ν παίρνει τιµή 1 όταν παράγεται αρνητικό αποτέλεσµα. Σε κάθε άλλη περίπτωση τα ψηφία αυτά παίρνουν τιµή 0. Η εντολή CMP εκτελεί σύγκριση για ισότητα δύο τιµών από τη µνήµη, ή µιας τιµής από τη µνήµη και ενός άµεσου τελούµενου. Το λογικό αποτέλεσµα καταχωρείται σε ένα τέταρτο ψηφίο κατάστασης της µονάδας ελέγχου, το ψηφίο Q. Οι εντολές της οµάδας BRANCH είναι εντολές άλµατος µε συνθήκη, και είναι οι BRZ (Ζ=1), BRNZ (Ζ=0), BRN (Ν=1), BRNN (Ν=0), BRC (C=1), BRNC (C=0), BEQ (Q=1), ΒΝΕ (Q=0), BXZ (X=0), BXNZ (X 0), BYZ (Y=0) και BYNZ (Y 0), όπου στις παρενθέσεις δίνονται οι αντίστοιχες συνθήκες άλµατος. Παρατηρήστε ότι οι συνθήκες σχετίζονται µε τα ψηφία κατάστασης ή τους καταχωρητές-δείκτες. Η διευθυνσιοδότηση όλων αυτών των εντολών είναι σχετική µε την αυξηµένη τιµή του PC. Οι εντολές LDX και LDY φορτώνουν τιµές στους καταχωρητές Χ και Υ από τη µνήµη ή από άµεσο τελούµενο. Οι εντολές STX και STY αποθηκεύουν το περι-

6 εχόµενο του αντίστοιχου καταχωρητή στη µνήµη. Οι εντολές INCX και INCY αυξάνει τον αντίστοιχο καταχωρητή κατά 1, ενώ οι DECX και DECY µειώνουν τον αντίστοιχο καταχωρητή κατά 1. Οι εντολές αυτές εκτελούνται µε οµώνυµα σήµατα ελέγχου σε πρόσθετους α- θροιστές που είναι ενσωµατωµένοι στους καταχωρητές-δείκτες, και όχι στην ΑΛΜ. Οι εντολές CMPX και CMPY συγκρίνουν το περιεχόµενο του αντίστοιχου καταχωρητή για ισότητα µε κάποια τιµή από τη µνήµη ή από άµεσο τελούµενο, αποθηκεύοντας το λογικό αποτέλεσµα της σύγκρισης στο ψηφίο Q. Οι εντολές αυτές, όπως και η παραπάνω CMP εκτελούνται στην ΑΛΜ µε τη µικρολειτουργία compare. Η εντολή JMP εκτελεί άµεσο άλµα, ενώ η εντολή JAL εκτελεί άµεσο άλµα µε σύνδεση µέσω του καταχωρητή Υ. Με την ολοκλήρωση µια ε- ντολής JAL, ο Υ θα περιέχει την προηγούµενη αυξηµένη τιµή του PC. Τέλος η εντολή JMPY εκτελεί έµµεσο άλµα µέσω του Υ. A. Τροποποιήστε το αρχικό διάγραµµα της ΜΕ µε την προσθήκη των καταχωρητών Χ και Υ, καθώς και την προσθήκη των αναγκαίων δρόµων πληροφορίας για την υποστήριξη όλων των διευθυνσιοδοτήσεων που περιλαµβάνουν δεικτοδότηση. Θεωρήστε ότι η διάρκεια κύκλου µηχανής ορίζεται από το µέγιστο µιας προσπέλασης µνήµης, ή µιας πράξης ΑΛΜ. Β. Χρησιµοποιώντας σαν παράδειγµα τη ΜΕ συσσωρευτή που περιγράφεται στις λυµένες ασκήσεις, ορίστε τα σήµατα ελέγχου της ΜΕ που σχεδιάσατε, και κατασκευάστε τους πίνακες µικρολειτουργιών και σηµάτων ελέγχου για όλες τις εντολές της αρχιτεκτονικής. Κάθε εντολή και διευθυνσιοδότηση να ολοκληρώνεται στον ελάχιστο αριθµό φάσεων. Προσπαθήστε να βάλετε στη φάση αποκωδικοποίησης µικρολειτουργίες που µπορούν να γίνουν προκαταβολικά, χωρίς να επηρεάζουν εντολές που δεν τις χρησιµοποιούν. Γ. Σχεδιάστε τη µηχανή καταστάσεων της νέας ΜΕ. Επαναχρησιµοποιήστε όσες καταστάσεις µπορείτε. Βρείτε τις συνθήκες µετάβασης καταστάσεων για τη µηχανή που σχεδιάσατε, και τις λογικές εκφράσεις για τα σήµατα ελέγχου που ορίσατε. Προσέξτε ότι η λογική έκφραση του σήµατος εγγραφής του PC περιλαµβάνει και τις συνθήκες των διακλαδώσεων. Άσκηση 5 Έστω η υποθετική εντολή MIPS vcmp&addmax η οποία συγκρίνει τα στοιχεία δύο διανυσµάτων ακεραίων, και προσθέτει τα µεγαλύτερα στα στοιχεία ενός τρίτου διανύσµατος, παράγοντας επίσης και το πλήθος των ίσων στοιχείων των δύο διανυσµάτων. Η εντολή έχει τη µορφή: vcmp&addmax $rd,$rs,$rt,$ru όπου οι καταχωρητές $rs και $rt περιέχουν τις αρχικές διευθύνσεις των διανυσµάτων που συγκρίνονται, ο καταχωρητής $ru περιέχει την αρχική διεύθυνση του διανύσµατος στο οποίο προστίθενται οι µεγαλύτερες τιµές, ενώ ο καταχωρητής $rd περιέχει αρχικά το µέγεθος των διανυσµάτων, και στο τέλος θα πρέπει να περιέχει το ζητούµενο πλήθος των ίσων τιµών. Α. Γράψτε το πρόγραµµα συµβολικής γλώσσας MIPS για την υλοποίηση (εξοµοίωση της συ- µπεριφοράς) της παραπάνω υποθετικής εντολής. Ποιος είναι ο µέγιστος αριθµός εντολών που θα εκτελεστούν για τη σύγκριση και πρόσθεση δύο διανυσµάτων Ν στοιχείων; Για έλεγχο καλωδιωµένης λογικής πολλαπλών κύκλων µηχανής, ποιος είναι ο αριθµός κύκλων που αντιστοιχεί στο µέγιστο αριθµό εντολών; Β. Μελετήστε την υλοποίηση της εντολής vcmp&addmax σε µικροπρογραµµατισµένη ΜΕ MIPS, τροποποιώντας τη ΜΕ, ώστε να υποστηρίζει τη ροή πληροφορίας που χρειάζεστε, χωρίς να προσθέσετε νέες υποµονάδες. Μπορείτε όµως να προσθέσετε καταχωρητές ειδικού σκοπού, να προσθέσετε επίτρεψη εγγραφής σε υπάρχοντες καταχωρητές, καθώς και να διευρύνετε ή να προσθέσετε πολυπλέκτες. Προσπαθήστε για την ελάχιστη δυνατή τροποποίηση της ΜΕ. ώστε το τελικό διάγραµµα της ΜΕ. Υποθέστε ότι δε µπορείτε να αυξήσετε τις θύρες ανάγνωσης και εγγραφής του ΦΚ, όµως διατίθενται δύο µικρολειτουργίες ανάγνωσής του, η πρώτη διαβάζει τους $rs και $rt, και η δεύτερη διαβάζει τους $rd και $ru, επιλέγοντας τα κατάλληλα πεδία ψηφίων από τη λέξη εντο-

7 λής. Η επιλογή ανάγνωσης του ΦΚ γίνεται µε το σήµα read, το οποίο όταν ενεργοποιείται επιλέγει τη δεύτερη ανάγνωση, διαφορετικά επιλέγεται η πρώτη. Εγγραφές σε πολλαπλούς καταχωρητές πρέπει να γίνονται σε διαφορετικούς κύκλους µηχανής, υποθέτοντας ότι µπορείτε να λάβετε καταχωρητή εγγραφής από όλα τα πεδία της λέξης εντολής, µε κατάλληλο σήµα επιλογής. Στον ίδιο κύκλο µηχανής µπορεί να ενεργοποιείται µία µικρολειτουργία ανάγνωσης και µία µικρολειτουργία εγγραφής του ΦΚ, µε την εγγραφή να γίνεται στο πρώτο µισό και την ανάγνωση στο δεύτερο µισό του κύκλου. Θεωρήστε ότι για τη σύγκριση µεταξύ δύο τιµών µπορείτε εκτός από το σήµα Zero της ΑΛΜ, να χρησιµοποιήσετε και το πιο σηµαντικό ψηφίο της τιµής εξόδου της, έστω Νeg. Γ. Με βάση το πρόγραµµα του ερωτήµατος Α και τις τροποποιήσεις της ΜΕ που προτείνατε στο ερώτηµα Β, γράψτε ένα µικροπρόγραµµα για την υλοποίηση της εντολής vcmp&addmax. Αν χρειαστεί, προσθέστε νέα πεδία µικροεντολής, και ορίστε το συµβολισµό των αντίστοιχων µικρολειτουργιών. Το πεδίο άλµατος της µικροεντολής µπορεί να περιέχει άλµα µε συνθήκη µε βάση τα ψηφία Ζero και Νeg της ΑΛΜ, και µε πεδίο προορισµού τη διεύθυνση προορισµού σε περίπτωση αληθούς συνθήκης. Προσπαθήστε να γράψετε όσο πιο σύντοµο µικροκώδικα µπορείτε. Μετρήστε το µέγιστο αριθµό κύκλων που απαιτούνται για τη σύγκριση και πρόσθεση δύο διανυσµάτων Ν στοιχείων, και σχολιάστε το αποτέλεσµα σε σχέση µε εκείνο του πιο πάνω ερωτήµατος Α. Υπόδειξη: Θεωρήστε ότι οι καταχωρητές $rs, $rt, $ru και $rd δεν είναι απαραίτητο να διατηρήσουν τις αρχικές τιµές τους. Άσκηση 6 Μια αρχιτεκτονική RISC έχει το χαρακτηριστικό ότι διαθέτει περιορισµένες µεθόδους διευθυνσιοδότησης της µνήµης που εφαρµόζονται µόνο σε εντολές φόρτωσης-αποθήκευσης, ό- πως συµβαίνει για παράδειγµα στην αρχιτεκτονική MIPS. Το χαρακτηριστικό αυτό οδηγεί σε απλούστερο έλεγχο της ΚΜΕ, µια που δεν απαιτείται αποκωδικοποίηση διευθυνσιοδότησης, και εποµένως σε πιο σύντοµο κύκλο µηχανής. Έστω όµως ότι επιθυµούµε να ενισχύσουµε το σύνολο εντολών και να υποστηρίξουµε προσπέλαση στη µνήµη σε αριθµητικές/λογικές εντολές της αρχιτεκτονικής MIPS πολλαπλών κύκλων µηχανής ανά κύκλο εντολής, µε τους ακόλουθους τρόπους: ALUm $rt,off($rs) ALUm $rd,$rt,($rs) ALUm ($rd),$rs,$rt όπου ως ALU υπονοούνται όλες οι διαφορετικές αριθµητικές/λογικές εντολές. Με τον πρώτο τρόπο διευθυνσιοδότησης, κάποιο δεδοµένο διαβάζεται από τη διεύθυνση [$rs + off] της µνήµης και προστίθεται στον καταχωρητή $rt. Με τον δεύτερο τρόπο διευθυνσιοδότησης, κάποιο δεδοµένο διαβάζεται από τη διεύθυνση [$rs] της µνήµης, προστίθεται µε τον $rt και το αποτέλεσµα αποθηκεύεται στον καταχωρητή $rd. Τέλος, µε τον τρίτο τρόπο διευθυνσιοδότησης, προστίθενται οι $rs και $rt και το αποτέλεσµα αποθηκεύεται στη διεύθυνση [$rd] της µνήµης. Ένα πλεονέκτηµα που έχουµε από µια τέτοια εντολή είναι η αποφυγή µιας εντολής προσπέλασης µνήµης, καθώς αυτή συµπτύσσεται µε την αριθµητική/λογική εντολή. Το βασικό µειονέκτηµα από την άλλη µεριά είναι η αναγκαία επιµήκυνση του κύκλου µηχανής λόγω της πιο πολύπλοκης αποκωδικοποίησης, µε αποτέλεσµα την αύξηση του µέσου χρόνου εκτέλεσης των παλαιών εντολών. Α. Να κάνετε τις ελάχιστες απαιτούµενες υποθέσεις τροποποίησης της ΜΕ MIPS πολλαπλών κύκλων µηχανής ανά κύκλο εντολής για την υποστήριξη των παραπάνω τύπων αριθµητικών/λογικών εντολών, και να βρείτε τον αριθµό κύκλων µηχανής ανά κύκλο εντολής για κάθε τύπο.

8 Β. Έστω ότι διαθέτουµε τέσσερα προγράµµατα, το gcc, το vortex, το perl και το spice, στα οποία οι διάφοροι τύποι παλαιών εντολών MIPS εµφανίζονται µε τη συχνότητα που δίνει ο πιο κάτω πίνακας: Συχνότητα Τύπος εντολής gcc vortex perl spice Αριθµητική/Λογική 48% 42% 47% 54% Προσπέλαση Μνήµης 33% 46% 37% 39% Άλµα µε συνθήκη 17% 11% 14% 6% Άλµα χωρίς συνθήκη 2% 1% 2% 1% Υποθέστε ότι από τις εντολές προσπέλασης µνήµης τα 2/3 είναι εντολές ανάγνωσης (φόρτωσης από τη µνήµη), ενώ το 1/3 έχει µηδενική µετατόπιση. Από τις αριθµητικές/λογικές εντολές, στα 4/5 το ένα τελούµενο εισόδου αποτελεί µοναδική χρήση αποτελέσµατος κάποιας προηγούµενης εντολής φόρτωσης, ενώ το 1/4 έχει κοινό καταχωρητή αποτελέσµατος µε το ένα τελούµενο εισόδου. Αν οι νέοι τύποι εντολών οδηγούν σε επιµήκυνση του κύκλου µηχανής κατά 10%, βρείτε τι ποσοστό από τις εντολές προσπέλασης µνήµης πρέπει να καταργηθεί σε κάθε πρόγραµµα µε χρήση των νέων τύπων αριθµητικών/λογικών εντολών, ώστε η επίδοση του συστήµατος δηλαδή ο χρόνος εκτέλεσης του προγράµµατος να µην είναι χειρότερη από προηγουµένως. Θεωρήστε ποσοστά x, y και z για κάθε νέο τύπο αριθµητικής/λογικής εντολής, και εκφράστε το ζητούµενο σε µορφή ανισότητας, εξετάζοντας όµως το δυνατό ικανοποίησης της ανισότητας µε βάση τα στοιχεία που δίνονται. Υπενθύµιση: Οι θεωρητικές ασκήσεις παραδίνονται µόνο χειρόγραφες.