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

Σχετικά έγγραφα
Τελική Εξέταση, Απαντήσεις/Λύσεις

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

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

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

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

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

Άσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1.

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών. Data. Κείμενο. Βίντεο. Αριθμοί Εικόνες. Ήχοι

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

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

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

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

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

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

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

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

Παραδείγματα Assembly (Μέρος

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

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

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

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

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

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

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

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης

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

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

Αριθμητική Κινητής Υποδιαστολής Πρόσθεση Αριθμών Κινητής Υποδιαστολής

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

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

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

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

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

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

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

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

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;

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

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

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

Προτεινόμενες Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 & Αποτελέσματα

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

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

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

Σύστημα Πλεονάσματος. Αναπαράσταση Πραγματικών Αριθμών. Αριθμητικές Πράξεις σε Αριθμούς Κινητής Υποδιαστολής

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μέρος Β (Οργάνωση Υπολογιστών)

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

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

Ενδιάμεση Β205. Κεφ. 1-2, Παράρτημα Α Εργαστήρια Εργασίες Ενδιάμεση του 2014 Όχι διάλεξη την Τρίτη (Προετοιμασία)

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

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

1. Το σύστημα κινητής υποδιαστολής 2. Αναπαράσταση πραγματικών δυαδικών αριθμών 3. Το πρότυπο 754 της ΙΕΕΕ

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

Λογικός Σχεδιασµός και Σχεδιασµός Η/Υ. ΗΜΥ-210: Εαρινό Εξάµηνο Σκοπός του µαθήµατος. Ψηφιακά Συστήµατα. Περίληψη. Εύρος Τάσης (Voltage(

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit

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

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

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

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

Αρχιτεκτονικη υπολογιστων

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

Πράξεις με δυαδικούς αριθμούς

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

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

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

Κεφάλαιο 3. Αριθμητική για υπολογιστές

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

Σύστημα Πλεονάσματος και Αναπαράσταση Αριθμών Κινητής Υποδιαστολής

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

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

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Νεκτάριος Κοζύρης ΑΡΙΘΜΗΤΙΚΕΣ ΠΡΑΞΕΙΣ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

ΠΛΕ- 027 Μικροεπεξεργαστές

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

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

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Διαδικασίες ΙI. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 5

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

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

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

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

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

Συναρτήσεις-Διαδικασίες

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

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

Εισαγωγή στην επιστήμη των υπολογιστών

Απόδοση Υπολογιστικών Συστημάτων

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις Άσκηση 1: Σωστό/Λάθος (10 μονάδες) Ερώτηση 1 2 3 4 5 6 7 8 9 10 Απάντηση Λ Λ Λ Σ Λ Λ Λ Λ Λ Σ Άσκηση 2: Κυκλώστε την σωστή απάντηση (10 μονάδες) Ερώτηση 1 2 3 4 5 Απάντηση β α γ γ δ Άσκηση 3: Αριθμητική Κινητής Υποδιαστολής (15 μονάδες) Ι. -115.875 dec = -1110011.111 bin Κανονικοποίηση αριθμού = 1.110011111 2 6 Πρόσημο = 1 Πολωμένος εκθέτης = 127 dec + 6 dec = 133 dec = 10000101 bin Κλάσμα = 110011111 Σε μορφή IEEE 754: 1 (πρόσημο 1 bit) 10000101 (εκθέτης 8 bits) κλάσμα (23 bits) 11001111100000000000000 Τελικός αριθμός: 1100 0010 1110 0111 1100 0000 0000 0000 bin Σε δεκαεξαδική μορφή: C2E7C000 hex ΙΙ Σε δυαδική μορφή: 01000000100100000000000000000000bin Πρόσημο: 0 (θετικό) Εκθέτης: 100000001 bin = 129, μείον η πόλωση = 129 dec 127 dec = 2 dec Κλάσμα = 1 + 0.00100000000000000000000bin = 1.001 Τελικός αριθμός = +1.001 2 2 = 100.1 bin = +4.5 dec Σελίδα 1 από 6

ΙΙΙ 1. (Ι.) α = χ ψ Σημείωση: δεν εφαρμόζουμε στρογγυλοποίηση στον αριθμό γιατί δεν υπάρχει περιορισμός στον αριθμό ψηφίων (bits) στην αναπαράσταση του κλασματικού αριθμού. Προχωρούμε αμέσως με πολλαπλασιασμό: 1.110 bin 1.001 bin = 01.11 1110 bin Προσθέτουμε τους εκθέτες: 0 + 5 = 5 Τελικό αποτέλεσμα, α: 1.11111 bin 2 5 = 111111.0 bin = 63 dec 2. (ΙΙ.) β = ψ + ζ Σημείωση: δεν εφαρμόζουμε στρογγυλοποίηση στον αριθμό γιατί δεν υπάρχει περιορισμός στον αριθμό ψηφίων (bits) στην αναπαράσταση του κλασματικού αριθμού. Αρχικά πρέπει να ολισθήσουμε τους δύο εκθέτες έτσι που να τους φέρουμε στην ίδια δύναμη. Το ζ έχει μικρότερο εκθέτη έτσι εφαρμόζουμε ολίσθηση 1 φορά στα δεξιά: 0.1111 2 5 Προσθέτουμε τους 2 αριθμούς: 1.001 bin + 0.1111 bin = 10.0001 bin Κανονικοποιούμε τους αριθμούς: 1.00001 2 1 Προσθέτουμε τους εκθέτες: 1 + 5 = 6 Αύξηση του εκθέτη κατά 5. Τελικός αριθμός, β: 1.00001 bin 2 6 = 1000010 = 66 dec Άσκηση 4: Αριθμητική (10 μονάδες) -2 n-1 μέχρι + 2 n-1-1 beta [-8,+7] + 1101-3 ------------- Υπερχείλιση! -8 1000-7 1001-6 1010 ΙΙΙ. $s2 div $s3 στον καταχωρητή Hi $s2 mod $s3 στον καταχωρητή Lo Σελίδα 2 από 6

Άσκηση 5: Εκτίμηση Απόδοσης (10 μονάδες) Ι. Θεωρούμε 100 εντολές. Από αυτές 30 loads/stores περιλαμβάνονται στον μη βελτιστοποιημένο υπολογιστή και 20 loads/stores περιλαμβάνονται στον βελτιστοποιημένο υπολογιστή. Αρχικός χρόνος εκτέλεσης: 100 εντολές 1 (CPI) C (περίοδος ρολογιού) = 100C. Νέος χρόνος εκτέλεσης: 90 εντολές 1 (CPI) 1.05C (περίοδος ρολογιού) = 94.5C. Έτσι με τον νέο τρόπο έχουμε αύξηση της απόδοσης κατά 5.5% περίπου. Άρα ο νέος βελτιστοποιημένος υπολογιστής είναι γρηγορότερος. ΙΙ. Χρόνος εκτέλεσης μετά τη βελτίωση = ανεπηρέαστος χρόνος εκτέλεσης + (επηρεαζόμενος χρόνος εκτέλεσης / ποσοστό βελτίωσης) Άσκηση 6: Απόδοση (10 μονάδες) Time = (seconds/cycle) (cycles/instruction) (number of instructions) Τότε ο αναμενόμενος χρόνος εκτέλεσης είναι (1 second/5 10 9 ) (0.8 cycles/instruction) (7.5 10 9 instructions) = 1.2 seconds. O XYZ καταλαμβάνει 1.2/3 seconds, ή 40% του συνολικού χρόνου εκτέλεσης. I Το πρόγραμμα Prog που τρέχει στον Η/Υ Mech χρειάζεται (10 9 cycles/second) 10 seconds = 10 10 cycles. Το Prog_optimized παίρνει (10 9 cycles/second) 9 seconds = 9 10 cycles. Αυτό αφήνει 10 9 κύκλους για το βελτιστοποιημένο πρόγραμμα. Τώρα, κάθε φορά που αντικαθιστούμε ένα πολλαπλασιασμό με 2 προσθέσεις παίρνει 4 2 1 λιγότερους κύκλους για κάθε αντικατάσταση. Τότε θα έπρεπε να υπήρξαν 10 9 κύκλοι /(2 κύκλοι ανά αντικατάσταση) = 5 10 8 αντικαταστάσεις πολλαπλασιασμών για να μετατρέψουμε το Prog σε Prog_optimized. Άσκηση 7: Assembly για MIPS, Σύντομες Eρωτήσεις (10 μονάδες) Μια συνάρτηση που δεν καλεί άλλη συνάρτηση, η μια φωλιασμένη συνάρτηση (leaf procedure) δηλαδή που δεν έχει αναδρομή προτιμά τους καταχωρητές τύπου $t αντί του τύπου $t γιατί δεν είναι ανάγκη να τους σώσει στη στοίβα. Τοποθετεί το εκτελέσιμο πρόγραμμα (machine code με απόλυτες διευθύνσεις) στην κυρίως μνήμη σε χώρο που να μπορεί να κρατήσει ολόκληρο το πρόγραμμα, αρχικοποιεί τους καταχωτηρές και τη στοίβα, έτσι που να αρχίσει η σωστή εκτέλεση του προγράμματος. Σελίδα 3 από 6

I Το πεδίο immediate περιέχει ένα 16-bit αριθμό ο οποίος αντιπροσωπεύει τα 16 λιγότερα σημαντικά δυαδικά ψηφία (least significant bits) μιας διεύθυνσης προς τη κύρια μνήμη της MIPS. Στην περίπτωση beq εάν η εντολή ισχύει τότε εφαρμόζεται προέκταση του πρόσημου σε αυτόν τον αριθμό για να γίνει 32 bits ο οποίος μετά προσθέτεται με τα περιεχόμενα του μετρητή προγράμματος + 4 (PC) για να μεταπηδήσει το πρόγραμμα σε μια νέα διεύθυνση ίση με PC + 4 + immediate 4. IV. sll $s1 $s1 4 srl $s1 $s1 16 Άσκηση 8: Assembly για MIPS (15 μονάδες) addu $t5, $zero, $t0 # O $t5 δείχνει στην αρχή του next[0..3] addu $s5, $zero, $s0 # O $s5 δείχνει στην αρχή του value[0..3] addiu $t1, $zero, 1 # Ο $t1 ισούται με ένα loop: sw $t1, 0($s5) # Σώσε τον $t1 στον πίνακα value[0..3] addiu $t1, $t1, 1 # Αύξησε τον $t1 κατά ένα lw $t2, 0($t5) # Φόρτωσε $t2 με αριθμό από next[0..3] beq $t2, $zero, endloop # Να βγεις έξω από τον βρόχο; sll $t2, $t2, 2 # Ολίσθησε $t2 κατά 2 ψηφία αριστερά addu $t5, $t0, $t2 # Άλλαξε διεύθυνση που περιέχει $t5 addu $s5, $s0, $t2 # Άλλαξε διεύθυνση που περιέχει $a5 j loop # Επανάληψη βρόχου endloop: Μερικά σχόλια πιο πάνω. Η λύση στο ΙΙ πιο κάτω δείχνει πως το πρόγραμμα αντιγράφει από τον πίνακα next[3..0] στον πίνακα value[3..0] αναλόγως στην κάθε επανάληψη του βρόχου.. Αρχικά πριν από τον βρόχο: $t5 = $t0 περιέχουν τον δείκτη προς αρχή του πίνακα next[3..0] $s5 = $s0 περιέχουν τον δείκτη προς αρχή του πίνακα value[3..0] $t1 = 1 Loop1 Αποθήκευση $t1=1 στο value[3..0]+0 $t1 = 2 $t2 = 2 $t2 = 8 Σελίδα 4 από 6

$t5 = $t0 + 8 δείκτης προς επόμενες 2 διευθύνσεις πίνακα next[3..0] με βάση την αρχή του $s5 = $s0 + 8 δείκτης προς επόμενες 2 διευθύνσεις πίνακα value[3..0] με βάση την αρχή του Loop2 Αποθήκευση $t1=2 στο value[3..0]+8 $t1 = 3 $t2 = 3 $t2 = 12 $t5 = $t0 + 12 δείκτης προς επόμενες 3 διευθύνσεις πίνακα next[3..0] με βάση την αρχή του $s5 = $s0 + 12 δείκτης προς επόμενες 3 διευθύνσεις πίνακα value[3..0] με βάση την αρχή του Loop3 Αποθήκευση $t1=3 στο value[3..0]+12 $t1 = 4 $t2 = 1 $t2 = 4 $t5 = $t0 + 4 δείκτης προς επόμενη 1 διεύθυνση πίνακα next[3..0] με βάση την αρχή του $s5 = $s0 + 4 δείκτης προς επόμενη 1 διεύθυνση πίνακα value[3..0] με βάση την αρχή του Loop4 Αποθήκευση $t1=4 στο value[3..0]+4 $t1 = 0 beq $t2, $0, endloop = true, βγες από τον βρόχο στο endloop Τελικό περιεχόμενο πίνακα value[3..0] = 1, 4, 2, 3 Άσκηση 9: Assembly για MIPS (15 μονάδες) Ετικέτα (label) Εντολή (Instruction) Σχόλιο (Comment) addi $s4, $s0, 5 slt $s5, $s4, $s1 Is 5 < a? bne $s5, $0, Else If so, branch to Else sub $s6, $s3, $s1 $s6: c-a addi $s2, $s6, -25 b = c-a-25 j Continue Skip next instruction Else: mult $s1, $s4 c = a * 5 Continue: add $s1, $s2, $s3 a = b + c Σελίδα 5 από 6

Άσκηση 10: Προγραμματισμός σε MIPS (5 + 5 bonus μονάδες) Στην αρχή 2 add. O πρώτος κύκλος 100 φορές από την L0 μέχρι την $s1,$zero,l1, σύνολο εντολών 100 * 6 = 600. Μετά από addi $s1,$s0,200 μέχρι bne $s3,$zero,l0 μία φορά, σύνολο 4 εντολές. Μετά πάμε στην L0, εκτελείται 100 * 127 φορές, σύνολο 12700*6 = 76,200 εντολές. Από addi $s1,$s0,200 μέχρι bne $s3,$zero,l0 μία 127 φορές, σύνολο 4*127 = 508 εντολές. Σύνολο εντολών: 2 + 600 + 4 + 76,200 + 508 = 77,310 Βρείτε τις συχνότητες εκτέλεσης (%) των ακόλουθων τύπων εντολών (Bonus 5 μονάδες): R-type (περιλαμβάνει την subi):2 + 3 * 100 + 12700 * 3 + 2 + 127 * 2 = 38656 50% Lw: 100 * 1 + 100 * 127 * 1 = 12800 16.56% Sw: 100 * 1 + 127 * 1 + 127 * 100 * 1 = 12926 16.72% Branch: 100 + 1 + 127 * 100 + 127 = 12928 16.72% Τέλος Σελίδα 6 από 6