Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Συμβόλαιο Μαθήματος Στόχος Μαθήματος Να προσφέρει εις βάθος κατανόηση στην οργάνωση σύγχρονων υπολογιστών και τον σχεδιασμό μικροεπεξεργαστών, μέσω πρακτικής εμπειρίας. Διδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy Διδάσκων: Νικόλας Στυλιανίδης Email: nstylianides@gmail.com blackboard www.ece.ucy.ac.cy/courses/ece213 Οι εργαστηριακές ασκήσεις περιλαμβάνουν συμβολικό προγραμματισμό, σχεδιασμό και υλοποίηση απλών μικροεπεξεργαστών με τη χρήση εργαλείων σχεδιασμού με χρήση υπολογιστή (CAD) και προγραμματιζόμενων διατάξεων λογικής. 2 Αναμενόμενα Αποτελέσματα Μαθήματος 1. Εις βάθος κατανόηση, μέσω πρακτικής εξάσκησης, των βασικών αρχών οργάνωσης και σχεδιασμού υπολογιστών. 2. Απόκτηση πρακτικής εμπειρίας σε συμβολικό προγραμματισμό και στη χρήση προσομοιωτών. 3. Απόκτηση πρακτικής εμπειρίας στον σχεδιασμό και την υλοποίηση μικροεπεξεργαστών με χρήση εργαλείων σχεδιασμού (CAD), γλώσσες υλικού (HDLs) και ολοκληρωμένων προγραμματιζόμενης λογικής. 4. Ικανότητα ομαδικής εργασίας και αποδοτικής επικοινωνίας. Χρήση Ηλεκτρονικού Υπολογιστή Συμβολικός προγραμματισμός σε γλώσσα MIPS (Microprocessor without Interlocked Pipeline Stages) και προσομοίωση με: QtSpim(σε Windows). Επίσης, χρήση του λογισμικού Altera Quartus II σε προσωπικό υπολογιστή (Windows) για σχηματική ή/και VHDL περιγραφή σχεδιασμού και προσομοίωση. 3 4
1ο Μέρος Εργαστηρίου Το πρώτο μέρος αφορά την εις βάθος εξάσκηση σε συμβολικό προγραμματισμό και την χρήση του προσομοιωτή SPIMσε περιβάλλον Windows. Οι εβδομαδιαίες εργασίες θα δίνουν έμφαση σε ξεχωριστά θέματα οργάνωσης υπολογιστών, όπως την υλοποίηση αριθμητικών λειτουργιών, τους τρόπους διευθυνσιοδότησηςτης μνήμης,την στοίβα προγράμματος, αποφάσεις και διακλαδώσεις, αναδρομικός προγραμματισμός, κτλ. Θέματα σε επίπεδο συστήματος, όπως χρονομέτρηση, σήματα διακοπών και λειτουργίες I/O, θα εξεταστούν στο τελικό project. Η εργασία στο πρώτο μέρος είναι ατομική 5 2ο Μέρος Εργαστηρίου Το 2ο μέρος εστιάζεται σε προβλήματα και ασκήσεις σχεδιασμού και οργάνωσης μικροεπεξεργαστών με την χρήση των εργαλείων AlteraQuartus IIγια σχηματική ή/και VHDL περιγραφή σχεδιασμού και προσομοίωση. Οι εβδομαδιαίες εργασίες θα δίνουν έμφαση στον σχεδιασμό των βασικών μερών ενός απλού μικροεπεξεργαστή. Το τελικό projectαφορά την ενσωμάτωση των βασικών μερών, την επαλήθευση και την υλοποίηση του μικροεπεξεργαστή σε πλακέτα με ολοκληρωμένα προγραμματιζόμενης λογικής τύπου CPLD (Complex Programmable Logic Device)και FPGA (Field Programmable Gate Array). Η εργασία στο δεύτερο μέρος είναι ομαδική. Οι ομάδες θα δημιουργηθούν βάσει της βαθμολογίας από το πρώτο μέρος έτσι ώστε να υπάρχει ομοιογένεια στην κάθε ομάδα. 6 Αναμενόμενη Εργασία από Φοιτητές Η παρουσία στα εργαστήρια είναι υποχρεωτική. Επιτρέπονται επιπλέον παρακολουθήσεις! Τακτική μελέτη του υλικού που ανατίθεται. Προαιρετικές Εργαστηριακές ασκήσεις για πρακτική εξάσκηση και αυτοαξιολόγηση (με bonus) Δύο Projects, δύο ενδιάμεσες και μια τελική εξέταση (γραπτές). Αξιολόγηση ΗΜΥ213 4 Ασκήσεις (assembly) 5+5% Bonus (2 υποχρεωτικές 2 bonus) 1o Project Ατομικό (assembly) 10% 2o Project Ομαδικό (MIPS-16) 15% 1 η Ενδιάμεση Εξέταση 15% 21Φεβ. 2013 2 η Ενδιάμεση Εξέταση25% 14Μαρ. 2013 Τελική Εξέταση 30% 7 8
Απαραίτητες προϋποθέσεις επιτυχίας στο μάθημα είναι: 1. Εξασφάλιση συνολικού βαθμού 50% 2. Ικανοποιητική ολοκλήρωση και των ΔΥΟ projects(με βαθμό 40% σε κάθε project) 3. Η συμμετοχή στην τελική εξέταση θα επιτραπεί μόνο εάν ισχύει η 2η προϋπόθεση Το bonusγια τις ασκήσεις συμβολικού προγραμματισμού θα δίνεται μόνο εάν το πρόγραμμα σας συνοδεύεται από διάγραμμα ροής και δίνει το σωστό αποτέλεσμα! Ο διδάσκων διατηρεί το δικαίωμα οριακής προσαρμογής της βαθμολογίας με βάση την παρακολούθηση και την ενεργό συμμετοχή στην τάξη/εργαστήριο. 9 Πολιτική Κανόνες Μαθήματος Βαθμολογία: Τυχόν ενστάσεις για την βαθμολόγηση εργασίας/εξέτασης θα μπορούν να γίνονται εντός μιας εβδομάδας από την επιστροφή της εργασίας/εξέτασης στους φοιτητές. Ενστάσεις θα γίνονται δεκτές μόνο γραπτώς με ξεκάθαρη περιγραφή του παραπόνου ή της διευκρίνησης που ζητείται. Εκπρόθεσμες Εργασίες: Όλες οι εργασίες πρέπει να παραδίδονται κατά την έναρξη της διάλεξης (+7 μέρες από την ανάθεση της εργασίας). Εκπρόθεσμες εργασίες θα υφίστανται αυτόματη μείωση βαθμολογίας 20% για κάθε επιπρόσθετη μέρα καθυστέρησης πέραν της ημερομηνίας λήξης της προθεσμίας. Εργασίες που θα παραδίδονται με καθυστέρηση πέραν των 3 ημερών δεν θα γίνονται δεκτές. Παρατάσεις θα πρέπει να διευθετούνται πάντοτε πριν από την λήξη της προθεσμίας. 10 Απουσίες: Δικαιολογημένες απουσίες λόγω ασθένειας ή εγκεκριμένου ταξιδιού για ακαδημαϊκούς σκοπούς πρέπει να ακολουθούν την πολιτική απουσιών του πανεπιστημίου. Δεν θα παραχωρούνται παρατάσεις στην παράδοση ασκήσεων ή εναλλακτικές εξετάσεις, εκτός και αν η απουσία σας είναι δικαιολογημένη.σε περίπτωση προγραμματισμένης απουσίας, πρέπει να επικοινωνήσετε με τον διδάσκοντα πριν την ημερομηνία της απουσίας. Ακαδημαϊκή Δεοντολογία: Ενθαρρύνεστε να συνεργάζεστε και να ανταλλάσσετε απόψεις για το υλικό του μαθήματος και όλες τις εργασίες. Ωστόσο, αυτό θα πρέπει να περιορίζεται στη συζήτηση και να μην συνεχίζεται κατά την σύνταξη του κώδικα. Απαγορεύεται αυστηρώς η συγγραφή κώδικα/εργασίας σε συνεργασία με άλλο άτομο.εργασίες οι οποίες έχουν σημαντική αλληλοεπικάλυψη συνιστούν παραβίαση της ακαδημαϊκής δεοντολογίας και θα αναφέρονται στο Συμβούλιο του Τμήματος ή ακόμα και στην Σύγκλητο του Πανεπιστημίου. Από το Πρόβλημα στη Λύση! Κατά την επίλυση οποιουδήποτε προβλήματος, συνειδητά ή όχι, πάντοτε ακολουθούμε κάποια στάδια μέχρι που να φτάσουμε στην επιθυμητή λύση. Σε προβλήματα προγραμματισμού, συνήθως ακολουθούνται τα εξής στάδια: 1. Κατανόηση του προβλήματος 2. Ανάλυση προβλήματος (είσοδοι, έξοδοι, σταθερές, μεταβλητές) 3. Βήματα προς επίλυση του προβλήματος 4. Συγγραφή κώδικα για το κάθε βήμα 5. Έλεγχος κώδικα βήμα προς βήμα 6. Τελικός έλεγχος κώδικα 11 12
Διάγραμμα Ροής Προγράμματος Flow -Chart Το διάγραμμα ροής είναι πολύ βοηθητικό στην επίλυση ενός προβλήματος αφού μας βοηθά να δούμε και οπτικά την πορεία επίλυσης του προβλήματος και να κατανοήσουμε καλύτερα τον κώδικα που πρέπει να γράψουμε για το κάθε ένα από τα βήματα που πρέπει να ακολουθήσουμε. Η επιλογή του αριθμού των βημάτων εξαρτάται από το ίδιο το πρόβλημα αλλά και από το πόσο αναλυτικό επιθυμούμε εμείς να το σχεδιάσουμε. Πρέπει τουλάχιστο να περιέχει όλους τους ελέγχους (beq/bne/bhi) όπως και τυχόν αλληλεπίδραση με τον χρήστη. Εγκατάσταση και Λειτουργία QtSpim Ας σχεδιάσουμε το πρώτο μας Διάγραμμα Ροής βάσει του παραδείγματος prosthesi_2012b.s 13 14 Δημιουργία αρχείου 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 li $v0, 4 la $a0, out_string # to print string li $v0, 1 move $a0, $t3 # to print an integer li $v0, 10 # to exit programme # press enter to keep SPIM HAPPY! 15 16
17