ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213
Συμβόλαιο Μαθήματος Στόχος Μαθήµατος Να προσφέρει εις βάθος κατανόηση στην οργάνωση σύγχρονων υπολογιστών και τον σχεδιασμό μικροεπεξεργαστών, μέσω πρακτικής εμπειρίας. Οι εργαστηριακές ασκήσεις περιλαμβάνουν συμβολικό προγραμματισμό, σχεδιασμό και υλοποίηση απλών μικροεπεξεργαστών με τη χρήση εργαλείων σχεδιασμού σε Η.Υ. (CAD) και προγραμματιζόμενων διατάξεων λογικής. 2
Αναμενόμενα Αποτελέσματα Μαθήματος 1. Εις βάθος κατανόηση, μέσω πρακτικής εξάσκησης, των βασικών αρχών οργάνωσης και σχεδιασμού υπολογιστών. 2. Απόκτηση πρακτικής εμπειρίας στον συμβολικό προγραμματισμό και στη χρήση προσομοιωτών. 3. Απόκτηση πρακτικής εμπειρίας στον σχεδιασμό και την υλοποίηση μικροεπεξεργαστών με χρήση ηλεκτρονικών εργαλείων σχεδιασμού (CAD), γλώσσες υλικού (HDLs) και ολοκληρωμένων προγραμματιζόμενης λογικής. 4. Ικανότητα ομαδικής εργασίας και αποδοτικής επικοινωνίας. 3
Χρήση Ηλεκτρονικού Υπολογιστή Συμβολικός προγραμματισμός σε γλώσσα MIPS*και προσομοίωση με QtSpim 9.1.17 Επίσης, χρήση του λογισμικού Altera Quartus II V13.0 SP1 για σχηματική ή/και VHDL περιγραφή σχεδιασμού και προσομοίωση. Τέλος, χρήση της εκπαιδευτικής πλακέτας (Altera FPGA board) για έλεγχο λειτουργικότητας του δικού σας σχεδιασμού (MIPS-16). * Microprocessor without Interlocked Pipeline Stages) is a reduced instruction set computer (RISC) 4
1ο Μέρος Εργαστηρίου Το πρώτο μέρος αφορά την εις βάθος εξάσκηση σε συμβολικό προγραμματισμό και την χρήση του προσομοιωτή QtSpim. Οι εβδομαδιαίες ομαδικές εργασίες θα δίνουν έμφαση σε ξεχωριστά θέματα οργάνωσης υπολογιστών, όπως η υλοποίηση αριθμητικών λειτουργιών, οι τρόποι διευθυνσιοδότησης της μνήμης,αποφάσεις και διακλαδώσεις,η στοίβα προγράμματος, ο αναδρομικός προγραμματισμός, κτλ. Θέματα σε επίπεδο συστήματος, όπως χρονομέτρηση, σήματα διακοπών και λειτουργίες I/O, θα εξεταστούν στο πρώτο project. 5
2ο Μέρος Εργαστηρίου Το 2ο μέρος εστιάζει σε προβλήματα και ασκήσεις σχεδιασμού και οργάνωσης μικροεπεξεργαστών με την χρήση του AlteraQuartus IIγια σχηματική ή/και VHDL περιγραφή σχεδιασμού και προσομοίωση. Οι εβδομαδιαίες ασκήσεις θα δίνουν έμφαση στον σχεδιασμό των βασικών μερών ενός απλού μικροεπεξεργαστή. Το τελικό projectαφορά την ενσωμάτωση των βασικών μερών, την επαλήθευση και την υλοποίηση του μικροεπεξεργαστή σε πλακέτα με ολοκληρωμένα προγραμματιζόμενης λογικής τύπου CPLDκαι FPGA. 6
Αναμενόμενη Εργασία από Φοιτητές Η παρουσία στα εργαστήρια είναι υποχρεωτική. Επιτρέπονται επιπλέον παρακολουθήσεις!!! Τακτική μελέτη του υλικού που ανατίθεται. Παρουσίαση (ομαδική) στην ύλη του 1 ου μέρους Δύο Projects, μία ενδιάμεση και μια τελική εξέταση (και οι δύο εξετάσεις θα είναι γραπτές). 7
Αξιολόγηση ΗΜΥ213 Παρουσίαση Ομαδική 10% 1o Project(Αssembly) Ομαδικό 10% 2o Project(MIPS-16) Ομαδικό 10% Ενδιάμεση Εξέταση 10 Μαρ. 2016 35% Τελική Εξέταση Απρίλιος 2016 35% Εργασία Βελτίωσης Βαθμού 15% Απαραίτητη προϋπόθεση επιτυχίας στο µάθηµα είναι η εξασφάλιση συνολικού βαθµού 50% Ηεργασίαβελτίωσηςβαθµούθαλαµβάνεταιυπόψηµόνοεάνοι βαθµολογίες από τις δύο εξετάσεις δίνουν µέσο όρο >40% 8
Πολιτική Κανόνες Μαθήματος Βαθμολογία: Τυχόν ενστάσεις για την βαθμολόγηση εργασίας/εξέτασης θα μπορούν να γίνονται εντός μιας εβδομάδας από την επιστροφή της εργασίας/εξέτασης στους φοιτητές. Ενστάσεις θα γίνονται δεκτές μόνο γραπτώς με ξεκάθαρη περιγραφή του παραπόνου ή της διευκρίνησης που ζητείται. Εκπρόθεσμες Εργασίες: Όλες οι εργασίες πρέπει να παραδίδονται κατά την έναρξη της διάλεξης (+7 μέρες από την ανάθεση της εργασίας). Εκπρόθεσμες εργασίες θα υφίστανται αυτόματη μείωση βαθμολογίας 20% για κάθε επιπρόσθετη μέρα καθυστέρησης πέραν της ημερομηνίας λήξης της προθεσμίας. Εργασίες που θα παραδίδονται με καθυστέρηση πέραν των 3 ημερών δεν θα γίνονται δεκτές. Παρατάσεις θα πρέπει να διευθετούνται πάντοτε πριν από την λήξη της προθεσμίας. 9
Απουσίες: Δικαιολογημένες απουσίες λόγω ασθένειας ή εγκεκριμένου ταξιδιού για ακαδημαϊκούς σκοπούς πρέπει να ακολουθούν την πολιτική απουσιών του πανεπιστημίου. Δεν θα παραχωρούνται παρατάσεις στην παράδοση ασκήσεων ή εναλλακτικές εξετάσεις, εκτός και αν η απουσία σας είναι δικαιολογημένη. Σε περίπτωση προγραμματισμένης απουσίας, πρέπει να επικοινωνήσετε με τον διδάσκοντα πριν την ημερομηνία της απουσίας σας. Ακαδημαϊκή Δεοντολογία: Ενθαρρύνεστε να συνεργάζεστε και να ανταλλάσσετε απόψεις για το υλικό του μαθήματος και όλες τις εργασίες. Ωστόσο, αυτό θα πρέπει να περιορίζεται στη συζήτηση και να μην συνεχίζεται κατά την σύνταξη του κώδικα. Απαγορεύεται αυστηρώς η συγγραφή κώδικα/εργασίας σε συνεργασία με άτομο εκτός ομάδας. Εργασίες οι οποίες έχουν σημαντική αλληλοεπικάλυψη συνιστούν παραβίαση της ακαδημαϊκής δεοντολογίας και θα αναφέρονται στο Συμβούλιο του Τμήματος ή ακόμα και στην Σύγκλητο του Πανεπιστημίου. 10
Αρχιτεκτονική Μικροεπεξεργαστή (MIPS-32) 11
Εγκατάσταση και Λειτουργία QtSpim 9.1.17 Κατεβάστε το πρόγραμμα QtSpim9.1.17 από τον σύνδεσμο που υπάρχει στην ιστοσελίδα: http://spimsimulator.sourceforge.net/ Εγκαταστήστε το και στη συνέχεια ελέγξτε την ορθή του λειτουργία τρέχοντας το αρχείο hello wordκαι ως αποτέλεσμα δείτε αυτή τη φράση στο παράθυρο Console. Βοήθεια: File/load file (επιλέξτε το αρχείο) και μετά Simulator/Run-Continue (τρέξτε το αρχείο). Αν δεν βλέπετε το hello word επιλέξτε Window/Console. Τρέξτε επίσης τα 2 αρχεία add2numbers.s αρχικά με το Run και μετά με Single Stepsπαρατηρώντας τις τιμές των καταχωρητών PC, v0, a0, t1, t2 και t3. 12
QtSpim 9.1.17 (for windows) 13
Από το Πρόβλημα στη Λύση! Κατά την επίλυση οποιουδήποτε προβλήματος, συνειδητά ή όχι, πάντοτε ακολουθούμε κάποια στάδια μέχρι που να φτάσουμε στην επιθυμητή λύση. Σε προβλήματα προγραμματισμού, συνήθως ακολουθούνται τα εξής στάδια: 1. Κατανόηση του προβλήματος 2. Ανάλυση προβλήματος (είσοδοι, έξοδοι, σταθερές, μεταβλητές) 3. Βήματα προς επίλυση του προβλήματος 4. Συγγραφή κώδικα για το κάθε βήμα 5. Έλεγχος κώδικα βήμα προς βήμα 6. Τελικός έλεγχος κώδικα 14
Διάγραμμα Ροής Προγράμματος Flow -Chart Το διάγραμμα ροής είναι πολύ βοηθητικό στην επίλυση ενός προβλήματος αφού μας βοηθά να δούμε και οπτικά την πορεία επίλυσης του προβλήματος και να κατανοήσουμε καλύτερα τον κώδικα που πρέπει να γράψουμε για το κάθε ένα από τα βήματα που πρέπει να ακολουθήσουμε. Η επιλογή του αριθμού των βημάτων εξαρτάται από το ίδιο το πρόβλημα αλλά και από το πόσο αναλυτικό επιθυμούμε εμείς να το σχεδιάσουμε. Πρέπει τουλάχιστο να περιέχει όλους τους ελέγχους (beq/bne/bhi) όπως και τυχόν αλληλεπίδραση με τον χρήστη. Ας σχεδιάσουμε το πρώτο μας Διάγραμμα Ροής βάσει του παραδείγματος add2numbers.s 15
Δημιουργία αρχείου add2numbers.s (Πρόσθεση 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 # add t1 and t2 ->t3 16
Πρόσθεση 2 αριθμών και εκτύπωση αποτελέσματος (συνέχεια.) li $v0, 4 la $a0, result_is syscall li $v0, 1 move $a0, $t3 syscall li $v0, 10 syscall # syscall to print string # syscall to print an integer # syscall to exit programme # press enterto keep SPIM HAPPY! 17
Εκτέλεση Κώδικα 18
Εκτέλεση Κώδικα 19
Μαθησιακοί Στόχοι 1 ου Εργαστηρίου Κατανόηση συμβολαίου μαθήματος και τρόπος μελέτης στο ΗΜΥ213 Εγκατάσταση και βασική χρήση του προσομοιωτή QtSpim 9.1.17 στον υπολογιστή σας. Δομή προγράμματος (.s file) Κλήσεις συστήματος: 1, 4, 5, 10 Εντολές:li, la, add και move (σύνταξη και αποτέλεσμα εκτέλεσης της κάθε εντολής) 20