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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

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

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

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

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

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

Αριθμητική Ανάλυση & Εφαρμογές

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

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

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

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

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

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

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

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

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

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

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

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

Αριθμητική Υπολογιστών (Κεφάλαιο 3)

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης Θέμα 1ο (3 μονάδες)

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

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

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

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

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

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

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

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2017

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

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

ΑΡΙΘΜΗΤΙΚΗ ΓΙΑ ΥΠΟΛΟΓΙΣΤΕΣ

Ολοκληρωμένα Κυκλώματα

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

Transcript:

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής 11 Νοεμβρίου 2016 Πρώτη Σειρά Ασκήσεων παράδοση: 9 Δεκεμβρίου 2016 Άσκηση 1: Θεωρήστε τη ΜΕΔ της αρχιτεκτονικής MIPS καλωδιωμένης λογικής για κύκλο εντολής τόσο απλού, όσο και πολλαπλών κύκλων μηχανής. Α. Περιγράψτε την πλήρη ροή πληροφορίας και στις δύο περιπτώσεις υλοποίησης απλού και πολλαπλών κύκλων μηχανής για την εντολή: jal L όπου L μια ετικέτα που παριστάνει κάποια γνωστή διεύθυνση μνήμης. Ειδικότερα, να αναφέρετε όλες τις τιμές των σημάτων ελέγχου που παράγονται, καθώς και τις μικρολειτουργίες που εκτελούνται σε κάθε υπομονάδα της ΜΕΔ, με τη σειρά που αυτές εκτελούνται, είτε είναι χρήσιμες για τη συγκεκριμένη εντολή είτε όχι γεγονός το οποίο ζητείται να αναφέρετε. Ακόμη, να γράψετε τις τιμές δεδομένων που φτάνουν σε κάθε υπομονάδα και κάθε πολυπλέκτη. Τέλος, για την περίπτωση πολλαπλών κύκλων μηχανής, να αναφέρετε τις εγγραφές των καταχωρητών Α, Β, C, IR και DR που συμβαίνουν, καθώς και τις τιμές που εγγράφονται. Θεωρήστε ότι στην αρχή του κύκλου εντολής ο PC περιέχει την τιμή 0xc0000a68, ενώ η διεύθυνση L στην οποία αναφέρεται η παραπάνω εντολή είναι η 0xc0001408. Τι θα συνέβαινε αν η διεύθυνση L ήταν η 0xd0001408; Β. Επαναλάβετε για την εντολή: jalr $15,$8 Θεωρήστε ότι στην αρχή του κύκλου εντολής οι καταχωρητές $8 και $15 περιέχουν τις τιμές 0xe100a30c και 0x31b0 αντίστοιχα. Στην περίπτωση αυτή εμφανίζεται το πρόβλημα που συναντήσατε στην προηγούμενη εντολή; Τι σας λέει αυτό για υλοποίηση μακρινών αλμάτων; Άσκηση 2: Α. Θεωρήστε μια ΜΕΔ MIPS απλού κύκλου μηχανής ανά κύκλο εντολής, στην οποία ο ΦΚ διαθέτει μόνο μία θύρα ανάγνωσης. Με βάση τις εντολές MIPS που μελετήσαμε στο μάθημα για τη ΜΕΔ MIPS απλού κύκλου μηχανής, να εξηγήσετε ποιες από αυτές μπορούν και ποιες από αυτές δεν μπορούν να υποστηριχθούν σε μια τέτοια ΜΕΔ. Β. Για να μπορέσουμε να υποστηρίξουμε R-type εντολές στη ΜΕΔ MIPS απλού κύκλου μηχανής ανά κύκλο εντολής με ΦΚ μιας θύρας ανάγνωσης, εισάγουμε έναν καταχωρητή ειδικού σκοπού, έστω Α, έτσι ώστε οι εντολές αυτές να αναφέρονται στον Α ως υπονοούμενο δεύτερο τελούμενο. Έτσι, μια εντολή πρόσθεσης, για παράδειγμα, διαμορφώνεται ως: add $rd,$rs και εκτελεί την πράξη: $rd = $rs + A

2 Η χρήση του Α στην παραπάνω ΜΕΔ υποστηρίζεται με τις δύο νέες εντολές μεταφοράς δεδομένων μεταξύ του ΦΚ και του Α: mta $rs mfa $rd από τις οποίες η πρώτη μεταφέρει μια λέξη δεδομένων από τον $rs στον Α, και η δεύτερη μεταφέρει μια λέξη δεδομένων από τον Α στον $rd. Να προτείνετε ανάλογες τροποποιήσεις για την υποστήριξη και των υπόλοιπων εντολών MIPS που δείξατε ότι δεν υποστηρίζονται από την αρχική ΜΕΔ. Στη συνέχεια, να δώσετε το διάγραμμα της ΜΕΔ που προκύπτει με την προσθήκη του καταχωρητή Α, προσθέτοντας πολυπλέκτες και σήματα ελέγχου, όπου θεωρείτε απαραίτητο, για την πλήρη υποστήριξη όλων των εντολών MIPS που μελετήσαμε στο μάθημα. Εξηγήστε α- ναλυτικά όλες τις τροποποιήσεις που κάνετε στη ΜΕΔ. Γ. Θεωρήστε τώρα μια ΜΕΔ MIPS καλωδιωμένης λογικής πολλαπλών κύκλων μηχανής ανά κύκλο εντολής, στην οποία ο ΦΚ διαθέτει μόνο μία θύρα ανάγνωσης. Υιοθετώντας τη λύση του ερωτήματος Β με την εισαγωγή ενός καταχωρητή ειδικού σκοπού, εξηγήστε πώς θα υποστηρίξετε τις εντολές MIPS που μελετήσαμε στο μάθημα. Μπορείτε πάλι να προσθέσετε πολυπλέκτες και σήματα ελέγχου, ή να τροποποιήσετε υπάρχοντες πολυπλέκτες και σήματα ελέγχου. Να δώσετε το διάγραμμα της ΜΕΔ που προκύπτει με την τροποποίηση που προτείνετε, για την πλήρη υποστήριξη όλων των εντολών MIPS που μελετήσαμε. Στη συνέχεια να δώσετε τη μηχανή καταστάσεων της νέας ΜΕΔ MIPS για τις εντολές αυτές, καθώς και τις λογικές συναρτήσεις όλων των σημάτων ελέγχου της ΜΕΔ. Δ. Να επαναλάβετε το προηγούμενο ερώτημα, βρίσκοντας όμως άλλη λύση για το πρόβλημα της έλλειψης δεύτερης θύρας ανάγνωσης του ΦΚ, χωρίς προσθήκη καταχωρητή ειδικού σκοπού. Ειδικότερα, χρησιμοποιήστε επιπλέον κύκλους μηχανής για δεύτερη ανάγνωση του ΦΚ, αλλά προσπαθήστε ώστε η αναμενόμενη αύξηση του αριθμού κύκλων μηχανής ανά εντολή να είναι η ελάχιστη δυνατή. Ε. Θεωρήστε τον ακόλουθο κώδικα C: 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 του ερωτήματος Δ. Σχολιάστε τα αποτελέσματα που βρήκατε. Άσκηση 3: Θεωρήστε τη ΜΕΔ της αρχιτεκτονικής MIPS καλωδιωμένης λογικής για κύκλο εντολής τόσο απλού, όσο και πολλαπλών κύκλων μηχανής. Η κλασική διευθυνσιοδότηση μνήμης που υποστηρίζεται από την αρχιτεκτονική MIPS είναι η έμμεση μέσω καταχωρητή με μετατόπιση. Υποθέστε τώρα ότι θέλουμε να εμπλουτίσουμε την αρχιτεκτονική με τις ακόλουθες επεκτάσεις της κλασικής μεθόδου διευθυνσιοδότησης: Α. Δεικτοδοτούμενη έμμεση διευθυνσιοδότηση μέσω καταχωρητή χωρίς μετατόπιση:

3 lwx $rd,($rs,$rt) swx $rd,($rs,$rt) όπου η τελική διεύθυνση προσπέλασης είναι το άθροισμα του περιεχομένου του καταχωρητή βάσης $rs με το περιεχόμενο του καταχωρητή δείκτη $rt. Για την πρώτη εντολή, το αποτέλεσμα της φόρτωσης αποθηκεύεται στον καταχωρητή $rd, ενώ για τη δεύτερη εντολή, το περιεχόμενο του καταχωρητή $rd αποθηκεύεται στη μνήμη. Β. Διπλά έμμεση διευθυνσιοδότηση μέσω καταχωρητή με μετατόπιση: lwd $rt,off(($rs)) swd $rt,off(($rs)) όπου η τελική διεύθυνση προσπέλασης είναι το άθροισμα του περιεχομένου της θέσης μνήμης με διεύθυνση που είναι το περιεχόμενο του καταχωρητή βάσης $rs, με την προέκταση της μετατόπισης off. Για την πρώτη εντολή, το αποτέλεσμα της φόρτωσης αποθηκεύεται στον καταχωρητή $rt, ενώ για τη δεύτερη εντολή, το περιεχόμενο του καταχωρητή $rt αποθηκεύεται στη μνήμη. Γ. Διπλά δεικτοδοτούμενη έμμεση διευθυνσιοδότηση μέσω καταχωρητή χωρίς μετατόπιση: lwxx $rd,(($rs,$rt),$ru) swxx $rd,(($rs,$rt),$ru) όπου η τελική διεύθυνση προσπέλασης είναι το άθροισμα του περιεχομένου της θέσης μνήμης με διεύθυνση που είναι το άθροισμα του περιεχομένου του καταχωρητή βάσης $rs με το περιεχόμενο του καταχωρητή δείκτη $rt, με το περιεχόμενο του καταχωρητή δείκτη $ru. Για την πρώτη εντολή, το αποτέλεσμα της φόρτωσης αποθηκεύεται στον καταχωρητή $rd, ενώ για τη δεύτερη εντολή, το περιεχόμενο του καταχωρητή $rd αποθηκεύεται στη μνήμη. Δ. Έμμεση διευθυνσιοδότηση ενημέρωσης με μετατόπιση: lwp $rt,off($rs) swp $rt,off($rs) η οποία είναι η κλασική μέθοδος διευθυνσιοδότησης MIPS, με την προσθήκη ότι επιπλέον η τελική διεύθυνση προσπέλασης αποθηκεύεται στον καταχωρητή $rs. Η πρώτη εντολή φορτώνει μια λέξη δεδομένων από τη μνήμη, ενώ η δεύτερη εντολή αποθηκεύει μια λέξη δεδομένων στη μνήμη. Χωρίς να εισάγετε νέες υπομονάδες στη ΜΕΔ πλην πολυπλεκτών, εξηγήστε εάν και πώς μπορείτε να υποστηρίξετε τις παραπάνω διευθυνσιοδοτήσεις και εντολές, τόσο στην περίπτωση απλού, όσο και στην περίπτωση πολλαπλών κύκλων μηχανής για κάθε κύκλο εντολής. Πιο συγκεκριμένα, τι προσθήκες χρειάζεστε στη ΜΕΔ για την υποστήριξη των εντολών αυτών; Χρειάζεστε κάποιους νέους δρόμους μεταφοράς πληροφορίας; Χρειάζεστε κάποια νέα σήματα ελέγχου; Οι όποιες τροποποιήσεις θα πρέπει να ελαχιστοποιούν τη διάρκεια του κύκλου μηχανής στην πρώτη, και τον αριθμό κύκλων μηχανής για τις εμπλεκόμενες εντολές στη δεύτερη περίπτωση. Ειδικά για την περίπτωση πολλαπλών κύκλων, δε θα πρέπει να αυξάνεται η διάρκεια του κύκλου μηχανής. Στην περίπτωση των πολλαπλών κύκλων μηχανής, να δώσετε την απαραίτητη προσθήκη στη μηχανή καταστάσεων που να περιγράφει την εκτέλεση των εντολών. Να υποθέσετε ότι δε μπορείτε να αλλάξετε τον αριθμό θυρών ανάγνωσης και εγγραφής του ΦΚ από αυτόν της κλασικής αρχιτεκτονικής MIPS δύο θύρες ανάγνωσης και μία θύρα εγγραφής. Μπορείτε όμως να προσθέσετε επιλογές ή και πολυπλέκτες στις εισόδους διευθύνσεων του ΦΚ, ώστε να λάβετε τους αριθμούς καταχωρητών από οποιαδήποτε πεδία της λέξης εντολής. Οι αριθμοί καταχωρητών rs, rt, rd και ru λαμβάνονται από τα ψηφία 25-21, 20-16, 15-11 και 10-6 της λέξης εντολής, αντίστοιχα. Να απαντήσετε ανεξάρτητα για καθένα από τα ερωτήματα Α-Δ.

4 Άσκηση 4: Θεωρήστε τη ΜΕΔ της αρχιτεκτονικής MIPS καλωδιωμένης λογικής που μελετήσαμε στο μάθημα, για κύκλο εντολής τόσο απλού, όσο και πολλαπλών κύκλων μηχανής. Η άσκηση αυτή μελετάει την επίδραση στη λειτουργία της ΜΕΔ ελαττωμάτων προσκόλλησης σε κάποια τιμή στα σήματα ελέγχου της ΜΕΔ. Έτσι: Α. Για τη ΜΕΔ απλού κύκλου εξετάστε το ελάττωμα προσκόλλησης στο 0, δηλαδή το σήμα να είναι 0, ανεξάρτητα από το τι πρέπει να είναι. Ποιες εντολές, αν υπάρχουν, θα εξακολουθούν να δουλεύουν σωστά; Εξετάστε ξεχωριστά καθένα από τα εξής ελαττώματα: RegDst = 0, ALUSrc = 0, MemtoReg = 0, Zero = 0, PCtoReg = 0, RegWrite = 0. B. Επαναλάβετε το ερώτημα Α για ελάττωμα προσκόλλησης στο 1, δηλαδή το σήμα να είναι 1, ανεξάρτητα από το τι πρέπει να είναι. Γ. Για τη ΜΕΔ πολλαπλών κύκλων εξετάστε το ελάττωμα προσκόλλησης στο 0. Ποιες εντολές, αν υπάρχουν, θα εξακολουθούν να δουλεύουν σωστά; Εξετάστε ξεχωριστά καθένα από τα εξής ελαττώματα: RegDst = 0, MemtoReg = 0, IorD = 0, ALUSrcA = 0, IRWrite = 0, MemWrite = 0. Δ. Επαναλάβετε το ερώτημα Γ για ελάττωμα προσκόλλησης στο 1. Για τα παραπάνω ερωτήματα να εξετάσετε μόνο τις εντολές MIPS που μελετήσαμε στο μάθημα. Άσκηση 5 Στην άσκηση αυτή θα μελετήσουμε μια ΜΕΔ αρχιτεκτονικής μνήμης-μνήμης με έλεγχο καλωδιωμένης λογικής πολλαπλών κύκλων μηχανής ανά κύκλο εντολής. Ένα σχηματικό διάγραμμα της ΜΕΔ αυτής δίνεται παρακάτω, όπου με μαύρο σημειώνονται οι δρόμοι γενικών δεδομένων, με μπλε οι δρόμοι εντολών, με πράσινο οι δρόμοι διευθύνσεων, με μωβ οι δρόμοι ελέγχου (συμπεριλαμβανομένων των άμεσων τελούμενων και κατ ευθείαν διευθύνσεων) και με πορτοκαλί ο δρόμος εξωτερικών διακοπών. 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), όπου στις παρενθέσεις δίνονται οι αντίστοιχες συνθήκες άλματος. Παρατηρήστε ότι οι συνθήκες σχετίζονται με τα ψηφία κατάστασης ή

6 τους καταχωρητές-δείκτες. Η διευθυνσιοδότηση όλων αυτών των εντολών είναι σχετική με την αυξημένη τιμή του PC. Οι εντολές LDX και LDY φορτώνουν τιμές στους καταχωρητές Χ και Υ από τη μνήμη ή από άμεσο τελούμενο. Οι εντολές STX και STY αποθηκεύουν το περιεχόμενο του αντίστοιχου καταχωρητή στη μνήμη. Οι εντολές INCX και INCY αυξάνει τον αντίστοιχο καταχωρητή κατά 1, ενώ οι DECX και DECY μειώνουν τον αντίστοιχο καταχωρητή κατά 1. Οι εντολές αυτές εκτελούνται με ομώνυμα σήματα ελέγχου σε πρόσθετους α- θροιστές που είναι ενσωματωμένοι στους καταχωρητές-δείκτες, και όχι στην ΑΛΜ. Οι εντολές CMPX και CMPY συγκρίνουν το περιεχόμενο του αντίστοιχου καταχωρητή για ισότητα με κάποια τιμή από τη μνήμη ή από άμεσο τελούμενο, αποθηκεύοντας το λογικό αποτέλεσμα της σύγκρισης στο ψηφίο Q. Οι εντολές αυτές, όπως και η παραπάνω CMP εκτελούνται στην ΑΛΜ με τη μικρολειτουργία compare. Η εντολή JMP εκτελεί άμεσο άλμα, ενώ η εντολή JAL εκτελεί άμεσο άλμα με σύνδεση μέσω του καταχωρητή Υ. Με την ολοκλήρωση μια ε- ντολής JAL, ο Υ θα περιέχει την προηγούμενη αυξημένη τιμή του PC. Τέλος η εντολή JMPY εκτελεί έμμεσο άλμα μέσω του Υ. A. Τροποποιήστε το αρχικό διάγραμμα της ΜΕΔ με την προσθήκη των καταχωρητών Χ και Υ, καθώς και την προσθήκη των αναγκαίων δρόμων πληροφορίας για την υποστήριξη όλων των διευθυνσιοδοτήσεων που περιλαμβάνουν δεικτοδότηση. Θεωρήστε ότι η διάρκεια κύκλου μηχανής ορίζεται από το μέγιστο μιας προσπέλασης μνήμης, ή μιας πράξης ΑΛΜ. Β. Χρησιμοποιώντας σαν παράδειγμα τη ΜΕΔ συσσωρευτή που περιγράφεται στις λυμένες ασκήσεις, ορίστε τα σήματα ελέγχου της ΜΕΔ που σχεδιάσατε, και κατασκευάστε τους πίνακες μικρολειτουργιών και σημάτων ελέγχου για όλες τις εντολές της αρχιτεκτονικής. Κάθε εντολή και διευθυνσιοδότηση να ολοκληρώνεται στον ελάχιστο αριθμό φάσεων. Προσπαθήστε να βάλετε στη φάση αποκωδικοποίησης μικρολειτουργίες που μπορούν να γίνουν προκαταβολικά, χωρίς να επηρεάζουν εντολές που δεν τις χρησιμοποιούν. Γ. Σχεδιάστε τη μηχανή καταστάσεων της νέας ΜΕΔ. Επαναχρησιμοποιήστε όσες καταστάσεις μπορείτε. Βρείτε τις συνθήκες μετάβασης καταστάσεων για τη μηχανή που σχεδιάσατε, και τις λογικές εκφράσεις για τα σήματα ελέγχου που ορίσατε. Προσέξτε ότι η λογική έκφραση του σήματος εγγραφής του PC περιλαμβάνει και τις συνθήκες των διακλαδώσεων. Άσκηση 6 Σε πολλές εφαρμογές παράλληλης επεξεργασίας απαιτείται μια κατηγορία λειτουργιών υλοποιημένων σαν ακολουθίες μικρολειτουργιών που εκτελούνται σαν ένα αδιάσπαστο σύνολο (indivisible ή atomic operations). Αυτό σημαίνει ότι κατά την εκτέλεση αυτών των λειτουργιών δεν επιτρέπεται ανάμεσα στις μικρολειτουργίες της ακολουθίας να παρεμβάλλονται ξένες μικρολειτουργίες. Ένας τρόπος υλοποίησης τέτοιων αδιάσπαστων λειτουργιών είναι μέσω εντολών μηχανής της αρχιτεκτονικής, έτσι ώστε μία και μόνη εντολή να εκτελεί πλήρως μια τέτοια ακολουθία. Θεωρήστε τη ΜΕΔ της απλοποιημένης αρχιτεκτονικής MIPS πολλαπλών κύκλων μηχανής ανά κύκλο εντολής, με έλεγχο τόσο καλωδιωμένης όσο και μικροπρογραμματισμένης λογικής, και υλοποιήστε σε αυτή για κάθε περίπτωση ελέγχου την εντολή: add&swaplt $rd,$ru,($rt),($rs) η οποία δεδομένων δύο θέσεων μνήμης και ενός αριθμού, εκτελεί τη λειτουργία που περιγράφεται από τα ακόλουθα βήματα: 1. Διαβάζει τη θέση μνήμης στην οποία αναφέρεται με έμμεση διευθυνσιοδότηση χωρίς μετατόπιση μέσω του καταχωρητή $rs. 2. Προσθέτει την τιμή που διάβασε από τη μνήμη με την τιμή του $ru. 3. Διαβάζει τη θέση μνήμης στην οποία αναφέρεται με έμμεση διευθυνσιοδότηση χωρίς μετατόπιση μέσω του καταχωρητή $rt. 4. Συγκρίνει για μικρότερο (lt) το αποτέλεσμα της πρόσθεσης με τη δεύτερη τιμή που διάβασε από τη μνήμη.

7 5. Αν το αποτέλεσμα της σύγκρισης είναι αληθές: - Αποθηκεύει τη δεύτερη τιμή στη θέση της πρώτης τιμής που διάβασε, δηλαδή στη διεύθυνση που υποδεικνύει ο καταχωρητής $rs. - Αποθηκεύει το αποτέλεσμα της πρόσθεσης στη θέση της δεύτερης τιμής που διάβασε, δηλαδή στη διεύθυνση που υποδεικνύει ο καταχωρητής $rt. 6. Διαφορετικά αποθηκεύει το αποτέλεσμα της πρόσθεσης στη θέση της πρώτης τιμής που διάβασε, δηλαδή στη διεύθυνση που υποδεικνύει ο καταχωρητής $rs. 7. Αποθηκεύει στον $rd το λογικό αποτέλεσμα της σύγκρισης. Για την υλοποίηση της εντολής add&swaplt τροποποιήστε κατάλληλα τους δρόμους πληροφορίας και τις επιλογές εισόδων υπομονάδων της ΜΕΔ, διευρύνοντας ή προσθέτοντας πολυπλέκτες όπου χρειαστεί. Όμως, δε μπορείτε να προσθέσετε υπομονάδες ή καταχωρητές ειδικού σκοπού, μπορείτε όμως να προσθέσετε επίτρεψη εγγραφής σε υπάρχοντες καταχωρητές. Επίσης, δε μπορείτε να αυξήσετε τις θύρες ανάγνωσης του ΦΚ. Γι αυτό διατίθενται δύο μικρολειτουργίες ανάγνωσής του, η πρώτη διαβάζει τους $rs και $rt, και η δεύτερη διαβάζει τους $rs και $ru, επιλέγοντας τα κατάλληλα πεδία ψηφίων από τη λέξη εντολής. Η επιλογή ανάγνωσης του ΦΚ γίνεται με το σήμα read, το οποίο όταν ενεργοποιείται επιλέγει τη δεύτερη ανάγνωση, διαφορετικά επιλέγεται η πρώτη. Υποθέστε ότι η σύγκριση μεταξύ δύο τιμών για μικρότερο γίνεται στην ΑΛΜ με τη μικρολειτουργία slt. Το λογικό αποτέλεσμα της σύγκρισης αποθηκεύεται στον C και αντικατοπτρίζεται και στο ψηφίο Ζero της ΑΛΜ που γίνεται διαθέσιμο με το τέλος της αντίστοιχης μικρολειτουργίας. Για την υλοποίηση με έλεγχο καλωδιωμένης λογικής να δώσετε τις διαδοχικές καταστάσεις που ενεργοποιούν τα σήματα ελέγχου για την εντολή add&swaplt, καθώς και τις συνθήκες μετάβασης για όλες τις μεταβάσεις μεταξύ των καταστάσεων. Οι λογικές εκφράσεις των συνθηκών μετάβασης μπορούν να περιέχουν και το ψηφίο Ζero. Για την υλοποίηση με έλεγχο μικροπρογραμματισμένης λογικής, δώστε το αντίστοιχο μικροπρόγραμμα. Κατ αντιστοιχία με την καλωδιωμένη λογική, οι μικροεντολές μπορούν να περιέχουν άλμα με συνθήκη με βάση το ψηφίο Ζero της ΑΛΜ. Αν χρειαστεί, προσθέστε και νέα πεδία μικροεντολής, και ορίστε κατάλληλες μικρολειτουργίες γι αυτά. Να ελαχιστοποιήστε το χρόνο κύκλου εντολής και για τις δύο υλοποιήσεις της εντολής, χωρίς ωστόσο να αυξήσετε το χρόνο κύκλου μηχανής. Άσκηση 7: Οι συνεπεξεργαστές μαθηματικών συχνά περιέχουν υπομονάδες για την προσεγγιστική εκτέλεση συγκεκριμένων πράξεων με αποτίμηση πολυωνυμικής παράστασης, που προκύπτει με κατάλληλη εφαρμογή του τύπου Taylor: f(x) = α 0 + α 1 (x-x 0 ) + α 2 (x-x 0 ) 2 + α 3 (x-x 0 ) 3 + η οποία συγκλίνει στον f(x) όταν x-x 0 < 1, για κατάλληλες τιμές των α 0, α 1, α 2, α 3,. Χρησιμοποιήστε την πιο πάνω έκφραση για να υπολογίσετε την εκθετική συνάρτηση (e x ) ε- νός μη προσημασμένου δυαδικού αριθμού x σε αναπαράσταση σταθερής υποδιαστολής μεγέθους 32 bits. Στην αναπαράσταση αυτή τα δύο πρώτα ψηφία είναι ακέραια, και όλα τα υπόλοιπα ψηφία του αριθμού είναι κλασματικά. Έτσι: Α. Αν x 0 = 1, ποιες είναι οι αποδεκτές τιμές του x, και ποιες είναι οι τιμές των α 0, α 1, α 2, α 3,, για τον υπολογισμό της εκθετικής συνάρτησης με την παραπάνω έκφραση; Β. Δώστε το διάγραμμα ενός επαναληπτικού αλγορίθμου που αντιστοιχεί σε αυτόν τον υπολογισμό, όταν αυτός τερματίζεται μετά από 20 επαναλήψεις ή μόλις η νέα τιμή του αριθμού που υπολογίζει δε διαφέρει από την προηγούμενη. Θεωρήστε ότι οι 20 πρώτοι συντελεστές α i διατίθενται από κάποιον πίνακα. Το αποτέλεσμα θέλουμε να επιστραφεί στην αρχική αναπαράσταση, επομένως κατάλληλο σήμα πρέπει να υποδεικνύει υπερχείλιση. Επίσης, άλλο κατάλληλο σήμα θα πρέπει να υποδεικνύει ειδική περίπτωση, αν η είσοδος x είναι εκτός των αποδεκτών τιμών του αλγορίθμου.

8 Γ. Στη συνέχεια, ορίστε και δώστε το σχεδιάγραμμα μιας αρχιτεκτονικής που εκτελεί την παραπάνω πράξη σύμφωνα με τον αλγόριθμο που βρήκατε. Υποθέστε ότι διαθέτετε (α) μία μνήμη ROM, όπου είναι αποθηκευμένοι οι συντελεστές α i, (β) μια υπομονάδα ακέραιου πολλαπλασιασμού των 32 bits, η οποία παρέχει όσα bits γινομένου χρειάζεστε, και (γ) όσες άλλες βοηθητικές υπομονάδες χρειάζεστε για τον υπολογισμό του ζητούμενου αριθμού. Περιγράψτε τις μικρολειτουργίες της αρχιτεκτονικής σας. Μην ξεχάσετε την έξοδο υπερχείλισης και ειδικής περίπτωσης. Δ. Τέλος, σχεδιάστε μια μικροπρογραμματισμένη μονάδα ελέγχου γι αυτή την αρχιτεκτονική, δίνοντας το μικροκώδικα και τις αντίστοιχες συνθήκες άλματος, με τον τρόπο που περιγράφεται στις λυμένες ασκήσεις. Να χρησιμοποιήσετε δομή βρόχου στο μικροκώδικα που θα δώσετε. Προσπαθήστε να κάνετε αυτόν όσο συντομότερο γίνεται. Άσκηση 8 Μια αρχιτεκτονική 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 πολλαπλών κύκλων μηχανής ανά κύκλο εντολής για την υποστήριξη των παραπάνω τύπων αριθμητικών/λογικών εντολών, και να βρείτε τον αριθμό κύκλων μηχανής ανά κύκλο εντολής για κάθε τύπο. Β. Έστω ότι διαθέτουμε τέσσερα προγράμματα, το 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%

9 Υποθέστε ότι από τις εντολές προσπέλασης μνήμης τα 2/3 είναι εντολές ανάγνωσης (φόρτωσης από τη μνήμη). Επίσης, το 1/2 των εντολών προσπέλασης μνήμης έχει μηδενική μετατόπιση. Από τις αριθμητικές/λογικές εντολές, στα 4/5 το ένα τελούμενο εισόδου αποτελεί μοναδική χρήση αποτελέσματος κάποιας προηγούμενης εντολής φόρτωσης, και το 1/4 αυτών έχει κοινό καταχωρητή αποτελέσματος με το ένα τελούμενο εισόδου. Τέλος, από το υπόλοιπο 1/5 των αριθμητικών/λογικών εντολών, τα 2/3 στέλνουν το αποτέλεσμά τους στη μνήμη σε κάποια επόμενη εντολή αποθήκευσης, χωρίς να το χρησιμοποιούν με άλλον τρόπο. Αν οι νέοι τύποι εντολών οδηγούν σε επιμήκυνση του κύκλου μηχανής κατά 5%, βρείτε τι ποσοστό από τις εντολές προσπέλασης μνήμης πρέπει να καταργηθεί σε κάθε πρόγραμμα με χρήση των νέων τύπων αριθμητικών/λογικών εντολών, ώστε η επίδοση του συστήματος δηλαδή ο χρόνος εκτέλεσης του προγράμματος να μην είναι χειρότερη από προηγουμένως. Θεωρήστε ποσοστά x, y και z για κάθε νέο τύπο αριθμητικής/λογικής εντολής, και εκφράστε το ζητούμενο σε μορφή ανισότητας, εξετάζοντας όμως το δυνατό ικανοποίησης της ανισότητας με βάση τα στοιχεία που δίνονται. Προσοχή: Οι θεωρητικές ασκήσεις παραδίνονται μόνο χειρόγραφες, κάθε άσκηση σε ξεχωριστές σελίδες. Η παράδοση συνοδεύεται από υποχρεωτική σύντομη εξέταση.

10 Τρίτη Σειρά Ασκήσεων (Εργαστηριακές Ασκήσεις) παράδοση στο τέλος του εξαμήνου Άσκηση 1 Θεωρήστε την αναπαράσταση ΙΕΕΕ 754 των 32 bits για αριθμούς κινητής υποδιαστολής τύπου float της γλώσσας προγραμματισμού C, σε μια αρχιτεκτονική MIPS που δε διαθέτει υλικό κινητής υποδιαστολής. Στην αρχιτεκτονική αυτή ένας αριθμός τύπου int έχει μέγεθος 32 bits και κωδικοποιείται σε αναπαράσταση συμπληρώματος ως προς 2. Α. Γράψτε μια συνάρτηση σε συμβολική γλώσσα MIPS που να εκτελεί την πρόσθεση δύο αριθμών τύπου float, λαμβάνοντάς τους μέσω των καταχωρητών $a0 και $a1, και επιστρέφοντας το αποτέλεσμα τύπου float στον καταχωρητή $v0. Υλοποιήστε τη βέλτιστη στρογγυλοποίηση και αγνοήστε πιθανή υπερχείλιση του εκθέτη. Β. Γράψτε μια συνάρτηση σε συμβολική γλώσσα MIPS που να εκτελεί τον πολλαπλασιασμό ενός αριθμού τύπου float επί κάποιον ακέραιο τύπου int, λαμβάνοντας τους δύο αριθμούς μέσω των καταχωρητών $a0 και $a1, και επιστρέφοντας το αποτέλεσμα τύπου float στον καταχωρητή $v0. Υλοποιήστε τη βέλτιστη στρογγυλοποίηση και αγνοήστε πιθανή υπερχείλιση του εκθέτη. Γ. Θεωρήστε την αρχιτεκτονική MIPS και την πιο κάτω συνάρτηση σε γλώσσα C: void madd (int n, float **z, float **c, int **x, float **y) { int i,j,k; for (i = 0; i!= n; i++) for (j = 0; j!= n; j++) { z[i][j] = 0.0; for (k = 0; k!= n; k++) z[i][j] += c[i][k]* x[k][j]; z[i][j] += y[i][j]; } } η οποία εκτελεί τον πολλαπλασιασμό δύο πινάκων c και x τύπου float και int, αντίστοιχα, και προσθέτει το αποτέλεσμα σε έναν τρίτο πίνακα y τύπου float. Αν η τιμή του n και οι αρχικές διευθύνσεις των πινάκων δίνονται σαν παράμετροι στη συνάρτηση, γράψτε τον κώδικα συμβολικής γλώσσας MIPS για τη συνάρτηση madd(), χρησιμοποιώντας τις συναρτήσεις που γράψατε για τα ερωτήματα Α και Β. Στη γλώσσα C η αποθήκευση ενός δισδιάστατου πίνακα γίνεται γραμμή-γραμμή. Έτσι για την περίπτωσή μας κάθε γραμμή του πίνακα βρίσκεται σε n 4 διαδοχικές θέσεις μνήμης, οι οποίες ακολουθούνται από τις αντίστοιχες θέσεις μνήμης που καταλαμβάνει η επόμενη γραμμή. Υλοποιήστε ένα πλήρες υποπρόγραμμα, υποθέτοντας ότι οι 5 παράμετροι στέλνονται στη συνάρτηση μέσω των καταχωρητών $a0, $a1, $a2, $a3 και $t0, αντίστοιχα. Δ. Χρησιμοποιήστε τον προσομοιωτή SPIM του εργαστηρίου για να επαληθεύσετε τον κώδικά σας, γράφοντας ένα πρόγραμμα που καλεί τη συνάρτηση madd() για n = 4, αρχικοποιώντας κατάλληλα τους πίνακες c, x και y μέσω οδηγιών.float και.word του συμβολομεταφραστή, και το οποίο να εκτυπώνει τους 16 αριθμούς του πίνακα z που προκύπτει. Άσκηση 2 Γράψτε ένα πρόγραμμα προσομοίωσης της αρχιτεκτονικής MIPS με έλεγχο καλωδιωμένης λογικής πολλαπλών κύκλων μηχανής ανά κύκλο εντολής. Το πρόγραμμα αυτό θα είναι γραμμένο σε C, θα προσομοιώνει την αρχιτεκτονική σε επίπεδο κύκλου μηχανής, και θα υποστηρίζει τις εντολές MIPS που συμπεριλάβαμε στην αρχιτεκτονική αυτή στο μάθημα, είτε στη θεωρία, είτε σε ασκήσεις. Ειδικότερα, θα υποστηρίζει τις εντολές ΑΛΜ add, sub, or, and,

11 addi, ori και andi, προσπέλασης μνήμης lw και sw, διακλάδωσης beq και bne, και άλματος j, jr, jal και jalr. Θα υποστηρίζει επίσης εντολές ΑΛΜ με τελούμενα στη μνήμη με έμμεση διευθυνσιοδότηση χωρίς, αλλά και με μετατόπιση, συμβολικά ως addm, subm, orm και andm, ενώ για την πρώτη περίπτωση και τις addmi, ormi και andmi με άμεσα τελούμενα. Ακόμα, θα υποστηρίζει και τις εντολές ολίσθησης και διακλάδωσης με μείωση υπό κλίμακα, με τη μορφή που τις συναντήσατε στην άσκηση 3 της 1 ης σειράς ασκήσεων. Τέλος θα υποστηρίζει και την εικονική εντολή break, που απλά θα τερματίζει την προσομοίωση. Ένα τέτοιο πρόγραμμα προσομοίωσης σε επίπεδο κύκλου μηχανής περιλαμβάνει ως κύριες μεταβλητές και δομές δεδομένων: 1. Τη μεταβλητή που απεικονίζει το ρολόι του επεξεργαστή. 2. Τη μεταβλητή που αποθηκεύει τον αριθμό κατάστασης της μονάδας ελέγχου. 3. Μεταβλητές και πίνακες όπου αποθηκεύεται η κατάσταση του επεξεργαστή, δηλαδή οι καταχωρητές, τόσο γενικού, όσο και ειδικού σκοπού, και η μνήμη. Πάνω σε αυτές το πρόγραμμα ενεργεί μέσα από ένα βρόχο, σε κάθε επανάληψη του οποίου: 1. Εκτελούνται οι μικρολειτουργίες που αντιστοιχούν στην κατάσταση της μονάδας ελέγχου, και τροποποιούνται κατάλληλα οι τιμές των μεταβλητών και των δομών αυτών. 2. Υπολογίζεται η επόμενη κατάσταση και αποθηκεύεται στη μεταβλητή κατάστασης. 3. Η μεταβλητή ρολογιού αυξάνεται κατά 1. Για απλούστευση θεωρήστε ότι όλα τα μεγέθη εντολών και δεδομένων είναι 32 bits, οπότε η μνήμη μπορεί να υλοποιηθεί ως πίνακας τύπου int. Ακόμα, για τις πράξεις ΑΛΜ, χρησιμοποιήστε λειτουργική (behavioral) προσομοίωση αυτών. Έτσι για παράδειγμα, μια πρόσθεση θα εκτελείται με πρόσθεση στη C, κοκ. Χρησιμοποιήστε την ακόλουθη κωδικοποίηση εντολών, με ξεχωριστό κωδικό λειτουργίας (opcode) για κάθε εντολή και διευθυνσιοδότηση, ώστε να μη χρειάζεται κωδικός τελεστή: Εντολή Opcode Άλλα πεδία (με τη σειρά που είναι κωδικοποιημένα) add 000000 3 πεδία καταχωρητών (rs, rt, rd) sub 000001 3 πεδία καταχωρητών (rs, rt, rd) or 000010 3 πεδία καταχωρητών (rs, rt, rd) and 000011 3 πεδία καταχωρητών (rs, rt, rd) addi 001000 2 πεδία καταχωρητών (rs, rt), 1 άμεσο τελούμενο 16 bits ori 001010 2 πεδία καταχωρητών (rs, rt), 1 άμεσο τελούμενο 16 bits andi 001011 2 πεδία καταχωρητών (rs, rt), 1 άμεσο τελούμενο 16 bits lw 100000 2 πεδία καταχωρητών (rs, rt), 1 πεδίο μετατόπισης 16 bits sw 100001 2 πεδία καταχωρητών (rs, rt), 1 πεδίο μετατόπισης 16 bits beq 010000 2 πεδία καταχωρητών (rs, rt), 1 πεδίο μετατόπισης 16 bits bne 010001 2 πεδία καταχωρητών (rs, rt), 1 πεδίο μετατόπισης 16 bits j 010100 1 πεδίο διεύθυνσης 26 bits jr 010101 1 πεδίο καταχωρητή (rs) jal 010110 1 πεδίο διεύθυνσης 26 bits jalr 010111 2 πεδία καταχωρητών (rs, rd) addm 110000 2 πεδία καταχωρητών (rs, rt), 1 πεδίο μετατόπισης 16 bits addm 110100 3 πεδία καταχωρητών (rs, rt, rd) subm 110001 2 πεδία καταχωρητών (rs, rt), 1 πεδίο μετατόπισης 16 bits subm 110101 3 πεδία καταχωρητών (rs, rt, rd) orm 110010 2 πεδία καταχωρητών (rs, rt), 1 πεδίο μετατόπισης 16 bits orm 110110 3 πεδία καταχωρητών (rs, rt, rd) andm 110011 2 πεδία καταχωρητών (rs, rt), 1 πεδίο μετατόπισης 16 bits andm 110111 3 πεδία καταχωρητών (rs, rt, rd) addmi 111100 2 πεδία καταχωρητών (rs, rt), 1 άμεσο τελούμενο 16 bits ormi 111110 2 πεδία καταχωρητών (rs, rt), 1 άμεσο τελούμενο 16 bits andmi 111111 2 πεδία καταχωρητών (rs, rt), 1 άμεσο τελούμενο 16 bits sll 001100 2 πεδία καταχωρητών (rt, rd), 1 πεδίο ολίσθησης 5 bits srl 001101 2 πεδία καταχωρητών (rt, rd), 1 πεδίο ολίσθησης 5 bits sra 001110 2 πεδία καταχωρητών (rt, rd), 1 πεδίο ολίσθησης 5 bits

12 ror 001111 2 πεδία καταχωρητών (rt, rd), 1 πεδίο ολίσθησης 5 bits sllv 000100 3 πεδία καταχωρητών (rs, rt, rd) srlv 000101 3 πεδία καταχωρητών (rs, rt, rd) srav 000110 3 πεδία καταχωρητών (rs, rt, rd) rorv 000111 3 πεδία καταχωρητών (rs, rt, rd) slladd 011000 3 πεδία καταχωρητών (rs, rt, rd), 1 πεδίο ολίσθησης 5 bits srladd 011001 3 πεδία καταχωρητών (rs, rt, rd), 1 πεδίο ολίσθησης 5 bits sraadd 011010 3 πεδία καταχωρητών (rs, rt, rd), 1 πεδίο ολίσθησης 5 bits roradd 011011 3 πεδία καταχωρητών (rs, rt, rd), 1 πεδίο ολίσθησης 5 bits sllsub 011100 3 πεδία καταχωρητών (rs, rt, rd), 1 πεδίο ολίσθησης 5 bits srlsub 011101 3 πεδία καταχωρητών (rs, rt, rd), 1 πεδίο ολίσθησης 5 bits srasub 011110 3 πεδία καταχωρητών (rs, rt, rd), 1 πεδίο ολίσθησης 5 bits rorsub 011111 3 πεδία καταχωρητών (rs, rt, rd), 1 πεδίο ολίσθησης 5 bits bxc 010010 1 πεδίο καταχωρητή (rt), 1 πεδίο ολίσθησης 5 bits, 1 πεδίο μετατόπισης 16 bits break 010011 - όπου τα πεδία καταχωρητών είναι μεγέθους 5 bits. Ο $rs είναι πάντα τελούμενο εισόδου και ειδικότερα καταχωρητής βάσης για εντολές με προσπέλαση μνήμης, ο $rt είναι τελούμενο εισόδου ή αποτελέσματος όταν δεν υπάρχει πεδίο rd, και ο $rd είναι πάντα τελούμενο αποτελέσματος. Για τις εντολές ολίσθησης και bxc, η ερμηνεία των πεδίων καταχωρητών δίνεται στην αντίστοιχη άσκηση. Για να δοκιμάσετε το πρόγραμμά σας, φτιάξτε κατάλληλα αρχεία δοκιμής με εντολές και δεδομένα, από τα οποία να γίνεται αρχικοποίηση της μνήμης. Στο τέλος θα πρέπει να αποθηκεύετε σε κάποιο αρχείο το περιεχόμενο της μνήμης, ώστε να ελέγχεται η ορθότητα της προσομοίωσης των εντολών. Άσκηση 3 Θέλουμε να υλοποιήσουμε μια γρήγορη μονάδα πολλαπλασιασμού προσημασμένων αριθμών σταθερής υποδιαστολής. Ανάμεσα στις διάφορες τεχνικές που υπάρχουν θα θεωρήσουμε τις ακόλουθες: 1. Τεχνική μείωσης αριθμού μερικών αθροισμάτων με έλεγχο 3 bit του πολλαπλασιαστή για κάθε άθροισμα, χρησιμοποιώντας το βελτιωμένο αλγόριθμο Booth. 2. Τεχνική διατήρησης κρατουμένου για την πρόσθεση των μερικών γινομένων, με ελαχιστοποίηση του αριθμού των επιπέδων διατήρησης. 3. Τεχνική μερικής επικάλυψης, με ανεξαρτητοποίηση της διάταξης διατήρησης κρατουμένου από τον τελικό αθροιστή, έτσι ώστε να μπορούμε να ξεκινήσουμε ένα νέο πολλαπλασιασμό στη διάταξη διατήρησης κρατουμένου, μόλις μπούμε στον τελικό αθροιστή. 4. Τεχνική πρόσθεσης με πρόβλεψη κρατουμένου για τον τελικό αθροιστή. Η τεχνική αυτή υλοποιείται ιεραρχικά για μεγάλο αριθμό bit. Όμως, ανάλογα με το περιθώριο που έχουμε στο χρόνο καθυστέρησης για τον υπολογισμό του αθροίσματος, μπορούμε από ένα επίπεδο ιεραρχίας πρόβλεψης και πάνω να χρησιμοποιήσουμε αθροιστή διάδοσης κρατουμένου για απλούστευση της υλοποίησης. Αντί δηλαδή να χρησιμοποιήσουμε νέα διάταξη πρόβλεψης κρατουμένου για να συνδυάσουμε τα επιμέρους κρατούμενα σε ανώτερο επίπεδο πρόβλεψης, συνδέουμε τους αθροιστές σε απλή διάταξη διάδοσης κρατουμένου. Υποθέστε ότι θέλουμε μια μονάδα πολλαπλασιασμού 64 64 bit, η οποία να υπολογίζει γινόμενο των 128 bit, χρησιμοποιώντας τις πιο πάνω τεχνικές. Υλοποιήστε τη μονάδα αυτή με τη βοήθεια μιας γλώσσας περιγραφής υλικού (VHDL ή Verilog), και του προγράμματος ModelSim. Προσέξτε ότι εφόσον η μονάδα είναι μη επαναληπτική, ο έλεγχος όλων των τριάδων ψηφίων γίνεται παράλληλα, και τα σήματα που παράγονται από τον έλεγχο οδηγούν τους αθροιστές διατήρησης κρατουμένου, καθορίζοντας δηλαδή αν σε κάθε επίπεδο θα γίνεται πρόσθεση ή αφαίρεση του πολλαπλασιαστέου ή του διπλάσιού του, ή αν δε θα γίνεται καμία

13 πράξη. Η τελευταία επιλογή μπορεί να υλοποιηθεί απλά μηδενίζοντας την αντίστοιχη είσοδο του αθροιστή. Μπορείτε να προχωρήσετε με βάση τα ακόλουθα βήματα: 1. Υπολογίστε πόσα τουλάχιστον επίπεδα πρόβλεψης χρειαζόμαστε στην υλοποίηση του τελικού αθροιστή, ώστε η καθυστέρηση αυτού του αθροιστή να είναι το πολύ ίση με την καθυστέρηση των επιπέδων διατήρησης κρατουμένου. Θεωρήστε ότι κάθε κύκλωμα πλήρους αθροιστή χαρακτηρίζεται από καθυστέρηση 3 πυλών, και ότι κάθε επίπεδο πρόβλεψης κρατουμένου συνδυάζει 4 κρατούμενα του αμέσως προηγούμενου επιπέδου για να υπολογίσει 1 σούπερ-κρατούμενο. 2. Υπολογίστε το πλήθος των εισόδων της υπομονάδας διατήρησης κρατουμένου, λαμβάνοντας υπόψη τόσο τις επιλογές του αλγόριθμου Booth, όσο και τη λέξη συμπληρωμάτων που απαιτείται για την υλοποίηση αφαίρεσης. 3. Σχεδιάστε στο χαρτί το συνολικό διάγραμμα της μονάδας. Προσέξτε την ελαχιστοποίηση των επιπέδων διατήρησης κρατουμένου, καθώς και τον αριθμό επιπέδων πρόβλεψης κρατουμένου που προκύπτει, σύμφωνα με τους υπολογισμούς καθυστέρησης που κάνατε. 4. Γράψτε το πρόγραμμα που αντιστοιχεί σε έναν επιμέρους αθροιστή διατήρησης κρατουμένου μεταβλητού εύρους, χρησιμοποιώντας στιγμιότυπα κυκλωμάτων πλήρων αθροιστών του 1 bit. 5. Ορίστε τα ενδιάμεσα σήματα που χρειάζονται για να συνδέσετε μεταξύ τους τους επιμέρους αθροιστές διατήρησης κρατουμένου και δημιουργήστε όλη τη μονάδα διατήρησης κρατουμένου με στιγμιότυπα επιμέρους αθροιστών, με τις κατάλληλες συνδέσεις κατά την αντιστοίχηση των παραμέτρων. Προσέξτε ιδιαίτερα τα περισσότερο σημαντικά ψηφία του κάθε επιπέδου, επειδή οι αριθμοί είναι προσημασμένοι. 6. Υλοποιήστε μέσω κατάλληλης διαδικασίας το κύκλωμα που παράγει τις εισόδους των επιμέρους υπομονάδων διατήρησης κρατουμένου, με βάση το βελτιωμένο αλγόριθμο Booth, συναρτήσει του πολλαπλασιαστέου και του πολλαπλασιαστή. Μην ξεχάσετε την παραγωγή της λέξης συμπληρωμάτων! 7. Υλοποιήστε τον αθροιστή πρόβλεψης κρατουμένου για την πρόσθεση του τελευταίου επιπέδου, προσθέτοντας έναν καταχωρητή στην είσοδό του για το μηχανισμό επικάλυψης, και συνδέοντάς τον με την υπόλοιπη μονάδα. 8. Ελέγξτε την ορθότητα του κυκλώματός σας με χρήση κατάλληλων διανυσμάτων δοκιμής, τα οποία να δοκιμάζουν τόσο μεμονωμένες, όσο και διαδοχικές επικαλυπτόμενες πράξεις. Προσοχή: Οι εργαστηριακές ασκήσεις παραδίνονται μόνο ηλεκτρονικά. Η παράδοση συνοδεύεται από υποχρεωτική σύντομη επίδειξη.