ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213
Συμβόλαιο Μαθήματος Στόχος Μαθήματος Να προσφέρει εις βάθος κατανόηση στην οργάνωση σύγχρονων υπολογιστών και τον σχεδιασμό μικροεπεξεργαστών, μέσω πρακτικής εμπειρίας. Οι εργαστηριακές ασκήσεις περιλαμβάνουν συμβολικό προγραμματισμό, σχεδιασμό και υλοποίηση απλών μικροεπεξεργαστών με τη χρήση εργαλείων σχεδιασμού με χρήση υπολογιστή (CAD) και προγραμματιζόμενων διατάξεων λογικής. HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 2
Αναμενόμενα Αποτελέσματα Μαθήματος 1. Εις βάθος κατανόηση, μέσω πρακτικής εξάσκησης, των βασικών αρχών οργάνωσης και σχεδιασμού υπολογιστών. 2. Απόκτηση πρακτικής εμπειρίας σε συμβολικό προγραμματισμό και στη χρήση προσομοιωτών. 3. Απόκτηση πρακτικής εμπειρίας στον σχεδιασμό και την υλοποίηση μικροεπεξεργαστών με χρήση εργαλείων σχεδιασμού (CAD), γλώσσες υλικού (HDLs) και ολοκληρωμένων προγραμματιζόμενης λογικής. 4. Ικανότητα ομαδικής εργασίας και αποδοτικής επικοινωνίας. HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 3
Χρήση Ηλεκτρονικού Υπολογιστή Συμβολικός προγραμματισμός σε γλώσσα MIPS και προσομοίωση με: SPIM (σε περιβάλλον Linux) και QtSpim (σε Windows). Επίσης, χρήση του λογισμικού Altera Quartus II σε προσωπικό υπολογιστή (Windows) για σχηματική ή/και VHDL περιγραφή σχεδιασμού και προσομοίωση. HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 4
1ο Μέρος Εργαστηρίου Το πρώτο μέρος αφορά την εις βάθος εξάσκηση σε συμβολικό προγραμματισμό και την χρήση του προσομοιωτή SPIM σε περιβάλλον Linux/Windows Windows. Οι εβδομαδιαίες εργασίες θα δίνουν έμφαση σε ξεχωριστά θέματα οργάνωσης υπολογιστών, όπως την υλοποίηση αριθμητικών λειτουργιών, τους τρόπους διευθυνσιοδότησης της μνήμης, την στοίβα προγράμματος, αποφάσεις και διακλαδώσεις, αναδρομικός προγραμματισμός, κτλ. Θέματα σε επίπεδο συστήματος, όπως χρονομέτρηση, σήματα διακοπών και λειτουργίες I/O, θα εξεταστούν στο τελικό project. Η εργασία στο πρώτο μέρος είναι ατομική HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 5
2ο Μέρος Εργαστηρίου Το 2ο μέρος εστιάζεται σε προβλήματα και ασκήσεις σχεδιασμού και οργάνωσης μικροεπεξεργαστών με την χρήση των εργαλείων Altera Quartus II για σχηματική ή/και VHDL περιγραφή σχεδιασμού και προσομοίωση. Οι εβδομαδιαίες εργασίες θα δίνουν έμφαση στον σχεδιασμό των βασικών μερών ενός απλού μικροεπεξεργαστή. Το τελικό project αφορά την ενσωμάτωση των βασικών μερών, την επαλήθευση και την υλοποίηση του μικροεπεξεργαστή σε πλακέτα με ολοκληρωμένα προγραμματιζόμενης λογικής τύπου CPLD και FPGA. Η εργασία στο δεύτερο μέρος είναι ομαδική. Οι ομάδες θα δημιουργηθούν βάσει της βαθμολογίας από το πρώτο μέρος έτσι ώστε να υπάρχει ομοιογένεια στην κάθε ομάδα. HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 6
Αναμενόμενη Εργασία από Φοιτητές Η παρουσία στα εργαστήρια είναι υποχρεωτική. Επιτρέπονται επιπλέον παρακολουθήσεις! Τακτική μελέτη του υλικού που ανατίθεται. Προαιρετικές Εργαστηριακές ασκήσεις για πρακτική εξάσκηση και αυτοαξιολόγηση (με bonus) Δύο Projects, δύο ενδιάμεσες και μια τελική εξέταση (γραπτές). HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 7
Αξιολόγηση ΗΜΥ213 4 Ασκήσεις (assembly) - Bonus 5% 1o Project (assembly) - Ατομικό 10% 2o Project (MIPS-16) - Ομαδικό 15% Ενδιάμεση Εξέταση 1-9 Φεβ.. 2012 15% Ενδιάμεση Εξέταση 2-1 Μαρ.. 2012 30% Τελική Εξέταση (7 20 Μαΐου 2012) 30% HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 8
Απαραίτητες προϋποθέσεις επιτυχίας στο μάθημα είναι: 1. Εξασφάλιση συνολικού βαθμού 50% 2. Ικανοποιητική ολοκλήρωση και των ΔΥΟ projects (με βαθμό 50% σε κάθε project) 3. Η συμμετοχή στην τελική εξέταση θα επιτραπεί μόνο εάν ισχύει η 2η προϋπόθεση Το bonus για τις ασκήσεις συμβολικού προγραμματισμού θα δίνεται μόνο εάν το πρόγραμμα σας συνοδεύεται από διάγραμμα ροής και δίνει το σωστό αποτέλεσμα! Ο διδάσκων διατηρεί το δικαίωμα οριακής προσαρμογής της βαθμολογίας με βάση την παρακολούθηση και την ενεργό συμμετοχή στην τάξη/εργαστήριο εργαστήριο. HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 9
Πολιτική Κανόνες Μαθήματος Βαθμολογία: Τυχόν ενστάσεις για την βαθμολόγηση εργασίας/εξέτασης εξέτασης θα μπορούν να γίνονται εντός μιας εβδομάδας από την επιστροφή της εργασίας/εξέτασης εξέτασης στους φοιτητές. Ενστάσεις θα γίνονται δεκτές μόνο γραπτώς με ξεκάθαρη περιγραφή του παραπόνου ή της διευκρίνησης που ζητείται. Εκπρόθεσμες Εργασίες: Όλες οι εργασίες πρέπει να παραδίδονται κατά την έναρξη της διάλεξης (+7 μέρες από την ανάθεση της εργασίας). Εκπρόθεσμες εργασίες θα υφίστανται αυτόματη μείωση βαθμολογίας 20% για κάθε επιπρόσθετη μέρα καθυστέρησης πέραν της ημερομηνίας λήξης της προθεσμίας. Εργασίες που θα παραδίδονται με καθυστέρηση πέραν των 3 ημερών δεν θα γίνονται δεκτές. Παρατάσεις θα πρέπει να διευθετούνται πάντοτε πριν από την λήξη της προθεσμίας. HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 10
Απουσίες: Δικαιολογημένες απουσίες λόγω ασθένειας ή εγκεκριμένου ταξιδιού για ακαδημαϊκούς σκοπούς πρέπει να ακολουθούν την πολιτική απουσιών του πανεπιστημίου. Δεν θα παραχωρούνται παρατάσεις στην παράδοση ασκήσεων ή εναλλακτικές εξετάσεις, εκτός και αν η απουσία σας είναι δικαιολογημένη. Σε περίπτωση προγραμματισμένης απουσίας, πρέπει να επικοινωνήσετε με τον διδάσκοντα πριν την ημερομηνία της απουσίας. Ακαδημαϊκή Δεοντολογία: Ενθαρρύνεστε να συνεργάζεστε και να ανταλλάσσετε απόψεις για το υλικό του μαθήματος και όλες τις εργασίες. Ωστόσο, αυτό θα πρέπει να περιορίζεται στη συζήτηση και να μην συνεχίζεται κατά την σύνταξη του κώδικα. Απαγορεύεται αυστηρώς η συγγραφή κώδικα/εργασίας σε συνεργασία με άλλο άτομο. Εργασίες οι οποίες έχουν σημαντική αλληλοεπικάλυψη συνιστούν παραβίαση της ακαδημαϊκής δεοντολογίας και θα αναφέρονται στο Συμβούλιο του Τμήματος ή ακόμα και στην Σύγκλητο του Πανεπιστημίου. HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 11
Εγκατάσταση και Λειτουργία QtSpim HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 12
QtSpim Application (Windows xp/vista/7) HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 13
Αρχικοποίηση QtSpim και Φόρτωση Αρχείου HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 14
Επιλογή Αρχείου (.s s file) HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 15
Εκτέλεση Κώδικα HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 16
Δημιουργία νέων φακέλων και αρχείων στο Linux 1. Ανοίξτε ένα παράθυρο Terminal και μπείτε στον επιθυμητό φάκελο εργασίας 2. Πληκτρολογήστε mkdir foldername για δημιουργία νέου φακέλου, cd foldername για αλλαγή του φακέλου εργασίας και στην συνέχεια cat > filename.s για να δημιουργήσετε το αρχείο σας. 3. Ανοίξτε τώρα το νέο σας αρχείο με emacs text editor και γράψτε το πρόγραμμα σας! HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 17
Δημιουργία αρχείου prosthesi.s (Πρόσθεση 2 αριθμών και εκτύπωση αποτελέσματος) # your name.data out_string:.asciiz The result is:\n.text main: li $t1, 10 # load t1 with 10 li $t2, 6 # load t2 with 5 add $t3, $t1, $t2 # add t1 and t2 ->t3 HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 18
Δημιουργία αρχείου prosthesi.s (Πρόσθεση 2 αριθμών και εκτύπωση αποτελέσματος) li $v0, 4 la $a0, out_string syscall # syscall to print string li $v0, 1 move $a0, $t3 syscall # syscall to print an integer li $v0, 10 syscall # syscall to exit programme # press enter to keep SPIM HAPPY! HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 19
Εξοικείωση με το SPIM (for Linux) 1. Log-in σε λειτουργικό Linux 2. Ανοίξτε ένα παράθυρο εργασίας Terminal 3. Mε την εντολή CD (change directory) βρέστε τoν φάκελο εργασίας σας (cd Desktop / cd HMY213 / cd week1) 4. spim - ξεκινά τον προσομοιωτή 5. read prosthesi.s διαβάζει το αρχείο 6. run τρέχει τον κώδικα! HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 20
Εξοικείωση με το GUI του ΧSPIM (for Linux) Ο προσομοιωτής ΧSPIM μας παρέχει τη δυνατότητα να βλέπουμε άμεσα το περιεχόμενο ενός καταχωρητή ή μιας θέσης μνήμης. Πληκτρολογώντας ΧSPIM μέσα στο Terminal, επιλέξτε <load>, γράψτε τo όνομα του αρχείου και επιλέξτε <assembly file>. Με την επιλογή <run> μπορείτε να τρέξετε όλο τον κώδικα σας, ενώ με το <step> ο κώδικας σας τρέχει βηματικά (εντολή με εντολή) HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 21
Μερικές Εντολές Linux bash / pwd / cd mkdir / cat > read / run / exit locate / whoami / date HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 22
Από το Πρόβλημα στη Λύση! Κατά την επίλυση οποιουδήποτε προβλήματος, συνειδητά ή όχι, πάντοτε ακολουθούμε κάποια στάδια μέχρι που να φτάσουμε στην επιθυμητή λύση. Σε προβλήματα προγραμματισμού, συνήθως ακολουθούνται τα εξής στάδια: 1. Κατανόηση του προβλήματος 2. Ανάλυση προβλήματος (είσοδοι, έξοδοι, σταθερές, μεταβλητές) 3. Βήματα προς επίλυση του προβλήματος 4. Συγγραφή κώδικα για το κάθε βήμα 5. Έλεγχος κώδικα βήμα προς βήμα 6. Τελικός έλεγχος κώδικα HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 23
Διάγραμμα Ροής Προγράμματος Flow - Chart Το διάγραμμα ροής είναι πολύ βοηθητικό στην επίλυση ενός προβλήματος αφού μας βοηθά να δούμε και οπτικά την πορεία επίλυσης του προβλήματος και να κατανοήσουμε καλύτερα τον κώδικα που πρέπει να γράψουμε για το κάθε ένα από τα βήματα που πρέπει να ακολουθήσουμε. Η επιλογή του αριθμού των βημάτων εξαρτάται από το ίδιο το πρόβλημα αλλά και από το πόσο αναλυτικό επιθυμούμε εμείς να το σχεδιάσουμε. Πρέπει τουλάχιστο να περιέχει όλους τους ελέγχους (beq/bne/bhi) όπως και τυχόν αλληλεπίδραση με τον χρήστη. Ας σχεδιάσουμε το πρώτο μας Διάγραμμα Ροής βάσει του παραδείγματος prosthesi_2012b.s HMY213 - Πανεπιστήμια Κύπρου - Εαρινό Εξάμηνο 2012 Γ Ζ 24