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

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

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

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

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

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

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

6. Επιστροφή ελέγχου στο σημείο εκκίνησης

MIPS functions and procedures

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

Υποστήριξη διαδικασιών στο υλικό των υπολογιστών

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

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

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

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

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

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

Τελική Εξέταση, Απαντήσεις/Λύσεις

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

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

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

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

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

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

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

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

με έμφαση στο MIPS R2000

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

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

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

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

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

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

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

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

Εισαγωγή στην πληροφορική -4

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 2 Εντολές: H γλώσσα μηχανής

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

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

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

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

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

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

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

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

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

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

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

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

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

Data-Level Parallelism Linking & Loading

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

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

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

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

Τέτοιες λειτουργίες γίνονται διαμέσου του

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

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

Μετάφραση ενός Προγράμματος Εξαιρέσεις

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

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 8: Μία Απλή Υλοποίηση του MIPS σε Έναν Κύκλο Ρολογιού ανά Εντολή

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

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

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

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

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1

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

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

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

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

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

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

Transcript:

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος Ε.1 Σας δίνεται ο πιο κάτω κώδικας. Ξαναγράψτε τον ώστε να μειωθεί ο αριθμός των εντολών του αλλά διατηρώντας την ίδια λειτουργιά (συμπληρώστε την τελική σας απάντηση μέσα στο διπλανό πλαίσιο μια γραμμή κάθε εντολή): add $sp, $sp, -4 sw $ra,0($sp) add $t0,$0,$a0 addi $t0, $t0, 1 add $v0,$t0,$0 lw $ra,0($sp) add $sp,$sp,4 jr $ra addi $v0,$a0,1 jr $ra Ε.2 Συμπληρώστε στον πίνακα τις κωδικοποιήσεις στο δεκαδικό των πιο κάτω εντολών MIPS: add $t0,$0,$0 R,opcode:0, function:32 0 0 0 8 0 32 L1: slt $t1,$t0,$a1 R,opcode:0, function:42 0 8 5 9 0 42 beq $t1,$0, L2 I, opcode: 4 4 9 0 2 addi $t0,$t0, 4 I, opcode: 8 beq $0,$0, L1 I, opcode: 4 4 0 0-4 L2: 1

E.3 Δεδομένης της πιο κάτω αρχικής κατάστασης, δείξετε τι είναι το τελικό περιεχόμενο των διαφόρων καταχωρήτων μετά την εκτέλεση των πιο κάτω εντολών MIPS add $a0,$a0,1 slt $t0, $a0,$a1 Καταχώρητης Αρχική Κατάσταση Τελική Κατάσταση $a0 0x0000 000d 0x0e $a1 0x8000 000f Same (this is a negative for slt) $t0 0x0000 0040 0x0 $t1 0x0000 0020 same PC 0x0080 ffc0 0x080 ffc8 Ε.4 Ποια τιμή στο δεκαδικό πρέπει να περιέχεται στο $a1 ώστε ο πιο κάτω κώδικας να προκαλέσει την εκτέλεση 105 εντολών; Επίσης, γράψετε διπλά από κάθε εντολή, στην μικρή γραμμή που σας δίνεται, πόσες φορές εκτελείται η κάθε εντολή για την συγκεκριμένη τιμή του $a1. addu $v0,$0,$0 1 beq $a1,$0, END 1 $a1=25 LOOP: END: sll $t0,$a1,2 1 addu $t0,$a0,$t0 1 lw $t1,0($a0) 25 addu $v0,$v0,$t1 25 addiu $a0,$a0,4 25 bne $a0,$t0,loop 25 jr $ra // return 1 2

Ε.5 Γράψετε σε γλώσσα ψηλού επιπέδου (πχ C, Java) μια συνάρτηση/μέθοδο που είναι ισοδύναμη με τον συμβολικό κώδικα της E.4 int foo(int a[], int size){ int s= 0,i; for(i=0;i<size;++i) s+=a[i]; return s; } E.6 Σας δίνετε το πιο κάτω τμήμα συμβολικού προγράμματος. L1: add $t0,$0,$0 1 andi $t1,$a0,0x00ff 4 add $t0,$t0,$t1 4 srl $a0,$a0,8 4 bne $a0,$0,l1 4 Εάν η αρχική τιμή του καταχωρητή $a0 είναι το 0x03057fbc, α) Δείξετε διπλά από την κάθε εντολή στην μικρή γραμμή που σας δίνεται πόσες φορές εκτελείται η κάθε εντολή; β) Tι θα είναι τα περιεχόμενα των καταχωρήτων t0,t1,a0 μετά την εκτέλεση του πιο πάνω κώδικα. t0 t1 a0 0x0000 0143 0x0000 0003 0x0000 0000 3

E7) Υπολογίστε την αναπαράσταση σε ΙΕΕΕ754 μονή ακριβείας του αριθμού 6. Πρώτα εκφράστε τον αριθμό στην μορφή (-1) Sign x (1+mantissa) x 2 exponent Η mantissa είναι ένας πραγματικός αριθμός μικρότερος του 1. Τι είναι η τιμή του πρόσημου (sign); 0 Τι είναι η τιμή στο δεκαδικό του εκθέτη (exponent); 2 Τι είναι η τιμή στο δεκαδικό της mantissas (significant); 0.5 Μετατρέψετε το exponent σε biased exponent, τι είναι η τιμή του στο δεκαδικό; 129 Η τελική σας απάντηση να δοθεί σε δεκαεξαδική μορφή. 0x40c0 0000 4

E.8 Τι είναι το ΠΡΟΣΗΜΟ (θετικό ή αρνητικό) του αποτελέσματος της αφαίρεσης των πιο κάτω πραγματικών τιμών σε αναπαράσταση IEEE754 μονής ακριβείας; Εξηγήστε την απάντηση σας (ΗΙΝΤ: δεν χρειάζεται να υπολογίσετε το τελικό αποτέλεσμα της αφαίρεσης) 0x3ED0Α00Ε => 0 0111 1101 101 0000 1010 0000 0000 1110-0xBEE0Β00F - 1 0111 1101 110 0000 1011 0000 0000 1111 Use sign bit positive - (negative) => positive 5

Ε.9 Σας δίνεται ο πιο κάτω διάδρομος δεδομένων που υλοποιεί ένα υποσύνολο των εντολών της αρχιτεκτονική MIPS. Επισης σας δινεται πιο κάτω πινακας που οριζέι την συμπεριφορά της ALU. Συμπληρώστε στον πιο κάτω πίνακα τις τιμές των σημάτων ελέγχου (1 ή 0) ώστε να εκτελείται μια εντολή φόρτωσης μιας τιμής από την μνήμη σε ένα καταχωρητή, πχ lw $6,16($10) 0 1 1 1 1 0 0 0 0 0 6

E.10 Γράψετε την συνάρτηση asci_parity στην συμβολική γλώσσα MIPS που παίρνει μια ακέραια παράμετρο που περιέχει μέσα ένα χαρακτήρα ASCII (7 bit) στα least significant bits της και επιστρέφει μια ακέραια τιμή που περιέχει τον χαρακτήρα ASCII στα 7-least-significant-bits και το odd parity του στην θέση (bit-position) 7. Πχ εάν η παράμετρος της συνάρτησης είναι η τιμή 96 10 (0x60, 0110 0000 2) η συνάρτηση θα επέστρεφε την τιμή 224 10 (0xE0, 1110 0000 2), ενώ εάν η τιμή της παραμέτρου ήταν το 22 10 (0x16, 0001 0110 2) η συνάρτηση θα επέστρεφε την τιμή 22 10 (0x16, 0001 0110 2). Στην πρώτη περίπτωση το parity είναι 1 για να γίνει περιττός ο αριθμός των 1 ενώ στην δεύτερη περίπτωση το parity είναι 0 γιατί ο αριθμός των 1 είναι ήδη περιττός..η συνάρτηση θα πρέπει να ακολουθεί την τυποποίηση MIPS, δεν επιτρέπεται η χρήση της στοίβας, το πολύ επιτρέπεται η χρήση 14 εντολών (λύνεται και με πιο λίγες). Πολύπλοκες λύσεις η λύσεις που δεν ακολουθούν την απαιτούμενη τυποποίηση θα παίρνουν 0 βαθμούς. ΤΕΛΙΚΗ ΑΠΑΝΤΗΣΗ: add $v0,$a0,$0 addi $t0,$0,1 LOOP: beq $a0,$0, END andi $t1,$a0,1 xor $t0,$t0,$t1 srl $a0,$a0,1 j LOOP END: sll $t0,$t0,7 or $v0,$v0,$t0 jr $ra 7

E.11 Σας δίνεται η συνάρτηση expand_table_values σε C και η μερική υλοποίηση της σε συμβολική γλώσσα MIPS. Υποθέστε πως η συνάρτηση expand_value, που παίρνει δύο ακέραιες παραμέτρους και επιστρέφει μια ακέραια τιμή, είναι ήδη υλοποιημένη. Οι δύο συναρτήσεις ακολουθούν την τυποποίηση MIPS (MIPS convention). Συμπληρώστε την expand_table_values οπού υπάρχει γραμμή. Δεν πρέπει να υλοποιήσετε την expand_value. ΗΙΝΤ: οι πρώτες 4 παράμετροι μιας συνάρτησης στην MIPS περνιόνται στην σειρά που παρουσιάζονται στην C στους καταχωρητές $a0-$a3. void expand_table_values(int table[], int size, int expansion){ int i; for(i=0;i<size; ++i) table[i] = expand_value(table[i], expansion); } expand_table_values: # save in stack saved registers and return address add $sp,$sp,-16 sw _$ra, 0_($sp) sw _$s0, 4_($sp) sw _$s1, 8_($sp) sw _$s2,_12 ($sp) # save parameters in saved registers and determine table end address add $s0, $a0_,$0 # table starting address sll $s1,_$a1,2 # multiply size by 4 add $s1,_$s0,_$s1_ # address at the end of table (start address + size x 4) add $s2, $a2_,$0 # expansion value # the function main loop LOOP: beq$s0, $s1, END # reached end of table? lw $a0,0(_$s0 ) # load table entry into first argument register add $a1,$s2,$0 # move expansion value into second argument register jal expand_value # call function sw $v0,0($s0) # store return value into table add _$s0_,$s0,_4_ # increment address to read next table entry j LOOP_ # restore saved registers and return address and return END:lw _$ra,_0 ($sp) lw _$s0, 4_($sp) lw _$s1, 8_($sp) lw _$s2, 12_($sp) add $sp,$sp,_16 jr $ra 8