21
ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: [email protected] www.ece.ucy.ac.cy/courses/ECE213

ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

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

Διδάσκων: Δρ. Γιώργος Ζάγγουλος

Email: [email protected]

www.ece.ucy.ac.cy/courses/ECE213

Page 2: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Περίληψη

� Συμβόλαιο Μαθήματος

� Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32

� Αρχείο Kαταχωρητών και Χάρτης Μνήμης

15-Jan-172

� Αρχείο Kαταχωρητών και Χάρτης Μνήμης

� Δομή αρχείου (προγράμματος) - Παράδειγμα

� Έλεγχος Ροής Κώδικα

� Οι πρώτες μας εντολές assembly - Παραδείγματα

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

Page 3: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Συμβόλαιο Μαθήματος

Στόχος Μαθήματος

Να προσφέρει εις βάθος κατανόηση στην οργάνωση σύγχρονων

υπολογιστών και τον σχεδιασμό μικροεπεξεργαστών, μέσω

πρακτικής εμπειρίας.

15-Jan-173

πρακτικής εμπειρίας.

Οι εργαστηριακές ασκήσεις περιλαμβάνουν συμβολικό

προγραμματισμό, σχεδιασμό και υλοποίηση απλών

μικροεπεξεργαστών με τη χρήση εργαλείων σχεδιασμού σε Η.Υ. (CAD) και προγραμματιζόμενων διατάξεων λογικής.

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

Page 4: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Αναμενόμενα Αποτελέσματα Μαθήματος

1. Εις βάθος κατανόηση, μέσω πρακτικής εξάσκησης, των βασικών αρχών οργάνωσης και σχεδιασμού υπολογιστών.

2. Απόκτηση πρακτικής εμπειρίας στον συμβολικό προγραμματισμό και στη χρήση προσομοιωτών.

3. Απόκτηση πρακτικής εμπειρίας στον σχεδιασμό και την

15-Jan-174

3. Απόκτηση πρακτικής εμπειρίας στον σχεδιασμό και την υλοποίηση μικροεπεξεργαστών με χρήση ηλεκτρονικών εργαλείων σχεδιασμού (CAD), γλώσσες υλικού (HDLs) και ολοκληρωμένων προγραμματιζόμενης λογικής.

4. Ικανότητα ομαδικής εργασίας και αποδοτικής επικοινωνίας.

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

Page 5: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Χρήση Ηλεκτρονικού Υπολογιστή

Συμβολικός προγραμματισμός σε γλώσσα MIPS* και

προσομοίωση με QtSpim 9.1.17

Επίσης, χρήση του λογισμικού Altera Quartus II V13.0 SP1 για

σχηματική ή/και VHDL περιγραφή σχεδιασμού και

15-Jan-175

σχηματική ή/και VHDL περιγραφή σχεδιασμού και προσομοίωση.

Τέλος, χρήση της εκπαιδευτικής πλακέτας (Altera FPGA board) για

έλεγχο λειτουργικότητας του δικού σας σχεδιασμού (MIPS-16).

* Microprocessor without Interlocked Pipeline Stages) is a reduced instruction set computer (RISC)

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

Page 6: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

1ο Μέρος Εργαστηρίου

�Το πρώτο μέρος αφορά την εις βάθος εξάσκηση σε συμβολικό προγραμματισμό και την χρήση του προσομοιωτή QtSpim.

�Οι εβδομαδιαίες ομαδικές εργασίες θα δίνουν έμφαση σε ξεχωριστά θέματα οργάνωσης υπολογιστών, όπως η

15-Jan-176

ξεχωριστά θέματα οργάνωσης υπολογιστών, όπως η υλοποίηση αριθμητικών λειτουργιών, οι τρόποιδιευθυνσιοδότησης της μνήμης, αποφάσεις και διακλαδώσεις, η στοίβα προγράμματος, ο αναδρομικός προγραμματισμός, κτλ.

�Θέματα σε επίπεδο συστήματος, όπως χρονομέτρηση, σήματα διακοπών και λειτουργίες I/O, θα εξεταστούν στο πρώτο project.

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

Page 7: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

2ο Μέρος Εργαστηρίου

�Το 2ο μέρος εστιάζει σε προβλήματα και ασκήσεις σχεδιασμού και οργάνωσης μικροεπεξεργαστών με την χρήση του Altera Quartus II για σχηματική ή/και VHDL περιγραφή σχεδιασμού και προσομοίωση.

�Οι εβδομαδιαίες ασκήσεις θα δίνουν έμφαση στον σχεδιασμό των βασικών μερών ενός απλού

15-Jan-177

σχεδιασμό των βασικών μερών ενός απλού μικροεπεξεργαστή.

�Το τελικό project αφορά την ενσωμάτωση των βασικών μερών, την επαλήθευση και την υλοποίηση του μικροεπεξεργαστή σε πλακέτα με ολοκληρωμένα προγραμματιζόμενης λογικής τύπου CPLD και FPGA.

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

Page 8: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Αναμενόμενη Εργασία από Φοιτητές

� Η παρουσία στα εργαστήρια είναι υποχρεωτική.

� Επιτρέπονται επιπλέον παρακολουθήσεις!!!

� Τακτική μελέτη του υλικού που ανατίθεται.

� Δύο , μία ενδιάμεση και μια τελική εξέταση (και οι

15-Jan-178

� Δύο Projects, μία ενδιάμεση και μια τελική εξέταση (και οι

δύο εξετάσεις θα είναι γραπτές).

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

Page 9: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Αξιολόγηση ΗΜΥ213

4 Διαγωνίσματα (Δευτέρα) 15%

1o Project (Αssembly) Ομαδικό 10%

Ενδιάμεση Εξέταση 06 Μαρ. 2017 30%

2o Project (MIPS-16) Ομαδικό 10%

Τελική Εξέταση 8-22 Μαΐου 2017 35%

15-Jan-179

Τελική Εξέταση 8-22 Μαΐου 2017 35%

Εργασία Βελτίωσης Βαθμού 15%

• Απαραίτητη προϋπόθεση επιτυχίας στο μάθημα είναι ηεξασφάλιση συνολικού βαθμού ≥ 50%

• Η εργασία βελτίωσης βαθμού θα λαμβάνεται υπόψη μόνο εάν οιβαθμολογίες από τις δύο εξετάσεις δίνουν μέσο όρο >40%

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

Page 10: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Πολιτική – Κανόνες ΜαθήματοςΒαθμολογία:

Τυχόν ενστάσεις για την βαθμολόγηση εργασίας/εξέτασης θα μπορούν

να γίνονται εντός μιας εβδομάδας από την επιστροφή της

εργασίας/εξέτασης στους φοιτητές. Ενστάσεις θα γίνονται δεκτές μόνο

γραπτώς με ξεκάθαρη περιγραφή του παραπόνου ή της διευκρίνησης που

ζητείται.

Εκπρόθεσμες Εργασίες:

15-Jan-1710

Εκπρόθεσμες Εργασίες:

Εκπρόθεσμες εργασίες θα υφίστανται αυτόματη μείωση βαθμολογίας

15% για κάθε επιπρόσθετη μέρα καθυστέρησης πέραν της ημερομηνίας

λήξης της προθεσμίας. Εργασίες που θα παραδίδονται με καθυστέρηση

πέραν των 3 ημερών δεν θα γίνονται δεκτές. Παρατάσεις θα πρέπει να

διευθετούνται πάντοτε τουλάχιστο 24 ώρες πριν από την λήξη τηςπροθεσμίας.

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

Page 11: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Απουσίες:

Δικαιολογημένες απουσίες λόγω ασθένειας ή εγκεκριμένου ταξιδιού για

ακαδημαϊκούς σκοπούς πρέπει να ακολουθούν την πολιτική απουσιών του

πανεπιστημίου. Δεν θα παραχωρούνται παρατάσεις στην παράδοση

ασκήσεων ή εναλλακτικές εξετάσεις, εκτός και αν η απουσία σας είναι

δικαιολογημένη. Σε περίπτωση προγραμματισμένης απουσίας, πρέπει να

επικοινωνήσετε με τον διδάσκοντα πριν την ημερομηνία της απουσίας σας.

Ακαδημαϊκή Δεοντολογία:

15-Jan-1711

Ενθαρρύνεστε να συνεργάζεστε και να ανταλλάσσετε απόψεις για το υλικό

του μαθήματος και όλες τις εργασίες. Ωστόσο, αυτό θα πρέπει να περιορίζεται

στη συζήτηση και να μην συνεχίζεται κατά την σύνταξη του κώδικα.

Απαγορεύεται αυστηρώς η συγγραφή κώδικα/εργασίας σε συνεργασία με

άτομο εκτός ομάδας. Εργασίες οι οποίες έχουν σημαντική αλληλοεπικάλυψη

συνιστούν παραβίαση της ακαδημαϊκής δεοντολογίας και θα αναφέρονται στοΣυμβούλιο του Τμήματος ή ακόμα και στην Σύγκλητο του Πανεπιστημίου.

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

Page 12: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Αρχιτεκτονική Μικροεπεξεργαστή (MIPS-32)

Μνήμη

Κεντρική Μονάδα ΕπεξεργασίαςΚαταχωρητές

Αριθμητική (Λογική) Μονάδα

15-Jan-1712

Αριθμητική (Λογική) Μονάδα

Ειδικά Κυκλώματα

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

Καταχωρητές ειδικής χρήσης

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

A24, A46

Page 13: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Χάρτης Μνήμης (MIPS-32)

�Στοίβα

15-Jan-1713

A21

�Δηλώσεις και Δεδομένα

�Εντολές προγράμματος

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

Page 14: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Προγραμματισμός Μικροεπεξεργαστή

� Οι μικροεπεξεργαστές συνοδεύονται από ένα σύνολο εντολών το οποίο υποστηρίζουν.

� Συνήθως υπάρχουν μικροδιαφορές στην σύνταξη μιας εντολής μεταξύ κατασκευαστών αλλά και οικογενειών μικροεπεξεργαστών.

� Η πιο πάνω γλώσσα είναι γνωστή ως “Assembly” και στόχο

15-Jan-1714

� Η πιο πάνω γλώσσα είναι γνωστή ως “Assembly” και στόχο έχει να διευκολύνει τον προγραμματιστή ο οποίος δεν χρειάζεται να προγραμματίζει σε κώδικα μηχανής (machine code) ο οποίος είναι δυσνόητος. Αυτό επιτυγχάνεται με τη

χρήση ενός εργαλείου «assembler» το οποίο αντιστοιχεί

στην ουσία τις εντολές μας σε κώδικα μηχανής (αποτελούμενο από 0 και 1).

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

Page 15: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Δομή Αρχείου προσομοίωσης

# Στοιχεία προγραμματιστή/κώδικα

.data

Δηλώσεις (.asciiz, .byte, .word).text

15-Jan-1715

.text

main: Αρχικοποιήσεις

Εντολές Προγράμματος

# Κενή γραμμή για να τρέξει ο κώδικας

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

Page 16: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Έλεγχος Ροής Προγράμματος

� Ο καταχωρητής PC (programme counter) ενεργεί ως δείκτης στη διεύθυνση μνήμης όπου είναι αποθηκευμένη η επόμενη προς εκτέλεση εντολή.

Η τιμή του PC αυξάνει αρχικά πάντοτε κατά 4!

� Πως επιτυγάνεται το jump ή το branch στον MIPS-32;

15-Jan-1716

� Πως επιτυγάνεται το jump ή το branch στον MIPS-32;

� Υπολογισμός της νέας διεύθυνσης αναλόγως της εντολής (απόλυτη τιμή ή σχετική τιμή).

� Αποθήκευση του $pc στον $ra (σε περίπτωση κλήσης συνάρτησης μέσα από το πρόγραμμα)

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

Page 17: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Οι πρώτες μας εντολές

� Κλήσεις συστήματος (1, 4, 5, 8, 10)

� Φόρτωση καταχωρητή (li, lb, lw, la)

� Μετακίνηση καταχωρητή (move)

� Αριθμητικές και Λογικές πράξεις (add, sub, or, and,

15-Jan-1717

� Αριθμητικές και Λογικές πράξεις (add, sub, or, and, xor, sll, srl)

� Συγκρίσεις τιμών (beq, beqz, bne)

A44, A49-81

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

Page 18: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Παράδειγμα Πρόσθεσης 2 Καταχωρητών και Εκτύπωσης

# your details with a description of the code

.data

result_is: .asciiz “The result is:\n”

.text

main:

li $t1, 10 # load t1 with 10

li $t2, 7 # load t2 with 7

add $t3, $t1, $t2 # t3 = t1 + t2

li $v0, 4

la $a0, result_is # syscall to print string

15-Jan-1718

la $a0, result_is # syscall to print string

syscall

li $v0, 1

move $a0, $t3 # syscall to print an integer

syscall

li $v0, 10

syscall # syscall to exit programme

# press enter to keep SPIM HAPPY!

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

Page 19: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Παραδείγματα εντολών

li $t1, 0x10 # Register $t1 = 16 = 10hex

lb $t2, 0x12345678 # Reg. $t2=περιεχόμενα μνήμης (0Χ12345678)

lw $t2, 0x12345678 # $t2=περιεχόμενα μνήμης (0Χ12345678/9/a/b)

la $a0, welcome # Register $a0 = address of welcome message

move $t4, $v0 # Register $t4 = Register $v0

15-Jan-1719

move $t4, $v0 # Register $t4 = Register $v0

add $t3, $zero, $t2 # Register $t3 = Register $t2 + 0

addi $t3, $t4, 1 # Register $t3 = Register $t4 + 1

ori $t3, $t4, 0x12 # Register $t3 = Reg. $t4 OR 0001 0010

andi $t5, $t6, 255 # Register $t5 = Reg. $t6 AND 1111 1111

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

Page 20: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Παραδείγματα εντολών

xor $t6, $t6, $t6 # Register $t6 = Reg. $t6 XOR Reg. $t6 = 0

sll $t7, $t6, 3 # Register $t7 = Reg. $t6 <<< 3 = $t6 * 8

srl $t5, $t3, 5 # Register $t5 = Reg. $t3 >>> 5 = $t3 / 32

beq $t6, $t5, finals # If Reg $t6 = $t5, PC = address “finals”

bne $t7, $t6, again # If Reg $t7 ≠ $t6, PC = address “again”

15-Jan-1720

bne $t7, $t6, again # If Reg $t7 ≠ $t6, PC = address “again”

beqz $t8, exit_now # If Reg $t8 = 0, PC = address “exit_now”

bgt $t6, $t5, loop1 # If Reg $t6 > $t5, PC = address “loop1”

b step2 # PC = address “step2” (πιο γρήγορη εντολή)

j step2 # PC = address “step2” (χωρίς περιορισμό)

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

Page 21: ECE213-Lecture1-2016 · Συμβολικός προγραμματισμός σε γλώσσα MIPS* και προσομοίωση με QtSpim9.1.1 7 Επίσης, χρήση του

Μαθησιακοί στόχοι 1ης Εβδομάδας

1. Αρχιτεκτονική MIPS-32 (CPU, Registers, Memory, Co-proc.)

2. Προσομοιωτής QtSpim 9.1.17 (Εγκατάσταση προγράμματος, Φόρτωση και τρέξιμο κώδικα)

15-Jan-1721

Φόρτωση και τρέξιμο κώδικα)

3. Assembly Language και Κώδικας Μηχανής (Δομή αρχείου προσομοίωσης και κλήσεις συστήματος)

4. Έλεγχος Ροής Προγράμματος ($pc, $ra)

5. Εισαγωγή στην assembly

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